@riverbankcms/sdk 0.130.0 → 0.130.2
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 +85 -0
- package/README.md +1 -1
- package/dist/{PreviewEditorSidebar-DiEpbOdw.mjs → PreviewEditorSidebar-BY-1QdE2.mjs} +18 -15
- package/dist/{PreviewEditorUI-C6MvxnIa.mjs → PreviewEditorUI-BS34jI9_.mjs} +3 -3
- package/dist/{PreviewQueryProvider-C2rnoPz6.mjs → PreviewQueryProvider-BD0kOjtI.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DRXA_m5L.mjs → SdkPreviewModeRuntime-B1pWnhu-.mjs} +48 -21
- package/dist/{SiteChromeCustomizeContext-BTHdv5_-.mjs → SiteChromeCustomizeContext-BhUG_72i.mjs} +6180 -5076
- package/dist/_dts/ai/src/contracts/proposals.d.ts +309 -32
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +969 -112
- package/dist/_dts/api/src/accountApi.d.ts +213 -0
- package/dist/_dts/api/src/accountEndpointDefinitions.d.ts +30 -0
- package/dist/_dts/api/src/accountEndpoints.d.ts +254 -0
- package/dist/_dts/api/src/apiCallParams.d.ts +60 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +10 -20
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -5
- package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +15 -0
- package/dist/_dts/api/src/bookingSettingsSections.d.ts +9 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +2 -2
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -0
- package/dist/_dts/api/src/endpoints.d.ts +1253 -1209
- package/dist/_dts/api/src/event-destination-policy.d.ts +1 -1
- package/dist/_dts/api/src/eventManagementContracts.d.ts +83 -7
- package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +26 -0
- package/dist/_dts/api/src/eventSeriesPresentationPreset.d.ts +12 -0
- package/dist/_dts/api/src/index.d.ts +11 -3
- package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -0
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -0
- package/dist/_dts/api/src/oauth.d.ts +8 -0
- package/dist/_dts/api/src/preview-auth.d.ts +26 -0
- package/dist/_dts/api/src/publicExperience/eventEndpoints.d.ts +5 -5
- package/dist/_dts/api/src/publicExperience/wholeSeriesEndpoints.d.ts +0 -1
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -0
- package/dist/_dts/api/src/sdkBlockUpsertContracts.d.ts +48 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +5 -13
- package/dist/_dts/api/src/sdkEventCategoryContracts.d.ts +9 -0
- package/dist/_dts/api/src/sdkThemeWire.d.ts +40 -8
- package/dist/_dts/api/src/settings/permissions.d.ts +2 -2
- package/dist/_dts/api/src/siteApiKeyEndpointDefinitions.d.ts +66 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +3 -3
- package/dist/_dts/api/src/siteOperations.d.ts +1 -1
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +12 -4
- package/dist/_dts/api/src/types.d.ts +7 -59
- package/dist/_dts/block-form/src/client/index.d.ts +15 -23
- package/dist/_dts/block-form/src/index.d.ts +23 -22
- package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +18 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/filtering.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +61 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +24 -22
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +7 -30
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -1
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -63
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +1 -3
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +13 -1
- package/dist/_dts/blocks/src/system/fields/gridLayout.d.ts +20 -0
- package/dist/_dts/blocks/src/system/node/fragments/classNameBinding.d.ts +6 -1
- package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/courses.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +24 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.validationErrors.d.ts +17 -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/eventScope.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +17 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/spacing.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/boxStyleClassNames.d.ts +90 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +4 -0
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +26 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -37
- package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +6 -6
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +6 -6
- package/dist/_dts/core/src/branded.d.ts +4 -0
- package/dist/_dts/core/src/event-page-surface-subject.d.ts +25 -4
- package/dist/_dts/core/src/index.d.ts +3 -0
- package/dist/_dts/core/src/public-event-booking-availability.d.ts +8 -0
- package/dist/_dts/core/src/secret.d.ts +44 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +341 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/preparedManifest.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/button/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewSiteFontStorageContext.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/siteFontPreview.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/sdk/contentStorage.d.ts +10 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -1
- package/dist/_dts/preview-next/src/index.d.ts +1 -0
- package/dist/_dts/preview-next/src/keepAlive.d.ts +3 -5
- package/dist/_dts/preview-next/src/refresh-contract.d.ts +1 -0
- package/dist/_dts/preview-next/src/route-contract.d.ts +7 -0
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +61 -39
- package/dist/_dts/sdk/src/preview-next/keep-alive.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -1
- package/dist/_dts/sdk/src/theme-bridge/types.d.ts +4 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +54 -10
- package/dist/_dts/theme-core/src/cards/decorations.d.ts +33 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +7 -2
- package/dist/_dts/theme-core/src/cards/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/cards/openCardVariant.d.ts +24 -0
- package/dist/_dts/theme-core/src/cards/roles.d.ts +38 -0
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +53 -8
- package/dist/_dts/theme-core/src/cards/types.d.ts +489 -21
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/legacyHeaderVariant.d.ts +59 -0
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +2 -2
- package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +3 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +12 -135
- package/dist/_dts/theme-core/src/palette/utils/contrast.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/utils/opaqueSurfaceColor.d.ts +6 -0
- package/dist/_dts/theme-core/src/runtime/buildThemeRuntimeFromBridge.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +301 -94
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +84 -102
- package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +0 -20
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +84 -102
- package/dist/_dts/theme-core/src/site-styles/cardRoleVocabulary.d.ts +48 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +21 -385
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +10 -18
- package/dist/_dts/theme-core/src/site-styles/headerLayoutTypes.d.ts +2 -4
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +2 -9
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +0 -2
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +5 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignAppearanceAvailability.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorCapabilities.d.ts +22 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +9 -8
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntentEquality.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/previewRuntimeCapabilities.d.ts +19 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +1 -62
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +13 -12
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +50 -39
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +9 -9
- package/dist/_dts/theme-core/src/status/generateStatusCss.d.ts +1 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/surfaces/resolveSurfaceForeground.d.ts +39 -0
- package/dist/_dts/ui/src/navigation-tabs.d.ts +3 -2
- package/dist/client/{CourseRegistrationWizard-Bvtz9G9g.mjs → CourseRegistrationWizard-DGW9F0SQ.mjs} +7 -7
- package/dist/client/{DiscountCodeDisclosure-Ur-Xx1U_.mjs → DiscountCodeDisclosure-BPZ-yfGI.mjs} +1 -1
- package/dist/client/{EventCombined.client-EhscD4U6.mjs → EventCombined.client-Cjt3kKYR.mjs} +4 -4
- package/dist/client/{EventListing.client-Bn26cFTY.mjs → EventListing.client-DY9dn6Fh.mjs} +2 -2
- package/dist/client/{FeedbackMessage-ByMrs3cr.mjs → FeedbackMessage-CtLvvS_d.mjs} +15 -3
- package/dist/client/{LeafletStaticMap-BUw9Ntzr.mjs → LeafletStaticMap--2c61XYn.mjs} +1 -1
- package/dist/client/{StepIndicator-BfbdiVQI.mjs → StepIndicator-CLjQhkDb.mjs} +3 -3
- package/dist/client/{accordion-CjIeof73.mjs → accordion-_boYwHHi.mjs} +1 -1
- package/dist/client/{bookingForm-DwEeovf_.mjs → bookingForm--AqEfyBX.mjs} +56 -39
- package/dist/client/bookings.mjs +393 -192
- package/dist/client/{carousel-BMrfgOba.mjs → carousel-CVI2dqZr.mjs} +2 -2
- package/dist/client/{carousel.client-CpwTUhIo.mjs → carousel.client-59G_WMr4.mjs} +1 -1
- package/dist/client/{cart-rXEdxTdb.mjs → cart-DR6IiPz9.mjs} +3 -3
- package/dist/client/{checkout-D3JlSzh3.mjs → checkout-CsrGAfQt.mjs} +3 -3
- package/dist/client/client.mjs +4524 -3512
- package/dist/client/{colorStyles-BWpj_h4C.mjs → colorStyles-CrxJrPjJ.mjs} +277 -1
- package/dist/client/{context-CJz1Vlsz.mjs → context-B83PiNzm.mjs} +6 -21
- package/dist/client/{courseRegistration-DO5XvMAA.mjs → courseRegistration-aNJVaLa3.mjs} +3 -3
- package/dist/client/{eventCalendar-DO6rTqCn.mjs → eventCalendar-OZ7h59VN.mjs} +6 -6
- package/dist/client/{eventCombined-bJ3i_ovU.mjs → eventCombined-BbJ6bFKz.mjs} +3 -3
- package/dist/client/{eventDetails-CCbrXE7o.mjs → eventDetails-BLyUBiCT.mjs} +3 -3
- package/dist/client/{eventListing-Bdlt9YTm.mjs → eventListing-DuP1yhBS.mjs} +3 -3
- package/dist/client/{eventRegistration-B02lt6iY.mjs → eventRegistration-BXyECPa-.mjs} +11 -12
- package/dist/client/{form-DrUBAAox.mjs → form-BA4t3kKU.mjs} +4 -4
- package/dist/client/{headerSection-MzqvHL6T.mjs → headerSection-CpNaJxhW.mjs} +2 -2
- package/dist/client/hooks.mjs +1967 -2059
- package/dist/client/{locationMap-DG8BxTBm.mjs → locationMap-3HGMCL7_.mjs} +3 -3
- package/dist/client/{media-CNE1Z-wb.mjs → media-BOHuueS5.mjs} +16 -4
- package/dist/client/{newsletterForm-BzO-Td3p.mjs → newsletterForm-C2s6Mw67.mjs} +4 -4
- package/dist/client/{pricing-NgK7ozkg.mjs → pricing-BiqIMgZk.mjs} +1 -1
- package/dist/client/{productDetail-CfQ7rhVK.mjs → productDetail-C9joWhdE.mjs} +3 -3
- package/dist/client/{productList-C23rOLUi.mjs → productList-CjzdU3pB.mjs} +3 -3
- package/dist/client/{propsDecoder-CAZdhwjs.mjs → propsDecoder-CBPGXEYX.mjs} +395 -402
- package/dist/client/rendering/client.mjs +2004 -2856
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +4605 -3496
- package/dist/client/{scrollToBlock-DSSqVQr1.mjs → scrollToBlock-DZ73aEX6.mjs} +1 -1
- package/dist/client/{shop-BMToKLK7.mjs → shop-CQRai7hj.mjs} +7 -7
- package/dist/client/{shop-commerce-DB4JRKmp.mjs → shop-commerce-hP9UboOx.mjs} +8 -8
- package/dist/client/{shop-commerce-store-BOqSIOuc.mjs → shop-commerce-store-DiD5a32e.mjs} +1 -1
- package/dist/client/{shopShared-B6SK9DZv.mjs → shopShared-DP8DXTkF.mjs} +5 -5
- package/dist/client/{useEventFilters-CULOa4nB.mjs → useEventFilters-pF_OJNQP.mjs} +137 -81
- package/dist/client/{usePolling-BGG_8-jl.mjs → usePolling-Cls91SD2.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +192 -108
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +7406 -29
- package/dist/preview-next/middleware.mjs +186 -107
- package/dist/{previewAuthStore-_GXFRg2W.mjs → previewAuthStore-CX1C_KJ4.mjs} +185 -107
- package/dist/{sdk-runtime-hhSOMShR.mjs → sdk-runtime-5CcPAI14.mjs} +2 -2
- package/dist/{separator-flRaFc14.mjs → separator-BXlYN_gr.mjs} +1 -1
- package/dist/server/components.mjs +6363 -4998
- package/dist/server/config-validation.mjs +1967 -2059
- package/dist/server/config.mjs +1967 -2059
- package/dist/server/data.mjs +1967 -2059
- package/dist/server/index.mjs +186 -108
- package/dist/server/next.mjs +6553 -5285
- package/dist/server/page-converter.mjs +1031 -1844
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3352 -3006
- package/dist/server/rendering.mjs +6289 -4924
- package/dist/server/routing.mjs +1906 -1036
- package/dist/server/server.mjs +1976 -2165
- package/dist/server/theme-bridge.mjs +949 -670
- package/dist/server/theme.mjs +252 -51
- package/dist/styles/index.css +295 -334
- package/package.json +3 -2
- package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +0 -1
- package/dist/_dts/block-form/src/widgets/index.d.ts +0 -20
- package/dist/_dts/blocks/src/system/runtime/api/requestBody.d.ts +0 -7
- package/dist/client/clsx-DgIEfj3H.mjs +0 -16
package/dist/server/theme.mjs
CHANGED
|
@@ -312,6 +312,25 @@ const nonShadeablePaletteRoleNames = /* @__PURE__ */ new Set([
|
|
|
312
312
|
"warning",
|
|
313
313
|
"destructive"
|
|
314
314
|
]);
|
|
315
|
+
/**
|
|
316
|
+
* Status role aliases the persisted palette does not carry itself.
|
|
317
|
+
*
|
|
318
|
+
* Generators reference `--tb-error` (the site-style-owned input error border)
|
|
319
|
+
* and `--tb-info` (`.alert-info`, `.status-info`, the field-note rule), but the
|
|
320
|
+
* palette schema only defines `destructive` and has no `info` role at all.
|
|
321
|
+
* Without these aliases those declarations name variables that are never
|
|
322
|
+
* defined and browsers drop them. The SDK bridge resolves the same pair via
|
|
323
|
+
* TOKEN_ALIASES, so both runtimes agree on what a status token means.
|
|
324
|
+
*
|
|
325
|
+
* Runs after the danger → destructive promotion above, so `destructive` is
|
|
326
|
+
* already the single source of truth for the error colour.
|
|
327
|
+
*/
|
|
328
|
+
function statusAliasTokens(expanded) {
|
|
329
|
+
const aliases = {};
|
|
330
|
+
if (expanded.destructive) aliases.error = expanded.destructive;
|
|
331
|
+
if (expanded.accent) aliases.info = expanded.accent;
|
|
332
|
+
return aliases;
|
|
333
|
+
}
|
|
315
334
|
function expandPalette(palette) {
|
|
316
335
|
const base = colorsToMap(palette);
|
|
317
336
|
const expanded = { ...base };
|
|
@@ -330,6 +349,7 @@ function expandPalette(palette) {
|
|
|
330
349
|
}
|
|
331
350
|
if (base.text) expanded.body = base.text;
|
|
332
351
|
if (base.danger && !base.destructive) expanded.destructive = base.danger;
|
|
352
|
+
Object.assign(expanded, statusAliasTokens(expanded));
|
|
333
353
|
const isDark = base.background ? isBackgroundDark(base.background) : false;
|
|
334
354
|
expanded.mutedText = palette.meta?.mode === "dark" || isDark ? expanded["neutral-600"] ?? "#666" : expanded["neutral-500"] ?? "#888";
|
|
335
355
|
for (const [token, hex] of Object.entries({ ...expanded })) {
|
|
@@ -3433,6 +3453,26 @@ function presetCategory(recipe) {
|
|
|
3433
3453
|
//#region ../theme-core/src/cards/types.ts
|
|
3434
3454
|
const cardVariantRoleValues = ["default", "alternative"];
|
|
3435
3455
|
const boxlessCardVariantValue = "none";
|
|
3456
|
+
const openCardRoleValue = "open";
|
|
3457
|
+
/**
|
|
3458
|
+
* The roles a site style implements with an actual card variant. `none` is
|
|
3459
|
+
* deliberately absent: it is a role value only, never a variant.
|
|
3460
|
+
*/
|
|
3461
|
+
const surfaceCardRoleValues = [...cardVariantRoleValues, openCardRoleValue];
|
|
3462
|
+
/**
|
|
3463
|
+
* The closed card-role vocabulary Looks and blocks address cards by — this is
|
|
3464
|
+
* `BoxStylesCardVariant` widened with `open`, not a parallel enum.
|
|
3465
|
+
*
|
|
3466
|
+
* - `none` — no site-style card surface; the block's own composition and
|
|
3467
|
+
* the author's own card fields govern the item. This is *not*
|
|
3468
|
+
* a promise of visible boxlessness: a block whose base class
|
|
3469
|
+
* draws a border still draws one. It says the Look is not
|
|
3470
|
+
* asking the site style for a card.
|
|
3471
|
+
* - `open` — boxless but marked (a rule or accent edge, no enclosing box)
|
|
3472
|
+
* - `default` — the site's quiet everyday card
|
|
3473
|
+
* - `alternative` — the statement card carrying the site's personality
|
|
3474
|
+
*/
|
|
3475
|
+
const cardRoleValues = [...surfaceCardRoleValues, boxlessCardVariantValue];
|
|
3436
3476
|
const cardSpacingSchema = z.enum([
|
|
3437
3477
|
"none",
|
|
3438
3478
|
"compact",
|
|
@@ -3441,6 +3481,17 @@ const cardSpacingSchema = z.enum([
|
|
|
3441
3481
|
"comfortable",
|
|
3442
3482
|
"spacious"
|
|
3443
3483
|
]);
|
|
3484
|
+
/** Per-axis padding, for boxless cards whose inline padding differs from block. */
|
|
3485
|
+
const cardSpacingAxesSchema = z.object({
|
|
3486
|
+
block: cardSpacingSchema,
|
|
3487
|
+
inline: cardSpacingSchema
|
|
3488
|
+
});
|
|
3489
|
+
/**
|
|
3490
|
+
* A card's content padding: one value for both axes, or one per axis. Two
|
|
3491
|
+
* fields would let a variant say both and leave the reader to guess, so this is
|
|
3492
|
+
* a union — the legacy `spacingAxes` key is lifted into it on parse.
|
|
3493
|
+
*/
|
|
3494
|
+
const cardSpacingValueSchema = z.union([cardSpacingSchema, cardSpacingAxesSchema]);
|
|
3444
3495
|
const gradientDirectionSchema = z.enum([
|
|
3445
3496
|
"to-r",
|
|
3446
3497
|
"to-l",
|
|
@@ -3452,7 +3503,26 @@ const gradientDirectionSchema = z.enum([
|
|
|
3452
3503
|
"to-bl"
|
|
3453
3504
|
]);
|
|
3454
3505
|
z.enum(cardVariantRoleValues);
|
|
3455
|
-
const
|
|
3506
|
+
const surfaceCardRoleSchema = z.enum(surfaceCardRoleValues);
|
|
3507
|
+
const cardRoleSchema = z.enum(cardRoleValues);
|
|
3508
|
+
/**
|
|
3509
|
+
* Historical name for the role vocabulary as it reaches box styles. Widened to
|
|
3510
|
+
* the full `CardRole` set — old values keep parsing, `open` now parses too.
|
|
3511
|
+
*/
|
|
3512
|
+
const boxStylesCardVariantSchema = cardRoleSchema;
|
|
3513
|
+
const PRIORITY_ROLE_INFERENCE = {
|
|
3514
|
+
1: "default",
|
|
3515
|
+
2: "alternative"
|
|
3516
|
+
};
|
|
3517
|
+
/**
|
|
3518
|
+
* Role inference for legacy card systems authored before variants carried a
|
|
3519
|
+
* `role`. Priority 1 is the everyday card, priority 2 the statement card —
|
|
3520
|
+
* which is how variants are surfaced today. `open` is never inferred: a site
|
|
3521
|
+
* style has to opt into it.
|
|
3522
|
+
*/
|
|
3523
|
+
function inferCardVariantRoleFromPriority(priority) {
|
|
3524
|
+
return PRIORITY_ROLE_INFERENCE[priority] ?? null;
|
|
3525
|
+
}
|
|
3456
3526
|
const cardBackgroundSchema = z.discriminatedUnion("type", [
|
|
3457
3527
|
z.object({
|
|
3458
3528
|
type: z.literal("solid"),
|
|
@@ -3478,17 +3548,19 @@ const cardCornerValueSchema = z.enum([
|
|
|
3478
3548
|
"pill",
|
|
3479
3549
|
"expressive"
|
|
3480
3550
|
]);
|
|
3551
|
+
const cardEdgeSchema = z.enum([
|
|
3552
|
+
"left",
|
|
3553
|
+
"top",
|
|
3554
|
+
"right",
|
|
3555
|
+
"bottom"
|
|
3556
|
+
]);
|
|
3481
3557
|
/**
|
|
3482
|
-
*
|
|
3483
|
-
*
|
|
3558
|
+
* Legacy single accented card edge (e.g. a left accent bar). Persisted and
|
|
3559
|
+
* curated data may still carry it; it lifts into a one-element `decorations`
|
|
3560
|
+
* list at the parse boundary and has no representation after that.
|
|
3484
3561
|
*/
|
|
3485
3562
|
const cardAccentEdgeSchema = z.object({
|
|
3486
|
-
edge:
|
|
3487
|
-
"left",
|
|
3488
|
-
"top",
|
|
3489
|
-
"right",
|
|
3490
|
-
"bottom"
|
|
3491
|
-
]),
|
|
3563
|
+
edge: cardEdgeSchema,
|
|
3492
3564
|
colorToken: themeColorTokenSchema,
|
|
3493
3565
|
width: z.enum([
|
|
3494
3566
|
"thin",
|
|
@@ -3497,13 +3569,43 @@ const cardAccentEdgeSchema = z.object({
|
|
|
3497
3569
|
"heavy"
|
|
3498
3570
|
])
|
|
3499
3571
|
});
|
|
3572
|
+
/** `hairline` (1px) is the widening the boxless `open` role needs. */
|
|
3573
|
+
const cardEdgeRuleWidthSchema = z.enum([
|
|
3574
|
+
"hairline",
|
|
3575
|
+
"thin",
|
|
3576
|
+
"medium",
|
|
3577
|
+
"thick",
|
|
3578
|
+
"heavy"
|
|
3579
|
+
]);
|
|
3580
|
+
const cardEdgeRuleLengthSchema = z.enum(["full", "short"]);
|
|
3581
|
+
const cardEdgeRuleAlignSchema = z.enum([
|
|
3582
|
+
"start",
|
|
3583
|
+
"center",
|
|
3584
|
+
"end"
|
|
3585
|
+
]);
|
|
3586
|
+
/**
|
|
3587
|
+
* Decorations are edge rules today. The alias exists so the list can grow into
|
|
3588
|
+
* a discriminated union without every call site changing.
|
|
3589
|
+
*/
|
|
3590
|
+
const cardDecorationSchema = z.object({
|
|
3591
|
+
edge: cardEdgeSchema,
|
|
3592
|
+
colorToken: themeColorTokenSchema,
|
|
3593
|
+
width: cardEdgeRuleWidthSchema,
|
|
3594
|
+
/** Defaults to `full`. */
|
|
3595
|
+
length: cardEdgeRuleLengthSchema.optional(),
|
|
3596
|
+
/** Where a `short` rule sits along its edge. Defaults to `start`. */
|
|
3597
|
+
align: cardEdgeRuleAlignSchema.optional(),
|
|
3598
|
+
/** Opacity applied to `colorToken`, 0–1. Scoped here, not on the token. */
|
|
3599
|
+
alpha: z.number().min(0).max(1).optional()
|
|
3600
|
+
});
|
|
3601
|
+
const cardDecorationsSchema = z.array(cardDecorationSchema).max(2);
|
|
3500
3602
|
const cardCornerRadiiSchema = z.object({
|
|
3501
3603
|
topLeft: cardCornerValueSchema.optional(),
|
|
3502
3604
|
topRight: cardCornerValueSchema.optional(),
|
|
3503
3605
|
bottomLeft: cardCornerValueSchema.optional(),
|
|
3504
3606
|
bottomRight: cardCornerValueSchema.optional()
|
|
3505
3607
|
});
|
|
3506
|
-
const
|
|
3608
|
+
const cardVariantInputSchema = z.object({
|
|
3507
3609
|
id: z.string(),
|
|
3508
3610
|
name: z.string().min(1).max(20),
|
|
3509
3611
|
enabled: z.boolean(),
|
|
@@ -3512,8 +3614,10 @@ const cardVariantSchema = z.object({
|
|
|
3512
3614
|
z.literal(2),
|
|
3513
3615
|
z.literal(3)
|
|
3514
3616
|
]),
|
|
3617
|
+
role: surfaceCardRoleSchema.optional(),
|
|
3515
3618
|
background: cardBackgroundSchema,
|
|
3516
|
-
spacing:
|
|
3619
|
+
spacing: cardSpacingValueSchema,
|
|
3620
|
+
spacingAxes: cardSpacingAxesSchema.optional(),
|
|
3517
3621
|
foregroundToken: themeColorTokenSchema.optional(),
|
|
3518
3622
|
shadow: z.object({
|
|
3519
3623
|
elevation: z.enum([
|
|
@@ -3537,9 +3641,91 @@ const cardVariantSchema = z.object({
|
|
|
3537
3641
|
]).optional(),
|
|
3538
3642
|
cornerRadii: cardCornerRadiiSchema.optional(),
|
|
3539
3643
|
border: cardBorderSchema.optional(),
|
|
3644
|
+
decorations: cardDecorationsSchema.optional(),
|
|
3540
3645
|
accentEdge: cardAccentEdgeSchema.optional()
|
|
3541
3646
|
});
|
|
3542
|
-
|
|
3647
|
+
/**
|
|
3648
|
+
* Lift a legacy `accentEdge` into the decoration list. The old emitter reset
|
|
3649
|
+
* `border: 0` implicitly whenever an accent edge was present; conversion drops
|
|
3650
|
+
* the border instead, so the output is unchanged and the data says so.
|
|
3651
|
+
*/
|
|
3652
|
+
function normalizeLegacyAccentEdge(variant) {
|
|
3653
|
+
const { accentEdge, ...rest } = normalizeLegacySpacingAxes(variant);
|
|
3654
|
+
if (!accentEdge) return rest;
|
|
3655
|
+
const { border: _droppedByAccentEdgeReset, ...withoutBorder } = rest;
|
|
3656
|
+
return {
|
|
3657
|
+
...withoutBorder,
|
|
3658
|
+
decorations: [{
|
|
3659
|
+
...accentEdge,
|
|
3660
|
+
length: "full"
|
|
3661
|
+
}]
|
|
3662
|
+
};
|
|
3663
|
+
}
|
|
3664
|
+
/**
|
|
3665
|
+
* Lift a legacy `spacingAxes` into `spacing`. It always won over the flat value
|
|
3666
|
+
* when both were set, so the lift preserves the emitted padding exactly.
|
|
3667
|
+
*/
|
|
3668
|
+
function normalizeLegacySpacingAxes(variant) {
|
|
3669
|
+
const { spacingAxes, ...rest } = variant;
|
|
3670
|
+
return spacingAxes ? {
|
|
3671
|
+
...rest,
|
|
3672
|
+
spacing: spacingAxes
|
|
3673
|
+
} : variant;
|
|
3674
|
+
}
|
|
3675
|
+
function validateSingleDecorationSource(variant, ctx) {
|
|
3676
|
+
if (!variant.accentEdge || !variant.decorations) return;
|
|
3677
|
+
ctx.addIssue({
|
|
3678
|
+
code: "custom",
|
|
3679
|
+
path: ["decorations"],
|
|
3680
|
+
message: "A card variant carries either the legacy `accentEdge` or `decorations`, never both."
|
|
3681
|
+
});
|
|
3682
|
+
}
|
|
3683
|
+
const cardVariantSchema = cardVariantInputSchema.superRefine(validateSingleDecorationSource).transform(normalizeLegacyAccentEdge);
|
|
3684
|
+
/**
|
|
3685
|
+
* Fill in roles for legacy systems whose variants declare none. Inference is
|
|
3686
|
+
* collision-tolerant on purpose: first claimant wins and a later variant that
|
|
3687
|
+
* would infer a taken role simply gets no role. Legacy data is not obliged to
|
|
3688
|
+
* be well-formed, and a card system that fails to parse takes the whole theme
|
|
3689
|
+
* down with it.
|
|
3690
|
+
*/
|
|
3691
|
+
function withInferredRoles(variants) {
|
|
3692
|
+
const claimed = new Set(variants.flatMap((variant) => variant.role ? [variant.role] : []));
|
|
3693
|
+
return variants.map((variant) => {
|
|
3694
|
+
if (variant.role) return variant;
|
|
3695
|
+
const inferred = inferCardVariantRoleFromPriority(variant.priority);
|
|
3696
|
+
if (!inferred || claimed.has(inferred)) return variant;
|
|
3697
|
+
claimed.add(inferred);
|
|
3698
|
+
return {
|
|
3699
|
+
...variant,
|
|
3700
|
+
role: inferred
|
|
3701
|
+
};
|
|
3702
|
+
});
|
|
3703
|
+
}
|
|
3704
|
+
/**
|
|
3705
|
+
* Only *declared* roles are validated — a site style saying "these two
|
|
3706
|
+
* variants are both the default card" is an authoring error worth rejecting.
|
|
3707
|
+
*/
|
|
3708
|
+
function validateUniqueDeclaredCardVariantRoles(system, ctx) {
|
|
3709
|
+
const declared = /* @__PURE__ */ new Set();
|
|
3710
|
+
system.variants.forEach((variant, index) => {
|
|
3711
|
+
const role = variant.role;
|
|
3712
|
+
if (!role) return;
|
|
3713
|
+
if (declared.has(role)) {
|
|
3714
|
+
ctx.addIssue({
|
|
3715
|
+
code: "custom",
|
|
3716
|
+
path: [
|
|
3717
|
+
"variants",
|
|
3718
|
+
index,
|
|
3719
|
+
"role"
|
|
3720
|
+
],
|
|
3721
|
+
message: `Card role "${role}" is already implemented by another variant.`
|
|
3722
|
+
});
|
|
3723
|
+
return;
|
|
3724
|
+
}
|
|
3725
|
+
declared.add(role);
|
|
3726
|
+
});
|
|
3727
|
+
}
|
|
3728
|
+
const cardSystemSchema = z.object({ variants: z.array(cardVariantSchema).min(1).max(3) }).superRefine(validateUniqueDeclaredCardVariantRoles).transform((system) => ({ variants: withInferredRoles(system.variants) }));
|
|
3543
3729
|
//#endregion
|
|
3544
3730
|
//#region ../theme-core/src/accordions/types.ts
|
|
3545
3731
|
/**
|
|
@@ -4352,6 +4538,58 @@ new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
|
4352
4538
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
4353
4539
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
4354
4540
|
const siteChromeBackgroundOverrideOwner = "site-chrome-editor";
|
|
4541
|
+
//#endregion
|
|
4542
|
+
//#region ../theme-core/src/header/legacyHeaderVariant.ts
|
|
4543
|
+
/**
|
|
4544
|
+
* The header variants the system actually renders.
|
|
4545
|
+
*
|
|
4546
|
+
* Each one has a layout row in the site-header block and a paint target in
|
|
4547
|
+
* `paintTargets.ts`. This is the canonical list: the block transform's variant
|
|
4548
|
+
* class allowlist and the AI theme generator's enum both derive from it, so
|
|
4549
|
+
* they cannot drift.
|
|
4550
|
+
*/
|
|
4551
|
+
const headerVariantValues = [
|
|
4552
|
+
"classic",
|
|
4553
|
+
"centered",
|
|
4554
|
+
"floating"
|
|
4555
|
+
];
|
|
4556
|
+
z.enum(headerVariantValues);
|
|
4557
|
+
/**
|
|
4558
|
+
* Header variant spellings that were once authorable but no longer name a
|
|
4559
|
+
* layout of their own, and the variant they read as now.
|
|
4560
|
+
*
|
|
4561
|
+
* `transparent` was an overlay header with no CSS of its own: everything it
|
|
4562
|
+
* did (transparent root background, overlay content flow) is what `floating`
|
|
4563
|
+
* already does, and it had zero persisted usage in production or locally when
|
|
4564
|
+
* it was retired. It survives here as a one-boundary alias so a theme authored
|
|
4565
|
+
* against the old vocabulary still parses.
|
|
4566
|
+
*
|
|
4567
|
+
* This matters because the theme schema is strict and has no per-field
|
|
4568
|
+
* `.catch()`: an out-of-enum variant fails `themeSchema.safeParse` for the
|
|
4569
|
+
* *whole* theme, which silently swaps the site's theme for
|
|
4570
|
+
* `modernMinimalTheme`. Aliasing here keeps that from happening.
|
|
4571
|
+
*/
|
|
4572
|
+
const legacyHeaderVariants = { transparent: "floating" };
|
|
4573
|
+
const legacyHeaderVariantValues = Object.keys(legacyHeaderVariants);
|
|
4574
|
+
/**
|
|
4575
|
+
* The header variant boundary for themes that go through `themeSchema`:
|
|
4576
|
+
* canonical variants pass through, legacy spellings normalize to the variant
|
|
4577
|
+
* they meant, everything else fails the parse.
|
|
4578
|
+
*
|
|
4579
|
+
* Deliberately an enum plus a transform rather than a `z.preprocess`, so the
|
|
4580
|
+
* schema's *input* type stays an accurate union (the legacy spelling is still
|
|
4581
|
+
* accepted on the wire) instead of widening to `unknown`. `SdkThemeWire` in
|
|
4582
|
+
* `@riverbankcms/api` is `z.input<typeof themeSchema>`, so a widened input here
|
|
4583
|
+
* would leak straight into a public type.
|
|
4584
|
+
*
|
|
4585
|
+
* Not every read of a persisted theme goes through the schema:
|
|
4586
|
+
* `resolveRuntimeTheme` in
|
|
4587
|
+
* `apps/dashboard/src/server/services/sites/runtimeSiteResponse.ts` returns the
|
|
4588
|
+
* raw database JSON asserted as `Theme` with no parse, so a theme still
|
|
4589
|
+
* carrying a legacy spelling reaches the theme editor un-aliased. That gap
|
|
4590
|
+
* predates this alias and is harmless while persisted usage is zero.
|
|
4591
|
+
*/
|
|
4592
|
+
const headerVariantWithLegacyAliasSchema = z.enum([...headerVariantValues, ...legacyHeaderVariantValues]).transform((value) => value in legacyHeaderVariants ? legacyHeaderVariants[value] : value);
|
|
4355
4593
|
const BREAKPOINT_LG = 1024;
|
|
4356
4594
|
const BREAKPOINT_XL = 1280;
|
|
4357
4595
|
const BREAKPOINT_LG_DOWN = BREAKPOINT_LG - 1;
|
|
@@ -4668,14 +4906,7 @@ const cardStylesOverrideSchema = z.object({
|
|
|
4668
4906
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
4669
4907
|
raised: z.boolean().nullable().optional(),
|
|
4670
4908
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
4671
|
-
|
|
4672
|
-
"accent-quote",
|
|
4673
|
-
"editorial-rule",
|
|
4674
|
-
"soft-panel",
|
|
4675
|
-
"editorial-serif-quote",
|
|
4676
|
-
"editorial-open",
|
|
4677
|
-
"color-blocked"
|
|
4678
|
-
]).nullable().optional(),
|
|
4909
|
+
role: cardRoleSchema.nullable().optional(),
|
|
4679
4910
|
cardVariant: boxStylesCardVariantSchema.nullable().optional()
|
|
4680
4911
|
});
|
|
4681
4912
|
const blockStyleOverridesSchema = z.object({
|
|
@@ -4781,30 +5012,6 @@ const motion = z.object({
|
|
|
4781
5012
|
]).nullable()
|
|
4782
5013
|
});
|
|
4783
5014
|
z.object({ shape: corners });
|
|
4784
|
-
z.object({
|
|
4785
|
-
elevation: z.enum([
|
|
4786
|
-
"none",
|
|
4787
|
-
"low",
|
|
4788
|
-
"medium",
|
|
4789
|
-
"high"
|
|
4790
|
-
]),
|
|
4791
|
-
border: z.enum([
|
|
4792
|
-
"none",
|
|
4793
|
-
"subtle",
|
|
4794
|
-
"defined"
|
|
4795
|
-
]),
|
|
4796
|
-
shape: corners,
|
|
4797
|
-
headerStyle: z.enum([
|
|
4798
|
-
"plain",
|
|
4799
|
-
"accentBar",
|
|
4800
|
-
"subtleBg"
|
|
4801
|
-
]).nullable(),
|
|
4802
|
-
mediaTreatment: z.enum([
|
|
4803
|
-
"square",
|
|
4804
|
-
"rounded",
|
|
4805
|
-
"bleed"
|
|
4806
|
-
]).nullable()
|
|
4807
|
-
});
|
|
4808
5015
|
const inputStyle = z.object({
|
|
4809
5016
|
shape: corners,
|
|
4810
5017
|
border: z.enum([
|
|
@@ -4819,12 +5026,6 @@ const inputStyle = z.object({
|
|
|
4819
5026
|
]),
|
|
4820
5027
|
label: z.enum(["inside", "above"])
|
|
4821
5028
|
});
|
|
4822
|
-
const headerVariant = z.enum([
|
|
4823
|
-
"classic",
|
|
4824
|
-
"centered",
|
|
4825
|
-
"transparent",
|
|
4826
|
-
"floating"
|
|
4827
|
-
]);
|
|
4828
5029
|
const headerPositioning = z.enum([
|
|
4829
5030
|
"static",
|
|
4830
5031
|
"sticky",
|
|
@@ -4968,7 +5169,7 @@ const headerBackgroundSchema = z.object({
|
|
|
4968
5169
|
textColor: tokenOrCssColorValueSchema.nullable().optional()
|
|
4969
5170
|
});
|
|
4970
5171
|
const headerSchema = z.object({
|
|
4971
|
-
variant:
|
|
5172
|
+
variant: headerVariantWithLegacyAliasSchema,
|
|
4972
5173
|
positioning: headerPositioning,
|
|
4973
5174
|
shrinkOnScroll: z.boolean(),
|
|
4974
5175
|
maxWidth: headerMaxWidth,
|