@riverbankcms/sdk 0.78.2 → 0.80.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/README.md +80 -0
- package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
- package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
- package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +56 -0
- package/dist/_dts/api/src/endpoints.d.ts +79 -0
- package/dist/_dts/api/src/index.d.ts +6 -4
- package/dist/_dts/api/src/media.d.ts +8 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
- package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +1 -0
- package/dist/_dts/api/src/siteIcons.d.ts +128 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +16 -0
- package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/webhooks.d.ts +239 -0
- package/dist/_dts/block-form/src/client/index.d.ts +2 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
- package/dist/_dts/blocks/src/client/header.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +12 -12
- package/dist/_dts/blocks/src/index.d.ts +5 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +22 -22
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +13 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +179 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
- package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +10 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
- package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
- package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
- package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
- package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -0
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
- package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
- package/dist/_dts/core/src/branded.d.ts +6 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -3
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +8 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +17 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +42 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +7 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -2
- package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
- package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +8 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
- package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -0
- package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -4
- package/dist/_dts/sdk/src/next/index.d.ts +1 -1
- package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
- package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
- package/dist/_dts/site-commands/src/commands.d.ts +3 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
- package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
- package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +159 -21
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +451 -57
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +135 -3
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -12
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
- package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{PreviewEditorSidebar-4DXLYX2V.mjs → chunk-5NZGBSJF.mjs} +2215 -2566
- package/dist/{chunk-RGTOD4AJ.mjs → chunk-7PCYG6YV.mjs} +621 -108
- package/dist/{chunk-CR5HKAGU.mjs → chunk-BBLZSQEY.mjs} +79 -0
- package/dist/{chunk-MCRQMPET.mjs → chunk-GYXKAUFV.mjs} +4500 -912
- package/dist/{chunk-6HYXHRAI.mjs → chunk-HTB4BMKD.mjs} +267 -49
- package/dist/{chunk-OKMBEAXY.mjs → chunk-MPBNEVPB.mjs} +1 -1
- package/dist/cli/index.mjs +3255 -702
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +150 -0
- package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QFZMNB7O.mjs} +1 -1
- package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
- package/dist/client/bookings.mjs +1246 -323
- package/dist/client/{carousel-TRBXDHGF.mjs → carousel-EO4BJMWD.mjs} +2 -2
- package/dist/client/{cart-Z7H3HJRS.mjs → cart-FTYCLYUW.mjs} +5 -5
- package/dist/client/{checkout-WAFCUBIX.mjs → checkout-NFGLVCOX.mjs} +5 -5
- package/dist/client/{chunk-CWGTG37I.mjs → chunk-4W66ALYT.mjs} +1 -1
- package/dist/client/{chunk-JRDUHZCT.mjs → chunk-6GVVWSPU.mjs} +4 -4
- package/dist/client/{chunk-75OUS5MT.mjs → chunk-IWFZSQNZ.mjs} +1 -1
- package/dist/client/{chunk-JGXPTEI2.mjs → chunk-PUOELU4O.mjs} +95 -8
- package/dist/client/{chunk-FUXW6VW2.mjs → chunk-PYRBIURC.mjs} +4 -4
- package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-T6UIP6UZ.mjs} +1 -1
- package/dist/client/{chunk-DNRGY432.mjs → chunk-VDS5YFLX.mjs} +1 -1
- package/dist/client/{chunk-UVQEJJTN.mjs → chunk-Y37KDO7P.mjs} +1 -1
- package/dist/client/client.mjs +24277 -20796
- package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-2EORROPS.mjs} +3 -3
- package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
- package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
- package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-TFTATAPH.mjs} +5 -5
- package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
- package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
- package/dist/client/{form-AOPYOKOW.mjs → form-NTIFD6WQ.mjs} +1 -1
- package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7TBNKCLA.mjs} +65 -24
- package/dist/client/hooks.mjs +3687 -2024
- package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-LRLB5A3H.mjs} +1 -1
- package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
- package/dist/client/{productDetail-N4E775RG.mjs → productDetail-GSNKBFLY.mjs} +5 -5
- package/dist/client/{productList-UGUQ2S45.mjs → productList-BGCGT4KZ.mjs} +5 -5
- package/dist/client/rendering/client.mjs +5274 -3030
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +6271 -2790
- package/dist/client/{shop-VHSZEEQ2.mjs → shop-RQHUCLNY.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +79 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +79 -0
- package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
- package/dist/server/components.mjs +6215 -3057
- package/dist/server/config-validation.mjs +3858 -2194
- package/dist/server/config.mjs +3858 -2194
- package/dist/server/data.mjs +3687 -2024
- package/dist/server/index.mjs +88 -1
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +6295 -3036
- package/dist/server/page-converter.mjs +3055 -1883
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +6220 -3062
- package/dist/server/rendering.mjs +6233 -3075
- package/dist/server/routing.mjs +4251 -2137
- package/dist/server/server.mjs +3705 -2042
- package/dist/server/theme-bridge.mjs +1617 -329
- package/dist/server/theme.mjs +411 -221
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +355 -33
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
- package/dist/chunk-4QEGTLK6.mjs +0 -1175
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as React2 from "react";
|
|
3
3
|
|
|
4
4
|
// ../theme-core/src/schema.ts
|
|
5
|
-
import { z as
|
|
5
|
+
import { z as z17 } from "zod";
|
|
6
6
|
|
|
7
7
|
// ../theme-core/src/lib/media.ts
|
|
8
8
|
import z from "zod";
|
|
@@ -146,7 +146,7 @@ var themeColorBaseTokenNames = [
|
|
|
146
146
|
"accentForeground"
|
|
147
147
|
];
|
|
148
148
|
var themeColorBaseTokenSet = new Set(themeColorBaseTokenNames);
|
|
149
|
-
var
|
|
149
|
+
var themeColorShadeSteps = [
|
|
150
150
|
"50",
|
|
151
151
|
"100",
|
|
152
152
|
"200",
|
|
@@ -159,7 +159,7 @@ var SHADE_STEPS = [
|
|
|
159
159
|
"900",
|
|
160
160
|
"950"
|
|
161
161
|
];
|
|
162
|
-
var shadeStepSet = new Set(
|
|
162
|
+
var shadeStepSet = new Set(themeColorShadeSteps);
|
|
163
163
|
function isKnownBaseToken(value) {
|
|
164
164
|
return themeColorBaseTokenSet.has(value);
|
|
165
165
|
}
|
|
@@ -1221,8 +1221,15 @@ function getDefaultButtonVariants() {
|
|
|
1221
1221
|
|
|
1222
1222
|
// ../theme-core/src/cards/types.ts
|
|
1223
1223
|
import { z as z6 } from "zod";
|
|
1224
|
+
var cardVariantRoleValues = ["default", "alternative"];
|
|
1225
|
+
var boxlessCardVariantValue = "none";
|
|
1224
1226
|
var cardSpacingSchema = z6.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
|
|
1225
1227
|
var gradientDirectionSchema2 = z6.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
1228
|
+
var cardVariantRoleSchema = z6.enum(cardVariantRoleValues);
|
|
1229
|
+
var boxStylesCardVariantSchema = z6.enum([
|
|
1230
|
+
...cardVariantRoleValues,
|
|
1231
|
+
boxlessCardVariantValue
|
|
1232
|
+
]);
|
|
1226
1233
|
var cardBackgroundSchema = z6.discriminatedUnion("type", [
|
|
1227
1234
|
z6.object({ type: z6.literal("solid"), colorToken: themeColorTokenSchema }),
|
|
1228
1235
|
z6.object({
|
|
@@ -1237,6 +1244,24 @@ var cardBorderSchema = z6.object({
|
|
|
1237
1244
|
widthClass: z6.string(),
|
|
1238
1245
|
colorToken: themeColorTokenSchema
|
|
1239
1246
|
});
|
|
1247
|
+
var cardCornerValueSchema = z6.enum([
|
|
1248
|
+
"square",
|
|
1249
|
+
"soft",
|
|
1250
|
+
"rounded",
|
|
1251
|
+
"pill",
|
|
1252
|
+
"expressive"
|
|
1253
|
+
]);
|
|
1254
|
+
var cardAccentEdgeSchema = z6.object({
|
|
1255
|
+
edge: z6.enum(["left", "top", "right", "bottom"]),
|
|
1256
|
+
colorToken: themeColorTokenSchema,
|
|
1257
|
+
width: z6.enum(["thin", "medium", "thick", "heavy"])
|
|
1258
|
+
});
|
|
1259
|
+
var cardCornerRadiiSchema = z6.object({
|
|
1260
|
+
topLeft: cardCornerValueSchema.optional(),
|
|
1261
|
+
topRight: cardCornerValueSchema.optional(),
|
|
1262
|
+
bottomLeft: cardCornerValueSchema.optional(),
|
|
1263
|
+
bottomRight: cardCornerValueSchema.optional()
|
|
1264
|
+
});
|
|
1240
1265
|
var cardVariantSchema = z6.object({
|
|
1241
1266
|
id: z6.string(),
|
|
1242
1267
|
name: z6.string().min(1).max(20),
|
|
@@ -1245,6 +1270,8 @@ var cardVariantSchema = z6.object({
|
|
|
1245
1270
|
// Appearance (token-based)
|
|
1246
1271
|
background: cardBackgroundSchema,
|
|
1247
1272
|
spacing: cardSpacingSchema,
|
|
1273
|
+
// Optional foreground (card text) color, for cards on a strong fill.
|
|
1274
|
+
foregroundToken: themeColorTokenSchema.optional(),
|
|
1248
1275
|
// Optional overrides (uses theme defaults if not specified)
|
|
1249
1276
|
shadow: z6.object({
|
|
1250
1277
|
elevation: z6.enum(["none", "low", "medium", "high"]),
|
|
@@ -1252,8 +1279,12 @@ var cardVariantSchema = z6.object({
|
|
|
1252
1279
|
position: z6.enum(["bottom", "bottom-right"]).default("bottom")
|
|
1253
1280
|
}).optional(),
|
|
1254
1281
|
corners: z6.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
1282
|
+
// Per-corner radius override; wins over `corners` when set.
|
|
1283
|
+
cornerRadii: cardCornerRadiiSchema.optional(),
|
|
1255
1284
|
// Border (optional)
|
|
1256
|
-
border: cardBorderSchema.optional()
|
|
1285
|
+
border: cardBorderSchema.optional(),
|
|
1286
|
+
// Single accent edge; replaces `border` when set.
|
|
1287
|
+
accentEdge: cardAccentEdgeSchema.optional()
|
|
1257
1288
|
});
|
|
1258
1289
|
var cardSystemSchema = z6.object({
|
|
1259
1290
|
variants: z6.array(cardVariantSchema).min(1).max(3)
|
|
@@ -1272,6 +1303,33 @@ var BORDER_WIDTH_MAP3 = {
|
|
|
1272
1303
|
medium: "2px",
|
|
1273
1304
|
thick: "4px"
|
|
1274
1305
|
};
|
|
1306
|
+
var PER_CORNER_RADIUS_MAP = {
|
|
1307
|
+
square: "0",
|
|
1308
|
+
soft: "0.5rem",
|
|
1309
|
+
rounded: "1rem",
|
|
1310
|
+
pill: "1.5rem",
|
|
1311
|
+
// A large block-radius multiple for expressive, asymmetric card corners.
|
|
1312
|
+
expressive: "calc(var(--rb-block-radius) * 3)"
|
|
1313
|
+
};
|
|
1314
|
+
var ACCENT_EDGE_WIDTH_MAP = {
|
|
1315
|
+
thin: "2px",
|
|
1316
|
+
medium: "3px",
|
|
1317
|
+
thick: "4px",
|
|
1318
|
+
heavy: "5px"
|
|
1319
|
+
};
|
|
1320
|
+
var ACCENT_EDGE_SIDE_MAP = {
|
|
1321
|
+
left: "border-left",
|
|
1322
|
+
top: "border-top",
|
|
1323
|
+
right: "border-right",
|
|
1324
|
+
bottom: "border-bottom"
|
|
1325
|
+
};
|
|
1326
|
+
function resolveCornerRadiiCss(cornerRadii, fallback) {
|
|
1327
|
+
const fallbackValue = CORNER_RADIUS_MAP3[fallback];
|
|
1328
|
+
const at = (value) => value ? PER_CORNER_RADIUS_MAP[value] : fallbackValue;
|
|
1329
|
+
return `${at(cornerRadii.topLeft)} ${at(cornerRadii.topRight)} ${at(
|
|
1330
|
+
cornerRadii.bottomRight
|
|
1331
|
+
)} ${at(cornerRadii.bottomLeft)}`;
|
|
1332
|
+
}
|
|
1275
1333
|
var GRADIENT_DIRECTION_MAP4 = {
|
|
1276
1334
|
"to-r": "to right",
|
|
1277
1335
|
"to-l": "to left",
|
|
@@ -1319,11 +1377,25 @@ function generateVariantCss2(scopeId, variant, settings) {
|
|
|
1319
1377
|
} else {
|
|
1320
1378
|
containerRules.push("background: transparent");
|
|
1321
1379
|
}
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1380
|
+
if (variant.foregroundToken) {
|
|
1381
|
+
containerRules.push(`color: rgb(var(--tb-${variant.foregroundToken}))`);
|
|
1382
|
+
}
|
|
1383
|
+
if (variant.accentEdge) {
|
|
1384
|
+
const side = ACCENT_EDGE_SIDE_MAP[variant.accentEdge.edge];
|
|
1385
|
+
const width = ACCENT_EDGE_WIDTH_MAP[variant.accentEdge.width];
|
|
1386
|
+
containerRules.push("border: 0");
|
|
1387
|
+
containerRules.push(
|
|
1388
|
+
`${side}: ${width} solid rgb(var(--tb-${variant.accentEdge.colorToken}))`
|
|
1389
|
+
);
|
|
1390
|
+
} else {
|
|
1391
|
+
const borderWidth = variant.borderWidth ? BORDER_WIDTH_MAP3[variant.borderWidth] : variant.borderToken ? BORDER_WIDTH_MAP3[settings.borderWidth] : "0";
|
|
1392
|
+
if (variant.borderToken && borderWidth !== "0") {
|
|
1393
|
+
containerRules.push(`border: ${borderWidth} solid rgb(var(--tb-${variant.borderToken}))`);
|
|
1394
|
+
}
|
|
1325
1395
|
}
|
|
1326
|
-
containerRules.push(
|
|
1396
|
+
containerRules.push(
|
|
1397
|
+
`border-radius: ${variant.cornerRadii ? resolveCornerRadiiCss(variant.cornerRadii, settings.corners) : CORNER_RADIUS_MAP3[settings.corners]}`
|
|
1398
|
+
);
|
|
1327
1399
|
if (settings.shadow !== "none") {
|
|
1328
1400
|
containerRules.push(`box-shadow: ${SHADOW_VALUES2[settings.shadow]}`);
|
|
1329
1401
|
}
|
|
@@ -1392,11 +1464,13 @@ var accordionIconSchema = z7.enum([
|
|
|
1392
1464
|
// ⊕ becomes ⊖ (swap with fade)
|
|
1393
1465
|
]);
|
|
1394
1466
|
var accordionSystemSchema = z7.object({
|
|
1395
|
-
// Visual styling (solid color only - gradients can be added later if needed)
|
|
1467
|
+
// Visual styling (solid color only - gradients can be added later if needed).
|
|
1468
|
+
// null = no fill, so the accordion sits transparently on the section
|
|
1469
|
+
// surface (used by open, boxless "divided" looks).
|
|
1396
1470
|
background: z7.object({
|
|
1397
1471
|
type: z7.literal("solid"),
|
|
1398
1472
|
colorToken: themeColorTokenSchema
|
|
1399
|
-
}),
|
|
1473
|
+
}).nullable(),
|
|
1400
1474
|
// Spacing (padding inside items)
|
|
1401
1475
|
spacing: z7.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]),
|
|
1402
1476
|
// Border radius (null = inherit from theme.corners)
|
|
@@ -1423,8 +1497,16 @@ var accordionSystemSchema = z7.object({
|
|
|
1423
1497
|
// Trigger (question) styling
|
|
1424
1498
|
trigger: z7.object({
|
|
1425
1499
|
textColorToken: themeColorTokenSchema,
|
|
1426
|
-
fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable()
|
|
1500
|
+
fontWeight: z7.enum(["regular", "medium", "semibold", "bold"]).nullable(),
|
|
1427
1501
|
// null = inherit from theme
|
|
1502
|
+
// Question typography. Defaults keep the historical body-font look; set
|
|
1503
|
+
// fontFamily 'heading' + a larger scale to give questions real presence.
|
|
1504
|
+
fontFamily: z7.enum(["body", "heading"]).optional(),
|
|
1505
|
+
// default 'body'
|
|
1506
|
+
fontScale: z7.enum(["body", "md", "lg"]).optional(),
|
|
1507
|
+
// default 'body'
|
|
1508
|
+
letterSpacing: z7.enum(["normal", "tight", "wide"]).optional(),
|
|
1509
|
+
textTransform: z7.enum(["none", "uppercase"]).optional()
|
|
1428
1510
|
}),
|
|
1429
1511
|
// Hover state styling
|
|
1430
1512
|
hover: z7.object({
|
|
@@ -1432,6 +1514,17 @@ var accordionSystemSchema = z7.object({
|
|
|
1432
1514
|
textColorToken: themeColorTokenSchema.optional(),
|
|
1433
1515
|
borderColorToken: themeColorTokenSchema.optional()
|
|
1434
1516
|
}),
|
|
1517
|
+
// Open-state emphasis: how an expanded item is visually rewarded. All
|
|
1518
|
+
// optional; omit for the historical "only the text recolors" behaviour.
|
|
1519
|
+
openState: z7.object({
|
|
1520
|
+
backgroundColorToken: themeColorTokenSchema.optional(),
|
|
1521
|
+
triggerColorToken: themeColorTokenSchema.optional(),
|
|
1522
|
+
accent: z7.object({
|
|
1523
|
+
edge: z7.enum(["left", "top", "bottom"]),
|
|
1524
|
+
colorToken: themeColorTokenSchema,
|
|
1525
|
+
thickness: z7.enum(["thin", "medium", "thick"])
|
|
1526
|
+
}).optional()
|
|
1527
|
+
}).optional(),
|
|
1435
1528
|
// Content (answer) styling
|
|
1436
1529
|
content: z7.object({
|
|
1437
1530
|
textColorToken: themeColorTokenSchema
|
|
@@ -1837,14 +1930,8 @@ var visibleHeadingDecorationFamilyValues = [
|
|
|
1837
1930
|
"organic-squiggle",
|
|
1838
1931
|
"short-center-rule"
|
|
1839
1932
|
];
|
|
1840
|
-
var visibleHeadingDecorationPlacementValues = [
|
|
1841
|
-
"after-heading",
|
|
1842
|
-
"between-heading-and-body",
|
|
1843
|
-
"under-centered-heading"
|
|
1844
|
-
];
|
|
1845
1933
|
var headingDecorationOverrideValues = [
|
|
1846
1934
|
"site-default",
|
|
1847
|
-
"on",
|
|
1848
1935
|
"off"
|
|
1849
1936
|
];
|
|
1850
1937
|
var headingDecorationColorTokenValues = [
|
|
@@ -1855,6 +1942,9 @@ var headingDecorationColorTokenValues = [
|
|
|
1855
1942
|
"border",
|
|
1856
1943
|
"muted"
|
|
1857
1944
|
];
|
|
1945
|
+
var noHeadingDecoration = {
|
|
1946
|
+
family: "none"
|
|
1947
|
+
};
|
|
1858
1948
|
var accordionIconSetValues = [
|
|
1859
1949
|
"plus",
|
|
1860
1950
|
"chevron",
|
|
@@ -1875,79 +1965,219 @@ var accordionIconMotionValues = [
|
|
|
1875
1965
|
"swap"
|
|
1876
1966
|
];
|
|
1877
1967
|
|
|
1878
|
-
// ../theme-core/src/
|
|
1968
|
+
// ../theme-core/src/site-styles/logoBranding.ts
|
|
1879
1969
|
import { z as z15 } from "zod";
|
|
1880
|
-
var
|
|
1970
|
+
var logoTextConfidenceValues = ["low", "medium", "high"];
|
|
1971
|
+
var logoAssetShapeValues = [
|
|
1972
|
+
"none",
|
|
1973
|
+
"horizontal",
|
|
1974
|
+
"square",
|
|
1975
|
+
"portrait",
|
|
1976
|
+
"tall"
|
|
1977
|
+
];
|
|
1978
|
+
var logoKindValues = [
|
|
1979
|
+
"mark",
|
|
1980
|
+
"wordmark",
|
|
1981
|
+
"lockup",
|
|
1982
|
+
"badge",
|
|
1983
|
+
"stacked-wordmark",
|
|
1984
|
+
"unknown"
|
|
1985
|
+
];
|
|
1986
|
+
var logoDensityValues = ["simple", "detailed", "unknown"];
|
|
1987
|
+
var logoContainsTextSchema = z15.discriminatedUnion("kind", [
|
|
1988
|
+
z15.object({
|
|
1989
|
+
kind: z15.literal("contains-text"),
|
|
1990
|
+
confidence: z15.enum(logoTextConfidenceValues),
|
|
1991
|
+
text: z15.string().trim().min(1).max(200).optional()
|
|
1992
|
+
}),
|
|
1993
|
+
z15.object({
|
|
1994
|
+
kind: z15.literal("no-text"),
|
|
1995
|
+
confidence: z15.enum(logoTextConfidenceValues)
|
|
1996
|
+
}),
|
|
1997
|
+
z15.object({
|
|
1998
|
+
kind: z15.literal("unknown"),
|
|
1999
|
+
reason: z15.enum([
|
|
2000
|
+
"analysis-unavailable",
|
|
2001
|
+
"unsupported-file",
|
|
2002
|
+
"low-confidence"
|
|
2003
|
+
])
|
|
2004
|
+
})
|
|
2005
|
+
]);
|
|
2006
|
+
var logoAnalysisSourceSchema = z15.discriminatedUnion("kind", [
|
|
2007
|
+
z15.object({ kind: z15.literal("none") }),
|
|
2008
|
+
z15.object({
|
|
2009
|
+
kind: z15.literal("deterministic"),
|
|
2010
|
+
reason: z15.enum(["dimensions", "fallback"])
|
|
2011
|
+
}),
|
|
2012
|
+
z15.object({
|
|
2013
|
+
kind: z15.literal("llm"),
|
|
2014
|
+
model: z15.literal("gpt-5.4-mini"),
|
|
2015
|
+
analyzedAt: z15.string().trim().min(1).max(80).optional()
|
|
2016
|
+
}),
|
|
2017
|
+
z15.object({ kind: z15.literal("manual-override") })
|
|
2018
|
+
]);
|
|
2019
|
+
var logoFactsSchema = z15.object({
|
|
2020
|
+
shape: z15.enum(logoAssetShapeValues),
|
|
2021
|
+
containsText: logoContainsTextSchema,
|
|
2022
|
+
kind: z15.enum(logoKindValues),
|
|
2023
|
+
density: z15.enum(logoDensityValues),
|
|
2024
|
+
source: logoAnalysisSourceSchema
|
|
2025
|
+
});
|
|
2026
|
+
var brandDisplayModeValues = [
|
|
2027
|
+
"auto",
|
|
2028
|
+
"logo-only",
|
|
2029
|
+
"logo-plus-title",
|
|
2030
|
+
"title-only"
|
|
2031
|
+
];
|
|
2032
|
+
var logoAccommodationPatternValues = [
|
|
2033
|
+
"title-only",
|
|
2034
|
+
"inline-logo-only",
|
|
2035
|
+
"inline-wordmark",
|
|
2036
|
+
"inline-mark-with-title",
|
|
2037
|
+
"logo-plate",
|
|
2038
|
+
"centered-badge",
|
|
2039
|
+
"popout-badge",
|
|
2040
|
+
"centered-masthead",
|
|
2041
|
+
"hero-badge"
|
|
2042
|
+
];
|
|
2043
|
+
var logoSizePolicyValues = [
|
|
2044
|
+
"auto",
|
|
2045
|
+
"compact",
|
|
2046
|
+
"standard",
|
|
2047
|
+
"generous",
|
|
2048
|
+
"display"
|
|
2049
|
+
];
|
|
2050
|
+
|
|
2051
|
+
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
2052
|
+
var themeV2RuntimeStyleFieldNames = [
|
|
2053
|
+
"_frameStyles",
|
|
2054
|
+
"_sectionStyles",
|
|
2055
|
+
"_containerStyles",
|
|
2056
|
+
"_cardStyles",
|
|
2057
|
+
// styleGroup is legacy runtime transition wiring rather than a nested
|
|
2058
|
+
// override object, but normal editors should still never see it directly.
|
|
2059
|
+
"styleGroup"
|
|
2060
|
+
];
|
|
2061
|
+
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
2062
|
+
"_contentCardStyles",
|
|
2063
|
+
"_heroLayoutStyles",
|
|
2064
|
+
"_textCardStyles"
|
|
2065
|
+
];
|
|
2066
|
+
var themeV2NormalEditorRawStyleFieldNames = [
|
|
2067
|
+
...themeV2RuntimeStyleFieldNames,
|
|
2068
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
2069
|
+
];
|
|
2070
|
+
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
2071
|
+
themeV2NormalEditorRawStyleFieldNames
|
|
2072
|
+
);
|
|
2073
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
2074
|
+
...themeV2RuntimeStyleFieldNames,
|
|
2075
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
2076
|
+
];
|
|
2077
|
+
var pageDesignEditorBackgroundOverrideOwner = "page-design-editor";
|
|
2078
|
+
|
|
2079
|
+
// ../theme-core/src/utils/tokenOrColor.ts
|
|
2080
|
+
import { z as z16 } from "zod";
|
|
2081
|
+
|
|
2082
|
+
// ../theme-core/src/utils/colorStyles.ts
|
|
2083
|
+
var COLOR_VAR_PREFIX = "--tb-";
|
|
2084
|
+
function parseToken(source) {
|
|
2085
|
+
const parts = parseColorTokenParts(source);
|
|
2086
|
+
if (parts.kind === "raw") {
|
|
2087
|
+
return { token: source, raw: parts.value };
|
|
2088
|
+
}
|
|
2089
|
+
if (parts.kind === "invalid") {
|
|
2090
|
+
return { token: source };
|
|
2091
|
+
}
|
|
2092
|
+
return {
|
|
2093
|
+
token: parts.token,
|
|
2094
|
+
alpha: parts.opacityPercent === null ? void 0 : parts.opacityPercent / 100
|
|
2095
|
+
};
|
|
2096
|
+
}
|
|
2097
|
+
function rgbColorValue(token) {
|
|
2098
|
+
const { token: baseToken, alpha, raw } = parseToken(token);
|
|
2099
|
+
if (raw) {
|
|
2100
|
+
return raw;
|
|
2101
|
+
}
|
|
2102
|
+
const cssVar = `${COLOR_VAR_PREFIX}${baseToken}`;
|
|
2103
|
+
if (alpha === void 0) {
|
|
2104
|
+
return `rgb(var(${cssVar}))`;
|
|
2105
|
+
}
|
|
2106
|
+
return `rgba(var(${cssVar}), ${alpha})`;
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2109
|
+
// ../theme-core/src/utils/tokenOrColor.ts
|
|
2110
|
+
var tokenOrCssColorValueSchema = z16.string();
|
|
1881
2111
|
|
|
1882
2112
|
// ../theme-core/src/schema.ts
|
|
1883
|
-
var axesSchema =
|
|
1884
|
-
tone:
|
|
1885
|
-
energy:
|
|
1886
|
-
density:
|
|
1887
|
-
mediaBias:
|
|
1888
|
-
conversionBias:
|
|
1889
|
-
motion:
|
|
2113
|
+
var axesSchema = z17.object({
|
|
2114
|
+
tone: z17.enum(["minimal", "classic", "bold"]),
|
|
2115
|
+
energy: z17.enum(["calm", "vibrant"]),
|
|
2116
|
+
density: z17.enum(["airy", "regular", "compact"]),
|
|
2117
|
+
mediaBias: z17.enum(["text", "media", "mixed"]),
|
|
2118
|
+
conversionBias: z17.enum(["low", "med", "high"]),
|
|
2119
|
+
motion: z17.enum(["subtle", "standard", "expressive"])
|
|
1890
2120
|
});
|
|
1891
|
-
var colourHexString =
|
|
1892
|
-
var paletteColorSchema =
|
|
1893
|
-
name:
|
|
2121
|
+
var colourHexString = z17.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
2122
|
+
var paletteColorSchema = z17.object({
|
|
2123
|
+
name: z17.string().min(1),
|
|
1894
2124
|
hex: colourHexString
|
|
1895
2125
|
});
|
|
1896
|
-
var paletteMetaSchema =
|
|
1897
|
-
mode:
|
|
2126
|
+
var paletteMetaSchema = z17.object({
|
|
2127
|
+
mode: z17.enum(["light", "dark"])
|
|
1898
2128
|
});
|
|
1899
|
-
var paletteSchema =
|
|
1900
|
-
colors:
|
|
2129
|
+
var paletteSchema = z17.object({
|
|
2130
|
+
colors: z17.array(paletteColorSchema),
|
|
1901
2131
|
meta: paletteMetaSchema
|
|
1902
2132
|
});
|
|
1903
|
-
var typographyStyleSchema =
|
|
1904
|
-
family:
|
|
1905
|
-
weight:
|
|
1906
|
-
letterSpacing:
|
|
1907
|
-
lineHeight:
|
|
2133
|
+
var typographyStyleSchema = z17.object({
|
|
2134
|
+
family: z17.string().min(1),
|
|
2135
|
+
weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]),
|
|
2136
|
+
letterSpacing: z17.enum(["tight", "normal", "loose"]),
|
|
2137
|
+
lineHeight: z17.enum(["normal", "relaxed", "loose"])
|
|
1908
2138
|
});
|
|
1909
2139
|
var bodyTypographyStyleSchema = typographyStyleSchema.extend({
|
|
1910
|
-
size:
|
|
2140
|
+
size: z17.enum(["md", "lg", "xl"])
|
|
1911
2141
|
});
|
|
1912
|
-
var headingSizeSchema =
|
|
1913
|
-
var headingTypographyOverridesSchema =
|
|
1914
|
-
weight:
|
|
1915
|
-
letterSpacing:
|
|
2142
|
+
var headingSizeSchema = z17.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
|
|
2143
|
+
var headingTypographyOverridesSchema = z17.object({
|
|
2144
|
+
weight: z17.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
|
|
2145
|
+
letterSpacing: z17.enum(["tight", "normal", "loose"]).nullable().optional(),
|
|
1916
2146
|
size: headingSizeSchema.nullable().optional(),
|
|
1917
|
-
lineHeight:
|
|
1918
|
-
italic:
|
|
2147
|
+
lineHeight: z17.enum(["normal", "relaxed", "loose"]).nullable().optional(),
|
|
2148
|
+
italic: z17.boolean().nullable().optional(),
|
|
1919
2149
|
colorToken: themeColorTokenSchema.nullable().optional()
|
|
1920
2150
|
});
|
|
1921
2151
|
var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
1922
|
-
case:
|
|
1923
|
-
italic:
|
|
2152
|
+
case: z17.enum(["uppercase", "normal", "smallCaps"]).nullable(),
|
|
2153
|
+
italic: z17.boolean().nullable(),
|
|
1924
2154
|
colorToken: themeColorTokenSchema.nullable().optional()
|
|
1925
2155
|
});
|
|
1926
|
-
var proseLinkUnderlineStyleSchema =
|
|
1927
|
-
var proseLinkUnderlineThicknessSchema =
|
|
2156
|
+
var proseLinkUnderlineStyleSchema = z17.enum(["solid", "dotted", "dashed"]);
|
|
2157
|
+
var proseLinkUnderlineThicknessSchema = z17.enum([
|
|
1928
2158
|
"auto",
|
|
1929
2159
|
"fromFont",
|
|
1930
2160
|
"thin",
|
|
1931
2161
|
"medium",
|
|
1932
2162
|
"thick"
|
|
1933
2163
|
]);
|
|
1934
|
-
var proseLinkUnderlineOffsetSchema =
|
|
2164
|
+
var proseLinkUnderlineOffsetSchema = z17.enum([
|
|
1935
2165
|
"auto",
|
|
1936
2166
|
"tight",
|
|
1937
2167
|
"normal",
|
|
1938
2168
|
"loose"
|
|
1939
2169
|
]);
|
|
1940
|
-
var proseLinkStyleSchema =
|
|
2170
|
+
var proseLinkStyleSchema = z17.object({
|
|
1941
2171
|
colorToken: themeColorTokenSchema.optional(),
|
|
1942
2172
|
hoverColorToken: themeColorTokenSchema.optional(),
|
|
1943
|
-
underline:
|
|
2173
|
+
underline: z17.boolean().optional(),
|
|
1944
2174
|
decorationColorToken: themeColorTokenSchema.optional(),
|
|
1945
2175
|
hoverDecorationColorToken: themeColorTokenSchema.optional(),
|
|
1946
2176
|
underlineStyle: proseLinkUnderlineStyleSchema.optional(),
|
|
1947
2177
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
1948
2178
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
1949
2179
|
});
|
|
1950
|
-
var semanticSpacingSchema =
|
|
2180
|
+
var semanticSpacingSchema = z17.enum([
|
|
1951
2181
|
"none",
|
|
1952
2182
|
"compact",
|
|
1953
2183
|
"cozy",
|
|
@@ -1955,91 +2185,108 @@ var semanticSpacingSchema = z16.enum([
|
|
|
1955
2185
|
"comfortable",
|
|
1956
2186
|
"spacious"
|
|
1957
2187
|
]);
|
|
1958
|
-
var boxRoundedSchema =
|
|
1959
|
-
var boxBackgroundOverlaySchema =
|
|
1960
|
-
type:
|
|
2188
|
+
var boxRoundedSchema = z17.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
2189
|
+
var boxBackgroundOverlaySchema = z17.object({
|
|
2190
|
+
type: z17.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
1961
2191
|
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
1962
|
-
gradient:
|
|
1963
|
-
opacity:
|
|
2192
|
+
gradient: z17.string().nullable().optional(),
|
|
2193
|
+
opacity: z17.number().min(0).max(1).nullable().optional()
|
|
1964
2194
|
});
|
|
1965
|
-
var boxBackgroundSchema =
|
|
1966
|
-
type:
|
|
2195
|
+
var boxBackgroundSchema = z17.object({
|
|
2196
|
+
type: z17.enum(["color", "gradient", "image"]).optional(),
|
|
2197
|
+
contentOwner: z17.literal(pageDesignEditorBackgroundOverrideOwner).optional(),
|
|
1967
2198
|
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
1968
|
-
gradient:
|
|
2199
|
+
gradient: z17.string().nullable().optional(),
|
|
2200
|
+
gradientPresetId: z17.string().min(1).nullable().optional(),
|
|
1969
2201
|
image: mediaSchema.nullable().optional(),
|
|
1970
|
-
objectFit:
|
|
1971
|
-
scale:
|
|
1972
|
-
position:
|
|
1973
|
-
opacity:
|
|
1974
|
-
motion:
|
|
2202
|
+
objectFit: z17.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
|
|
2203
|
+
scale: z17.string().nullable().optional(),
|
|
2204
|
+
position: z17.string().nullable().optional(),
|
|
2205
|
+
opacity: z17.number().min(0).max(1).nullable().optional(),
|
|
2206
|
+
motion: z17.enum(["static", "fixed-frame"]).nullable().optional(),
|
|
1975
2207
|
overlay: boxBackgroundOverlaySchema.nullable().optional(),
|
|
1976
2208
|
textColor: tokenOrCssColorValueSchema.nullable().optional(),
|
|
1977
2209
|
headingColor: tokenOrCssColorValueSchema.nullable().optional()
|
|
1978
2210
|
});
|
|
1979
|
-
var noHeadingDecorationSchema =
|
|
1980
|
-
family:
|
|
1981
|
-
placement: z16.literal("none")
|
|
2211
|
+
var noHeadingDecorationSchema = z17.object({
|
|
2212
|
+
family: z17.literal("none")
|
|
1982
2213
|
});
|
|
1983
|
-
var visibleHeadingDecorationSchema =
|
|
1984
|
-
family:
|
|
1985
|
-
|
|
1986
|
-
colorToken: z16.enum(headingDecorationColorTokenValues).optional()
|
|
2214
|
+
var visibleHeadingDecorationSchema = z17.object({
|
|
2215
|
+
family: z17.enum(visibleHeadingDecorationFamilyValues),
|
|
2216
|
+
colorToken: z17.enum(headingDecorationColorTokenValues).optional()
|
|
1987
2217
|
});
|
|
1988
|
-
var headingDecorationSchema =
|
|
2218
|
+
var headingDecorationSchema = z17.union([
|
|
1989
2219
|
noHeadingDecorationSchema,
|
|
1990
2220
|
visibleHeadingDecorationSchema
|
|
1991
2221
|
]);
|
|
1992
|
-
var
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
2222
|
+
var headingDecorationOverrideSchema = z17.union([
|
|
2223
|
+
z17.enum(headingDecorationOverrideValues),
|
|
2224
|
+
// Legacy authoring value from the earlier model. In the render-time model
|
|
2225
|
+
// "on" cannot force a fragment into a block, so it is equivalent to default.
|
|
2226
|
+
z17.literal("on").transform(() => "site-default")
|
|
2227
|
+
]);
|
|
2228
|
+
var accordionIconTreatmentSchema = z17.object({
|
|
2229
|
+
iconSet: z17.enum(accordionIconSetValues),
|
|
2230
|
+
colorToken: z17.enum(accordionIconColorTokenValues),
|
|
2231
|
+
openColorToken: z17.enum(accordionIconColorTokenValues).optional(),
|
|
2232
|
+
motion: z17.enum(accordionIconMotionValues)
|
|
1997
2233
|
});
|
|
1998
|
-
var sectionStylesOverrideSchema =
|
|
2234
|
+
var sectionStylesOverrideSchema = z17.object({
|
|
1999
2235
|
background: boxBackgroundSchema.nullable().optional(),
|
|
2000
2236
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
2001
|
-
minHeight:
|
|
2002
|
-
tileTreatment:
|
|
2003
|
-
eventListTreatment:
|
|
2004
|
-
eyebrowTreatment:
|
|
2237
|
+
minHeight: z17.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
2238
|
+
tileTreatment: z17.enum(tileTreatmentValues).nullable().optional(),
|
|
2239
|
+
eventListTreatment: z17.enum(eventListTreatmentValues).nullable().optional(),
|
|
2240
|
+
eyebrowTreatment: z17.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
2005
2241
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
2006
|
-
// Author-level
|
|
2007
|
-
//
|
|
2008
|
-
|
|
2242
|
+
// Author-level opt-out consumed by render-time theme projection. Persisted
|
|
2243
|
+
// content may also carry legacy `headingDecoration` / `on` values; those are
|
|
2244
|
+
// tolerated at the schema boundary but the renderer treats the compiled theme
|
|
2245
|
+
// as the only source of the resolved signature.
|
|
2246
|
+
headingDecorationOverride: headingDecorationOverrideSchema.nullable().optional(),
|
|
2009
2247
|
accordionIconTreatment: accordionIconTreatmentSchema.nullable().optional()
|
|
2010
2248
|
});
|
|
2011
|
-
var containerStylesOverrideSchema =
|
|
2249
|
+
var containerStylesOverrideSchema = z17.object({
|
|
2012
2250
|
background: boxBackgroundSchema.nullable().optional(),
|
|
2013
2251
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
2014
|
-
raised:
|
|
2252
|
+
raised: z17.boolean().nullable().optional(),
|
|
2015
2253
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
2016
|
-
fullWidth:
|
|
2254
|
+
fullWidth: z17.boolean().nullable().optional()
|
|
2017
2255
|
});
|
|
2018
|
-
var cardBorderOverrideSchema =
|
|
2019
|
-
enabled:
|
|
2020
|
-
width:
|
|
2256
|
+
var cardBorderOverrideSchema = z17.object({
|
|
2257
|
+
enabled: z17.boolean().nullable().optional(),
|
|
2258
|
+
width: z17.enum(["none", "1", "2", "3"]).nullable().optional(),
|
|
2021
2259
|
colorToken: themeColorTokenSchema.nullable().optional()
|
|
2022
2260
|
});
|
|
2023
|
-
var cardStylesOverrideSchema =
|
|
2261
|
+
var cardStylesOverrideSchema = z17.object({
|
|
2024
2262
|
background: boxBackgroundSchema.nullable().optional(),
|
|
2025
2263
|
border: cardBorderOverrideSchema.nullable().optional(),
|
|
2026
2264
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
2027
|
-
raised:
|
|
2265
|
+
raised: z17.boolean().nullable().optional(),
|
|
2028
2266
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
2029
|
-
treatment:
|
|
2267
|
+
treatment: z17.enum([
|
|
2268
|
+
"accent-quote",
|
|
2269
|
+
"editorial-rule",
|
|
2270
|
+
"soft-panel",
|
|
2271
|
+
"editorial-serif-quote",
|
|
2272
|
+
"editorial-open"
|
|
2273
|
+
]).nullable().optional(),
|
|
2274
|
+
// Which site-style card variant the card adopts (emits a `.card-{id}` class).
|
|
2275
|
+
// 'none' is boxless. Driven by the block look via testimonialCardTreatment.
|
|
2276
|
+
cardVariant: boxStylesCardVariantSchema.nullable().optional()
|
|
2030
2277
|
});
|
|
2031
|
-
var blockStyleOverridesSchema =
|
|
2278
|
+
var blockStyleOverridesSchema = z17.object({
|
|
2032
2279
|
sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
|
|
2033
2280
|
containerStyles: containerStylesOverrideSchema.nullable().optional(),
|
|
2034
2281
|
cardStyles: cardStylesOverrideSchema.nullable().optional()
|
|
2035
2282
|
});
|
|
2036
|
-
var blockThemeOverrideSchema =
|
|
2037
|
-
typography:
|
|
2283
|
+
var blockThemeOverrideSchema = z17.object({
|
|
2284
|
+
typography: z17.object({
|
|
2038
2285
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
2039
2286
|
}).optional(),
|
|
2040
2287
|
styles: blockStyleOverridesSchema.optional()
|
|
2041
2288
|
});
|
|
2042
|
-
var typographyScaleSchema =
|
|
2289
|
+
var typographyScaleSchema = z17.enum([
|
|
2043
2290
|
// New intuitive names
|
|
2044
2291
|
"compact",
|
|
2045
2292
|
// ratio 1.2 (was minorThird)
|
|
@@ -2052,9 +2299,9 @@ var typographyScaleSchema = z16.enum([
|
|
|
2052
2299
|
"majorThird",
|
|
2053
2300
|
"perfectFourth"
|
|
2054
2301
|
]);
|
|
2055
|
-
var typographySchema =
|
|
2302
|
+
var typographySchema = z17.object({
|
|
2056
2303
|
body: bodyTypographyStyleSchema,
|
|
2057
|
-
headings:
|
|
2304
|
+
headings: z17.object({
|
|
2058
2305
|
default: headingTypographyStyleSchema,
|
|
2059
2306
|
h1: headingTypographyOverridesSchema,
|
|
2060
2307
|
h2: headingTypographyOverridesSchema,
|
|
@@ -2067,41 +2314,41 @@ var typographySchema = z16.object({
|
|
|
2067
2314
|
scale: typographyScaleSchema,
|
|
2068
2315
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
2069
2316
|
});
|
|
2070
|
-
var spaceSchema =
|
|
2071
|
-
var corners =
|
|
2072
|
-
var shadow =
|
|
2073
|
-
elevation:
|
|
2074
|
-
softness:
|
|
2075
|
-
position:
|
|
2317
|
+
var spaceSchema = z17.enum(["comfortable", "standard", "dense"]);
|
|
2318
|
+
var corners = z17.enum(["square", "soft", "rounded", "pill"]);
|
|
2319
|
+
var shadow = z17.object({
|
|
2320
|
+
elevation: z17.enum(["none", "low", "medium", "high"]),
|
|
2321
|
+
softness: z17.enum(["crisp", "soft", "hard"]).nullable(),
|
|
2322
|
+
position: z17.enum(["bottom", "bottom-right"]).default("bottom")
|
|
2076
2323
|
});
|
|
2077
|
-
var border =
|
|
2078
|
-
width:
|
|
2079
|
-
style:
|
|
2324
|
+
var border = z17.object({
|
|
2325
|
+
width: z17.enum(["none", "hairline", "thin", "thick"]),
|
|
2326
|
+
style: z17.enum(["solid", "dashed"])
|
|
2080
2327
|
});
|
|
2081
|
-
var motion =
|
|
2082
|
-
level:
|
|
2083
|
-
easing:
|
|
2328
|
+
var motion = z17.object({
|
|
2329
|
+
level: z17.enum(["off", "low", "medium", "high"]),
|
|
2330
|
+
easing: z17.enum(["standard", "snappy", "gentle"]).nullable()
|
|
2084
2331
|
});
|
|
2085
|
-
var buttonStyle =
|
|
2332
|
+
var buttonStyle = z17.object({
|
|
2086
2333
|
shape: corners
|
|
2087
2334
|
// Used for --radius-control CSS variable
|
|
2088
2335
|
});
|
|
2089
|
-
var cardStyle =
|
|
2090
|
-
elevation:
|
|
2091
|
-
border:
|
|
2336
|
+
var cardStyle = z17.object({
|
|
2337
|
+
elevation: z17.enum(["none", "low", "medium", "high"]),
|
|
2338
|
+
border: z17.enum(["none", "subtle", "defined"]),
|
|
2092
2339
|
shape: corners,
|
|
2093
|
-
headerStyle:
|
|
2094
|
-
mediaTreatment:
|
|
2340
|
+
headerStyle: z17.enum(["plain", "accentBar", "subtleBg"]).nullable(),
|
|
2341
|
+
mediaTreatment: z17.enum(["square", "rounded", "bleed"]).nullable()
|
|
2095
2342
|
});
|
|
2096
|
-
var inputStyle =
|
|
2343
|
+
var inputStyle = z17.object({
|
|
2097
2344
|
shape: corners,
|
|
2098
|
-
border:
|
|
2099
|
-
focus:
|
|
2100
|
-
label:
|
|
2345
|
+
border: z17.enum(["subtle", "defined", "underline"]),
|
|
2346
|
+
focus: z17.enum(["glow", "ring", "underline"]),
|
|
2347
|
+
label: z17.enum(["inside", "above"])
|
|
2101
2348
|
});
|
|
2102
|
-
var headerVariant =
|
|
2103
|
-
var headerPositioning =
|
|
2104
|
-
var headerNavStyle =
|
|
2349
|
+
var headerVariant = z17.enum(["classic", "centered", "transparent", "floating"]);
|
|
2350
|
+
var headerPositioning = z17.enum(["static", "sticky", "fixed"]);
|
|
2351
|
+
var headerNavStyle = z17.enum([
|
|
2105
2352
|
"minimal",
|
|
2106
2353
|
"underline",
|
|
2107
2354
|
"underline-grow",
|
|
@@ -2110,54 +2357,57 @@ var headerNavStyle = z16.enum([
|
|
|
2110
2357
|
"frosted",
|
|
2111
2358
|
"solid"
|
|
2112
2359
|
]);
|
|
2113
|
-
var navFontWeight =
|
|
2114
|
-
var headerMaxWidth =
|
|
2115
|
-
var headerContainerSchema =
|
|
2116
|
-
rounded:
|
|
2117
|
-
border:
|
|
2118
|
-
shadow:
|
|
2119
|
-
padding:
|
|
2120
|
-
tint:
|
|
2121
|
-
opacity:
|
|
2360
|
+
var navFontWeight = z17.enum(["regular", "medium", "semibold", "bold"]);
|
|
2361
|
+
var headerMaxWidth = z17.enum(["container", "full"]);
|
|
2362
|
+
var headerContainerSchema = z17.object({
|
|
2363
|
+
rounded: z17.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
|
|
2364
|
+
border: z17.boolean().default(true),
|
|
2365
|
+
shadow: z17.boolean().default(true),
|
|
2366
|
+
padding: z17.enum(["sm", "md", "lg"]).default("md"),
|
|
2367
|
+
tint: z17.string().nullable().optional(),
|
|
2368
|
+
opacity: z17.number().min(0).max(1).default(0.12)
|
|
2122
2369
|
}).optional();
|
|
2123
2370
|
var headerBorderSchema = componentBorderSchema.extend({
|
|
2124
|
-
position:
|
|
2371
|
+
position: z17.enum(["bottom", "top", "both", "none"]).default("bottom")
|
|
2125
2372
|
}).optional();
|
|
2126
|
-
var logoStyleSchema =
|
|
2127
|
-
fontFamily:
|
|
2128
|
-
letterSpacing:
|
|
2129
|
-
gradient:
|
|
2373
|
+
var logoStyleSchema = z17.object({
|
|
2374
|
+
fontFamily: z17.enum(["heading", "body"]).default("heading"),
|
|
2375
|
+
letterSpacing: z17.enum(["normal", "wide", "wider", "widest"]).default("normal"),
|
|
2376
|
+
gradient: z17.boolean().default(false),
|
|
2377
|
+
brandDisplay: z17.enum(brandDisplayModeValues).optional(),
|
|
2378
|
+
size: z17.enum(logoSizePolicyValues).optional(),
|
|
2379
|
+
accommodation: z17.enum(logoAccommodationPatternValues).optional()
|
|
2130
2380
|
}).optional();
|
|
2131
|
-
var headerLogoTextSchema =
|
|
2132
|
-
mobileWrapLines:
|
|
2133
|
-
mobileMaxWidth:
|
|
2134
|
-
hideOnShrink:
|
|
2381
|
+
var headerLogoTextSchema = z17.object({
|
|
2382
|
+
mobileWrapLines: z17.union([z17.literal(1), z17.literal(2)]).optional(),
|
|
2383
|
+
mobileMaxWidth: z17.enum(["xs", "sm", "md"]).optional(),
|
|
2384
|
+
hideOnShrink: z17.boolean().optional()
|
|
2135
2385
|
}).optional();
|
|
2136
|
-
var navEffectsSchema =
|
|
2137
|
-
underlineGradient:
|
|
2138
|
-
glow:
|
|
2139
|
-
glowColor:
|
|
2140
|
-
neumorphic:
|
|
2386
|
+
var navEffectsSchema = z17.object({
|
|
2387
|
+
underlineGradient: z17.boolean().default(false),
|
|
2388
|
+
glow: z17.boolean().default(false),
|
|
2389
|
+
glowColor: z17.string().optional(),
|
|
2390
|
+
neumorphic: z17.boolean().default(false)
|
|
2141
2391
|
}).optional();
|
|
2142
|
-
var dropdownStyleSchema =
|
|
2392
|
+
var dropdownStyleSchema = z17.object({
|
|
2143
2393
|
// Container styling
|
|
2144
2394
|
background: themeColorTokenSchema.default("surface"),
|
|
2145
2395
|
textColor: themeColorTokenSchema.default("text"),
|
|
2146
2396
|
borderColor: themeColorTokenSchema.nullable().default("border"),
|
|
2147
|
-
shadow:
|
|
2148
|
-
borderRadius:
|
|
2397
|
+
shadow: z17.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
2398
|
+
borderRadius: z17.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
2149
2399
|
// Link hover states (explicit control)
|
|
2150
2400
|
hoverBackground: themeColorTokenSchema.nullable().optional(),
|
|
2151
2401
|
hoverTextColor: themeColorTokenSchema.nullable().optional(),
|
|
2152
2402
|
// Typography
|
|
2153
|
-
textTransform:
|
|
2154
|
-
letterSpacing:
|
|
2155
|
-
fontWeight:
|
|
2403
|
+
textTransform: z17.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
2404
|
+
letterSpacing: z17.enum(["normal", "wide", "wider"]).default("normal"),
|
|
2405
|
+
fontWeight: z17.enum(["regular", "medium", "semibold", "bold"]).optional(),
|
|
2156
2406
|
// optional = inherit from navWeight
|
|
2157
|
-
textSize:
|
|
2407
|
+
textSize: z17.enum(["xs", "sm", "base", "lg"]).optional()
|
|
2158
2408
|
// optional = no override (browser default)
|
|
2159
2409
|
}).optional();
|
|
2160
|
-
var headerCtaGapSchema =
|
|
2410
|
+
var headerCtaGapSchema = z17.enum([
|
|
2161
2411
|
"none",
|
|
2162
2412
|
"tight",
|
|
2163
2413
|
"compact",
|
|
@@ -2165,7 +2415,7 @@ var headerCtaGapSchema = z16.enum([
|
|
|
2165
2415
|
"relaxed",
|
|
2166
2416
|
"spacious"
|
|
2167
2417
|
]);
|
|
2168
|
-
var headerCtaTreatmentSchema =
|
|
2418
|
+
var headerCtaTreatmentSchema = z17.enum([
|
|
2169
2419
|
"default",
|
|
2170
2420
|
"primary",
|
|
2171
2421
|
"secondary",
|
|
@@ -2173,22 +2423,22 @@ var headerCtaTreatmentSchema = z16.enum([
|
|
|
2173
2423
|
"outline",
|
|
2174
2424
|
"ghost"
|
|
2175
2425
|
]);
|
|
2176
|
-
var navContainerSchema =
|
|
2177
|
-
type:
|
|
2178
|
-
tint:
|
|
2179
|
-
opacity:
|
|
2426
|
+
var navContainerSchema = z17.object({
|
|
2427
|
+
type: z17.enum(["none", "pill", "glass"]).default("none"),
|
|
2428
|
+
tint: z17.string().nullable().optional(),
|
|
2429
|
+
opacity: z17.number().min(0).max(1).default(0.15)
|
|
2180
2430
|
}).default({ type: "none", tint: null, opacity: 0.15 });
|
|
2181
|
-
var headerBackgroundSchema =
|
|
2182
|
-
type:
|
|
2431
|
+
var headerBackgroundSchema = z17.object({
|
|
2432
|
+
type: z17.enum(["color", "gradient", "image"]),
|
|
2183
2433
|
color: tokenOrCssColorValueSchema.nullable().optional(),
|
|
2184
2434
|
gradient: gradientConfigSchema.nullable().optional(),
|
|
2185
2435
|
image: mediaSchema.nullable().optional(),
|
|
2186
2436
|
textColor: tokenOrCssColorValueSchema.nullable().optional()
|
|
2187
2437
|
});
|
|
2188
|
-
var headerSchema =
|
|
2438
|
+
var headerSchema = z17.object({
|
|
2189
2439
|
variant: headerVariant,
|
|
2190
2440
|
positioning: headerPositioning,
|
|
2191
|
-
shrinkOnScroll:
|
|
2441
|
+
shrinkOnScroll: z17.boolean(),
|
|
2192
2442
|
maxWidth: headerMaxWidth,
|
|
2193
2443
|
logoOverride: mediaSchema.nullable().optional(),
|
|
2194
2444
|
background: headerBackgroundSchema.default({
|
|
@@ -2218,16 +2468,16 @@ var headerSchema = z16.object({
|
|
|
2218
2468
|
// Optional theme-level CTA variant for header/nav CTA buttons.
|
|
2219
2469
|
// Internal runtime bridge for the block renderer; prefer ctaTreatment in
|
|
2220
2470
|
// authored Theme V2 concepts.
|
|
2221
|
-
ctaVariant:
|
|
2471
|
+
ctaVariant: z17.string().min(1).optional(),
|
|
2222
2472
|
// Dropdown menu styling (nav dropdowns and mobile drawer)
|
|
2223
2473
|
dropdownStyle: dropdownStyleSchema
|
|
2224
2474
|
});
|
|
2225
|
-
var footerVariant =
|
|
2226
|
-
var footerMaxWidth =
|
|
2227
|
-
var footerMode =
|
|
2228
|
-
var footerNavLayoutMode =
|
|
2229
|
-
var footerNavLayoutAlign =
|
|
2230
|
-
var footerSpacing =
|
|
2475
|
+
var footerVariant = z17.enum(["simple", "columns", "split"]);
|
|
2476
|
+
var footerMaxWidth = z17.enum(["container", "full"]);
|
|
2477
|
+
var footerMode = z17.enum(["default", "blocks", "default+blocks", "none"]);
|
|
2478
|
+
var footerNavLayoutMode = z17.enum(["stack", "inline", "inline-wrap"]);
|
|
2479
|
+
var footerNavLayoutAlign = z17.enum(["start", "center", "end", "space-between"]);
|
|
2480
|
+
var footerSpacing = z17.enum([
|
|
2231
2481
|
"none",
|
|
2232
2482
|
"tight",
|
|
2233
2483
|
"compact",
|
|
@@ -2235,44 +2485,44 @@ var footerSpacing = z16.enum([
|
|
|
2235
2485
|
"relaxed",
|
|
2236
2486
|
"spacious"
|
|
2237
2487
|
]);
|
|
2238
|
-
var footerLogoPlacement =
|
|
2239
|
-
var footerLogoSize =
|
|
2240
|
-
var footerLogoMaxHeight =
|
|
2241
|
-
var footerBottomTextLinkStyleSchema =
|
|
2488
|
+
var footerLogoPlacement = z17.enum(["left", "right", "above", "below"]);
|
|
2489
|
+
var footerLogoSize = z17.enum(["sm", "md", "lg", "xl"]);
|
|
2490
|
+
var footerLogoMaxHeight = z17.enum(["sm", "md", "lg", "xl"]);
|
|
2491
|
+
var footerBottomTextLinkStyleSchema = z17.object({
|
|
2242
2492
|
colorToken: themeColorTokenSchema.optional(),
|
|
2243
2493
|
hoverColorToken: themeColorTokenSchema.nullable().optional(),
|
|
2244
2494
|
decorationColorToken: themeColorTokenSchema.nullable().optional(),
|
|
2245
|
-
underline:
|
|
2495
|
+
underline: z17.boolean().optional()
|
|
2246
2496
|
});
|
|
2247
|
-
var footerBottomBarSchema =
|
|
2248
|
-
enabled:
|
|
2249
|
-
fullBleed:
|
|
2497
|
+
var footerBottomBarSchema = z17.object({
|
|
2498
|
+
enabled: z17.boolean().optional(),
|
|
2499
|
+
fullBleed: z17.boolean().optional(),
|
|
2250
2500
|
background: headerBackgroundSchema.optional(),
|
|
2251
2501
|
textColor: themeColorTokenSchema.nullable().optional(),
|
|
2252
|
-
textAlign:
|
|
2502
|
+
textAlign: z17.enum(["left", "center", "right"]).optional(),
|
|
2253
2503
|
paddingY: footerSpacing.optional(),
|
|
2254
2504
|
paddingX: footerSpacing.optional(),
|
|
2255
|
-
borderTop:
|
|
2505
|
+
borderTop: z17.object({
|
|
2256
2506
|
colorToken: themeColorTokenSchema.nullable().optional(),
|
|
2257
|
-
width:
|
|
2507
|
+
width: z17.enum(["none", "thin", "medium", "thick"]).optional()
|
|
2258
2508
|
}).optional()
|
|
2259
2509
|
});
|
|
2260
|
-
var footerNavLayoutSchema =
|
|
2510
|
+
var footerNavLayoutSchema = z17.object({
|
|
2261
2511
|
layout: footerNavLayoutMode.optional(),
|
|
2262
2512
|
align: footerNavLayoutAlign.optional(),
|
|
2263
2513
|
gapX: footerSpacing.optional(),
|
|
2264
2514
|
gapY: footerSpacing.optional(),
|
|
2265
|
-
columns:
|
|
2515
|
+
columns: z17.number().int().min(1).max(6).optional()
|
|
2266
2516
|
});
|
|
2267
|
-
var footerLogoSchema =
|
|
2268
|
-
showLogo:
|
|
2269
|
-
showLogoText:
|
|
2517
|
+
var footerLogoSchema = z17.object({
|
|
2518
|
+
showLogo: z17.boolean().default(true),
|
|
2519
|
+
showLogoText: z17.boolean().optional(),
|
|
2270
2520
|
placement: footerLogoPlacement.optional(),
|
|
2271
2521
|
size: footerLogoSize.optional(),
|
|
2272
2522
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
2273
|
-
align:
|
|
2523
|
+
align: z17.enum(["start", "center", "end"]).optional()
|
|
2274
2524
|
});
|
|
2275
|
-
var footerSchema =
|
|
2525
|
+
var footerSchema = z17.object({
|
|
2276
2526
|
/**
|
|
2277
2527
|
* SDK-only footer rendering mode.
|
|
2278
2528
|
*
|
|
@@ -2281,7 +2531,7 @@ var footerSchema = z16.object({
|
|
|
2281
2531
|
mode: footerMode.optional(),
|
|
2282
2532
|
variant: footerVariant,
|
|
2283
2533
|
maxWidth: footerMaxWidth,
|
|
2284
|
-
showLogoText:
|
|
2534
|
+
showLogoText: z17.boolean().optional(),
|
|
2285
2535
|
background: headerBackgroundSchema.default({
|
|
2286
2536
|
type: "color",
|
|
2287
2537
|
color: "surface"
|
|
@@ -2299,20 +2549,20 @@ var footerSchema = z16.object({
|
|
|
2299
2549
|
logo: footerLogoSchema.optional(),
|
|
2300
2550
|
bottomBar: footerBottomBarSchema.optional()
|
|
2301
2551
|
});
|
|
2302
|
-
var containerPaddingPresetSchema =
|
|
2552
|
+
var containerPaddingPresetSchema = z17.enum([
|
|
2303
2553
|
"tight",
|
|
2304
2554
|
"compact",
|
|
2305
2555
|
"default",
|
|
2306
2556
|
"relaxed"
|
|
2307
2557
|
]);
|
|
2308
|
-
var layoutSchema =
|
|
2309
|
-
containerPadding:
|
|
2558
|
+
var layoutSchema = z17.object({
|
|
2559
|
+
containerPadding: z17.object({
|
|
2310
2560
|
mobile: containerPaddingPresetSchema.optional(),
|
|
2311
2561
|
tablet: containerPaddingPresetSchema.optional(),
|
|
2312
2562
|
desktop: containerPaddingPresetSchema.optional()
|
|
2313
2563
|
}).optional()
|
|
2314
2564
|
}).optional();
|
|
2315
|
-
var heroTypographySizeSchema =
|
|
2565
|
+
var heroTypographySizeSchema = z17.enum([
|
|
2316
2566
|
"sm",
|
|
2317
2567
|
"base",
|
|
2318
2568
|
"lg",
|
|
@@ -2324,19 +2574,19 @@ var heroTypographySizeSchema = z16.enum([
|
|
|
2324
2574
|
"6xl",
|
|
2325
2575
|
"editorial"
|
|
2326
2576
|
]);
|
|
2327
|
-
var heroTypographyLineHeightSchema =
|
|
2577
|
+
var heroTypographyLineHeightSchema = z17.enum([
|
|
2328
2578
|
"tight",
|
|
2329
2579
|
"snug",
|
|
2330
2580
|
"normal",
|
|
2331
2581
|
"relaxed"
|
|
2332
2582
|
]);
|
|
2333
|
-
var heroResponsiveTypographySchema =
|
|
2583
|
+
var heroResponsiveTypographySchema = z17.object({
|
|
2334
2584
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
2335
2585
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
2336
2586
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
2337
2587
|
subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
|
|
2338
2588
|
});
|
|
2339
|
-
var heroTypographySchema =
|
|
2589
|
+
var heroTypographySchema = z17.object({
|
|
2340
2590
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
2341
2591
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
2342
2592
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
@@ -2345,31 +2595,38 @@ var heroTypographySchema = z16.object({
|
|
|
2345
2595
|
microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
2346
2596
|
microSubheadlineSize: heroTypographySizeSchema.optional(),
|
|
2347
2597
|
microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
2348
|
-
responsive:
|
|
2598
|
+
responsive: z17.object({
|
|
2349
2599
|
tablet: heroResponsiveTypographySchema.optional(),
|
|
2350
2600
|
mobile: heroResponsiveTypographySchema.optional()
|
|
2351
2601
|
}).optional()
|
|
2352
2602
|
});
|
|
2353
|
-
var heroSchema =
|
|
2603
|
+
var heroSchema = z17.object({
|
|
2354
2604
|
typography: heroTypographySchema.optional()
|
|
2355
2605
|
}).optional();
|
|
2356
|
-
var bodyTextIntroTypographySizeSchema =
|
|
2357
|
-
var bodyTextSchema =
|
|
2358
|
-
intro:
|
|
2606
|
+
var bodyTextIntroTypographySizeSchema = z17.enum(["default", "editorial"]);
|
|
2607
|
+
var bodyTextSchema = z17.object({
|
|
2608
|
+
intro: z17.object({
|
|
2359
2609
|
paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
|
|
2360
2610
|
headingSize: bodyTextIntroTypographySizeSchema.optional()
|
|
2361
2611
|
}).optional()
|
|
2362
2612
|
}).optional();
|
|
2363
|
-
var gradientsSchema =
|
|
2364
|
-
button:
|
|
2365
|
-
hero:
|
|
2366
|
-
background:
|
|
2613
|
+
var gradientsSchema = z17.object({
|
|
2614
|
+
button: z17.string().min(1).nullable().optional(),
|
|
2615
|
+
hero: z17.string().min(1).nullable().optional(),
|
|
2616
|
+
background: z17.string().min(1).nullable().optional()
|
|
2617
|
+
});
|
|
2618
|
+
var testimonialQuoteTreatmentSchema = z17.object({
|
|
2619
|
+
style: z17.enum(["serif-display", "accent-glyph", "none"]),
|
|
2620
|
+
fontFamily: z17.enum(["heading", "body"]).optional(),
|
|
2621
|
+
scale: z17.enum(["sm", "md", "lg", "xl"]).optional(),
|
|
2622
|
+
colorToken: themeColorTokenSchema.optional(),
|
|
2623
|
+
opacity: z17.number().min(0).max(1).optional()
|
|
2367
2624
|
});
|
|
2368
|
-
var themeSchema =
|
|
2369
|
-
name:
|
|
2370
|
-
description:
|
|
2371
|
-
rationale:
|
|
2372
|
-
siteStyleId:
|
|
2625
|
+
var themeSchema = z17.object({
|
|
2626
|
+
name: z17.string().min(1).max(30),
|
|
2627
|
+
description: z17.string().min(1).max(400),
|
|
2628
|
+
rationale: z17.string().min(1).max(400),
|
|
2629
|
+
siteStyleId: z17.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
|
|
2373
2630
|
axes: axesSchema,
|
|
2374
2631
|
palette: paletteSchema,
|
|
2375
2632
|
typography: typographySchema,
|
|
@@ -2390,6 +2647,8 @@ var themeSchema = z16.object({
|
|
|
2390
2647
|
// Card variant system (optional for backwards compatibility)
|
|
2391
2648
|
accordions: accordionSystemSchema.optional(),
|
|
2392
2649
|
// Accordion system (optional - generated if not provided)
|
|
2650
|
+
testimonialQuote: testimonialQuoteTreatmentSchema.optional(),
|
|
2651
|
+
// Testimonial quote-mark treatment (site-style-owned)
|
|
2393
2652
|
inputs: inputSystemSchema.optional(),
|
|
2394
2653
|
// Input system (optional - generated if not provided)
|
|
2395
2654
|
inputStyle: inputStyle.optional(),
|
|
@@ -2397,15 +2656,19 @@ var themeSchema = z16.object({
|
|
|
2397
2656
|
// Block-specific customization (Tier 3)
|
|
2398
2657
|
// blockCustomVars: Per-block CSS variable overrides as bare values
|
|
2399
2658
|
// Example: { "event-registration": { "--step-color": "#6d28d9" } }
|
|
2400
|
-
blockCustomVars:
|
|
2401
|
-
|
|
2659
|
+
blockCustomVars: z17.record(
|
|
2660
|
+
z17.string(),
|
|
2402
2661
|
// block kind (matches data-block attribute)
|
|
2403
|
-
|
|
2662
|
+
z17.record(z17.string(), z17.string())
|
|
2404
2663
|
// { '--var-name': 'value' }
|
|
2405
2664
|
).optional(),
|
|
2406
2665
|
// Structured block-kind theme overrides (v1: typography prose-link style only)
|
|
2407
2666
|
// Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
|
|
2408
|
-
blockOverrides:
|
|
2667
|
+
blockOverrides: z17.record(z17.string(), blockThemeOverrideSchema).optional(),
|
|
2668
|
+
// Site-wide heading decoration signature (family + colour). Set once per Look
|
|
2669
|
+
// and projected transiently onto eligible block headings at render time.
|
|
2670
|
+
// Alignment is inherited from the heading, so no placement is stored.
|
|
2671
|
+
headingDecoration: headingDecorationSchema.optional(),
|
|
2409
2672
|
// Structured custom CSS rules
|
|
2410
2673
|
// Validated, scoped, and safe by construction - no @import, remote url(), or global selectors
|
|
2411
2674
|
customCssRules: customCssRulesSchema,
|
|
@@ -2439,11 +2702,11 @@ var themeSchema = z16.object({
|
|
|
2439
2702
|
* }
|
|
2440
2703
|
* ```
|
|
2441
2704
|
*/
|
|
2442
|
-
styleGroups:
|
|
2705
|
+
styleGroups: z17.record(z17.string(), z17.array(z17.string())).optional()
|
|
2443
2706
|
});
|
|
2444
|
-
var themesTurnSchema =
|
|
2445
|
-
message:
|
|
2446
|
-
themes:
|
|
2707
|
+
var themesTurnSchema = z17.object({
|
|
2708
|
+
message: z17.string().min(1),
|
|
2709
|
+
themes: z17.array(themeSchema).length(3)
|
|
2447
2710
|
});
|
|
2448
2711
|
|
|
2449
2712
|
// ../theme-core/src/fonts/uploadFormat.ts
|
|
@@ -2511,26 +2774,26 @@ function generateShadowCssVars(theme) {
|
|
|
2511
2774
|
}
|
|
2512
2775
|
|
|
2513
2776
|
// ../theme-core/src/palette/variants/types.ts
|
|
2514
|
-
import { z as
|
|
2777
|
+
import { z as z18 } from "zod";
|
|
2515
2778
|
function asPaletteVariantId(value) {
|
|
2516
2779
|
if (value.length === 0) {
|
|
2517
2780
|
throw new Error("PaletteVariantId must be a non-empty string");
|
|
2518
2781
|
}
|
|
2519
2782
|
return value;
|
|
2520
2783
|
}
|
|
2521
|
-
var paletteVariantIdSchema =
|
|
2784
|
+
var paletteVariantIdSchema = z18.string().min(1).transform((value) => asPaletteVariantId(value));
|
|
2522
2785
|
var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
2523
|
-
var hexColorSchema =
|
|
2786
|
+
var hexColorSchema = z18.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
|
|
2524
2787
|
var variantPaletteColorSchema = paletteColorSchema.extend({
|
|
2525
2788
|
name: paletteTokenNameSchema
|
|
2526
2789
|
});
|
|
2527
|
-
var paletteVariantSchema =
|
|
2790
|
+
var paletteVariantSchema = z18.object({
|
|
2528
2791
|
id: paletteVariantIdSchema,
|
|
2529
|
-
name:
|
|
2530
|
-
description:
|
|
2792
|
+
name: z18.string().min(1),
|
|
2793
|
+
description: z18.string().min(1),
|
|
2531
2794
|
tags: styleTagsSchema,
|
|
2532
|
-
mode:
|
|
2533
|
-
colors:
|
|
2795
|
+
mode: z18.enum(["light", "dark"]),
|
|
2796
|
+
colors: z18.array(variantPaletteColorSchema).min(1)
|
|
2534
2797
|
});
|
|
2535
2798
|
function definePaletteVariant(input) {
|
|
2536
2799
|
return {
|
|
@@ -2542,7 +2805,7 @@ function definePaletteVariant(input) {
|
|
|
2542
2805
|
colors: input.colors
|
|
2543
2806
|
};
|
|
2544
2807
|
}
|
|
2545
|
-
var paletteOverridesSchema =
|
|
2808
|
+
var paletteOverridesSchema = z18.object({
|
|
2546
2809
|
primary: hexColorSchema.optional(),
|
|
2547
2810
|
primaryForeground: hexColorSchema.optional(),
|
|
2548
2811
|
secondary: hexColorSchema.optional(),
|
|
@@ -2783,6 +3046,28 @@ var softNaturalWatercolor = definePaletteVariant({
|
|
|
2783
3046
|
{ name: "border", hex: "#d8c9a8" }
|
|
2784
3047
|
]
|
|
2785
3048
|
});
|
|
3049
|
+
var softNaturalLilac = definePaletteVariant({
|
|
3050
|
+
id: "soft-natural-lilac",
|
|
3051
|
+
name: "Soft Natural \u2014 Lilac",
|
|
3052
|
+
description: "Watercolour periwinkle-lilac primary with warm ivory grounds and a sage accent.",
|
|
3053
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
3054
|
+
mode: "light",
|
|
3055
|
+
colors: [
|
|
3056
|
+
{ name: "primary", hex: "#5c68a8" },
|
|
3057
|
+
{ name: "secondary", hex: "#8189ad" },
|
|
3058
|
+
{ name: "accent", hex: "#75835a" },
|
|
3059
|
+
{ name: "success", hex: "#5f7d62" },
|
|
3060
|
+
{ name: "warning", hex: "#a8884f" },
|
|
3061
|
+
{ name: "destructive", hex: "#a3503e" },
|
|
3062
|
+
{ name: "background", hex: "#faf9f6" },
|
|
3063
|
+
{ name: "surface", hex: "#ffffff" },
|
|
3064
|
+
{ name: "surfaceAlt", hex: "#f1f0f7" },
|
|
3065
|
+
{ name: "muted", hex: "#e9e8f2" },
|
|
3066
|
+
{ name: "text", hex: "#262633" },
|
|
3067
|
+
{ name: "primaryForeground", hex: "#ffffff" },
|
|
3068
|
+
{ name: "border", hex: "#d6d5e3" }
|
|
3069
|
+
]
|
|
3070
|
+
});
|
|
2786
3071
|
|
|
2787
3072
|
// ../theme-core/src/palette/variants/warm-neutral.ts
|
|
2788
3073
|
var warmNeutralClay = definePaletteVariant({
|
|
@@ -2893,13 +3178,190 @@ var paletteVariants = [
|
|
|
2893
3178
|
// Soft-natural family
|
|
2894
3179
|
softNaturalSage,
|
|
2895
3180
|
softNaturalStone,
|
|
2896
|
-
softNaturalWatercolor
|
|
3181
|
+
softNaturalWatercolor,
|
|
3182
|
+
softNaturalLilac
|
|
2897
3183
|
];
|
|
2898
3184
|
var paletteVariantsById = new Map(
|
|
2899
3185
|
paletteVariants.map((v) => [v.id, v])
|
|
2900
3186
|
);
|
|
2901
3187
|
|
|
2902
3188
|
// ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
3189
|
+
var editorialDividedAccordionSystem = {
|
|
3190
|
+
background: null,
|
|
3191
|
+
spacing: "comfortable",
|
|
3192
|
+
corners: "square",
|
|
3193
|
+
border: null,
|
|
3194
|
+
shadow: null,
|
|
3195
|
+
icon: {
|
|
3196
|
+
style: "plus-minus",
|
|
3197
|
+
position: "right",
|
|
3198
|
+
size: "md",
|
|
3199
|
+
colorToken: "primary"
|
|
3200
|
+
},
|
|
3201
|
+
trigger: {
|
|
3202
|
+
textColorToken: "text",
|
|
3203
|
+
fontWeight: "regular",
|
|
3204
|
+
fontFamily: "heading",
|
|
3205
|
+
fontScale: "lg"
|
|
3206
|
+
},
|
|
3207
|
+
hover: {
|
|
3208
|
+
textColorToken: "primary"
|
|
3209
|
+
},
|
|
3210
|
+
openState: {
|
|
3211
|
+
backgroundColorToken: "surfaceAlt",
|
|
3212
|
+
triggerColorToken: "primary",
|
|
3213
|
+
accent: {
|
|
3214
|
+
edge: "left",
|
|
3215
|
+
colorToken: "primary",
|
|
3216
|
+
thickness: "medium"
|
|
3217
|
+
}
|
|
3218
|
+
},
|
|
3219
|
+
content: {
|
|
3220
|
+
textColorToken: "neutral-700"
|
|
3221
|
+
}
|
|
3222
|
+
};
|
|
3223
|
+
var quietUnderlinedAccordionSystem = {
|
|
3224
|
+
background: null,
|
|
3225
|
+
spacing: "spacious",
|
|
3226
|
+
corners: "square",
|
|
3227
|
+
border: null,
|
|
3228
|
+
shadow: null,
|
|
3229
|
+
icon: {
|
|
3230
|
+
style: "chevron",
|
|
3231
|
+
position: "right",
|
|
3232
|
+
size: "sm",
|
|
3233
|
+
colorToken: "muted"
|
|
3234
|
+
},
|
|
3235
|
+
trigger: {
|
|
3236
|
+
textColorToken: "text",
|
|
3237
|
+
fontWeight: "regular",
|
|
3238
|
+
fontFamily: "heading",
|
|
3239
|
+
fontScale: "lg"
|
|
3240
|
+
},
|
|
3241
|
+
hover: {
|
|
3242
|
+
textColorToken: "primary"
|
|
3243
|
+
},
|
|
3244
|
+
openState: {
|
|
3245
|
+
triggerColorToken: "primary"
|
|
3246
|
+
},
|
|
3247
|
+
content: {
|
|
3248
|
+
textColorToken: "neutral-700"
|
|
3249
|
+
}
|
|
3250
|
+
};
|
|
3251
|
+
var calmPanelAccordionSystem = {
|
|
3252
|
+
background: {
|
|
3253
|
+
type: "solid",
|
|
3254
|
+
colorToken: "surface"
|
|
3255
|
+
},
|
|
3256
|
+
spacing: "comfortable",
|
|
3257
|
+
corners: "soft",
|
|
3258
|
+
border: {
|
|
3259
|
+
widthClass: "border",
|
|
3260
|
+
colorToken: "border"
|
|
3261
|
+
},
|
|
3262
|
+
shadow: {
|
|
3263
|
+
elevation: "low",
|
|
3264
|
+
softness: "soft",
|
|
3265
|
+
position: "bottom"
|
|
3266
|
+
},
|
|
3267
|
+
icon: {
|
|
3268
|
+
style: "chevron",
|
|
3269
|
+
position: "right",
|
|
3270
|
+
size: "md",
|
|
3271
|
+
colorToken: "primary"
|
|
3272
|
+
},
|
|
3273
|
+
trigger: {
|
|
3274
|
+
textColorToken: "text",
|
|
3275
|
+
fontWeight: "medium",
|
|
3276
|
+
fontFamily: "heading",
|
|
3277
|
+
fontScale: "md"
|
|
3278
|
+
},
|
|
3279
|
+
hover: {
|
|
3280
|
+
backgroundColorToken: "primary/5",
|
|
3281
|
+
textColorToken: "primary"
|
|
3282
|
+
},
|
|
3283
|
+
openState: {
|
|
3284
|
+
backgroundColorToken: "primary/5",
|
|
3285
|
+
triggerColorToken: "primary"
|
|
3286
|
+
},
|
|
3287
|
+
content: {
|
|
3288
|
+
textColorToken: "neutral-700"
|
|
3289
|
+
}
|
|
3290
|
+
};
|
|
3291
|
+
var boldBorderedAccordionSystem = {
|
|
3292
|
+
background: {
|
|
3293
|
+
type: "solid",
|
|
3294
|
+
colorToken: "surface"
|
|
3295
|
+
},
|
|
3296
|
+
spacing: "comfortable",
|
|
3297
|
+
corners: "soft",
|
|
3298
|
+
border: {
|
|
3299
|
+
widthClass: "border-2",
|
|
3300
|
+
colorToken: "border"
|
|
3301
|
+
},
|
|
3302
|
+
shadow: null,
|
|
3303
|
+
icon: {
|
|
3304
|
+
style: "plus-minus",
|
|
3305
|
+
position: "right",
|
|
3306
|
+
size: "lg",
|
|
3307
|
+
colorToken: "primary"
|
|
3308
|
+
},
|
|
3309
|
+
trigger: {
|
|
3310
|
+
textColorToken: "text",
|
|
3311
|
+
fontWeight: "bold",
|
|
3312
|
+
fontFamily: "heading",
|
|
3313
|
+
fontScale: "md"
|
|
3314
|
+
},
|
|
3315
|
+
hover: {
|
|
3316
|
+
backgroundColorToken: "primary/10",
|
|
3317
|
+
textColorToken: "primary"
|
|
3318
|
+
},
|
|
3319
|
+
openState: {
|
|
3320
|
+
backgroundColorToken: "primary/10",
|
|
3321
|
+
triggerColorToken: "primary",
|
|
3322
|
+
accent: {
|
|
3323
|
+
edge: "left",
|
|
3324
|
+
colorToken: "primary",
|
|
3325
|
+
thickness: "thick"
|
|
3326
|
+
}
|
|
3327
|
+
},
|
|
3328
|
+
content: {
|
|
3329
|
+
textColorToken: "neutral-700"
|
|
3330
|
+
}
|
|
3331
|
+
};
|
|
3332
|
+
var warmInsetAccordionSystem = {
|
|
3333
|
+
background: {
|
|
3334
|
+
type: "solid",
|
|
3335
|
+
colorToken: "surfaceAlt"
|
|
3336
|
+
},
|
|
3337
|
+
spacing: "comfortable",
|
|
3338
|
+
corners: "rounded",
|
|
3339
|
+
border: null,
|
|
3340
|
+
shadow: null,
|
|
3341
|
+
icon: {
|
|
3342
|
+
style: "circle-plus-minus",
|
|
3343
|
+
position: "right",
|
|
3344
|
+
size: "md",
|
|
3345
|
+
colorToken: "primary"
|
|
3346
|
+
},
|
|
3347
|
+
trigger: {
|
|
3348
|
+
textColorToken: "text",
|
|
3349
|
+
fontWeight: "semibold",
|
|
3350
|
+
fontFamily: "heading",
|
|
3351
|
+
fontScale: "md"
|
|
3352
|
+
},
|
|
3353
|
+
hover: {
|
|
3354
|
+
backgroundColorToken: "primary/5",
|
|
3355
|
+
textColorToken: "primary"
|
|
3356
|
+
},
|
|
3357
|
+
openState: {
|
|
3358
|
+
backgroundColorToken: "surface",
|
|
3359
|
+
triggerColorToken: "primary"
|
|
3360
|
+
},
|
|
3361
|
+
content: {
|
|
3362
|
+
textColorToken: "neutral-700"
|
|
3363
|
+
}
|
|
3364
|
+
};
|
|
2903
3365
|
var softEarthAccordionSystem = {
|
|
2904
3366
|
background: {
|
|
2905
3367
|
type: "solid",
|
|
@@ -2917,16 +3379,96 @@ var softEarthAccordionSystem = {
|
|
|
2917
3379
|
},
|
|
2918
3380
|
trigger: {
|
|
2919
3381
|
textColorToken: "text",
|
|
2920
|
-
fontWeight: "medium"
|
|
3382
|
+
fontWeight: "medium",
|
|
3383
|
+
fontFamily: "heading",
|
|
3384
|
+
fontScale: "md"
|
|
2921
3385
|
},
|
|
2922
3386
|
hover: {
|
|
2923
3387
|
textColorToken: "primary"
|
|
2924
3388
|
},
|
|
3389
|
+
openState: {
|
|
3390
|
+
triggerColorToken: "primary"
|
|
3391
|
+
},
|
|
2925
3392
|
content: {
|
|
2926
3393
|
textColorToken: "neutral-700"
|
|
2927
3394
|
}
|
|
2928
3395
|
};
|
|
2929
3396
|
|
|
3397
|
+
// ../theme-core/src/cards/siteStyleDefaults.ts
|
|
3398
|
+
var southWestCardSystem = {
|
|
3399
|
+
variants: [
|
|
3400
|
+
{
|
|
3401
|
+
id: "default",
|
|
3402
|
+
name: "Default",
|
|
3403
|
+
enabled: true,
|
|
3404
|
+
priority: 1,
|
|
3405
|
+
background: { type: "solid", colorToken: "surface" },
|
|
3406
|
+
foregroundToken: "text",
|
|
3407
|
+
spacing: "comfortable",
|
|
3408
|
+
corners: "soft",
|
|
3409
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" }
|
|
3410
|
+
},
|
|
3411
|
+
{
|
|
3412
|
+
id: "alternative",
|
|
3413
|
+
name: "Statement",
|
|
3414
|
+
enabled: true,
|
|
3415
|
+
priority: 2,
|
|
3416
|
+
background: { type: "solid", colorToken: "primary-700" },
|
|
3417
|
+
foregroundToken: "primaryForeground",
|
|
3418
|
+
spacing: "comfortable",
|
|
3419
|
+
// No shadow on the variant itself: the elevation comes from the look's
|
|
3420
|
+
// 'raised' item surface (rb-shadow-md = var(--shadow-md)), reproducing the
|
|
3421
|
+
// legacy accent-quote card's shadow exactly.
|
|
3422
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
3423
|
+
accentEdge: { edge: "left", colorToken: "secondary", width: "heavy" },
|
|
3424
|
+
cornerRadii: {
|
|
3425
|
+
topLeft: "square",
|
|
3426
|
+
topRight: "expressive",
|
|
3427
|
+
bottomLeft: "square",
|
|
3428
|
+
bottomRight: "square"
|
|
3429
|
+
}
|
|
3430
|
+
}
|
|
3431
|
+
]
|
|
3432
|
+
};
|
|
3433
|
+
var clarityZenCardSystem = {
|
|
3434
|
+
variants: [
|
|
3435
|
+
{
|
|
3436
|
+
id: "default",
|
|
3437
|
+
name: "Default",
|
|
3438
|
+
enabled: true,
|
|
3439
|
+
priority: 1,
|
|
3440
|
+
background: { type: "solid", colorToken: "surface" },
|
|
3441
|
+
// A filled card establishes its own text colour so it stays legible on a
|
|
3442
|
+
// coloured section band (which sets a contrasting section-text colour).
|
|
3443
|
+
foregroundToken: "text",
|
|
3444
|
+
spacing: "comfortable",
|
|
3445
|
+
corners: "rounded",
|
|
3446
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" }
|
|
3447
|
+
},
|
|
3448
|
+
{
|
|
3449
|
+
id: "alternative",
|
|
3450
|
+
name: "Statement",
|
|
3451
|
+
enabled: true,
|
|
3452
|
+
priority: 2,
|
|
3453
|
+
// Themed surfaceAlt tint + a touch more elevation so an emphasised
|
|
3454
|
+
// section reads as a deliberate "statement" against the default card.
|
|
3455
|
+
background: { type: "solid", colorToken: "surfaceAlt" },
|
|
3456
|
+
foregroundToken: "text",
|
|
3457
|
+
spacing: "comfortable",
|
|
3458
|
+
corners: "rounded",
|
|
3459
|
+
shadow: { elevation: "medium", softness: "soft", position: "bottom" }
|
|
3460
|
+
}
|
|
3461
|
+
]
|
|
3462
|
+
};
|
|
3463
|
+
|
|
3464
|
+
// ../theme-core/src/site-styles/testimonialQuotePresets.ts
|
|
3465
|
+
var serifDisplayQuote = {
|
|
3466
|
+
style: "serif-display"
|
|
3467
|
+
};
|
|
3468
|
+
var accentGlyphQuote = {
|
|
3469
|
+
style: "accent-glyph"
|
|
3470
|
+
};
|
|
3471
|
+
|
|
2930
3472
|
// ../theme-core/src/site-styles/headerCtaVariants.ts
|
|
2931
3473
|
function hasButtonVariant(theme, variantId) {
|
|
2932
3474
|
return theme.buttons?.variants.some((variant) => variant.enabled && variant.id === variantId) ?? false;
|
|
@@ -2961,6 +3503,89 @@ function asHeaderLayoutId(value) {
|
|
|
2961
3503
|
function asHeaderStyleId(value) {
|
|
2962
3504
|
return value;
|
|
2963
3505
|
}
|
|
3506
|
+
var titleOnlyLogoAccommodation = {
|
|
3507
|
+
pattern: "title-only",
|
|
3508
|
+
supportedShapes: ["none", "horizontal", "square", "portrait", "tall"],
|
|
3509
|
+
supportedTextPresence: ["contains-text", "no-text", "unknown"],
|
|
3510
|
+
supportedDisplayModes: ["title-only"],
|
|
3511
|
+
size: "compact"
|
|
3512
|
+
};
|
|
3513
|
+
var inlineWordmarkLogoAccommodation = {
|
|
3514
|
+
pattern: "inline-wordmark",
|
|
3515
|
+
supportedShapes: ["horizontal"],
|
|
3516
|
+
supportedTextPresence: ["contains-text", "no-text", "unknown"],
|
|
3517
|
+
supportedDisplayModes: ["logo-only"],
|
|
3518
|
+
size: "standard",
|
|
3519
|
+
maxDensity: "detailed"
|
|
3520
|
+
};
|
|
3521
|
+
var inlineMarkWithTitleLogoAccommodation = {
|
|
3522
|
+
pattern: "inline-mark-with-title",
|
|
3523
|
+
supportedShapes: ["horizontal", "square", "portrait", "tall"],
|
|
3524
|
+
supportedTextPresence: ["no-text"],
|
|
3525
|
+
supportedDisplayModes: ["logo-plus-title"],
|
|
3526
|
+
size: "compact",
|
|
3527
|
+
maxDensity: "simple"
|
|
3528
|
+
};
|
|
3529
|
+
var logoPlateAccommodation = {
|
|
3530
|
+
pattern: "logo-plate",
|
|
3531
|
+
supportedShapes: ["square", "portrait", "tall"],
|
|
3532
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
3533
|
+
supportedDisplayModes: ["logo-only"],
|
|
3534
|
+
size: "display",
|
|
3535
|
+
providesBacking: true
|
|
3536
|
+
};
|
|
3537
|
+
var centeredBadgeAccommodation = {
|
|
3538
|
+
pattern: "centered-badge",
|
|
3539
|
+
supportedShapes: ["square", "portrait", "tall"],
|
|
3540
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
3541
|
+
supportedDisplayModes: ["logo-only"],
|
|
3542
|
+
size: "display",
|
|
3543
|
+
providesBacking: true
|
|
3544
|
+
};
|
|
3545
|
+
var popoutBadgeAccommodation = {
|
|
3546
|
+
pattern: "popout-badge",
|
|
3547
|
+
supportedShapes: ["square", "portrait", "tall"],
|
|
3548
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
3549
|
+
supportedDisplayModes: ["logo-only"],
|
|
3550
|
+
size: "display",
|
|
3551
|
+
providesBacking: true
|
|
3552
|
+
};
|
|
3553
|
+
var centeredMastheadAccommodation = {
|
|
3554
|
+
pattern: "centered-masthead",
|
|
3555
|
+
supportedShapes: ["square", "portrait", "tall"],
|
|
3556
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
3557
|
+
supportedDisplayModes: ["logo-only"],
|
|
3558
|
+
size: "display",
|
|
3559
|
+
providesBacking: true
|
|
3560
|
+
};
|
|
3561
|
+
var unbackedOverlayLogoAccommodation = {
|
|
3562
|
+
pattern: "inline-logo-only",
|
|
3563
|
+
supportedShapes: ["square"],
|
|
3564
|
+
supportedTextPresence: ["contains-text", "unknown"],
|
|
3565
|
+
supportedDisplayModes: ["logo-only"],
|
|
3566
|
+
size: "compact",
|
|
3567
|
+
providesBacking: false
|
|
3568
|
+
};
|
|
3569
|
+
var inlineClassicLogoAccommodations = [
|
|
3570
|
+
titleOnlyLogoAccommodation,
|
|
3571
|
+
inlineWordmarkLogoAccommodation,
|
|
3572
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
3573
|
+
popoutBadgeAccommodation,
|
|
3574
|
+
logoPlateAccommodation
|
|
3575
|
+
];
|
|
3576
|
+
var centeredLogoAccommodations = [
|
|
3577
|
+
titleOnlyLogoAccommodation,
|
|
3578
|
+
inlineWordmarkLogoAccommodation,
|
|
3579
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
3580
|
+
centeredMastheadAccommodation,
|
|
3581
|
+
centeredBadgeAccommodation
|
|
3582
|
+
];
|
|
3583
|
+
var overlayLogoAccommodations = [
|
|
3584
|
+
titleOnlyLogoAccommodation,
|
|
3585
|
+
inlineWordmarkLogoAccommodation,
|
|
3586
|
+
inlineMarkWithTitleLogoAccommodation,
|
|
3587
|
+
unbackedOverlayLogoAccommodation
|
|
3588
|
+
];
|
|
2964
3589
|
function baseHeader(theme) {
|
|
2965
3590
|
const {
|
|
2966
3591
|
navLinkStyle: _navLinkStyle,
|
|
@@ -3630,6 +4255,7 @@ var headerLookCatalog = [
|
|
|
3630
4255
|
behavior: "sticky"
|
|
3631
4256
|
},
|
|
3632
4257
|
openingRequirement: "none",
|
|
4258
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
3633
4259
|
compile: cleanBaseHeader
|
|
3634
4260
|
},
|
|
3635
4261
|
{
|
|
@@ -3643,6 +4269,7 @@ var headerLookCatalog = [
|
|
|
3643
4269
|
behavior: "sticky-shrink"
|
|
3644
4270
|
},
|
|
3645
4271
|
openingRequirement: "none",
|
|
4272
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
3646
4273
|
compile: solidBrandHeader
|
|
3647
4274
|
},
|
|
3648
4275
|
{
|
|
@@ -3657,6 +4284,7 @@ var headerLookCatalog = [
|
|
|
3657
4284
|
},
|
|
3658
4285
|
openingRequirement: "none",
|
|
3659
4286
|
maxRecommendedNavItems: 6,
|
|
4287
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
3660
4288
|
compile: serifLineHeader
|
|
3661
4289
|
},
|
|
3662
4290
|
{
|
|
@@ -3671,7 +4299,7 @@ var headerLookCatalog = [
|
|
|
3671
4299
|
},
|
|
3672
4300
|
openingRequirement: "none",
|
|
3673
4301
|
maxRecommendedNavItems: 5,
|
|
3674
|
-
|
|
4302
|
+
logoAccommodations: centeredLogoAccommodations,
|
|
3675
4303
|
compile: centeredCalmHeader
|
|
3676
4304
|
},
|
|
3677
4305
|
{
|
|
@@ -3686,6 +4314,7 @@ var headerLookCatalog = [
|
|
|
3686
4314
|
},
|
|
3687
4315
|
openingRequirement: "none",
|
|
3688
4316
|
requiresProminentCta: true,
|
|
4317
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
3689
4318
|
compile: practicalUtilityHeader
|
|
3690
4319
|
},
|
|
3691
4320
|
{
|
|
@@ -3699,6 +4328,7 @@ var headerLookCatalog = [
|
|
|
3699
4328
|
behavior: "normal-flow"
|
|
3700
4329
|
},
|
|
3701
4330
|
openingRequirement: "reserved-space-ok",
|
|
4331
|
+
logoAccommodations: inlineClassicLogoAccommodations,
|
|
3702
4332
|
compile: minimalTransparentHeader
|
|
3703
4333
|
},
|
|
3704
4334
|
{
|
|
@@ -3713,7 +4343,7 @@ var headerLookCatalog = [
|
|
|
3713
4343
|
},
|
|
3714
4344
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
3715
4345
|
maxRecommendedNavItems: 5,
|
|
3716
|
-
|
|
4346
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
3717
4347
|
compile: transparentOverlayHeader
|
|
3718
4348
|
},
|
|
3719
4349
|
{
|
|
@@ -3728,7 +4358,7 @@ var headerLookCatalog = [
|
|
|
3728
4358
|
},
|
|
3729
4359
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
3730
4360
|
maxRecommendedNavItems: 5,
|
|
3731
|
-
|
|
4361
|
+
logoAccommodations: overlayLogoAccommodations,
|
|
3732
4362
|
compile: floatingGlassHeader
|
|
3733
4363
|
}
|
|
3734
4364
|
];
|
|
@@ -3809,12 +4439,110 @@ function brandTwoBandFooter(theme) {
|
|
|
3809
4439
|
}
|
|
3810
4440
|
};
|
|
3811
4441
|
}
|
|
4442
|
+
function centeredCalmFooter(theme) {
|
|
4443
|
+
return {
|
|
4444
|
+
...theme.footer,
|
|
4445
|
+
variant: "simple",
|
|
4446
|
+
maxWidth: "container",
|
|
4447
|
+
background: {
|
|
4448
|
+
type: "color",
|
|
4449
|
+
color: "surfaceAlt"
|
|
4450
|
+
},
|
|
4451
|
+
navStyle: "minimal",
|
|
4452
|
+
navWeight: "regular",
|
|
4453
|
+
navColor: "text",
|
|
4454
|
+
navLinkStyle: {
|
|
4455
|
+
typography: "body",
|
|
4456
|
+
fontWeight: "regular",
|
|
4457
|
+
textTransform: "none",
|
|
4458
|
+
italic: false,
|
|
4459
|
+
colorToken: "text",
|
|
4460
|
+
hoverColorToken: "primary",
|
|
4461
|
+
padding: "none",
|
|
4462
|
+
borderRadius: "none"
|
|
4463
|
+
},
|
|
4464
|
+
navLayout: {
|
|
4465
|
+
layout: "inline-wrap",
|
|
4466
|
+
align: "center",
|
|
4467
|
+
gapX: "relaxed",
|
|
4468
|
+
gapY: "tight"
|
|
4469
|
+
},
|
|
4470
|
+
logo: {
|
|
4471
|
+
showLogo: true,
|
|
4472
|
+
showLogoText: false,
|
|
4473
|
+
placement: "above",
|
|
4474
|
+
size: "sm",
|
|
4475
|
+
align: "center"
|
|
4476
|
+
},
|
|
4477
|
+
bottomBar: {
|
|
4478
|
+
enabled: true,
|
|
4479
|
+
fullBleed: false,
|
|
4480
|
+
textAlign: "center",
|
|
4481
|
+
paddingX: "default",
|
|
4482
|
+
paddingY: "compact",
|
|
4483
|
+
borderTop: {
|
|
4484
|
+
width: "thin"
|
|
4485
|
+
}
|
|
4486
|
+
}
|
|
4487
|
+
};
|
|
4488
|
+
}
|
|
4489
|
+
function editorialColumnsFooter(theme) {
|
|
4490
|
+
return {
|
|
4491
|
+
...theme.footer,
|
|
4492
|
+
variant: "columns",
|
|
4493
|
+
maxWidth: "container",
|
|
4494
|
+
background: {
|
|
4495
|
+
type: "color",
|
|
4496
|
+
color: "surface"
|
|
4497
|
+
},
|
|
4498
|
+
navStyle: "minimal",
|
|
4499
|
+
navWeight: "regular",
|
|
4500
|
+
navColor: "text",
|
|
4501
|
+
navLinkStyle: {
|
|
4502
|
+
typography: "body",
|
|
4503
|
+
fontWeight: "regular",
|
|
4504
|
+
textTransform: "none",
|
|
4505
|
+
italic: false,
|
|
4506
|
+
colorToken: "text",
|
|
4507
|
+
hoverColorToken: "primary",
|
|
4508
|
+
padding: "none",
|
|
4509
|
+
borderRadius: "none"
|
|
4510
|
+
},
|
|
4511
|
+
logo: {
|
|
4512
|
+
showLogo: true,
|
|
4513
|
+
showLogoText: true,
|
|
4514
|
+
placement: "left",
|
|
4515
|
+
size: "sm",
|
|
4516
|
+
align: "start"
|
|
4517
|
+
},
|
|
4518
|
+
bottomBar: {
|
|
4519
|
+
enabled: true,
|
|
4520
|
+
fullBleed: false,
|
|
4521
|
+
textAlign: "center",
|
|
4522
|
+
paddingX: "default",
|
|
4523
|
+
paddingY: "compact",
|
|
4524
|
+
borderTop: {
|
|
4525
|
+
width: "thin"
|
|
4526
|
+
}
|
|
4527
|
+
}
|
|
4528
|
+
};
|
|
4529
|
+
}
|
|
3812
4530
|
var footerLookCatalog = [
|
|
3813
4531
|
{
|
|
3814
4532
|
id: asFooterLookId("footer-muted-grounding"),
|
|
3815
4533
|
label: "Muted grounding footer",
|
|
3816
4534
|
compile: mutedGroundingFooter
|
|
3817
4535
|
},
|
|
4536
|
+
{
|
|
4537
|
+
id: asFooterLookId("footer-centered-calm"),
|
|
4538
|
+
label: "Centered calm footer",
|
|
4539
|
+
compile: centeredCalmFooter
|
|
4540
|
+
},
|
|
4541
|
+
{
|
|
4542
|
+
id: asFooterLookId("footer-editorial-columns"),
|
|
4543
|
+
label: "Editorial columns footer",
|
|
4544
|
+
compile: editorialColumnsFooter
|
|
4545
|
+
},
|
|
3818
4546
|
{
|
|
3819
4547
|
id: asFooterLookId("site-footer-brand-two-band"),
|
|
3820
4548
|
label: "Two-band brand footer",
|
|
@@ -3844,7 +4572,7 @@ var generatedDesignOptionCatalog = {
|
|
|
3844
4572
|
source: "generated",
|
|
3845
4573
|
sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
|
|
3846
4574
|
contentFrames: generatedContentFrames,
|
|
3847
|
-
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
4575
|
+
itemSurfaces: ["none", "default", "flat", "outlined", "raised", "inset", "editorial"],
|
|
3848
4576
|
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
3849
4577
|
emphases: ["low", "medium", "high"],
|
|
3850
4578
|
detachedCustom: false
|
|
@@ -3853,11 +4581,7 @@ var userDesignOptionCatalog = {
|
|
|
3853
4581
|
source: "user",
|
|
3854
4582
|
sectionSurfaces: generatedDesignOptionCatalog.sectionSurfaces,
|
|
3855
4583
|
contentFrames: userContentFrames,
|
|
3856
|
-
itemSurfaces:
|
|
3857
|
-
...generatedDesignOptionCatalog.itemSurfaces,
|
|
3858
|
-
"inset",
|
|
3859
|
-
"editorial"
|
|
3860
|
-
],
|
|
4584
|
+
itemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
|
|
3861
4585
|
transitions: [
|
|
3862
4586
|
...generatedDesignOptionCatalog.transitions,
|
|
3863
4587
|
"wave-edge",
|
|
@@ -4250,6 +4974,10 @@ function defineCuratedSiteStyle(input) {
|
|
|
4250
4974
|
supportedItemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
|
|
4251
4975
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
4252
4976
|
},
|
|
4977
|
+
// Decoration is opt-in per style so it stays a distinguishing feature, not
|
|
4978
|
+
// wallpaper. Styles that want a mark set `headingDecoration` explicitly;
|
|
4979
|
+
// clean/minimal styles default to none.
|
|
4980
|
+
headingDecoration: input.headingDecoration ?? noHeadingDecoration,
|
|
4253
4981
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
4254
4982
|
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
4255
4983
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
@@ -4436,6 +5164,11 @@ var curatedSiteStyles = [
|
|
|
4436
5164
|
defineCuratedSiteStyle({
|
|
4437
5165
|
id: "site-style:calm-studio",
|
|
4438
5166
|
name: "Calm Studio",
|
|
5167
|
+
themeOverrides: {
|
|
5168
|
+
accordions: calmPanelAccordionSystem,
|
|
5169
|
+
testimonialQuote: serifDisplayQuote
|
|
5170
|
+
},
|
|
5171
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4439
5172
|
description: "Soft, measured, and spacious for intimate appointment or class businesses.",
|
|
4440
5173
|
generationBrief: "Use calm pacing, concise copy, generous breathing room, and natural imagery. Keep calls to action steady rather than urgent.",
|
|
4441
5174
|
tokenRecipes: {
|
|
@@ -4469,6 +5202,10 @@ var curatedSiteStyles = [
|
|
|
4469
5202
|
defineCuratedSiteStyle({
|
|
4470
5203
|
id: "site-style:clear-professional",
|
|
4471
5204
|
name: "Clear Professional",
|
|
5205
|
+
themeOverrides: {
|
|
5206
|
+
accordions: calmPanelAccordionSystem,
|
|
5207
|
+
testimonialQuote: accentGlyphQuote
|
|
5208
|
+
},
|
|
4472
5209
|
description: "Crisp, trustworthy, and direct for local services and consultancies.",
|
|
4473
5210
|
generationBrief: "Prioritize clarity, proof, service detail, and easy next steps. Keep visuals polished and specific, with restrained decorative treatment.",
|
|
4474
5211
|
tokenRecipes: {
|
|
@@ -4500,6 +5237,11 @@ var curatedSiteStyles = [
|
|
|
4500
5237
|
defineCuratedSiteStyle({
|
|
4501
5238
|
id: "site-style:warm-editorial",
|
|
4502
5239
|
name: "Warm Editorial",
|
|
5240
|
+
themeOverrides: {
|
|
5241
|
+
accordions: editorialDividedAccordionSystem,
|
|
5242
|
+
testimonialQuote: serifDisplayQuote
|
|
5243
|
+
},
|
|
5244
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4503
5245
|
description: "Story-led and textured for educators, makers, venues, and retreats.",
|
|
4504
5246
|
generationBrief: "Let the copy feel thoughtful and grounded. Favor narrative sections, supporting media, and a small number of editorial panels.",
|
|
4505
5247
|
tokenRecipes: {
|
|
@@ -4532,6 +5274,11 @@ var curatedSiteStyles = [
|
|
|
4532
5274
|
defineCuratedSiteStyle({
|
|
4533
5275
|
id: "site-style:bright-community",
|
|
4534
5276
|
name: "Bright Community",
|
|
5277
|
+
themeOverrides: {
|
|
5278
|
+
accordions: warmInsetAccordionSystem,
|
|
5279
|
+
testimonialQuote: accentGlyphQuote
|
|
5280
|
+
},
|
|
5281
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4535
5282
|
description: "Friendly, welcoming, and active for groups, classes, and neighborhood offers.",
|
|
4536
5283
|
generationBrief: "Use welcoming language, clear event or booking routes, and optimistic imagery. Let accents appear, but avoid noisy decoration.",
|
|
4537
5284
|
tokenRecipes: {
|
|
@@ -4563,6 +5310,10 @@ var curatedSiteStyles = [
|
|
|
4563
5310
|
defineCuratedSiteStyle({
|
|
4564
5311
|
id: "site-style:quiet-luxury",
|
|
4565
5312
|
name: "Quiet Luxury",
|
|
5313
|
+
themeOverrides: {
|
|
5314
|
+
accordions: quietUnderlinedAccordionSystem,
|
|
5315
|
+
testimonialQuote: serifDisplayQuote
|
|
5316
|
+
},
|
|
4566
5317
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
4567
5318
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
4568
5319
|
siteCreatorSelection: {
|
|
@@ -4605,6 +5356,10 @@ var curatedSiteStyles = [
|
|
|
4605
5356
|
defineCuratedSiteStyle({
|
|
4606
5357
|
id: "site-style:practical-services",
|
|
4607
5358
|
name: "Practical Services",
|
|
5359
|
+
themeOverrides: {
|
|
5360
|
+
accordions: boldBorderedAccordionSystem,
|
|
5361
|
+
testimonialQuote: accentGlyphQuote
|
|
5362
|
+
},
|
|
4608
5363
|
description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
|
|
4609
5364
|
generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
|
|
4610
5365
|
siteCreatorSelection: { kind: "primary_goal_support" },
|
|
@@ -4645,6 +5400,11 @@ var curatedSiteStyles = [
|
|
|
4645
5400
|
defineCuratedSiteStyle({
|
|
4646
5401
|
id: "site-style:modern-wellness",
|
|
4647
5402
|
name: "Modern Wellness",
|
|
5403
|
+
themeOverrides: {
|
|
5404
|
+
accordions: quietUnderlinedAccordionSystem,
|
|
5405
|
+
testimonialQuote: serifDisplayQuote
|
|
5406
|
+
},
|
|
5407
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4648
5408
|
description: "Natural, current, and reassuring for practitioners, studios, and wellbeing offers.",
|
|
4649
5409
|
generationBrief: "Keep the tone warm and practical. Use gentle section variation, natural materials, and inclusive copy without making medical claims.",
|
|
4650
5410
|
tokenRecipes: {
|
|
@@ -4676,51 +5436,178 @@ var curatedSiteStyles = [
|
|
|
4676
5436
|
defineCuratedSiteStyle({
|
|
4677
5437
|
id: "site-style:quiet-practice",
|
|
4678
5438
|
name: "Quiet Practice",
|
|
5439
|
+
themeOverrides: {
|
|
5440
|
+
accordions: quietUnderlinedAccordionSystem,
|
|
5441
|
+
testimonialQuote: serifDisplayQuote
|
|
5442
|
+
},
|
|
4679
5443
|
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
4680
5444
|
generationBrief: "Make services, practitioner trust, preparation notes, and booking routes easy to scan. Keep the tone warm and specific, with quiet confidence rather than spa cliches or medical claims.",
|
|
4681
5445
|
siteCreatorSelection: {
|
|
4682
5446
|
kind: "site_creator_keyword_heuristic",
|
|
4683
5447
|
priority: 30
|
|
4684
5448
|
},
|
|
4685
|
-
selectionKeywordRules: [
|
|
4686
|
-
{ kind: "substring", value: "massage" },
|
|
4687
|
-
{ kind: "word", value: "bodywork" },
|
|
4688
|
-
{ kind: "phrase", value: "appointment practice" },
|
|
4689
|
-
{ kind: "phrase", value: "appointment-first" },
|
|
4690
|
-
{ kind: "substring", value: "practitioner" },
|
|
4691
|
-
{ kind: "substring", value: "therap" },
|
|
4692
|
-
{ kind: "substring", value: "clinic" },
|
|
4693
|
-
{ kind: "phrase", value: "wellness practice" }
|
|
4694
|
-
],
|
|
4695
|
-
tokenRecipes: {
|
|
4696
|
-
palette: "soft-natural",
|
|
4697
|
-
contrast: "standard",
|
|
4698
|
-
radius: "soft",
|
|
4699
|
-
shadow: "subtle",
|
|
4700
|
-
typography: "clean-sans",
|
|
4701
|
-
spacing: "regular",
|
|
4702
|
-
motion: "subtle"
|
|
5449
|
+
selectionKeywordRules: [
|
|
5450
|
+
{ kind: "substring", value: "massage" },
|
|
5451
|
+
{ kind: "word", value: "bodywork" },
|
|
5452
|
+
{ kind: "phrase", value: "appointment practice" },
|
|
5453
|
+
{ kind: "phrase", value: "appointment-first" },
|
|
5454
|
+
{ kind: "substring", value: "practitioner" },
|
|
5455
|
+
{ kind: "substring", value: "therap" },
|
|
5456
|
+
{ kind: "substring", value: "clinic" },
|
|
5457
|
+
{ kind: "phrase", value: "wellness practice" }
|
|
5458
|
+
],
|
|
5459
|
+
tokenRecipes: {
|
|
5460
|
+
palette: "soft-natural",
|
|
5461
|
+
contrast: "standard",
|
|
5462
|
+
radius: "soft",
|
|
5463
|
+
shadow: "subtle",
|
|
5464
|
+
typography: "clean-sans",
|
|
5465
|
+
spacing: "regular",
|
|
5466
|
+
motion: "subtle"
|
|
5467
|
+
},
|
|
5468
|
+
compositionBudget: quietBudget,
|
|
5469
|
+
recommendedHeaderLookIds: [
|
|
5470
|
+
"practical-utility",
|
|
5471
|
+
"clean-base",
|
|
5472
|
+
"centered-calm"
|
|
5473
|
+
],
|
|
5474
|
+
buttonPersonalityChoices: [
|
|
5475
|
+
buttonChoice("pebble"),
|
|
5476
|
+
buttonChoice("soft-pill"),
|
|
5477
|
+
buttonChoice("editorial-link")
|
|
5478
|
+
],
|
|
5479
|
+
paletteVariantChoices: [
|
|
5480
|
+
paletteChoice("soft-natural-stone"),
|
|
5481
|
+
paletteChoice("soft-natural-sage"),
|
|
5482
|
+
paletteChoice("warm-neutral-clay")
|
|
5483
|
+
]
|
|
5484
|
+
}),
|
|
5485
|
+
defineCuratedSiteStyle({
|
|
5486
|
+
id: "site-style:clarity-zen-blue",
|
|
5487
|
+
name: "Clarity Zen",
|
|
5488
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
5489
|
+
description: "Calm, editorial, and reassuring for therapy, counselling, and wellbeing support practices.",
|
|
5490
|
+
generationBrief: "Use a calm, soft palette, editorial serif headings, warm grounded copy, rounded cards, calm proof sections, and clear booking routes. Keep the tone compassionate and straightforward, with professional trust rather than hard-sell wellness language.",
|
|
5491
|
+
siteCreatorSelection: {
|
|
5492
|
+
kind: "site_creator_keyword_heuristic",
|
|
5493
|
+
priority: 25
|
|
5494
|
+
},
|
|
5495
|
+
selectionKeywordRules: [
|
|
5496
|
+
{ kind: "substring", value: "psychotherap" },
|
|
5497
|
+
{ kind: "phrase", value: "mental health" },
|
|
5498
|
+
{ kind: "phrase", value: "talk therapy" },
|
|
5499
|
+
{ kind: "phrase", value: "therapy and wellbeing" }
|
|
5500
|
+
],
|
|
5501
|
+
tokenRecipes: {
|
|
5502
|
+
palette: "brand-led",
|
|
5503
|
+
contrast: "standard",
|
|
5504
|
+
radius: "rounded",
|
|
5505
|
+
shadow: "subtle",
|
|
5506
|
+
typography: "serif-editorial",
|
|
5507
|
+
spacing: "airy",
|
|
5508
|
+
motion: "subtle"
|
|
5509
|
+
},
|
|
5510
|
+
compositionBudget: balancedBudget,
|
|
5511
|
+
themeOverrides: {
|
|
5512
|
+
accordions: editorialDividedAccordionSystem,
|
|
5513
|
+
cards: clarityZenCardSystem,
|
|
5514
|
+
testimonialQuote: serifDisplayQuote,
|
|
5515
|
+
typography: {
|
|
5516
|
+
body: {
|
|
5517
|
+
family: "Roboto, system-ui, sans-serif",
|
|
5518
|
+
size: "md",
|
|
5519
|
+
weight: "regular",
|
|
5520
|
+
lineHeight: "relaxed",
|
|
5521
|
+
letterSpacing: "normal"
|
|
5522
|
+
},
|
|
5523
|
+
headings: {
|
|
5524
|
+
// Forum ships a single 400 weight; keep every heading weight
|
|
5525
|
+
// 'regular' so the Google Fonts request stays valid.
|
|
5526
|
+
default: {
|
|
5527
|
+
family: "Forum, Georgia, serif",
|
|
5528
|
+
weight: "regular",
|
|
5529
|
+
lineHeight: "normal",
|
|
5530
|
+
letterSpacing: "normal",
|
|
5531
|
+
colorToken: "text",
|
|
5532
|
+
italic: null,
|
|
5533
|
+
case: null
|
|
5534
|
+
},
|
|
5535
|
+
h1: {
|
|
5536
|
+
size: "xl",
|
|
5537
|
+
weight: "regular",
|
|
5538
|
+
lineHeight: "normal",
|
|
5539
|
+
letterSpacing: "normal",
|
|
5540
|
+
italic: null
|
|
5541
|
+
},
|
|
5542
|
+
h2: {
|
|
5543
|
+
size: "xl",
|
|
5544
|
+
weight: "regular",
|
|
5545
|
+
lineHeight: "normal",
|
|
5546
|
+
letterSpacing: "normal",
|
|
5547
|
+
italic: null
|
|
5548
|
+
},
|
|
5549
|
+
h3: {
|
|
5550
|
+
size: "md",
|
|
5551
|
+
weight: "regular",
|
|
5552
|
+
lineHeight: "normal",
|
|
5553
|
+
letterSpacing: "normal",
|
|
5554
|
+
italic: null
|
|
5555
|
+
}
|
|
5556
|
+
},
|
|
5557
|
+
scale: "majorThird"
|
|
5558
|
+
},
|
|
5559
|
+
bodyText: {
|
|
5560
|
+
intro: {
|
|
5561
|
+
paragraphSize: "default",
|
|
5562
|
+
headingSize: "editorial"
|
|
5563
|
+
}
|
|
5564
|
+
}
|
|
5565
|
+
},
|
|
5566
|
+
defaultBlockVariants: {
|
|
5567
|
+
"block.faq": "split-heading-columns"
|
|
4703
5568
|
},
|
|
4704
|
-
|
|
5569
|
+
recommendedAppearancePresetIds: [
|
|
5570
|
+
"hero-split-editorial",
|
|
5571
|
+
"intro-portrait-bio",
|
|
5572
|
+
"intro-organic-statement",
|
|
5573
|
+
"feature-cards-soft-panels",
|
|
5574
|
+
"feature-cards-editorial-columns",
|
|
5575
|
+
"feature-cards-photo-tiles",
|
|
5576
|
+
"media-text-quiet-story",
|
|
5577
|
+
"testimonials-non-carded",
|
|
5578
|
+
"faq-contained-help",
|
|
5579
|
+
"contact-form-panel"
|
|
5580
|
+
],
|
|
4705
5581
|
recommendedHeaderLookIds: [
|
|
4706
|
-
"
|
|
4707
|
-
"
|
|
4708
|
-
"
|
|
5582
|
+
"centered-calm",
|
|
5583
|
+
"serif-line",
|
|
5584
|
+
"minimal-transparent"
|
|
5585
|
+
],
|
|
5586
|
+
recommendedFooterLookIds: [
|
|
5587
|
+
"footer-centered-calm",
|
|
5588
|
+
"footer-editorial-columns",
|
|
5589
|
+
"footer-muted-grounding"
|
|
4709
5590
|
],
|
|
4710
5591
|
buttonPersonalityChoices: [
|
|
4711
|
-
buttonChoice("pebble"),
|
|
4712
5592
|
buttonChoice("soft-pill"),
|
|
5593
|
+
buttonChoice("pebble"),
|
|
4713
5594
|
buttonChoice("editorial-link")
|
|
4714
5595
|
],
|
|
4715
5596
|
paletteVariantChoices: [
|
|
5597
|
+
paletteChoice("soft-natural-lilac"),
|
|
5598
|
+
paletteChoice("soft-natural-watercolor"),
|
|
4716
5599
|
paletteChoice("soft-natural-stone"),
|
|
4717
|
-
paletteChoice("
|
|
4718
|
-
paletteChoice("warm-neutral-clay")
|
|
5600
|
+
paletteChoice("warm-neutral-cream")
|
|
4719
5601
|
]
|
|
4720
5602
|
}),
|
|
4721
5603
|
defineCuratedSiteStyle({
|
|
4722
5604
|
id: "site-style:personal-retreat-journal",
|
|
4723
5605
|
name: "Personal Retreat Journal",
|
|
5606
|
+
themeOverrides: {
|
|
5607
|
+
accordions: editorialDividedAccordionSystem,
|
|
5608
|
+
testimonialQuote: serifDisplayQuote
|
|
5609
|
+
},
|
|
5610
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4724
5611
|
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
4725
5612
|
generationBrief: "Center the practitioner as the guide, then make private sessions, classes, retreats, and resources feel like clear pathways. Keep retreat copy grounded and practical, with enough editorial warmth for longer reading.",
|
|
4726
5613
|
siteCreatorSelection: {
|
|
@@ -4765,6 +5652,11 @@ var curatedSiteStyles = [
|
|
|
4765
5652
|
defineCuratedSiteStyle({
|
|
4766
5653
|
id: "site-style:tactile-workshop",
|
|
4767
5654
|
name: "Tactile Workshop",
|
|
5655
|
+
themeOverrides: {
|
|
5656
|
+
accordions: warmInsetAccordionSystem,
|
|
5657
|
+
testimonialQuote: accentGlyphQuote
|
|
5658
|
+
},
|
|
5659
|
+
headingDecoration: { family: "organic-squiggle", colorToken: "primary" },
|
|
4768
5660
|
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
4769
5661
|
generationBrief: "Lead with objects, materials, studio process, and practical booking detail. Keep the tone warm and direct, with useful mess, clear dates, and enough gallery rhythm to feel like a real creative studio.",
|
|
4770
5662
|
siteCreatorSelection: {
|
|
@@ -4815,6 +5707,7 @@ var curatedSiteStyles = [
|
|
|
4815
5707
|
defineCuratedSiteStyle({
|
|
4816
5708
|
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
4817
5709
|
name: "Soft Earth",
|
|
5710
|
+
headingDecoration: { family: "organic-squiggle", colorToken: "primary" },
|
|
4818
5711
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
4819
5712
|
generationBrief: "Use cream space, terracotta CTAs, olive quote bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community quotes, and an FAQ with a full-width intro above two columns of questions when content allows.",
|
|
4820
5713
|
siteCreatorSelection: {
|
|
@@ -4887,7 +5780,8 @@ var curatedSiteStyles = [
|
|
|
4887
5780
|
headingSize: "editorial"
|
|
4888
5781
|
}
|
|
4889
5782
|
},
|
|
4890
|
-
accordions: softEarthAccordionSystem
|
|
5783
|
+
accordions: softEarthAccordionSystem,
|
|
5784
|
+
testimonialQuote: accentGlyphQuote
|
|
4891
5785
|
},
|
|
4892
5786
|
defaultBlockVariants: {
|
|
4893
5787
|
"block.faq": "question-columns"
|
|
@@ -4897,7 +5791,7 @@ var curatedSiteStyles = [
|
|
|
4897
5791
|
"intro-organic-statement",
|
|
4898
5792
|
"feature-cards-raised-rule",
|
|
4899
5793
|
"events-lined-panel",
|
|
4900
|
-
"testimonials-
|
|
5794
|
+
"testimonials-non-carded",
|
|
4901
5795
|
"contact-form-panel"
|
|
4902
5796
|
],
|
|
4903
5797
|
recommendedHeaderLookIds: [
|
|
@@ -4925,6 +5819,11 @@ var curatedSiteStyles = [
|
|
|
4925
5819
|
defineCuratedSiteStyle({
|
|
4926
5820
|
id: "site-style:bold-launch",
|
|
4927
5821
|
name: "Bold Launch",
|
|
5822
|
+
themeOverrides: {
|
|
5823
|
+
accordions: boldBorderedAccordionSystem,
|
|
5824
|
+
testimonialQuote: accentGlyphQuote
|
|
5825
|
+
},
|
|
5826
|
+
headingDecoration: { family: "short-center-rule", colorToken: "primary" },
|
|
4928
5827
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
4929
5828
|
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
4930
5829
|
siteCreatorSelection: {
|
|
@@ -4970,6 +5869,7 @@ var curatedSiteStyles = [
|
|
|
4970
5869
|
defineCuratedSiteStyle({
|
|
4971
5870
|
id: "site-style:south-west-twerk-school",
|
|
4972
5871
|
name: "South West Twerk School",
|
|
5872
|
+
headingDecoration: { family: "organic-squiggle", colorToken: "primary" },
|
|
4973
5873
|
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
4974
5874
|
generationBrief: "Use confident rhythm, bold burgundy-and-gold accents, large editorial intro copy, strong booking routes, and dark feature sections where proof or forms need emphasis.",
|
|
4975
5875
|
tokenRecipes: {
|
|
@@ -4989,6 +5889,9 @@ var curatedSiteStyles = [
|
|
|
4989
5889
|
],
|
|
4990
5890
|
defaultTypographyPresetId: "typography-preset:bold-display",
|
|
4991
5891
|
themeOverrides: {
|
|
5892
|
+
accordions: boldBorderedAccordionSystem,
|
|
5893
|
+
cards: southWestCardSystem,
|
|
5894
|
+
testimonialQuote: accentGlyphQuote,
|
|
4992
5895
|
bodyText: {
|
|
4993
5896
|
intro: {
|
|
4994
5897
|
paragraphSize: "editorial",
|
|
@@ -5001,7 +5904,7 @@ var curatedSiteStyles = [
|
|
|
5001
5904
|
"hero-brand-scrim-fixed-frame",
|
|
5002
5905
|
"body-text-editorial-intro",
|
|
5003
5906
|
"schedule-details-brand-depth",
|
|
5004
|
-
"testimonials-
|
|
5907
|
+
"testimonials-statement-cards",
|
|
5005
5908
|
"contact-form-brand-depth-card"
|
|
5006
5909
|
],
|
|
5007
5910
|
recommendedHeaderLookIds: [
|
|
@@ -5704,14 +6607,77 @@ ${root} {
|
|
|
5704
6607
|
}
|
|
5705
6608
|
|
|
5706
6609
|
// ../theme-core/src/blocks/vars/testimonials.ts
|
|
5707
|
-
|
|
6610
|
+
var QUOTE_SCALE_SIZE = {
|
|
6611
|
+
sm: "2.5rem",
|
|
6612
|
+
md: "3.5rem",
|
|
6613
|
+
// 4.375rem == 3.5rem * 1.25, matching the legacy accent-quote mark size.
|
|
6614
|
+
lg: "4.375rem",
|
|
6615
|
+
xl: "clamp(3.5rem, 2rem + 4vw, 5.5rem)"
|
|
6616
|
+
};
|
|
6617
|
+
function resolveTestimonialQuoteVars(treatment) {
|
|
6618
|
+
if (!treatment) {
|
|
6619
|
+
return {
|
|
6620
|
+
size: QUOTE_SCALE_SIZE.md,
|
|
6621
|
+
opacity: "0.08",
|
|
6622
|
+
color: "rgb(var(--tb-primary))",
|
|
6623
|
+
font: "inherit",
|
|
6624
|
+
weight: "700",
|
|
6625
|
+
display: "block"
|
|
6626
|
+
};
|
|
6627
|
+
}
|
|
6628
|
+
if (treatment.style === "none") {
|
|
6629
|
+
return {
|
|
6630
|
+
size: QUOTE_SCALE_SIZE.md,
|
|
6631
|
+
opacity: "0",
|
|
6632
|
+
color: "rgb(var(--tb-primary))",
|
|
6633
|
+
font: "inherit",
|
|
6634
|
+
weight: "700",
|
|
6635
|
+
display: "none"
|
|
6636
|
+
};
|
|
6637
|
+
}
|
|
6638
|
+
const base = treatment.style === "serif-display" ? {
|
|
6639
|
+
fontFamily: "heading",
|
|
6640
|
+
scale: "xl",
|
|
6641
|
+
colorToken: "primary",
|
|
6642
|
+
opacity: 1
|
|
6643
|
+
} : {
|
|
6644
|
+
// accent-glyph
|
|
6645
|
+
fontFamily: "body",
|
|
6646
|
+
scale: "lg",
|
|
6647
|
+
colorToken: "secondary",
|
|
6648
|
+
opacity: 1
|
|
6649
|
+
};
|
|
6650
|
+
const fontFamily = treatment.fontFamily ?? base.fontFamily;
|
|
6651
|
+
const scale = treatment.scale ?? base.scale;
|
|
6652
|
+
const colorToken = treatment.colorToken ?? base.colorToken;
|
|
6653
|
+
const opacity = treatment.opacity ?? base.opacity;
|
|
6654
|
+
return {
|
|
6655
|
+
size: QUOTE_SCALE_SIZE[scale],
|
|
6656
|
+
opacity: String(opacity),
|
|
6657
|
+
color: rgbColorValue(colorToken),
|
|
6658
|
+
font: fontFamily === "heading" ? "var(--font-heading)" : "var(--font-body, inherit)",
|
|
6659
|
+
// Heading-font display marks render at the family's natural weight (Forum
|
|
6660
|
+
// ships a single 400) to avoid synthetic bold; glyph marks stay heavy.
|
|
6661
|
+
weight: fontFamily === "heading" ? "400" : "700",
|
|
6662
|
+
display: "block"
|
|
6663
|
+
};
|
|
6664
|
+
}
|
|
6665
|
+
function generateTestimonialsVars({
|
|
6666
|
+
themeId,
|
|
6667
|
+
theme
|
|
6668
|
+
}) {
|
|
5708
6669
|
const root = `:where([data-theme-scope="${themeId}"]) :where([data-block="testimonials"])`;
|
|
6670
|
+
const quote = resolveTestimonialQuoteVars(theme.testimonialQuote);
|
|
5709
6671
|
return `
|
|
5710
6672
|
${root} {
|
|
5711
6673
|
--rb-testimonial-avatar-size: 3rem;
|
|
5712
6674
|
--rb-testimonial-avatar-border-radius: 9999px;
|
|
5713
|
-
--rb-testimonial-quote-size:
|
|
5714
|
-
--rb-testimonial-quote-opacity:
|
|
6675
|
+
--rb-testimonial-quote-size: ${quote.size};
|
|
6676
|
+
--rb-testimonial-quote-opacity: ${quote.opacity};
|
|
6677
|
+
--rb-testimonial-quote-color: ${quote.color};
|
|
6678
|
+
--rb-testimonial-quote-font: ${quote.font};
|
|
6679
|
+
--rb-testimonial-quote-weight: ${quote.weight};
|
|
6680
|
+
--rb-testimonial-quote-display: ${quote.display};
|
|
5715
6681
|
|
|
5716
6682
|
/* Carousel arrows (defaults: primary background + onPrimary icon) */
|
|
5717
6683
|
--rb-testimonial-carousel-arrow-bg: rgb(var(--tb-primary));
|
|
@@ -7508,41 +8474,52 @@ var containerResponsiveThemeCss = `/*
|
|
|
7508
8474
|
}
|
|
7509
8475
|
|
|
7510
8476
|
.rb-container-pad-none {
|
|
7511
|
-
|
|
8477
|
+
--rb-card-pad: 0rem;
|
|
8478
|
+
padding: var(--rb-card-pad);
|
|
7512
8479
|
}
|
|
7513
8480
|
.rb-container-pad-compact {
|
|
7514
|
-
|
|
8481
|
+
--rb-card-pad: 1rem;
|
|
8482
|
+
padding: var(--rb-card-pad);
|
|
7515
8483
|
}
|
|
7516
8484
|
.rb-container-pad-cozy {
|
|
7517
|
-
|
|
8485
|
+
--rb-card-pad: 1.5rem;
|
|
8486
|
+
padding: var(--rb-card-pad);
|
|
7518
8487
|
}
|
|
7519
8488
|
.rb-container-pad-medium {
|
|
7520
|
-
|
|
8489
|
+
--rb-card-pad: 1.5rem;
|
|
8490
|
+
padding: var(--rb-card-pad);
|
|
7521
8491
|
}
|
|
7522
8492
|
.rb-container-pad-comfortable {
|
|
7523
|
-
|
|
8493
|
+
--rb-card-pad: 2rem;
|
|
8494
|
+
padding: var(--rb-card-pad);
|
|
7524
8495
|
}
|
|
7525
8496
|
.rb-container-pad-spacious {
|
|
7526
|
-
|
|
8497
|
+
--rb-card-pad: 2.5rem;
|
|
8498
|
+
padding: var(--rb-card-pad);
|
|
7527
8499
|
}
|
|
7528
8500
|
|
|
7529
8501
|
@container rb-site (min-width: 640px) {
|
|
7530
8502
|
|
|
7531
8503
|
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
7532
8504
|
.rb-container-pad-compact {
|
|
7533
|
-
|
|
8505
|
+
--rb-card-pad: 1.5rem;
|
|
8506
|
+
padding: var(--rb-card-pad);
|
|
7534
8507
|
}
|
|
7535
8508
|
.rb-container-pad-cozy {
|
|
7536
|
-
|
|
8509
|
+
--rb-card-pad: 2rem;
|
|
8510
|
+
padding: var(--rb-card-pad);
|
|
7537
8511
|
}
|
|
7538
8512
|
.rb-container-pad-medium {
|
|
7539
|
-
|
|
8513
|
+
--rb-card-pad: 2rem;
|
|
8514
|
+
padding: var(--rb-card-pad);
|
|
7540
8515
|
}
|
|
7541
8516
|
.rb-container-pad-comfortable {
|
|
7542
|
-
|
|
8517
|
+
--rb-card-pad: 2.5rem;
|
|
8518
|
+
padding: var(--rb-card-pad);
|
|
7543
8519
|
}
|
|
7544
8520
|
.rb-container-pad-spacious {
|
|
7545
|
-
|
|
8521
|
+
--rb-card-pad: 3.5rem;
|
|
8522
|
+
padding: var(--rb-card-pad);
|
|
7546
8523
|
}
|
|
7547
8524
|
}
|
|
7548
8525
|
|
|
@@ -7717,8 +8694,15 @@ var containerResponsiveThemeCss = `/*
|
|
|
7717
8694
|
/* Shared: Site document overlay header clearance */
|
|
7718
8695
|
/* -------------------------------------------------------------------------- */
|
|
7719
8696
|
|
|
7720
|
-
:where(.theme-scope)
|
|
7721
|
-
|
|
8697
|
+
:where(.theme-scope)
|
|
8698
|
+
:where([data-site-document-overlay-content='true'])
|
|
8699
|
+
:where([data-block]):first-of-type
|
|
8700
|
+
> :where([data-slot='section'])
|
|
8701
|
+
> :where(.rb-container) {
|
|
8702
|
+
padding-top: calc(
|
|
8703
|
+
var(--site-overlay-header-clearance, 0px) +
|
|
8704
|
+
var(--site-overlay-opening-content-extra-pad, 0px)
|
|
8705
|
+
);
|
|
7722
8706
|
}
|
|
7723
8707
|
|
|
7724
8708
|
/* -------------------------------------------------------------------------- */
|
|
@@ -7804,6 +8788,22 @@ var containerResponsiveThemeCss = `/*
|
|
|
7804
8788
|
}
|
|
7805
8789
|
}
|
|
7806
8790
|
|
|
8791
|
+
/* -------------------------------------------------------------------------- */
|
|
8792
|
+
/* Header: Mobile floating/glass backing */
|
|
8793
|
+
/* -------------------------------------------------------------------------- */
|
|
8794
|
+
|
|
8795
|
+
:where(.theme-scope) .header-variant-floating .header-mobile-bar {
|
|
8796
|
+
align-items: flex-start;
|
|
8797
|
+
margin-top: 0.75rem;
|
|
8798
|
+
}
|
|
8799
|
+
|
|
8800
|
+
:where(.theme-scope) .header-variant-floating .nav-mobile-toggle {
|
|
8801
|
+
border: 1px solid rgb(var(--tb-border) / 0.82);
|
|
8802
|
+
background: rgb(var(--tb-surface) / 0.96);
|
|
8803
|
+
color: rgb(var(--tb-text));
|
|
8804
|
+
box-shadow: 0 10px 28px rgb(var(--tb-neutral-950) / 0.12);
|
|
8805
|
+
}
|
|
8806
|
+
|
|
7807
8807
|
/*
|
|
7808
8808
|
* Theme Scope Styles
|
|
7809
8809
|
*
|
|
@@ -8740,6 +9740,56 @@ var containerResponsiveThemeCss = `/*
|
|
|
8740
9740
|
transition: height 300ms var(--motion-ease, ease);
|
|
8741
9741
|
}
|
|
8742
9742
|
|
|
9743
|
+
:where(.theme-scope) .header-logo-size-compact.rb-header-logo-sm {
|
|
9744
|
+
height: 2rem;
|
|
9745
|
+
}
|
|
9746
|
+
:where(.theme-scope) .header-logo-size-compact.rb-header-logo-lg {
|
|
9747
|
+
height: 2.5rem;
|
|
9748
|
+
}
|
|
9749
|
+
:where(.theme-scope) .header-logo-size-standard.rb-header-logo-sm {
|
|
9750
|
+
height: 2.5rem;
|
|
9751
|
+
}
|
|
9752
|
+
:where(.theme-scope) .header-logo-size-standard.rb-header-logo-lg {
|
|
9753
|
+
height: 3rem;
|
|
9754
|
+
}
|
|
9755
|
+
:where(.theme-scope) .header-logo-size-generous.rb-header-logo-sm {
|
|
9756
|
+
height: 3.5rem;
|
|
9757
|
+
}
|
|
9758
|
+
:where(.theme-scope) .header-logo-size-generous.rb-header-logo-lg {
|
|
9759
|
+
height: 4.5rem;
|
|
9760
|
+
}
|
|
9761
|
+
:where(.theme-scope) .header-logo-size-display.rb-header-logo-sm {
|
|
9762
|
+
height: 7.5rem;
|
|
9763
|
+
}
|
|
9764
|
+
:where(.theme-scope) .header-logo-size-display.rb-header-logo-lg {
|
|
9765
|
+
height: 8rem;
|
|
9766
|
+
}
|
|
9767
|
+
|
|
9768
|
+
:where(.theme-scope) .header-logo-accommodation-plate,
|
|
9769
|
+
:where(.theme-scope) .header-logo-accommodation-centered-badge,
|
|
9770
|
+
:where(.theme-scope) .header-logo-accommodation-popout-badge,
|
|
9771
|
+
:where(.theme-scope) .header-logo-accommodation-centered-masthead {
|
|
9772
|
+
border-radius: var(--radius-md, 0.5rem);
|
|
9773
|
+
background: var(--color-surface, #fff);
|
|
9774
|
+
box-shadow: var(--shadow-sm, 0 1px 2px rgb(0 0 0 / 0.08));
|
|
9775
|
+
padding: 0.5rem;
|
|
9776
|
+
}
|
|
9777
|
+
|
|
9778
|
+
:where(.theme-scope) .header-logo-accommodation-popout-badge {
|
|
9779
|
+
position: relative;
|
|
9780
|
+
z-index: 1;
|
|
9781
|
+
margin-block: -0.35rem -0.9rem;
|
|
9782
|
+
}
|
|
9783
|
+
|
|
9784
|
+
:where(.theme-scope)
|
|
9785
|
+
.header-logo-size-display.header-logo-accommodation-popout-badge {
|
|
9786
|
+
margin-block: -0.75rem -2rem;
|
|
9787
|
+
}
|
|
9788
|
+
|
|
9789
|
+
:where(.theme-scope) .header-logo-accommodation-centered-masthead {
|
|
9790
|
+
padding: 0.75rem 1rem;
|
|
9791
|
+
}
|
|
9792
|
+
|
|
8743
9793
|
/* Site title base font size (replaces rb-text-lg / rb-text-xl utilities) */
|
|
8744
9794
|
:where(.theme-scope) .header-logo-text {
|
|
8745
9795
|
font-size: 1.125rem; /* matches rb-text-lg */
|
|
@@ -8778,13 +9828,45 @@ var containerResponsiveThemeCss = `/*
|
|
|
8778
9828
|
:where(.theme-scope) .rb-header-shrink.header-scrolled .rb-header-logo-lg {
|
|
8779
9829
|
height: 2.5rem;
|
|
8780
9830
|
}
|
|
9831
|
+
:where(.theme-scope)
|
|
9832
|
+
.rb-header-shrink.header-scrolled
|
|
9833
|
+
.header-logo-size-generous.rb-header-logo-sm {
|
|
9834
|
+
height: 2.75rem;
|
|
9835
|
+
}
|
|
9836
|
+
:where(.theme-scope)
|
|
9837
|
+
.rb-header-shrink.header-scrolled
|
|
9838
|
+
.header-logo-size-generous.rb-header-logo-lg {
|
|
9839
|
+
height: 3.25rem;
|
|
9840
|
+
}
|
|
9841
|
+
:where(.theme-scope)
|
|
9842
|
+
.rb-header-shrink.header-scrolled
|
|
9843
|
+
.header-logo-size-display.rb-header-logo-sm,
|
|
9844
|
+
:where(.theme-scope)
|
|
9845
|
+
.rb-header-shrink.header-scrolled
|
|
9846
|
+
.header-logo-size-display.rb-header-logo-lg {
|
|
9847
|
+
height: 5rem;
|
|
9848
|
+
}
|
|
8781
9849
|
:where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
|
|
8782
9850
|
font-size: 0.875rem;
|
|
8783
9851
|
}
|
|
8784
9852
|
|
|
8785
9853
|
@container rb-site (max-width: 767px) {
|
|
8786
9854
|
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
8787
|
-
:where(.theme-scope) .
|
|
9855
|
+
:where(.theme-scope) .header-logo-size-generous.rb-header-logo-sm,
|
|
9856
|
+
:where(.theme-scope) .header-logo-size-generous.rb-header-logo-lg {
|
|
9857
|
+
height: 3rem;
|
|
9858
|
+
}
|
|
9859
|
+
|
|
9860
|
+
:where(.theme-scope) .header-logo-size-display.rb-header-logo-sm,
|
|
9861
|
+
:where(.theme-scope) .header-logo-size-display.rb-header-logo-lg {
|
|
9862
|
+
height: 5.5rem;
|
|
9863
|
+
}
|
|
9864
|
+
|
|
9865
|
+
:where(.theme-scope) .header-logo-accommodation-popout-badge {
|
|
9866
|
+
margin-block: 0;
|
|
9867
|
+
}
|
|
9868
|
+
|
|
9869
|
+
:where(.theme-scope) .rb-header-shrink.header-scrolled .header-logo-text {
|
|
8788
9870
|
font-size: 0.75rem;
|
|
8789
9871
|
}
|
|
8790
9872
|
}
|
|
@@ -13574,11 +14656,13 @@ var containerResponsiveThemeCss = `/*
|
|
|
13574
14656
|
}
|
|
13575
14657
|
|
|
13576
14658
|
:where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-quote {
|
|
14659
|
+
display: var(--rb-testimonial-quote-display, block);
|
|
14660
|
+
font-family: var(--rb-testimonial-quote-font, inherit);
|
|
13577
14661
|
font-size: var(--rb-testimonial-quote-size);
|
|
13578
14662
|
line-height: 1;
|
|
13579
|
-
font-weight: 700;
|
|
14663
|
+
font-weight: var(--rb-testimonial-quote-weight, 700);
|
|
13580
14664
|
opacity: var(--rb-testimonial-quote-opacity);
|
|
13581
|
-
color: rgb(var(--tb-primary));
|
|
14665
|
+
color: var(--rb-testimonial-quote-color, rgb(var(--tb-primary)));
|
|
13582
14666
|
}
|
|
13583
14667
|
|
|
13584
14668
|
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-accent-quote .rb-testimonial-quote {
|
|
@@ -13587,6 +14671,61 @@ var containerResponsiveThemeCss = `/*
|
|
|
13587
14671
|
opacity: 1;
|
|
13588
14672
|
}
|
|
13589
14673
|
|
|
14674
|
+
/* Open editorial testimonial card: boxless, with a hairline rule before the
|
|
14675
|
+
* attribution, an accent ring on the avatar, and comfortable prose. The quote
|
|
14676
|
+
* mark itself is owned by the site-style quote treatment (see the
|
|
14677
|
+
* --rb-testimonial-quote-* vars), not by these rules.
|
|
14678
|
+
*
|
|
14679
|
+
* \`editorial-open\` is the current non-carded look; \`editorial-serif-quote\` is
|
|
14680
|
+
* retained for content saved before the decomposition. */
|
|
14681
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-open,
|
|
14682
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-editorial-serif-quote {
|
|
14683
|
+
background: transparent;
|
|
14684
|
+
border: 0;
|
|
14685
|
+
border-radius: 0;
|
|
14686
|
+
padding: 0.25rem clamp(0.5rem, 1.5vw, 1.5rem);
|
|
14687
|
+
}
|
|
14688
|
+
|
|
14689
|
+
/* styledCard always renders an inner white rb-bg-surface fill layer; a boxless
|
|
14690
|
+
* card must clear it so the section band shows through (otherwise: white box). */
|
|
14691
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open > .rb-bg-surface,
|
|
14692
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote > .rb-bg-surface {
|
|
14693
|
+
background: transparent;
|
|
14694
|
+
}
|
|
14695
|
+
|
|
14696
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-prose,
|
|
14697
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-prose {
|
|
14698
|
+
font-size: 1.0625rem;
|
|
14699
|
+
line-height: 1.7;
|
|
14700
|
+
}
|
|
14701
|
+
|
|
14702
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-attribution,
|
|
14703
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-attribution {
|
|
14704
|
+
margin-top: 1.25rem;
|
|
14705
|
+
padding-top: 1.25rem;
|
|
14706
|
+
border-top: 1px solid rgba(var(--tb-border), 0.75);
|
|
14707
|
+
}
|
|
14708
|
+
|
|
14709
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-open .rb-testimonial-avatar,
|
|
14710
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-editorial-serif-quote .rb-testimonial-avatar {
|
|
14711
|
+
box-shadow:
|
|
14712
|
+
0 0 0 2px rgb(var(--tb-surface)),
|
|
14713
|
+
0 0 0 4px rgba(var(--tb-primary), 0.3);
|
|
14714
|
+
}
|
|
14715
|
+
|
|
14716
|
+
|
|
14717
|
+
/* Split grid: title column + cards. On desktop the title takes one quarter and
|
|
14718
|
+
* the cards fill the remaining three quarters (so title + 3 cards each read as
|
|
14719
|
+
* a quarter). Stacks on mobile. */
|
|
14720
|
+
@container rb-site (min-width: 1024px) {
|
|
14721
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
14722
|
+
:where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-split-grid {
|
|
14723
|
+
grid-template-columns: minmax(0, 1fr) minmax(0, 3fr);
|
|
14724
|
+
align-items: start;
|
|
14725
|
+
}
|
|
14726
|
+
}
|
|
14727
|
+
}
|
|
14728
|
+
|
|
13590
14729
|
|
|
13591
14730
|
/* Testimonials carousel tweaks: arrow styling + gutters + equal-height cards */
|
|
13592
14731
|
:where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn {
|
|
@@ -15072,10 +16211,10 @@ var containerResponsiveThemeCss = `/*
|
|
|
15072
16211
|
|
|
15073
16212
|
:where(.theme-scope) .event-compact-row {
|
|
15074
16213
|
display: grid;
|
|
15075
|
-
grid-template-columns: clamp(
|
|
16214
|
+
grid-template-columns: clamp(5rem, 7vw, 7rem) minmax(0, 1fr) clamp(15rem, 24vw, 21rem);
|
|
15076
16215
|
align-items: center;
|
|
15077
|
-
min-height:
|
|
15078
|
-
padding: 1.
|
|
16216
|
+
min-height: 6.75rem;
|
|
16217
|
+
padding: 1.35rem clamp(1.5rem, 3vw, 2.6rem);
|
|
15079
16218
|
border-bottom: 1px solid var(--event-compact-divider-color);
|
|
15080
16219
|
transition: background-color 150ms ease;
|
|
15081
16220
|
}
|
|
@@ -15114,10 +16253,10 @@ var containerResponsiveThemeCss = `/*
|
|
|
15114
16253
|
:where(.theme-scope) .event-compact-row-date-day {
|
|
15115
16254
|
display: grid;
|
|
15116
16255
|
place-items: center;
|
|
15117
|
-
min-block-size: clamp(
|
|
16256
|
+
min-block-size: clamp(2rem, 3vw, 2.6rem);
|
|
15118
16257
|
color: rgb(var(--tb-text, 17 24 39));
|
|
15119
16258
|
font-family: var(--font-heading, var(--font-body, inherit));
|
|
15120
|
-
font-size: clamp(
|
|
16259
|
+
font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.35rem);
|
|
15121
16260
|
font-weight: 400;
|
|
15122
16261
|
line-height: 1;
|
|
15123
16262
|
}
|
|
@@ -15137,9 +16276,10 @@ var containerResponsiveThemeCss = `/*
|
|
|
15137
16276
|
margin: 0;
|
|
15138
16277
|
color: rgb(var(--tb-text, 17 24 39));
|
|
15139
16278
|
font-family: var(--font-heading, var(--font-body, inherit));
|
|
15140
|
-
|
|
16279
|
+
/* Row titles sit at the theme's h3 scale so section headings stay dominant */
|
|
16280
|
+
font-size: var(--fs-h3-fluid, clamp(1.1rem, 1rem + 0.7vw, 1.5rem));
|
|
15141
16281
|
font-weight: 400;
|
|
15142
|
-
line-height: 1.
|
|
16282
|
+
line-height: 1.2;
|
|
15143
16283
|
overflow: hidden;
|
|
15144
16284
|
text-overflow: ellipsis;
|
|
15145
16285
|
white-space: nowrap;
|
|
@@ -15252,7 +16392,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
15252
16392
|
}
|
|
15253
16393
|
|
|
15254
16394
|
:where(.theme-scope) .event-compact-row-date-day {
|
|
15255
|
-
font-size:
|
|
16395
|
+
font-size: 1.85rem;
|
|
15256
16396
|
}
|
|
15257
16397
|
|
|
15258
16398
|
:where(.theme-scope) .event-compact-row-content {
|
|
@@ -15262,7 +16402,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
15262
16402
|
}
|
|
15263
16403
|
|
|
15264
16404
|
:where(.theme-scope) .event-compact-row-title {
|
|
15265
|
-
font-size: clamp(1.
|
|
16405
|
+
font-size: clamp(1.15rem, 5vw, 1.35rem);
|
|
15266
16406
|
white-space: normal;
|
|
15267
16407
|
}
|
|
15268
16408
|
|
|
@@ -15342,19 +16482,23 @@ var containerResponsiveThemeCss = `/*
|
|
|
15342
16482
|
* =============================================================================
|
|
15343
16483
|
*/
|
|
15344
16484
|
|
|
15345
|
-
|
|
16485
|
+
/*
|
|
16486
|
+
* The mark sits inside a full-width block row so it inherits the heading group's
|
|
16487
|
+
* \`text-align\`: a centred heading centres the mark, a left-aligned heading keeps
|
|
16488
|
+
* it at the start. The heading stacks are flexbox, where \`text-align\` positions
|
|
16489
|
+
* inline content but not flex items \u2014 so the row (a stretched block flex item)
|
|
16490
|
+
* is what carries the alignment, and the inline-block mark follows it. Alignment
|
|
16491
|
+
* is never configured directly; it follows the heading.
|
|
16492
|
+
*/
|
|
16493
|
+
:where(.theme-scope) .rb-heading-decoration-row {
|
|
15346
16494
|
display: block;
|
|
15347
|
-
|
|
15348
|
-
pointer-events: none;
|
|
15349
|
-
}
|
|
15350
|
-
|
|
15351
|
-
:where(.theme-scope) .rb-heading-decoration-placement-after-heading {
|
|
16495
|
+
width: 100%;
|
|
15352
16496
|
margin-top: 0.35rem;
|
|
16497
|
+
pointer-events: none;
|
|
15353
16498
|
}
|
|
15354
16499
|
|
|
15355
|
-
:where(.theme-scope) .rb-heading-decoration
|
|
15356
|
-
|
|
15357
|
-
margin-right: auto;
|
|
16500
|
+
:where(.theme-scope) .rb-heading-decoration {
|
|
16501
|
+
display: inline-block;
|
|
15358
16502
|
}
|
|
15359
16503
|
|
|
15360
16504
|
:where(.theme-scope) .rb-heading-decoration-organic-squiggle {
|
|
@@ -15396,6 +16540,150 @@ var containerResponsiveThemeCss = `/*
|
|
|
15396
16540
|
|
|
15397
16541
|
:where(.theme-scope) .rb-heading-decoration-color-muted {
|
|
15398
16542
|
color: rgb(var(--tb-mutedText));
|
|
16543
|
+
}
|
|
16544
|
+
|
|
16545
|
+
/* =============================================================================
|
|
16546
|
+
* Block: Feature Card Icons
|
|
16547
|
+
* =============================================================================
|
|
16548
|
+
*/
|
|
16549
|
+
|
|
16550
|
+
:where(.theme-scope) .rb-feature-card-icon-zone {
|
|
16551
|
+
display: inline-flex;
|
|
16552
|
+
align-items: center;
|
|
16553
|
+
justify-content: center;
|
|
16554
|
+
flex: 0 0 auto;
|
|
16555
|
+
margin-bottom: 0.125rem;
|
|
16556
|
+
color: rgb(var(--tb-primary));
|
|
16557
|
+
}
|
|
16558
|
+
|
|
16559
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--empty {
|
|
16560
|
+
visibility: hidden;
|
|
16561
|
+
}
|
|
16562
|
+
|
|
16563
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--plain {
|
|
16564
|
+
width: 1.5rem;
|
|
16565
|
+
height: 1.5rem;
|
|
16566
|
+
}
|
|
16567
|
+
|
|
16568
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--soft-badge,
|
|
16569
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--utility-badge {
|
|
16570
|
+
width: 2.5rem;
|
|
16571
|
+
height: 2.5rem;
|
|
16572
|
+
border-radius: var(--rb-block-radius, 0.75rem);
|
|
16573
|
+
}
|
|
16574
|
+
|
|
16575
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--soft-badge {
|
|
16576
|
+
background-color: rgb(var(--tb-primary) / 10%);
|
|
16577
|
+
}
|
|
16578
|
+
|
|
16579
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--utility-badge {
|
|
16580
|
+
background-color: rgb(var(--tb-surface));
|
|
16581
|
+
border: 1px solid rgb(var(--tb-border));
|
|
16582
|
+
box-shadow: 0 1px 2px rgba(var(--tb-shadow), 0.08);
|
|
16583
|
+
}
|
|
16584
|
+
|
|
16585
|
+
:where(.theme-scope) .rb-feature-card-icon {
|
|
16586
|
+
width: 1.25rem;
|
|
16587
|
+
height: 1.25rem;
|
|
16588
|
+
}
|
|
16589
|
+
|
|
16590
|
+
:where(.theme-scope) .rb-feature-card-icon--generated {
|
|
16591
|
+
object-fit: contain;
|
|
16592
|
+
}
|
|
16593
|
+
|
|
16594
|
+
:where(.theme-scope) .rb-feature-card-icon-zone--plain .rb-feature-card-icon {
|
|
16595
|
+
width: 1.5rem;
|
|
16596
|
+
height: 1.5rem;
|
|
16597
|
+
}
|
|
16598
|
+
|
|
16599
|
+
/* =============================================================================
|
|
16600
|
+
* Shared: Card treatments
|
|
16601
|
+
*
|
|
16602
|
+
* Visual treatments referenced from \`_cardStyles.treatment\` (see
|
|
16603
|
+
* cardStylesOverrideSchema). Class names are emitted by the boxStyles
|
|
16604
|
+
* transform in @riverbankcms/blocks.
|
|
16605
|
+
*
|
|
16606
|
+
* Also contains feature-card media/padding behaviour shared by all looks:
|
|
16607
|
+
* - card images bleed to the card edges (flush photo tops)
|
|
16608
|
+
* - card-level padding replaces the content stack's fallback padding so the
|
|
16609
|
+
* two never stack up
|
|
16610
|
+
* ============================================================================= */
|
|
16611
|
+
|
|
16612
|
+
/* --- Feature card media + padding behaviour (all looks) -------------------- */
|
|
16613
|
+
|
|
16614
|
+
/*
|
|
16615
|
+
* When a look gives the card real padding (rb-container-pad-*), the image
|
|
16616
|
+
* bleeds to the card edges and the inner content stack drops its fallback
|
|
16617
|
+
* padding so insets don't double up.
|
|
16618
|
+
*/
|
|
16619
|
+
:where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media {
|
|
16620
|
+
width: calc(100% + 2 * var(--rb-card-pad, 0rem));
|
|
16621
|
+
max-width: none;
|
|
16622
|
+
margin: calc(-1 * var(--rb-card-pad, 0rem)) calc(-1 * var(--rb-card-pad, 0rem)) 0;
|
|
16623
|
+
}
|
|
16624
|
+
|
|
16625
|
+
:where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-media + .rb-feature-card-content {
|
|
16626
|
+
margin-top: 1.4rem;
|
|
16627
|
+
}
|
|
16628
|
+
|
|
16629
|
+
:where(.theme-scope) .rb-feature-card[class*="rb-container-pad-"]:not(.rb-container-pad-none) > .rb-feature-card-content {
|
|
16630
|
+
padding: 0;
|
|
16631
|
+
}
|
|
16632
|
+
|
|
16633
|
+
/* --- Soft panel ------------------------------------------------------------ */
|
|
16634
|
+
|
|
16635
|
+
:where(.theme-scope) .rb-card-treatment-soft-panel {
|
|
16636
|
+
transition: transform 250ms ease, box-shadow 250ms ease;
|
|
16637
|
+
}
|
|
16638
|
+
|
|
16639
|
+
@media (prefers-reduced-motion: no-preference) {
|
|
16640
|
+
:where(.theme-scope) .rb-card-treatment-soft-panel:hover {
|
|
16641
|
+
transform: translateY(-3px);
|
|
16642
|
+
box-shadow: 0 0.875rem 1.875rem rgba(var(--tb-shadow, 0 0 0), 0.1);
|
|
16643
|
+
}
|
|
16644
|
+
}
|
|
16645
|
+
|
|
16646
|
+
:where(.theme-scope) .rb-card-treatment-soft-panel .cta-row .button-ghost {
|
|
16647
|
+
padding-inline: 0;
|
|
16648
|
+
}
|
|
16649
|
+
|
|
16650
|
+
/* --- Editorial rule --------------------------------------------------------- */
|
|
16651
|
+
|
|
16652
|
+
/*
|
|
16653
|
+
* Boxless open column: no background, no border box, a short brand rule
|
|
16654
|
+
* sitting on a full-width hairline at the top of the column.
|
|
16655
|
+
*/
|
|
16656
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule {
|
|
16657
|
+
margin-top: 1rem;
|
|
16658
|
+
border-top: 1px solid
|
|
16659
|
+
color-mix(in oklab, rgb(var(--tb-border, 229 231 235)), transparent 25%);
|
|
16660
|
+
}
|
|
16661
|
+
|
|
16662
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-bg-surface {
|
|
16663
|
+
background: transparent;
|
|
16664
|
+
}
|
|
16665
|
+
|
|
16666
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule::before {
|
|
16667
|
+
content: "";
|
|
16668
|
+
position: absolute;
|
|
16669
|
+
top: 0;
|
|
16670
|
+
left: 0;
|
|
16671
|
+
width: 2.75rem;
|
|
16672
|
+
height: 2px;
|
|
16673
|
+
background: rgb(var(--tb-primary, 0 0 0));
|
|
16674
|
+
}
|
|
16675
|
+
|
|
16676
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-media {
|
|
16677
|
+
margin-top: 1.6rem;
|
|
16678
|
+
border-radius: calc(var(--rb-block-radius, 0.75rem) * 0.5);
|
|
16679
|
+
}
|
|
16680
|
+
|
|
16681
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule > .rb-feature-card-content {
|
|
16682
|
+
padding: 1.6rem 0 0.25rem;
|
|
16683
|
+
}
|
|
16684
|
+
|
|
16685
|
+
:where(.theme-scope) .rb-card-treatment-editorial-rule .cta-row .button-ghost {
|
|
16686
|
+
padding-inline: 0;
|
|
15399
16687
|
}`;
|
|
15400
16688
|
|
|
15401
16689
|
// ../theme-core/src/ThemeScopeCore.tsx
|
|
@@ -15590,7 +16878,7 @@ var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="
|
|
|
15590
16878
|
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
15591
16879
|
|
|
15592
16880
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
15593
|
-
import { z as
|
|
16881
|
+
import { z as z19 } from "zod";
|
|
15594
16882
|
|
|
15595
16883
|
// ../theme-core/src/inputs/core.ts
|
|
15596
16884
|
var CORNER_RADIUS_MAP4 = {
|
|
@@ -15783,33 +17071,33 @@ var CSS_DECLARATION_PROPERTY_PATTERN = /^(?:-[a-zA-Z][a-zA-Z0-9-]*|[a-zA-Z][a-zA
|
|
|
15783
17071
|
var UNSAFE_CSS_MARKUP_PATTERN = /[{}<>]|<\/|<script/i;
|
|
15784
17072
|
var EXTERNAL_URL_PATTERN = /url\s*\(\s*['"]?(?:https?:|\/\/)/i;
|
|
15785
17073
|
var JAVASCRIPT_URL_PATTERN2 = /javascript\s*:/i;
|
|
15786
|
-
var themeBridgeConfigSchema =
|
|
15787
|
-
tokens:
|
|
15788
|
-
typography:
|
|
15789
|
-
headingFamily:
|
|
15790
|
-
bodyFamily:
|
|
15791
|
-
headingWeight:
|
|
15792
|
-
bodyWeight:
|
|
17074
|
+
var themeBridgeConfigSchema = z19.object({
|
|
17075
|
+
tokens: z19.record(z19.string(), z19.string()),
|
|
17076
|
+
typography: z19.object({
|
|
17077
|
+
headingFamily: z19.string().optional(),
|
|
17078
|
+
bodyFamily: z19.string().optional(),
|
|
17079
|
+
headingWeight: z19.number().optional(),
|
|
17080
|
+
bodyWeight: z19.number().optional()
|
|
15793
17081
|
}).optional(),
|
|
15794
|
-
spacing:
|
|
15795
|
-
corners:
|
|
15796
|
-
shadows:
|
|
15797
|
-
components:
|
|
15798
|
-
buttons:
|
|
15799
|
-
|
|
15800
|
-
|
|
15801
|
-
variants:
|
|
17082
|
+
spacing: z19.enum(["comfortable", "standard", "dense"]).optional(),
|
|
17083
|
+
corners: z19.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
17084
|
+
shadows: z19.enum(["none", "low", "medium", "high"]).optional(),
|
|
17085
|
+
components: z19.object({
|
|
17086
|
+
buttons: z19.union([
|
|
17087
|
+
z19.boolean(),
|
|
17088
|
+
z19.object({
|
|
17089
|
+
variants: z19.array(z19.enum(["primary", "secondary", "outline", "ghost"])).optional()
|
|
15802
17090
|
})
|
|
15803
17091
|
]).optional(),
|
|
15804
|
-
cards:
|
|
15805
|
-
|
|
15806
|
-
|
|
15807
|
-
variants:
|
|
17092
|
+
cards: z19.union([
|
|
17093
|
+
z19.boolean(),
|
|
17094
|
+
z19.object({
|
|
17095
|
+
variants: z19.array(z19.enum(["default", "elevated", "outlined"])).optional()
|
|
15808
17096
|
})
|
|
15809
17097
|
]).optional(),
|
|
15810
|
-
inputs:
|
|
17098
|
+
inputs: z19.boolean().optional()
|
|
15811
17099
|
}).optional(),
|
|
15812
|
-
overrides:
|
|
17100
|
+
overrides: z19.record(z19.string(), z19.string()).optional()
|
|
15813
17101
|
}).passthrough();
|
|
15814
17102
|
var TOKEN_ALIASES = [
|
|
15815
17103
|
{ source: "text", target: "foreground" },
|