@riverbankcms/sdk 0.126.0 → 0.127.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-DcYJxTgc.mjs → PreviewEditorSidebar-BXtfF7tp.mjs} +58 -38
- package/dist/{PreviewEditorUI-Ctt1yTJr.mjs → PreviewEditorUI-Dou73Q0K.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-CvW1vdQ4.mjs → SdkPreviewModeRuntime-B0HPXr-l.mjs} +119 -41
- package/dist/{SiteChromeCustomizeContext-C87qlKWw.mjs → SiteChromeCustomizeContext-DZiDBAYu.mjs} +9961 -9583
- package/dist/_dts/ai/src/contracts/proposals.d.ts +198 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -5
- package/dist/_dts/block-form/src/backend/store-backend.d.ts +2 -1
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +1 -0
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- package/dist/_dts/blocks/src/lib/media.d.ts +267 -0
- package/dist/_dts/blocks/src/system/constants/buttonRoles.d.ts +0 -13
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/mergeResolveImageUrlContexts.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +2 -2
- package/dist/_dts/content-editor/src/ui/blockValidationManifestRegistry.d.ts +17 -0
- package/dist/_dts/content-editor/src/ui/blockValidationView.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +4 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +143 -155
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockValidationManifests.d.ts +26 -0
- package/dist/_dts/editor-blocks/src/widgets/rich-text/imageInsert.d.ts +3 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -2
- package/dist/_dts/media-editor/src/context.d.ts +1 -2
- package/dist/_dts/media-editor/src/index.d.ts +3 -1
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +32 -0
- package/dist/_dts/media-editor/src/types.d.ts +3 -1
- package/dist/_dts/media-editor/src/useMediaSelection.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/index.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/HeaderMenuControls.d.ts +12 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +12 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -49
- package/dist/_dts/preview-next/src/client/preview/headerInteractionPaletteSurfaceState.d.ts +8 -0
- package/dist/_dts/preview-next/src/client/preview/previewThemeRoles.d.ts +15 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeCustomizeTypes.d.ts +54 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +13 -3
- package/dist/_dts/preview-next/src/client/preview/siteChromeNavQuickControlHistory.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +6 -3
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/styles/registry.d.ts +0 -18
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -3
- package/dist/_dts/theme-core/src/header/containerSchema.d.ts +20 -0
- package/dist/_dts/theme-core/src/header/generateHeaderCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/header/interactionPalette.d.ts +14 -0
- package/dist/_dts/theme-core/src/header/legacyNavLinkStyle.d.ts +3 -0
- package/dist/_dts/theme-core/src/header/paintTargets.d.ts +25 -0
- package/dist/_dts/theme-core/src/header/scrollTreatment.d.ts +11 -0
- package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +9 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/colors.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +67 -19
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +4 -11
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +3 -51
- package/dist/_dts/theme-core/src/site-styles/headerInteractionPalette.d.ts +32 -0
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +19 -106
- package/dist/_dts/theme-core/src/site-styles/headerOpeningForeground.d.ts +22 -0
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/headerStyleParts.d.ts +4 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +3 -0
- package/dist/_dts/theme-core/src/site-styles/lookOptionGroups.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +1 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +4 -22
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorOptions.d.ts +21 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +4 -1
- package/dist/cli/index.mjs +973 -1081
- package/dist/client/{DiscountCodeDisclosure-DS0AuFWW.mjs → DiscountCodeDisclosure-BDFRp8Y7.mjs} +1 -1
- package/dist/client/{EventCombined.client-DtMxLr7q.mjs → EventCombined.client-DJgF1_lf.mjs} +2 -2
- package/dist/client/{EventListing.client-BdLSRNg1.mjs → EventListing.client-CnWGNjOr.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BrpC6vsT.mjs → LeafletStaticMap-BISs9Bl7.mjs} +1 -1
- package/dist/client/{MagicLinkForm-Bt3IuLMy.mjs → MagicLinkForm-b5E_HoG9.mjs} +1 -1
- package/dist/client/{StepIndicator-CBYPFVoy.mjs → StepIndicator-D8gVYkK-.mjs} +2 -2
- package/dist/client/{accordion-BqqwPJWM.mjs → accordion-DFDajgDz.mjs} +1 -1
- package/dist/client/{bookingForm-SneP3yxC.mjs → bookingForm-Bdqj9-52.mjs} +5 -5
- package/dist/client/bookings.mjs +126 -23
- package/dist/client/{carousel-BTIR9L3I.mjs → carousel-Cvqf-kN8.mjs} +1 -1
- package/dist/client/{cart-bqiqd8SX.mjs → cart-CuH2TJXP.mjs} +3 -3
- package/dist/client/{checkout-WbTFV5v4.mjs → checkout-CMNPpejZ.mjs} +3 -3
- package/dist/client/client.mjs +1227 -1209
- package/dist/client/{courseRegistration-BcemLAdN.mjs → courseRegistration-DTEYWL6Z.mjs} +6 -6
- package/dist/client/{eventCalendar-CsxIw0V_.mjs → eventCalendar-BW-XoxZ0.mjs} +4 -4
- package/dist/client/{eventCombined-B6XMoHfa.mjs → eventCombined-Bpn7s0y9.mjs} +2 -2
- package/dist/client/{eventDetails-BJaoPPfo.mjs → eventDetails-D2uUSTMH.mjs} +3 -3
- package/dist/client/{eventListing-DgwdYHRT.mjs → eventListing-CVr1c094.mjs} +2 -2
- package/dist/client/{eventRegistration-C0O3folu.mjs → eventRegistration-Dv4AvkMw.mjs} +6 -6
- package/dist/client/{form-Bk9txGFt.mjs → form-DxdKf9fs.mjs} +1 -1
- package/dist/client/{headerSection-yIBt0yTv.mjs → headerSection-BaXI5Sro.mjs} +2 -2
- package/dist/client/hooks.mjs +801 -874
- package/dist/client/{locationMap-C-3KIpv-.mjs → locationMap-BEtW2fKz.mjs} +2 -2
- package/dist/client/{newsletterForm-CzB8g8h2.mjs → newsletterForm-BKKs0S4R.mjs} +1 -1
- package/dist/client/{pricing-C1QeDes_.mjs → pricing-ClkqcElA.mjs} +1 -1
- package/dist/client/{productDetail-w7SBp5uc.mjs → productDetail-H-ru8dyy.mjs} +3 -3
- package/dist/client/{productList-D0tGKHGf.mjs → productList-Buyi5c0C.mjs} +3 -3
- package/dist/client/{propsDecoder-Bcin2DB3.mjs → propsDecoder-BF7i6Ijg.mjs} +127 -55
- package/dist/client/rendering/client.mjs +928 -916
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +1130 -1114
- package/dist/client/{scrollToBlock-h-o_STf_.mjs → scrollToBlock-D_7t8yWb.mjs} +1 -1
- package/dist/client/{shop-BGzmL8O_.mjs → shop-CF7SZQNX.mjs} +5 -5
- package/dist/client/{shop-commerce-lX8QxjX-.mjs → shop-commerce-DA7_Rq5p.mjs} +4 -4
- package/dist/client/{shop-commerce-store-CEurARtu.mjs → shop-commerce-store-BmLqW7Gh.mjs} +1 -1
- package/dist/client/{shopShared-DXxH8xxw.mjs → shopShared-WL-E1znM.mjs} +2 -2
- package/dist/client/{useEventFilters-B591g9vd.mjs → useEventFilters-rc8VLeLV.mjs} +2 -2
- package/dist/client/{usePolling-BvnChV4m.mjs → usePolling-1ncrfd4S.mjs} +2 -2
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-M__i3Jce.mjs → sdk-runtime-BnrCCFJq.mjs} +1 -1
- package/dist/{separator-VSlnI9bc.mjs → separator-CFvBx2yl.mjs} +1 -1
- package/dist/server/components.mjs +1302 -1350
- package/dist/server/config-validation.mjs +801 -874
- package/dist/server/config.mjs +801 -874
- package/dist/server/data.mjs +801 -874
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +1303 -1351
- package/dist/server/page-converter.mjs +801 -874
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1296 -1344
- package/dist/server/rendering.mjs +1302 -1350
- package/dist/server/routing.mjs +869 -895
- package/dist/server/server.mjs +802 -875
- package/dist/server/theme-bridge.mjs +151 -118
- package/dist/server/theme.mjs +111 -23
- package/package.json +1 -1
- package/dist/_dts/editor-blocks/src/widgets/rich-text/ensureRichTextImageAssetIdentifier.d.ts +0 -8
|
@@ -3594,6 +3594,99 @@ function createRichTextDoc(paragraphs) {
|
|
|
3594
3594
|
} : { type: "paragraph" })
|
|
3595
3595
|
};
|
|
3596
3596
|
}
|
|
3597
|
+
const PUBLIC_DOWNLOAD_MEDIA_TYPES = [
|
|
3598
|
+
"document",
|
|
3599
|
+
"spreadsheet",
|
|
3600
|
+
"archive",
|
|
3601
|
+
"audio"
|
|
3602
|
+
];
|
|
3603
|
+
const hotspotSchema$1 = z.object({
|
|
3604
|
+
x: z.number().min(0).max(1),
|
|
3605
|
+
y: z.number().min(0).max(1),
|
|
3606
|
+
radius: z.number().optional()
|
|
3607
|
+
});
|
|
3608
|
+
const rotationSchema$1 = z.union([
|
|
3609
|
+
z.literal(0),
|
|
3610
|
+
z.literal(90),
|
|
3611
|
+
z.literal(180),
|
|
3612
|
+
z.literal(270)
|
|
3613
|
+
]);
|
|
3614
|
+
const rectSchema$1 = z.tuple([
|
|
3615
|
+
z.number(),
|
|
3616
|
+
z.number(),
|
|
3617
|
+
z.number(),
|
|
3618
|
+
z.number()
|
|
3619
|
+
]);
|
|
3620
|
+
const aspectCropSchema$1 = z.object({
|
|
3621
|
+
aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
|
|
3622
|
+
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema$1.optional()),
|
|
3623
|
+
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema$1.optional()),
|
|
3624
|
+
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema$1.optional())
|
|
3625
|
+
});
|
|
3626
|
+
const transformSchema$1 = z.object({
|
|
3627
|
+
aspectCrops: z.preprocess((value) => {
|
|
3628
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
3629
|
+
return value;
|
|
3630
|
+
}, z.record(z.string(), aspectCropSchema$1.catch({}))).optional(),
|
|
3631
|
+
rect: rectSchema$1.optional(),
|
|
3632
|
+
hotspot: hotspotSchema$1.optional(),
|
|
3633
|
+
rotation: rotationSchema$1.optional()
|
|
3634
|
+
});
|
|
3635
|
+
const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
|
|
3636
|
+
tag: z.literal("storage"),
|
|
3637
|
+
assetId: z.string().optional(),
|
|
3638
|
+
storageBucket: z.string().min(1),
|
|
3639
|
+
storagePath: z.string().min(1)
|
|
3640
|
+
}), z.object({
|
|
3641
|
+
tag: z.literal("external-src"),
|
|
3642
|
+
assetId: z.string().optional(),
|
|
3643
|
+
src: z.string().url()
|
|
3644
|
+
})]);
|
|
3645
|
+
const mediaBaseSchema = z.object({
|
|
3646
|
+
purpose: z.string().optional(),
|
|
3647
|
+
placeholder: z.boolean().default(true).optional(),
|
|
3648
|
+
assetId: z.string().optional(),
|
|
3649
|
+
identifier: z.string().optional(),
|
|
3650
|
+
src: z.string().optional(),
|
|
3651
|
+
alt: z.string().optional(),
|
|
3652
|
+
filename: z.string().optional(),
|
|
3653
|
+
mimeType: z.string().optional(),
|
|
3654
|
+
width: z.number().optional(),
|
|
3655
|
+
height: z.number().optional(),
|
|
3656
|
+
storageBucket: z.string().optional(),
|
|
3657
|
+
storagePath: z.string().optional(),
|
|
3658
|
+
poster: mediaPosterSchema.optional(),
|
|
3659
|
+
transform: transformSchema$1.optional()
|
|
3660
|
+
});
|
|
3661
|
+
/**
|
|
3662
|
+
* Canonical identifier carried by media values that are safe to persist.
|
|
3663
|
+
* Parsing trims boundary input so downstream writers cannot retain whitespace-only
|
|
3664
|
+
* identifiers or independently disagree about normalization.
|
|
3665
|
+
*/
|
|
3666
|
+
const mediaIdentifierSchema = z.string().trim().min(1).brand();
|
|
3667
|
+
const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
|
|
3668
|
+
const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
|
|
3669
|
+
const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
|
|
3670
|
+
const documentMediaSchema = mediaBaseSchema.extend({ type: z.literal("document") });
|
|
3671
|
+
const spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z.literal("spreadsheet") });
|
|
3672
|
+
const archiveMediaSchema = mediaBaseSchema.extend({ type: z.literal("archive") });
|
|
3673
|
+
const mediaSchema$1 = z.discriminatedUnion("type", [
|
|
3674
|
+
imageMediaSchema,
|
|
3675
|
+
videoMediaSchema,
|
|
3676
|
+
audioMediaSchema,
|
|
3677
|
+
documentMediaSchema,
|
|
3678
|
+
spreadsheetMediaSchema,
|
|
3679
|
+
archiveMediaSchema
|
|
3680
|
+
]);
|
|
3681
|
+
const persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
|
|
3682
|
+
z.discriminatedUnion("type", [
|
|
3683
|
+
persistableMediaBaseSchema.extend({ type: z.literal("image") }),
|
|
3684
|
+
persistableMediaBaseSchema.extend({ type: z.literal("video") }),
|
|
3685
|
+
persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
|
|
3686
|
+
persistableMediaBaseSchema.extend({ type: z.literal("document") }),
|
|
3687
|
+
persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
|
|
3688
|
+
persistableMediaBaseSchema.extend({ type: z.literal("archive") })
|
|
3689
|
+
]);
|
|
3597
3690
|
//#endregion
|
|
3598
3691
|
//#region ../blocks/src/system/manifest/fieldValidation/index.ts
|
|
3599
3692
|
const TEL_RE = /^[+()0-9\s-]{3,}$/;
|
|
@@ -3883,7 +3976,7 @@ function canonicalizeFieldValueForWrite(plan, value) {
|
|
|
3883
3976
|
case "media": {
|
|
3884
3977
|
if (!isPlainObject$5(value)) return value;
|
|
3885
3978
|
const canonical = { ...value };
|
|
3886
|
-
if (
|
|
3979
|
+
if (mediaIdentifierSchema.safeParse(canonical.identifier).success) deleteEnvSpecificKeys(canonical);
|
|
3887
3980
|
return canonical;
|
|
3888
3981
|
}
|
|
3889
3982
|
case "group": return canonicalizeObjectForWrite(selectedGroupChildPlans(plan, value), value);
|
|
@@ -3978,7 +4071,7 @@ function normalizeObjectChildren(children, value, ctx) {
|
|
|
3978
4071
|
function normalizeInlineTextFallbacks(plans, values, ctx) {
|
|
3979
4072
|
for (const plan of plans) {
|
|
3980
4073
|
if (plan.kind !== "inlineText" || !plan.plainTextFallbackPath) continue;
|
|
3981
|
-
if (!isMissingForPlan(plan, values[plan.fieldId])) continue;
|
|
4074
|
+
if (!isMissingForPlan(plan, values[plan.fieldId]) && !(ctx.allowIncomplete && !parseInlineTextFromUnknown(values[plan.fieldId]).ok)) continue;
|
|
3982
4075
|
const fallback = getAtFieldPath(values, plan.plainTextFallbackPath);
|
|
3983
4076
|
if (typeof fallback !== "string" || fallback.trim().length === 0) continue;
|
|
3984
4077
|
values[plan.fieldId] = normalizeFieldValue(plan, plainTextToInlineText(fallback), ctx);
|
|
@@ -4019,7 +4112,7 @@ function validateNormalizedFieldValue(plan, value, ctx) {
|
|
|
4019
4112
|
case "select": return validateSelectPlan(plan, value);
|
|
4020
4113
|
case "richText": return isValidRichTextDoc(value) ? [] : [issue(plan, "invalidRichText")];
|
|
4021
4114
|
case "inlineText": return validateInlineTextPlan(plan, value);
|
|
4022
|
-
case "media": return isPlainObject$5(value) &&
|
|
4115
|
+
case "media": return isPlainObject$5(value) && mediaIdentifierSchema.safeParse(value.identifier).success && (value.type === void 0 || typeof value.type === "string" && plan.allowedMediaTypes.includes(value.type)) ? [] : [issue(plan, "invalidMedia")];
|
|
4023
4116
|
case "link": return linkSchema.safeParse(value).success ? [] : [issue(plan, "invalidLink")];
|
|
4024
4117
|
case "repeater": return validateRepeaterPlan(plan, value, ctx);
|
|
4025
4118
|
case "group": return validateGroupPlan(plan, value, ctx);
|
|
@@ -4738,6 +4831,17 @@ function asAccessibleSurfaceToken(token) {
|
|
|
4738
4831
|
return token;
|
|
4739
4832
|
}
|
|
4740
4833
|
//#endregion
|
|
4834
|
+
//#region ../theme-core/src/site-styles/lookOptionGroups.ts
|
|
4835
|
+
function defineLookOptionGroup(group) {
|
|
4836
|
+
defaultOption(group);
|
|
4837
|
+
return group;
|
|
4838
|
+
}
|
|
4839
|
+
function defaultOption(group) {
|
|
4840
|
+
const option = group.options.find((candidate) => candidate.id === group.defaultOptionId);
|
|
4841
|
+
if (option) return option;
|
|
4842
|
+
throw new Error(`Look option group "${group.id}" defaults to missing option "${group.defaultOptionId}".`);
|
|
4843
|
+
}
|
|
4844
|
+
//#endregion
|
|
4741
4845
|
//#region ../theme-core/src/site-styles/types.ts
|
|
4742
4846
|
/**
|
|
4743
4847
|
* Defines a literal-preserving catalog while rejecting top-level extra keys on
|
|
@@ -4883,767 +4987,655 @@ function defineBlockDesignCapability(capability) {
|
|
|
4883
4987
|
//#region ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
4884
4988
|
function assertValidOptionGroups(preset) {
|
|
4885
4989
|
preset.optionGroups?.forEach((group) => {
|
|
4886
|
-
|
|
4990
|
+
defineLookOptionGroup(group);
|
|
4887
4991
|
});
|
|
4888
4992
|
}
|
|
4889
4993
|
function defineBlockAppearancePreset(preset) {
|
|
4890
4994
|
assertValidOptionGroups(preset);
|
|
4891
4995
|
return preset;
|
|
4892
4996
|
}
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
-
|
|
4906
|
-
|
|
4907
|
-
|
|
4908
|
-
|
|
4909
|
-
|
|
4910
|
-
|
|
4911
|
-
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4997
|
+
//#endregion
|
|
4998
|
+
//#region ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
4999
|
+
const brandScrimOptionGroups = [{
|
|
5000
|
+
id: "image-surface-treatment",
|
|
5001
|
+
label: "Treatment",
|
|
5002
|
+
defaultOptionId: "brand-scrim-primary",
|
|
5003
|
+
options: [{
|
|
5004
|
+
id: "brand-scrim-primary",
|
|
5005
|
+
label: "Brand scrim",
|
|
5006
|
+
designPatch: { imageSurfaceTreatment: {
|
|
5007
|
+
kind: "brand-scrim",
|
|
5008
|
+
token: "primary"
|
|
5009
|
+
} }
|
|
5010
|
+
}, {
|
|
5011
|
+
id: "neutral-scrim",
|
|
5012
|
+
label: "Neutral scrim",
|
|
5013
|
+
designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
|
|
5014
|
+
}]
|
|
5015
|
+
}];
|
|
5016
|
+
const microBannerLayoutPatches = [{
|
|
5017
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
5018
|
+
designPatch: { sectionHeight: "banner" }
|
|
5019
|
+
}];
|
|
5020
|
+
defineBlockAppearancePreset({
|
|
5021
|
+
id: "hero-immersive-image",
|
|
5022
|
+
target: "hero",
|
|
5023
|
+
label: "Immersive image hero",
|
|
5024
|
+
blockKinds: ["block.hero"],
|
|
5025
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5026
|
+
layoutPatches: [{
|
|
5027
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
5028
|
+
designPatch: {
|
|
5029
|
+
sectionHeight: "banner",
|
|
5030
|
+
heroTypographyScale: "display"
|
|
4916
5031
|
}
|
|
4917
|
-
}
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
4923
|
-
|
|
4924
|
-
|
|
4925
|
-
|
|
4926
|
-
|
|
4927
|
-
|
|
4928
|
-
|
|
4929
|
-
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
|
|
4938
|
-
|
|
4939
|
-
|
|
4940
|
-
|
|
4941
|
-
token: "primary",
|
|
4942
|
-
intensity: "balanced"
|
|
4943
|
-
} }
|
|
4944
|
-
}]
|
|
4945
|
-
}],
|
|
4946
|
-
layoutPatches: [{
|
|
4947
|
-
constraints: { layoutVariantKeys: ["micro"] },
|
|
4948
|
-
designPatch: {
|
|
4949
|
-
sectionHeight: "banner",
|
|
4950
|
-
heroTypographyScale: "editorial"
|
|
4951
|
-
}
|
|
4952
|
-
}],
|
|
4953
|
-
design: {
|
|
4954
|
-
sectionSurface: "hero-image",
|
|
4955
|
-
contentFrame: panelFrame("raised"),
|
|
4956
|
-
itemSurface: "none",
|
|
4957
|
-
sectionHeight: "immersive",
|
|
4958
|
-
heroComposition: "bottom-left",
|
|
4959
|
-
heroTypographyScale: "display",
|
|
4960
|
-
imageSurfaceTreatment: {
|
|
5032
|
+
}],
|
|
5033
|
+
design: {
|
|
5034
|
+
sectionSurface: "hero-image",
|
|
5035
|
+
contentFrame: plainFrame,
|
|
5036
|
+
itemSurface: "none",
|
|
5037
|
+
sectionHeight: "hero",
|
|
5038
|
+
heroComposition: "center",
|
|
5039
|
+
heroTypographyScale: "display",
|
|
5040
|
+
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
5041
|
+
}
|
|
5042
|
+
}), defineBlockAppearancePreset({
|
|
5043
|
+
id: "hero-bottom-left-panel",
|
|
5044
|
+
target: "hero",
|
|
5045
|
+
label: "Bottom-left panel hero",
|
|
5046
|
+
blockKinds: ["block.hero"],
|
|
5047
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5048
|
+
optionGroups: [{
|
|
5049
|
+
id: "image-surface-treatment",
|
|
5050
|
+
label: "Treatment",
|
|
5051
|
+
defaultOptionId: "neutral-scrim",
|
|
5052
|
+
options: [{
|
|
5053
|
+
id: "neutral-scrim",
|
|
5054
|
+
label: "Neutral scrim",
|
|
5055
|
+
designPatch: { imageSurfaceTreatment: {
|
|
4961
5056
|
kind: "neutral-scrim",
|
|
4962
5057
|
intensity: "balanced"
|
|
4963
|
-
}
|
|
4964
|
-
}
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
id: "hero-poster-image",
|
|
4969
|
-
target: "hero",
|
|
4970
|
-
label: "Poster image hero",
|
|
4971
|
-
blockKinds: ["block.hero"],
|
|
4972
|
-
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
4973
|
-
layoutPatches: [{
|
|
4974
|
-
constraints: { layoutVariantKeys: ["micro"] },
|
|
4975
|
-
designPatch: {
|
|
4976
|
-
sectionHeight: "banner",
|
|
4977
|
-
heroTypographyScale: "display"
|
|
4978
|
-
}
|
|
4979
|
-
}],
|
|
4980
|
-
design: {
|
|
4981
|
-
sectionSurface: "hero-image",
|
|
4982
|
-
contentFrame: plainFrame,
|
|
4983
|
-
itemSurface: "none",
|
|
4984
|
-
sectionHeight: "immersive",
|
|
4985
|
-
heroComposition: "center",
|
|
4986
|
-
heroTypographyScale: "poster",
|
|
4987
|
-
imageSurfaceTreatment: {
|
|
5058
|
+
} }
|
|
5059
|
+
}, {
|
|
5060
|
+
id: "brand-scrim-primary",
|
|
5061
|
+
label: "Brand scrim",
|
|
5062
|
+
designPatch: { imageSurfaceTreatment: {
|
|
4988
5063
|
kind: "brand-scrim",
|
|
4989
5064
|
token: "primary",
|
|
4990
|
-
intensity: "
|
|
4991
|
-
}
|
|
4992
|
-
}
|
|
4993
|
-
}
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
label: "Brand scrim image hero",
|
|
4999
|
-
blockKinds: ["block.hero"],
|
|
5000
|
-
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5001
|
-
optionGroups: [{
|
|
5002
|
-
id: "image-surface-treatment",
|
|
5003
|
-
label: "Treatment",
|
|
5004
|
-
selectedOptionId: "brand-scrim-primary",
|
|
5005
|
-
options: [{
|
|
5006
|
-
id: "brand-scrim-primary",
|
|
5007
|
-
label: "Brand scrim",
|
|
5008
|
-
designPatch: { imageSurfaceTreatment: {
|
|
5009
|
-
kind: "brand-scrim",
|
|
5010
|
-
token: "primary"
|
|
5011
|
-
} }
|
|
5012
|
-
}, {
|
|
5013
|
-
id: "neutral-scrim",
|
|
5014
|
-
label: "Neutral scrim",
|
|
5015
|
-
designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
|
|
5016
|
-
}]
|
|
5017
|
-
}],
|
|
5018
|
-
layoutPatches: [{
|
|
5019
|
-
constraints: { layoutVariantKeys: ["micro"] },
|
|
5020
|
-
designPatch: { sectionHeight: "banner" }
|
|
5021
|
-
}],
|
|
5022
|
-
design: {
|
|
5023
|
-
sectionSurface: "hero-image",
|
|
5024
|
-
contentFrame: plainFrame,
|
|
5025
|
-
itemSurface: "none",
|
|
5026
|
-
sectionHeight: "immersive",
|
|
5027
|
-
heroComposition: "center",
|
|
5028
|
-
heroTypographyScale: "display",
|
|
5029
|
-
imageSurfaceTreatment: {
|
|
5030
|
-
kind: "brand-scrim",
|
|
5031
|
-
token: "primary"
|
|
5032
|
-
}
|
|
5033
|
-
}
|
|
5034
|
-
}),
|
|
5035
|
-
defineBlockAppearancePreset({
|
|
5036
|
-
kind: "block-design",
|
|
5037
|
-
id: "hero-brand-scrim-fixed-frame",
|
|
5038
|
-
target: "hero",
|
|
5039
|
-
label: "Fixed-frame brand scrim hero",
|
|
5040
|
-
blockKinds: ["block.hero"],
|
|
5041
|
-
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5042
|
-
optionGroups: [{
|
|
5043
|
-
id: "image-surface-treatment",
|
|
5044
|
-
label: "Treatment",
|
|
5045
|
-
selectedOptionId: "brand-scrim-primary",
|
|
5046
|
-
options: [{
|
|
5047
|
-
id: "brand-scrim-primary",
|
|
5048
|
-
label: "Brand scrim",
|
|
5049
|
-
designPatch: { imageSurfaceTreatment: {
|
|
5050
|
-
kind: "brand-scrim",
|
|
5051
|
-
token: "primary"
|
|
5052
|
-
} }
|
|
5053
|
-
}, {
|
|
5054
|
-
id: "neutral-scrim",
|
|
5055
|
-
label: "Neutral scrim",
|
|
5056
|
-
designPatch: { imageSurfaceTreatment: { kind: "neutral-scrim" } }
|
|
5057
|
-
}]
|
|
5058
|
-
}],
|
|
5059
|
-
layoutPatches: [{
|
|
5060
|
-
constraints: { layoutVariantKeys: ["micro"] },
|
|
5061
|
-
designPatch: { sectionHeight: "banner" }
|
|
5062
|
-
}],
|
|
5063
|
-
design: {
|
|
5064
|
-
sectionSurface: "hero-image",
|
|
5065
|
-
contentFrame: plainFrame,
|
|
5066
|
-
itemSurface: "none",
|
|
5067
|
-
sectionHeight: "immersive",
|
|
5068
|
-
heroComposition: "center",
|
|
5069
|
-
heroTypographyScale: "display",
|
|
5070
|
-
imageSurfaceTreatment: {
|
|
5071
|
-
kind: "brand-scrim",
|
|
5072
|
-
token: "primary"
|
|
5073
|
-
},
|
|
5074
|
-
imageSurfaceMotion: "fixed-frame",
|
|
5075
|
-
eyebrowTreatment: "accent-pill-bounce"
|
|
5076
|
-
}
|
|
5077
|
-
}),
|
|
5078
|
-
defineBlockAppearancePreset({
|
|
5079
|
-
kind: "block-design",
|
|
5080
|
-
id: "hero-brand-depth-expressive",
|
|
5081
|
-
target: "hero",
|
|
5082
|
-
label: "Expressive brand-depth hero",
|
|
5083
|
-
blockKinds: ["block.hero"],
|
|
5084
|
-
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5085
|
-
design: {
|
|
5086
|
-
sectionSurface: "brand-depth-band",
|
|
5087
|
-
contentFrame: plainFrame,
|
|
5088
|
-
itemSurface: "none",
|
|
5089
|
-
heroComposition: "center",
|
|
5090
|
-
heroTypographyScale: "editorial",
|
|
5091
|
-
eyebrowTreatment: "accent-pill-bounce"
|
|
5092
|
-
}
|
|
5093
|
-
}),
|
|
5094
|
-
defineBlockAppearancePreset({
|
|
5095
|
-
kind: "block-design",
|
|
5096
|
-
id: "hero-contained-intro",
|
|
5097
|
-
target: "hero",
|
|
5098
|
-
label: "Contained intro hero",
|
|
5099
|
-
blockKinds: ["block.hero"],
|
|
5100
|
-
design: {
|
|
5101
|
-
sectionSurface: "muted-band",
|
|
5102
|
-
contentFrame: panelFrame("inset"),
|
|
5103
|
-
itemSurface: "none",
|
|
5104
|
-
heroComposition: "center",
|
|
5105
|
-
heroTypographyScale: "editorial"
|
|
5106
|
-
}
|
|
5107
|
-
}),
|
|
5108
|
-
defineBlockAppearancePreset({
|
|
5109
|
-
kind: "block-design",
|
|
5110
|
-
id: "hero-split-editorial",
|
|
5111
|
-
target: "hero",
|
|
5112
|
-
label: "Editorial split hero",
|
|
5113
|
-
blockKinds: ["block.hero"],
|
|
5114
|
-
constraints: { layoutFamilies: ["split"] },
|
|
5115
|
-
design: {
|
|
5116
|
-
sectionSurface: "base",
|
|
5117
|
-
contentFrame: plainFrame,
|
|
5118
|
-
itemSurface: "none",
|
|
5119
|
-
heroTypographyScale: "editorial"
|
|
5120
|
-
}
|
|
5121
|
-
}),
|
|
5122
|
-
defineBlockAppearancePreset({
|
|
5123
|
-
kind: "block-design",
|
|
5124
|
-
id: "hero-split-brand",
|
|
5125
|
-
target: "hero",
|
|
5126
|
-
label: "Brand split hero",
|
|
5127
|
-
blockKinds: ["block.hero"],
|
|
5128
|
-
constraints: { layoutFamilies: ["split"] },
|
|
5129
|
-
design: {
|
|
5130
|
-
sectionSurface: "brand-depth-band",
|
|
5131
|
-
contentFrame: plainFrame,
|
|
5132
|
-
itemSurface: "none",
|
|
5133
|
-
heroTypographyScale: "display",
|
|
5134
|
-
eyebrowTreatment: "accent-pill-bounce"
|
|
5135
|
-
}
|
|
5136
|
-
}),
|
|
5137
|
-
defineBlockAppearancePreset({
|
|
5138
|
-
kind: "block-design",
|
|
5139
|
-
id: "hero-split-soft-panel",
|
|
5140
|
-
target: "hero",
|
|
5141
|
-
label: "Soft panel split hero",
|
|
5142
|
-
blockKinds: ["block.hero"],
|
|
5143
|
-
constraints: { layoutFamilies: ["split"] },
|
|
5144
|
-
design: {
|
|
5145
|
-
sectionSurface: "muted-band",
|
|
5146
|
-
contentFrame: panelFrame("raised"),
|
|
5147
|
-
itemSurface: "none",
|
|
5065
|
+
intensity: "balanced"
|
|
5066
|
+
} }
|
|
5067
|
+
}]
|
|
5068
|
+
}],
|
|
5069
|
+
layoutPatches: [{
|
|
5070
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
5071
|
+
designPatch: {
|
|
5072
|
+
sectionHeight: "banner",
|
|
5148
5073
|
heroTypographyScale: "editorial"
|
|
5149
5074
|
}
|
|
5150
|
-
}
|
|
5151
|
-
|
|
5152
|
-
|
|
5153
|
-
|
|
5154
|
-
|
|
5155
|
-
|
|
5156
|
-
|
|
5157
|
-
|
|
5158
|
-
|
|
5159
|
-
|
|
5160
|
-
|
|
5161
|
-
|
|
5075
|
+
}],
|
|
5076
|
+
design: {
|
|
5077
|
+
sectionSurface: "hero-image",
|
|
5078
|
+
contentFrame: panelFrame("raised"),
|
|
5079
|
+
itemSurface: "none",
|
|
5080
|
+
sectionHeight: "immersive",
|
|
5081
|
+
heroComposition: "bottom-left",
|
|
5082
|
+
heroTypographyScale: "display",
|
|
5083
|
+
imageSurfaceTreatment: {
|
|
5084
|
+
kind: "neutral-scrim",
|
|
5085
|
+
intensity: "balanced"
|
|
5086
|
+
}
|
|
5087
|
+
}
|
|
5088
|
+
}), defineBlockAppearancePreset({
|
|
5089
|
+
id: "hero-poster-image",
|
|
5090
|
+
target: "hero",
|
|
5091
|
+
label: "Poster image hero",
|
|
5092
|
+
blockKinds: ["block.hero"],
|
|
5093
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5094
|
+
layoutPatches: [{
|
|
5095
|
+
constraints: { layoutVariantKeys: ["micro"] },
|
|
5096
|
+
designPatch: {
|
|
5097
|
+
sectionHeight: "banner",
|
|
5162
5098
|
heroTypographyScale: "display"
|
|
5163
5099
|
}
|
|
5164
|
-
}
|
|
5165
|
-
|
|
5166
|
-
|
|
5167
|
-
|
|
5168
|
-
|
|
5169
|
-
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5175
|
-
|
|
5176
|
-
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
|
-
|
|
5180
|
-
|
|
5181
|
-
|
|
5182
|
-
|
|
5183
|
-
|
|
5184
|
-
|
|
5185
|
-
|
|
5186
|
-
|
|
5187
|
-
|
|
5188
|
-
|
|
5189
|
-
|
|
5190
|
-
|
|
5191
|
-
|
|
5192
|
-
|
|
5193
|
-
|
|
5194
|
-
|
|
5195
|
-
|
|
5196
|
-
|
|
5197
|
-
|
|
5198
|
-
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5205
|
-
|
|
5206
|
-
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5216
|
-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
|
|
5226
|
-
|
|
5227
|
-
|
|
5228
|
-
|
|
5229
|
-
|
|
5230
|
-
|
|
5231
|
-
|
|
5232
|
-
|
|
5233
|
-
|
|
5234
|
-
|
|
5235
|
-
|
|
5236
|
-
|
|
5237
|
-
|
|
5238
|
-
|
|
5239
|
-
|
|
5240
|
-
|
|
5241
|
-
|
|
5242
|
-
|
|
5243
|
-
|
|
5244
|
-
|
|
5245
|
-
|
|
5246
|
-
|
|
5247
|
-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5259
|
-
|
|
5260
|
-
|
|
5261
|
-
|
|
5262
|
-
|
|
5263
|
-
|
|
5264
|
-
|
|
5265
|
-
|
|
5266
|
-
|
|
5267
|
-
|
|
5268
|
-
|
|
5269
|
-
|
|
5270
|
-
|
|
5271
|
-
|
|
5272
|
-
|
|
5273
|
-
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5293
|
-
|
|
5294
|
-
|
|
5295
|
-
|
|
5296
|
-
|
|
5297
|
-
|
|
5298
|
-
|
|
5299
|
-
|
|
5300
|
-
|
|
5301
|
-
|
|
5302
|
-
|
|
5303
|
-
|
|
5304
|
-
|
|
5305
|
-
|
|
5306
|
-
|
|
5307
|
-
|
|
5308
|
-
}
|
|
5309
|
-
}
|
|
5310
|
-
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5320
|
-
|
|
5321
|
-
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
|
|
5335
|
-
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
|
|
5339
|
-
|
|
5340
|
-
|
|
5341
|
-
|
|
5342
|
-
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
|
|
5346
|
-
|
|
5347
|
-
|
|
5348
|
-
|
|
5349
|
-
|
|
5350
|
-
|
|
5351
|
-
|
|
5352
|
-
|
|
5353
|
-
|
|
5354
|
-
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
|
|
5369
|
-
|
|
5370
|
-
|
|
5371
|
-
|
|
5372
|
-
|
|
5373
|
-
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
|
|
5401
|
-
|
|
5402
|
-
|
|
5403
|
-
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
|
|
5430
|
-
|
|
5431
|
-
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
|
|
5436
|
-
|
|
5437
|
-
|
|
5438
|
-
|
|
5439
|
-
|
|
5440
|
-
|
|
5441
|
-
|
|
5442
|
-
|
|
5443
|
-
|
|
5444
|
-
|
|
5445
|
-
|
|
5446
|
-
|
|
5447
|
-
|
|
5448
|
-
|
|
5449
|
-
|
|
5450
|
-
|
|
5451
|
-
|
|
5452
|
-
|
|
5453
|
-
|
|
5454
|
-
|
|
5455
|
-
|
|
5456
|
-
|
|
5457
|
-
}
|
|
5458
|
-
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5462
|
-
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
|
|
5466
|
-
|
|
5467
|
-
|
|
5468
|
-
|
|
5469
|
-
|
|
5470
|
-
|
|
5471
|
-
|
|
5472
|
-
|
|
5473
|
-
|
|
5474
|
-
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5480
|
-
|
|
5481
|
-
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5485
|
-
|
|
5486
|
-
|
|
5487
|
-
|
|
5488
|
-
|
|
5489
|
-
|
|
5490
|
-
|
|
5491
|
-
|
|
5492
|
-
|
|
5493
|
-
|
|
5494
|
-
|
|
5495
|
-
|
|
5496
|
-
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5512
|
-
|
|
5513
|
-
|
|
5514
|
-
|
|
5515
|
-
|
|
5516
|
-
|
|
5517
|
-
|
|
5518
|
-
|
|
5519
|
-
|
|
5520
|
-
|
|
5521
|
-
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
|
|
5532
|
-
|
|
5533
|
-
|
|
5534
|
-
|
|
5535
|
-
|
|
5536
|
-
|
|
5537
|
-
|
|
5538
|
-
|
|
5539
|
-
|
|
5540
|
-
|
|
5541
|
-
|
|
5542
|
-
|
|
5543
|
-
|
|
5544
|
-
|
|
5545
|
-
|
|
5546
|
-
|
|
5547
|
-
|
|
5548
|
-
|
|
5549
|
-
|
|
5550
|
-
|
|
5551
|
-
|
|
5552
|
-
|
|
5553
|
-
|
|
5554
|
-
|
|
5555
|
-
|
|
5556
|
-
|
|
5557
|
-
|
|
5558
|
-
|
|
5559
|
-
|
|
5560
|
-
|
|
5561
|
-
|
|
5562
|
-
|
|
5563
|
-
|
|
5564
|
-
|
|
5565
|
-
|
|
5566
|
-
|
|
5567
|
-
|
|
5568
|
-
|
|
5569
|
-
|
|
5570
|
-
|
|
5571
|
-
|
|
5572
|
-
|
|
5573
|
-
|
|
5574
|
-
|
|
5575
|
-
|
|
5576
|
-
|
|
5577
|
-
|
|
5578
|
-
|
|
5579
|
-
|
|
5580
|
-
|
|
5581
|
-
|
|
5582
|
-
|
|
5583
|
-
}
|
|
5584
|
-
|
|
5585
|
-
|
|
5586
|
-
|
|
5587
|
-
|
|
5588
|
-
|
|
5589
|
-
|
|
5590
|
-
|
|
5591
|
-
|
|
5592
|
-
|
|
5593
|
-
|
|
5594
|
-
|
|
5595
|
-
|
|
5596
|
-
|
|
5597
|
-
|
|
5598
|
-
|
|
5599
|
-
|
|
5600
|
-
|
|
5601
|
-
|
|
5602
|
-
|
|
5603
|
-
|
|
5604
|
-
|
|
5605
|
-
|
|
5606
|
-
|
|
5607
|
-
|
|
5608
|
-
|
|
5609
|
-
|
|
5610
|
-
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5615
|
-
|
|
5616
|
-
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5627
|
-
|
|
5628
|
-
|
|
5629
|
-
|
|
5630
|
-
|
|
5631
|
-
|
|
5632
|
-
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5636
|
-
|
|
5637
|
-
|
|
5638
|
-
|
|
5639
|
-
|
|
5640
|
-
|
|
5641
|
-
|
|
5642
|
-
|
|
5643
|
-
|
|
5644
|
-
|
|
5645
|
-
|
|
5646
|
-
|
|
5100
|
+
}],
|
|
5101
|
+
design: {
|
|
5102
|
+
sectionSurface: "hero-image",
|
|
5103
|
+
contentFrame: plainFrame,
|
|
5104
|
+
itemSurface: "none",
|
|
5105
|
+
sectionHeight: "immersive",
|
|
5106
|
+
heroComposition: "center",
|
|
5107
|
+
heroTypographyScale: "poster",
|
|
5108
|
+
imageSurfaceTreatment: {
|
|
5109
|
+
kind: "brand-scrim",
|
|
5110
|
+
token: "primary",
|
|
5111
|
+
intensity: "strong"
|
|
5112
|
+
}
|
|
5113
|
+
}
|
|
5114
|
+
}), defineBlockAppearancePreset({
|
|
5115
|
+
id: "hero-brand-scrim",
|
|
5116
|
+
target: "hero",
|
|
5117
|
+
label: "Brand scrim image hero",
|
|
5118
|
+
blockKinds: ["block.hero"],
|
|
5119
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5120
|
+
optionGroups: brandScrimOptionGroups,
|
|
5121
|
+
layoutPatches: microBannerLayoutPatches,
|
|
5122
|
+
design: {
|
|
5123
|
+
sectionSurface: "hero-image",
|
|
5124
|
+
contentFrame: plainFrame,
|
|
5125
|
+
itemSurface: "none",
|
|
5126
|
+
sectionHeight: "immersive",
|
|
5127
|
+
heroComposition: "center",
|
|
5128
|
+
heroTypographyScale: "display",
|
|
5129
|
+
imageSurfaceTreatment: {
|
|
5130
|
+
kind: "brand-scrim",
|
|
5131
|
+
token: "primary"
|
|
5132
|
+
}
|
|
5133
|
+
}
|
|
5134
|
+
}), defineBlockAppearancePreset({
|
|
5135
|
+
id: "hero-brand-scrim-fixed-frame",
|
|
5136
|
+
target: "hero",
|
|
5137
|
+
label: "Fixed-frame brand scrim hero",
|
|
5138
|
+
blockKinds: ["block.hero"],
|
|
5139
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5140
|
+
optionGroups: brandScrimOptionGroups,
|
|
5141
|
+
layoutPatches: microBannerLayoutPatches,
|
|
5142
|
+
design: {
|
|
5143
|
+
sectionSurface: "hero-image",
|
|
5144
|
+
contentFrame: plainFrame,
|
|
5145
|
+
itemSurface: "none",
|
|
5146
|
+
sectionHeight: "immersive",
|
|
5147
|
+
heroComposition: "center",
|
|
5148
|
+
heroTypographyScale: "display",
|
|
5149
|
+
imageSurfaceTreatment: {
|
|
5150
|
+
kind: "brand-scrim",
|
|
5151
|
+
token: "primary"
|
|
5152
|
+
},
|
|
5153
|
+
imageSurfaceMotion: "fixed-frame",
|
|
5154
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
5155
|
+
}
|
|
5156
|
+
}), defineBlockAppearancePreset({
|
|
5157
|
+
id: "hero-brand-depth-expressive",
|
|
5158
|
+
target: "hero",
|
|
5159
|
+
label: "Expressive brand-depth hero",
|
|
5160
|
+
blockKinds: ["block.hero"],
|
|
5161
|
+
constraints: { layoutFamilies: ["centered", "compact"] },
|
|
5162
|
+
design: {
|
|
5163
|
+
sectionSurface: "brand-depth-band",
|
|
5164
|
+
contentFrame: plainFrame,
|
|
5165
|
+
itemSurface: "none",
|
|
5166
|
+
heroComposition: "center",
|
|
5167
|
+
heroTypographyScale: "editorial",
|
|
5168
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
5169
|
+
}
|
|
5170
|
+
}), defineBlockAppearancePreset({
|
|
5171
|
+
id: "hero-contained-intro",
|
|
5172
|
+
target: "hero",
|
|
5173
|
+
label: "Contained intro hero",
|
|
5174
|
+
blockKinds: ["block.hero"],
|
|
5175
|
+
design: {
|
|
5176
|
+
sectionSurface: "muted-band",
|
|
5177
|
+
contentFrame: panelFrame("inset"),
|
|
5178
|
+
itemSurface: "none",
|
|
5179
|
+
heroComposition: "center",
|
|
5180
|
+
heroTypographyScale: "editorial"
|
|
5181
|
+
}
|
|
5182
|
+
}), defineBlockAppearancePreset({
|
|
5183
|
+
id: "hero-split-editorial",
|
|
5184
|
+
target: "hero",
|
|
5185
|
+
label: "Editorial split hero",
|
|
5186
|
+
blockKinds: ["block.hero"],
|
|
5187
|
+
constraints: { layoutFamilies: ["split"] },
|
|
5188
|
+
design: {
|
|
5189
|
+
sectionSurface: "base",
|
|
5190
|
+
contentFrame: plainFrame,
|
|
5191
|
+
itemSurface: "none",
|
|
5192
|
+
heroTypographyScale: "editorial"
|
|
5193
|
+
}
|
|
5194
|
+
}), defineBlockAppearancePreset({
|
|
5195
|
+
id: "hero-split-brand",
|
|
5196
|
+
target: "hero",
|
|
5197
|
+
label: "Brand split hero",
|
|
5198
|
+
blockKinds: ["block.hero"],
|
|
5199
|
+
constraints: { layoutFamilies: ["split"] },
|
|
5200
|
+
design: {
|
|
5201
|
+
sectionSurface: "brand-depth-band",
|
|
5202
|
+
contentFrame: plainFrame,
|
|
5203
|
+
itemSurface: "none",
|
|
5204
|
+
heroTypographyScale: "display",
|
|
5205
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
5206
|
+
}
|
|
5207
|
+
}), defineBlockAppearancePreset({
|
|
5208
|
+
id: "hero-split-soft-panel",
|
|
5209
|
+
target: "hero",
|
|
5210
|
+
label: "Soft panel split hero",
|
|
5211
|
+
blockKinds: ["block.hero"],
|
|
5212
|
+
constraints: { layoutFamilies: ["split"] },
|
|
5213
|
+
design: {
|
|
5214
|
+
sectionSurface: "muted-band",
|
|
5215
|
+
contentFrame: panelFrame("raised"),
|
|
5216
|
+
itemSurface: "none",
|
|
5217
|
+
heroTypographyScale: "editorial"
|
|
5218
|
+
}
|
|
5219
|
+
}), defineBlockAppearancePreset({
|
|
5220
|
+
id: "hero-split-accent",
|
|
5221
|
+
target: "hero",
|
|
5222
|
+
label: "Accent split hero",
|
|
5223
|
+
blockKinds: ["block.hero"],
|
|
5224
|
+
constraints: { layoutFamilies: ["split"] },
|
|
5225
|
+
design: {
|
|
5226
|
+
sectionSurface: "accent-band",
|
|
5227
|
+
contentFrame: panelFrame("raised"),
|
|
5228
|
+
itemSurface: "none",
|
|
5229
|
+
heroTypographyScale: "display"
|
|
5230
|
+
}
|
|
5231
|
+
}), defineBlockAppearancePreset({
|
|
5232
|
+
id: "intro-editorial-statement",
|
|
5233
|
+
target: "intro",
|
|
5234
|
+
label: "Editorial intro statement",
|
|
5235
|
+
blockKinds: ["block.intro"],
|
|
5236
|
+
constraints: { layoutVariantKeys: ["centered-copy", "statement-copy"] },
|
|
5237
|
+
design: {
|
|
5238
|
+
sectionSurface: "base",
|
|
5239
|
+
contentFrame: plainFrame,
|
|
5240
|
+
itemSurface: "none",
|
|
5241
|
+
composition: {
|
|
5242
|
+
kind: "intro",
|
|
5243
|
+
treatment: "editorial-statement"
|
|
5244
|
+
}
|
|
5245
|
+
}
|
|
5246
|
+
}), defineBlockAppearancePreset({
|
|
5247
|
+
id: "intro-portrait-bio",
|
|
5248
|
+
target: "intro",
|
|
5249
|
+
label: "Portrait and bio",
|
|
5250
|
+
blockKinds: ["block.intro"],
|
|
5251
|
+
constraints: { layoutVariantKeys: ["media-copy"] },
|
|
5252
|
+
design: {
|
|
5253
|
+
sectionSurface: "base",
|
|
5254
|
+
contentFrame: plainFrame,
|
|
5255
|
+
itemSurface: "none",
|
|
5256
|
+
composition: {
|
|
5257
|
+
kind: "intro",
|
|
5258
|
+
treatment: "portrait-bio"
|
|
5259
|
+
}
|
|
5260
|
+
}
|
|
5261
|
+
}), defineBlockAppearancePreset({
|
|
5262
|
+
id: "offerings-preview-default-cards",
|
|
5263
|
+
target: "offerings",
|
|
5264
|
+
label: "Default offering cards",
|
|
5265
|
+
blockKinds: ["block.offerings-preview"],
|
|
5266
|
+
design: {
|
|
5267
|
+
sectionSurface: "base",
|
|
5268
|
+
contentFrame: plainFrame,
|
|
5269
|
+
itemSurface: "default"
|
|
5270
|
+
}
|
|
5271
|
+
}), defineBlockAppearancePreset({
|
|
5272
|
+
id: "offerings-preview-secondary-cards",
|
|
5273
|
+
target: "offerings",
|
|
5274
|
+
label: "Secondary offering cards",
|
|
5275
|
+
blockKinds: ["block.offerings-preview"],
|
|
5276
|
+
design: {
|
|
5277
|
+
sectionSurface: "muted-band",
|
|
5278
|
+
contentFrame: plainFrame,
|
|
5279
|
+
itemSurface: "inset"
|
|
5280
|
+
}
|
|
5281
|
+
}), defineBlockAppearancePreset({
|
|
5282
|
+
id: "offerings-preview-non-carded",
|
|
5283
|
+
target: "offerings",
|
|
5284
|
+
label: "Non-carded offerings",
|
|
5285
|
+
blockKinds: ["block.offerings-preview"],
|
|
5286
|
+
design: {
|
|
5287
|
+
sectionSurface: "muted-band",
|
|
5288
|
+
contentFrame: plainFrame,
|
|
5289
|
+
itemSurface: "editorial"
|
|
5290
|
+
}
|
|
5291
|
+
}), defineBlockAppearancePreset({
|
|
5292
|
+
id: "offerings-preview-paired-feature-cards",
|
|
5293
|
+
target: "offerings",
|
|
5294
|
+
label: "Paired feature cards",
|
|
5295
|
+
blockKinds: ["block.offerings-preview"],
|
|
5296
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
5297
|
+
design: {
|
|
5298
|
+
sectionSurface: "base",
|
|
5299
|
+
contentFrame: plainFrame,
|
|
5300
|
+
itemSurface: "none"
|
|
5301
|
+
}
|
|
5302
|
+
}), defineBlockAppearancePreset({
|
|
5303
|
+
id: "offerings-preview-open-editorial-columns",
|
|
5304
|
+
target: "offerings",
|
|
5305
|
+
label: "Open editorial columns",
|
|
5306
|
+
blockKinds: ["block.offerings-preview"],
|
|
5307
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
5308
|
+
design: {
|
|
5309
|
+
sectionSurface: "base",
|
|
5310
|
+
contentFrame: plainFrame,
|
|
5311
|
+
itemSurface: "none"
|
|
5312
|
+
}
|
|
5313
|
+
}), defineBlockAppearancePreset({
|
|
5314
|
+
id: "offerings-preview-joined-programme-panel",
|
|
5315
|
+
target: "offerings",
|
|
5316
|
+
label: "Joined programme panel",
|
|
5317
|
+
blockKinds: ["block.offerings-preview"],
|
|
5318
|
+
constraints: { layoutVariantKeys: ["cards"] },
|
|
5319
|
+
design: {
|
|
5320
|
+
sectionSurface: "base",
|
|
5321
|
+
contentFrame: plainFrame,
|
|
5322
|
+
itemSurface: "none"
|
|
5323
|
+
}
|
|
5324
|
+
}), defineBlockAppearancePreset({
|
|
5325
|
+
id: "feature-cards-raised-rule",
|
|
5326
|
+
target: "feature-cards",
|
|
5327
|
+
label: "Raised cards with rule",
|
|
5328
|
+
blockKinds: ["block.feature-cards"],
|
|
5329
|
+
design: {
|
|
5330
|
+
sectionSurface: "base",
|
|
5331
|
+
contentFrame: plainFrame,
|
|
5332
|
+
itemSurface: "raised"
|
|
5333
|
+
}
|
|
5334
|
+
}), defineBlockAppearancePreset({
|
|
5335
|
+
id: "feature-cards-bold-colors",
|
|
5336
|
+
target: "feature-cards",
|
|
5337
|
+
label: "Bold colour-blocked cards",
|
|
5338
|
+
blockKinds: ["block.feature-cards"],
|
|
5339
|
+
design: {
|
|
5340
|
+
sectionSurface: "base",
|
|
5341
|
+
contentFrame: plainFrame,
|
|
5342
|
+
itemSurface: "color-blocked"
|
|
5343
|
+
}
|
|
5344
|
+
}), defineBlockAppearancePreset({
|
|
5345
|
+
id: "feature-cards-editorial-columns",
|
|
5346
|
+
target: "feature-cards",
|
|
5347
|
+
label: "Editorial open columns",
|
|
5348
|
+
blockKinds: ["block.feature-cards"],
|
|
5349
|
+
design: {
|
|
5350
|
+
sectionSurface: "base",
|
|
5351
|
+
contentFrame: plainFrame,
|
|
5352
|
+
itemSurface: "editorial"
|
|
5353
|
+
}
|
|
5354
|
+
}), defineBlockAppearancePreset({
|
|
5355
|
+
id: "feature-cards-asymmetric-emphasis",
|
|
5356
|
+
target: "feature-cards",
|
|
5357
|
+
label: "Asymmetric emphasis pair",
|
|
5358
|
+
blockKinds: ["block.feature-cards"],
|
|
5359
|
+
constraints: { layoutFamilies: ["grid"] },
|
|
5360
|
+
design: {
|
|
5361
|
+
sectionSurface: "base",
|
|
5362
|
+
contentFrame: plainFrame,
|
|
5363
|
+
itemSurface: "none",
|
|
5364
|
+
composition: {
|
|
5365
|
+
kind: "feature-cards",
|
|
5366
|
+
treatment: "asymmetric-emphasis"
|
|
5367
|
+
}
|
|
5368
|
+
}
|
|
5369
|
+
}), defineBlockAppearancePreset({
|
|
5370
|
+
id: "feature-cards-framed-programme",
|
|
5371
|
+
target: "feature-cards",
|
|
5372
|
+
label: "Framed programme cards",
|
|
5373
|
+
blockKinds: ["block.feature-cards"],
|
|
5374
|
+
constraints: { layoutFamilies: ["grid"] },
|
|
5375
|
+
design: {
|
|
5376
|
+
sectionSurface: "brand-depth-band",
|
|
5377
|
+
contentFrame: plainFrame,
|
|
5378
|
+
itemSurface: "inset",
|
|
5379
|
+
composition: {
|
|
5380
|
+
kind: "feature-cards",
|
|
5381
|
+
treatment: "framed-programme"
|
|
5382
|
+
}
|
|
5383
|
+
}
|
|
5384
|
+
}), defineBlockAppearancePreset({
|
|
5385
|
+
id: "feature-cards-soft-panels",
|
|
5386
|
+
target: "feature-cards",
|
|
5387
|
+
label: "Soft tinted panels",
|
|
5388
|
+
blockKinds: ["block.feature-cards"],
|
|
5389
|
+
design: {
|
|
5390
|
+
sectionSurface: "base",
|
|
5391
|
+
contentFrame: plainFrame,
|
|
5392
|
+
itemSurface: "inset"
|
|
5393
|
+
}
|
|
5394
|
+
}), defineBlockAppearancePreset({
|
|
5395
|
+
id: "feature-cards-editorial-diptych",
|
|
5396
|
+
target: "feature-cards",
|
|
5397
|
+
label: "Editorial diptych",
|
|
5398
|
+
blockKinds: ["block.feature-cards"],
|
|
5399
|
+
constraints: { layoutVariantKeys: ["editorial-diptych"] },
|
|
5400
|
+
design: {
|
|
5401
|
+
sectionSurface: "base",
|
|
5402
|
+
contentFrame: plainFrame,
|
|
5403
|
+
itemSurface: "flat"
|
|
5404
|
+
}
|
|
5405
|
+
}), defineBlockAppearancePreset({
|
|
5406
|
+
id: "feature-cards-editorial-pathways",
|
|
5407
|
+
target: "feature-cards",
|
|
5408
|
+
label: "Editorial pathways",
|
|
5409
|
+
blockKinds: ["block.feature-cards"],
|
|
5410
|
+
constraints: { layoutVariantKeys: ["editorial-pathways"] },
|
|
5411
|
+
design: {
|
|
5412
|
+
sectionSurface: "base",
|
|
5413
|
+
contentFrame: plainFrame,
|
|
5414
|
+
itemSurface: "flat"
|
|
5415
|
+
}
|
|
5416
|
+
}), defineBlockAppearancePreset({
|
|
5417
|
+
id: "feature-cards-photo-tiles",
|
|
5418
|
+
target: "feature-cards",
|
|
5419
|
+
label: "Photo tiles",
|
|
5420
|
+
blockKinds: ["block.feature-cards"],
|
|
5421
|
+
design: {
|
|
5422
|
+
sectionSurface: "base",
|
|
5423
|
+
contentFrame: plainFrame,
|
|
5424
|
+
itemSurface: "raised"
|
|
5425
|
+
}
|
|
5426
|
+
}), defineBlockAppearancePreset({
|
|
5427
|
+
id: "events-lined-panel",
|
|
5428
|
+
target: "events",
|
|
5429
|
+
label: "Raised event panel",
|
|
5430
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
5431
|
+
design: {
|
|
5432
|
+
sectionSurface: "base",
|
|
5433
|
+
contentFrame: panelFrame("raised"),
|
|
5434
|
+
itemSurface: "none"
|
|
5435
|
+
}
|
|
5436
|
+
}), defineBlockAppearancePreset({
|
|
5437
|
+
id: "events-ruled-register",
|
|
5438
|
+
target: "events",
|
|
5439
|
+
label: "Ruled event register",
|
|
5440
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
5441
|
+
design: {
|
|
5442
|
+
sectionSurface: "brand-depth-band",
|
|
5443
|
+
contentFrame: plainFrame,
|
|
5444
|
+
itemSurface: "none",
|
|
5445
|
+
eventListTreatment: "ruled-register"
|
|
5446
|
+
}
|
|
5447
|
+
}), defineBlockAppearancePreset({
|
|
5448
|
+
id: "events-editorial-register",
|
|
5449
|
+
target: "events",
|
|
5450
|
+
label: "Editorial event register",
|
|
5451
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
5452
|
+
design: {
|
|
5453
|
+
sectionSurface: "base",
|
|
5454
|
+
contentFrame: plainFrame,
|
|
5455
|
+
itemSurface: "none",
|
|
5456
|
+
eventListTreatment: "editorial-register"
|
|
5457
|
+
}
|
|
5458
|
+
}), defineBlockAppearancePreset({
|
|
5459
|
+
id: "events-dense-index",
|
|
5460
|
+
target: "events",
|
|
5461
|
+
label: "Dense event index",
|
|
5462
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
5463
|
+
design: {
|
|
5464
|
+
sectionSurface: "accent-band",
|
|
5465
|
+
contentFrame: plainFrame,
|
|
5466
|
+
itemSurface: "none",
|
|
5467
|
+
eventListTreatment: "dense-index"
|
|
5468
|
+
}
|
|
5469
|
+
}), defineBlockAppearancePreset({
|
|
5470
|
+
id: "schedule-details-brand-depth",
|
|
5471
|
+
target: "events",
|
|
5472
|
+
label: "Brand-depth schedule details",
|
|
5473
|
+
blockKinds: ["block.event-details", "block.course-details"],
|
|
5474
|
+
design: {
|
|
5475
|
+
sectionSurface: "brand-depth-band",
|
|
5476
|
+
contentFrame: plainFrame,
|
|
5477
|
+
itemSurface: "none",
|
|
5478
|
+
tileTreatment: "brand-depth"
|
|
5479
|
+
}
|
|
5480
|
+
}), defineBlockAppearancePreset({
|
|
5481
|
+
id: "media-text-flush-feature",
|
|
5482
|
+
target: "media-text",
|
|
5483
|
+
label: "Flush media feature",
|
|
5484
|
+
blockKinds: ["block.media-text"],
|
|
5485
|
+
design: {
|
|
5486
|
+
sectionSurface: "muted-band",
|
|
5487
|
+
contentFrame: flushPanelFrame({ bleed: "start" }),
|
|
5488
|
+
itemSurface: "none"
|
|
5489
|
+
}
|
|
5490
|
+
}), defineBlockAppearancePreset({
|
|
5491
|
+
id: "testimonials-simple-cards",
|
|
5492
|
+
target: "testimonials",
|
|
5493
|
+
label: "Simple testimonial cards",
|
|
5494
|
+
blockKinds: ["block.testimonials"],
|
|
5495
|
+
design: {
|
|
5496
|
+
sectionSurface: "base",
|
|
5497
|
+
contentFrame: plainFrame,
|
|
5498
|
+
itemSurface: "default"
|
|
5499
|
+
}
|
|
5500
|
+
}), defineBlockAppearancePreset({
|
|
5501
|
+
id: "testimonials-raised-panel",
|
|
5502
|
+
target: "testimonials",
|
|
5503
|
+
label: "Raised testimonial panel",
|
|
5504
|
+
blockKinds: ["block.testimonials"],
|
|
5505
|
+
design: {
|
|
5506
|
+
sectionSurface: "muted-band",
|
|
5507
|
+
contentFrame: panelFrame("raised"),
|
|
5508
|
+
itemSurface: "raised"
|
|
5509
|
+
}
|
|
5510
|
+
}), defineBlockAppearancePreset({
|
|
5511
|
+
id: "testimonials-accent-panel",
|
|
5512
|
+
target: "testimonials",
|
|
5513
|
+
label: "Accent testimonial panel",
|
|
5514
|
+
blockKinds: ["block.testimonials"],
|
|
5515
|
+
design: {
|
|
5516
|
+
sectionSurface: "accent-band",
|
|
5517
|
+
contentFrame: panelFrame("raised"),
|
|
5518
|
+
itemSurface: "raised"
|
|
5519
|
+
}
|
|
5520
|
+
}), defineBlockAppearancePreset({
|
|
5521
|
+
id: "testimonials-default-cards",
|
|
5522
|
+
target: "testimonials",
|
|
5523
|
+
label: "Default cards",
|
|
5524
|
+
blockKinds: ["block.testimonials"],
|
|
5525
|
+
design: {
|
|
5526
|
+
sectionSurface: "base",
|
|
5527
|
+
contentFrame: plainFrame,
|
|
5528
|
+
itemSurface: "none",
|
|
5529
|
+
testimonialCardTreatment: "default"
|
|
5530
|
+
}
|
|
5531
|
+
}), defineBlockAppearancePreset({
|
|
5532
|
+
id: "testimonials-statement-cards",
|
|
5533
|
+
target: "testimonials",
|
|
5534
|
+
label: "Statement cards",
|
|
5535
|
+
blockKinds: ["block.testimonials"],
|
|
5536
|
+
design: {
|
|
5537
|
+
sectionSurface: "accent-band",
|
|
5538
|
+
contentFrame: plainFrame,
|
|
5539
|
+
itemSurface: "raised",
|
|
5540
|
+
testimonialCardTreatment: "statement"
|
|
5541
|
+
}
|
|
5542
|
+
}), defineBlockAppearancePreset({
|
|
5543
|
+
id: "testimonials-brand-statement-cards",
|
|
5544
|
+
target: "testimonials",
|
|
5545
|
+
label: "Brand statement cards",
|
|
5546
|
+
blockKinds: ["block.testimonials"],
|
|
5547
|
+
design: {
|
|
5548
|
+
sectionSurface: "brand-depth-band",
|
|
5549
|
+
contentFrame: plainFrame,
|
|
5550
|
+
itemSurface: "raised",
|
|
5551
|
+
testimonialCardTreatment: "statement"
|
|
5552
|
+
}
|
|
5553
|
+
}), defineBlockAppearancePreset({
|
|
5554
|
+
id: "testimonials-non-carded",
|
|
5555
|
+
target: "testimonials",
|
|
5556
|
+
label: "Non-carded",
|
|
5557
|
+
blockKinds: ["block.testimonials"],
|
|
5558
|
+
design: {
|
|
5559
|
+
sectionSurface: "muted-band",
|
|
5560
|
+
contentFrame: plainFrame,
|
|
5561
|
+
itemSurface: "none",
|
|
5562
|
+
testimonialCardTreatment: "non-carded"
|
|
5563
|
+
}
|
|
5564
|
+
}), defineBlockAppearancePreset({
|
|
5565
|
+
id: "testimonials-evergreen-lead",
|
|
5566
|
+
target: "testimonials",
|
|
5567
|
+
label: "Evergreen lead",
|
|
5568
|
+
blockKinds: ["block.testimonials"],
|
|
5569
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
5570
|
+
design: {
|
|
5571
|
+
sectionSurface: "base",
|
|
5572
|
+
contentFrame: plainFrame,
|
|
5573
|
+
itemSurface: "none"
|
|
5574
|
+
}
|
|
5575
|
+
}), defineBlockAppearancePreset({
|
|
5576
|
+
id: "testimonials-room-and-response",
|
|
5577
|
+
target: "testimonials",
|
|
5578
|
+
label: "Room and response",
|
|
5579
|
+
blockKinds: ["block.testimonials"],
|
|
5580
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
5581
|
+
design: {
|
|
5582
|
+
sectionSurface: "base",
|
|
5583
|
+
contentFrame: plainFrame,
|
|
5584
|
+
itemSurface: "none"
|
|
5585
|
+
}
|
|
5586
|
+
}), defineBlockAppearancePreset({
|
|
5587
|
+
id: "testimonials-open-floor",
|
|
5588
|
+
target: "testimonials",
|
|
5589
|
+
label: "Open floor",
|
|
5590
|
+
blockKinds: ["block.testimonials"],
|
|
5591
|
+
constraints: { layoutVariantKeys: ["featured-editorial"] },
|
|
5592
|
+
design: {
|
|
5593
|
+
sectionSurface: "base",
|
|
5594
|
+
contentFrame: plainFrame,
|
|
5595
|
+
itemSurface: "none"
|
|
5596
|
+
}
|
|
5597
|
+
}), defineBlockAppearancePreset({
|
|
5598
|
+
id: "faq-base-accordion",
|
|
5599
|
+
target: "faq",
|
|
5600
|
+
label: "Base accordion FAQ",
|
|
5601
|
+
blockKinds: ["block.faq"],
|
|
5602
|
+
design: {
|
|
5603
|
+
sectionSurface: "base",
|
|
5604
|
+
contentFrame: plainFrame,
|
|
5605
|
+
itemSurface: "default"
|
|
5606
|
+
}
|
|
5607
|
+
}), defineBlockAppearancePreset({
|
|
5608
|
+
id: "faq-contained-help",
|
|
5609
|
+
target: "faq",
|
|
5610
|
+
label: "Contained help panel",
|
|
5611
|
+
blockKinds: ["block.faq"],
|
|
5612
|
+
design: {
|
|
5613
|
+
sectionSurface: "muted-band",
|
|
5614
|
+
contentFrame: panelFrame("inset"),
|
|
5615
|
+
itemSurface: "default"
|
|
5616
|
+
}
|
|
5617
|
+
}), defineBlockAppearancePreset({
|
|
5618
|
+
id: "contact-form-panel",
|
|
5619
|
+
target: "contact-form",
|
|
5620
|
+
label: "Raised form panel",
|
|
5621
|
+
blockKinds: ["block.form"],
|
|
5622
|
+
design: {
|
|
5623
|
+
sectionSurface: "muted-band",
|
|
5624
|
+
contentFrame: panelFrame("raised"),
|
|
5625
|
+
itemSurface: "none"
|
|
5626
|
+
}
|
|
5627
|
+
}), defineBlockAppearancePreset({
|
|
5628
|
+
id: "cta-accent-band",
|
|
5629
|
+
target: "cta",
|
|
5630
|
+
label: "Accent CTA band",
|
|
5631
|
+
blockKinds: ["block.cta-full"],
|
|
5632
|
+
design: {
|
|
5633
|
+
sectionSurface: "accent-band",
|
|
5634
|
+
contentFrame: plainFrame,
|
|
5635
|
+
itemSurface: "none",
|
|
5636
|
+
eyebrowTreatment: "accent"
|
|
5637
|
+
}
|
|
5638
|
+
});
|
|
5647
5639
|
//#endregion
|
|
5648
5640
|
//#region ../theme-core/src/site-styles/headerCtaVariants.ts
|
|
5649
5641
|
function hasButtonVariant(theme, variantId) {
|
|
@@ -7157,7 +7149,7 @@ function canonicalPaletteHashInput(colors, mode) {
|
|
|
7157
7149
|
return `${mode}|${paletteColorFingerprint(colors)}`;
|
|
7158
7150
|
}
|
|
7159
7151
|
/**
|
|
7160
|
-
*
|
|
7152
|
+
* Stable curated-catalogue identity. Do not reorder roles: the order comes
|
|
7161
7153
|
* from PALETTE_TOKEN_NAMES through canonicalPaletteHashInput.
|
|
7162
7154
|
*/
|
|
7163
7155
|
function paletteValueKey(colors, mode) {
|
|
@@ -8727,6 +8719,32 @@ function parseBackgroundAppearanceColorToken(value) {
|
|
|
8727
8719
|
function uniqueStrings(values) {
|
|
8728
8720
|
return Array.from(new Set(values));
|
|
8729
8721
|
}
|
|
8722
|
+
const headerInteractionPaletteSchema = z$1.enum([
|
|
8723
|
+
"primary",
|
|
8724
|
+
"secondary",
|
|
8725
|
+
"accent"
|
|
8726
|
+
]);
|
|
8727
|
+
//#endregion
|
|
8728
|
+
//#region ../theme-core/src/site-styles/headerInteractionPalette.ts
|
|
8729
|
+
const clearSplitInteractionPalette = defineLookOptionGroup({
|
|
8730
|
+
id: "interaction-palette",
|
|
8731
|
+
label: "Hover colour",
|
|
8732
|
+
defaultOptionId: "accent",
|
|
8733
|
+
options: [
|
|
8734
|
+
{
|
|
8735
|
+
id: "accent",
|
|
8736
|
+
label: "Accent"
|
|
8737
|
+
},
|
|
8738
|
+
{
|
|
8739
|
+
id: "primary",
|
|
8740
|
+
label: "Primary"
|
|
8741
|
+
},
|
|
8742
|
+
{
|
|
8743
|
+
id: "secondary",
|
|
8744
|
+
label: "Secondary"
|
|
8745
|
+
}
|
|
8746
|
+
]
|
|
8747
|
+
});
|
|
8730
8748
|
//#endregion
|
|
8731
8749
|
//#region ../theme-core/src/site-styles/logoBranding.ts
|
|
8732
8750
|
const logoTextConfidenceValues = [
|
|
@@ -8949,7 +8967,7 @@ const overlayLogoAccommodations = [
|
|
|
8949
8967
|
* optional nested styling fields that would otherwise leak from another Look.
|
|
8950
8968
|
*/
|
|
8951
8969
|
function baseHeader(theme) {
|
|
8952
|
-
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
8970
|
+
const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, interactionPalette: _interactionPalette, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
|
|
8953
8971
|
return {
|
|
8954
8972
|
...header,
|
|
8955
8973
|
navContainer: {
|
|
@@ -8964,7 +8982,6 @@ const headerLayoutCatalog = defineExactCatalog()([
|
|
|
8964
8982
|
id: asHeaderLayoutId("classic"),
|
|
8965
8983
|
label: "Classic",
|
|
8966
8984
|
description: "Logo and navigation in one practical horizontal row.",
|
|
8967
|
-
structure: "inline-classic",
|
|
8968
8985
|
variant: "classic",
|
|
8969
8986
|
defaultPositioning: "sticky",
|
|
8970
8987
|
shrinkOnScroll: false
|
|
@@ -8973,7 +8990,6 @@ const headerLayoutCatalog = defineExactCatalog()([
|
|
|
8973
8990
|
id: asHeaderLayoutId("centered"),
|
|
8974
8991
|
label: "Centered",
|
|
8975
8992
|
description: "Logo centered above a balanced navigation row.",
|
|
8976
|
-
structure: "centered-stack",
|
|
8977
8993
|
variant: "centered",
|
|
8978
8994
|
defaultPositioning: "static",
|
|
8979
8995
|
shrinkOnScroll: false,
|
|
@@ -8989,7 +9005,6 @@ const headerLayoutCatalog = defineExactCatalog()([
|
|
|
8989
9005
|
id: asHeaderLayoutId("floating"),
|
|
8990
9006
|
label: "Floating",
|
|
8991
9007
|
description: "Detached header chrome that sits over the opening section.",
|
|
8992
|
-
structure: "floating-shell",
|
|
8993
9008
|
variant: "floating",
|
|
8994
9009
|
defaultPositioning: "sticky",
|
|
8995
9010
|
shrinkOnScroll: true,
|
|
@@ -9151,10 +9166,13 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
9151
9166
|
label: "Clear Split",
|
|
9152
9167
|
description: "Floating logo with transparent navigation and no shared shell.",
|
|
9153
9168
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
9154
|
-
navInteraction: "
|
|
9169
|
+
navInteraction: "pill-background",
|
|
9155
9170
|
surface: "floating",
|
|
9156
|
-
defaultDepth: "
|
|
9171
|
+
defaultDepth: "line",
|
|
9157
9172
|
navTypography: "plain",
|
|
9173
|
+
openingForegroundTarget: "all",
|
|
9174
|
+
scrollTreatment: "contrast-glass",
|
|
9175
|
+
interactionPalette: clearSplitInteractionPalette,
|
|
9158
9176
|
moods: ["editorial", "calm"]
|
|
9159
9177
|
},
|
|
9160
9178
|
{
|
|
@@ -9177,6 +9195,7 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
9177
9195
|
surface: "floating",
|
|
9178
9196
|
defaultDepth: "shadow",
|
|
9179
9197
|
navTypography: "quiet-caps",
|
|
9198
|
+
openingForegroundTarget: "brand-only",
|
|
9180
9199
|
moods: ["expressive"]
|
|
9181
9200
|
},
|
|
9182
9201
|
{
|
|
@@ -9188,6 +9207,7 @@ const headerStyleCatalog = defineExactCatalog()([
|
|
|
9188
9207
|
surface: "floating",
|
|
9189
9208
|
defaultDepth: "shadow",
|
|
9190
9209
|
navTypography: "heading",
|
|
9210
|
+
openingForegroundTarget: "brand-only",
|
|
9191
9211
|
moods: ["calm", "editorial"]
|
|
9192
9212
|
}
|
|
9193
9213
|
]);
|
|
@@ -9689,13 +9709,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9689
9709
|
{
|
|
9690
9710
|
id: asHeaderLookId("clean-base"),
|
|
9691
9711
|
label: "Clean base",
|
|
9692
|
-
visualTreatment: "solid-neutral",
|
|
9693
|
-
layoutBehavior: "sticky",
|
|
9694
|
-
configuration: {
|
|
9695
|
-
structure: "inline-classic",
|
|
9696
|
-
treatment: "solid-neutral",
|
|
9697
|
-
behavior: "sticky"
|
|
9698
|
-
},
|
|
9699
9712
|
openingRequirement: "none",
|
|
9700
9713
|
logoAccommodations: inlineClassicLogoAccommodations,
|
|
9701
9714
|
compile: cleanBaseHeader
|
|
@@ -9703,13 +9716,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9703
9716
|
{
|
|
9704
9717
|
id: asHeaderLookId("classic-centered-nav"),
|
|
9705
9718
|
label: "Centered nav",
|
|
9706
|
-
visualTreatment: "solid-neutral",
|
|
9707
|
-
layoutBehavior: "sticky",
|
|
9708
|
-
configuration: {
|
|
9709
|
-
structure: "inline-classic",
|
|
9710
|
-
treatment: "solid-neutral",
|
|
9711
|
-
behavior: "sticky"
|
|
9712
|
-
},
|
|
9713
9719
|
openingRequirement: "none",
|
|
9714
9720
|
maxRecommendedNavItems: 6,
|
|
9715
9721
|
logoAccommodations: inlineClassicLogoAccommodations,
|
|
@@ -9718,13 +9724,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9718
9724
|
{
|
|
9719
9725
|
id: asHeaderLookId("brand-solid"),
|
|
9720
9726
|
label: "Brand solid",
|
|
9721
|
-
visualTreatment: "solid-brand",
|
|
9722
|
-
layoutBehavior: "sticky-shrink",
|
|
9723
|
-
configuration: {
|
|
9724
|
-
structure: "inline-classic",
|
|
9725
|
-
treatment: "solid-brand",
|
|
9726
|
-
behavior: "sticky-shrink"
|
|
9727
|
-
},
|
|
9728
9727
|
openingRequirement: "none",
|
|
9729
9728
|
logoAccommodations: inlineClassicLogoAccommodations,
|
|
9730
9729
|
compile: solidBrandHeader
|
|
@@ -9732,13 +9731,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9732
9731
|
{
|
|
9733
9732
|
id: asHeaderLookId("serif-line"),
|
|
9734
9733
|
label: "Serif line",
|
|
9735
|
-
visualTreatment: "light-serif",
|
|
9736
|
-
layoutBehavior: "sticky",
|
|
9737
|
-
configuration: {
|
|
9738
|
-
structure: "centered-stack",
|
|
9739
|
-
treatment: "light-serif",
|
|
9740
|
-
behavior: "sticky"
|
|
9741
|
-
},
|
|
9742
9734
|
openingRequirement: "none",
|
|
9743
9735
|
maxRecommendedNavItems: 6,
|
|
9744
9736
|
logoAccommodations: centeredLogoAccommodations,
|
|
@@ -9747,13 +9739,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9747
9739
|
{
|
|
9748
9740
|
id: asHeaderLookId("centered-calm"),
|
|
9749
9741
|
label: "Centered calm",
|
|
9750
|
-
visualTreatment: "light-serif",
|
|
9751
|
-
layoutBehavior: "normal-flow",
|
|
9752
|
-
configuration: {
|
|
9753
|
-
structure: "centered-stack",
|
|
9754
|
-
treatment: "light-serif",
|
|
9755
|
-
behavior: "normal-flow"
|
|
9756
|
-
},
|
|
9757
9742
|
openingRequirement: "none",
|
|
9758
9743
|
maxRecommendedNavItems: 5,
|
|
9759
9744
|
logoAccommodations: centeredLogoAccommodations,
|
|
@@ -9762,13 +9747,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9762
9747
|
{
|
|
9763
9748
|
id: asHeaderLookId("practical-utility"),
|
|
9764
9749
|
label: "Practical utility",
|
|
9765
|
-
visualTreatment: "solid-neutral",
|
|
9766
|
-
layoutBehavior: "sticky-shrink",
|
|
9767
|
-
configuration: {
|
|
9768
|
-
structure: "inline-classic",
|
|
9769
|
-
treatment: "solid-neutral",
|
|
9770
|
-
behavior: "sticky-shrink"
|
|
9771
|
-
},
|
|
9772
9750
|
openingRequirement: "none",
|
|
9773
9751
|
requiresProminentCta: true,
|
|
9774
9752
|
logoAccommodations: inlineClassicLogoAccommodations,
|
|
@@ -9777,13 +9755,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9777
9755
|
{
|
|
9778
9756
|
id: asHeaderLookId("minimal-transparent"),
|
|
9779
9757
|
label: "Minimal transparent",
|
|
9780
|
-
visualTreatment: "minimal-transparent",
|
|
9781
|
-
layoutBehavior: "normal-flow",
|
|
9782
|
-
configuration: {
|
|
9783
|
-
structure: "inline-classic",
|
|
9784
|
-
treatment: "minimal-transparent",
|
|
9785
|
-
behavior: "normal-flow"
|
|
9786
|
-
},
|
|
9787
9758
|
openingRequirement: "reserved-space-ok",
|
|
9788
9759
|
logoAccommodations: inlineClassicLogoAccommodations,
|
|
9789
9760
|
compile: minimalTransparentHeader
|
|
@@ -9791,13 +9762,6 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9791
9762
|
{
|
|
9792
9763
|
id: asHeaderLookId("transparent-overlay"),
|
|
9793
9764
|
label: "Transparent overlay",
|
|
9794
|
-
visualTreatment: "transparent-overlay",
|
|
9795
|
-
layoutBehavior: "fixed-overlay",
|
|
9796
|
-
configuration: {
|
|
9797
|
-
structure: "inline-classic",
|
|
9798
|
-
treatment: "transparent-overlay",
|
|
9799
|
-
behavior: "fixed-overlay"
|
|
9800
|
-
},
|
|
9801
9765
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
9802
9766
|
maxRecommendedNavItems: 5,
|
|
9803
9767
|
logoAccommodations: overlayLogoAccommodations,
|
|
@@ -9806,24 +9770,13 @@ const headerLookCatalog = defineExactCatalog()([
|
|
|
9806
9770
|
{
|
|
9807
9771
|
id: asHeaderLookId("floating-glass"),
|
|
9808
9772
|
label: "Floating glass",
|
|
9809
|
-
visualTreatment: "floating-glass",
|
|
9810
|
-
layoutBehavior: "fixed-floating",
|
|
9811
|
-
configuration: {
|
|
9812
|
-
structure: "floating-shell",
|
|
9813
|
-
treatment: "floating-glass",
|
|
9814
|
-
behavior: "fixed-floating"
|
|
9815
|
-
},
|
|
9816
9773
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
9817
9774
|
maxRecommendedNavItems: 5,
|
|
9818
9775
|
logoAccommodations: overlayLogoAccommodations,
|
|
9819
9776
|
compile: floatingGlassHeader
|
|
9820
9777
|
}
|
|
9821
9778
|
]);
|
|
9822
|
-
new Set(headerLookCatalog.map((look) => headerConfigurationKey(look.configuration)));
|
|
9823
9779
|
new Map(headerLookCatalog.map((look) => [look.id, look]));
|
|
9824
|
-
function headerConfigurationKey(configuration) {
|
|
9825
|
-
return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
|
|
9826
|
-
}
|
|
9827
9780
|
//#endregion
|
|
9828
9781
|
//#region ../theme-core/src/site-styles/sectionTransitions.ts
|
|
9829
9782
|
function boundaryRuntimeMetrics(family, size, heightExpression) {
|
|
@@ -10027,8 +9980,6 @@ const VARIANT_ROLES = [
|
|
|
10027
9980
|
"secondary",
|
|
10028
9981
|
"outline",
|
|
10029
9982
|
"ghost",
|
|
10030
|
-
"link",
|
|
10031
|
-
"tertiary",
|
|
10032
9983
|
"accent"
|
|
10033
9984
|
];
|
|
10034
9985
|
function isVariantRole(value) {
|
|
@@ -10040,7 +9991,7 @@ function isVariantRole(value) {
|
|
|
10040
9991
|
* IDs become class selectors, so keep the contract deliberately narrower than
|
|
10041
9992
|
* an arbitrary string and shared with every authoring/runtime boundary.
|
|
10042
9993
|
*/
|
|
10043
|
-
const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only");
|
|
9994
|
+
const buttonVariantIdSchema = z$1.string().min(1).max(50).regex(/^[a-z0-9-]+$/, "Button variant IDs may contain lowercase letters, numbers, and hyphens only").refine((value) => value !== "link" && value !== "tertiary", { message: "Retired button role IDs are not valid variant IDs" });
|
|
10044
9995
|
function asSpecialVariantId(value) {
|
|
10045
9996
|
const parsed = buttonVariantIdSchema.safeParse(value);
|
|
10046
9997
|
if (!parsed.success) throw new Error("SpecialVariantId must be a CSS-safe button variant ID");
|
|
@@ -13231,39 +13182,39 @@ function defaultTypographyForRecipe(recipe) {
|
|
|
13231
13182
|
}
|
|
13232
13183
|
//#endregion
|
|
13233
13184
|
//#region ../theme-core/src/lib/media.ts
|
|
13234
|
-
const hotspotSchema
|
|
13185
|
+
const hotspotSchema = z.object({
|
|
13235
13186
|
x: z.number().min(0).max(1),
|
|
13236
13187
|
y: z.number().min(0).max(1),
|
|
13237
13188
|
radius: z.number().optional()
|
|
13238
13189
|
});
|
|
13239
|
-
const rotationSchema
|
|
13190
|
+
const rotationSchema = z.union([
|
|
13240
13191
|
z.literal(0),
|
|
13241
13192
|
z.literal(90),
|
|
13242
13193
|
z.literal(180),
|
|
13243
13194
|
z.literal(270)
|
|
13244
13195
|
]);
|
|
13245
|
-
const rectSchema
|
|
13196
|
+
const rectSchema = z.tuple([
|
|
13246
13197
|
z.number(),
|
|
13247
13198
|
z.number(),
|
|
13248
13199
|
z.number(),
|
|
13249
13200
|
z.number()
|
|
13250
13201
|
]);
|
|
13251
|
-
const aspectCropSchema
|
|
13202
|
+
const aspectCropSchema = z.object({
|
|
13252
13203
|
aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
|
|
13253
|
-
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema
|
|
13254
|
-
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema
|
|
13255
|
-
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema
|
|
13204
|
+
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
13205
|
+
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
13206
|
+
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
13256
13207
|
});
|
|
13257
|
-
const transformSchema
|
|
13208
|
+
const transformSchema = z.object({
|
|
13258
13209
|
aspectCrops: z.preprocess((value) => {
|
|
13259
13210
|
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
13260
13211
|
return value;
|
|
13261
|
-
}, z.record(z.string(), aspectCropSchema
|
|
13262
|
-
rect: rectSchema
|
|
13263
|
-
hotspot: hotspotSchema
|
|
13264
|
-
rotation: rotationSchema
|
|
13212
|
+
}, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
|
|
13213
|
+
rect: rectSchema.optional(),
|
|
13214
|
+
hotspot: hotspotSchema.optional(),
|
|
13215
|
+
rotation: rotationSchema.optional()
|
|
13265
13216
|
});
|
|
13266
|
-
const mediaSchema
|
|
13217
|
+
const mediaSchema = z.object({
|
|
13267
13218
|
type: z.enum([
|
|
13268
13219
|
"image",
|
|
13269
13220
|
"video",
|
|
@@ -13284,7 +13235,7 @@ const mediaSchema$1 = z.object({
|
|
|
13284
13235
|
height: z.number().optional(),
|
|
13285
13236
|
storageBucket: z.string().optional(),
|
|
13286
13237
|
storagePath: z.string().optional(),
|
|
13287
|
-
transform: transformSchema
|
|
13238
|
+
transform: transformSchema.optional()
|
|
13288
13239
|
});
|
|
13289
13240
|
//#endregion
|
|
13290
13241
|
//#region ../theme-core/src/palette/schema.ts
|
|
@@ -14117,264 +14068,6 @@ function generateInteractiveChildInheritanceCSS(selector) {
|
|
|
14117
14068
|
return `\n${selector} * {\n font-family: inherit;\n font-weight: inherit;\n font-style: inherit;\n letter-spacing: inherit;\n text-transform: inherit;\n color: inherit;\n}\n`;
|
|
14118
14069
|
}
|
|
14119
14070
|
//#endregion
|
|
14120
|
-
//#region ../theme-core/src/buttons/effects/presets/background.ts
|
|
14121
|
-
/**
|
|
14122
|
-
* Darken background on hover
|
|
14123
|
-
*
|
|
14124
|
-
* Works with solid backgrounds only. Darkens the background color by adjusting the shade.
|
|
14125
|
-
*/
|
|
14126
|
-
const darkenBackgroundEffect = {
|
|
14127
|
-
id: "darken-background",
|
|
14128
|
-
name: "Darken on Hover",
|
|
14129
|
-
description: "Darkens the background color on hover",
|
|
14130
|
-
category: "background",
|
|
14131
|
-
pseudoElement: "none",
|
|
14132
|
-
applicableTo: ["button"],
|
|
14133
|
-
customizableOption: {
|
|
14134
|
-
name: "amount",
|
|
14135
|
-
type: "select",
|
|
14136
|
-
label: "Darken Amount (shade step)",
|
|
14137
|
-
default: 100,
|
|
14138
|
-
options: [
|
|
14139
|
-
0,
|
|
14140
|
-
100,
|
|
14141
|
-
200,
|
|
14142
|
-
300,
|
|
14143
|
-
400,
|
|
14144
|
-
500,
|
|
14145
|
-
600,
|
|
14146
|
-
700,
|
|
14147
|
-
800,
|
|
14148
|
-
900
|
|
14149
|
-
]
|
|
14150
|
-
},
|
|
14151
|
-
isApplicable: (buttonConfig) => {
|
|
14152
|
-
return buttonConfig.background.type === "solid";
|
|
14153
|
-
},
|
|
14154
|
-
generateCSS: (ctx) => {
|
|
14155
|
-
const { themeId, variantId, options, tokens, buttonConfig } = ctx;
|
|
14156
|
-
if (buttonConfig.background.type !== "solid") return "";
|
|
14157
|
-
const amount = options.amount || 100;
|
|
14158
|
-
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
14159
|
-
const darkerToken = tokens.adjustShade(baseToken, amount);
|
|
14160
|
-
return `
|
|
14161
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14162
|
-
background-color: ${tokens.getColor(darkerToken)};
|
|
14163
|
-
}
|
|
14164
|
-
`;
|
|
14165
|
-
}
|
|
14166
|
-
};
|
|
14167
|
-
/**
|
|
14168
|
-
* Lighten background on hover
|
|
14169
|
-
*
|
|
14170
|
-
* Works with solid backgrounds only. Lightens the background color by adjusting the shade.
|
|
14171
|
-
*/
|
|
14172
|
-
const lightenBackgroundEffect = {
|
|
14173
|
-
id: "lighten-background",
|
|
14174
|
-
name: "Lighten on Hover",
|
|
14175
|
-
description: "Lightens the background color on hover",
|
|
14176
|
-
category: "background",
|
|
14177
|
-
pseudoElement: "none",
|
|
14178
|
-
applicableTo: ["button"],
|
|
14179
|
-
customizableOption: {
|
|
14180
|
-
name: "amount",
|
|
14181
|
-
type: "select",
|
|
14182
|
-
label: "Lighten Amount (shade step)",
|
|
14183
|
-
default: 100,
|
|
14184
|
-
options: [
|
|
14185
|
-
0,
|
|
14186
|
-
100,
|
|
14187
|
-
200,
|
|
14188
|
-
300,
|
|
14189
|
-
400,
|
|
14190
|
-
500,
|
|
14191
|
-
600,
|
|
14192
|
-
700,
|
|
14193
|
-
800,
|
|
14194
|
-
900
|
|
14195
|
-
]
|
|
14196
|
-
},
|
|
14197
|
-
isApplicable: (buttonConfig) => {
|
|
14198
|
-
return buttonConfig.background.type === "solid";
|
|
14199
|
-
},
|
|
14200
|
-
generateCSS: (ctx) => {
|
|
14201
|
-
const { themeId, variantId, options, tokens, buttonConfig } = ctx;
|
|
14202
|
-
if (buttonConfig.background.type !== "solid") return "";
|
|
14203
|
-
const amount = options.amount || 100;
|
|
14204
|
-
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
14205
|
-
const lighterToken = tokens.adjustShade(baseToken, -amount);
|
|
14206
|
-
return `
|
|
14207
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14208
|
-
background-color: ${tokens.getColor(lighterToken)};
|
|
14209
|
-
}
|
|
14210
|
-
`;
|
|
14211
|
-
}
|
|
14212
|
-
};
|
|
14213
|
-
/**
|
|
14214
|
-
* Fade background on hover (reduce opacity)
|
|
14215
|
-
*
|
|
14216
|
-
* Works with all background types.
|
|
14217
|
-
*/
|
|
14218
|
-
const fadeBackgroundEffect = {
|
|
14219
|
-
id: "fade-background",
|
|
14220
|
-
name: "Fade on Hover",
|
|
14221
|
-
description: "Reduces background opacity on hover",
|
|
14222
|
-
category: "background",
|
|
14223
|
-
pseudoElement: "none",
|
|
14224
|
-
applicableTo: ["nav-link"],
|
|
14225
|
-
customizableOption: {
|
|
14226
|
-
name: "opacity",
|
|
14227
|
-
type: "percentage",
|
|
14228
|
-
label: "Hover Opacity",
|
|
14229
|
-
default: 80
|
|
14230
|
-
},
|
|
14231
|
-
generateCSS: (ctx) => {
|
|
14232
|
-
const { themeId, variantId, options } = ctx;
|
|
14233
|
-
return `
|
|
14234
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14235
|
-
opacity: ${(options.opacity || 80) / 100};
|
|
14236
|
-
}
|
|
14237
|
-
`;
|
|
14238
|
-
}
|
|
14239
|
-
};
|
|
14240
|
-
/**
|
|
14241
|
-
* Reduce opacity on hover (simple opacity reduction)
|
|
14242
|
-
*
|
|
14243
|
-
* Navigation-link effect that reduces opacity by a percentage (default 15%).
|
|
14244
|
-
*/
|
|
14245
|
-
const opacityReduceEffect = {
|
|
14246
|
-
id: "opacity-reduce",
|
|
14247
|
-
name: "Reduce Opacity",
|
|
14248
|
-
description: "Reduces navigation-link opacity on hover by a percentage",
|
|
14249
|
-
category: "background",
|
|
14250
|
-
pseudoElement: "none",
|
|
14251
|
-
applicableTo: ["nav-link"],
|
|
14252
|
-
customizableOption: {
|
|
14253
|
-
name: "reduction",
|
|
14254
|
-
type: "percentage",
|
|
14255
|
-
label: "Opacity Reduction",
|
|
14256
|
-
default: 15
|
|
14257
|
-
},
|
|
14258
|
-
generateCSS: (ctx) => {
|
|
14259
|
-
const { themeId, variantId, options } = ctx;
|
|
14260
|
-
return `
|
|
14261
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14262
|
-
opacity: ${1 - (options.reduction || 15) / 100};
|
|
14263
|
-
}
|
|
14264
|
-
`;
|
|
14265
|
-
}
|
|
14266
|
-
};
|
|
14267
|
-
/**
|
|
14268
|
-
* Animated gradient background
|
|
14269
|
-
*
|
|
14270
|
-
* Animates a gradient background by shifting its position on hover.
|
|
14271
|
-
* Works with gradient backgrounds only.
|
|
14272
|
-
*
|
|
14273
|
-
* Sets background-size to 200% and animates background-position from left to right.
|
|
14274
|
-
*/
|
|
14275
|
-
const animatedGradientEffect = {
|
|
14276
|
-
id: "animated-gradient",
|
|
14277
|
-
name: "Animated Gradient",
|
|
14278
|
-
description: "Animates gradient position on hover",
|
|
14279
|
-
category: "background",
|
|
14280
|
-
pseudoElement: "none",
|
|
14281
|
-
applicableTo: ["button"],
|
|
14282
|
-
customizableOption: {
|
|
14283
|
-
name: "direction",
|
|
14284
|
-
type: "select",
|
|
14285
|
-
label: "Animation Direction",
|
|
14286
|
-
default: "horizontal",
|
|
14287
|
-
options: ["horizontal", "vertical"]
|
|
14288
|
-
},
|
|
14289
|
-
isApplicable: (buttonConfig) => {
|
|
14290
|
-
return buttonConfig.background.type === "gradient";
|
|
14291
|
-
},
|
|
14292
|
-
generateCSS: (ctx) => {
|
|
14293
|
-
const { themeId, variantId, options, buttonConfig } = ctx;
|
|
14294
|
-
if (buttonConfig.background.type !== "gradient") return "";
|
|
14295
|
-
const direction = options.direction || "horizontal";
|
|
14296
|
-
return `
|
|
14297
|
-
/* Setup animated gradient */
|
|
14298
|
-
:where([data-theme-scope="${themeId}"]) .${variantId} {
|
|
14299
|
-
background-size: ${direction === "horizontal" ? "200% auto" : "auto 200%"};
|
|
14300
|
-
background-position: left center;
|
|
14301
|
-
transition: background-position 0.3s ease;
|
|
14302
|
-
}
|
|
14303
|
-
|
|
14304
|
-
/* Animate gradient on hover */
|
|
14305
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14306
|
-
background-position: ${direction === "horizontal" ? "right center" : "center bottom"};
|
|
14307
|
-
}
|
|
14308
|
-
`;
|
|
14309
|
-
}
|
|
14310
|
-
};
|
|
14311
|
-
/**
|
|
14312
|
-
* Add background color on hover
|
|
14313
|
-
*
|
|
14314
|
-
* Works best with transparent backgrounds. Adds a solid background color on hover.
|
|
14315
|
-
*/
|
|
14316
|
-
const backgroundOnHoverEffect = {
|
|
14317
|
-
id: "background-on-hover",
|
|
14318
|
-
name: "Background on Hover",
|
|
14319
|
-
description: "Adds background color on hover",
|
|
14320
|
-
category: "background",
|
|
14321
|
-
pseudoElement: "none",
|
|
14322
|
-
applicableTo: ["button", "nav-link"],
|
|
14323
|
-
customizableOption: {
|
|
14324
|
-
name: "colorToken",
|
|
14325
|
-
type: "select",
|
|
14326
|
-
label: "Background Color",
|
|
14327
|
-
default: "neutral-800",
|
|
14328
|
-
options: [
|
|
14329
|
-
"neutral-700",
|
|
14330
|
-
"neutral-800",
|
|
14331
|
-
"neutral-900",
|
|
14332
|
-
"primary"
|
|
14333
|
-
]
|
|
14334
|
-
},
|
|
14335
|
-
generateCSS: (ctx) => {
|
|
14336
|
-
const { themeId, variantId, options, tokens, buttonConfig } = ctx;
|
|
14337
|
-
const colorToken = options.colorToken || "neutral-800";
|
|
14338
|
-
return `
|
|
14339
|
-
/* Add background on hover */
|
|
14340
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14341
|
-
background-color: ${tokens.getColor(colorToken)};${"textColorToken" in buttonConfig && typeof options.textColorToken === "string" ? `\n color: ${tokens.getColor(options.textColorToken)};` : ""}
|
|
14342
|
-
}
|
|
14343
|
-
`;
|
|
14344
|
-
}
|
|
14345
|
-
};
|
|
14346
|
-
/**
|
|
14347
|
-
* Add semi-transparent background color on hover
|
|
14348
|
-
*
|
|
14349
|
-
* Adds a background with opacity/alpha channel. Perfect for retro/arcade styles.
|
|
14350
|
-
*/
|
|
14351
|
-
const backgroundOnHoverAlphaEffect = {
|
|
14352
|
-
id: "background-on-hover-alpha",
|
|
14353
|
-
name: "Background on Hover (Transparent)",
|
|
14354
|
-
description: "Adds semi-transparent background on hover",
|
|
14355
|
-
category: "background",
|
|
14356
|
-
pseudoElement: "none",
|
|
14357
|
-
applicableTo: ["nav-link"],
|
|
14358
|
-
customizableOption: {
|
|
14359
|
-
name: "opacity",
|
|
14360
|
-
type: "percentage",
|
|
14361
|
-
label: "Opacity",
|
|
14362
|
-
default: 50
|
|
14363
|
-
},
|
|
14364
|
-
generateCSS: (ctx) => {
|
|
14365
|
-
const { themeId, variantId, stateGroup, options } = ctx;
|
|
14366
|
-
const rawOpacity = options.opacity;
|
|
14367
|
-
const clampedOpacity = Math.max(0, Math.min(100, typeof rawOpacity === "number" && !Number.isNaN(rawOpacity) ? rawOpacity : 50));
|
|
14368
|
-
const cssVar = `var(--tb-${options.colorToken || "neutral-800"})`;
|
|
14369
|
-
return `
|
|
14370
|
-
/* Add semi-transparent background (${stateGroup}) */
|
|
14371
|
-
:where([data-theme-scope="${themeId}"]) .${variantId}${stateGroup === "base" ? "" : `:${stateGroup}`} {
|
|
14372
|
-
background-color: rgb(${cssVar} / ${clampedOpacity}%);
|
|
14373
|
-
}
|
|
14374
|
-
`;
|
|
14375
|
-
}
|
|
14376
|
-
};
|
|
14377
|
-
//#endregion
|
|
14378
14071
|
//#region ../theme-core/src/buttons/effects/cssUtils.ts
|
|
14379
14072
|
/**
|
|
14380
14073
|
* CSS Utilities for Effect Presets
|
|
@@ -14426,6 +14119,71 @@ function generateStateCSS(themeId, variantId, state, cssProperties) {
|
|
|
14426
14119
|
`;
|
|
14427
14120
|
}
|
|
14428
14121
|
//#endregion
|
|
14122
|
+
//#region ../theme-core/src/buttons/effects/presets/background.ts
|
|
14123
|
+
/**
|
|
14124
|
+
* Darken background on hover
|
|
14125
|
+
*
|
|
14126
|
+
* Works with solid backgrounds only. Darkens the background color by adjusting the shade.
|
|
14127
|
+
*/
|
|
14128
|
+
const darkenBackgroundEffect = shadeBackgroundEffect({
|
|
14129
|
+
id: "darken-background",
|
|
14130
|
+
name: "Darken on Hover",
|
|
14131
|
+
description: "Darkens the background color on hover",
|
|
14132
|
+
label: "Darken Amount (shade step)",
|
|
14133
|
+
shadeDirection: 1
|
|
14134
|
+
});
|
|
14135
|
+
/**
|
|
14136
|
+
* Lighten background on hover
|
|
14137
|
+
*
|
|
14138
|
+
* Works with solid backgrounds only. Lightens the background color by adjusting the shade.
|
|
14139
|
+
*/
|
|
14140
|
+
const lightenBackgroundEffect = shadeBackgroundEffect({
|
|
14141
|
+
id: "lighten-background",
|
|
14142
|
+
name: "Lighten on Hover",
|
|
14143
|
+
description: "Lightens the background color on hover",
|
|
14144
|
+
label: "Lighten Amount (shade step)",
|
|
14145
|
+
shadeDirection: -1
|
|
14146
|
+
});
|
|
14147
|
+
function shadeBackgroundEffect(config) {
|
|
14148
|
+
return {
|
|
14149
|
+
id: config.id,
|
|
14150
|
+
name: config.name,
|
|
14151
|
+
description: config.description,
|
|
14152
|
+
category: "background",
|
|
14153
|
+
pseudoElement: "none",
|
|
14154
|
+
applicableTo: ["button"],
|
|
14155
|
+
customizableOption: {
|
|
14156
|
+
name: "amount",
|
|
14157
|
+
type: "select",
|
|
14158
|
+
label: config.label,
|
|
14159
|
+
default: 100,
|
|
14160
|
+
options: [
|
|
14161
|
+
0,
|
|
14162
|
+
100,
|
|
14163
|
+
200,
|
|
14164
|
+
300,
|
|
14165
|
+
400,
|
|
14166
|
+
500,
|
|
14167
|
+
600,
|
|
14168
|
+
700,
|
|
14169
|
+
800,
|
|
14170
|
+
900
|
|
14171
|
+
]
|
|
14172
|
+
},
|
|
14173
|
+
isApplicable: (buttonConfig) => buttonConfig.background.type === "solid",
|
|
14174
|
+
generateCSS: ({ themeId, variantId, options, tokens, buttonConfig }) => {
|
|
14175
|
+
if (buttonConfig.background.type !== "solid") return "";
|
|
14176
|
+
const amount = (options.amount || 100) * config.shadeDirection;
|
|
14177
|
+
const baseToken = buttonConfig.background.colorToken ?? "primary-500";
|
|
14178
|
+
return `
|
|
14179
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14180
|
+
background-color: ${tokens.getColor(tokens.adjustShade(baseToken, amount))};
|
|
14181
|
+
}
|
|
14182
|
+
`;
|
|
14183
|
+
}
|
|
14184
|
+
};
|
|
14185
|
+
}
|
|
14186
|
+
//#endregion
|
|
14429
14187
|
//#region ../theme-core/src/buttons/effects/registry.ts
|
|
14430
14188
|
/**
|
|
14431
14189
|
* Registry of all available effect presets
|
|
@@ -14433,11 +14191,144 @@ function generateStateCSS(themeId, variantId, state, cssProperties) {
|
|
|
14433
14191
|
const EFFECT_PRESETS = [
|
|
14434
14192
|
darkenBackgroundEffect,
|
|
14435
14193
|
lightenBackgroundEffect,
|
|
14436
|
-
|
|
14437
|
-
|
|
14438
|
-
|
|
14439
|
-
|
|
14440
|
-
|
|
14194
|
+
{
|
|
14195
|
+
id: "fade-background",
|
|
14196
|
+
name: "Fade on Hover",
|
|
14197
|
+
description: "Reduces background opacity on hover",
|
|
14198
|
+
category: "background",
|
|
14199
|
+
pseudoElement: "none",
|
|
14200
|
+
applicableTo: ["nav-link"],
|
|
14201
|
+
customizableOption: {
|
|
14202
|
+
name: "opacity",
|
|
14203
|
+
type: "percentage",
|
|
14204
|
+
label: "Hover Opacity",
|
|
14205
|
+
default: 80
|
|
14206
|
+
},
|
|
14207
|
+
generateCSS: (ctx) => {
|
|
14208
|
+
const { themeId, variantId, options } = ctx;
|
|
14209
|
+
return `
|
|
14210
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14211
|
+
opacity: ${(options.opacity || 80) / 100};
|
|
14212
|
+
}
|
|
14213
|
+
`;
|
|
14214
|
+
}
|
|
14215
|
+
},
|
|
14216
|
+
{
|
|
14217
|
+
id: "opacity-reduce",
|
|
14218
|
+
name: "Reduce Opacity",
|
|
14219
|
+
description: "Reduces navigation-link opacity on hover by a percentage",
|
|
14220
|
+
category: "background",
|
|
14221
|
+
pseudoElement: "none",
|
|
14222
|
+
applicableTo: ["nav-link"],
|
|
14223
|
+
customizableOption: {
|
|
14224
|
+
name: "reduction",
|
|
14225
|
+
type: "percentage",
|
|
14226
|
+
label: "Opacity Reduction",
|
|
14227
|
+
default: 15
|
|
14228
|
+
},
|
|
14229
|
+
generateCSS: (ctx) => {
|
|
14230
|
+
const { themeId, variantId, options } = ctx;
|
|
14231
|
+
return `
|
|
14232
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14233
|
+
opacity: ${1 - (options.reduction || 15) / 100};
|
|
14234
|
+
}
|
|
14235
|
+
`;
|
|
14236
|
+
}
|
|
14237
|
+
},
|
|
14238
|
+
{
|
|
14239
|
+
id: "animated-gradient",
|
|
14240
|
+
name: "Animated Gradient",
|
|
14241
|
+
description: "Animates gradient position on hover",
|
|
14242
|
+
category: "background",
|
|
14243
|
+
pseudoElement: "none",
|
|
14244
|
+
applicableTo: ["button"],
|
|
14245
|
+
customizableOption: {
|
|
14246
|
+
name: "direction",
|
|
14247
|
+
type: "select",
|
|
14248
|
+
label: "Animation Direction",
|
|
14249
|
+
default: "horizontal",
|
|
14250
|
+
options: ["horizontal", "vertical"]
|
|
14251
|
+
},
|
|
14252
|
+
isApplicable: (buttonConfig) => {
|
|
14253
|
+
return buttonConfig.background.type === "gradient";
|
|
14254
|
+
},
|
|
14255
|
+
generateCSS: (ctx) => {
|
|
14256
|
+
const { themeId, variantId, options, buttonConfig } = ctx;
|
|
14257
|
+
if (buttonConfig.background.type !== "gradient") return "";
|
|
14258
|
+
const direction = options.direction || "horizontal";
|
|
14259
|
+
return `
|
|
14260
|
+
/* Setup animated gradient */
|
|
14261
|
+
:where([data-theme-scope="${themeId}"]) .${variantId} {
|
|
14262
|
+
background-size: ${direction === "horizontal" ? "200% auto" : "auto 200%"};
|
|
14263
|
+
background-position: left center;
|
|
14264
|
+
transition: background-position 0.3s ease;
|
|
14265
|
+
}
|
|
14266
|
+
|
|
14267
|
+
/* Animate gradient on hover */
|
|
14268
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}:hover {
|
|
14269
|
+
background-position: ${direction === "horizontal" ? "right center" : "center bottom"};
|
|
14270
|
+
}
|
|
14271
|
+
`;
|
|
14272
|
+
}
|
|
14273
|
+
},
|
|
14274
|
+
{
|
|
14275
|
+
id: "background-on-hover",
|
|
14276
|
+
name: "Background on Hover",
|
|
14277
|
+
description: "Adds background color on hover",
|
|
14278
|
+
category: "background",
|
|
14279
|
+
pseudoElement: "none",
|
|
14280
|
+
applicableTo: ["button", "nav-link"],
|
|
14281
|
+
customizableOption: {
|
|
14282
|
+
name: "colorToken",
|
|
14283
|
+
type: "select",
|
|
14284
|
+
label: "Background Color",
|
|
14285
|
+
default: "neutral-800",
|
|
14286
|
+
options: [
|
|
14287
|
+
"neutral-700",
|
|
14288
|
+
"neutral-800",
|
|
14289
|
+
"neutral-900",
|
|
14290
|
+
"primary"
|
|
14291
|
+
]
|
|
14292
|
+
},
|
|
14293
|
+
generateCSS: (ctx) => {
|
|
14294
|
+
const { themeId, variantId, stateGroup, options, tokens, buttonConfig } = ctx;
|
|
14295
|
+
const colorToken = options.colorToken || "neutral-800";
|
|
14296
|
+
const color = tokens.getColor(colorToken);
|
|
14297
|
+
const navForeground = "textColorToken" in buttonConfig && typeof options.textColorToken === "string" ? `\n color: ${tokens.getColor(options.textColorToken)};` : "";
|
|
14298
|
+
return `
|
|
14299
|
+
/* Add background on hover */
|
|
14300
|
+
${getStateSelector(themeId, variantId, stateGroup)} {
|
|
14301
|
+
background-color: ${color};${navForeground}
|
|
14302
|
+
}
|
|
14303
|
+
`;
|
|
14304
|
+
}
|
|
14305
|
+
},
|
|
14306
|
+
{
|
|
14307
|
+
id: "background-on-hover-alpha",
|
|
14308
|
+
name: "Background on Hover (Transparent)",
|
|
14309
|
+
description: "Adds semi-transparent background on hover",
|
|
14310
|
+
category: "background",
|
|
14311
|
+
pseudoElement: "none",
|
|
14312
|
+
applicableTo: ["nav-link"],
|
|
14313
|
+
customizableOption: {
|
|
14314
|
+
name: "opacity",
|
|
14315
|
+
type: "percentage",
|
|
14316
|
+
label: "Opacity",
|
|
14317
|
+
default: 50
|
|
14318
|
+
},
|
|
14319
|
+
generateCSS: (ctx) => {
|
|
14320
|
+
const { themeId, variantId, stateGroup, options } = ctx;
|
|
14321
|
+
const rawOpacity = options.opacity;
|
|
14322
|
+
const clampedOpacity = Math.max(0, Math.min(100, typeof rawOpacity === "number" && !Number.isNaN(rawOpacity) ? rawOpacity : 50));
|
|
14323
|
+
const cssVar = `var(--tb-${options.colorToken || "neutral-800"})`;
|
|
14324
|
+
return `
|
|
14325
|
+
/* Add semi-transparent background (${stateGroup}) */
|
|
14326
|
+
:where([data-theme-scope="${themeId}"]) .${variantId}${stateGroup === "base" ? "" : `:${stateGroup}`} {
|
|
14327
|
+
background-color: rgb(${cssVar} / ${clampedOpacity}%);
|
|
14328
|
+
}
|
|
14329
|
+
`;
|
|
14330
|
+
}
|
|
14331
|
+
},
|
|
14441
14332
|
{
|
|
14442
14333
|
id: "border-glow",
|
|
14443
14334
|
name: "Border Glow",
|
|
@@ -17376,6 +17267,147 @@ function resolveOnColorForThemeToken(token) {
|
|
|
17376
17267
|
return shade <= 400 ? "#000000" : "#FFFFFF";
|
|
17377
17268
|
}
|
|
17378
17269
|
//#endregion
|
|
17270
|
+
//#region ../theme-core/src/header/paintTargets.ts
|
|
17271
|
+
/** Resolve the element that owns the visible header surface for each layout. */
|
|
17272
|
+
function getHeaderPaintTargets(variant, themeId, state = "base") {
|
|
17273
|
+
const scope = `:where([data-theme-scope="${themeId}"])`;
|
|
17274
|
+
const scrolledRoot = state === "scrolled" ? ".header-root.header-scrolled " : "";
|
|
17275
|
+
if (variant === "floating") {
|
|
17276
|
+
if (state === "scrolled") {
|
|
17277
|
+
const desktopOwner = `${scope} ${scrolledRoot}.header-floating-container`;
|
|
17278
|
+
const mobileOwner = `${scope} ${scrolledRoot}.header-mobile-bar`;
|
|
17279
|
+
return [{
|
|
17280
|
+
kind: "viewport-band",
|
|
17281
|
+
clipSelector: `${scope}:has(.header-root.header-scrolled)`,
|
|
17282
|
+
ownerSelector: desktopOwner,
|
|
17283
|
+
selector: `${desktopOwner}::before`,
|
|
17284
|
+
mediaQuery: MQ_MD_UP,
|
|
17285
|
+
topExtension: {
|
|
17286
|
+
customProperty: "--rb-header-floating-top-gap",
|
|
17287
|
+
value: "1rem",
|
|
17288
|
+
ownerProperty: "top"
|
|
17289
|
+
},
|
|
17290
|
+
ownerNeedsPositioning: false
|
|
17291
|
+
}, {
|
|
17292
|
+
kind: "viewport-band",
|
|
17293
|
+
clipSelector: `${scope}:has(.header-root.header-scrolled)`,
|
|
17294
|
+
ownerSelector: mobileOwner,
|
|
17295
|
+
selector: `${mobileOwner}::before`,
|
|
17296
|
+
mediaQuery: MQ_MD_DOWN,
|
|
17297
|
+
topExtension: {
|
|
17298
|
+
customProperty: "--rb-header-floating-top-gap",
|
|
17299
|
+
value: "0.75rem",
|
|
17300
|
+
ownerProperty: "margin-top"
|
|
17301
|
+
},
|
|
17302
|
+
ownerNeedsPositioning: true
|
|
17303
|
+
}];
|
|
17304
|
+
}
|
|
17305
|
+
return [{
|
|
17306
|
+
kind: "element-box",
|
|
17307
|
+
selector: `${scope} ${scrolledRoot}.header-floating-container`,
|
|
17308
|
+
mediaQuery: MQ_MD_UP
|
|
17309
|
+
}, {
|
|
17310
|
+
kind: "element-box",
|
|
17311
|
+
selector: `${scope} ${scrolledRoot}.header-mobile-bar`,
|
|
17312
|
+
mediaQuery: MQ_MD_DOWN
|
|
17313
|
+
}];
|
|
17314
|
+
}
|
|
17315
|
+
return [{
|
|
17316
|
+
kind: "element-box",
|
|
17317
|
+
selector: `${scope} .header-root${state === "scrolled" ? ".header-scrolled" : ""}::before`,
|
|
17318
|
+
pseudoElement: "inset"
|
|
17319
|
+
}];
|
|
17320
|
+
}
|
|
17321
|
+
function renderHeaderPaintTargetRules(targets, rules) {
|
|
17322
|
+
return targets.map((target) => {
|
|
17323
|
+
const block = renderHeaderPaintTargetRule(target, rules);
|
|
17324
|
+
return target.mediaQuery ? `@media ${target.mediaQuery} {\n${block}\n}` : block;
|
|
17325
|
+
}).join("\n");
|
|
17326
|
+
}
|
|
17327
|
+
function renderHeaderPaintTargetRule(target, rules) {
|
|
17328
|
+
switch (target.kind) {
|
|
17329
|
+
case "element-box": {
|
|
17330
|
+
const pseudoElementSetup = target.pseudoElement === "inset" ? [
|
|
17331
|
+
"content: \"\";",
|
|
17332
|
+
"position: absolute;",
|
|
17333
|
+
"inset: 0;",
|
|
17334
|
+
"pointer-events: none;",
|
|
17335
|
+
"border-radius: inherit;",
|
|
17336
|
+
"z-index: -1;"
|
|
17337
|
+
] : [];
|
|
17338
|
+
return `${target.selector} {\n ${[...pseudoElementSetup, ...rules].join("\n ")}\n}`;
|
|
17339
|
+
}
|
|
17340
|
+
case "viewport-band": {
|
|
17341
|
+
const gap = target.topExtension;
|
|
17342
|
+
const ownerRules = [
|
|
17343
|
+
`${gap.customProperty}: ${gap.value};`,
|
|
17344
|
+
`${gap.ownerProperty}: var(${gap.customProperty});`,
|
|
17345
|
+
...target.ownerNeedsPositioning ? ["position: relative;"] : [],
|
|
17346
|
+
"isolation: isolate;",
|
|
17347
|
+
"background: none;",
|
|
17348
|
+
"backdrop-filter: none;",
|
|
17349
|
+
"-webkit-backdrop-filter: none;",
|
|
17350
|
+
"border: 0;",
|
|
17351
|
+
"box-shadow: none;"
|
|
17352
|
+
];
|
|
17353
|
+
const bandRules = [
|
|
17354
|
+
"content: \"\";",
|
|
17355
|
+
"position: absolute;",
|
|
17356
|
+
`top: calc(-1 * var(${gap.customProperty}));`,
|
|
17357
|
+
"bottom: 0;",
|
|
17358
|
+
"left: 50%;",
|
|
17359
|
+
"width: 100vw;",
|
|
17360
|
+
"transform: translateX(-50%);",
|
|
17361
|
+
"pointer-events: none;",
|
|
17362
|
+
"border-radius: 0;",
|
|
17363
|
+
"z-index: -1;",
|
|
17364
|
+
...rules
|
|
17365
|
+
];
|
|
17366
|
+
return `${target.clipSelector} {\n overflow-x: clip;\n}\n${target.ownerSelector} {\n ${ownerRules.join("\n ")}\n}\n${target.selector} {\n ${bandRules.join("\n ")}\n}`;
|
|
17367
|
+
}
|
|
17368
|
+
}
|
|
17369
|
+
}
|
|
17370
|
+
//#endregion
|
|
17371
|
+
//#region ../theme-core/src/header/scrollTreatment.ts
|
|
17372
|
+
const headerScrollTreatmentSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
17373
|
+
kind: z$1.literal("contrast-glass"),
|
|
17374
|
+
backgroundTone: z$1.enum(["light", "dark"])
|
|
17375
|
+
})]).optional();
|
|
17376
|
+
function generateMobileOverlayBackdropFilterFix(themeId, variant) {
|
|
17377
|
+
const root = `:where([data-theme-scope="${themeId}"]) .header-root:has([data-nav-mobile-overlay][aria-hidden="false"])`;
|
|
17378
|
+
return `\n${(variant === "floating" ? [`${root} .header-mobile-bar`, `${root} .header-mobile-bar::before`] : [`${root}::before`]).join(",\n")} {\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n}\n`;
|
|
17379
|
+
}
|
|
17380
|
+
function generateHeaderScrollTreatmentStyles(treatment, themeId, variant, surfaceRules = []) {
|
|
17381
|
+
if (!treatment) return "";
|
|
17382
|
+
switch (treatment.kind) {
|
|
17383
|
+
case "contrast-glass": {
|
|
17384
|
+
const backgroundChannels = treatment.backgroundTone === "dark" ? "0 0 0" : "255 255 255";
|
|
17385
|
+
return renderHeaderPaintTargetRules(getHeaderPaintTargets(variant, themeId, "scrolled"), [`background-color: rgb(${backgroundChannels} / 0.60);`, ...surfaceRules]);
|
|
17386
|
+
}
|
|
17387
|
+
}
|
|
17388
|
+
}
|
|
17389
|
+
//#endregion
|
|
17390
|
+
//#region ../theme-core/src/header/containerSchema.ts
|
|
17391
|
+
const headerContainerSchema = z$1.object({
|
|
17392
|
+
rounded: z$1.enum([
|
|
17393
|
+
"none",
|
|
17394
|
+
"sm",
|
|
17395
|
+
"md",
|
|
17396
|
+
"lg",
|
|
17397
|
+
"xl",
|
|
17398
|
+
"2xl"
|
|
17399
|
+
]).default("xl"),
|
|
17400
|
+
border: z$1.boolean().default(true),
|
|
17401
|
+
shadow: z$1.boolean().default(true),
|
|
17402
|
+
padding: z$1.enum([
|
|
17403
|
+
"sm",
|
|
17404
|
+
"md",
|
|
17405
|
+
"lg"
|
|
17406
|
+
]).default("md"),
|
|
17407
|
+
tint: z$1.string().nullable().optional(),
|
|
17408
|
+
opacity: z$1.number().min(0).max(1).default(.12)
|
|
17409
|
+
}).optional();
|
|
17410
|
+
//#endregion
|
|
17379
17411
|
//#region ../theme-core/src/schema.ts
|
|
17380
17412
|
const axesSchema = z$1.object({
|
|
17381
17413
|
tone: z$1.enum([
|
|
@@ -17536,7 +17568,7 @@ const boxBackgroundSchema = z$1.object({
|
|
|
17536
17568
|
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
17537
17569
|
gradient: z$1.string().nullable().optional(),
|
|
17538
17570
|
gradientPresetId: z$1.string().min(1).nullable().optional(),
|
|
17539
|
-
image: mediaSchema
|
|
17571
|
+
image: mediaSchema.nullable().optional(),
|
|
17540
17572
|
objectFit: z$1.enum([
|
|
17541
17573
|
"fill",
|
|
17542
17574
|
"fit",
|
|
@@ -17784,25 +17816,6 @@ const navFontWeight = z$1.enum([
|
|
|
17784
17816
|
]);
|
|
17785
17817
|
const headerMaxWidth = z$1.enum(["container", "full"]);
|
|
17786
17818
|
const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
|
|
17787
|
-
const headerContainerSchema = z$1.object({
|
|
17788
|
-
rounded: z$1.enum([
|
|
17789
|
-
"none",
|
|
17790
|
-
"sm",
|
|
17791
|
-
"md",
|
|
17792
|
-
"lg",
|
|
17793
|
-
"xl",
|
|
17794
|
-
"2xl"
|
|
17795
|
-
]).default("xl"),
|
|
17796
|
-
border: z$1.boolean().default(true),
|
|
17797
|
-
shadow: z$1.boolean().default(true),
|
|
17798
|
-
padding: z$1.enum([
|
|
17799
|
-
"sm",
|
|
17800
|
-
"md",
|
|
17801
|
-
"lg"
|
|
17802
|
-
]).default("md"),
|
|
17803
|
-
tint: z$1.string().nullable().optional(),
|
|
17804
|
-
opacity: z$1.number().min(0).max(1).default(.12)
|
|
17805
|
-
}).optional();
|
|
17806
17819
|
const headerBorderSchema = componentBorderSchema.extend({ position: z$1.enum([
|
|
17807
17820
|
"bottom",
|
|
17808
17821
|
"top",
|
|
@@ -17920,7 +17933,7 @@ const headerBackgroundSchema = z$1.object({
|
|
|
17920
17933
|
contentOwner: z$1.literal(siteChromeBackgroundOverrideOwner).optional(),
|
|
17921
17934
|
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
17922
17935
|
gradient: gradientConfigSchema.nullable().optional(),
|
|
17923
|
-
image: mediaSchema
|
|
17936
|
+
image: mediaSchema.nullable().optional(),
|
|
17924
17937
|
textColor: tokenOrCssColorValueSchema.nullable().optional()
|
|
17925
17938
|
});
|
|
17926
17939
|
const headerSchema = z$1.object({
|
|
@@ -17929,7 +17942,8 @@ const headerSchema = z$1.object({
|
|
|
17929
17942
|
shrinkOnScroll: z$1.boolean(),
|
|
17930
17943
|
maxWidth: headerMaxWidth,
|
|
17931
17944
|
barFrame: headerBarFrame.optional(),
|
|
17932
|
-
|
|
17945
|
+
scrollTreatment: headerScrollTreatmentSchema,
|
|
17946
|
+
logoOverride: mediaSchema.nullable().optional(),
|
|
17933
17947
|
background: headerBackgroundSchema.default({
|
|
17934
17948
|
type: "color",
|
|
17935
17949
|
color: "surface"
|
|
@@ -17941,6 +17955,7 @@ const headerSchema = z$1.object({
|
|
|
17941
17955
|
navFontRole: z$1.enum(["body", "heading"]).optional(),
|
|
17942
17956
|
navTypography: z$1.enum(["body", "heading"]).optional(),
|
|
17943
17957
|
navTextSize: navLinkStyleSchema.shape.textSize,
|
|
17958
|
+
interactionPalette: headerInteractionPaletteSchema.optional(),
|
|
17944
17959
|
navPlacement: z$1.enum(["end", "center"]).optional(),
|
|
17945
17960
|
container: headerContainerSchema,
|
|
17946
17961
|
border: headerBorderSchema,
|
|
@@ -23417,15 +23432,6 @@ const heroCopyFragment = defineFragment({
|
|
|
23417
23432
|
*/
|
|
23418
23433
|
const BLOCK_BUTTON_ROLES = PUBLIC_BUTTON_ROLES;
|
|
23419
23434
|
const blockButtonRoleSchema = z$1.enum(BLOCK_BUTTON_ROLES);
|
|
23420
|
-
/**
|
|
23421
|
-
* Temporary rollout boundary for persisted content written before issue #1220.
|
|
23422
|
-
* Authoring remains strict through `blockButtonRoleSchema`; this parser exists
|
|
23423
|
-
* only until the post-deploy role rewrite has been audited in production.
|
|
23424
|
-
*/
|
|
23425
|
-
function canonicalizePersistedBlockButtonRole(value) {
|
|
23426
|
-
return value === "link" || value === "tertiary" ? "ghost" : value;
|
|
23427
|
-
}
|
|
23428
|
-
const persistedBlockButtonRoleSchema = z$1.preprocess((value) => typeof value === "string" ? canonicalizePersistedBlockButtonRole(value) : value, blockButtonRoleSchema);
|
|
23429
23435
|
const BLOCK_BUTTON_ROLE_LABELS = {
|
|
23430
23436
|
primary: "Primary",
|
|
23431
23437
|
secondary: "Secondary",
|
|
@@ -31199,84 +31205,6 @@ const weeklySlotAvailabilityBlockDefinition = {
|
|
|
31199
31205
|
mode: "server"
|
|
31200
31206
|
} }
|
|
31201
31207
|
};
|
|
31202
|
-
const PUBLIC_DOWNLOAD_MEDIA_TYPES = [
|
|
31203
|
-
"document",
|
|
31204
|
-
"spreadsheet",
|
|
31205
|
-
"archive",
|
|
31206
|
-
"audio"
|
|
31207
|
-
];
|
|
31208
|
-
const hotspotSchema = z.object({
|
|
31209
|
-
x: z.number().min(0).max(1),
|
|
31210
|
-
y: z.number().min(0).max(1),
|
|
31211
|
-
radius: z.number().optional()
|
|
31212
|
-
});
|
|
31213
|
-
const rotationSchema = z.union([
|
|
31214
|
-
z.literal(0),
|
|
31215
|
-
z.literal(90),
|
|
31216
|
-
z.literal(180),
|
|
31217
|
-
z.literal(270)
|
|
31218
|
-
]);
|
|
31219
|
-
const rectSchema = z.tuple([
|
|
31220
|
-
z.number(),
|
|
31221
|
-
z.number(),
|
|
31222
|
-
z.number(),
|
|
31223
|
-
z.number()
|
|
31224
|
-
]);
|
|
31225
|
-
const aspectCropSchema = z.object({
|
|
31226
|
-
aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
|
|
31227
|
-
rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
|
|
31228
|
-
hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
|
|
31229
|
-
rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
|
|
31230
|
-
});
|
|
31231
|
-
const transformSchema = z.object({
|
|
31232
|
-
aspectCrops: z.preprocess((value) => {
|
|
31233
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) return;
|
|
31234
|
-
return value;
|
|
31235
|
-
}, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
|
|
31236
|
-
rect: rectSchema.optional(),
|
|
31237
|
-
hotspot: hotspotSchema.optional(),
|
|
31238
|
-
rotation: rotationSchema.optional()
|
|
31239
|
-
});
|
|
31240
|
-
const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
|
|
31241
|
-
tag: z.literal("storage"),
|
|
31242
|
-
assetId: z.string().optional(),
|
|
31243
|
-
storageBucket: z.string().min(1),
|
|
31244
|
-
storagePath: z.string().min(1)
|
|
31245
|
-
}), z.object({
|
|
31246
|
-
tag: z.literal("external-src"),
|
|
31247
|
-
assetId: z.string().optional(),
|
|
31248
|
-
src: z.string().url()
|
|
31249
|
-
})]);
|
|
31250
|
-
const mediaBaseSchema = z.object({
|
|
31251
|
-
purpose: z.string().optional(),
|
|
31252
|
-
placeholder: z.boolean().default(true).optional(),
|
|
31253
|
-
assetId: z.string().optional(),
|
|
31254
|
-
identifier: z.string().optional(),
|
|
31255
|
-
src: z.string().optional(),
|
|
31256
|
-
alt: z.string().optional(),
|
|
31257
|
-
filename: z.string().optional(),
|
|
31258
|
-
mimeType: z.string().optional(),
|
|
31259
|
-
width: z.number().optional(),
|
|
31260
|
-
height: z.number().optional(),
|
|
31261
|
-
storageBucket: z.string().optional(),
|
|
31262
|
-
storagePath: z.string().optional(),
|
|
31263
|
-
poster: mediaPosterSchema.optional(),
|
|
31264
|
-
transform: transformSchema.optional()
|
|
31265
|
-
});
|
|
31266
|
-
const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
|
|
31267
|
-
const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
|
|
31268
|
-
const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
|
|
31269
|
-
const documentMediaSchema = mediaBaseSchema.extend({ type: z.literal("document") });
|
|
31270
|
-
const spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z.literal("spreadsheet") });
|
|
31271
|
-
const archiveMediaSchema = mediaBaseSchema.extend({ type: z.literal("archive") });
|
|
31272
|
-
const mediaSchema = z.discriminatedUnion("type", [
|
|
31273
|
-
imageMediaSchema,
|
|
31274
|
-
videoMediaSchema,
|
|
31275
|
-
audioMediaSchema,
|
|
31276
|
-
documentMediaSchema,
|
|
31277
|
-
spreadsheetMediaSchema,
|
|
31278
|
-
archiveMediaSchema
|
|
31279
|
-
]);
|
|
31280
31208
|
//#endregion
|
|
31281
31209
|
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
31282
31210
|
const bookingDepositRefundPolicySchema = z$1.enum(["refundable", "non_refundable"]);
|
|
@@ -31716,7 +31644,7 @@ const publicEventSchema = z$1.object({
|
|
|
31716
31644
|
presentation: z$1.object({
|
|
31717
31645
|
cardTitleOverride: z$1.string().nullable().optional(),
|
|
31718
31646
|
summary: z$1.string().nullable().optional(),
|
|
31719
|
-
image: mediaSchema.nullable().optional()
|
|
31647
|
+
image: mediaSchema$1.nullable().optional()
|
|
31720
31648
|
}).optional(),
|
|
31721
31649
|
slug: z$1.string(),
|
|
31722
31650
|
path: z$1.string().nullable(),
|
|
@@ -32342,7 +32270,7 @@ function isEventCalendarListLayout(value) {
|
|
|
32342
32270
|
//#region ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
32343
32271
|
const previewStageSchema = z$1.enum(["preview", "published"]);
|
|
32344
32272
|
const registrationButtonVariantSchema = blockButtonRoleSchema;
|
|
32345
|
-
const eventButtonVariantSchema =
|
|
32273
|
+
const eventButtonVariantSchema = blockButtonRoleSchema;
|
|
32346
32274
|
const eventLayoutSchema = z$1.enum(eventCalendarListLayoutValues);
|
|
32347
32275
|
const eventCalendarDisplayModeSchema = z$1.enum(eventCalendarDisplayModeValues);
|
|
32348
32276
|
const eventCalendarDefaultViewSchema = z$1.enum(eventCalendarDefaultViewValues);
|
|
@@ -42336,7 +42264,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
42336
42264
|
//#endregion
|
|
42337
42265
|
//#region ../blocks/src/system/blocks/team-members.ts
|
|
42338
42266
|
const ITEM_NAME = "member";
|
|
42339
|
-
const teamMemberPhotoSchema = mediaSchema.refine((media) => media.type === "image", { message: "Team member photos must be image media" }).nullable();
|
|
42267
|
+
const teamMemberPhotoSchema = mediaSchema$1.refine((media) => media.type === "image", { message: "Team member photos must be image media" }).nullable();
|
|
42340
42268
|
const teamMemberDataSchema = z$1.object({
|
|
42341
42269
|
_type: z$1.literal("teamMember"),
|
|
42342
42270
|
id: z$1.string(),
|
|
@@ -43911,7 +43839,7 @@ function getBlockDefinition(name) {
|
|
|
43911
43839
|
//#endregion
|
|
43912
43840
|
//#region ../blocks/src/system/helpers/backgroundMedia.ts
|
|
43913
43841
|
function resolveBackgroundMedia(input) {
|
|
43914
|
-
const parsedMedia = mediaSchema.safeParse(input.image);
|
|
43842
|
+
const parsedMedia = mediaSchema$1.safeParse(input.image);
|
|
43915
43843
|
if (!parsedMedia.success) return null;
|
|
43916
43844
|
switch (parsedMedia.data.type) {
|
|
43917
43845
|
case "image":
|
|
@@ -45142,6 +45070,9 @@ function renderTrailingAffordanceIcon(affordance) {
|
|
|
45142
45070
|
className: "rb-ml-2 rb-h-4 rb-w-4 rb-inline-block"
|
|
45143
45071
|
});
|
|
45144
45072
|
}
|
|
45073
|
+
function isMissingRequiredLink(linkRequired, resolvedHref) {
|
|
45074
|
+
return linkRequired && resolvedHref.length === 0;
|
|
45075
|
+
}
|
|
45145
45076
|
const ButtonNode = ({ value, children, href, variantId = "primary", size = "md", disabled, type = "button", target, rel, linkRequired = false, trailingIcon, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, className, ...rest }) => {
|
|
45146
45077
|
const content = value ?? children;
|
|
45147
45078
|
if (!content) {
|
|
@@ -45150,12 +45081,16 @@ const ButtonNode = ({ value, children, href, variantId = "primary", size = "md",
|
|
|
45150
45081
|
}
|
|
45151
45082
|
const affordanceIcon = renderTrailingAffordanceIcon(resolveButtonAffordance({ trailingIcon }));
|
|
45152
45083
|
const resolvedHref = typeof href === "string" ? href.trim() : "";
|
|
45153
|
-
if (linkRequired
|
|
45084
|
+
if (isMissingRequiredLink(linkRequired, resolvedHref)) {
|
|
45154
45085
|
if (process.env.NODE_ENV === "development") console.warn("[ButtonNode] Missing href for link-required button");
|
|
45155
45086
|
return null;
|
|
45156
45087
|
}
|
|
45157
45088
|
const extraClassName = affordanceIcon ? [className, AFFORDANCE_SUPPRESS_CLASS].filter(Boolean).join(" ") : className;
|
|
45158
|
-
const resolvedVariantId = parseThemeButtonVariantId(
|
|
45089
|
+
const resolvedVariantId = parseThemeButtonVariantId(variantId);
|
|
45090
|
+
if (variantId && !resolvedVariantId) {
|
|
45091
|
+
console.error("[ButtonNode] Invalid button variant", { variantId });
|
|
45092
|
+
return null;
|
|
45093
|
+
}
|
|
45159
45094
|
const combinedClassName = resolvedVariantId ? themeButtonClassName({
|
|
45160
45095
|
variant: resolvedVariantId,
|
|
45161
45096
|
size,
|
|
@@ -45284,8 +45219,9 @@ function iconForMediaType(type) {
|
|
|
45284
45219
|
});
|
|
45285
45220
|
}
|
|
45286
45221
|
}
|
|
45287
|
-
function
|
|
45288
|
-
|
|
45222
|
+
function parseButtonVariant(value) {
|
|
45223
|
+
if (value === null || value === void 0) return "primary";
|
|
45224
|
+
return isBlockButtonRole(value) ? value : null;
|
|
45289
45225
|
}
|
|
45290
45226
|
function FileDownloadNode({ value, title, description, buttonLabel, buttonVariant, className }) {
|
|
45291
45227
|
if (!value || !isDownloadableMediaType(value.type)) return null;
|
|
@@ -45295,7 +45231,11 @@ function FileDownloadNode({ value, title, description, buttonLabel, buttonVarian
|
|
|
45295
45231
|
const heading = title?.trim() || filename;
|
|
45296
45232
|
const body = description?.trim();
|
|
45297
45233
|
const label = buttonLabel?.trim() || "Download";
|
|
45298
|
-
const variant =
|
|
45234
|
+
const variant = parseButtonVariant(buttonVariant);
|
|
45235
|
+
if (!variant) {
|
|
45236
|
+
console.error("[FileDownloadNode] Invalid button variant", { buttonVariant });
|
|
45237
|
+
return null;
|
|
45238
|
+
}
|
|
45299
45239
|
return /* @__PURE__ */ jsx("div", {
|
|
45300
45240
|
className,
|
|
45301
45241
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -52216,6 +52156,41 @@ function resolveColorTokenHex(theme, colorToken) {
|
|
|
52216
52156
|
if (colorToken === "transparent") return null;
|
|
52217
52157
|
return expandPalette(theme.palette)[colorToken] ?? null;
|
|
52218
52158
|
}
|
|
52159
|
+
const NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES = [
|
|
52160
|
+
`min-width: 12rem;`,
|
|
52161
|
+
`width: max-content;`,
|
|
52162
|
+
`max-width: min(22rem, calc(100vw - 2rem));`,
|
|
52163
|
+
`transform: translateX(var(--nav-dropdown-shift-x, 0px));`
|
|
52164
|
+
];
|
|
52165
|
+
//#endregion
|
|
52166
|
+
//#region ../theme-core/src/header/surfaceRules.ts
|
|
52167
|
+
/** Compile the visual surface declarations independently of paint geometry. */
|
|
52168
|
+
function buildHeaderSurfaceRules(header, tokens, blur) {
|
|
52169
|
+
const base = [];
|
|
52170
|
+
const scrolled = [];
|
|
52171
|
+
const background = header.background;
|
|
52172
|
+
if (background.type === "color") base.push(`background-color: ${tokens.getColor(background.color || "surface")};`);
|
|
52173
|
+
else if (background.type === "gradient" && background.gradient) {
|
|
52174
|
+
const stops = background.gradient.stops.map((stop) => tokens.getColor(stop.color)).join(", ");
|
|
52175
|
+
base.push(`background-image: linear-gradient(${background.gradient.angle ?? 180}deg, ${stops});`);
|
|
52176
|
+
}
|
|
52177
|
+
const blurRules = [`backdrop-filter: ${blur};`, `-webkit-backdrop-filter: ${blur};`];
|
|
52178
|
+
base.push(...blurRules);
|
|
52179
|
+
scrolled.push(...blurRules);
|
|
52180
|
+
const borderWidth = getComponentBorderWidthPx(header.border?.width ?? "none");
|
|
52181
|
+
if (!header.border || borderWidth === "0") return {
|
|
52182
|
+
base,
|
|
52183
|
+
scrolled,
|
|
52184
|
+
border: []
|
|
52185
|
+
};
|
|
52186
|
+
const color = rgbColorValue(header.border.colorToken?.trim() || "border");
|
|
52187
|
+
const style = header.border.style === "dashed" ? "dashed" : "solid";
|
|
52188
|
+
return {
|
|
52189
|
+
base,
|
|
52190
|
+
scrolled,
|
|
52191
|
+
border: header.border.position === "both" ? [`border-top: ${borderWidth} ${style} ${color};`, `border-bottom: ${borderWidth} ${style} ${color};`] : [`border-${header.border.position}: ${borderWidth} ${style} ${color};`]
|
|
52192
|
+
};
|
|
52193
|
+
}
|
|
52219
52194
|
//#endregion
|
|
52220
52195
|
//#region ../theme-core/src/navigation/presets.ts
|
|
52221
52196
|
/**
|
|
@@ -52377,12 +52352,71 @@ function getNavLinkPreset(presetId) {
|
|
|
52377
52352
|
return NAV_LINK_PRESETS[presetId];
|
|
52378
52353
|
}
|
|
52379
52354
|
Object.keys(NAV_LINK_PRESETS);
|
|
52380
|
-
|
|
52381
|
-
|
|
52382
|
-
|
|
52383
|
-
|
|
52384
|
-
|
|
52385
|
-
|
|
52355
|
+
//#endregion
|
|
52356
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
52357
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
52358
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
52359
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
52360
|
+
if (!basePreset) return null;
|
|
52361
|
+
const style = {
|
|
52362
|
+
...basePreset,
|
|
52363
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
52364
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
52365
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
52366
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
52367
|
+
};
|
|
52368
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
52369
|
+
applyLegacyNavEffects(style, header);
|
|
52370
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
52371
|
+
return style;
|
|
52372
|
+
}
|
|
52373
|
+
function applyLegacyNavEffects(style, header) {
|
|
52374
|
+
if (!header.navEffects) return;
|
|
52375
|
+
const effects = style.effects = {
|
|
52376
|
+
...style.effects,
|
|
52377
|
+
hover: [...style.effects?.hover ?? []],
|
|
52378
|
+
active: [...style.effects?.active ?? []]
|
|
52379
|
+
};
|
|
52380
|
+
if (header.navEffects.glow) effects.hover.push({
|
|
52381
|
+
effectId: "outer-glow",
|
|
52382
|
+
options: { spread: 5 }
|
|
52383
|
+
});
|
|
52384
|
+
if (header.navEffects.neumorphic) {
|
|
52385
|
+
effects.hover.push({
|
|
52386
|
+
effectId: "neumorphic-shadow",
|
|
52387
|
+
options: { mode: "pressed" }
|
|
52388
|
+
});
|
|
52389
|
+
effects.hover.push({
|
|
52390
|
+
effectId: "text-color-change",
|
|
52391
|
+
options: { hoverColorToken: "primary" }
|
|
52392
|
+
});
|
|
52393
|
+
}
|
|
52394
|
+
if (header.navEffects.underlineGradient) effects.hover.push({
|
|
52395
|
+
effectId: "border-bottom-grow",
|
|
52396
|
+
options: { origin: "center" }
|
|
52397
|
+
});
|
|
52398
|
+
}
|
|
52399
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
52400
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
52401
|
+
style.borderRadius = "full";
|
|
52402
|
+
style.effects = {
|
|
52403
|
+
...style.effects,
|
|
52404
|
+
hover: glassStateEffects(10),
|
|
52405
|
+
active: glassStateEffects(18)
|
|
52406
|
+
};
|
|
52407
|
+
}
|
|
52408
|
+
function glassStateEffects(opacity) {
|
|
52409
|
+
return [{
|
|
52410
|
+
effectId: "background-on-hover-alpha",
|
|
52411
|
+
options: {
|
|
52412
|
+
colorToken: "neutral-50",
|
|
52413
|
+
opacity
|
|
52414
|
+
}
|
|
52415
|
+
}, {
|
|
52416
|
+
effectId: "text-color-change",
|
|
52417
|
+
options: { hoverColorToken: "neutral-50" }
|
|
52418
|
+
}];
|
|
52419
|
+
}
|
|
52386
52420
|
//#endregion
|
|
52387
52421
|
//#region ../theme-core/src/header/generateHeaderCss.ts
|
|
52388
52422
|
const HEADER_BLUR = "blur(12px)";
|
|
@@ -52412,8 +52446,8 @@ function generateHeaderCss(options) {
|
|
|
52412
52446
|
const cssChunks = [];
|
|
52413
52447
|
const headerContrastTreatment = resolveHeaderContrastTreatment(header);
|
|
52414
52448
|
const headerNavTextSize = resolveHeaderNavTextSize(header);
|
|
52415
|
-
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens
|
|
52416
|
-
cssChunks.push(generateMobileOverlayBackdropFilterFix(themeId));
|
|
52449
|
+
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens));
|
|
52450
|
+
cssChunks.push(generateMobileOverlayBackdropFilterFix(themeId, header.variant));
|
|
52417
52451
|
cssChunks.push(generateLogoStyles({
|
|
52418
52452
|
logo: header.logo,
|
|
52419
52453
|
themeId,
|
|
@@ -52451,56 +52485,34 @@ function isClearSplitHeaderShape(header) {
|
|
|
52451
52485
|
function isDetachedFloatingHeaderShape(header) {
|
|
52452
52486
|
return header.variant === "floating" && !header.container;
|
|
52453
52487
|
}
|
|
52454
|
-
function generateMobileOverlayBackdropFilterFix(themeId) {
|
|
52455
|
-
return `\n${`:where([data-theme-scope="${themeId}"]) .header-root:has([data-nav-mobile-overlay][aria-hidden="false"])::before`} {\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n}\n`;
|
|
52456
|
-
}
|
|
52457
52488
|
/**
|
|
52458
52489
|
* Generate root header container styles
|
|
52459
52490
|
*/
|
|
52460
|
-
function generateHeaderRootStyles(header, themeId, tokens
|
|
52491
|
+
function generateHeaderRootStyles(header, themeId, tokens) {
|
|
52461
52492
|
const selector = `:where([data-theme-scope="${themeId}"]) .header-root`;
|
|
52462
|
-
const backgroundSelector = `:where([data-theme-scope="${themeId}"]) .header-root::before`;
|
|
52463
52493
|
const rules = [];
|
|
52464
|
-
const backgroundRules = [];
|
|
52465
52494
|
const navContainerType = header.navContainer?.type ?? "none";
|
|
52466
52495
|
const isContainedNav = navContainerType === "pill" || navContainerType === "glass";
|
|
52467
52496
|
rules.push("position: relative;");
|
|
52468
52497
|
rules.push("isolation: isolate;");
|
|
52469
|
-
|
|
52470
|
-
|
|
52471
|
-
|
|
52472
|
-
|
|
52473
|
-
|
|
52474
|
-
|
|
52475
|
-
|
|
52476
|
-
|
|
52477
|
-
|
|
52478
|
-
}
|
|
52479
|
-
backgroundRules.push(`backdrop-filter: ${HEADER_BLUR};`);
|
|
52480
|
-
backgroundRules.push(`-webkit-backdrop-filter: ${HEADER_BLUR};`);
|
|
52481
|
-
if (header.border) {
|
|
52482
|
-
const borderWidth = getComponentBorderWidthPx(header.border.width);
|
|
52483
|
-
if (borderWidth !== "0") {
|
|
52484
|
-
const borderToken = header.border?.colorToken?.trim() || "border";
|
|
52485
|
-
const borderColor = tokens.getColor(borderToken);
|
|
52486
|
-
const borderStyle = header.border.style === "dashed" ? "dashed" : "solid";
|
|
52487
|
-
if (header.border.position === "bottom") rules.push(`border-bottom: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52488
|
-
else if (header.border.position === "top") rules.push(`border-top: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52489
|
-
else if (header.border.position === "both") {
|
|
52490
|
-
rules.push(`border-top: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52491
|
-
rules.push(`border-bottom: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52492
|
-
}
|
|
52493
|
-
}
|
|
52494
|
-
}
|
|
52495
|
-
}
|
|
52498
|
+
const surfaceRules = isContainedNav ? {
|
|
52499
|
+
base: [],
|
|
52500
|
+
scrolled: [],
|
|
52501
|
+
border: []
|
|
52502
|
+
} : buildHeaderSurfaceRules(header, tokens, HEADER_BLUR);
|
|
52503
|
+
const floatingSurfaceBorder = header.variant === "floating";
|
|
52504
|
+
if (!floatingSurfaceBorder) rules.push(...surfaceRules.border);
|
|
52505
|
+
const basePaintRules = floatingSurfaceBorder ? [...surfaceRules.base, ...surfaceRules.border] : surfaceRules.base;
|
|
52506
|
+
const scrolledPaintRules = floatingSurfaceBorder ? [...surfaceRules.scrolled, ...surfaceRules.border] : surfaceRules.scrolled;
|
|
52496
52507
|
if (header.positioning === "sticky" || header.positioning === "fixed") {
|
|
52497
52508
|
const shadowVar = getComponentShadowVar(header.shadow?.elevation ?? "none");
|
|
52498
52509
|
if (shadowVar) rules.push(`box-shadow: ${shadowVar};`);
|
|
52499
52510
|
}
|
|
52500
52511
|
const baseBlock = `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
52501
52512
|
const overlayFix = `\n${`${selector}:has([data-nav-mobile-overlay][aria-hidden="false"])`} {\n backdrop-filter: none !important;\n -webkit-backdrop-filter: none !important;\n}\n`;
|
|
52502
|
-
|
|
52503
|
-
|
|
52513
|
+
const scrollTreatmentStyles = generateHeaderScrollTreatmentStyles(header.scrollTreatment, themeId, header.variant, scrolledPaintRules);
|
|
52514
|
+
if (isContainedNav || basePaintRules.length === 0) return `${baseBlock}\n${overlayFix}${scrollTreatmentStyles}`;
|
|
52515
|
+
return `${baseBlock}\n${renderHeaderPaintTargetRules(getHeaderPaintTargets(header.variant, themeId), basePaintRules)}\n${overlayFix}${usesInsetShell(header) ? generateInsetShellStyles(header, themeId) : ""}${scrollTreatmentStyles}`;
|
|
52504
52516
|
}
|
|
52505
52517
|
/**
|
|
52506
52518
|
* Reshapes the full-bleed header paint layer into a contained brand capsule at
|
|
@@ -52545,10 +52557,10 @@ function generateLogoStyles(input) {
|
|
|
52545
52557
|
else rules.push(`font-family: var(--font-heading);`);
|
|
52546
52558
|
if (logo) {
|
|
52547
52559
|
if (logo.letterSpacing && logo.letterSpacing !== "normal") rules.push(`letter-spacing: ${{
|
|
52548
|
-
|
|
52549
|
-
|
|
52550
|
-
|
|
52551
|
-
|
|
52560
|
+
normal: "0em",
|
|
52561
|
+
wide: "0.05em",
|
|
52562
|
+
wider: "0.1em",
|
|
52563
|
+
widest: "0.15em"
|
|
52552
52564
|
}[logo.letterSpacing]};`);
|
|
52553
52565
|
if (logo.gradient) {
|
|
52554
52566
|
rules.push(`background: linear-gradient(to right, ${primaryColor}, ${accentColor});`);
|
|
@@ -52621,71 +52633,11 @@ function generateNavLinkStyles(header, themeId, tokens, theme, contrastTreatment
|
|
|
52621
52633
|
} : header.navLinkStyle, navPreferences),
|
|
52622
52634
|
className: "header-nav-link"
|
|
52623
52635
|
});
|
|
52624
|
-
const
|
|
52625
|
-
|
|
52626
|
-
|
|
52627
|
-
console.warn(`[generateHeaderCss] Nav link preset not found: ${navStyle}`);
|
|
52636
|
+
const mergedStyle = buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
52637
|
+
if (!mergedStyle) {
|
|
52638
|
+
console.warn(`[generateHeaderCss] Nav link preset not found: ${header.navStyle}`);
|
|
52628
52639
|
return "";
|
|
52629
52640
|
}
|
|
52630
|
-
const mergedStyle = {
|
|
52631
|
-
...basePreset,
|
|
52632
|
-
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
52633
|
-
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
52634
|
-
...contrastTreatment ? { contrastTreatment } : {},
|
|
52635
|
-
...navTextSize ? { textSize: navTextSize } : {}
|
|
52636
|
-
};
|
|
52637
|
-
if (header.navWeight === "bold" && navStyle === "solid") mergedStyle.textTransform = "uppercase";
|
|
52638
|
-
if (header.navEffects) {
|
|
52639
|
-
const effects = mergedStyle.effects = {
|
|
52640
|
-
...mergedStyle.effects,
|
|
52641
|
-
hover: [...mergedStyle.effects?.hover || []],
|
|
52642
|
-
active: [...mergedStyle.effects?.active || []]
|
|
52643
|
-
};
|
|
52644
|
-
if (header.navEffects.glow) effects.hover.push({
|
|
52645
|
-
effectId: "outer-glow",
|
|
52646
|
-
options: { spread: 5 }
|
|
52647
|
-
});
|
|
52648
|
-
if (header.navEffects.neumorphic) {
|
|
52649
|
-
effects.hover.push({
|
|
52650
|
-
effectId: "neumorphic-shadow",
|
|
52651
|
-
options: { mode: "pressed" }
|
|
52652
|
-
});
|
|
52653
|
-
effects.hover.push({
|
|
52654
|
-
effectId: "text-color-change",
|
|
52655
|
-
options: { hoverColorToken: "primary" }
|
|
52656
|
-
});
|
|
52657
|
-
}
|
|
52658
|
-
if (header.navEffects.underlineGradient) effects.hover.push({
|
|
52659
|
-
effectId: "border-bottom-grow",
|
|
52660
|
-
options: { origin: "center" }
|
|
52661
|
-
});
|
|
52662
|
-
}
|
|
52663
|
-
if ((header.navContainer?.type ?? "none") === "glass" && navStyle === "minimal") {
|
|
52664
|
-
mergedStyle.borderRadius = "full";
|
|
52665
|
-
mergedStyle.effects = {
|
|
52666
|
-
...mergedStyle.effects,
|
|
52667
|
-
hover: [{
|
|
52668
|
-
effectId: "background-on-hover-alpha",
|
|
52669
|
-
options: {
|
|
52670
|
-
colorToken: "neutral-50",
|
|
52671
|
-
opacity: 10
|
|
52672
|
-
}
|
|
52673
|
-
}, {
|
|
52674
|
-
effectId: "text-color-change",
|
|
52675
|
-
options: { hoverColorToken: "neutral-50" }
|
|
52676
|
-
}],
|
|
52677
|
-
active: [{
|
|
52678
|
-
effectId: "background-on-hover-alpha",
|
|
52679
|
-
options: {
|
|
52680
|
-
colorToken: "neutral-50",
|
|
52681
|
-
opacity: 18
|
|
52682
|
-
}
|
|
52683
|
-
}, {
|
|
52684
|
-
effectId: "text-color-change",
|
|
52685
|
-
options: { hoverColorToken: "neutral-50" }
|
|
52686
|
-
}]
|
|
52687
|
-
};
|
|
52688
|
-
}
|
|
52689
52641
|
return generateNavLinkCSS({
|
|
52690
52642
|
themeId,
|
|
52691
52643
|
tokens,
|
|
@@ -52713,10 +52665,10 @@ function generateDropdownContainerStyles(header, themeId, tokens) {
|
|
|
52713
52665
|
if (shadowVar) rules.push(`box-shadow: ${shadowVar};`);
|
|
52714
52666
|
const borderRadius = dropdownStyle?.borderRadius ?? "md";
|
|
52715
52667
|
rules.push(`border-radius: ${{
|
|
52716
|
-
|
|
52717
|
-
|
|
52718
|
-
|
|
52719
|
-
|
|
52668
|
+
none: "0",
|
|
52669
|
+
sm: "0.25rem",
|
|
52670
|
+
md: "0.5rem",
|
|
52671
|
+
lg: "0.75rem"
|
|
52720
52672
|
}[borderRadius]};`);
|
|
52721
52673
|
rules.push(`padding: 0.5rem 0;`);
|
|
52722
52674
|
return `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
@@ -52771,16 +52723,16 @@ function generateDropdownLinkStyles(header, themeId, tokens, theme) {
|
|
|
52771
52723
|
const additionalRules = [];
|
|
52772
52724
|
const letterSpacing = configuredDropdownStyle?.letterSpacing ?? "normal";
|
|
52773
52725
|
if (letterSpacing !== "normal") additionalRules.push(`letter-spacing: ${{
|
|
52774
|
-
|
|
52775
|
-
|
|
52776
|
-
|
|
52726
|
+
normal: "0em",
|
|
52727
|
+
wide: "0.05em",
|
|
52728
|
+
wider: "0.1em"
|
|
52777
52729
|
}[letterSpacing]};`);
|
|
52778
52730
|
const textSize = configuredDropdownStyle?.textSize ?? "sm";
|
|
52779
52731
|
additionalRules.push(`font-size: ${{
|
|
52780
|
-
|
|
52781
|
-
|
|
52782
|
-
|
|
52783
|
-
|
|
52732
|
+
xs: "0.75rem",
|
|
52733
|
+
sm: "0.875rem",
|
|
52734
|
+
base: "1rem",
|
|
52735
|
+
lg: "1.125rem"
|
|
52784
52736
|
}[textSize]};`);
|
|
52785
52737
|
if (additionalRules.length > 0) return baseCSS + `\n${`:where([data-theme-scope="${themeId}"]) .nav-dropdown-link`} {\n ${additionalRules.join("\n ")}\n}\n`;
|
|
52786
52738
|
return baseCSS;
|
|
@@ -52876,18 +52828,18 @@ function generateFloatingContainerStyles(header, themeId, tokens) {
|
|
|
52876
52828
|
rules.push(`-webkit-backdrop-filter: ${FLOATING_BLUR};`);
|
|
52877
52829
|
if (container.border) rules.push(`border: 1px solid rgb(255 255 255 / 0.2);`);
|
|
52878
52830
|
rules.push(`border-radius: ${{
|
|
52879
|
-
|
|
52880
|
-
|
|
52881
|
-
|
|
52882
|
-
|
|
52883
|
-
|
|
52831
|
+
none: "0",
|
|
52832
|
+
sm: "0.375rem",
|
|
52833
|
+
md: "0.5rem",
|
|
52834
|
+
lg: "0.75rem",
|
|
52835
|
+
xl: "1rem",
|
|
52884
52836
|
"2xl": "1.5rem"
|
|
52885
52837
|
}[container.rounded]};`);
|
|
52886
52838
|
if (container.shadow) rules.push(`box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);`);
|
|
52887
52839
|
rules.push(`padding: ${{
|
|
52888
|
-
|
|
52889
|
-
|
|
52890
|
-
|
|
52840
|
+
sm: "1rem 1.5rem",
|
|
52841
|
+
md: "1.5rem 2rem",
|
|
52842
|
+
lg: "2rem 2.5rem"
|
|
52891
52843
|
}[container.padding]};`);
|
|
52892
52844
|
return `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
52893
52845
|
}
|