@riverbankcms/sdk 0.135.1 → 0.137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +114 -0
- package/README.md +4 -8
- package/dist/{PreviewEditorSidebar-D4p_5TdY.mjs → PreviewEditorSidebar-Bn6cONPa.mjs} +8 -8
- package/dist/{PreviewEditorUI-D0cRoTX1.mjs → PreviewEditorUI-LAwXZPSx.mjs} +3 -3
- package/dist/{PreviewQueryProvider-DcgaESkm.mjs → PreviewQueryProvider-ztQUdsNo.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BKLtM3Nz.mjs → SdkPreviewModeRuntime-BbbGsI_v.mjs} +621 -238
- package/dist/{SiteChromeCustomizeContext-61X2m7QV.mjs → SiteChromeCustomizeContext-BbkNSt5a.mjs} +5041 -2407
- package/dist/_dts/ai/src/contracts/proposals.d.ts +18 -850
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +412 -2316
- package/dist/_dts/ai/src/designer/themePatch.d.ts +5 -10
- package/dist/_dts/api/src/accessAdmin.d.ts +1 -9
- package/dist/_dts/api/src/accountApi.d.ts +49 -2
- package/dist/_dts/api/src/contentRuntime.d.ts +7 -4
- package/dist/_dts/api/src/domainConnection.d.ts +41 -0
- package/dist/_dts/api/src/endpoints.d.ts +201 -181
- package/dist/_dts/api/src/index.d.ts +5 -3
- package/dist/_dts/api/src/media.d.ts +19 -2
- package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +7 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +26 -0
- package/dist/_dts/api/src/sdkBlockContentAdmission.d.ts +5 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -15
- package/dist/_dts/api/src/sdkMediaContracts.d.ts +40 -0
- package/dist/_dts/api/src/sdkMediaEndpointDefinitions.d.ts +61 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +21 -436
- package/dist/_dts/api/src/siteInfrastructure.d.ts +17 -23
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +7 -21
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +27 -3
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +37 -17
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +2 -3
- package/dist/_dts/block-form/src/utils/slug.d.ts +6 -0
- package/dist/_dts/blocks/src/PageRenderer.d.ts +13 -7
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +48 -0
- package/dist/_dts/blocks/src/definitions.d.ts +14 -0
- package/dist/_dts/blocks/src/index.d.ts +4 -3
- package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +49 -0
- package/dist/_dts/blocks/src/pageRendererBlockSupport.d.ts +75 -0
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +2 -0
- package/dist/_dts/blocks/src/server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +78 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +2 -18
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +103 -16
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +19 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +47 -21
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +38 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/ErrorStep.d.ts +3 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorPresentation.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +25 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationWizardContext.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +8 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +43 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/capacity.d.ts +164 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/cta.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +47 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/people.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/pricing.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarNavigationChevron.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModalContext.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/OfferingTitle.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +31 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/listingLayout.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +4 -3
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +0 -1
- package/dist/_dts/calendar/src/grid.d.ts +24 -66
- package/dist/_dts/calendar/src/index.d.ts +2 -2
- package/dist/_dts/calendar/src/timetable.d.ts +5 -9
- package/dist/_dts/commerce/src/purchase/allocation.d.ts +11 -0
- package/dist/_dts/commerce/src/purchase/event-registration-errors.d.ts +57 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +3 -0
- package/dist/_dts/commerce/src/purchase/settlement.d.ts +33 -0
- package/dist/_dts/commerce/src/purchase/stripeCheckoutReturnUrl.d.ts +8 -0
- package/dist/_dts/content-model/src/templates/defaults.d.ts +6 -0
- package/dist/_dts/core/src/slug.d.ts +20 -5
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +8 -40
- package/dist/_dts/db/src/index.d.ts +1 -0
- package/dist/_dts/db/src/utils/postgrestFilter.d.ts +2 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +4 -0
- package/dist/_dts/media-core/src/fileDomain.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeBrandPreferences.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlSaveRequest.d.ts +51 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +24 -2
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +23 -1
- package/dist/_dts/preview-next/src/client/preview/usePersistedHeaderPreferences.d.ts +8 -0
- package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +6 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +7 -2
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +10 -6
- package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/footerPageOutline.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -0
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +17 -0
- package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +9 -3
- package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +7 -4
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/types.d.ts +8 -8
- package/dist/_dts/theme-core/src/data.d.ts +12 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +5 -0
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +25 -2
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +2 -6
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -810
- package/dist/_dts/theme-core/src/schema.d.ts +460 -1285
- package/dist/_dts/theme-core/src/site-styles/compilationPlan.d.ts +43 -3
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +223 -1
- package/dist/_dts/theme-core/src/site-styles/headerBrandPresentation.d.ts +63 -0
- package/dist/_dts/theme-core/src/site-styles/headerBytesComparison.d.ts +30 -0
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/headerLayoutCatalog.d.ts +48 -38
- package/dist/_dts/theme-core/src/site-styles/headerLayoutStyles.d.ts +10 -0
- package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +8 -5
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerPreferences.d.ts +162 -0
- package/dist/_dts/theme-core/src/site-styles/headerPreferencesPersistence.d.ts +73 -0
- package/dist/_dts/theme-core/src/site-styles/headerRecompile.d.ts +118 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleCompiler.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/headerStyleDefaults.d.ts +465 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleRecipe.d.ts +168 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +43 -2
- package/dist/client/{BookingConsentAgreement-Bz9znbpn.mjs → BookingConsentAgreement--_fUCZe-.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-35Ru8yB9.mjs → DiscountCodeDisclosure-BMipSoDJ.mjs} +1 -1
- package/dist/client/{EventCombined.client-BKB0ZxRR.mjs → EventCombined.client-CwJOxn7A.mjs} +274 -278
- package/dist/client/{EventListing.client-Dx8I21ok.mjs → EventListing.client-eVwiylPW.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CEWx-Bhe.mjs → LeafletStaticMap-IKenna5u.mjs} +1 -1
- package/dist/client/{accordion-KIDsKTwS.mjs → accordion-MGAO3PuE.mjs} +1 -1
- package/dist/client/{bookingForm-D96Rmp-5.mjs → bookingForm-CudlQPUu.mjs} +5 -5
- package/dist/client/bookings.mjs +476 -98
- package/dist/client/capacity-BW00PO7s.mjs +271 -0
- package/dist/client/{carousel-YwUgyL66.mjs → carousel-BrbGJ2Jl.mjs} +1 -1
- package/dist/client/{cart-BbwuNrUT.mjs → cart-Bq5eU0xZ.mjs} +3 -3
- package/dist/client/{checkout-hp1ucmEY.mjs → checkout-BAFVRdrK.mjs} +3 -3
- package/dist/client/client.mjs +4641 -2721
- package/dist/client/{context-DljQn8L5.mjs → context-DCkiHVdD.mjs} +20 -5
- package/dist/client/dates-2RPXHQy4.mjs +264 -0
- package/dist/client/{eventCalendar-DU4iNLpo.mjs → eventCalendar-B0O-hPF7.mjs} +261 -126
- package/dist/client/{eventCombined-CZuupW8m.mjs → eventCombined-DCkDaoDI.mjs} +3 -3
- package/dist/client/{eventDetails-DPQWwCIi.mjs → eventDetails-D8GG2dnD.mjs} +7 -4
- package/dist/client/{eventListing-C7oMidwS.mjs → eventListing-3ssV_bxz.mjs} +3 -3
- package/dist/client/{eventRegistration-zEiunlUs.mjs → eventRegistration-bPQo3kVw.mjs} +610 -313
- package/dist/client/{form-D2KIyCVJ.mjs → form-qMv8RDkk.mjs} +2 -2
- package/dist/client/{headerSection-CK5uChUK.mjs → headerSection-CH0Sc5hX.mjs} +2 -2
- package/dist/client/hooks.mjs +2514 -308
- package/dist/client/{locationMap-DLQNH1ln.mjs → locationMap-0_xlBnNI.mjs} +2 -2
- package/dist/client/{newsletterForm-ZuhIG7fZ.mjs → newsletterForm-NUW7m9RI.mjs} +2 -2
- package/dist/client/{productDetail-7hIcGeae.mjs → productDetail-FBEOM7jW.mjs} +3 -3
- package/dist/client/{productList-T4Cii1ot.mjs → productList-R0OSGhnn.mjs} +3 -3
- package/dist/client/{propsDecoder-mB0aC_Fi.mjs → propsDecoder-pYvx_Srl.mjs} +179 -401
- package/dist/client/rendering/client.mjs +3496 -2223
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +4400 -2510
- package/dist/client/{scrollToBlock-Du5mHgvL.mjs → scrollToBlock-ByQv96M2.mjs} +1 -1
- package/dist/client/{shop-B5zAcKZn.mjs → shop-RUG9DmRE.mjs} +6 -6
- package/dist/client/{shop-commerce-BKBZB6l5.mjs → shop-commerce-B76Jz23B.mjs} +5 -5
- package/dist/client/{shop-commerce-store-Cq4qlNtQ.mjs → shop-commerce-store-QuQNdDsD.mjs} +1 -1
- package/dist/client/{shopShared-DYGzEs9D.mjs → shopShared-vXU1omwJ.mjs} +3 -3
- package/dist/client/{useEventFilters-Bphkda8m.mjs → useEventFilters-ByuU6HLA.mjs} +33 -18
- package/dist/preview-next/before-render.mjs +86 -51
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +86 -51
- package/dist/preview-next/middleware.mjs +86 -51
- package/dist/{previewAuthStore-C7ksxt5b.mjs → previewAuthStore-L_cKW8Sb.mjs} +86 -51
- package/dist/{sdk-runtime-BbIC8G4J.mjs → sdk-runtime-sUMr5d70.mjs} +2 -2
- package/dist/{separator-CadhAtI7.mjs → separator-BIHkie5i.mjs} +1 -1
- package/dist/server/components.mjs +4397 -2960
- package/dist/server/config-validation.mjs +354 -145
- package/dist/server/config.mjs +354 -145
- package/dist/server/data.mjs +354 -144
- package/dist/server/index.mjs +201 -55
- package/dist/server/manifest.mjs +0 -1
- package/dist/server/next.mjs +4046 -2611
- package/dist/server/page-converter.mjs +225 -122
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4105 -2636
- package/dist/server/rendering.mjs +4522 -3087
- package/dist/server/routing.mjs +3289 -1637
- package/dist/server/server.mjs +23175 -21079
- package/dist/server/theme-bridge.mjs +708 -272
- package/dist/server/theme.mjs +29 -25
- package/dist/styles/index.css +624 -181
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +0 -48
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +0 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +0 -100
- /package/dist/_dts/blocks/src/system/runtime/nodes/events/{shared → domain}/destination.d.ts +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,120 @@ and then gets the version it went out in.
|
|
|
7
7
|
|
|
8
8
|
## Unreleased
|
|
9
9
|
|
|
10
|
+
### Theme contract changes (#1318)
|
|
11
|
+
|
|
12
|
+
- **`saveSiteChromeSelection`'s header body no longer carries a `theme`.** The
|
|
13
|
+
surface used to send the whole compiled theme alongside `layoutId`, `styleId`
|
|
14
|
+
and `preferences` — the Phase 4b dual write — and the server compared the two
|
|
15
|
+
headers and logged a mismatch. The server has been the author of those bytes
|
|
16
|
+
since 4b, so the second copy was only ever a measurement: it is gone, and with
|
|
17
|
+
it the `theme:site_chrome_selection:header_compilation_mismatch` log. The
|
|
18
|
+
footer surface still sends a theme, because a footer save's change *is* a
|
|
19
|
+
theme. The save response is unchanged and still returns the persisted theme,
|
|
20
|
+
which is what a client reconciles to.
|
|
21
|
+
|
|
22
|
+
- **`sdkUpsertTheme`'s update body takes a theme with no `header`.** `POST
|
|
23
|
+
/sdk/{siteId}/theme` used to accept and persist whatever `theme.header` an SDK
|
|
24
|
+
consumer sent, which was the last route through which raw header bytes reached
|
|
25
|
+
persistence. `theme` is now `SdkThemeWireWithoutHeader` (exported from
|
|
26
|
+
`@riverbankcms/api`), and the header is compiled server-side from the site's
|
|
27
|
+
stored selection and `header_preferences` against the site style the body
|
|
28
|
+
authors. A body carrying a `header` is rejected rather than silently stripped.
|
|
29
|
+
A site whose current theme row cannot be read is refused rather than
|
|
30
|
+
re-provisioned.
|
|
31
|
+
|
|
32
|
+
- **`saveSiteTheme`'s body takes a theme with no `header`.** `theme` is now
|
|
33
|
+
`Omit<Theme, 'header'>` (`ThemeWithoutHeader`, exported from
|
|
34
|
+
`@riverbankcms/api`), derived at the route from `themeSchema.omit({ header:
|
|
35
|
+
true })`. The header is compiled server-side from the row's stored selection
|
|
36
|
+
and `header_preferences`; `headerSelection` still names the selection to
|
|
37
|
+
compile for. This was the last path by which hand-written header bytes could
|
|
38
|
+
reach persistence. A save against a site with no current theme selection is
|
|
39
|
+
now refused with `THEME_SELECTION_NOT_FOUND` rather than falling back to a
|
|
40
|
+
site-style default, and the header selection it stores is the one the shared
|
|
41
|
+
pipeline resolves — which applies the site style's **curated** repair, not
|
|
42
|
+
only the catalogue's. A body naming a (layout, style) pair the site style does
|
|
43
|
+
not offer now stores the repaired pair, so the persisted ids and the persisted
|
|
44
|
+
bytes always name the same selection.
|
|
45
|
+
|
|
46
|
+
- **`HeaderPreferences` gains a required `brandPresentation` field**
|
|
47
|
+
(`'recommended' | 'plain'`), and `headerPreferencesSchema` requires it. It
|
|
48
|
+
says whether the header wears a brand presentation block at all. `'plain'` is
|
|
49
|
+
the state several live rows persist — no `logo` object — which the record
|
|
50
|
+
could not express before, so a recompile would have given those sites a logo
|
|
51
|
+
treatment they have never rendered. This is a **widening**: `'recommended'` is
|
|
52
|
+
the default and reproduces the previous behaviour exactly, and the header
|
|
53
|
+
parity lockfile is unchanged. Consumers that construct a `HeaderPreferences`
|
|
54
|
+
literal must add the field; consumers that only read one are unaffected.
|
|
55
|
+
|
|
56
|
+
- **`readHeaderPreferences` is no longer exported.** It gained a fourth
|
|
57
|
+
argument — the two headers the brand-presentation modes compile to, because
|
|
58
|
+
the mode is derived by comparing the persisted `logo` against both — and the
|
|
59
|
+
type of that argument was never on the package surface, so the export was a
|
|
60
|
+
function no consumer could call. Deriving a record from persisted bytes goes
|
|
61
|
+
through `recompileSiteChromeHeaderFromPersistedIntent`, which builds the
|
|
62
|
+
candidates itself and has always been the supported way to do it.
|
|
63
|
+
|
|
64
|
+
- **`headerPreferencesWireSchema` is exported alongside `headerPreferencesSchema`.** It is the
|
|
65
|
+
same record with `brandPresentation` defaulting to `'recommended'`, for bodies arriving from a
|
|
66
|
+
client build that predates the field. The field is not client-authored — the server reads the
|
|
67
|
+
mode off the row — so defaulting it on the wire loses nothing, and the persisted schema keeps
|
|
68
|
+
requiring it so a stored record can never be incomplete.
|
|
69
|
+
|
|
70
|
+
- **`headerLogoShapeContext` is exported from
|
|
71
|
+
`@riverbankcms/theme-core/site-styles`.** It is the one definition of "the
|
|
72
|
+
site's logo as the header pipeline sees it", from an asset (or its absence)
|
|
73
|
+
and the accommodation the row persists. The dashboard's server lookup and the
|
|
74
|
+
#1318 Phase 4c migration generator both go through it.
|
|
75
|
+
|
|
76
|
+
- **`APIEndpoints` no longer carries `createTheme`, and `POST /ai/chat/create-theme`
|
|
77
|
+
no longer exists.** The endpoint generated theme proposals from a site id and
|
|
78
|
+
had no caller anywhere — not in the dashboard, not in the SDK's own
|
|
79
|
+
`PublicAPIEndpoints`, not in the e2e or integration suites. Site creation goes
|
|
80
|
+
through `generateThemes` (`POST /theme/generate`), which is what the wizard has
|
|
81
|
+
always called. The `ThemeGenerationTurn` type it was the sole user of is
|
|
82
|
+
removed with it.
|
|
83
|
+
|
|
84
|
+
- **`APIEndpoints` no longer carries `generateThemes`, and `POST /theme/generate`
|
|
85
|
+
no longer exists.** It generated three AI theme proposals for a site, and its
|
|
86
|
+
only caller was the site-creation wizard's theme step, which no navigation
|
|
87
|
+
ever reached — the page was reachable only by typing its URL. The step and the
|
|
88
|
+
whole generator chain behind it are gone. Like `createTheme`, this endpoint is
|
|
89
|
+
not in `PublicAPIEndpoints`, so the SDK's hand-written public surface is
|
|
90
|
+
unchanged; what narrows is the bundled `@riverbankcms/api` declarations.
|
|
91
|
+
`ThemeRow` stays exported from the package — it was only ever this endpoint's
|
|
92
|
+
response element there, but it is a general row type.
|
|
93
|
+
|
|
94
|
+
- **`header.maxWidth` is now optional on the way in.** It gained a schema
|
|
95
|
+
default of `'container'`, so `SdkThemeWire` (`z.input<typeof themeSchema>`)
|
|
96
|
+
accepts a theme body that omits it, where before the field was required and a
|
|
97
|
+
body without it failed to parse. This is a widening — every theme that parsed
|
|
98
|
+
before still parses, and the parsed value is unchanged, since the field only
|
|
99
|
+
ever holds `'container'` in practice. Nothing authors it any more: the field
|
|
100
|
+
is layout-owned, and full-bleed headers will come back as a layout facet
|
|
101
|
+
rather than a free-form value if they are ever wanted.
|
|
102
|
+
|
|
103
|
+
- **`header.interactionPalette` accepts a fourth value, `'quiet'`.** The header
|
|
104
|
+
hover-colour vocabulary was `primary | secondary | accent`, all of which fill
|
|
105
|
+
the nav link with a colour on hover and focus. `'quiet'` means "no fill" — the
|
|
106
|
+
header style's own hover treatment stands and the palette step writes nothing.
|
|
107
|
+
This is a widening of the persisted theme enum, so every theme that parsed
|
|
108
|
+
before still parses and no existing value changes meaning; a consumer that
|
|
109
|
+
exhaustively switches on the palette needs a branch for it.
|
|
110
|
+
|
|
111
|
+
### Breaking: manifest content uses explicit trust stages (#1245)
|
|
112
|
+
|
|
113
|
+
- SDK rendering now exposes `RenderablePageOutline` values whose blocks carry a
|
|
114
|
+
closed render-admission result. Valid blocks contain renderable content;
|
|
115
|
+
invalid content or an unavailable manifest remains represented as an invalid
|
|
116
|
+
block admission so hosts can diagnose it without receiving rejected content.
|
|
117
|
+
- `EditorPageRenderer` is the explicit raw/incomplete editor entrypoint. The
|
|
118
|
+
production renderer no longer accepts the `usePlaceholders` trust-stage
|
|
119
|
+
switch.
|
|
120
|
+
- The JSON transport remains record-shaped, but consumers constructing or
|
|
121
|
+
inspecting renderer page outlines must handle the new admission contract.
|
|
122
|
+
No deprecated aliases or compatibility mode are retained.
|
|
123
|
+
|
|
10
124
|
### Routable content includes native page surfaces (#1332)
|
|
11
125
|
|
|
12
126
|
- **`RoutableContentItem` is now a discriminated union.** The public routable-
|
package/README.md
CHANGED
|
@@ -1135,16 +1135,12 @@ const { baseUrl } = getRiverbankEnv();
|
|
|
1135
1135
|
pageId="page-456"
|
|
1136
1136
|
previewStage="preview" // or "published"
|
|
1137
1137
|
client={client}
|
|
1138
|
-
|
|
1139
|
-
// Editor-mid-edit fallback: when strict manifest validation fails (e.g.
|
|
1140
|
-
// a required field is temporarily empty), retry against a relaxed
|
|
1141
|
-
// validator over the same content so valid in-flight fields still
|
|
1142
|
-
// render instead of flipping the block to the red "Invalid content"
|
|
1143
|
-
// fallback. Leave unset (or `false`) for production frontends.
|
|
1144
|
-
usePlaceholders={true}
|
|
1145
1138
|
/>
|
|
1146
1139
|
```
|
|
1147
1140
|
|
|
1141
|
+
`Block` uses strict manifest validation. Editor-owned incomplete draft previews
|
|
1142
|
+
must use the editor renderer rather than weakening this production boundary.
|
|
1143
|
+
|
|
1148
1144
|
### CTA Links with Page/Entry Identifiers
|
|
1149
1145
|
|
|
1150
1146
|
Block content can reference pages and content entries using stable identifiers instead of UUIDs. These links are resolved at render time:
|
|
@@ -2680,7 +2676,7 @@ The optional theme-independent wrapper belongs inside `rendering`: use `runtime:
|
|
|
2680
2676
|
|
|
2681
2677
|
`SiteResponse.theme` is required but nullable: `Theme | null`. A null value means the CMS has no theme; it does not select a rendering mode. Override-only rendering deliberately ignores it. Themed catch-all rendering first prefers explicit `theme`, `themes`, or `getTheme` inputs, then uses the CMS theme. If none resolves, it throws the exported `MissingSdkThemeError` with code `missing_sdk_theme` before theme parsing or token construction.
|
|
2682
2678
|
|
|
2683
|
-
The nullable contract
|
|
2679
|
+
The nullable contract was published before the server stopped supplying its temporary fallback. Externally pinned hosts must use that SDK contract and either opt into override-only rendering or provide a real local/CMS theme.
|
|
2684
2680
|
|
|
2685
2681
|
Keep the `server-only` marker at the top of the registry so Next.js turns an accidental Client Component import into a build error. `generateMetadata()` never receives or runs host loaders—even with `customMetadata`—so a normal request does not repeat host queries for metadata and rendering.
|
|
2686
2682
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { $ as FooterComposerPanel, $a as
|
|
3
|
-
import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-
|
|
4
|
-
import { t as Separator } from "./separator-
|
|
5
|
-
import { S as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as buildFontPreviewUrl, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as useBlockCustomizeControls, h as usePreviewSiteFontStorageUrl, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, u as canInspectSiteStyle, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-
|
|
2
|
+
import { $ as FooterComposerPanel, $a as Monitor, $i as SelectItem, A as markApplySaving, Aa as Button, Ar as getHeaderStyle, B as setPaletteColors, Ba as X$1, Bt as useEditorUiStoreInstance, C as cancelPreview, Ca as DropdownMenu, Ci as updateButtonStyleHoverPreference, D as isPreviewingChange, Da as DropdownMenuSeparator, E as dismissWarnings, Ea as DropdownMenuLabel, Ei as themeButtonClassName, En as ThemeScope, Er as getCuratedSiteStyle, F as previewFooterLook, Fi as paletteColorsSchema, H as syncStyleConfiguratorState, I as previewHeaderLayout, Ia as assertNever$1, Ir as curatedPalettes, Ka as Smartphone, L as previewHeaderStyle, M as palettePreviewProjection, Ma as cn, Mi as VARIANT_ROLES, N as previewButtonStyle, Nt as BlockEditor, O as markApplyFailed, Oa as DropdownMenuTrigger, Or as findFooterLook, P as previewCuratedPalette, Pa as unsafeAsEditorBlockId, Pi as paletteColorEntries, Q as resolvePreviewSidebarTab, Qi as SelectContent, R as previewSiteStyle, S as applyTypographyDraftPatch, Sa as Surface, Si as resolveButtonStyleSelection, T as deriveStyleConfiguratorCapabilities, Ta as DropdownMenuItem, Ti as buttonStyleSelectionKey, U as toggleRow, V as styleConfiguratorHistoryEntryForPersistedSelection, Wa as Tablet, X as resolveStyleConfiguratorInitialSnapshot, Z as createOptimisticActionRunner, Zi as Select, _ as reportPreviewDesignError, _n as listEntryPageContentSlots, aa as Popover, an as resolveContentTitle, at as useUISelector, b as planSiteChromeSelection, ba as CollapsibleContent, bi as buttonStyleSelectionParameterValue, c as selectionSnapshotFromApplySiteStyleSelectionResponse, ca as Input, cn as ManifestForm, co as ChevronDown, ct as useEntryController, da as TabsList, dn as FormRenderer, ea as SelectTrigger, eo as Maximize2, f as usePreviewDesignCoordinator, fa as TabsTrigger, g as PREVIEW_DESIGN_SAVE_ERROR_MESSAGE, ia as SearchInput, in as resolvePageRouteSlug, it as ContentFieldsForm, j as openRow, k as markApplySaved, kr as getHeaderLayout, l as deriveSiteStylePreviewUpdate, la as Tabs, lo as Check, n as useSiteChromeCustomizeOptional, na as Callout, oa as PopoverContent, oo as ChevronRight, pn as createStoreBackend, qa as SlidersHorizontal, ra as CalloutDescription, rn as deriveRouteMetadataPresentation, s as buildApplySiteStyleSelectionBody, sa as PopoverTrigger, so as ChevronLeft, ta as SelectValue, tn as isAdapterReferenceKind, to as LoaderCircle, u as planConfiguratorPreview, ua as TabsContent, un as createManifestValidation, v as buildSiteChromeSelectionModels, w as createStyleConfiguratorState, wa as DropdownMenuContent, wi as updateButtonStyleSelectionChoice, wr as curatedSiteStyles, x as applyResolvedSelections, xa as CollapsibleTrigger, xi as findButtonStyleRecipe, y as cycleSiteChromeSelectionId, ya as Collapsible, yi as buttonStyleHoverPreferenceValue, z as resetTypographyToSaved, zt as useEditorUiStore } from "./SiteChromeCustomizeContext-BbkNSt5a.mjs";
|
|
3
|
+
import { d as unwrapResponse, f as getDashboardUrl, r as usePreviewAuth } from "./previewAuthStore-L_cKW8Sb.mjs";
|
|
4
|
+
import { t as Separator } from "./separator-BIHkie5i.mjs";
|
|
5
|
+
import { S as getSiteFontsStorageUrl, _ as usePreviewBlockCustomizeSelectionOptional, b as buildFontPreviewUrl, d as buildPreviewDashboardSetupUrl, f as resolvePreviewDashboardSetupHandoff, g as useBlockCustomizeControls, h as usePreviewSiteFontStorageUrl, m as resolvePreviewSidebarChromeModel, p as resolvePreviewEditorGuidanceModel, u as canInspectSiteStyle, v as PreviewFormProvider, x as generateFontFaceCss, y as previewWidgetOverrides } from "./SdkPreviewModeRuntime-BbbGsI_v.mjs";
|
|
6
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";
|
|
@@ -3670,7 +3670,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3670
3670
|
clearPreview("style-configurator");
|
|
3671
3671
|
return;
|
|
3672
3672
|
}
|
|
3673
|
-
previewTheme("style-configurator",
|
|
3673
|
+
previewTheme("style-configurator", planConfiguratorPreview({
|
|
3674
3674
|
siteStyle,
|
|
3675
3675
|
selection: state.previewed,
|
|
3676
3676
|
headerLogoContext,
|
|
@@ -3706,7 +3706,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3706
3706
|
const next = previewSiteStyle(current, siteStyleId);
|
|
3707
3707
|
const siteStyle = getCuratedSiteStyle(siteStyleId);
|
|
3708
3708
|
if (!siteStyle) return next;
|
|
3709
|
-
const result =
|
|
3709
|
+
const result = planConfiguratorPreview({
|
|
3710
3710
|
siteStyle,
|
|
3711
3711
|
selection: next.previewed,
|
|
3712
3712
|
headerLogoContext,
|
|
@@ -3754,7 +3754,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3754
3754
|
if (!current) return current;
|
|
3755
3755
|
const siteStyle = getCuratedSiteStyle(current.previewed.siteStyleId);
|
|
3756
3756
|
if (!siteStyle) return current;
|
|
3757
|
-
return applyTypographyDraftPatch(current,
|
|
3757
|
+
return applyTypographyDraftPatch(current, planConfiguratorPreview({
|
|
3758
3758
|
siteStyle,
|
|
3759
3759
|
selection: current.previewed,
|
|
3760
3760
|
headerLogoContext,
|
|
@@ -3876,7 +3876,7 @@ function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVer
|
|
|
3876
3876
|
});
|
|
3877
3877
|
const currentPalette = palettePreviewProjection(state.previewed.palette);
|
|
3878
3878
|
const paletteControlsDisabled = saving || !stagedCapabilities.canPreviewStaged;
|
|
3879
|
-
const currentPreviewPlan =
|
|
3879
|
+
const currentPreviewPlan = planConfiguratorPreview({
|
|
3880
3880
|
siteStyle: currentSiteStyle,
|
|
3881
3881
|
selection: state.previewed,
|
|
3882
3882
|
headerLogoContext,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { Aa as
|
|
3
|
-
import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-
|
|
4
|
-
import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME } from "./SdkPreviewModeRuntime-
|
|
2
|
+
import { Aa as Button, At as useEditor, Bt as useEditorUiStoreInstance, Ca as DropdownMenu, Ga as Sparkles, Ha as Undo2, Ji as Tooltip, Ma as cn, Oa as DropdownMenuTrigger, Qa as Palette, Rt as classifyHistoryShortcut, Ta as DropdownMenuItem, Ua as TriangleAlert, Xa as Pencil, Xi as TooltipTrigger, Xt as useMultiAutosave, Ya as Redo2, Yi as TooltipContent, Za as PenLine, _a as DialogHeader, a as previewDesignHistoryDomainForCommand, ao as EllipsisVertical, co as ChevronDown, ha as DialogDescription, i as usePreviewDesignHistoryOrder, io as Eye, ja as cva, lt as useEntryEditorController, ma as DialogContent, n as useSiteChromeCustomizeOptional, o as selectPreviewDesignHistoryDomain, pa as Dialog, to as LoaderCircle, va as DialogTitle, wa as DropdownMenuContent, zt as useEditorUiStore } from "./SiteChromeCustomizeContext-BbkNSt5a.mjs";
|
|
3
|
+
import { d as unwrapResponse, r as usePreviewAuth } from "./previewAuthStore-L_cKW8Sb.mjs";
|
|
4
|
+
import { C as FixedBottomSurface, a as usePreviewPageDesignEditorState, c as applyPreviewChromeSurfaceToElement, l as resolvePreviewChromeSurface, o as PREVIEW_CHROME_PORTAL_CLASS_NAME, s as PREVIEW_CHROME_THEME_CLASS_NAME } from "./SdkPreviewModeRuntime-BbbGsI_v.mjs";
|
|
5
5
|
import * as React$1 from "react";
|
|
6
6
|
import { useCallback, useEffect, useMemo, useState, useTransition } from "react";
|
|
7
7
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as markPreviewAuthExpired, s as ApiRequestError } from "./previewAuthStore-
|
|
2
|
+
import { n as markPreviewAuthExpired, s as ApiRequestError } from "./previewAuthStore-L_cKW8Sb.mjs";
|
|
3
3
|
import { createContext, useContext, useRef } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
5
5
|
import { MutationCache, QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query";
|