@riverbankcms/sdk 0.144.0 → 0.145.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-CQZNnFiM.mjs → PreviewEditorSidebar-O-V6Pl5a.mjs} +4 -4
- package/dist/{PreviewEditorUI-DCNxnmI0.mjs → PreviewEditorUI-1UlX_9cw.mjs} +3 -3
- package/dist/{PreviewQueryProvider-BCYICImX.mjs → PreviewQueryProvider-BxGwdOCV.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-BJolUbr1.mjs → SdkPreviewModeRuntime-DYbA_4iv.mjs} +419 -348
- package/dist/{SiteChromeCustomizeContext-CKgEpoxi.mjs → SiteChromeCustomizeContext-CNTKQ9nx.mjs} +2081 -1313
- package/dist/_dts/ai/src/contracts/proposals.d.ts +4719 -66
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +429 -6
- package/dist/_dts/api/src/appointmentEndpointDefinitions.d.ts +49 -0
- package/dist/_dts/api/src/appointmentServiceCategoryEndpoints.d.ts +75 -0
- package/dist/_dts/api/src/appointmentServiceContracts.d.ts +80 -0
- package/dist/_dts/api/src/appointmentSetup.d.ts +8 -1
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +2 -12
- package/dist/_dts/api/src/communications.d.ts +14 -22
- package/dist/_dts/api/src/contentRuntime.d.ts +2 -0
- package/dist/_dts/api/src/endpoints.d.ts +105 -58
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/launchReadiness.d.ts +2 -0
- package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +0 -23
- package/dist/_dts/api/src/onboarding/confirmationResend.d.ts +3 -0
- package/dist/_dts/api/src/publicBookingService.d.ts +35 -1
- package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +13 -0
- package/dist/_dts/api/src/publicNewsletterEndpointDefinitions.d.ts +58 -0
- package/dist/_dts/api/src/schemas/admin-observability-logs.d.ts +3 -3
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -6
- package/dist/_dts/api/src/types.d.ts +2 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +4 -4
- package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -0
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/pageRenderJoins.d.ts +68 -0
- package/dist/_dts/blocks/src/pageRenderPlan.d.ts +8 -27
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +7 -4
- package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +40 -23
- package/dist/_dts/blocks/src/server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/calendarWindow.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +47 -47
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +22 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +57 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-categories.d.ts +29 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.service-choices.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +13 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +20 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/core/src/appointment-service-categories.d.ts +108 -0
- package/dist/_dts/core/src/editor-state.d.ts +6 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/public-profile.d.ts +9 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +663 -241
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +6 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/loaders.d.ts +16 -1
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/types.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/site-option-picker/utils.d.ts +29 -0
- package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +1 -3
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- package/dist/_dts/sdk/src/client/runtimeCacheKeys.d.ts +8 -0
- package/dist/_dts/sdk/src/client/types.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/page.d.ts +7 -2
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +5 -0
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +2 -2
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -8
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/surfaces/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/layout/boundaryCss.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +3 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +1 -3
- package/dist/_dts/theme-core/src/site-styles/generatedDesignPipeline.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/joinTreatment.d.ts +132 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorBoundaries.d.ts +31 -0
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +33 -29
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/pageFlowPresets.d.ts +36 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -10
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +17 -4
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +20 -74
- package/dist/_dts/theme-core/src/site-styles/sectionBoundaryComposition.d.ts +95 -0
- package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +80 -518
- package/dist/_dts/theme-core/src/site-styles/siteStyleBlockPolicies.d.ts +9 -4
- package/dist/_dts/theme-core/src/site-styles/transitionCatalogue.d.ts +320 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -18
- package/dist/client/{BookingConsentAgreement-DoAILrkN.mjs → BookingConsentAgreement-DlVOmpW4.mjs} +2 -2
- package/dist/client/{DiscountCodeDisclosure-X528hUTf.mjs → DiscountCodeDisclosure-T9q623PQ.mjs} +1 -1
- package/dist/client/{EventCombined.client-DSBVwq5m.mjs → EventCombined.client-DnsUeONl.mjs} +6 -6
- package/dist/client/{EventListing.client-DmFAX7Vb.mjs → EventListing.client-CNBFqJS4.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BAqXdfhq.mjs → LeafletStaticMap-C7higg52.mjs} +1 -1
- package/dist/client/{ThemedButton-BwNFVwi4.mjs → ThemedButton-LAJTNrS8.mjs} +1 -1
- package/dist/client/{accordion-DRhMdkbd.mjs → accordion-BcNF9TjX.mjs} +1 -1
- package/dist/client/{bookingForm-iJ_nCsNF.mjs → bookingForm-BUaQ3S03.mjs} +142 -50
- package/dist/client/bookings.mjs +191 -64
- package/dist/client/{carousel-D8zuffZr.mjs → carousel-CTdF6e0V.mjs} +1 -1
- package/dist/client/{cart-DeMGJViN.mjs → cart-pGtyf_XU.mjs} +3 -3
- package/dist/client/{checkout-DXc06Km2.mjs → checkout-Da9WSn7Y.mjs} +3 -3
- package/dist/client/client.mjs +1630 -816
- package/dist/client/{context-CDLCfDep.mjs → context-BFeY_Wbm.mjs} +1 -1
- package/dist/client/{dates-ClFx7Epy.mjs → dates-BhwVSxDg.mjs} +2 -2
- package/dist/client/{eventCalendar-BaGpnOGN.mjs → eventCalendar-BAtdnR4s.mjs} +9 -9
- package/dist/client/{eventCombined-ywONOx2m.mjs → eventCombined-RksA3tRC.mjs} +4 -4
- package/dist/client/{eventDetails-B2LlOTYY.mjs → eventDetails-BB9hB4wR.mjs} +4 -4
- package/dist/client/{eventListing-CMgxWpqP.mjs → eventListing-BpJBkviM.mjs} +4 -4
- package/dist/client/{eventRegistration-BarLDNHR.mjs → eventRegistration-B18jFq_o.mjs} +8 -8
- package/dist/client/{form-BjqKaBJ7.mjs → form-Dodt8Y8t.mjs} +3 -3
- package/dist/client/{headerSection-CP4XDwz1.mjs → headerSection-B0qj9ttg.mjs} +3 -3
- package/dist/client/hooks.mjs +550 -99
- package/dist/client/{locationMap-C5gW-d-w.mjs → locationMap-gn-iMk7a.mjs} +3 -3
- package/dist/client/{newsletterForm-afXlVSA0.mjs → newsletterForm-oByLdFkr.mjs} +26 -5
- package/dist/client/{pricing-Bl1CAl28.mjs → pricing-BOU0_Hai.mjs} +1 -1
- package/dist/client/{productDetail-CvQ3jWQe.mjs → productDetail-D9v1zH2j.mjs} +3 -3
- package/dist/client/{productList-U874PGO7.mjs → productList-D-mItx1n.mjs} +3 -3
- package/dist/client/{propsDecoder-DPXtCZWP.mjs → propsDecoder-C3TP_z4x.mjs} +72 -33
- package/dist/client/rendering/client.mjs +900 -266
- package/dist/client/rendering/islands.mjs +17 -17
- package/dist/client/rendering.mjs +1637 -788
- package/dist/client/{routeIslandApiConfig-NGYiUWXu.mjs → routeIslandApiConfig-DzN1W0sq.mjs} +1 -1
- package/dist/client/{scrollToBlock-0-C3DVhK.mjs → scrollToBlock-CWs8EIdo.mjs} +1 -1
- package/dist/client/{shop-BXjXhM9P.mjs → shop-Dufw7N7o.mjs} +7 -7
- package/dist/client/{shop-commerce-BZ6UlWJ7.mjs → shop-commerce-gklw_hLF.mjs} +6 -6
- package/dist/client/{shop-commerce-store-DlSBXb3D.mjs → shop-commerce-store-Sf1eyTaZ.mjs} +1 -1
- package/dist/client/{shopShared-kkEOiLPA.mjs → shopShared-B5nyA41S.mjs} +4 -4
- package/dist/client/{useEventFilters-zvnnE1ro.mjs → useEventFilters-CLL829vy.mjs} +6 -6
- package/dist/preview-next/before-render.mjs +147 -77
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/keepAlive.mjs +147 -77
- package/dist/preview-next/middleware.mjs +147 -77
- package/dist/{previewAuthStore-JA6-I_sL.mjs → previewAuthStore-BxAFlu-j.mjs} +147 -77
- package/dist/{sdk-runtime-DFJlQt3q.mjs → sdk-runtime-D0uZFev7.mjs} +2 -2
- package/dist/{separator-o8GHb1xh.mjs → separator-EvdCAn4V.mjs} +1 -1
- package/dist/server/components.mjs +1727 -991
- package/dist/server/config-validation.mjs +537 -97
- package/dist/server/config.mjs +537 -97
- package/dist/server/data.mjs +549 -98
- package/dist/server/index.mjs +159 -81
- package/dist/server/next.mjs +1460 -748
- package/dist/server/page-converter.mjs +384 -54
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1712 -973
- package/dist/server/rendering.mjs +1748 -1001
- package/dist/server/routing.mjs +624 -131
- package/dist/server/server.mjs +554 -138
- package/dist/server/theme-bridge.mjs +1192 -27
- package/dist/server/theme.mjs +6 -4
- package/package.json +2 -1
|
@@ -4809,12 +4809,23 @@ function defineExactCatalog() {
|
|
|
4809
4809
|
function asDesignBlockId(value) {
|
|
4810
4810
|
return brandNonEmptyString(value, "DesignBlockId");
|
|
4811
4811
|
}
|
|
4812
|
+
function asDesignBoundaryId(value) {
|
|
4813
|
+
const boundaryId = brandNonEmptyString(value, "DesignBoundaryId");
|
|
4814
|
+
if (!boundaryId.startsWith("boundary:")) throw new Error(`DesignBoundaryId must start with "boundary:". Received: ${value}`);
|
|
4815
|
+
return boundaryId;
|
|
4816
|
+
}
|
|
4817
|
+
function asLayoutVariantKey(value) {
|
|
4818
|
+
return brandNonEmptyString(value, "LayoutVariantKey");
|
|
4819
|
+
}
|
|
4812
4820
|
function asAppearancePresetId(value) {
|
|
4813
4821
|
return brandNonEmptyString(value, "AppearancePresetId");
|
|
4814
4822
|
}
|
|
4815
4823
|
function asBoundaryOptionId(value) {
|
|
4816
4824
|
return brandNonEmptyString(value, "BoundaryOptionId");
|
|
4817
4825
|
}
|
|
4826
|
+
function asPageFlowPresetId(value) {
|
|
4827
|
+
return brandNonEmptyString(value, "PageFlowPresetId");
|
|
4828
|
+
}
|
|
4818
4829
|
function asSiteStyleId(value) {
|
|
4819
4830
|
const siteStyleId = brandNonEmptyString(value, "SiteStyleId");
|
|
4820
4831
|
if (!siteStyleId.startsWith("site-style:")) throw new Error(`SiteStyleId must start with "site-style:". Received: ${value}`);
|
|
@@ -4823,6 +4834,18 @@ function asSiteStyleId(value) {
|
|
|
4823
4834
|
function asDesignSystemTemplateId(value) {
|
|
4824
4835
|
return brandNonEmptyString(value, "DesignSystemTemplateId");
|
|
4825
4836
|
}
|
|
4837
|
+
function toNonEmptyReadonlyArray(values) {
|
|
4838
|
+
const [first, ...rest] = values;
|
|
4839
|
+
return first === void 0 ? null : [first, ...rest];
|
|
4840
|
+
}
|
|
4841
|
+
function requireNonEmptyReadonlyArray(values, message = "Expected a non-empty array.") {
|
|
4842
|
+
const result = toNonEmptyReadonlyArray(values);
|
|
4843
|
+
if (!result) throw new Error(message);
|
|
4844
|
+
return result;
|
|
4845
|
+
}
|
|
4846
|
+
function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
4847
|
+
return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
|
|
4848
|
+
}
|
|
4826
4849
|
function brandNonEmptyString(value, label) {
|
|
4827
4850
|
if (value.length === 0) throw new Error(`${label} must be a non-empty string.`);
|
|
4828
4851
|
return value;
|
|
@@ -4987,16 +5010,18 @@ const themeV2RuntimeStyleFieldNames = [
|
|
|
4987
5010
|
"_frameStyles",
|
|
4988
5011
|
"_sectionStyles",
|
|
4989
5012
|
"_containerStyles",
|
|
4990
|
-
"_cardStyles"
|
|
4991
|
-
"_transitionStyles",
|
|
4992
|
-
"styleGroup"
|
|
5013
|
+
"_cardStyles"
|
|
4993
5014
|
];
|
|
4994
5015
|
const themeV2BlockSpecificRawStyleFieldNames = [
|
|
4995
5016
|
"_contentCardStyles",
|
|
4996
5017
|
"_heroLayoutStyles",
|
|
4997
5018
|
"_textCardStyles"
|
|
4998
5019
|
];
|
|
4999
|
-
const themeV2NormalEditorRawStyleFieldNames = [
|
|
5020
|
+
const themeV2NormalEditorRawStyleFieldNames = [
|
|
5021
|
+
...themeV2RuntimeStyleFieldNames,
|
|
5022
|
+
...themeV2BlockSpecificRawStyleFieldNames,
|
|
5023
|
+
"styleGroup"
|
|
5024
|
+
];
|
|
5000
5025
|
new Set(themeV2NormalEditorRawStyleFieldNames);
|
|
5001
5026
|
[...themeV2RuntimeStyleFieldNames, ...themeV2BlockSpecificRawStyleFieldNames];
|
|
5002
5027
|
const pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
@@ -8941,6 +8966,261 @@ z.object({
|
|
|
8941
8966
|
authority: styleAuthoritySchema
|
|
8942
8967
|
}).strict();
|
|
8943
8968
|
//#endregion
|
|
8969
|
+
//#region ../theme-core/src/site-styles/transitionCatalogue.ts
|
|
8970
|
+
/**
|
|
8971
|
+
* Family order for pickers. Entries below are listed family by family in this
|
|
8972
|
+
* same order, so the flat option list and the grouped families agree.
|
|
8973
|
+
*/
|
|
8974
|
+
const transitionCatalogueFamilies = [
|
|
8975
|
+
{
|
|
8976
|
+
id: "gradient",
|
|
8977
|
+
label: "Gradient"
|
|
8978
|
+
},
|
|
8979
|
+
{
|
|
8980
|
+
id: "wave",
|
|
8981
|
+
label: "Wave"
|
|
8982
|
+
},
|
|
8983
|
+
{
|
|
8984
|
+
id: "angle",
|
|
8985
|
+
label: "Angle"
|
|
8986
|
+
}
|
|
8987
|
+
];
|
|
8988
|
+
const mediumHeight = "6rem + 2px";
|
|
8989
|
+
const compactHeight = "4.5rem + 2px";
|
|
8990
|
+
const largeHeight = "7rem + 2px";
|
|
8991
|
+
/**
|
|
8992
|
+
* The single source of transition vocabulary. Order is significant: it is the
|
|
8993
|
+
* order of `boundaryOptions` (after `none`) and of each family's variants,
|
|
8994
|
+
* which persisted pins, page-flow presets and the editor picker all rely on.
|
|
8995
|
+
*
|
|
8996
|
+
* Shapes match what `generateLayoutCss` draws today. Structured
|
|
8997
|
+
* amplitude/frequency treatments (issue 826) extend this list later.
|
|
8998
|
+
*/
|
|
8999
|
+
const transitionCatalogueEntries = defineExactCatalog()([
|
|
9000
|
+
{
|
|
9001
|
+
intent: "soft-fade-short",
|
|
9002
|
+
optionId: asBoundaryOptionId("break:soft"),
|
|
9003
|
+
family: "gradient",
|
|
9004
|
+
variantId: "soft",
|
|
9005
|
+
label: "Soft",
|
|
9006
|
+
variantLabel: "Soft",
|
|
9007
|
+
treatment: {
|
|
9008
|
+
kind: "soft-fade",
|
|
9009
|
+
height: "medium",
|
|
9010
|
+
curve: "soft"
|
|
9011
|
+
},
|
|
9012
|
+
size: "medium",
|
|
9013
|
+
heightExpression: mediumHeight,
|
|
9014
|
+
shape: { kind: "fade" }
|
|
9015
|
+
},
|
|
9016
|
+
{
|
|
9017
|
+
intent: "soft-fade-long",
|
|
9018
|
+
optionId: asBoundaryOptionId("break:spacious"),
|
|
9019
|
+
family: "gradient",
|
|
9020
|
+
variantId: "spacious",
|
|
9021
|
+
label: "Spacious",
|
|
9022
|
+
variantLabel: "Spacious",
|
|
9023
|
+
treatment: {
|
|
9024
|
+
kind: "soft-fade",
|
|
9025
|
+
height: "large",
|
|
9026
|
+
curve: "spacious"
|
|
9027
|
+
},
|
|
9028
|
+
size: "spacious",
|
|
9029
|
+
heightExpression: "10rem",
|
|
9030
|
+
shape: { kind: "fade" }
|
|
9031
|
+
},
|
|
9032
|
+
{
|
|
9033
|
+
intent: "soft-fade-expansive",
|
|
9034
|
+
optionId: asBoundaryOptionId("break:expansive"),
|
|
9035
|
+
family: "gradient",
|
|
9036
|
+
variantId: "expansive",
|
|
9037
|
+
label: "Expansive",
|
|
9038
|
+
variantLabel: "Expansive",
|
|
9039
|
+
treatment: {
|
|
9040
|
+
kind: "soft-fade",
|
|
9041
|
+
height: "expansive",
|
|
9042
|
+
curve: "expansive"
|
|
9043
|
+
},
|
|
9044
|
+
size: "expansive",
|
|
9045
|
+
heightExpression: "14rem",
|
|
9046
|
+
shape: { kind: "fade" }
|
|
9047
|
+
},
|
|
9048
|
+
{
|
|
9049
|
+
intent: "wave-edge-balanced",
|
|
9050
|
+
optionId: asBoundaryOptionId("break:wave-balanced"),
|
|
9051
|
+
family: "wave",
|
|
9052
|
+
variantId: "balanced",
|
|
9053
|
+
label: "Balanced wave",
|
|
9054
|
+
variantLabel: "Balanced",
|
|
9055
|
+
treatment: {
|
|
9056
|
+
kind: "wave-edge",
|
|
9057
|
+
height: "medium",
|
|
9058
|
+
amplitude: "balanced",
|
|
9059
|
+
rhythm: "double",
|
|
9060
|
+
symmetry: "symmetrical"
|
|
9061
|
+
},
|
|
9062
|
+
size: "medium",
|
|
9063
|
+
heightExpression: mediumHeight,
|
|
9064
|
+
shape: {
|
|
9065
|
+
kind: "wave",
|
|
9066
|
+
mask: "balanced"
|
|
9067
|
+
}
|
|
9068
|
+
},
|
|
9069
|
+
{
|
|
9070
|
+
intent: "wave-edge",
|
|
9071
|
+
optionId: asBoundaryOptionId("break:wave"),
|
|
9072
|
+
family: "wave",
|
|
9073
|
+
variantId: "classic",
|
|
9074
|
+
label: "Classic wave",
|
|
9075
|
+
variantLabel: "Classic",
|
|
9076
|
+
treatment: {
|
|
9077
|
+
kind: "wave-edge",
|
|
9078
|
+
height: "medium",
|
|
9079
|
+
amplitude: "balanced",
|
|
9080
|
+
rhythm: "double",
|
|
9081
|
+
symmetry: "asymmetrical"
|
|
9082
|
+
},
|
|
9083
|
+
size: "medium",
|
|
9084
|
+
heightExpression: mediumHeight,
|
|
9085
|
+
shape: {
|
|
9086
|
+
kind: "wave",
|
|
9087
|
+
mask: "classic"
|
|
9088
|
+
}
|
|
9089
|
+
},
|
|
9090
|
+
{
|
|
9091
|
+
intent: "wave-edge-gentle",
|
|
9092
|
+
optionId: asBoundaryOptionId("break:wave-gentle"),
|
|
9093
|
+
family: "wave",
|
|
9094
|
+
variantId: "gentle",
|
|
9095
|
+
label: "Gentle wave",
|
|
9096
|
+
variantLabel: "Gentle",
|
|
9097
|
+
treatment: {
|
|
9098
|
+
kind: "wave-edge",
|
|
9099
|
+
height: "compact",
|
|
9100
|
+
amplitude: "subtle",
|
|
9101
|
+
rhythm: "single",
|
|
9102
|
+
symmetry: "symmetrical"
|
|
9103
|
+
},
|
|
9104
|
+
size: "compact",
|
|
9105
|
+
heightExpression: compactHeight,
|
|
9106
|
+
shape: {
|
|
9107
|
+
kind: "wave",
|
|
9108
|
+
mask: "gentle"
|
|
9109
|
+
}
|
|
9110
|
+
},
|
|
9111
|
+
{
|
|
9112
|
+
intent: "wave-edge-bold",
|
|
9113
|
+
optionId: asBoundaryOptionId("break:wave-bold"),
|
|
9114
|
+
family: "wave",
|
|
9115
|
+
variantId: "bold",
|
|
9116
|
+
label: "Bold wave",
|
|
9117
|
+
variantLabel: "Bold",
|
|
9118
|
+
treatment: {
|
|
9119
|
+
kind: "wave-edge",
|
|
9120
|
+
height: "large",
|
|
9121
|
+
amplitude: "bold",
|
|
9122
|
+
rhythm: "double",
|
|
9123
|
+
symmetry: "symmetrical"
|
|
9124
|
+
},
|
|
9125
|
+
size: "large",
|
|
9126
|
+
heightExpression: largeHeight,
|
|
9127
|
+
shape: {
|
|
9128
|
+
kind: "wave",
|
|
9129
|
+
mask: "bold"
|
|
9130
|
+
}
|
|
9131
|
+
},
|
|
9132
|
+
{
|
|
9133
|
+
intent: "wave-edge-drift",
|
|
9134
|
+
optionId: asBoundaryOptionId("break:wave-drift"),
|
|
9135
|
+
family: "wave",
|
|
9136
|
+
variantId: "drift",
|
|
9137
|
+
label: "Drift wave",
|
|
9138
|
+
variantLabel: "Drift",
|
|
9139
|
+
treatment: {
|
|
9140
|
+
kind: "wave-edge",
|
|
9141
|
+
height: "medium",
|
|
9142
|
+
amplitude: "balanced",
|
|
9143
|
+
rhythm: "double",
|
|
9144
|
+
symmetry: "drift"
|
|
9145
|
+
},
|
|
9146
|
+
size: "medium",
|
|
9147
|
+
heightExpression: mediumHeight,
|
|
9148
|
+
shape: {
|
|
9149
|
+
kind: "wave",
|
|
9150
|
+
mask: "drift"
|
|
9151
|
+
}
|
|
9152
|
+
},
|
|
9153
|
+
{
|
|
9154
|
+
intent: "angle-edge-subtle",
|
|
9155
|
+
optionId: asBoundaryOptionId("break:angle-subtle"),
|
|
9156
|
+
family: "angle",
|
|
9157
|
+
variantId: "subtle",
|
|
9158
|
+
label: "Subtle angle",
|
|
9159
|
+
variantLabel: "Subtle",
|
|
9160
|
+
treatment: {
|
|
9161
|
+
kind: "angle-edge",
|
|
9162
|
+
height: "compact",
|
|
9163
|
+
slope: "subtle",
|
|
9164
|
+
direction: "forward"
|
|
9165
|
+
},
|
|
9166
|
+
size: "compact",
|
|
9167
|
+
heightExpression: compactHeight,
|
|
9168
|
+
shape: {
|
|
9169
|
+
kind: "angle",
|
|
9170
|
+
polygon: {
|
|
9171
|
+
startTopPercent: 34,
|
|
9172
|
+
endTopPercent: 18
|
|
9173
|
+
}
|
|
9174
|
+
}
|
|
9175
|
+
},
|
|
9176
|
+
{
|
|
9177
|
+
intent: "angle-edge",
|
|
9178
|
+
optionId: asBoundaryOptionId("break:angle-balanced"),
|
|
9179
|
+
family: "angle",
|
|
9180
|
+
variantId: "balanced",
|
|
9181
|
+
label: "Balanced angle",
|
|
9182
|
+
variantLabel: "Balanced",
|
|
9183
|
+
treatment: {
|
|
9184
|
+
kind: "angle-edge",
|
|
9185
|
+
height: "medium",
|
|
9186
|
+
slope: "balanced",
|
|
9187
|
+
direction: "forward"
|
|
9188
|
+
},
|
|
9189
|
+
size: "medium",
|
|
9190
|
+
heightExpression: mediumHeight,
|
|
9191
|
+
shape: {
|
|
9192
|
+
kind: "angle",
|
|
9193
|
+
polygon: {
|
|
9194
|
+
startTopPercent: 42,
|
|
9195
|
+
endTopPercent: 8
|
|
9196
|
+
}
|
|
9197
|
+
}
|
|
9198
|
+
},
|
|
9199
|
+
{
|
|
9200
|
+
intent: "angle-edge-steep",
|
|
9201
|
+
optionId: asBoundaryOptionId("break:angle-steep"),
|
|
9202
|
+
family: "angle",
|
|
9203
|
+
variantId: "steep",
|
|
9204
|
+
label: "Steep angle",
|
|
9205
|
+
variantLabel: "Steep",
|
|
9206
|
+
treatment: {
|
|
9207
|
+
kind: "angle-edge",
|
|
9208
|
+
height: "large",
|
|
9209
|
+
slope: "steep",
|
|
9210
|
+
direction: "forward"
|
|
9211
|
+
},
|
|
9212
|
+
size: "large",
|
|
9213
|
+
heightExpression: largeHeight,
|
|
9214
|
+
shape: {
|
|
9215
|
+
kind: "angle",
|
|
9216
|
+
polygon: {
|
|
9217
|
+
startTopPercent: 54,
|
|
9218
|
+
endTopPercent: 0
|
|
9219
|
+
}
|
|
9220
|
+
}
|
|
9221
|
+
}
|
|
9222
|
+
]);
|
|
9223
|
+
//#endregion
|
|
8944
9224
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
8945
9225
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
8946
9226
|
return {
|
|
@@ -8950,19 +9230,913 @@ function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
|
8950
9230
|
reserveCss: `calc((${heightExpression}) / 2)`
|
|
8951
9231
|
};
|
|
8952
9232
|
}
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
9233
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, entry]));
|
|
9234
|
+
new Map(transitionCatalogueEntries.map((entry) => [entry.intent, boundaryRuntimeMetrics(entry.family, entry.size, entry.heightExpression)]));
|
|
9235
|
+
/**
|
|
9236
|
+
* The catalogue's compile-time coverage check guarantees an entry per
|
|
9237
|
+
* decorative intent, so a miss here is a broken invariant, not bad input.
|
|
9238
|
+
*/
|
|
9239
|
+
function requireCatalogueValue(values, intent) {
|
|
9240
|
+
const value = values.get(intent);
|
|
9241
|
+
if (value === void 0) throw new Error(`Transition catalogue has no entry for ${intent}`);
|
|
9242
|
+
return value;
|
|
9243
|
+
}
|
|
9244
|
+
const noneBoundaryOption = {
|
|
9245
|
+
id: asBoundaryOptionId("break:none"),
|
|
9246
|
+
label: "None",
|
|
9247
|
+
transitionAfter: "none",
|
|
9248
|
+
treatment: { kind: "none" }
|
|
9249
|
+
};
|
|
9250
|
+
const boundaryOptionByIntent = new Map(transitionCatalogueEntries.map((entry) => [entry.intent, {
|
|
9251
|
+
id: entry.optionId,
|
|
9252
|
+
label: entry.label,
|
|
9253
|
+
transitionAfter: entry.intent,
|
|
9254
|
+
treatment: entry.treatment
|
|
9255
|
+
}]));
|
|
9256
|
+
function boundaryOptionForTransitionIntent(intent) {
|
|
9257
|
+
return requireCatalogueValue(boundaryOptionByIntent, intent);
|
|
9258
|
+
}
|
|
9259
|
+
const softBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-short");
|
|
9260
|
+
const spaciousBoundaryOption = boundaryOptionForTransitionIntent("soft-fade-long");
|
|
9261
|
+
boundaryOptionForTransitionIntent("soft-fade-expansive");
|
|
9262
|
+
boundaryOptionForTransitionIntent("wave-edge");
|
|
9263
|
+
boundaryOptionForTransitionIntent("wave-edge-balanced");
|
|
9264
|
+
boundaryOptionForTransitionIntent("wave-edge-gentle");
|
|
9265
|
+
boundaryOptionForTransitionIntent("wave-edge-bold");
|
|
9266
|
+
boundaryOptionForTransitionIntent("wave-edge-drift");
|
|
9267
|
+
boundaryOptionForTransitionIntent("angle-edge-subtle");
|
|
9268
|
+
boundaryOptionForTransitionIntent("angle-edge");
|
|
9269
|
+
boundaryOptionForTransitionIntent("angle-edge-steep");
|
|
9270
|
+
/**
|
|
9271
|
+
* Must remain non-empty; downstream code indexes `[0]` as the documented default.
|
|
9272
|
+
*/
|
|
9273
|
+
const boundaryOptions = [noneBoundaryOption, ...transitionCatalogueEntries.map((entry) => boundaryOptionForTransitionIntent(entry.intent))];
|
|
9274
|
+
const noneTransitionVariant = {
|
|
9275
|
+
familyId: "none",
|
|
9276
|
+
variantId: "none",
|
|
9277
|
+
label: "None",
|
|
9278
|
+
boundaryOption: noneBoundaryOption
|
|
9279
|
+
};
|
|
9280
|
+
function transitionVariantForEntry(entry) {
|
|
9281
|
+
return {
|
|
9282
|
+
familyId: entry.family,
|
|
9283
|
+
variantId: entry.variantId,
|
|
9284
|
+
label: entry.variantLabel,
|
|
9285
|
+
boundaryOption: boundaryOptionForTransitionIntent(entry.intent)
|
|
9286
|
+
};
|
|
9287
|
+
}
|
|
9288
|
+
const sectionTransitionFamilies = [{
|
|
9289
|
+
id: "none",
|
|
9290
|
+
label: "None",
|
|
9291
|
+
variants: [noneTransitionVariant]
|
|
9292
|
+
}, ...transitionCatalogueFamilies.map((family) => ({
|
|
9293
|
+
id: family.id,
|
|
9294
|
+
label: family.label,
|
|
9295
|
+
variants: requireNonEmptyReadonlyArray(transitionCatalogueEntries.filter((entry) => entry.family === family.id).map(transitionVariantForEntry), `Transition family ${family.id} has no catalogue entries.`)
|
|
9296
|
+
}))];
|
|
9297
|
+
new Map(boundaryOptions.map((option) => [option.id, option]));
|
|
9298
|
+
new Map(boundaryOptions.map((option) => [stableTreatmentKey(option.treatment), option]));
|
|
9299
|
+
new Map(sectionTransitionFamilies.flatMap((family) => family.variants.map((variant) => [variant.boundaryOption.id, variant])));
|
|
9300
|
+
new Map(sectionTransitionFamilies.map((family) => [family.id, family]));
|
|
9301
|
+
function stableTreatmentKey(treatment) {
|
|
9302
|
+
switch (treatment.kind) {
|
|
9303
|
+
case "none": return "none";
|
|
9304
|
+
case "soft-fade": return `${treatment.kind}:${treatment.height}:${treatment.curve}`;
|
|
9305
|
+
case "wave-edge": return [
|
|
9306
|
+
treatment.kind,
|
|
9307
|
+
treatment.height,
|
|
9308
|
+
treatment.amplitude,
|
|
9309
|
+
treatment.rhythm,
|
|
9310
|
+
treatment.symmetry
|
|
9311
|
+
].join(":");
|
|
9312
|
+
case "angle-edge": return [
|
|
9313
|
+
treatment.kind,
|
|
9314
|
+
treatment.height,
|
|
9315
|
+
treatment.slope,
|
|
9316
|
+
treatment.direction
|
|
9317
|
+
].join(":");
|
|
9318
|
+
case "legacy-unsupported": return `${treatment.kind}:${treatment.boundaryOptionId}`;
|
|
9319
|
+
}
|
|
9320
|
+
}
|
|
9321
|
+
asPageFlowPresetId("flow:quiet"), noneBoundaryOption.id, asPageFlowPresetId("flow:balanced"), softBoundaryOption.id, asPageFlowPresetId("flow:expressive"), spaciousBoundaryOption.id;
|
|
9322
|
+
asBoundaryOptionId("break:unknown");
|
|
9323
|
+
const pageDesignUserPinnedAppearanceChoiceSchema = z.object({
|
|
9324
|
+
kind: z.literal("user-pinned"),
|
|
9325
|
+
value: z.string().min(1).transform(asAppearancePresetId)
|
|
9326
|
+
}).strict();
|
|
9327
|
+
const pageDesignUserPinnedBoundaryChoiceSchema = z.object({
|
|
9328
|
+
kind: z.literal("user-pinned"),
|
|
9329
|
+
value: z.string().min(1).transform(asBoundaryOptionId)
|
|
9330
|
+
}).strict();
|
|
9331
|
+
const pageDesignBoundaryTreatmentSchema = z.discriminatedUnion("kind", [
|
|
9332
|
+
z.object({ kind: z.literal("none") }).strict(),
|
|
9333
|
+
z.object({
|
|
9334
|
+
kind: z.literal("soft-fade"),
|
|
9335
|
+
height: z.enum([
|
|
9336
|
+
"compact",
|
|
9337
|
+
"medium",
|
|
9338
|
+
"large",
|
|
9339
|
+
"expansive"
|
|
9340
|
+
]),
|
|
9341
|
+
curve: z.enum([
|
|
9342
|
+
"soft",
|
|
9343
|
+
"spacious",
|
|
9344
|
+
"expansive"
|
|
9345
|
+
])
|
|
9346
|
+
}).strict(),
|
|
9347
|
+
z.object({
|
|
9348
|
+
kind: z.literal("wave-edge"),
|
|
9349
|
+
height: z.enum([
|
|
9350
|
+
"compact",
|
|
9351
|
+
"medium",
|
|
9352
|
+
"large"
|
|
9353
|
+
]),
|
|
9354
|
+
amplitude: z.enum([
|
|
9355
|
+
"subtle",
|
|
9356
|
+
"balanced",
|
|
9357
|
+
"bold"
|
|
9358
|
+
]),
|
|
9359
|
+
rhythm: z.enum(["single", "double"]),
|
|
9360
|
+
symmetry: z.enum([
|
|
9361
|
+
"symmetrical",
|
|
9362
|
+
"asymmetrical",
|
|
9363
|
+
"drift"
|
|
9364
|
+
])
|
|
9365
|
+
}).strict(),
|
|
9366
|
+
z.object({
|
|
9367
|
+
kind: z.literal("angle-edge"),
|
|
9368
|
+
height: z.enum([
|
|
9369
|
+
"compact",
|
|
9370
|
+
"medium",
|
|
9371
|
+
"large"
|
|
9372
|
+
]),
|
|
9373
|
+
slope: z.enum([
|
|
9374
|
+
"subtle",
|
|
9375
|
+
"balanced",
|
|
9376
|
+
"steep"
|
|
9377
|
+
]),
|
|
9378
|
+
direction: z.enum(["forward", "reverse"])
|
|
9379
|
+
}).strict(),
|
|
9380
|
+
z.object({
|
|
9381
|
+
kind: z.literal("legacy-unsupported"),
|
|
9382
|
+
boundaryOptionId: z.string().min(1).transform(asBoundaryOptionId)
|
|
9383
|
+
}).strict()
|
|
9384
|
+
]);
|
|
9385
|
+
const pageDesignUserPinnedBoundaryTreatmentChoiceSchema = z.object({
|
|
9386
|
+
kind: z.literal("user-pinned"),
|
|
9387
|
+
value: pageDesignBoundaryTreatmentSchema
|
|
9388
|
+
}).strict();
|
|
9389
|
+
const pageDesignBlockLookPinSchema = z.object({
|
|
9390
|
+
blockId: z.string().min(1).transform(asDesignBlockId),
|
|
9391
|
+
blockKind: z.string().min(1),
|
|
9392
|
+
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
9393
|
+
}).strict();
|
|
9394
|
+
const pageDesignBoundaryPinSchema = z.object({
|
|
9395
|
+
boundaryId: z.string().min(1).transform(asDesignBoundaryId),
|
|
9396
|
+
previousBlockId: z.string().min(1).transform(asDesignBlockId),
|
|
9397
|
+
nextBlockId: z.string().min(1).transform(asDesignBlockId),
|
|
9398
|
+
choice: pageDesignUserPinnedBoundaryTreatmentChoiceSchema
|
|
9399
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
9400
|
+
const legacyPageDesignBoundaryPinSchema = z.object({
|
|
9401
|
+
boundaryId: z.string().min(1).transform(asDesignBoundaryId),
|
|
9402
|
+
previousBlockId: z.string().min(1).transform(asDesignBlockId),
|
|
9403
|
+
nextBlockId: z.string().min(1).transform(asDesignBlockId),
|
|
9404
|
+
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
9405
|
+
}).strict().superRefine(validateBoundaryPinIdMatchesBlocks);
|
|
9406
|
+
z.object({
|
|
9407
|
+
schemaVersion: z.literal(1),
|
|
9408
|
+
siteStyleId: z.string().min(1).transform(asSiteStyleId),
|
|
9409
|
+
pageFlowPresetId: z.string().min(1).transform(asPageFlowPresetId),
|
|
9410
|
+
blockLookPins: z.array(pageDesignBlockLookPinSchema),
|
|
9411
|
+
boundaryPins: z.array(legacyPageDesignBoundaryPinSchema)
|
|
9412
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
9413
|
+
z.object({
|
|
9414
|
+
schemaVersion: z.literal(2),
|
|
9415
|
+
siteStyleId: z.string().min(1).transform(asSiteStyleId),
|
|
9416
|
+
pageFlowPresetId: z.string().min(1).transform(asPageFlowPresetId),
|
|
9417
|
+
blockLookPins: z.array(pageDesignBlockLookPinSchema),
|
|
9418
|
+
boundaryPins: z.array(pageDesignBoundaryPinSchema)
|
|
9419
|
+
}).strict().superRefine(validateUniquePageDesignPins);
|
|
9420
|
+
function addDuplicateStringIssues(ctx, input) {
|
|
9421
|
+
const seen = /* @__PURE__ */ new Set();
|
|
9422
|
+
const duplicates = /* @__PURE__ */ new Set();
|
|
9423
|
+
for (const value of input.values) {
|
|
9424
|
+
if (seen.has(value)) duplicates.add(value);
|
|
9425
|
+
seen.add(value);
|
|
9426
|
+
}
|
|
9427
|
+
for (const duplicate of duplicates) ctx.addIssue({
|
|
9428
|
+
code: z.ZodIssueCode.custom,
|
|
9429
|
+
path: [...input.path],
|
|
9430
|
+
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
9431
|
+
});
|
|
9432
|
+
}
|
|
9433
|
+
function validateBoundaryPinIdMatchesBlocks(pin, ctx) {
|
|
9434
|
+
const expectedBoundaryId = makeBoundaryId(pin.previousBlockId, pin.nextBlockId);
|
|
9435
|
+
if (pin.boundaryId !== expectedBoundaryId) ctx.addIssue({
|
|
9436
|
+
code: z.ZodIssueCode.custom,
|
|
9437
|
+
path: ["boundaryId"],
|
|
9438
|
+
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
9439
|
+
});
|
|
9440
|
+
}
|
|
9441
|
+
function validateUniquePageDesignPins(intent, ctx) {
|
|
9442
|
+
addDuplicateStringIssues(ctx, {
|
|
9443
|
+
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
9444
|
+
path: ["blockLookPins"],
|
|
9445
|
+
label: "block Look pin"
|
|
9446
|
+
});
|
|
9447
|
+
addDuplicateStringIssues(ctx, {
|
|
9448
|
+
values: intent.boundaryPins.map((pin) => makeBoundaryId(pin.previousBlockId, pin.nextBlockId)),
|
|
9449
|
+
path: ["boundaryPins"],
|
|
9450
|
+
label: "boundary pin"
|
|
9451
|
+
});
|
|
9452
|
+
}
|
|
9453
|
+
//#endregion
|
|
9454
|
+
//#region ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
9455
|
+
function assertValidOptionGroups(preset) {
|
|
9456
|
+
preset.optionGroups?.forEach((group) => {
|
|
9457
|
+
defineLookOptionGroup(group);
|
|
9458
|
+
});
|
|
9459
|
+
}
|
|
9460
|
+
/**
|
|
9461
|
+
* Every Look carries a card role. A Look that says nothing about cards renders
|
|
9462
|
+
* none, which is the overwhelming majority of them; the card-bearing ones name
|
|
9463
|
+
* the role they want and the site style owns how it looks.
|
|
9464
|
+
*/
|
|
9465
|
+
function defineBlockAppearancePreset(preset) {
|
|
9466
|
+
assertValidOptionGroups(preset);
|
|
9467
|
+
return {
|
|
9468
|
+
...preset,
|
|
9469
|
+
design: {
|
|
9470
|
+
...preset.design,
|
|
9471
|
+
cardRole: preset.design.cardRole ?? "none"
|
|
9472
|
+
}
|
|
9473
|
+
};
|
|
9474
|
+
}
|
|
9475
|
+
//#endregion
|
|
9476
|
+
//#region ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
9477
|
+
/**
|
|
9478
|
+
* A Look is a composition: which section surface, which content frame, and —
|
|
9479
|
+
* where it wants one — which *card role* it asks the site style for. It never
|
|
9480
|
+
* states how a card looks; that is the site style's identity.
|
|
9481
|
+
*
|
|
9482
|
+
* A Look with no `cardRole` asks the site style for no card at all
|
|
9483
|
+
* (`defineBlockAppearancePreset` defaults it to `none`) — the block's own
|
|
9484
|
+
* composition still governs how its items look. The per-Look rationale for the card-bearing ones lives
|
|
9485
|
+
* in `.project/plans/1297-card-role-contract-site-styles-own-card-surfaces/mapping-table.md`.
|
|
9486
|
+
*/
|
|
9487
|
+
const brandScrimOptionGroups = [{
|
|
9488
|
+
id: "image-surface-treatment",
|
|
9489
|
+
label: "Treatment",
|
|
9490
|
+
defaultOptionId: "brand-scrim-primary",
|
|
9491
|
+
options: [{
|
|
9492
|
+
id: "brand-scrim-primary",
|
|
9493
|
+
label: "Brand scrim",
|
|
9494
|
+
designPatch: { imageSurfaceTreatment: {
|
|
9495
|
+
kind: "brand-scrim",
|
|
9496
|
+
token: "primary"
|
|
9497
|
+
} }
|
|
9498
|
+
}, {
|
|
9499
|
+
id: "neutral-scrim",
|
|
9500
|
+
label: "Neutral scrim",
|
|
9501
|
+
designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
|
|
9502
|
+
}]
|
|
9503
|
+
}];
|
|
9504
|
+
const microBannerLayoutPatches = [{
|
|
9505
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
9506
|
+
designPatch: { sectionHeight: "banner" }
|
|
9507
|
+
}];
|
|
9508
|
+
defineBlockAppearancePreset({
|
|
9509
|
+
id: "hero-immersive-image",
|
|
9510
|
+
target: "hero",
|
|
9511
|
+
label: "Immersive image hero",
|
|
9512
|
+
blockKinds: ["block.hero"],
|
|
9513
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9514
|
+
layoutPatches: [{
|
|
9515
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
9516
|
+
designPatch: {
|
|
9517
|
+
sectionHeight: "banner",
|
|
9518
|
+
heroTypographyScale: "display"
|
|
9519
|
+
}
|
|
9520
|
+
}],
|
|
9521
|
+
design: {
|
|
9522
|
+
sectionSurface: "hero-image",
|
|
9523
|
+
contentFrame: plainFrame,
|
|
9524
|
+
sectionHeight: "hero",
|
|
9525
|
+
heroComposition: "center",
|
|
9526
|
+
heroTypographyScale: "display",
|
|
9527
|
+
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
9528
|
+
}
|
|
9529
|
+
}), defineBlockAppearancePreset({
|
|
9530
|
+
id: "hero-bottom-left-panel",
|
|
9531
|
+
target: "hero",
|
|
9532
|
+
label: "Bottom-left panel hero",
|
|
9533
|
+
blockKinds: ["block.hero"],
|
|
9534
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9535
|
+
optionGroups: [{
|
|
9536
|
+
id: "image-surface-treatment",
|
|
9537
|
+
label: "Treatment",
|
|
9538
|
+
defaultOptionId: "neutral-scrim",
|
|
9539
|
+
options: [{
|
|
9540
|
+
id: "neutral-scrim",
|
|
9541
|
+
label: "Neutral scrim",
|
|
9542
|
+
designPatch: { imageSurfaceTreatment: {
|
|
9543
|
+
kind: "neutral-scrim",
|
|
9544
|
+
intensity: "balanced"
|
|
9545
|
+
} }
|
|
9546
|
+
}, {
|
|
9547
|
+
id: "brand-scrim-primary",
|
|
9548
|
+
label: "Brand scrim",
|
|
9549
|
+
designPatch: { imageSurfaceTreatment: {
|
|
9550
|
+
kind: "brand-scrim",
|
|
9551
|
+
token: "primary",
|
|
9552
|
+
intensity: "balanced"
|
|
9553
|
+
} }
|
|
9554
|
+
}]
|
|
9555
|
+
}],
|
|
9556
|
+
layoutPatches: [{
|
|
9557
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
9558
|
+
designPatch: {
|
|
9559
|
+
sectionHeight: "banner",
|
|
9560
|
+
heroTypographyScale: "editorial"
|
|
9561
|
+
}
|
|
9562
|
+
}],
|
|
9563
|
+
design: {
|
|
9564
|
+
sectionSurface: "hero-image",
|
|
9565
|
+
contentFrame: panelFrame("raised"),
|
|
9566
|
+
sectionHeight: "immersive",
|
|
9567
|
+
heroComposition: "bottom-left",
|
|
9568
|
+
heroTypographyScale: "display",
|
|
9569
|
+
imageSurfaceTreatment: {
|
|
9570
|
+
kind: "neutral-scrim",
|
|
9571
|
+
intensity: "balanced"
|
|
9572
|
+
}
|
|
9573
|
+
}
|
|
9574
|
+
}), defineBlockAppearancePreset({
|
|
9575
|
+
id: "hero-poster-image",
|
|
9576
|
+
target: "hero",
|
|
9577
|
+
label: "Poster image hero",
|
|
9578
|
+
blockKinds: ["block.hero"],
|
|
9579
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9580
|
+
layoutPatches: [{
|
|
9581
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
9582
|
+
designPatch: {
|
|
9583
|
+
sectionHeight: "banner",
|
|
9584
|
+
heroTypographyScale: "display"
|
|
9585
|
+
}
|
|
9586
|
+
}],
|
|
9587
|
+
design: {
|
|
9588
|
+
sectionSurface: "hero-image",
|
|
9589
|
+
contentFrame: plainFrame,
|
|
9590
|
+
sectionHeight: "immersive",
|
|
9591
|
+
heroComposition: "center",
|
|
9592
|
+
heroTypographyScale: "poster",
|
|
9593
|
+
imageSurfaceTreatment: {
|
|
9594
|
+
kind: "brand-scrim",
|
|
9595
|
+
token: "primary",
|
|
9596
|
+
intensity: "strong"
|
|
9597
|
+
}
|
|
9598
|
+
}
|
|
9599
|
+
}), defineBlockAppearancePreset({
|
|
9600
|
+
id: "hero-brand-scrim",
|
|
9601
|
+
target: "hero",
|
|
9602
|
+
label: "Brand scrim image hero",
|
|
9603
|
+
blockKinds: ["block.hero"],
|
|
9604
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9605
|
+
optionGroups: brandScrimOptionGroups,
|
|
9606
|
+
layoutPatches: microBannerLayoutPatches,
|
|
9607
|
+
design: {
|
|
9608
|
+
sectionSurface: "hero-image",
|
|
9609
|
+
contentFrame: plainFrame,
|
|
9610
|
+
sectionHeight: "immersive",
|
|
9611
|
+
heroComposition: "center",
|
|
9612
|
+
heroTypographyScale: "display",
|
|
9613
|
+
imageSurfaceTreatment: {
|
|
9614
|
+
kind: "brand-scrim",
|
|
9615
|
+
token: "primary"
|
|
9616
|
+
}
|
|
9617
|
+
}
|
|
9618
|
+
}), defineBlockAppearancePreset({
|
|
9619
|
+
id: "hero-brand-scrim-fixed-frame",
|
|
9620
|
+
target: "hero",
|
|
9621
|
+
label: "Fixed-frame brand scrim hero",
|
|
9622
|
+
blockKinds: ["block.hero"],
|
|
9623
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9624
|
+
optionGroups: brandScrimOptionGroups,
|
|
9625
|
+
layoutPatches: microBannerLayoutPatches,
|
|
9626
|
+
design: {
|
|
9627
|
+
sectionSurface: "hero-image",
|
|
9628
|
+
contentFrame: plainFrame,
|
|
9629
|
+
sectionHeight: "immersive",
|
|
9630
|
+
heroComposition: "center",
|
|
9631
|
+
heroTypographyScale: "display",
|
|
9632
|
+
imageSurfaceTreatment: {
|
|
9633
|
+
kind: "brand-scrim",
|
|
9634
|
+
token: "primary"
|
|
9635
|
+
},
|
|
9636
|
+
imageSurfaceMotion: "fixed-frame",
|
|
9637
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9638
|
+
}
|
|
9639
|
+
}), defineBlockAppearancePreset({
|
|
9640
|
+
id: "hero-brand-depth-expressive",
|
|
9641
|
+
target: "hero",
|
|
9642
|
+
label: "Expressive brand-depth hero",
|
|
9643
|
+
blockKinds: ["block.hero"],
|
|
9644
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
9645
|
+
design: {
|
|
9646
|
+
sectionSurface: "brand-depth-band",
|
|
9647
|
+
contentFrame: plainFrame,
|
|
9648
|
+
heroComposition: "center",
|
|
9649
|
+
heroTypographyScale: "editorial",
|
|
9650
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9651
|
+
}
|
|
9652
|
+
}), defineBlockAppearancePreset({
|
|
9653
|
+
id: "hero-contained-intro",
|
|
9654
|
+
target: "hero",
|
|
9655
|
+
label: "Contained intro hero",
|
|
9656
|
+
blockKinds: ["block.hero"],
|
|
9657
|
+
design: {
|
|
9658
|
+
sectionSurface: "muted-band",
|
|
9659
|
+
contentFrame: panelFrame("inset"),
|
|
9660
|
+
heroComposition: "center",
|
|
9661
|
+
heroTypographyScale: "editorial"
|
|
9662
|
+
}
|
|
9663
|
+
}), defineBlockAppearancePreset({
|
|
9664
|
+
id: "hero-split-editorial",
|
|
9665
|
+
target: "hero",
|
|
9666
|
+
label: "Editorial split hero",
|
|
9667
|
+
blockKinds: ["block.hero"],
|
|
9668
|
+
constraints: { layoutFamilies: ["split"] },
|
|
9669
|
+
design: {
|
|
9670
|
+
sectionSurface: "base",
|
|
9671
|
+
contentFrame: plainFrame,
|
|
9672
|
+
heroTypographyScale: "editorial"
|
|
9673
|
+
}
|
|
9674
|
+
}), defineBlockAppearancePreset({
|
|
9675
|
+
id: "hero-split-brand",
|
|
9676
|
+
target: "hero",
|
|
9677
|
+
label: "Brand split hero",
|
|
9678
|
+
blockKinds: ["block.hero"],
|
|
9679
|
+
constraints: { layoutFamilies: ["split"] },
|
|
9680
|
+
design: {
|
|
9681
|
+
sectionSurface: "brand-depth-band",
|
|
9682
|
+
contentFrame: plainFrame,
|
|
9683
|
+
heroTypographyScale: "display",
|
|
9684
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9685
|
+
}
|
|
9686
|
+
}), defineBlockAppearancePreset({
|
|
9687
|
+
id: "hero-split-soft-panel",
|
|
9688
|
+
target: "hero",
|
|
9689
|
+
label: "Soft panel split hero",
|
|
9690
|
+
blockKinds: ["block.hero"],
|
|
9691
|
+
constraints: { layoutFamilies: ["split"] },
|
|
9692
|
+
design: {
|
|
9693
|
+
sectionSurface: "muted-band",
|
|
9694
|
+
contentFrame: panelFrame("raised"),
|
|
9695
|
+
heroTypographyScale: "editorial"
|
|
9696
|
+
}
|
|
9697
|
+
}), defineBlockAppearancePreset({
|
|
9698
|
+
id: "hero-split-accent",
|
|
9699
|
+
target: "hero",
|
|
9700
|
+
label: "Accent split hero",
|
|
9701
|
+
blockKinds: ["block.hero"],
|
|
9702
|
+
constraints: { layoutFamilies: ["split"] },
|
|
9703
|
+
design: {
|
|
9704
|
+
sectionSurface: "accent-band",
|
|
9705
|
+
contentFrame: panelFrame("raised"),
|
|
9706
|
+
heroTypographyScale: "display"
|
|
9707
|
+
}
|
|
9708
|
+
}), defineBlockAppearancePreset({
|
|
9709
|
+
id: "intro-editorial-statement",
|
|
9710
|
+
target: "intro",
|
|
9711
|
+
label: "Editorial intro statement",
|
|
9712
|
+
blockKinds: ["block.intro"],
|
|
9713
|
+
constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
|
|
9714
|
+
design: {
|
|
9715
|
+
sectionSurface: "base",
|
|
9716
|
+
contentFrame: plainFrame,
|
|
9717
|
+
composition: {
|
|
9718
|
+
kind: "intro",
|
|
9719
|
+
treatment: "editorial-statement"
|
|
9720
|
+
}
|
|
9721
|
+
}
|
|
9722
|
+
}), defineBlockAppearancePreset({
|
|
9723
|
+
id: "intro-portrait-bio",
|
|
9724
|
+
target: "intro",
|
|
9725
|
+
label: "Portrait and bio",
|
|
9726
|
+
blockKinds: ["block.intro"],
|
|
9727
|
+
constraints: { layoutVariantKeys: ["media-copy"] },
|
|
9728
|
+
design: {
|
|
9729
|
+
sectionSurface: "base",
|
|
9730
|
+
contentFrame: plainFrame,
|
|
9731
|
+
composition: {
|
|
9732
|
+
kind: "intro",
|
|
9733
|
+
treatment: "portrait-bio"
|
|
9734
|
+
}
|
|
9735
|
+
}
|
|
9736
|
+
}), defineBlockAppearancePreset({
|
|
9737
|
+
id: "offerings-preview-default-cards",
|
|
9738
|
+
target: "offerings",
|
|
9739
|
+
label: "Default offering cards",
|
|
9740
|
+
blockKinds: ["block.offerings-preview"],
|
|
9741
|
+
design: {
|
|
9742
|
+
sectionSurface: "base",
|
|
9743
|
+
contentFrame: plainFrame,
|
|
9744
|
+
cardRole: "default"
|
|
9745
|
+
}
|
|
9746
|
+
}), defineBlockAppearancePreset({
|
|
9747
|
+
id: "offerings-preview-secondary-cards",
|
|
9748
|
+
target: "offerings",
|
|
9749
|
+
label: "Secondary offering cards",
|
|
9750
|
+
blockKinds: ["block.offerings-preview"],
|
|
9751
|
+
design: {
|
|
9752
|
+
sectionSurface: "muted-band",
|
|
9753
|
+
contentFrame: plainFrame,
|
|
9754
|
+
cardRole: "alternative"
|
|
9755
|
+
}
|
|
9756
|
+
}), defineBlockAppearancePreset({
|
|
9757
|
+
id: "offerings-preview-non-carded",
|
|
9758
|
+
target: "offerings",
|
|
9759
|
+
label: "Non-carded offerings",
|
|
9760
|
+
blockKinds: ["block.offerings-preview"],
|
|
9761
|
+
design: {
|
|
9762
|
+
sectionSurface: "muted-band",
|
|
9763
|
+
contentFrame: plainFrame,
|
|
9764
|
+
cardRole: "open"
|
|
9765
|
+
}
|
|
9766
|
+
}), defineBlockAppearancePreset({
|
|
9767
|
+
id: "offerings-preview-paired-feature-cards",
|
|
9768
|
+
target: "offerings",
|
|
9769
|
+
label: "Paired feature cards",
|
|
9770
|
+
blockKinds: ["block.offerings-preview"],
|
|
9771
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
9772
|
+
design: {
|
|
9773
|
+
sectionSurface: "base",
|
|
9774
|
+
contentFrame: plainFrame,
|
|
9775
|
+
cardRole: "alternative",
|
|
9776
|
+
composition: {
|
|
9777
|
+
kind: "offerings-preview",
|
|
9778
|
+
treatment: "paired-feature-cards"
|
|
9779
|
+
}
|
|
9780
|
+
}
|
|
9781
|
+
}), defineBlockAppearancePreset({
|
|
9782
|
+
id: "offerings-preview-open-editorial-columns",
|
|
9783
|
+
target: "offerings",
|
|
9784
|
+
label: "Open editorial columns",
|
|
9785
|
+
blockKinds: ["block.offerings-preview"],
|
|
9786
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
9787
|
+
design: {
|
|
9788
|
+
sectionSurface: "base",
|
|
9789
|
+
contentFrame: plainFrame,
|
|
9790
|
+
cardRole: "open",
|
|
9791
|
+
composition: {
|
|
9792
|
+
kind: "offerings-preview",
|
|
9793
|
+
treatment: "open-editorial-columns"
|
|
9794
|
+
}
|
|
9795
|
+
}
|
|
9796
|
+
}), defineBlockAppearancePreset({
|
|
9797
|
+
id: "offerings-preview-joined-programme-panel",
|
|
9798
|
+
target: "offerings",
|
|
9799
|
+
label: "Joined programme panel",
|
|
9800
|
+
blockKinds: ["block.offerings-preview"],
|
|
9801
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
9802
|
+
design: {
|
|
9803
|
+
sectionSurface: "base",
|
|
9804
|
+
contentFrame: plainFrame,
|
|
9805
|
+
cardRole: "default",
|
|
9806
|
+
composition: {
|
|
9807
|
+
kind: "offerings-preview",
|
|
9808
|
+
treatment: "joined-programme-panel"
|
|
9809
|
+
}
|
|
9810
|
+
}
|
|
9811
|
+
}), defineBlockAppearancePreset({
|
|
9812
|
+
id: "feature-cards-raised-rule",
|
|
9813
|
+
target: "feature-cards",
|
|
9814
|
+
label: "Raised cards with rule",
|
|
9815
|
+
blockKinds: ["block.feature-cards"],
|
|
9816
|
+
design: {
|
|
9817
|
+
sectionSurface: "base",
|
|
9818
|
+
contentFrame: plainFrame,
|
|
9819
|
+
cardRole: "default"
|
|
9820
|
+
}
|
|
9821
|
+
}), defineBlockAppearancePreset({
|
|
9822
|
+
id: "feature-cards-bold-colors",
|
|
9823
|
+
target: "feature-cards",
|
|
9824
|
+
label: "Bold colour-blocked cards",
|
|
9825
|
+
blockKinds: ["block.feature-cards"],
|
|
9826
|
+
design: {
|
|
9827
|
+
sectionSurface: "base",
|
|
9828
|
+
contentFrame: plainFrame,
|
|
9829
|
+
cardRole: "alternative"
|
|
9830
|
+
}
|
|
9831
|
+
}), defineBlockAppearancePreset({
|
|
9832
|
+
id: "feature-cards-editorial-columns",
|
|
9833
|
+
target: "feature-cards",
|
|
9834
|
+
label: "Editorial open columns",
|
|
9835
|
+
blockKinds: ["block.feature-cards"],
|
|
9836
|
+
design: {
|
|
9837
|
+
sectionSurface: "muted-band",
|
|
9838
|
+
contentFrame: plainFrame,
|
|
9839
|
+
cardRole: "open"
|
|
9840
|
+
}
|
|
9841
|
+
}), defineBlockAppearancePreset({
|
|
9842
|
+
id: "feature-cards-asymmetric-emphasis",
|
|
9843
|
+
target: "feature-cards",
|
|
9844
|
+
label: "Asymmetric emphasis pair",
|
|
9845
|
+
blockKinds: ["block.feature-cards"],
|
|
9846
|
+
constraints: { layoutFamilies: ["grid"] },
|
|
9847
|
+
design: {
|
|
9848
|
+
sectionSurface: "base",
|
|
9849
|
+
contentFrame: plainFrame,
|
|
9850
|
+
composition: {
|
|
9851
|
+
kind: "feature-cards",
|
|
9852
|
+
treatment: "asymmetric-emphasis"
|
|
9853
|
+
}
|
|
9854
|
+
}
|
|
9855
|
+
}), defineBlockAppearancePreset({
|
|
9856
|
+
id: "feature-cards-framed-programme",
|
|
9857
|
+
target: "feature-cards",
|
|
9858
|
+
label: "Framed programme cards",
|
|
9859
|
+
blockKinds: ["block.feature-cards"],
|
|
9860
|
+
constraints: { layoutFamilies: ["grid"] },
|
|
9861
|
+
design: {
|
|
9862
|
+
sectionSurface: "brand-depth-band",
|
|
9863
|
+
contentFrame: plainFrame,
|
|
9864
|
+
cardRole: "alternative",
|
|
9865
|
+
composition: {
|
|
9866
|
+
kind: "feature-cards",
|
|
9867
|
+
treatment: "framed-programme"
|
|
9868
|
+
}
|
|
9869
|
+
}
|
|
9870
|
+
}), defineBlockAppearancePreset({
|
|
9871
|
+
id: "feature-cards-soft-panels",
|
|
9872
|
+
target: "feature-cards",
|
|
9873
|
+
label: "Soft tinted panels",
|
|
9874
|
+
blockKinds: ["block.feature-cards"],
|
|
9875
|
+
design: {
|
|
9876
|
+
sectionSurface: "base",
|
|
9877
|
+
contentFrame: plainFrame,
|
|
9878
|
+
cardRole: "alternative"
|
|
9879
|
+
}
|
|
9880
|
+
}), defineBlockAppearancePreset({
|
|
9881
|
+
id: "feature-cards-editorial-diptych",
|
|
9882
|
+
target: "feature-cards",
|
|
9883
|
+
label: "Editorial diptych",
|
|
9884
|
+
blockKinds: ["block.feature-cards"],
|
|
9885
|
+
constraints: { layoutVariantKeys: ["editorial-diptych"] },
|
|
9886
|
+
design: {
|
|
9887
|
+
sectionSurface: "base",
|
|
9888
|
+
contentFrame: plainFrame,
|
|
9889
|
+
cardRole: "default"
|
|
9890
|
+
}
|
|
9891
|
+
}), defineBlockAppearancePreset({
|
|
9892
|
+
id: "feature-cards-editorial-pathways",
|
|
9893
|
+
target: "feature-cards",
|
|
9894
|
+
label: "Editorial pathways",
|
|
9895
|
+
blockKinds: ["block.feature-cards"],
|
|
9896
|
+
constraints: { layoutVariantKeys: ["editorial-pathways"] },
|
|
9897
|
+
design: {
|
|
9898
|
+
sectionSurface: "base",
|
|
9899
|
+
contentFrame: plainFrame,
|
|
9900
|
+
cardRole: "default"
|
|
9901
|
+
}
|
|
9902
|
+
}), defineBlockAppearancePreset({
|
|
9903
|
+
id: "feature-cards-photo-tiles",
|
|
9904
|
+
target: "feature-cards",
|
|
9905
|
+
label: "Photo tiles",
|
|
9906
|
+
blockKinds: ["block.feature-cards"],
|
|
9907
|
+
design: {
|
|
9908
|
+
sectionSurface: "base",
|
|
9909
|
+
contentFrame: plainFrame,
|
|
9910
|
+
cardRole: "default"
|
|
9911
|
+
}
|
|
9912
|
+
}), defineBlockAppearancePreset({
|
|
9913
|
+
id: "events-lined-panel",
|
|
9914
|
+
target: "events",
|
|
9915
|
+
label: "Raised event panel",
|
|
9916
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
9917
|
+
design: {
|
|
9918
|
+
sectionSurface: "base",
|
|
9919
|
+
contentFrame: panelFrame("raised")
|
|
9920
|
+
}
|
|
9921
|
+
}), defineBlockAppearancePreset({
|
|
9922
|
+
id: "events-ruled-register",
|
|
9923
|
+
target: "events",
|
|
9924
|
+
label: "Ruled event register",
|
|
9925
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
9926
|
+
design: {
|
|
9927
|
+
sectionSurface: "brand-depth-band",
|
|
9928
|
+
contentFrame: plainFrame,
|
|
9929
|
+
eventListTreatment: "ruled-register"
|
|
9930
|
+
}
|
|
9931
|
+
}), defineBlockAppearancePreset({
|
|
9932
|
+
id: "events-editorial-register",
|
|
9933
|
+
target: "events",
|
|
9934
|
+
label: "Editorial event register",
|
|
9935
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
9936
|
+
design: {
|
|
9937
|
+
sectionSurface: "base",
|
|
9938
|
+
contentFrame: plainFrame,
|
|
9939
|
+
eventListTreatment: "editorial-register"
|
|
9940
|
+
}
|
|
9941
|
+
}), defineBlockAppearancePreset({
|
|
9942
|
+
id: "events-dense-index",
|
|
9943
|
+
target: "events",
|
|
9944
|
+
label: "Dense event index",
|
|
9945
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
9946
|
+
design: {
|
|
9947
|
+
sectionSurface: "accent-band",
|
|
9948
|
+
contentFrame: plainFrame,
|
|
9949
|
+
eventListTreatment: "dense-index"
|
|
9950
|
+
}
|
|
9951
|
+
}), defineBlockAppearancePreset({
|
|
9952
|
+
id: "schedule-details-brand-depth",
|
|
9953
|
+
target: "events",
|
|
9954
|
+
label: "Brand-depth schedule details",
|
|
9955
|
+
blockKinds: ["block.event-details"],
|
|
9956
|
+
design: {
|
|
9957
|
+
sectionSurface: "brand-depth-band",
|
|
9958
|
+
contentFrame: plainFrame,
|
|
9959
|
+
tileTreatment: "brand-depth"
|
|
9960
|
+
}
|
|
9961
|
+
}), defineBlockAppearancePreset({
|
|
9962
|
+
id: "media-text-flush-feature",
|
|
9963
|
+
target: "media-text",
|
|
9964
|
+
label: "Flush media feature",
|
|
9965
|
+
blockKinds: ["block.media-text"],
|
|
9966
|
+
design: {
|
|
9967
|
+
sectionSurface: "muted-band",
|
|
9968
|
+
contentFrame: flushPanelFrame({ bleed: "start" })
|
|
9969
|
+
}
|
|
9970
|
+
}), defineBlockAppearancePreset({
|
|
9971
|
+
id: "testimonials-simple-cards",
|
|
9972
|
+
target: "testimonials",
|
|
9973
|
+
label: "Simple testimonial cards",
|
|
9974
|
+
blockKinds: ["block.testimonials"],
|
|
9975
|
+
design: {
|
|
9976
|
+
sectionSurface: "base",
|
|
9977
|
+
contentFrame: plainFrame,
|
|
9978
|
+
cardRole: "default"
|
|
9979
|
+
}
|
|
9980
|
+
}), defineBlockAppearancePreset({
|
|
9981
|
+
id: "testimonials-raised-panel",
|
|
9982
|
+
target: "testimonials",
|
|
9983
|
+
label: "Raised testimonial panel",
|
|
9984
|
+
blockKinds: ["block.testimonials"],
|
|
9985
|
+
design: {
|
|
9986
|
+
sectionSurface: "muted-band",
|
|
9987
|
+
contentFrame: panelFrame("raised"),
|
|
9988
|
+
cardRole: "default"
|
|
9989
|
+
}
|
|
9990
|
+
}), defineBlockAppearancePreset({
|
|
9991
|
+
id: "testimonials-accent-panel",
|
|
9992
|
+
target: "testimonials",
|
|
9993
|
+
label: "Accent testimonial panel",
|
|
9994
|
+
blockKinds: ["block.testimonials"],
|
|
9995
|
+
design: {
|
|
9996
|
+
sectionSurface: "accent-band",
|
|
9997
|
+
contentFrame: panelFrame("raised"),
|
|
9998
|
+
cardRole: "default"
|
|
9999
|
+
}
|
|
10000
|
+
}), defineBlockAppearancePreset({
|
|
10001
|
+
id: "testimonials-default-cards",
|
|
10002
|
+
target: "testimonials",
|
|
10003
|
+
label: "Default cards",
|
|
10004
|
+
blockKinds: ["block.testimonials"],
|
|
10005
|
+
design: {
|
|
10006
|
+
sectionSurface: "base",
|
|
10007
|
+
contentFrame: plainFrame,
|
|
10008
|
+
cardRole: "default"
|
|
10009
|
+
}
|
|
10010
|
+
}), defineBlockAppearancePreset({
|
|
10011
|
+
id: "testimonials-statement-cards",
|
|
10012
|
+
target: "testimonials",
|
|
10013
|
+
label: "Statement cards",
|
|
10014
|
+
blockKinds: ["block.testimonials"],
|
|
10015
|
+
design: {
|
|
10016
|
+
sectionSurface: "accent-band",
|
|
10017
|
+
contentFrame: plainFrame,
|
|
10018
|
+
cardRole: "alternative"
|
|
10019
|
+
}
|
|
10020
|
+
}), defineBlockAppearancePreset({
|
|
10021
|
+
id: "testimonials-brand-statement-cards",
|
|
10022
|
+
target: "testimonials",
|
|
10023
|
+
label: "Brand statement cards",
|
|
10024
|
+
blockKinds: ["block.testimonials"],
|
|
10025
|
+
design: {
|
|
10026
|
+
sectionSurface: "brand-depth-band",
|
|
10027
|
+
contentFrame: plainFrame,
|
|
10028
|
+
cardRole: "alternative"
|
|
10029
|
+
}
|
|
10030
|
+
}), defineBlockAppearancePreset({
|
|
10031
|
+
id: "testimonials-non-carded",
|
|
10032
|
+
target: "testimonials",
|
|
10033
|
+
label: "Non-carded",
|
|
10034
|
+
blockKinds: ["block.testimonials"],
|
|
10035
|
+
design: {
|
|
10036
|
+
sectionSurface: "muted-band",
|
|
10037
|
+
contentFrame: plainFrame,
|
|
10038
|
+
composition: {
|
|
10039
|
+
kind: "testimonials",
|
|
10040
|
+
treatment: "open-editorial"
|
|
10041
|
+
}
|
|
10042
|
+
}
|
|
10043
|
+
}), defineBlockAppearancePreset({
|
|
10044
|
+
id: "testimonials-evergreen-lead",
|
|
10045
|
+
target: "testimonials",
|
|
10046
|
+
label: "Evergreen lead",
|
|
10047
|
+
blockKinds: ["block.testimonials"],
|
|
10048
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
10049
|
+
design: {
|
|
10050
|
+
sectionSurface: "base",
|
|
10051
|
+
contentFrame: plainFrame,
|
|
10052
|
+
composition: {
|
|
10053
|
+
kind: "testimonials",
|
|
10054
|
+
treatment: "evergreen-lead"
|
|
10055
|
+
}
|
|
10056
|
+
}
|
|
10057
|
+
}), defineBlockAppearancePreset({
|
|
10058
|
+
id: "testimonials-room-and-response",
|
|
10059
|
+
target: "testimonials",
|
|
10060
|
+
label: "Room and response",
|
|
10061
|
+
blockKinds: ["block.testimonials"],
|
|
10062
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
10063
|
+
design: {
|
|
10064
|
+
sectionSurface: "base",
|
|
10065
|
+
contentFrame: plainFrame,
|
|
10066
|
+
composition: {
|
|
10067
|
+
kind: "testimonials",
|
|
10068
|
+
treatment: "room-and-response"
|
|
10069
|
+
}
|
|
10070
|
+
}
|
|
10071
|
+
}), defineBlockAppearancePreset({
|
|
10072
|
+
id: "testimonials-open-floor",
|
|
10073
|
+
target: "testimonials",
|
|
10074
|
+
label: "Open floor",
|
|
10075
|
+
blockKinds: ["block.testimonials"],
|
|
10076
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
10077
|
+
design: {
|
|
10078
|
+
sectionSurface: "base",
|
|
10079
|
+
contentFrame: plainFrame,
|
|
10080
|
+
composition: {
|
|
10081
|
+
kind: "testimonials",
|
|
10082
|
+
treatment: "open-floor"
|
|
10083
|
+
}
|
|
10084
|
+
}
|
|
10085
|
+
}), defineBlockAppearancePreset({
|
|
10086
|
+
id: "faq-base-accordion",
|
|
10087
|
+
target: "faq",
|
|
10088
|
+
label: "Base accordion FAQ",
|
|
10089
|
+
blockKinds: ["block.faq"],
|
|
10090
|
+
design: {
|
|
10091
|
+
sectionSurface: "base",
|
|
10092
|
+
contentFrame: plainFrame,
|
|
10093
|
+
cardRole: "default"
|
|
10094
|
+
}
|
|
10095
|
+
}), defineBlockAppearancePreset({
|
|
10096
|
+
id: "faq-contained-help",
|
|
10097
|
+
target: "faq",
|
|
10098
|
+
label: "Contained help panel",
|
|
10099
|
+
blockKinds: ["block.faq"],
|
|
10100
|
+
design: {
|
|
10101
|
+
sectionSurface: "muted-band",
|
|
10102
|
+
contentFrame: panelFrame("inset"),
|
|
10103
|
+
cardRole: "default"
|
|
10104
|
+
}
|
|
10105
|
+
}), defineBlockAppearancePreset({
|
|
10106
|
+
id: "contact-form-panel",
|
|
10107
|
+
target: "contact-form",
|
|
10108
|
+
label: "Raised form panel",
|
|
10109
|
+
blockKinds: ["block.form"],
|
|
10110
|
+
design: {
|
|
10111
|
+
sectionSurface: "muted-band",
|
|
10112
|
+
contentFrame: panelFrame("raised")
|
|
10113
|
+
}
|
|
10114
|
+
}), defineBlockAppearancePreset({
|
|
10115
|
+
id: "booking-brand-band",
|
|
10116
|
+
target: "contact-form",
|
|
10117
|
+
label: "Brand band booking",
|
|
10118
|
+
blockKinds: ["block.appointment-booking"],
|
|
10119
|
+
design: {
|
|
10120
|
+
sectionSurface: "brand-depth-band",
|
|
10121
|
+
contentFrame: plainFrame
|
|
10122
|
+
}
|
|
10123
|
+
}), defineBlockAppearancePreset({
|
|
10124
|
+
id: "cta-accent-band",
|
|
10125
|
+
target: "cta",
|
|
10126
|
+
label: "Accent CTA band",
|
|
10127
|
+
blockKinds: ["block.cta-full"],
|
|
10128
|
+
design: {
|
|
10129
|
+
sectionSurface: "accent-band",
|
|
10130
|
+
contentFrame: plainFrame,
|
|
10131
|
+
eyebrowTreatment: "accent"
|
|
10132
|
+
}
|
|
10133
|
+
});
|
|
10134
|
+
asPageFlowPresetId("generated-default");
|
|
10135
|
+
asSiteStyleId("site-style:south-west-twerk-school");
|
|
10136
|
+
asAppearancePresetId("hero-brand-scrim-fixed-frame");
|
|
10137
|
+
asLayoutVariantKey("classic");
|
|
10138
|
+
asLayoutVariantKey("micro");
|
|
8958
10139
|
asBoundaryOptionId("break:wave");
|
|
8959
|
-
asBoundaryOptionId("break:wave-balanced");
|
|
8960
|
-
asBoundaryOptionId("break:wave-gentle");
|
|
8961
|
-
asBoundaryOptionId("break:wave-bold");
|
|
8962
|
-
asBoundaryOptionId("break:wave-drift");
|
|
8963
|
-
asBoundaryOptionId("break:angle-subtle");
|
|
8964
|
-
asBoundaryOptionId("break:angle-balanced");
|
|
8965
|
-
asBoundaryOptionId("break:angle-steep");
|
|
8966
10140
|
//#endregion
|
|
8967
10141
|
//#region ../theme-core/src/site-styles/runtimeCompiler.ts
|
|
8968
10142
|
function defineSectionForegroundRuntimeTokens(input) {
|
|
@@ -8986,7 +10160,7 @@ function defineComponentRuntimeRules(rules) {
|
|
|
8986
10160
|
}
|
|
8987
10161
|
/**
|
|
8988
10162
|
* Default design rules translate semantic page-level choices into the current
|
|
8989
|
-
* runtime's section background
|
|
10163
|
+
* runtime's section background vocabulary.
|
|
8990
10164
|
*/
|
|
8991
10165
|
const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
8992
10166
|
sectionSurfaces: {
|
|
@@ -9021,8 +10195,7 @@ const defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
9021
10195
|
color: "surface",
|
|
9022
10196
|
opacity: .88
|
|
9023
10197
|
}
|
|
9024
|
-
}
|
|
9025
|
-
transitionClassName: (transition, fromSurface, toSurface) => transition === "none" ? null : `site-style-transition-${transition}-from-${fromSurface}-to-${toSurface}`
|
|
10198
|
+
}
|
|
9026
10199
|
});
|
|
9027
10200
|
/**
|
|
9028
10201
|
* Default component rules translate frame and item-surface semantics into the
|
|
@@ -10737,14 +11910,6 @@ const curatedSiteStyles = [
|
|
|
10737
11910
|
})
|
|
10738
11911
|
];
|
|
10739
11912
|
new Map(curatedSiteStyles.map((style) => [style.id, style]));
|
|
10740
|
-
svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V46C130 55 260 24 420 30C590 36 690 62 860 42C1035 21 1160 47 1305 36C1365 31 1415 33 1440 38V72H0Z' fill='white'/></svg>");
|
|
10741
|
-
svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V42C120 24 240 24 360 42C480 60 600 60 720 42C840 24 960 24 1080 42C1200 60 1320 60 1440 42V72H0Z' fill='white'/></svg>");
|
|
10742
|
-
svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V43C180 32 300 32 480 43C660 54 780 54 960 43C1140 32 1260 32 1440 43V72H0Z' fill='white'/></svg>");
|
|
10743
|
-
svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V44C90 14 270 14 360 44C450 74 630 74 720 44C810 14 990 14 1080 44C1170 74 1350 74 1440 44V72H0Z' fill='white'/></svg>");
|
|
10744
|
-
svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V39C115 31 205 54 340 48C505 41 610 16 760 33C920 51 1015 64 1160 44C1280 27 1375 35 1440 50V72H0Z' fill='white'/></svg>");
|
|
10745
|
-
function svgDataUrl(svg) {
|
|
10746
|
-
return `data:image/svg+xml,${encodeURIComponent(svg)}`;
|
|
10747
|
-
}
|
|
10748
11913
|
//#endregion
|
|
10749
11914
|
//#region ../theme-core/src/status/generateStatusCss.ts
|
|
10750
11915
|
/**
|