@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);
|
|
@@ -42579,7 +42507,7 @@ const newsletterSignupBlockDefinition = {
|
|
|
42579
42507
|
//#endregion
|
|
42580
42508
|
//#region ../blocks/src/system/blocks/team-members.ts
|
|
42581
42509
|
const ITEM_NAME = "member";
|
|
42582
|
-
const teamMemberPhotoSchema = mediaSchema.refine((media) => media.type === "image", { message: "Team member photos must be image media" }).nullable();
|
|
42510
|
+
const teamMemberPhotoSchema = mediaSchema$1.refine((media) => media.type === "image", { message: "Team member photos must be image media" }).nullable();
|
|
42583
42511
|
const teamMemberDataSchema = z$1.object({
|
|
42584
42512
|
_type: z$1.literal("teamMember"),
|
|
42585
42513
|
id: z$1.string(),
|
|
@@ -44154,7 +44082,7 @@ function getBlockDefinition(name) {
|
|
|
44154
44082
|
//#endregion
|
|
44155
44083
|
//#region ../blocks/src/system/helpers/backgroundMedia.ts
|
|
44156
44084
|
function resolveBackgroundMedia(input) {
|
|
44157
|
-
const parsedMedia = mediaSchema.safeParse(input.image);
|
|
44085
|
+
const parsedMedia = mediaSchema$1.safeParse(input.image);
|
|
44158
44086
|
if (!parsedMedia.success) return null;
|
|
44159
44087
|
switch (parsedMedia.data.type) {
|
|
44160
44088
|
case "image":
|
|
@@ -45522,6 +45450,9 @@ function renderTrailingAffordanceIcon(affordance) {
|
|
|
45522
45450
|
className: "rb-ml-2 rb-h-4 rb-w-4 rb-inline-block"
|
|
45523
45451
|
});
|
|
45524
45452
|
}
|
|
45453
|
+
function isMissingRequiredLink(linkRequired, resolvedHref) {
|
|
45454
|
+
return linkRequired && resolvedHref.length === 0;
|
|
45455
|
+
}
|
|
45525
45456
|
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 }) => {
|
|
45526
45457
|
const content = value ?? children;
|
|
45527
45458
|
if (!content) {
|
|
@@ -45530,12 +45461,16 @@ const ButtonNode = ({ value, children, href, variantId = "primary", size = "md",
|
|
|
45530
45461
|
}
|
|
45531
45462
|
const affordanceIcon = renderTrailingAffordanceIcon(resolveButtonAffordance({ trailingIcon }));
|
|
45532
45463
|
const resolvedHref = typeof href === "string" ? href.trim() : "";
|
|
45533
|
-
if (linkRequired
|
|
45464
|
+
if (isMissingRequiredLink(linkRequired, resolvedHref)) {
|
|
45534
45465
|
if (process.env.NODE_ENV === "development") console.warn("[ButtonNode] Missing href for link-required button");
|
|
45535
45466
|
return null;
|
|
45536
45467
|
}
|
|
45537
45468
|
const extraClassName = affordanceIcon ? [className, AFFORDANCE_SUPPRESS_CLASS].filter(Boolean).join(" ") : className;
|
|
45538
|
-
const resolvedVariantId = parseThemeButtonVariantId(
|
|
45469
|
+
const resolvedVariantId = parseThemeButtonVariantId(variantId);
|
|
45470
|
+
if (variantId && !resolvedVariantId) {
|
|
45471
|
+
console.error("[ButtonNode] Invalid button variant", { variantId });
|
|
45472
|
+
return null;
|
|
45473
|
+
}
|
|
45539
45474
|
const combinedClassName = resolvedVariantId ? themeButtonClassName({
|
|
45540
45475
|
variant: resolvedVariantId,
|
|
45541
45476
|
size,
|
|
@@ -45664,8 +45599,9 @@ function iconForMediaType(type) {
|
|
|
45664
45599
|
});
|
|
45665
45600
|
}
|
|
45666
45601
|
}
|
|
45667
|
-
function
|
|
45668
|
-
|
|
45602
|
+
function parseButtonVariant(value) {
|
|
45603
|
+
if (value === null || value === void 0) return "primary";
|
|
45604
|
+
return isBlockButtonRole(value) ? value : null;
|
|
45669
45605
|
}
|
|
45670
45606
|
function FileDownloadNode({ value, title, description, buttonLabel, buttonVariant, className }) {
|
|
45671
45607
|
if (!value || !isDownloadableMediaType(value.type)) return null;
|
|
@@ -45675,7 +45611,11 @@ function FileDownloadNode({ value, title, description, buttonLabel, buttonVarian
|
|
|
45675
45611
|
const heading = title?.trim() || filename;
|
|
45676
45612
|
const body = description?.trim();
|
|
45677
45613
|
const label = buttonLabel?.trim() || "Download";
|
|
45678
|
-
const variant =
|
|
45614
|
+
const variant = parseButtonVariant(buttonVariant);
|
|
45615
|
+
if (!variant) {
|
|
45616
|
+
console.error("[FileDownloadNode] Invalid button variant", { buttonVariant });
|
|
45617
|
+
return null;
|
|
45618
|
+
}
|
|
45679
45619
|
return /* @__PURE__ */ jsx("div", {
|
|
45680
45620
|
className,
|
|
45681
45621
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -52596,6 +52536,41 @@ function resolveColorTokenHex(theme, colorToken) {
|
|
|
52596
52536
|
if (colorToken === "transparent") return null;
|
|
52597
52537
|
return expandPalette(theme.palette)[colorToken] ?? null;
|
|
52598
52538
|
}
|
|
52539
|
+
const NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES = [
|
|
52540
|
+
`min-width: 12rem;`,
|
|
52541
|
+
`width: max-content;`,
|
|
52542
|
+
`max-width: min(22rem, calc(100vw - 2rem));`,
|
|
52543
|
+
`transform: translateX(var(--nav-dropdown-shift-x, 0px));`
|
|
52544
|
+
];
|
|
52545
|
+
//#endregion
|
|
52546
|
+
//#region ../theme-core/src/header/surfaceRules.ts
|
|
52547
|
+
/** Compile the visual surface declarations independently of paint geometry. */
|
|
52548
|
+
function buildHeaderSurfaceRules(header, tokens, blur) {
|
|
52549
|
+
const base = [];
|
|
52550
|
+
const scrolled = [];
|
|
52551
|
+
const background = header.background;
|
|
52552
|
+
if (background.type === "color") base.push(`background-color: ${tokens.getColor(background.color || "surface")};`);
|
|
52553
|
+
else if (background.type === "gradient" && background.gradient) {
|
|
52554
|
+
const stops = background.gradient.stops.map((stop) => tokens.getColor(stop.color)).join(", ");
|
|
52555
|
+
base.push(`background-image: linear-gradient(${background.gradient.angle ?? 180}deg, ${stops});`);
|
|
52556
|
+
}
|
|
52557
|
+
const blurRules = [`backdrop-filter: ${blur};`, `-webkit-backdrop-filter: ${blur};`];
|
|
52558
|
+
base.push(...blurRules);
|
|
52559
|
+
scrolled.push(...blurRules);
|
|
52560
|
+
const borderWidth = getComponentBorderWidthPx(header.border?.width ?? "none");
|
|
52561
|
+
if (!header.border || borderWidth === "0") return {
|
|
52562
|
+
base,
|
|
52563
|
+
scrolled,
|
|
52564
|
+
border: []
|
|
52565
|
+
};
|
|
52566
|
+
const color = rgbColorValue(header.border.colorToken?.trim() || "border");
|
|
52567
|
+
const style = header.border.style === "dashed" ? "dashed" : "solid";
|
|
52568
|
+
return {
|
|
52569
|
+
base,
|
|
52570
|
+
scrolled,
|
|
52571
|
+
border: header.border.position === "both" ? [`border-top: ${borderWidth} ${style} ${color};`, `border-bottom: ${borderWidth} ${style} ${color};`] : [`border-${header.border.position}: ${borderWidth} ${style} ${color};`]
|
|
52572
|
+
};
|
|
52573
|
+
}
|
|
52599
52574
|
//#endregion
|
|
52600
52575
|
//#region ../theme-core/src/navigation/presets.ts
|
|
52601
52576
|
/**
|
|
@@ -52757,12 +52732,71 @@ function getNavLinkPreset(presetId) {
|
|
|
52757
52732
|
return NAV_LINK_PRESETS[presetId];
|
|
52758
52733
|
}
|
|
52759
52734
|
Object.keys(NAV_LINK_PRESETS);
|
|
52760
|
-
|
|
52761
|
-
|
|
52762
|
-
|
|
52763
|
-
|
|
52764
|
-
|
|
52765
|
-
|
|
52735
|
+
//#endregion
|
|
52736
|
+
//#region ../theme-core/src/header/legacyNavLinkStyle.ts
|
|
52737
|
+
function buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize) {
|
|
52738
|
+
const navStyle = header.navStyle ?? "minimal";
|
|
52739
|
+
const basePreset = getNavLinkPreset(navStyle);
|
|
52740
|
+
if (!basePreset) return null;
|
|
52741
|
+
const style = {
|
|
52742
|
+
...basePreset,
|
|
52743
|
+
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
52744
|
+
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
52745
|
+
...contrastTreatment ? { contrastTreatment } : {},
|
|
52746
|
+
...navTextSize ? { textSize: navTextSize } : {}
|
|
52747
|
+
};
|
|
52748
|
+
if (header.navWeight === "bold" && navStyle === "solid") style.textTransform = "uppercase";
|
|
52749
|
+
applyLegacyNavEffects(style, header);
|
|
52750
|
+
applyLegacyGlassTreatment(style, header, navStyle);
|
|
52751
|
+
return style;
|
|
52752
|
+
}
|
|
52753
|
+
function applyLegacyNavEffects(style, header) {
|
|
52754
|
+
if (!header.navEffects) return;
|
|
52755
|
+
const effects = style.effects = {
|
|
52756
|
+
...style.effects,
|
|
52757
|
+
hover: [...style.effects?.hover ?? []],
|
|
52758
|
+
active: [...style.effects?.active ?? []]
|
|
52759
|
+
};
|
|
52760
|
+
if (header.navEffects.glow) effects.hover.push({
|
|
52761
|
+
effectId: "outer-glow",
|
|
52762
|
+
options: { spread: 5 }
|
|
52763
|
+
});
|
|
52764
|
+
if (header.navEffects.neumorphic) {
|
|
52765
|
+
effects.hover.push({
|
|
52766
|
+
effectId: "neumorphic-shadow",
|
|
52767
|
+
options: { mode: "pressed" }
|
|
52768
|
+
});
|
|
52769
|
+
effects.hover.push({
|
|
52770
|
+
effectId: "text-color-change",
|
|
52771
|
+
options: { hoverColorToken: "primary" }
|
|
52772
|
+
});
|
|
52773
|
+
}
|
|
52774
|
+
if (header.navEffects.underlineGradient) effects.hover.push({
|
|
52775
|
+
effectId: "border-bottom-grow",
|
|
52776
|
+
options: { origin: "center" }
|
|
52777
|
+
});
|
|
52778
|
+
}
|
|
52779
|
+
function applyLegacyGlassTreatment(style, header, navStyle) {
|
|
52780
|
+
if (header.navContainer?.type !== "glass" || navStyle !== "minimal") return;
|
|
52781
|
+
style.borderRadius = "full";
|
|
52782
|
+
style.effects = {
|
|
52783
|
+
...style.effects,
|
|
52784
|
+
hover: glassStateEffects(10),
|
|
52785
|
+
active: glassStateEffects(18)
|
|
52786
|
+
};
|
|
52787
|
+
}
|
|
52788
|
+
function glassStateEffects(opacity) {
|
|
52789
|
+
return [{
|
|
52790
|
+
effectId: "background-on-hover-alpha",
|
|
52791
|
+
options: {
|
|
52792
|
+
colorToken: "neutral-50",
|
|
52793
|
+
opacity
|
|
52794
|
+
}
|
|
52795
|
+
}, {
|
|
52796
|
+
effectId: "text-color-change",
|
|
52797
|
+
options: { hoverColorToken: "neutral-50" }
|
|
52798
|
+
}];
|
|
52799
|
+
}
|
|
52766
52800
|
//#endregion
|
|
52767
52801
|
//#region ../theme-core/src/header/generateHeaderCss.ts
|
|
52768
52802
|
const HEADER_BLUR = "blur(12px)";
|
|
@@ -52792,8 +52826,8 @@ function generateHeaderCss(options) {
|
|
|
52792
52826
|
const cssChunks = [];
|
|
52793
52827
|
const headerContrastTreatment = resolveHeaderContrastTreatment(header);
|
|
52794
52828
|
const headerNavTextSize = resolveHeaderNavTextSize(header);
|
|
52795
|
-
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens
|
|
52796
|
-
cssChunks.push(generateMobileOverlayBackdropFilterFix(themeId));
|
|
52829
|
+
cssChunks.push(generateHeaderRootStyles(header, themeId, tokens));
|
|
52830
|
+
cssChunks.push(generateMobileOverlayBackdropFilterFix(themeId, header.variant));
|
|
52797
52831
|
cssChunks.push(generateLogoStyles({
|
|
52798
52832
|
logo: header.logo,
|
|
52799
52833
|
themeId,
|
|
@@ -52831,56 +52865,34 @@ function isClearSplitHeaderShape(header) {
|
|
|
52831
52865
|
function isDetachedFloatingHeaderShape(header) {
|
|
52832
52866
|
return header.variant === "floating" && !header.container;
|
|
52833
52867
|
}
|
|
52834
|
-
function generateMobileOverlayBackdropFilterFix(themeId) {
|
|
52835
|
-
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`;
|
|
52836
|
-
}
|
|
52837
52868
|
/**
|
|
52838
52869
|
* Generate root header container styles
|
|
52839
52870
|
*/
|
|
52840
|
-
function generateHeaderRootStyles(header, themeId, tokens
|
|
52871
|
+
function generateHeaderRootStyles(header, themeId, tokens) {
|
|
52841
52872
|
const selector = `:where([data-theme-scope="${themeId}"]) .header-root`;
|
|
52842
|
-
const backgroundSelector = `:where([data-theme-scope="${themeId}"]) .header-root::before`;
|
|
52843
52873
|
const rules = [];
|
|
52844
|
-
const backgroundRules = [];
|
|
52845
52874
|
const navContainerType = header.navContainer?.type ?? "none";
|
|
52846
52875
|
const isContainedNav = navContainerType === "pill" || navContainerType === "glass";
|
|
52847
52876
|
rules.push("position: relative;");
|
|
52848
52877
|
rules.push("isolation: isolate;");
|
|
52849
|
-
|
|
52850
|
-
|
|
52851
|
-
|
|
52852
|
-
|
|
52853
|
-
|
|
52854
|
-
|
|
52855
|
-
|
|
52856
|
-
|
|
52857
|
-
|
|
52858
|
-
}
|
|
52859
|
-
backgroundRules.push(`backdrop-filter: ${HEADER_BLUR};`);
|
|
52860
|
-
backgroundRules.push(`-webkit-backdrop-filter: ${HEADER_BLUR};`);
|
|
52861
|
-
if (header.border) {
|
|
52862
|
-
const borderWidth = getComponentBorderWidthPx(header.border.width);
|
|
52863
|
-
if (borderWidth !== "0") {
|
|
52864
|
-
const borderToken = header.border?.colorToken?.trim() || "border";
|
|
52865
|
-
const borderColor = tokens.getColor(borderToken);
|
|
52866
|
-
const borderStyle = header.border.style === "dashed" ? "dashed" : "solid";
|
|
52867
|
-
if (header.border.position === "bottom") rules.push(`border-bottom: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52868
|
-
else if (header.border.position === "top") rules.push(`border-top: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52869
|
-
else if (header.border.position === "both") {
|
|
52870
|
-
rules.push(`border-top: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52871
|
-
rules.push(`border-bottom: ${borderWidth} ${borderStyle} ${borderColor};`);
|
|
52872
|
-
}
|
|
52873
|
-
}
|
|
52874
|
-
}
|
|
52875
|
-
}
|
|
52878
|
+
const surfaceRules = isContainedNav ? {
|
|
52879
|
+
base: [],
|
|
52880
|
+
scrolled: [],
|
|
52881
|
+
border: []
|
|
52882
|
+
} : buildHeaderSurfaceRules(header, tokens, HEADER_BLUR);
|
|
52883
|
+
const floatingSurfaceBorder = header.variant === "floating";
|
|
52884
|
+
if (!floatingSurfaceBorder) rules.push(...surfaceRules.border);
|
|
52885
|
+
const basePaintRules = floatingSurfaceBorder ? [...surfaceRules.base, ...surfaceRules.border] : surfaceRules.base;
|
|
52886
|
+
const scrolledPaintRules = floatingSurfaceBorder ? [...surfaceRules.scrolled, ...surfaceRules.border] : surfaceRules.scrolled;
|
|
52876
52887
|
if (header.positioning === "sticky" || header.positioning === "fixed") {
|
|
52877
52888
|
const shadowVar = getComponentShadowVar(header.shadow?.elevation ?? "none");
|
|
52878
52889
|
if (shadowVar) rules.push(`box-shadow: ${shadowVar};`);
|
|
52879
52890
|
}
|
|
52880
52891
|
const baseBlock = `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
52881
52892
|
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`;
|
|
52882
|
-
|
|
52883
|
-
|
|
52893
|
+
const scrollTreatmentStyles = generateHeaderScrollTreatmentStyles(header.scrollTreatment, themeId, header.variant, scrolledPaintRules);
|
|
52894
|
+
if (isContainedNav || basePaintRules.length === 0) return `${baseBlock}\n${overlayFix}${scrollTreatmentStyles}`;
|
|
52895
|
+
return `${baseBlock}\n${renderHeaderPaintTargetRules(getHeaderPaintTargets(header.variant, themeId), basePaintRules)}\n${overlayFix}${usesInsetShell(header) ? generateInsetShellStyles(header, themeId) : ""}${scrollTreatmentStyles}`;
|
|
52884
52896
|
}
|
|
52885
52897
|
/**
|
|
52886
52898
|
* Reshapes the full-bleed header paint layer into a contained brand capsule at
|
|
@@ -52925,10 +52937,10 @@ function generateLogoStyles(input) {
|
|
|
52925
52937
|
else rules.push(`font-family: var(--font-heading);`);
|
|
52926
52938
|
if (logo) {
|
|
52927
52939
|
if (logo.letterSpacing && logo.letterSpacing !== "normal") rules.push(`letter-spacing: ${{
|
|
52928
|
-
|
|
52929
|
-
|
|
52930
|
-
|
|
52931
|
-
|
|
52940
|
+
normal: "0em",
|
|
52941
|
+
wide: "0.05em",
|
|
52942
|
+
wider: "0.1em",
|
|
52943
|
+
widest: "0.15em"
|
|
52932
52944
|
}[logo.letterSpacing]};`);
|
|
52933
52945
|
if (logo.gradient) {
|
|
52934
52946
|
rules.push(`background: linear-gradient(to right, ${primaryColor}, ${accentColor});`);
|
|
@@ -53001,71 +53013,11 @@ function generateNavLinkStyles(header, themeId, tokens, theme, contrastTreatment
|
|
|
53001
53013
|
} : header.navLinkStyle, navPreferences),
|
|
53002
53014
|
className: "header-nav-link"
|
|
53003
53015
|
});
|
|
53004
|
-
const
|
|
53005
|
-
|
|
53006
|
-
|
|
53007
|
-
console.warn(`[generateHeaderCss] Nav link preset not found: ${navStyle}`);
|
|
53016
|
+
const mergedStyle = buildLegacyHeaderNavLinkStyle(header, contrastTreatment, navTextSize);
|
|
53017
|
+
if (!mergedStyle) {
|
|
53018
|
+
console.warn(`[generateHeaderCss] Nav link preset not found: ${header.navStyle}`);
|
|
53008
53019
|
return "";
|
|
53009
53020
|
}
|
|
53010
|
-
const mergedStyle = {
|
|
53011
|
-
...basePreset,
|
|
53012
|
-
fontWeight: header.navWeight ?? basePreset.fontWeight,
|
|
53013
|
-
colorToken: (header.navColor ?? header.textColor)?.trim() || basePreset.colorToken,
|
|
53014
|
-
...contrastTreatment ? { contrastTreatment } : {},
|
|
53015
|
-
...navTextSize ? { textSize: navTextSize } : {}
|
|
53016
|
-
};
|
|
53017
|
-
if (header.navWeight === "bold" && navStyle === "solid") mergedStyle.textTransform = "uppercase";
|
|
53018
|
-
if (header.navEffects) {
|
|
53019
|
-
const effects = mergedStyle.effects = {
|
|
53020
|
-
...mergedStyle.effects,
|
|
53021
|
-
hover: [...mergedStyle.effects?.hover || []],
|
|
53022
|
-
active: [...mergedStyle.effects?.active || []]
|
|
53023
|
-
};
|
|
53024
|
-
if (header.navEffects.glow) effects.hover.push({
|
|
53025
|
-
effectId: "outer-glow",
|
|
53026
|
-
options: { spread: 5 }
|
|
53027
|
-
});
|
|
53028
|
-
if (header.navEffects.neumorphic) {
|
|
53029
|
-
effects.hover.push({
|
|
53030
|
-
effectId: "neumorphic-shadow",
|
|
53031
|
-
options: { mode: "pressed" }
|
|
53032
|
-
});
|
|
53033
|
-
effects.hover.push({
|
|
53034
|
-
effectId: "text-color-change",
|
|
53035
|
-
options: { hoverColorToken: "primary" }
|
|
53036
|
-
});
|
|
53037
|
-
}
|
|
53038
|
-
if (header.navEffects.underlineGradient) effects.hover.push({
|
|
53039
|
-
effectId: "border-bottom-grow",
|
|
53040
|
-
options: { origin: "center" }
|
|
53041
|
-
});
|
|
53042
|
-
}
|
|
53043
|
-
if ((header.navContainer?.type ?? "none") === "glass" && navStyle === "minimal") {
|
|
53044
|
-
mergedStyle.borderRadius = "full";
|
|
53045
|
-
mergedStyle.effects = {
|
|
53046
|
-
...mergedStyle.effects,
|
|
53047
|
-
hover: [{
|
|
53048
|
-
effectId: "background-on-hover-alpha",
|
|
53049
|
-
options: {
|
|
53050
|
-
colorToken: "neutral-50",
|
|
53051
|
-
opacity: 10
|
|
53052
|
-
}
|
|
53053
|
-
}, {
|
|
53054
|
-
effectId: "text-color-change",
|
|
53055
|
-
options: { hoverColorToken: "neutral-50" }
|
|
53056
|
-
}],
|
|
53057
|
-
active: [{
|
|
53058
|
-
effectId: "background-on-hover-alpha",
|
|
53059
|
-
options: {
|
|
53060
|
-
colorToken: "neutral-50",
|
|
53061
|
-
opacity: 18
|
|
53062
|
-
}
|
|
53063
|
-
}, {
|
|
53064
|
-
effectId: "text-color-change",
|
|
53065
|
-
options: { hoverColorToken: "neutral-50" }
|
|
53066
|
-
}]
|
|
53067
|
-
};
|
|
53068
|
-
}
|
|
53069
53021
|
return generateNavLinkCSS({
|
|
53070
53022
|
themeId,
|
|
53071
53023
|
tokens,
|
|
@@ -53093,10 +53045,10 @@ function generateDropdownContainerStyles(header, themeId, tokens) {
|
|
|
53093
53045
|
if (shadowVar) rules.push(`box-shadow: ${shadowVar};`);
|
|
53094
53046
|
const borderRadius = dropdownStyle?.borderRadius ?? "md";
|
|
53095
53047
|
rules.push(`border-radius: ${{
|
|
53096
|
-
|
|
53097
|
-
|
|
53098
|
-
|
|
53099
|
-
|
|
53048
|
+
none: "0",
|
|
53049
|
+
sm: "0.25rem",
|
|
53050
|
+
md: "0.5rem",
|
|
53051
|
+
lg: "0.75rem"
|
|
53100
53052
|
}[borderRadius]};`);
|
|
53101
53053
|
rules.push(`padding: 0.5rem 0;`);
|
|
53102
53054
|
return `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
@@ -53151,16 +53103,16 @@ function generateDropdownLinkStyles(header, themeId, tokens, theme) {
|
|
|
53151
53103
|
const additionalRules = [];
|
|
53152
53104
|
const letterSpacing = configuredDropdownStyle?.letterSpacing ?? "normal";
|
|
53153
53105
|
if (letterSpacing !== "normal") additionalRules.push(`letter-spacing: ${{
|
|
53154
|
-
|
|
53155
|
-
|
|
53156
|
-
|
|
53106
|
+
normal: "0em",
|
|
53107
|
+
wide: "0.05em",
|
|
53108
|
+
wider: "0.1em"
|
|
53157
53109
|
}[letterSpacing]};`);
|
|
53158
53110
|
const textSize = configuredDropdownStyle?.textSize ?? "sm";
|
|
53159
53111
|
additionalRules.push(`font-size: ${{
|
|
53160
|
-
|
|
53161
|
-
|
|
53162
|
-
|
|
53163
|
-
|
|
53112
|
+
xs: "0.75rem",
|
|
53113
|
+
sm: "0.875rem",
|
|
53114
|
+
base: "1rem",
|
|
53115
|
+
lg: "1.125rem"
|
|
53164
53116
|
}[textSize]};`);
|
|
53165
53117
|
if (additionalRules.length > 0) return baseCSS + `\n${`:where([data-theme-scope="${themeId}"]) .nav-dropdown-link`} {\n ${additionalRules.join("\n ")}\n}\n`;
|
|
53166
53118
|
return baseCSS;
|
|
@@ -53256,18 +53208,18 @@ function generateFloatingContainerStyles(header, themeId, tokens) {
|
|
|
53256
53208
|
rules.push(`-webkit-backdrop-filter: ${FLOATING_BLUR};`);
|
|
53257
53209
|
if (container.border) rules.push(`border: 1px solid rgb(255 255 255 / 0.2);`);
|
|
53258
53210
|
rules.push(`border-radius: ${{
|
|
53259
|
-
|
|
53260
|
-
|
|
53261
|
-
|
|
53262
|
-
|
|
53263
|
-
|
|
53211
|
+
none: "0",
|
|
53212
|
+
sm: "0.375rem",
|
|
53213
|
+
md: "0.5rem",
|
|
53214
|
+
lg: "0.75rem",
|
|
53215
|
+
xl: "1rem",
|
|
53264
53216
|
"2xl": "1.5rem"
|
|
53265
53217
|
}[container.rounded]};`);
|
|
53266
53218
|
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);`);
|
|
53267
53219
|
rules.push(`padding: ${{
|
|
53268
|
-
|
|
53269
|
-
|
|
53270
|
-
|
|
53220
|
+
sm: "1rem 1.5rem",
|
|
53221
|
+
md: "1.5rem 2rem",
|
|
53222
|
+
lg: "2rem 2.5rem"
|
|
53271
53223
|
}[container.padding]};`);
|
|
53272
53224
|
return `\n${selector} {\n ${rules.join("\n ")}\n}\n`;
|
|
53273
53225
|
}
|