@riverbankcms/sdk 0.108.0 → 0.111.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/README.md +21 -1
- package/dist/{PreviewEditorSidebar-BBT-kZAM.mjs → PreviewEditorSidebar-CTR6LUhN.mjs} +181 -135
- package/dist/{PreviewEditorUI-D69xNKT2.mjs → PreviewEditorUI-DZg15Zip.mjs} +3 -4
- package/dist/{PreviewQueryProvider-RRu7wyQ5.mjs → PreviewQueryProvider-kkmjklLG.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CuDjXH6o.mjs → SdkPreviewModeRuntime-DeOTAFvR.mjs} +436 -367
- package/dist/{SiteChromeCustomizeContext-BQUY2dEk.mjs → SiteChromeCustomizeContext-DOSDLCiJ.mjs} +3442 -3029
- package/dist/_dts/ai/src/contracts/proposals.d.ts +12633 -10490
- package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +2 -17
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +5 -5
- package/dist/_dts/api/src/common/envelope.d.ts +7 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +4 -1
- package/dist/_dts/api/src/courses.d.ts +31 -15
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
- package/dist/_dts/api/src/endpoints.d.ts +49 -4
- package/dist/_dts/api/src/index.d.ts +3 -3
- package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +259 -1
- package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +6 -6
- package/dist/_dts/api/src/siteOperations.d.ts +11 -19
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -31
- package/dist/_dts/api/src/webhooks.d.ts +98 -1
- package/dist/_dts/billing/src/site-arrangements.d.ts +3 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
- package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
- package/dist/_dts/blocks/src/client/course-registration.d.ts +4 -1
- package/dist/_dts/blocks/src/client.d.ts +4 -1
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +8 -8
- package/dist/_dts/blocks/src/index.d.ts +4 -2
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +3 -23
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +5 -4
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +3 -23
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +3 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +5 -1
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +5 -1
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +35 -0
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
- package/dist/_dts/blocks/src/system/fields/button.d.ts +10 -21
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +10 -1
- package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +9 -5
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -24
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -12
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessWholeSeriesRegistrationFlow.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.contract.d.ts +326 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/whole-series-registration.headless.planning.d.ts +27 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +2 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +7 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/shared/types.d.ts +2 -1
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +4 -2
- package/dist/_dts/content-editor/src/index.d.ts +12 -12
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +17 -2
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
- package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
- package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
- package/dist/_dts/content-model/src/index.d.ts +3 -0
- package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3278 -3196
- package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +3 -2
- package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
- package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/ButtonStylePicker.d.ts +16 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/PreviewDesignOpenRequestContext.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +5 -11
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +5 -6
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +6 -7
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +7 -9
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +4 -11
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -7
- package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +0 -8
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +1 -11
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +1 -5
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +2 -3
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +3 -4
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +3 -5
- package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
- package/dist/_dts/sdk/src/bookings/types.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
- package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
- package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
- package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
- package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +3 -2
- package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
- package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
- package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
- package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
- package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +45 -20
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -15
- package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +3 -3
- package/dist/_dts/site-commands/src/commands.d.ts +1010 -817
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +2 -1
- package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
- package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
- package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/styles/domain.d.ts +80 -0
- package/dist/_dts/theme-core/src/buttons/styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/defineStaticButtonStyleRecipe.d.ts +49 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/quietArrow.d.ts +67 -0
- package/dist/_dts/theme-core/src/buttons/styles/recipes/staticRecipes.d.ts +649 -0
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +753 -0
- package/dist/_dts/theme-core/src/buttons/styles/selection.d.ts +69 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +101 -83
- package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
- package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -126
- package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +112 -138
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +26 -24
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +19 -153
- package/dist/_dts/theme-core/src/site-styles/headerCtaVariants.d.ts +3 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +8 -9
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +33 -12
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
- package/dist/_dts/ui/src/palette/hex.d.ts +3 -3
- package/dist/cli/index.mjs +68396 -67339
- package/dist/cli/init-docs/content/cli-reference.md +50 -7
- package/dist/cli/init-docs/content/content-management.md +7 -4
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
- package/dist/cli/init-docs/content/workflow-publish.md +5 -1
- package/dist/client/{DiscountCodeDisclosure-D6TOf6Hi.mjs → DiscountCodeDisclosure-C4xvTBux.mjs} +1 -1
- package/dist/client/{EventCombined.client-Dao3zxRk.mjs → EventCombined.client-Cr7G131j.mjs} +2 -3
- package/dist/client/{EventListing.client-B2NNt4y1.mjs → EventListing.client-CAjbseNy.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BhwFo16w.mjs → LeafletStaticMap-BMlWfwz3.mjs} +1 -1
- package/dist/client/{MagicLinkForm-BWnB7cMR.mjs → MagicLinkForm-ChdFz96y.mjs} +1 -2
- package/dist/client/{StepIndicator-TzRiQ0BY.mjs → StepIndicator-7D3GaBeM.mjs} +2 -2
- package/dist/client/{accordion-BPy-AJ4_.mjs → accordion-D8JTs2Si.mjs} +1 -1
- package/dist/client/{bookingForm-BL4PGZds.mjs → bookingForm-H3DCRBHs.mjs} +6 -7
- package/dist/client/bookings.mjs +4649 -2767
- package/dist/client/{carousel-C2b7Cn9-.mjs → carousel-DMr_QWlz.mjs} +1 -1
- package/dist/client/{cart-BQcbXIVD.mjs → cart-DWMbfBdR.mjs} +3 -3
- package/dist/client/{checkout-DEmpGRJu.mjs → checkout-zmfdkXLx.mjs} +3 -3
- package/dist/client/client.mjs +3195 -2488
- package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-gcTh5yZT.mjs} +2 -41
- package/dist/client/{colorTokenParts-CMugwvX_.mjs → colorTokenParts-FSS3al6l.mjs} +31 -1
- package/dist/client/{courseRegistration-BqRZPmsq.mjs → courseRegistration-Z_mn18jy.mjs} +100 -37
- package/dist/client/{eventCalendar-B8N_tSl5.mjs → eventCalendar-CYp0YJGF.mjs} +4 -5
- package/dist/client/{eventCombined-Gjn6gtq7.mjs → eventCombined-rKyYZUa9.mjs} +2 -2
- package/dist/client/{eventDetails-M-VCxA-r.mjs → eventDetails-X0ZaUuMj.mjs} +3 -3
- package/dist/client/{eventListing-DR19hqYi.mjs → eventListing-W1SuL7EP.mjs} +2 -2
- package/dist/client/{eventRegistration-BR02a0k3.mjs → eventRegistration-ClWricui.mjs} +6 -7
- package/dist/client/{form-LY2xIbwg.mjs → form--eKPwAAD.mjs} +1 -2
- package/dist/client/{headerSection-CYwwXJfh.mjs → headerSection-BSeGr-FS.mjs} +2 -3
- package/dist/client/hooks.mjs +2169 -2093
- package/dist/client/{locationMap-DWnBXrFq.mjs → locationMap-BpOrtNYn.mjs} +8 -5
- package/dist/client/{media-DHtSxS5V.mjs → media-DoF0dcVx.mjs} +4 -3
- package/dist/client/{newsletterForm-D9s-fQ2P.mjs → newsletterForm-Bt7it7Dy.mjs} +1 -2
- package/dist/client/{pricing-DDq80oYc.mjs → pricing-BTjSDDr4.mjs} +1 -1
- package/dist/client/{productDetail-B0SbWd45.mjs → productDetail-ICnVTcCg.mjs} +3 -3
- package/dist/client/{productList-PwYlZn0y.mjs → productList-ZHr6D604.mjs} +3 -3
- package/dist/client/{propsDecoder-BRWBiH7i.mjs → propsDecoder-wWN0tBDF.mjs} +2484 -223
- package/dist/client/rendering/client.mjs +2532 -2144
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +3322 -2462
- package/dist/client/{shop-CMwZPYME.mjs → shop-C1u_BUn0.mjs} +5 -6
- package/dist/client/{shop-commerce-BuxsFate.mjs → shop-commerce-CleZdRha.mjs} +5 -6
- package/dist/client/{shop-commerce-store-boYlEJ91.mjs → shop-commerce-store-ycnoB2Ce.mjs} +1 -1
- package/dist/client/{shopShared-D2naaOes.mjs → shopShared-CPhByt2a.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-D9RHpVoj.mjs → useDiscountCodeUi-cStSQI6C.mjs} +1 -1
- package/dist/client/{useEventFilters-igGiK1re.mjs → useEventFilters-DKPN7hSY.mjs} +46 -70
- package/dist/client/{usePolling-CI7MbsFB.mjs → usePolling-BKAd6pkZ.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +72 -6
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +72 -6
- package/dist/{previewAuthStore-a_cBD28m.mjs → previewAuthStore-BkT1D06A.mjs} +72 -6
- package/dist/{sdk-runtime-MBzD-GmP.mjs → sdk-runtime-hu3wr3ng.mjs} +2 -2
- package/dist/{separator-5ahRBC85.mjs → separator-Bln8izQ9.mjs} +1 -1
- package/dist/server/components.mjs +3123 -2391
- package/dist/server/config-validation.mjs +2169 -2093
- package/dist/server/config.mjs +2169 -2093
- package/dist/server/data.mjs +2169 -2093
- package/dist/server/date-time.mjs +386 -0
- package/dist/server/index.mjs +73 -7
- package/dist/server/next/revalidate.mjs +53 -1
- package/dist/server/next.mjs +3195 -2397
- package/dist/server/page-converter.mjs +2192 -1945
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2844 -2325
- package/dist/server/rendering.mjs +3123 -2391
- package/dist/server/routing.mjs +2269 -2149
- package/dist/server/server.mjs +2244 -2102
- package/dist/server/theme-bridge.mjs +2720 -1887
- package/dist/server/theme.mjs +1669 -1322
- package/dist/server/webhooks.mjs +54 -2
- package/dist/styles/index.css +5 -0
- package/package.json +7 -1
- package/dist/_dts/theme-core/src/buttons/personalities/brushed-wash.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/confident-chip.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/editorial-link.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +0 -20
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +0 -172
- package/dist/_dts/theme-core/src/buttons/personalities/ink-stamp.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/joy-stamp.d.ts +0 -22
- package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/pebble.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/soft-pill.d.ts +0 -16
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +0 -17
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +0 -273
- package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
- package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
- package/dist/client/buttons-EBjyslaX.mjs +0 -1852
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@ A lightweight TypeScript SDK for consuming Riverbank CMS content in React Server
|
|
|
14
14
|
- ✅ **Custom blocks** - Define site-specific blocks with full CMS editing support
|
|
15
15
|
- ✅ **Content tooling** - Define content type schema in config and sync pages, entries, and navigation through explicit content push scopes
|
|
16
16
|
- ✅ **Site URLs** - Configure preview and live URLs for dashboard integration
|
|
17
|
+
- ✅ **Timezone-safe dates** - Format event and booking times in an explicit IANA timezone
|
|
17
18
|
|
|
18
19
|
## Installation
|
|
19
20
|
|
|
@@ -187,6 +188,13 @@ SDK sites that need bespoke appointment booking UI can use the headless booking
|
|
|
187
188
|
|
|
188
189
|
SDK sites that need bespoke event registration UI can use the headless event registration runtime from `@riverbankcms/sdk/bookings`. See [`docs/headless-event-registration.md`](./docs/headless-event-registration.md) for the real `blockOverrides` pattern with an `'event-registration'` override, `HeadlessEventRegistrationProvider`, `getEventRegistrationOverrideInput`, and `useHeadlessEventRegistrationFlow`.
|
|
189
190
|
|
|
191
|
+
### Date and time formatting
|
|
192
|
+
|
|
193
|
+
Use `@riverbankcms/sdk/date-time` to render event and booking timestamps in
|
|
194
|
+
their intended timezone, including daylight-saving changes. See
|
|
195
|
+
[`docs/date-time-formatting.md`](./docs/date-time-formatting.md) for the
|
|
196
|
+
formatters, compact event-time defaults, range behavior, and error handling.
|
|
197
|
+
|
|
190
198
|
### Server-Side API
|
|
191
199
|
|
|
192
200
|
```tsx
|
|
@@ -1597,6 +1605,14 @@ Token values can be:
|
|
|
1597
1605
|
- **CSS variable refs**: `'var(--brand-purple)'` (passed through)
|
|
1598
1606
|
- **RGB values**: `'109 40 217'` (used directly)
|
|
1599
1607
|
|
|
1608
|
+
CSS variable references are suitable for emitted variables, structural block
|
|
1609
|
+
styles, cards, and inputs. Opt-in generated button skins resolve and validate
|
|
1610
|
+
foreground/background contrast while building the runtime, so every token used
|
|
1611
|
+
by `components.buttons` must be a concrete hex or RGB value. When your design
|
|
1612
|
+
system owns brand colours through `var(...)`, leave `components.buttons`
|
|
1613
|
+
disabled and style the button classes in your design-system CSS, or provide
|
|
1614
|
+
concrete button tokens to ThemeBridge.
|
|
1615
|
+
|
|
1600
1616
|
Canonical tokens win when aliases are also present. Accepted aliases are `text -> foreground`, `mutedText -> mutedForeground`, `white -> primaryForeground`, and `danger -> destructive`.
|
|
1601
1617
|
|
|
1602
1618
|
### Design Presets
|
|
@@ -1688,7 +1704,8 @@ Add custom CSS rules scoped to theme components:
|
|
|
1688
1704
|
|
|
1689
1705
|
### Pass-Through to Design Systems
|
|
1690
1706
|
|
|
1691
|
-
Reference existing CSS variables from your design system
|
|
1707
|
+
Reference existing CSS variables from your design system when ThemeBridge is
|
|
1708
|
+
not generating button skins:
|
|
1692
1709
|
|
|
1693
1710
|
```tsx
|
|
1694
1711
|
<ThemeBridgeProvider
|
|
@@ -1699,6 +1716,9 @@ Reference existing CSS variables from your design system:
|
|
|
1699
1716
|
background: 'var(--ds-bg)',
|
|
1700
1717
|
foreground: 'var(--ds-text)',
|
|
1701
1718
|
},
|
|
1719
|
+
components: {
|
|
1720
|
+
buttons: false,
|
|
1721
|
+
},
|
|
1702
1722
|
}}
|
|
1703
1723
|
>
|
|
1704
1724
|
```
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { $
|
|
3
|
-
import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-
|
|
4
|
-
import { C as
|
|
5
|
-
import { t as Separator } from "./separator-
|
|
6
|
-
import React, { forwardRef, useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
|
|
2
|
+
import { $t as createStoreBackend, A as dismissWarnings, Ad as assertNever$1, B as previewCuratedPalette, Bf as Check, Bi as getCuratedSiteStyle, Bt as deriveRouteMetadataPresentation, C as applyResolvedSelections, Ca as curatedPalettes, Cu as CollapsibleTrigger, D as createPalette, Da as paletteColorsEqual, E as committedPaletteForSnapshot, Ea as paletteColorEntries, Et as useEditorUiStoreInstance, F as openRow, Fu as DropdownMenuItem, G as previewSiteStyle, Gd as X$1, H as previewHeaderLayout, Ht as resolveContentTitle, I as paletteMutationCapability, Iu as DropdownMenuLabel, J as setPaletteColors, Jl as SelectContent, Jt as ManifestForm, K as reconcilePaletteLibraryActive, L as palettePreviewProjection, Lf as ChevronRight, Lu as DropdownMenuSeparator, M as markApplyFailed, Mu as Surface, N as markApplySaved, Nu as DropdownMenu, O as createStyleConfiguratorState, Oa as paletteColorsSchema, P as markApplySaving, Pu as DropdownMenuContent, R as prepareStalePaletteRetry, Rf as ChevronLeft, Ri as curatedSiteStyles, Ru as DropdownMenuTrigger, St as useEntryController, Su as CollapsibleContent, T as cancelPreview, Ta as buildPaletteLibraryReadModel, Tt as useEditorUiStore, U as previewHeaderStyle, V as previewFooterLook, Vt as resolvePageRouteSlug, W as previewSitePalette, X as syncStyleConfiguratorState, Xl as SelectTrigger, Xt as createManifestValidation, Y as styleConfiguratorHistoryEntryForPersistedSelection, Yl as SelectItem, Z as toggleRow, Zd as Tablet, Zl as SelectValue, Zt as FormRenderer, _ as planSiteChromeLookSelection, aa as getHeaderLayout, al as updateButtonStyleSelectionChoice, at as resolvePreviewSidebarTab, au as Tabs, b as usePreviewDesignCoordinator, c as selectionSnapshotFromApplySiteStyleSelectionResponse, cu as TabsTrigger, d as PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE, ed as Button, ef as Smartphone, eu as SearchInput, f as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, ff as Maximize2, g as cycleableSiteChromeOptions, h as cycleSiteChromeLookId, ia as findFooterLook, il as resolveButtonStyleSelection, it as createOptimisticActionRunner, iu as Input, j as isPreviewingChange, k as deriveStyleConfiguratorCapabilities, l as resolveStyleConfiguratorInitialSnapshot, ld as unsafeAsEditorBlockId, m as buildSiteChromeLookModels, n as useSiteChromeCustomizeOptional, nl as buttonStyleSelectionParameterValue, nu as PopoverContent, oa as getHeaderStyle, of as Plus, ol as buttonStyleSelectionKey, ot as FooterComposerPanel, ou as TabsContent, p as reportPreviewDesignError, pf as LoaderCircle, q as resetTypographyToSaved, ql as Select, rd as cn, rl as findButtonStyleRecipe, ru as PopoverTrigger, s as buildApplySiteStyleSelectionBody, su as TabsList, tf as SlidersHorizontal, tu as Popover, u as PREVIEW_DESIGN_LOAD_ERROR_MESSAGE, uf as Monitor, un as listEntryPageContentSlots, v as planSiteStylePreviewChange, vl as themeButtonClassName, vt as ContentFieldsForm, w as applyTypographyDraftPatch, wa as findCuratedPalette, xu as Collapsible, yt as useUISelector, z as previewButtonStyle } from "./SiteChromeCustomizeContext-DOSDLCiJ.mjs";
|
|
3
|
+
import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-BkT1D06A.mjs";
|
|
4
|
+
import { C as generateFontFaceCss, D as Callout, O as CalloutDescription, S as buildFontPreviewUrl, T as ThemeScope, _ as useBlockCustomizeControls, b as BlockEditor, d as resolvePreviewDashboardSetupHandoff, f as resolvePreviewEditorGuidanceModel, g as usePreviewBlockCustomizeSelectionOptional, h as canInspectSiteStyle, m as canApplySiteStyle, p as resolvePreviewSidebarChromeModel, u as buildPreviewDashboardSetupUrl, v as PreviewFormProvider, w as getSiteFontsStorageUrl, x as isAdapterReferenceKind, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-DeOTAFvR.mjs";
|
|
5
|
+
import { t as Separator } from "./separator-Bln8izQ9.mjs";
|
|
6
|
+
import React, { createContext, forwardRef, useCallback, useContext, useEffect, useId, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, useTransition } from "react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
9
9
|
import { useRouter } from "next/navigation.js";
|
|
@@ -1563,13 +1563,27 @@ function formatBlockKindLabel(blockKind) {
|
|
|
1563
1563
|
return blockKind.replace(/^block\./, "").replace(/^custom\./, "").replace(/[-_]+/g, " ");
|
|
1564
1564
|
}
|
|
1565
1565
|
//#endregion
|
|
1566
|
+
//#region ../preview-next/src/client/preview/PreviewDesignOpenRequestContext.tsx
|
|
1567
|
+
const PreviewDesignOpenRequestContext = createContext(null);
|
|
1568
|
+
function PreviewDesignOpenRequestProvider({ request, children }) {
|
|
1569
|
+
return /* @__PURE__ */ jsx(PreviewDesignOpenRequestContext.Provider, {
|
|
1570
|
+
value: request,
|
|
1571
|
+
children
|
|
1572
|
+
});
|
|
1573
|
+
}
|
|
1574
|
+
function usePreviewDesignOpenRequest() {
|
|
1575
|
+
return useContext(PreviewDesignOpenRequestContext);
|
|
1576
|
+
}
|
|
1577
|
+
//#endregion
|
|
1566
1578
|
//#region ../preview-next/src/client/preview/PageBlockEditorPanel.tsx
|
|
1567
|
-
function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClient, bearerToken, supabaseUrl, blockItems, uiStoreForBlockEditor, blockEditorRef, onBlocksChange, metadataPanel, linkedEntrySection, designPanel,
|
|
1579
|
+
function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClient, bearerToken, supabaseUrl, blockItems, uiStoreForBlockEditor, blockEditorRef, onBlocksChange, metadataPanel, linkedEntrySection, designPanel, designTakeoverActive = false, sdkConfig, mediaAssets, bookingOfferingPresets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
|
|
1568
1580
|
const customizeSelection = usePreviewBlockCustomizeSelectionOptional();
|
|
1569
1581
|
const [designOpen, setDesignOpen] = useState(false);
|
|
1570
1582
|
const [customizeOpen, setCustomizeOpen] = useState(false);
|
|
1571
1583
|
const [contentOpen, setContentOpen] = useState(true);
|
|
1572
1584
|
const [detailsOpen, setDetailsOpen] = useState(false);
|
|
1585
|
+
const pendingDesignOpenRequest = useUISelector(uiStoreForBlockEditor, (state) => state.previewDesignOpenRequest);
|
|
1586
|
+
const [designOpenRequest, setDesignOpenRequest] = useState(null);
|
|
1573
1587
|
const designSectionRef = useRef(null);
|
|
1574
1588
|
const customizeSectionRef = useRef(null);
|
|
1575
1589
|
const selectionKind = customizeSelection?.selection.kind;
|
|
@@ -1598,13 +1612,15 @@ function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClie
|
|
|
1598
1612
|
}
|
|
1599
1613
|
}, [selectionKind, selectionRequestId]);
|
|
1600
1614
|
useEffect(() => {
|
|
1601
|
-
if (
|
|
1615
|
+
if (!pendingDesignOpenRequest) return;
|
|
1616
|
+
setDesignOpenRequest(pendingDesignOpenRequest);
|
|
1602
1617
|
setDesignOpen(true);
|
|
1603
1618
|
designSectionRef.current?.scrollIntoView({
|
|
1604
1619
|
block: "start",
|
|
1605
1620
|
behavior: "smooth"
|
|
1606
1621
|
});
|
|
1607
|
-
|
|
1622
|
+
uiStoreForBlockEditor.getState().consumePreviewDesignOpenRequest(pendingDesignOpenRequest.requestId);
|
|
1623
|
+
}, [pendingDesignOpenRequest, uiStoreForBlockEditor]);
|
|
1608
1624
|
return /* @__PURE__ */ jsxs("div", {
|
|
1609
1625
|
className: "flex h-full min-h-0 flex-col overflow-hidden",
|
|
1610
1626
|
children: [/* @__PURE__ */ jsx("div", {
|
|
@@ -1661,7 +1677,10 @@ function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClie
|
|
|
1661
1677
|
className: designTakeoverActive ? "min-h-0 flex-1 data-[state=open]:h-full data-[state=open]:overflow-hidden" : void 0,
|
|
1662
1678
|
children: /* @__PURE__ */ jsx("div", {
|
|
1663
1679
|
className: designTakeoverActive ? "h-full min-h-0" : "px-4 pb-4",
|
|
1664
|
-
children:
|
|
1680
|
+
children: /* @__PURE__ */ jsx(PreviewDesignOpenRequestProvider, {
|
|
1681
|
+
request: designOpenRequest,
|
|
1682
|
+
children: designPanel
|
|
1683
|
+
})
|
|
1665
1684
|
})
|
|
1666
1685
|
})]
|
|
1667
1686
|
})
|
|
@@ -1794,8 +1813,8 @@ function PreviewEditorGuidanceCard({ guidance, completeSetupDisabled, onComplete
|
|
|
1794
1813
|
* Hex colour helpers shared by every palette-editing surface (Macadamia
|
|
1795
1814
|
* onboarding swatches, the LiveThemeEditor, the Style configurator advanced
|
|
1796
1815
|
* row). Consolidates three prior duplicates: `normalizeColorPickerValue` in
|
|
1797
|
-
* Macadamia, `normalizeHex` + `contrastRatio` in
|
|
1798
|
-
* the inline regex in `updateColorRole`.
|
|
1816
|
+
* Macadamia, `normalizeHex` + `contrastRatio` formerly in
|
|
1817
|
+
* `theme-editor/utils.ts`, and the inline regex in `updateColorRole`.
|
|
1799
1818
|
*
|
|
1800
1819
|
* Pure functions; no DOM, no React.
|
|
1801
1820
|
*/
|
|
@@ -1805,7 +1824,7 @@ function PreviewEditorGuidanceCard({ guidance, completeSetupDisabled, onComplete
|
|
|
1805
1824
|
* without a leading `#`; returns `fallback` for any other shape (empty
|
|
1806
1825
|
* string, garbage, characters outside `[0-9a-f]`, wrong length, etc.). Pass
|
|
1807
1826
|
* a `fallback` to make the fallback explicit at the call site — defaulting
|
|
1808
|
-
* to `'#000000'`
|
|
1827
|
+
* to `'#000000'` preserves the former theme-editor helper semantics.
|
|
1809
1828
|
*/
|
|
1810
1829
|
function normalizeHex(input, fallback = "#000000") {
|
|
1811
1830
|
if (!input) return fallback;
|
|
@@ -2078,6 +2097,102 @@ function ContrastSwatch({ hex, label }) {
|
|
|
2078
2097
|
});
|
|
2079
2098
|
}
|
|
2080
2099
|
//#endregion
|
|
2100
|
+
//#region ../preview-next/src/client/preview/ButtonStylePicker.tsx
|
|
2101
|
+
function ButtonStylePicker({ selections, current, previewTheme, onPreview, disabled }) {
|
|
2102
|
+
const recipe = findButtonStyleRecipe(current.styleId);
|
|
2103
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
2104
|
+
className: "space-y-3",
|
|
2105
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
2106
|
+
role: "radiogroup",
|
|
2107
|
+
"aria-label": "Button style",
|
|
2108
|
+
className: "grid grid-cols-1 gap-2",
|
|
2109
|
+
children: selections.map((selection) => {
|
|
2110
|
+
const optionRecipe = findButtonStyleRecipe(selection.styleId);
|
|
2111
|
+
const selected = selection.styleId === current.styleId;
|
|
2112
|
+
return /* @__PURE__ */ jsxs("label", {
|
|
2113
|
+
className: cn("relative block cursor-pointer rounded-md border p-2 transition has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring has-[:focus-visible]:ring-offset-2", selected ? "border-foreground bg-accent/40 shadow-sm" : "border-border bg-background hover:border-foreground/40 hover:bg-accent/20", disabled && "cursor-not-allowed opacity-60"),
|
|
2114
|
+
children: [
|
|
2115
|
+
/* @__PURE__ */ jsx("input", {
|
|
2116
|
+
type: "radio",
|
|
2117
|
+
name: "button-style",
|
|
2118
|
+
value: selection.styleId,
|
|
2119
|
+
checked: selected,
|
|
2120
|
+
onChange: () => onPreview(selection),
|
|
2121
|
+
disabled,
|
|
2122
|
+
className: "absolute inset-0 z-10 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed"
|
|
2123
|
+
}),
|
|
2124
|
+
/* @__PURE__ */ jsx("span", {
|
|
2125
|
+
className: "sr-only",
|
|
2126
|
+
children: optionRecipe.accessibilityLabel
|
|
2127
|
+
}),
|
|
2128
|
+
/* @__PURE__ */ jsx(ButtonStylePreviewPair, {
|
|
2129
|
+
selection: selected ? current : selection,
|
|
2130
|
+
previewTheme
|
|
2131
|
+
})
|
|
2132
|
+
]
|
|
2133
|
+
}, buttonStyleSelectionKey(selection));
|
|
2134
|
+
})
|
|
2135
|
+
}), recipe.controls.map((control) => {
|
|
2136
|
+
const currentValue = buttonStyleSelectionParameterValue(current, control.parameter);
|
|
2137
|
+
return /* @__PURE__ */ jsxs("fieldset", {
|
|
2138
|
+
className: "space-y-2 rounded-md border border-border p-3",
|
|
2139
|
+
disabled,
|
|
2140
|
+
children: [/* @__PURE__ */ jsx("legend", {
|
|
2141
|
+
className: "px-1 text-xs font-medium",
|
|
2142
|
+
children: control.label
|
|
2143
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
2144
|
+
className: "grid grid-cols-2 gap-2",
|
|
2145
|
+
children: control.options.map((option) => /* @__PURE__ */ jsxs("label", {
|
|
2146
|
+
className: cn("relative cursor-pointer rounded-md border px-2 py-1.5 text-center text-xs has-[:focus-visible]:ring-2 has-[:focus-visible]:ring-ring has-[:focus-visible]:ring-offset-2", currentValue === option.value ? "border-foreground bg-accent/40" : "border-border hover:border-foreground/40"),
|
|
2147
|
+
children: [/* @__PURE__ */ jsx("input", {
|
|
2148
|
+
type: "radio",
|
|
2149
|
+
name: `button-style-${current.styleId}-${control.parameter}`,
|
|
2150
|
+
value: option.value,
|
|
2151
|
+
checked: currentValue === option.value,
|
|
2152
|
+
onChange: () => {
|
|
2153
|
+
const updated = updateButtonStyleSelectionChoice(current, control.parameter, option.value);
|
|
2154
|
+
if (updated.kind === "updated") onPreview(updated.selection);
|
|
2155
|
+
},
|
|
2156
|
+
className: "absolute inset-0 z-10 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed"
|
|
2157
|
+
}), option.label]
|
|
2158
|
+
}, option.value))
|
|
2159
|
+
})]
|
|
2160
|
+
}, control.parameter);
|
|
2161
|
+
})]
|
|
2162
|
+
});
|
|
2163
|
+
}
|
|
2164
|
+
function ButtonStylePreviewPair({ selection, previewTheme, compact = false }) {
|
|
2165
|
+
const resolved = resolveButtonStyleSelection(selection);
|
|
2166
|
+
if (resolved.kind === "error") return null;
|
|
2167
|
+
return /* @__PURE__ */ jsx(ThemeScope, {
|
|
2168
|
+
theme: {
|
|
2169
|
+
...previewTheme,
|
|
2170
|
+
buttons: resolved.buttonSystem
|
|
2171
|
+
},
|
|
2172
|
+
themeId: `button-style-preview-${encodeURIComponent(buttonStyleSelectionKey(selection))}`,
|
|
2173
|
+
className: cn("relative overflow-hidden bg-transparent", compact ? "h-7" : "h-11"),
|
|
2174
|
+
children: /* @__PURE__ */ jsxs("span", {
|
|
2175
|
+
className: cn("absolute left-0 top-1/2 flex w-[142%] -translate-y-1/2 origin-left items-center gap-2", compact ? "scale-[0.56]" : "scale-[0.7]"),
|
|
2176
|
+
"aria-hidden": "true",
|
|
2177
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
2178
|
+
className: themeButtonClassName({
|
|
2179
|
+
variant: "primary",
|
|
2180
|
+
size: "sm",
|
|
2181
|
+
extraClassName: "inline-flex shrink-0 items-center justify-center whitespace-nowrap"
|
|
2182
|
+
}),
|
|
2183
|
+
children: "Get started"
|
|
2184
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
2185
|
+
className: themeButtonClassName({
|
|
2186
|
+
variant: "secondary",
|
|
2187
|
+
size: "sm",
|
|
2188
|
+
extraClassName: "inline-flex shrink-0 items-center justify-center whitespace-nowrap"
|
|
2189
|
+
}),
|
|
2190
|
+
children: "Learn more"
|
|
2191
|
+
})]
|
|
2192
|
+
})
|
|
2193
|
+
});
|
|
2194
|
+
}
|
|
2195
|
+
//#endregion
|
|
2081
2196
|
//#region ../preview-next/src/client/preview/typographyFontCatalog.ts
|
|
2082
2197
|
const typographyFontCategories = [
|
|
2083
2198
|
{
|
|
@@ -3092,7 +3207,8 @@ const PALETTE_SURFACE_ROLES = [
|
|
|
3092
3207
|
label: "Border"
|
|
3093
3208
|
}
|
|
3094
3209
|
];
|
|
3095
|
-
function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion = null, selectionUpdatedAt, initialSelections, headerSelectionContext,
|
|
3210
|
+
function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion = null, selectionUpdatedAt, initialSelections, headerSelectionContext, onFocusedSurfaceChange, siteStyleAccess }) {
|
|
3211
|
+
const designOpenRequest = usePreviewDesignOpenRequest();
|
|
3096
3212
|
const router = useRouter();
|
|
3097
3213
|
const previewDesign = usePreviewDesignCoordinator();
|
|
3098
3214
|
const siteChromeCustomize = useSiteChromeCustomizeOptional();
|
|
@@ -3106,10 +3222,8 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3106
3222
|
selectionVersion: initialSelections.selectionVersion ?? selectionVersion ?? 0,
|
|
3107
3223
|
selectionUpdatedAt: initialSelections.selectionUpdatedAt ?? selectionUpdatedAt ?? null
|
|
3108
3224
|
},
|
|
3109
|
-
headerSelectionContext
|
|
3110
|
-
footerSelectionContext
|
|
3225
|
+
headerSelectionContext
|
|
3111
3226
|
}), [
|
|
3112
|
-
footerSelectionContext,
|
|
3113
3227
|
headerSelectionContext,
|
|
3114
3228
|
theme,
|
|
3115
3229
|
initialSelections,
|
|
@@ -3170,8 +3284,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3170
3284
|
siteStyle,
|
|
3171
3285
|
selection: state.previewed,
|
|
3172
3286
|
baseTheme: theme,
|
|
3173
|
-
headerSelectionContext
|
|
3174
|
-
footerSelectionContext
|
|
3287
|
+
headerSelectionContext
|
|
3175
3288
|
}).themeOverlay, "site-style");
|
|
3176
3289
|
}, [
|
|
3177
3290
|
state,
|
|
@@ -3179,7 +3292,6 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3179
3292
|
clearPreview,
|
|
3180
3293
|
previewTheme,
|
|
3181
3294
|
headerSelectionContext,
|
|
3182
|
-
footerSelectionContext,
|
|
3183
3295
|
theme
|
|
3184
3296
|
]);
|
|
3185
3297
|
useEffect(() => {
|
|
@@ -3190,14 +3302,14 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3190
3302
|
};
|
|
3191
3303
|
}, []);
|
|
3192
3304
|
useEffect(() => {
|
|
3193
|
-
if (!
|
|
3194
|
-
if (appliedExpandedRowRequestIdRef.current ===
|
|
3305
|
+
if (!designOpenRequest) return;
|
|
3306
|
+
if (appliedExpandedRowRequestIdRef.current === designOpenRequest.requestId) return;
|
|
3195
3307
|
setState((current) => {
|
|
3196
3308
|
if (!current) return current;
|
|
3197
|
-
appliedExpandedRowRequestIdRef.current =
|
|
3198
|
-
return openRow(current, expandedRowForPreviewDesignRow(
|
|
3309
|
+
appliedExpandedRowRequestIdRef.current = designOpenRequest.requestId;
|
|
3310
|
+
return openRow(current, expandedRowForPreviewDesignRow(designOpenRequest.row));
|
|
3199
3311
|
});
|
|
3200
|
-
}, [
|
|
3312
|
+
}, [designOpenRequest, hasLoadedState]);
|
|
3201
3313
|
const handlePreviewSiteStyle = useCallback((siteStyleId) => {
|
|
3202
3314
|
setState((current) => {
|
|
3203
3315
|
if (!current) return current;
|
|
@@ -3208,8 +3320,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3208
3320
|
siteStyle,
|
|
3209
3321
|
selection: next.previewed,
|
|
3210
3322
|
baseTheme: theme,
|
|
3211
|
-
headerSelectionContext
|
|
3212
|
-
footerSelectionContext
|
|
3323
|
+
headerSelectionContext
|
|
3213
3324
|
});
|
|
3214
3325
|
return applyResolvedSelections(next, {
|
|
3215
3326
|
resolved: {
|
|
@@ -3219,13 +3330,9 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3219
3330
|
warnings: result.warnings
|
|
3220
3331
|
});
|
|
3221
3332
|
});
|
|
3222
|
-
}, [
|
|
3223
|
-
|
|
3224
|
-
|
|
3225
|
-
theme
|
|
3226
|
-
]);
|
|
3227
|
-
const handlePreviewPersonality = useCallback((id) => {
|
|
3228
|
-
setState((current) => current ? previewButtonPersonality(current, id) : current);
|
|
3333
|
+
}, [headerSelectionContext, theme]);
|
|
3334
|
+
const handlePreviewButtonStyle = useCallback((id) => {
|
|
3335
|
+
setState((current) => current ? previewButtonStyle(current, id) : current);
|
|
3229
3336
|
}, []);
|
|
3230
3337
|
const handlePreviewHeaderLayout = useCallback((id) => {
|
|
3231
3338
|
if (!id) return;
|
|
@@ -3243,25 +3350,6 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3243
3350
|
if (plan.kind !== "footer") return;
|
|
3244
3351
|
setState((current) => current ? previewFooterLook(current, plan.next.footerLookId) : current);
|
|
3245
3352
|
}, []);
|
|
3246
|
-
const handlePreviewFooterLayout = useCallback((id) => {
|
|
3247
|
-
if (!id) return;
|
|
3248
|
-
setState((current) => {
|
|
3249
|
-
if (!current) return current;
|
|
3250
|
-
const siteStyle = getCuratedSiteStyle(current.previewed.siteStyleId);
|
|
3251
|
-
if (!siteStyle) return current;
|
|
3252
|
-
const models = buildSiteChromeLookModels({
|
|
3253
|
-
state: current,
|
|
3254
|
-
siteStyle,
|
|
3255
|
-
headerSelectionContext,
|
|
3256
|
-
footerSelectionContext
|
|
3257
|
-
});
|
|
3258
|
-
const nextLookId = planSiteChromeFooterLayoutSelection({
|
|
3259
|
-
layoutId: id,
|
|
3260
|
-
currentLookId: current.previewed.footerLookId ?? models.footer.renderedLookId
|
|
3261
|
-
});
|
|
3262
|
-
return nextLookId ? previewFooterLook(current, nextLookId) : current;
|
|
3263
|
-
});
|
|
3264
|
-
}, [footerSelectionContext, headerSelectionContext]);
|
|
3265
3353
|
const handlePreviewPaletteItem = useCallback((item) => {
|
|
3266
3354
|
setState((current) => {
|
|
3267
3355
|
if (!current) return current;
|
|
@@ -3289,15 +3377,10 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3289
3377
|
siteStyle,
|
|
3290
3378
|
selection: current.previewed,
|
|
3291
3379
|
baseTheme: theme,
|
|
3292
|
-
headerSelectionContext
|
|
3293
|
-
footerSelectionContext
|
|
3380
|
+
headerSelectionContext
|
|
3294
3381
|
}).themeOverlay.typography, patch);
|
|
3295
3382
|
});
|
|
3296
|
-
}, [
|
|
3297
|
-
footerSelectionContext,
|
|
3298
|
-
headerSelectionContext,
|
|
3299
|
-
theme
|
|
3300
|
-
]);
|
|
3383
|
+
}, [headerSelectionContext, theme]);
|
|
3301
3384
|
const handleHeadingTypographyChange = useCallback((patch) => {
|
|
3302
3385
|
patchTypography({
|
|
3303
3386
|
kind: "heading",
|
|
@@ -3375,15 +3458,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3375
3458
|
setState(live);
|
|
3376
3459
|
}
|
|
3377
3460
|
const previewed = live.previewed;
|
|
3378
|
-
|
|
3379
|
-
if (!siteStyle) return;
|
|
3380
|
-
const compiled = planSiteStylePreviewChange({
|
|
3381
|
-
siteStyle,
|
|
3382
|
-
selection: previewed,
|
|
3383
|
-
baseTheme: theme,
|
|
3384
|
-
headerSelectionContext,
|
|
3385
|
-
footerSelectionContext
|
|
3386
|
-
});
|
|
3461
|
+
if (!getCuratedSiteStyle(previewed.siteStyleId)) return;
|
|
3387
3462
|
await runnerRef.current.run({
|
|
3388
3463
|
optimistic: () => {
|
|
3389
3464
|
applyStarted("style-configurator");
|
|
@@ -3392,15 +3467,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3392
3467
|
network: async () => {
|
|
3393
3468
|
const body = buildApplySiteStyleSelectionBody({
|
|
3394
3469
|
base: live.base,
|
|
3395
|
-
previewed
|
|
3396
|
-
...previewed,
|
|
3397
|
-
buttonPersonalityId: compiled.resolvedSelections.buttonPersonalityId,
|
|
3398
|
-
headerLayoutId: compiled.resolvedSelections.headerLayoutId,
|
|
3399
|
-
headerStyleId: compiled.resolvedSelections.headerStyleId,
|
|
3400
|
-
headerLookId: compiled.resolvedSelections.headerLookId,
|
|
3401
|
-
footerLookId: compiled.resolvedSelections.footerLookId,
|
|
3402
|
-
typography: compiled.themeOverlay.typography
|
|
3403
|
-
},
|
|
3470
|
+
previewed,
|
|
3404
3471
|
selectionId
|
|
3405
3472
|
});
|
|
3406
3473
|
if (!body.ok) throw new StyleApplyPlanError(paletteApplyPlanErrorMessage(body.error));
|
|
@@ -3432,7 +3499,6 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3432
3499
|
});
|
|
3433
3500
|
}, [
|
|
3434
3501
|
apiClient,
|
|
3435
|
-
footerSelectionContext,
|
|
3436
3502
|
headerSelectionContext,
|
|
3437
3503
|
applyFailed,
|
|
3438
3504
|
applyStarted,
|
|
@@ -3458,29 +3524,26 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3458
3524
|
className: "text-sm text-muted-foreground",
|
|
3459
3525
|
children: "This site uses a Site Style that cannot be configured here."
|
|
3460
3526
|
});
|
|
3461
|
-
const currentPersonality = findButtonPersonality(state.previewed.buttonPersonalityId);
|
|
3462
3527
|
const currentPalette = palettePreviewProjection(state.previewed.palette);
|
|
3463
3528
|
const paletteMutation = paletteMutationCapability(state);
|
|
3464
3529
|
const paletteControlsDisabled = saving || !stagedCapabilities.canPreviewStaged || paletteMutation.kind !== "editable";
|
|
3465
3530
|
const currentCuratedValueKey = currentPalette.kind === "curated" ? currentPalette.valueKey : currentPalette.kind === "curated-fork" ? currentPalette.sourceValueKey : null;
|
|
3466
3531
|
const currentCuratedPalette = currentCuratedValueKey ? findCuratedPalette(currentCuratedValueKey) : null;
|
|
3467
3532
|
const paletteIsCustom = currentPalette.kind !== "invalid" && (!currentCuratedPalette || currentPalette.mode !== currentCuratedPalette.mode || !paletteColorsEqual(currentPalette.colors, currentCuratedPalette.colors));
|
|
3468
|
-
const
|
|
3533
|
+
const currentPreviewPlan = planSiteStylePreviewChange({
|
|
3469
3534
|
siteStyle: currentSiteStyle,
|
|
3470
3535
|
selection: state.previewed,
|
|
3471
3536
|
baseTheme: theme,
|
|
3472
|
-
headerSelectionContext
|
|
3473
|
-
|
|
3474
|
-
|
|
3537
|
+
headerSelectionContext
|
|
3538
|
+
});
|
|
3539
|
+
const currentTypography = currentPreviewPlan.themeOverlay.typography;
|
|
3475
3540
|
const chromeLookModels = buildSiteChromeLookModels({
|
|
3476
3541
|
state,
|
|
3477
3542
|
siteStyle: currentSiteStyle,
|
|
3478
|
-
headerSelectionContext
|
|
3479
|
-
footerSelectionContext
|
|
3543
|
+
headerSelectionContext
|
|
3480
3544
|
});
|
|
3481
3545
|
const currentHeaderLayout = getHeaderLayout(state.previewed.headerLayoutId);
|
|
3482
3546
|
const currentHeaderStyle = getHeaderStyle(state.previewed.headerStyleId);
|
|
3483
|
-
const currentFooterLayout = getFooterLayout(chromeLookModels.footerLayout.renderedLayoutId);
|
|
3484
3547
|
const currentFooterLook = state.previewed.footerLookId ? findFooterLook(state.previewed.footerLookId) : findFooterLook(chromeLookModels.footer.renderedLookId);
|
|
3485
3548
|
const headerSurfaceState = siteChromeCustomize?.getSurfaceState("header") ?? { kind: "unavailable" };
|
|
3486
3549
|
if (state.expandedRow === "typography" && typographySurface.kind !== "overview") return /* @__PURE__ */ jsxs("div", {
|
|
@@ -3573,32 +3636,14 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3573
3636
|
}) : null
|
|
3574
3637
|
}),
|
|
3575
3638
|
/* @__PURE__ */ jsx(SiteChromeLookRow, {
|
|
3576
|
-
label: "Footer
|
|
3577
|
-
ariaLabel: "Footer
|
|
3578
|
-
defaultDescription: "
|
|
3579
|
-
expanded: state.expandedRow === "footer-layout",
|
|
3580
|
-
onToggle: () => handleToggleRow("footer-layout"),
|
|
3581
|
-
currentId: chromeLookModels.footerLayout.renderedLayoutId,
|
|
3582
|
-
currentLabel: currentFooterLayout?.label ?? chromeLookModels.footerLayout.renderedLayoutId,
|
|
3583
|
-
scopeDescription: "Changes the footer structure on every page.",
|
|
3584
|
-
options: chromeLookModels.footerLayout.options,
|
|
3585
|
-
diagnostics: [],
|
|
3586
|
-
onCycle: (direction) => {
|
|
3587
|
-
const next = cycleSiteChromeLookId(chromeLookModels.footerLayout.options, chromeLookModels.footerLayout.renderedLayoutId, direction);
|
|
3588
|
-
if (next !== void 0) handlePreviewFooterLayout(next);
|
|
3589
|
-
},
|
|
3590
|
-
onPreview: handlePreviewFooterLayout,
|
|
3591
|
-
disabled: aggregateMutationControlsDisabled
|
|
3592
|
-
}),
|
|
3593
|
-
/* @__PURE__ */ jsx(SiteChromeLookRow, {
|
|
3594
|
-
label: "Footer look",
|
|
3595
|
-
ariaLabel: "Footer look",
|
|
3596
|
-
defaultDescription: "Use the footer look chosen for this site style.",
|
|
3639
|
+
label: "Footer links",
|
|
3640
|
+
ariaLabel: "Footer link treatment",
|
|
3641
|
+
defaultDescription: "Use the footer link treatment chosen for this site style.",
|
|
3597
3642
|
expanded: state.expandedRow === "footer",
|
|
3598
3643
|
onToggle: () => handleToggleRow("footer"),
|
|
3599
3644
|
currentId: state.previewed.footerLookId,
|
|
3600
|
-
currentLabel: state.previewed.footerLookId ? currentFooterLook?.label ?? "Unknown footer
|
|
3601
|
-
scopeDescription: "Changes
|
|
3645
|
+
currentLabel: state.previewed.footerLookId ? currentFooterLook?.label ?? "Unknown footer link treatment" : `${currentFooterLook?.label ?? "Site style"} (default)`,
|
|
3646
|
+
scopeDescription: "Changes footer navigation links on every page.",
|
|
3602
3647
|
options: chromeLookModels.footer.options,
|
|
3603
3648
|
diagnostics: chromeLookModels.footer.diagnostics,
|
|
3604
3649
|
onCycle: (direction) => {
|
|
@@ -3608,13 +3653,13 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3608
3653
|
onPreview: handlePreviewFooterLook,
|
|
3609
3654
|
disabled: aggregateMutationControlsDisabled
|
|
3610
3655
|
}),
|
|
3611
|
-
/* @__PURE__ */ jsx(
|
|
3656
|
+
/* @__PURE__ */ jsx(ButtonStyleRow, {
|
|
3612
3657
|
expanded: state.expandedRow === "buttons",
|
|
3613
3658
|
onToggle: () => handleToggleRow("buttons"),
|
|
3614
3659
|
siteStyle: currentSiteStyle,
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
onPreview:
|
|
3660
|
+
current: state.previewed.buttonStyleSelection,
|
|
3661
|
+
previewTheme: currentPreviewPlan.themeOverlay,
|
|
3662
|
+
onPreview: handlePreviewButtonStyle,
|
|
3618
3663
|
disabled: aggregateMutationControlsDisabled
|
|
3619
3664
|
}),
|
|
3620
3665
|
/* @__PURE__ */ jsx(TypographyRow, {
|
|
@@ -3703,7 +3748,7 @@ function StyleConfiguratorSaveControls({ previewingChange, applyAllowed, saving,
|
|
|
3703
3748
|
}) : null
|
|
3704
3749
|
] });
|
|
3705
3750
|
}
|
|
3706
|
-
function StyleRowFrame({ label, currentLabel, swatch, expanded, onToggle, children }) {
|
|
3751
|
+
function StyleRowFrame({ label, currentLabel, currentSummary, swatch, expanded, onToggle, children }) {
|
|
3707
3752
|
return /* @__PURE__ */ jsx(Collapsible, {
|
|
3708
3753
|
open: expanded,
|
|
3709
3754
|
onOpenChange: onToggle,
|
|
@@ -3722,7 +3767,10 @@ function StyleRowFrame({ label, currentLabel, swatch, expanded, onToggle, childr
|
|
|
3722
3767
|
children: [/* @__PURE__ */ jsx("div", {
|
|
3723
3768
|
className: "text-xs uppercase tracking-wide text-muted-foreground",
|
|
3724
3769
|
children: label
|
|
3725
|
-
}), /* @__PURE__ */ jsx("div", {
|
|
3770
|
+
}), currentSummary ? /* @__PURE__ */ jsx("div", {
|
|
3771
|
+
"aria-label": currentLabel,
|
|
3772
|
+
children: currentSummary
|
|
3773
|
+
}) : /* @__PURE__ */ jsx("div", {
|
|
3726
3774
|
className: "truncate text-sm font-medium",
|
|
3727
3775
|
children: currentLabel
|
|
3728
3776
|
})]
|
|
@@ -3761,23 +3809,23 @@ function SiteStyleRow({ expanded, onToggle, current, onPreview, disabled }) {
|
|
|
3761
3809
|
})
|
|
3762
3810
|
});
|
|
3763
3811
|
}
|
|
3764
|
-
function
|
|
3812
|
+
function ButtonStyleRow({ expanded, onToggle, siteStyle, current, previewTheme, onPreview, disabled }) {
|
|
3765
3813
|
return /* @__PURE__ */ jsx(StyleRowFrame, {
|
|
3766
3814
|
label: "Button style",
|
|
3767
|
-
currentLabel,
|
|
3815
|
+
currentLabel: findButtonStyleRecipe(current.styleId).accessibilityLabel,
|
|
3816
|
+
currentSummary: /* @__PURE__ */ jsx(ButtonStylePreviewPair, {
|
|
3817
|
+
selection: current,
|
|
3818
|
+
previewTheme,
|
|
3819
|
+
compact: true
|
|
3820
|
+
}),
|
|
3768
3821
|
expanded,
|
|
3769
3822
|
onToggle,
|
|
3770
|
-
children: /* @__PURE__ */ jsx(
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
label: personality.name,
|
|
3777
|
-
description: personality.description,
|
|
3778
|
-
onSelect: () => onPreview(personality.id),
|
|
3779
|
-
disabled
|
|
3780
|
-
}, personality.id))
|
|
3823
|
+
children: /* @__PURE__ */ jsx(ButtonStylePicker, {
|
|
3824
|
+
selections: siteStyle.buttonStyleChoices,
|
|
3825
|
+
current,
|
|
3826
|
+
previewTheme,
|
|
3827
|
+
onPreview,
|
|
3828
|
+
disabled
|
|
3781
3829
|
})
|
|
3782
3830
|
});
|
|
3783
3831
|
}
|
|
@@ -4175,6 +4223,7 @@ function paletteApplyPlanErrorMessage(error) {
|
|
|
4175
4223
|
switch (error) {
|
|
4176
4224
|
case "invalid-palette-state": return "Palette details are unavailable. Refresh and try again.";
|
|
4177
4225
|
case "curated-palette-missing": return "This curated palette is no longer available. Refresh and try again.";
|
|
4226
|
+
case "no-selection-changes": return "There are no design changes to apply.";
|
|
4178
4227
|
default: return assertNever$1(error);
|
|
4179
4228
|
}
|
|
4180
4229
|
}
|
|
@@ -4212,7 +4261,6 @@ function expandedRowForPreviewDesignRow(row) {
|
|
|
4212
4261
|
case "header": return "header-layout";
|
|
4213
4262
|
case "header-layout":
|
|
4214
4263
|
case "header-style":
|
|
4215
|
-
case "footer-layout":
|
|
4216
4264
|
case "footer": return row;
|
|
4217
4265
|
default: return assertNever$1(row, "Unhandled preview design row");
|
|
4218
4266
|
}
|
|
@@ -4236,11 +4284,11 @@ function WarningNotice({ warnings, onDismiss }) {
|
|
|
4236
4284
|
});
|
|
4237
4285
|
}
|
|
4238
4286
|
function describeWarning(warning) {
|
|
4239
|
-
return `Button style changed to ${warning.fellBackTo} because ${warning.requested} is not offered for this site style.`;
|
|
4287
|
+
return `Button style changed to ${warning.fellBackTo.styleId} because ${warning.requested} is not offered for this site style.`;
|
|
4240
4288
|
}
|
|
4241
4289
|
//#endregion
|
|
4242
4290
|
//#region ../preview-next/src/client/preview/PreviewEditorSidebar.tsx
|
|
4243
|
-
function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null,
|
|
4291
|
+
function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, pageId, entryData, contentTypeSchema, referenceContentTypeKeys = [], draftContent, currentTemplate, theme, themeId = null, themeSelectionId = null, themeSelectionVersion = null, themeSelectionUpdatedAt = null, themeSelectionButtonStyleSelection = null, runtimePaletteState, themeSelectionHeaderLayoutId = null, themeSelectionHeaderStyleId = null, themeSelectionHeaderLookId = null, themeSelectionFooterLookId = null, themeSelectionHeaderContext, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess = { kind: "hidden" }, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange }) {
|
|
4244
4292
|
const controller = useEntryController();
|
|
4245
4293
|
const controllerBlocks = controller.blocks;
|
|
4246
4294
|
const uiStore = useEditorUiStoreInstance();
|
|
@@ -4367,7 +4415,6 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
|
|
|
4367
4415
|
blockEditorRef,
|
|
4368
4416
|
onBlocksChange: handleBlocksChange,
|
|
4369
4417
|
metadataPanel: metadataSectionContent,
|
|
4370
|
-
designOpenRequestId: designRowRequest?.id ?? null,
|
|
4371
4418
|
designTakeoverActive,
|
|
4372
4419
|
designPanel: canInspectSiteStyle(siteStyleAccess) ? /* @__PURE__ */ jsx(StyleConfigurator, {
|
|
4373
4420
|
siteId,
|
|
@@ -4380,7 +4427,7 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
|
|
|
4380
4427
|
initialSelections: {
|
|
4381
4428
|
selectionVersion: themeSelectionVersion,
|
|
4382
4429
|
selectionUpdatedAt: themeSelectionUpdatedAt,
|
|
4383
|
-
|
|
4430
|
+
buttonStyleSelection: themeSelectionButtonStyleSelection,
|
|
4384
4431
|
runtimePaletteState,
|
|
4385
4432
|
headerLayoutId: themeSelectionHeaderLayoutId,
|
|
4386
4433
|
headerStyleId: themeSelectionHeaderStyleId,
|
|
@@ -4388,8 +4435,6 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
|
|
|
4388
4435
|
footerLookId: themeSelectionFooterLookId
|
|
4389
4436
|
},
|
|
4390
4437
|
headerSelectionContext: themeSelectionHeaderContext,
|
|
4391
|
-
footerSelectionContext: themeSelectionFooterContext,
|
|
4392
|
-
expandedRowRequest: designRowRequest,
|
|
4393
4438
|
onFocusedSurfaceChange: setDesignTakeoverActive,
|
|
4394
4439
|
siteStyleAccess
|
|
4395
4440
|
}) : null,
|
|
@@ -4422,6 +4467,7 @@ function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl = null, page
|
|
|
4422
4467
|
manageLinksHref: `${dashboardBaseUrl?.replace(/\/$/u, "") ?? ""}/dashboard/sites/${siteId}/navigation`,
|
|
4423
4468
|
manageSettingsHref: `${dashboardBaseUrl?.replace(/\/$/u, "") ?? ""}/dashboard/sites/${siteId}/settings`,
|
|
4424
4469
|
legalRegion: theme?.footer?.bottomBar?.enabled === true ? "separate" : "integrated",
|
|
4470
|
+
loadingFallback: /* @__PURE__ */ jsx(ContentSpinner, { className: "py-8" }),
|
|
4425
4471
|
initialTarget: previewInspection.kind === "footer-module" ? {
|
|
4426
4472
|
kind: "module",
|
|
4427
4473
|
moduleId: previewInspection.moduleId
|