@riverbankcms/sdk 0.76.0 → 0.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-X2HWXFOL.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +1019 -442
- package/dist/{PreviewEditorUI-AQXIXPOH.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +538 -20
- package/dist/_dts/api/src/contentRuntime.d.ts +5 -0
- package/dist/_dts/api/src/siteAssets.d.ts +1 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -2
- package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +28 -0
- package/dist/_dts/block-form/src/client/index.d.ts +2 -2
- package/dist/_dts/block-form/src/index.d.ts +2 -1
- package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +1 -1
- package/dist/_dts/blocks/src/PageRenderer.d.ts +10 -10
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +22 -0
- package/dist/_dts/blocks/src/customBlockRegistry.d.ts +57 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +20 -2
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -0
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/intro.d.ts +24 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -34
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +30 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -1
- package/dist/_dts/blocks/src/system/fields/ctas.d.ts +7 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +16 -2
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/accordionIconTreatment.d.ts +5 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -4
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -0
- package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +48 -0
- package/dist/_dts/content-editor/src/hooks/invalidBlockSelectors.d.ts +4 -0
- package/dist/_dts/content-editor/src/hooks/publishability.d.ts +47 -0
- package/dist/_dts/content-editor/src/index.d.ts +1 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +20 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/customBlockRegistry.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +9 -37
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/index.d.ts +3 -0
- package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +5 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +20 -3
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -4
- package/dist/_dts/preview-next/src/client/preview/previewDesignCoordinator.d.ts +73 -0
- package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +12 -4
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +46 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +6 -1
- package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +14 -0
- package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +8 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -1
- package/dist/_dts/sdk/src/client/types.d.ts +9 -0
- package/dist/_dts/sdk/src/client.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +35 -0
- package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
- package/dist/_dts/sdk/src/index.d.ts +2 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -0
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +15 -0
- package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +16 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/fonts/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -27
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +16 -0
- package/dist/_dts/theme-core/src/schema.d.ts +306 -30
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +81 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +6 -4
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +81 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +119 -3
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +13 -0
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +402 -13
- package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +6 -0
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/persistedIdParseResult.d.ts +9 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +20 -4
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +74 -2
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +189 -0
- package/dist/{chunk-Q4OLG66B.mjs → chunk-2SPENC5M.mjs} +476 -153
- package/dist/{chunk-Z7JLNTJR.mjs → chunk-6SMUFTXD.mjs} +2 -1
- package/dist/{chunk-TW2Y4RR5.mjs → chunk-IENWFSLO.mjs} +365 -52
- package/dist/{chunk-LYI7TEMH.mjs → chunk-KWJPDZH2.mjs} +4682 -1463
- package/dist/{chunk-V5VORNEJ.mjs → chunk-ZYEJLCTN.mjs} +1 -1
- package/dist/cli/index.mjs +2314 -267
- package/dist/client/{accordion-2YHIBOZH.mjs → accordion-RZMQSYLR.mjs} +1 -1
- package/dist/client/{bookingForm-35IBDWAS.mjs → bookingForm-NF4ASVNV.mjs} +2 -2
- package/dist/client/bookings.mjs +92 -0
- package/dist/client/{carousel-K6XG7NZQ.mjs → carousel-LDX47ZIK.mjs} +1 -1
- package/dist/client/{cart-HCFYUTTU.mjs → cart-RGXDS5F4.mjs} +3 -3
- package/dist/client/{checkout-J3U4XR7K.mjs → checkout-P7WWSNNY.mjs} +3 -3
- package/dist/client/{chunk-BOIHIU7E.mjs → chunk-E2TDNXCL.mjs} +1 -1
- package/dist/client/{chunk-PFBX3IQL.mjs → chunk-GMVTOKYG.mjs} +2 -2
- package/dist/client/{chunk-FGUIVT2B.mjs → chunk-JNC7CGHX.mjs} +1 -1
- package/dist/client/{chunk-SNSWVZEP.mjs → chunk-L3DNHIJX.mjs} +3 -3
- package/dist/client/{chunk-7UOSCYY4.mjs → chunk-R56FQ3RR.mjs} +92 -0
- package/dist/client/{chunk-J227A3CQ.mjs → chunk-UFSWADAO.mjs} +1 -1
- package/dist/client/client.mjs +3579 -1351
- package/dist/client/{courseRegistration-ZBXS7VGI.mjs → courseRegistration-7F65K5ZR.mjs} +2 -2
- package/dist/client/{eventCalendar-EQQZHJBA.mjs → eventCalendar-GLSC5KTL.mjs} +4 -4
- package/dist/client/{eventCombined-JCFTGBFQ.mjs → eventCombined-ZHK4WKUR.mjs} +4 -4
- package/dist/client/{eventDetails-HLUTQSYY.mjs → eventDetails-E3PJYBIN.mjs} +4 -4
- package/dist/client/{eventListing-FG4MICVB.mjs → eventListing-EMS3WC3E.mjs} +4 -4
- package/dist/client/{eventRegistration-GUEB7LBT.mjs → eventRegistration-NZOTVNPI.mjs} +4 -4
- package/dist/client/{form-YQEW4YIT.mjs → form-ETFZFATW.mjs} +1 -1
- package/dist/client/{headerSection-GTR3TTRM.mjs → headerSection-4LBP7ULT.mjs} +2 -2
- package/dist/client/hooks.mjs +2226 -402
- package/dist/client/{locationMap-SPC7VGUH.mjs → locationMap-5M655YSJ.mjs} +1 -1
- package/dist/client/{newsletterForm-4IW5BLID.mjs → newsletterForm-QOUYW44O.mjs} +1 -1
- package/dist/client/{productDetail-KP5H2WJO.mjs → productDetail-O4DOCWQG.mjs} +3 -3
- package/dist/client/{productList-3M3M72XZ.mjs → productList-A5RO5WIS.mjs} +3 -3
- package/dist/client/rendering/client.mjs +198 -32
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +3573 -1355
- package/dist/client/{shop-ACQKVGOM.mjs → shop-L4MZH4I2.mjs} +3 -3
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/{sdk-runtime-K7HNB4U2.mjs → sdk-runtime-6UT2S7KZ.mjs} +5 -5
- package/dist/server/components.mjs +3497 -1333
- package/dist/server/config-validation.mjs +2229 -402
- package/dist/server/config.mjs +2229 -402
- package/dist/server/data.mjs +2226 -402
- package/dist/server/index.mjs +31 -2
- package/dist/server/next.mjs +3503 -1329
- package/dist/server/page-converter.mjs +2213 -403
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3497 -1333
- package/dist/server/rendering.mjs +3497 -1333
- package/dist/server/routing.mjs +2250 -363
- package/dist/server/server.mjs +2243 -400
- package/dist/server/theme-bridge.mjs +1313 -1035
- package/dist/server/theme.mjs +237 -12
- package/dist/styles/index.css +1081 -1028
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +0 -8
|
@@ -209,6 +209,7 @@ var ALLOWED_TRANSFORM_IDS = [
|
|
|
209
209
|
"layout.headerRootClass",
|
|
210
210
|
"layout.footerRootClass",
|
|
211
211
|
"layout.headerRootStyle",
|
|
212
|
+
"layout.headerSectionBackground",
|
|
212
213
|
"layout.footerRootStyle",
|
|
213
214
|
// UI (ui.ts)
|
|
214
215
|
"ui.headerNavLinkClass",
|
|
@@ -1092,6 +1093,47 @@ var eyebrowTreatmentValues = [
|
|
|
1092
1093
|
"pill-bounce",
|
|
1093
1094
|
"accent-pill-bounce"
|
|
1094
1095
|
];
|
|
1096
|
+
var visibleHeadingDecorationFamilyValues = [
|
|
1097
|
+
"organic-squiggle",
|
|
1098
|
+
"short-center-rule"
|
|
1099
|
+
];
|
|
1100
|
+
var visibleHeadingDecorationPlacementValues = [
|
|
1101
|
+
"after-heading",
|
|
1102
|
+
"between-heading-and-body",
|
|
1103
|
+
"under-centered-heading"
|
|
1104
|
+
];
|
|
1105
|
+
var headingDecorationOverrideValues = [
|
|
1106
|
+
"site-default",
|
|
1107
|
+
"on",
|
|
1108
|
+
"off"
|
|
1109
|
+
];
|
|
1110
|
+
var headingDecorationColorTokenValues = [
|
|
1111
|
+
"text",
|
|
1112
|
+
"primary",
|
|
1113
|
+
"secondary",
|
|
1114
|
+
"accent",
|
|
1115
|
+
"border",
|
|
1116
|
+
"muted"
|
|
1117
|
+
];
|
|
1118
|
+
var accordionIconSetValues = [
|
|
1119
|
+
"plus",
|
|
1120
|
+
"chevron",
|
|
1121
|
+
"caret",
|
|
1122
|
+
"minimal-cross"
|
|
1123
|
+
];
|
|
1124
|
+
var accordionIconColorTokenValues = [
|
|
1125
|
+
"text",
|
|
1126
|
+
"muted",
|
|
1127
|
+
"primary",
|
|
1128
|
+
"secondary",
|
|
1129
|
+
"accent",
|
|
1130
|
+
"current"
|
|
1131
|
+
];
|
|
1132
|
+
var accordionIconMotionValues = [
|
|
1133
|
+
"none",
|
|
1134
|
+
"rotate",
|
|
1135
|
+
"swap"
|
|
1136
|
+
];
|
|
1095
1137
|
function defineBlockDesignCapability(capability) {
|
|
1096
1138
|
return {
|
|
1097
1139
|
...capability,
|
|
@@ -1101,7 +1143,9 @@ function defineBlockDesignCapability(capability) {
|
|
|
1101
1143
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
1102
1144
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
1103
1145
|
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
1104
|
-
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"]
|
|
1146
|
+
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
|
|
1147
|
+
...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
|
|
1148
|
+
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
1105
1149
|
};
|
|
1106
1150
|
}
|
|
1107
1151
|
|
|
@@ -1292,6 +1336,25 @@ var blockAppearancePresets = [
|
|
|
1292
1336
|
emphasis: "high"
|
|
1293
1337
|
}
|
|
1294
1338
|
}),
|
|
1339
|
+
defineBlockAppearancePreset({
|
|
1340
|
+
kind: "block-design",
|
|
1341
|
+
id: "intro-soft-earth-statement",
|
|
1342
|
+
target: "intro",
|
|
1343
|
+
label: "Soft Earth intro statement",
|
|
1344
|
+
blockKinds: ["block.intro"],
|
|
1345
|
+
design: {
|
|
1346
|
+
sectionSurface: "base",
|
|
1347
|
+
contentFrame: plainFrame,
|
|
1348
|
+
itemSurface: "none",
|
|
1349
|
+
transitionAfter: "soft-fade-short",
|
|
1350
|
+
emphasis: "high",
|
|
1351
|
+
headingDecoration: {
|
|
1352
|
+
family: "organic-squiggle",
|
|
1353
|
+
placement: "after-heading",
|
|
1354
|
+
colorToken: "primary"
|
|
1355
|
+
}
|
|
1356
|
+
}
|
|
1357
|
+
}),
|
|
1295
1358
|
defineBlockAppearancePreset({
|
|
1296
1359
|
kind: "block-design",
|
|
1297
1360
|
id: "offerings-calm-list",
|
|
@@ -1306,6 +1369,25 @@ var blockAppearancePresets = [
|
|
|
1306
1369
|
emphasis: "medium"
|
|
1307
1370
|
}
|
|
1308
1371
|
}),
|
|
1372
|
+
defineBlockAppearancePreset({
|
|
1373
|
+
kind: "block-design",
|
|
1374
|
+
id: "feature-cards-soft-earth-offerings",
|
|
1375
|
+
target: "feature-cards",
|
|
1376
|
+
label: "Soft Earth offering cards",
|
|
1377
|
+
blockKinds: ["block.feature-cards"],
|
|
1378
|
+
design: {
|
|
1379
|
+
sectionSurface: "base",
|
|
1380
|
+
contentFrame: plainFrame,
|
|
1381
|
+
itemSurface: "raised",
|
|
1382
|
+
transitionAfter: "none",
|
|
1383
|
+
emphasis: "high",
|
|
1384
|
+
headingDecoration: {
|
|
1385
|
+
family: "short-center-rule",
|
|
1386
|
+
placement: "under-centered-heading",
|
|
1387
|
+
colorToken: "primary"
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
}),
|
|
1309
1391
|
defineBlockAppearancePreset({
|
|
1310
1392
|
kind: "block-design",
|
|
1311
1393
|
id: "events-base-calendar",
|
|
@@ -1434,6 +1516,26 @@ var blockAppearancePresets = [
|
|
|
1434
1516
|
testimonialCardTreatment: "accent-quote"
|
|
1435
1517
|
}
|
|
1436
1518
|
}),
|
|
1519
|
+
defineBlockAppearancePreset({
|
|
1520
|
+
kind: "block-design",
|
|
1521
|
+
id: "testimonials-soft-earth-proof-band",
|
|
1522
|
+
target: "testimonials",
|
|
1523
|
+
label: "Soft Earth proof band",
|
|
1524
|
+
blockKinds: ["block.testimonials"],
|
|
1525
|
+
design: {
|
|
1526
|
+
sectionSurface: "brand-depth-band",
|
|
1527
|
+
contentFrame: plainFrame,
|
|
1528
|
+
itemSurface: "none",
|
|
1529
|
+
transitionAfter: "soft-fade-short",
|
|
1530
|
+
emphasis: "high",
|
|
1531
|
+
testimonialCardTreatment: "accent-quote",
|
|
1532
|
+
headingDecoration: {
|
|
1533
|
+
family: "short-center-rule",
|
|
1534
|
+
placement: "under-centered-heading",
|
|
1535
|
+
colorToken: "border"
|
|
1536
|
+
}
|
|
1537
|
+
}
|
|
1538
|
+
}),
|
|
1437
1539
|
defineBlockAppearancePreset({
|
|
1438
1540
|
kind: "block-design",
|
|
1439
1541
|
id: "faq-base-accordion",
|
|
@@ -1462,6 +1564,25 @@ var blockAppearancePresets = [
|
|
|
1462
1564
|
emphasis: "low"
|
|
1463
1565
|
}
|
|
1464
1566
|
}),
|
|
1567
|
+
defineBlockAppearancePreset({
|
|
1568
|
+
kind: "block-design",
|
|
1569
|
+
id: "faq-soft-earth-two-column",
|
|
1570
|
+
target: "faq",
|
|
1571
|
+
label: "Soft Earth two-column FAQ",
|
|
1572
|
+
blockKinds: ["block.faq"],
|
|
1573
|
+
design: {
|
|
1574
|
+
sectionSurface: "base",
|
|
1575
|
+
contentFrame: plainFrame,
|
|
1576
|
+
itemSurface: "flat",
|
|
1577
|
+
transitionAfter: "none",
|
|
1578
|
+
emphasis: "medium",
|
|
1579
|
+
accordionIconTreatment: {
|
|
1580
|
+
iconSet: "plus",
|
|
1581
|
+
colorToken: "primary",
|
|
1582
|
+
motion: "swap"
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
}),
|
|
1465
1586
|
defineBlockAppearancePreset({
|
|
1466
1587
|
kind: "block-design",
|
|
1467
1588
|
id: "contact-form-panel",
|
|
@@ -2134,6 +2255,97 @@ var confidentChip = defineButtonPersonality({
|
|
|
2134
2255
|
}
|
|
2135
2256
|
});
|
|
2136
2257
|
|
|
2258
|
+
// ../theme-core/src/buttons/personalities/earth-pill.ts
|
|
2259
|
+
var earthPill = defineButtonPersonality({
|
|
2260
|
+
id: "earth-pill",
|
|
2261
|
+
name: "Earth Pill",
|
|
2262
|
+
description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
|
|
2263
|
+
tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
|
|
2264
|
+
buttonSystem: {
|
|
2265
|
+
global: {
|
|
2266
|
+
cornerStyle: "pill",
|
|
2267
|
+
shadow: "low",
|
|
2268
|
+
textTransform: "none",
|
|
2269
|
+
fontWeight: 500,
|
|
2270
|
+
borderWidth: 1,
|
|
2271
|
+
hoverTransform: "lift",
|
|
2272
|
+
hoverColor: "none",
|
|
2273
|
+
typography: "body",
|
|
2274
|
+
paddingPreset: "default"
|
|
2275
|
+
},
|
|
2276
|
+
sizes: {
|
|
2277
|
+
sm: { padding: "0.5rem 1rem", fontSize: "text-sm" },
|
|
2278
|
+
md: { padding: "0.625rem 1.35rem" },
|
|
2279
|
+
lg: { padding: "0.75rem 1.65rem", fontSize: "text-lg" },
|
|
2280
|
+
xl: { padding: "0.875rem 2rem", fontSize: "text-xl" }
|
|
2281
|
+
},
|
|
2282
|
+
variants: [
|
|
2283
|
+
{
|
|
2284
|
+
id: "primary",
|
|
2285
|
+
name: "Primary",
|
|
2286
|
+
enabled: true,
|
|
2287
|
+
priority: 1,
|
|
2288
|
+
background: { type: "solid", colorToken: "primary" },
|
|
2289
|
+
textColorToken: "primaryForeground",
|
|
2290
|
+
borderRadius: "rounded-full",
|
|
2291
|
+
shadow: { elevation: "low", softness: "soft", position: "bottom" },
|
|
2292
|
+
effects: {
|
|
2293
|
+
hover: [
|
|
2294
|
+
{ effectId: "lift", options: { translateY: "-1px" } },
|
|
2295
|
+
{ effectId: "background-on-hover", options: { colorToken: "accent" } }
|
|
2296
|
+
],
|
|
2297
|
+
active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
|
|
2298
|
+
}
|
|
2299
|
+
},
|
|
2300
|
+
{
|
|
2301
|
+
id: "secondary",
|
|
2302
|
+
name: "Secondary",
|
|
2303
|
+
enabled: true,
|
|
2304
|
+
priority: 2,
|
|
2305
|
+
background: { type: "transparent" },
|
|
2306
|
+
textColorToken: "primary",
|
|
2307
|
+
borderRadius: "rounded-full",
|
|
2308
|
+
border: { widthClass: "border", colorToken: "primary" },
|
|
2309
|
+
effects: {
|
|
2310
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
|
|
2311
|
+
}
|
|
2312
|
+
},
|
|
2313
|
+
{
|
|
2314
|
+
id: "outline",
|
|
2315
|
+
name: "Outline",
|
|
2316
|
+
enabled: true,
|
|
2317
|
+
priority: 3,
|
|
2318
|
+
background: { type: "transparent" },
|
|
2319
|
+
textColorToken: "text",
|
|
2320
|
+
borderRadius: "rounded-full",
|
|
2321
|
+
border: { widthClass: "border", colorToken: "border" },
|
|
2322
|
+
effects: {
|
|
2323
|
+
hover: [{ effectId: "background-on-hover", options: { colorToken: "surfaceAlt" } }]
|
|
2324
|
+
}
|
|
2325
|
+
},
|
|
2326
|
+
{
|
|
2327
|
+
id: "ghost",
|
|
2328
|
+
name: "Ghost",
|
|
2329
|
+
enabled: true,
|
|
2330
|
+
priority: 3,
|
|
2331
|
+
background: { type: "transparent" },
|
|
2332
|
+
textColorToken: "primary",
|
|
2333
|
+
borderRadius: "rounded-full",
|
|
2334
|
+
shadow: { elevation: "none", softness: null, position: "bottom" },
|
|
2335
|
+
sizes: {
|
|
2336
|
+
sm: { padding: "0.25rem 0", fontSize: "text-sm" },
|
|
2337
|
+
md: { padding: "0.375rem 0" },
|
|
2338
|
+
lg: { padding: "0.5rem 0", fontSize: "text-lg" },
|
|
2339
|
+
xl: { padding: "0.625rem 0", fontSize: "text-xl" }
|
|
2340
|
+
},
|
|
2341
|
+
effects: {
|
|
2342
|
+
hover: [{ effectId: "opacity-reduce", options: { reduction: 25 } }]
|
|
2343
|
+
}
|
|
2344
|
+
}
|
|
2345
|
+
]
|
|
2346
|
+
}
|
|
2347
|
+
});
|
|
2348
|
+
|
|
2137
2349
|
// ../theme-core/src/buttons/personalities/editorial-link.ts
|
|
2138
2350
|
var editorialLink = defineButtonPersonality({
|
|
2139
2351
|
id: "editorial-link",
|
|
@@ -2592,6 +2804,7 @@ var softPill = defineButtonPersonality({
|
|
|
2592
2804
|
// ../theme-core/src/buttons/personalities/index.ts
|
|
2593
2805
|
var buttonPersonalities = [
|
|
2594
2806
|
softPill,
|
|
2807
|
+
earthPill,
|
|
2595
2808
|
confidentChip,
|
|
2596
2809
|
editorialLink,
|
|
2597
2810
|
pebble,
|
|
@@ -3163,8 +3376,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
|
3163
3376
|
colorToken: themeColorTokenSchema.nullable().optional()
|
|
3164
3377
|
});
|
|
3165
3378
|
var proseLinkUnderlineStyleSchema = z19.enum(["solid", "dotted", "dashed"]);
|
|
3166
|
-
var proseLinkUnderlineThicknessSchema = z19.enum([
|
|
3167
|
-
|
|
3379
|
+
var proseLinkUnderlineThicknessSchema = z19.enum([
|
|
3380
|
+
"auto",
|
|
3381
|
+
"fromFont",
|
|
3382
|
+
"thin",
|
|
3383
|
+
"medium",
|
|
3384
|
+
"thick"
|
|
3385
|
+
]);
|
|
3386
|
+
var proseLinkUnderlineOffsetSchema = z19.enum([
|
|
3387
|
+
"auto",
|
|
3388
|
+
"tight",
|
|
3389
|
+
"normal",
|
|
3390
|
+
"loose"
|
|
3391
|
+
]);
|
|
3168
3392
|
var proseLinkStyleSchema = z19.object({
|
|
3169
3393
|
colorToken: themeColorTokenSchema.optional(),
|
|
3170
3394
|
hoverColorToken: themeColorTokenSchema.optional(),
|
|
@@ -3175,7 +3399,14 @@ var proseLinkStyleSchema = z19.object({
|
|
|
3175
3399
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
3176
3400
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
3177
3401
|
});
|
|
3178
|
-
var semanticSpacingSchema = z19.enum([
|
|
3402
|
+
var semanticSpacingSchema = z19.enum([
|
|
3403
|
+
"none",
|
|
3404
|
+
"compact",
|
|
3405
|
+
"cozy",
|
|
3406
|
+
"medium",
|
|
3407
|
+
"comfortable",
|
|
3408
|
+
"spacious"
|
|
3409
|
+
]);
|
|
3179
3410
|
var boxRoundedSchema = z19.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
3180
3411
|
var boxBackgroundOverlaySchema = z19.object({
|
|
3181
3412
|
type: z19.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
@@ -3197,12 +3428,36 @@ var boxBackgroundSchema = z19.object({
|
|
|
3197
3428
|
textColor: tokenOrCssColorValueSchema.nullable().optional(),
|
|
3198
3429
|
headingColor: tokenOrCssColorValueSchema.nullable().optional()
|
|
3199
3430
|
});
|
|
3431
|
+
var noHeadingDecorationSchema = z19.object({
|
|
3432
|
+
family: z19.literal("none"),
|
|
3433
|
+
placement: z19.literal("none")
|
|
3434
|
+
});
|
|
3435
|
+
var visibleHeadingDecorationSchema = z19.object({
|
|
3436
|
+
family: z19.enum(visibleHeadingDecorationFamilyValues),
|
|
3437
|
+
placement: z19.enum(visibleHeadingDecorationPlacementValues),
|
|
3438
|
+
colorToken: z19.enum(headingDecorationColorTokenValues).optional()
|
|
3439
|
+
});
|
|
3440
|
+
var headingDecorationSchema = z19.union([
|
|
3441
|
+
noHeadingDecorationSchema,
|
|
3442
|
+
visibleHeadingDecorationSchema
|
|
3443
|
+
]);
|
|
3444
|
+
var accordionIconTreatmentSchema = z19.object({
|
|
3445
|
+
iconSet: z19.enum(accordionIconSetValues),
|
|
3446
|
+
colorToken: z19.enum(accordionIconColorTokenValues),
|
|
3447
|
+
openColorToken: z19.enum(accordionIconColorTokenValues).optional(),
|
|
3448
|
+
motion: z19.enum(accordionIconMotionValues)
|
|
3449
|
+
});
|
|
3200
3450
|
var sectionStylesOverrideSchema = z19.object({
|
|
3201
3451
|
background: boxBackgroundSchema.nullable().optional(),
|
|
3202
3452
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
3203
3453
|
minHeight: z19.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
3204
3454
|
tileTreatment: z19.enum(tileTreatmentValues).nullable().optional(),
|
|
3205
|
-
eyebrowTreatment: z19.enum(eyebrowTreatmentValues).nullable().optional()
|
|
3455
|
+
eyebrowTreatment: z19.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
3456
|
+
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
3457
|
+
// Author-level override consumed by later block/editor rendering phases.
|
|
3458
|
+
// Keeping it in section styles lets existing block save APIs persist it.
|
|
3459
|
+
headingDecorationOverride: z19.enum(headingDecorationOverrideValues).nullable().optional(),
|
|
3460
|
+
accordionIconTreatment: accordionIconTreatmentSchema.nullable().optional()
|
|
3206
3461
|
});
|
|
3207
3462
|
var containerStylesOverrideSchema = z19.object({
|
|
3208
3463
|
background: boxBackgroundSchema.nullable().optional(),
|
|
@@ -3295,9 +3550,17 @@ var inputStyle = z19.object({
|
|
|
3295
3550
|
focus: z19.enum(["glow", "ring", "underline"]),
|
|
3296
3551
|
label: z19.enum(["inside", "above"])
|
|
3297
3552
|
});
|
|
3298
|
-
var headerVariant = z19.enum(["classic", "centered", "transparent", "floating"
|
|
3553
|
+
var headerVariant = z19.enum(["classic", "centered", "transparent", "floating"]);
|
|
3299
3554
|
var headerPositioning = z19.enum(["static", "sticky", "fixed"]);
|
|
3300
|
-
var headerNavStyle = z19.enum([
|
|
3555
|
+
var headerNavStyle = z19.enum([
|
|
3556
|
+
"minimal",
|
|
3557
|
+
"underline",
|
|
3558
|
+
"underline-grow",
|
|
3559
|
+
"capsule",
|
|
3560
|
+
"scale",
|
|
3561
|
+
"frosted",
|
|
3562
|
+
"solid"
|
|
3563
|
+
]);
|
|
3301
3564
|
var navFontWeight = z19.enum(["regular", "medium", "semibold", "bold"]);
|
|
3302
3565
|
var headerMaxWidth = z19.enum(["container", "full"]);
|
|
3303
3566
|
var headerContainerSchema = z19.object({
|
|
@@ -3345,8 +3608,22 @@ var dropdownStyleSchema = z19.object({
|
|
|
3345
3608
|
textSize: z19.enum(["xs", "sm", "base", "lg"]).optional()
|
|
3346
3609
|
// optional = no override (browser default)
|
|
3347
3610
|
}).optional();
|
|
3348
|
-
var headerCtaGapSchema = z19.enum([
|
|
3349
|
-
|
|
3611
|
+
var headerCtaGapSchema = z19.enum([
|
|
3612
|
+
"none",
|
|
3613
|
+
"tight",
|
|
3614
|
+
"compact",
|
|
3615
|
+
"default",
|
|
3616
|
+
"relaxed",
|
|
3617
|
+
"spacious"
|
|
3618
|
+
]);
|
|
3619
|
+
var headerCtaTreatmentSchema = z19.enum([
|
|
3620
|
+
"default",
|
|
3621
|
+
"primary",
|
|
3622
|
+
"secondary",
|
|
3623
|
+
"inverted",
|
|
3624
|
+
"outline",
|
|
3625
|
+
"ghost"
|
|
3626
|
+
]);
|
|
3350
3627
|
var navContainerSchema = z19.object({
|
|
3351
3628
|
type: z19.enum(["none", "pill", "glass"]).default("none"),
|
|
3352
3629
|
tint: z19.string().nullable().optional(),
|
|
@@ -3401,7 +3678,14 @@ var footerMaxWidth = z19.enum(["container", "full"]);
|
|
|
3401
3678
|
var footerMode = z19.enum(["default", "blocks", "default+blocks", "none"]);
|
|
3402
3679
|
var footerNavLayoutMode = z19.enum(["stack", "inline", "inline-wrap"]);
|
|
3403
3680
|
var footerNavLayoutAlign = z19.enum(["start", "center", "end", "space-between"]);
|
|
3404
|
-
var footerSpacing = z19.enum([
|
|
3681
|
+
var footerSpacing = z19.enum([
|
|
3682
|
+
"none",
|
|
3683
|
+
"tight",
|
|
3684
|
+
"compact",
|
|
3685
|
+
"default",
|
|
3686
|
+
"relaxed",
|
|
3687
|
+
"spacious"
|
|
3688
|
+
]);
|
|
3405
3689
|
var footerLogoPlacement = z19.enum(["left", "right", "above", "below"]);
|
|
3406
3690
|
var footerLogoSize = z19.enum(["sm", "md", "lg", "xl"]);
|
|
3407
3691
|
var footerLogoMaxHeight = z19.enum(["sm", "md", "lg", "xl"]);
|
|
@@ -3466,7 +3750,12 @@ var footerSchema = z19.object({
|
|
|
3466
3750
|
logo: footerLogoSchema.optional(),
|
|
3467
3751
|
bottomBar: footerBottomBarSchema.optional()
|
|
3468
3752
|
});
|
|
3469
|
-
var containerPaddingPresetSchema = z19.enum([
|
|
3753
|
+
var containerPaddingPresetSchema = z19.enum([
|
|
3754
|
+
"tight",
|
|
3755
|
+
"compact",
|
|
3756
|
+
"default",
|
|
3757
|
+
"relaxed"
|
|
3758
|
+
]);
|
|
3470
3759
|
var layoutSchema = z19.object({
|
|
3471
3760
|
containerPadding: z19.object({
|
|
3472
3761
|
mobile: containerPaddingPresetSchema.optional(),
|
|
@@ -3474,8 +3763,24 @@ var layoutSchema = z19.object({
|
|
|
3474
3763
|
desktop: containerPaddingPresetSchema.optional()
|
|
3475
3764
|
}).optional()
|
|
3476
3765
|
}).optional();
|
|
3477
|
-
var heroTypographySizeSchema = z19.enum([
|
|
3478
|
-
|
|
3766
|
+
var heroTypographySizeSchema = z19.enum([
|
|
3767
|
+
"sm",
|
|
3768
|
+
"base",
|
|
3769
|
+
"lg",
|
|
3770
|
+
"xl",
|
|
3771
|
+
"2xl",
|
|
3772
|
+
"3xl",
|
|
3773
|
+
"4xl",
|
|
3774
|
+
"5xl",
|
|
3775
|
+
"6xl",
|
|
3776
|
+
"editorial"
|
|
3777
|
+
]);
|
|
3778
|
+
var heroTypographyLineHeightSchema = z19.enum([
|
|
3779
|
+
"tight",
|
|
3780
|
+
"snug",
|
|
3781
|
+
"normal",
|
|
3782
|
+
"relaxed"
|
|
3783
|
+
]);
|
|
3479
3784
|
var heroResponsiveTypographySchema = z19.object({
|
|
3480
3785
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
3481
3786
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
@@ -3910,6 +4215,28 @@ var warmNeutralCream = definePaletteVariant({
|
|
|
3910
4215
|
{ name: "border", hex: "#e0d2b8" }
|
|
3911
4216
|
]
|
|
3912
4217
|
});
|
|
4218
|
+
var warmNeutralSoftEarth = definePaletteVariant({
|
|
4219
|
+
id: "warm-neutral-soft-earth",
|
|
4220
|
+
name: "Warm Neutral \u2014 Soft Earth",
|
|
4221
|
+
description: "Cream ground with terracotta primary, clay accents, and olive depth.",
|
|
4222
|
+
tags: { tone: "classic", energy: "calm", era: "organic" },
|
|
4223
|
+
mode: "light",
|
|
4224
|
+
colors: [
|
|
4225
|
+
{ name: "primary", hex: "#a8573d" },
|
|
4226
|
+
{ name: "secondary", hex: "#72765c" },
|
|
4227
|
+
{ name: "accent", hex: "#c87557" },
|
|
4228
|
+
{ name: "success", hex: "#687854" },
|
|
4229
|
+
{ name: "warning", hex: "#b7863e" },
|
|
4230
|
+
{ name: "destructive", hex: "#a54b3c" },
|
|
4231
|
+
{ name: "background", hex: "#fbf6eb" },
|
|
4232
|
+
{ name: "surface", hex: "#fffdf7" },
|
|
4233
|
+
{ name: "surfaceAlt", hex: "#f0e4d3" },
|
|
4234
|
+
{ name: "muted", hex: "#eadbc6" },
|
|
4235
|
+
{ name: "text", hex: "#30281f" },
|
|
4236
|
+
{ name: "primaryForeground", hex: "#fffaf3" },
|
|
4237
|
+
{ name: "border", hex: "#d9c8b2" }
|
|
4238
|
+
]
|
|
4239
|
+
});
|
|
3913
4240
|
var warmNeutralForest = definePaletteVariant({
|
|
3914
4241
|
id: "warm-neutral-forest",
|
|
3915
4242
|
name: "Warm Neutral \u2014 Forest",
|
|
@@ -3943,6 +4270,7 @@ var paletteVariants = [
|
|
|
3943
4270
|
// Warm-neutral family
|
|
3944
4271
|
warmNeutralClay,
|
|
3945
4272
|
warmNeutralCream,
|
|
4273
|
+
warmNeutralSoftEarth,
|
|
3946
4274
|
warmNeutralForest,
|
|
3947
4275
|
// High-contrast family
|
|
3948
4276
|
highContrastInk,
|
|
@@ -3961,6 +4289,12 @@ var paletteVariantsById = new Map(
|
|
|
3961
4289
|
function asHeaderLookId(value) {
|
|
3962
4290
|
return value;
|
|
3963
4291
|
}
|
|
4292
|
+
function asHeaderLayoutId(value) {
|
|
4293
|
+
return value;
|
|
4294
|
+
}
|
|
4295
|
+
function asHeaderStyleId(value) {
|
|
4296
|
+
return value;
|
|
4297
|
+
}
|
|
3964
4298
|
function baseHeader(theme) {
|
|
3965
4299
|
const {
|
|
3966
4300
|
navLinkStyle: _navLinkStyle,
|
|
@@ -3979,75 +4313,435 @@ function baseHeader(theme) {
|
|
|
3979
4313
|
navContainer: { type: "none", tint: null, opacity: 0.15 }
|
|
3980
4314
|
};
|
|
3981
4315
|
}
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
4316
|
+
var headerLayoutCatalog = [
|
|
4317
|
+
{
|
|
4318
|
+
id: asHeaderLayoutId("classic"),
|
|
4319
|
+
label: "Classic",
|
|
4320
|
+
description: "Logo and navigation in one practical horizontal row.",
|
|
4321
|
+
structure: "inline-classic",
|
|
3986
4322
|
variant: "classic",
|
|
3987
|
-
|
|
4323
|
+
defaultPositioning: "sticky",
|
|
4324
|
+
shrinkOnScroll: false
|
|
4325
|
+
},
|
|
4326
|
+
{
|
|
4327
|
+
id: asHeaderLayoutId("centered"),
|
|
4328
|
+
label: "Centered",
|
|
4329
|
+
description: "Logo centered above a balanced navigation row.",
|
|
4330
|
+
structure: "centered-stack",
|
|
4331
|
+
variant: "centered",
|
|
4332
|
+
defaultPositioning: "static",
|
|
4333
|
+
shrinkOnScroll: false,
|
|
4334
|
+
maxRecommendedNavItems: 5,
|
|
4335
|
+
allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
|
|
4336
|
+
},
|
|
4337
|
+
{
|
|
4338
|
+
id: asHeaderLayoutId("floating"),
|
|
4339
|
+
label: "Floating",
|
|
4340
|
+
description: "Detached header chrome that sits over the opening section.",
|
|
4341
|
+
structure: "floating-shell",
|
|
4342
|
+
variant: "floating",
|
|
4343
|
+
defaultPositioning: "fixed",
|
|
3988
4344
|
shrinkOnScroll: true,
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
navStyle: "underline-grow",
|
|
3996
|
-
navWeight: "bold",
|
|
3997
|
-
navLinkStyle: {
|
|
3998
|
-
typography: "body",
|
|
3999
|
-
fontWeight: "bold",
|
|
4000
|
-
textTransform: "uppercase",
|
|
4001
|
-
italic: false,
|
|
4002
|
-
colorToken: "primaryForeground",
|
|
4003
|
-
hoverColorToken: "secondary",
|
|
4004
|
-
textSize: "sm",
|
|
4005
|
-
letterSpacing: "wider",
|
|
4006
|
-
padding: "compact",
|
|
4007
|
-
paddingX: "compact",
|
|
4008
|
-
borderRadius: "none",
|
|
4009
|
-
effects: {
|
|
4010
|
-
hover: [
|
|
4011
|
-
{ effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
|
|
4012
|
-
{ effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
|
|
4013
|
-
]
|
|
4014
|
-
}
|
|
4015
|
-
},
|
|
4016
|
-
dropdownStyle: {
|
|
4017
|
-
background: "primary-700",
|
|
4018
|
-
textColor: "primaryForeground",
|
|
4019
|
-
borderColor: null,
|
|
4020
|
-
shadow: "md",
|
|
4021
|
-
borderRadius: "md",
|
|
4022
|
-
hoverBackground: "primary-900",
|
|
4023
|
-
hoverTextColor: "secondary",
|
|
4024
|
-
textTransform: "uppercase",
|
|
4025
|
-
letterSpacing: "wider",
|
|
4026
|
-
fontWeight: "bold",
|
|
4027
|
-
textSize: "sm"
|
|
4028
|
-
},
|
|
4029
|
-
border: {
|
|
4030
|
-
style: "solid",
|
|
4031
|
-
width: "none",
|
|
4032
|
-
position: "none"
|
|
4033
|
-
},
|
|
4034
|
-
logoText: {
|
|
4035
|
-
hideOnShrink: true,
|
|
4036
|
-
mobileMaxWidth: "sm",
|
|
4037
|
-
mobileWrapLines: 2
|
|
4038
|
-
},
|
|
4039
|
-
ctaGap: "compact",
|
|
4040
|
-
ctaTreatment: "inverted",
|
|
4041
|
-
...ctaVariant ? { ctaVariant } : {}
|
|
4042
|
-
};
|
|
4345
|
+
maxRecommendedNavItems: 5,
|
|
4346
|
+
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
4347
|
+
}
|
|
4348
|
+
];
|
|
4349
|
+
function supportedLayouts(ids) {
|
|
4350
|
+
return ids.map(asHeaderLayoutId);
|
|
4043
4351
|
}
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4352
|
+
var headerStyleCatalog = [
|
|
4353
|
+
{
|
|
4354
|
+
id: asHeaderStyleId("minimal"),
|
|
4355
|
+
label: "Minimal",
|
|
4356
|
+
description: "Quiet surface with simple color-change navigation.",
|
|
4357
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4358
|
+
navInteraction: "color-change",
|
|
4359
|
+
surface: "neutral",
|
|
4360
|
+
navTypography: "plain"
|
|
4361
|
+
},
|
|
4362
|
+
{
|
|
4363
|
+
id: asHeaderStyleId("fine-line"),
|
|
4364
|
+
label: "Fine Line",
|
|
4365
|
+
description: "Light surface with a crisp lower rule and underline hover.",
|
|
4366
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4367
|
+
navInteraction: "underline-grow",
|
|
4368
|
+
surface: "bordered",
|
|
4369
|
+
navTypography: "plain"
|
|
4370
|
+
},
|
|
4371
|
+
{
|
|
4372
|
+
id: asHeaderStyleId("soft-bar"),
|
|
4373
|
+
label: "Soft Bar",
|
|
4374
|
+
description: "Soft tinted surface with gentle pill hover states.",
|
|
4375
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4376
|
+
navInteraction: "pill-background",
|
|
4377
|
+
surface: "soft",
|
|
4378
|
+
navTypography: "plain"
|
|
4379
|
+
},
|
|
4380
|
+
{
|
|
4381
|
+
id: asHeaderStyleId("pill-nav"),
|
|
4382
|
+
label: "Pill Nav",
|
|
4383
|
+
description: "A calm pill navigation rail over a neutral header.",
|
|
4384
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4385
|
+
navInteraction: "pill-background",
|
|
4386
|
+
surface: "soft",
|
|
4387
|
+
navTypography: "plain"
|
|
4388
|
+
},
|
|
4389
|
+
{
|
|
4390
|
+
id: asHeaderStyleId("brand-bar"),
|
|
4391
|
+
label: "Brand Bar",
|
|
4392
|
+
description: "Solid brand surface with high-contrast navigation.",
|
|
4393
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4394
|
+
navInteraction: "color-change",
|
|
4395
|
+
surface: "brand-solid",
|
|
4396
|
+
navTypography: "brand-caps"
|
|
4397
|
+
},
|
|
4398
|
+
{
|
|
4399
|
+
id: asHeaderStyleId("brand-underline"),
|
|
4400
|
+
label: "Brand Underline",
|
|
4401
|
+
description: "Brand surface with underline-grow navigation.",
|
|
4402
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
4403
|
+
navInteraction: "underline-grow",
|
|
4404
|
+
surface: "brand-solid",
|
|
4405
|
+
navTypography: "brand-caps"
|
|
4406
|
+
},
|
|
4407
|
+
{
|
|
4408
|
+
id: asHeaderStyleId("brand-pill"),
|
|
4409
|
+
label: "Brand Pill",
|
|
4410
|
+
description: "Solid brand surface with rounded active and hover states.",
|
|
4411
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
4412
|
+
navInteraction: "pill-background",
|
|
4413
|
+
surface: "brand-solid",
|
|
4414
|
+
navTypography: "brand-caps"
|
|
4415
|
+
},
|
|
4416
|
+
{
|
|
4417
|
+
id: asHeaderStyleId("serif-line"),
|
|
4418
|
+
label: "Serif Line",
|
|
4419
|
+
description: "Typographic logo treatment with understated underline navigation.",
|
|
4420
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4421
|
+
navInteraction: "underline-grow",
|
|
4422
|
+
surface: "bordered",
|
|
4423
|
+
navTypography: "heading"
|
|
4424
|
+
},
|
|
4425
|
+
{
|
|
4426
|
+
id: asHeaderStyleId("flat-tabs"),
|
|
4427
|
+
label: "Flat Tabs",
|
|
4428
|
+
description: "Flat block hover and active states with a Swiss utility feel.",
|
|
4429
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
4430
|
+
navInteraction: "flat-block",
|
|
4431
|
+
surface: "bordered",
|
|
4432
|
+
navTypography: "quiet-caps"
|
|
4433
|
+
},
|
|
4434
|
+
{
|
|
4435
|
+
id: asHeaderStyleId("glass"),
|
|
4436
|
+
label: "Glass",
|
|
4437
|
+
description: "Translucent chrome with frosted navigation backing.",
|
|
4438
|
+
supportedLayoutIds: supportedLayouts(["classic", "floating"]),
|
|
4439
|
+
navInteraction: "glass-backed",
|
|
4440
|
+
surface: "floating",
|
|
4441
|
+
navTypography: "plain"
|
|
4442
|
+
},
|
|
4443
|
+
{
|
|
4444
|
+
id: asHeaderStyleId("minimal-surface"),
|
|
4445
|
+
label: "Clear Split",
|
|
4446
|
+
description: "Floating logo with transparent navigation and no shared shell.",
|
|
4447
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
4448
|
+
navInteraction: "color-change",
|
|
4449
|
+
surface: "floating",
|
|
4450
|
+
navTypography: "plain"
|
|
4451
|
+
},
|
|
4452
|
+
{
|
|
4453
|
+
id: asHeaderStyleId("soft-shell"),
|
|
4454
|
+
label: "Soft Shell",
|
|
4455
|
+
description: "Floating rounded shell with soft pill navigation states.",
|
|
4456
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
4457
|
+
navInteraction: "pill-background",
|
|
4458
|
+
surface: "floating",
|
|
4459
|
+
navTypography: "plain"
|
|
4460
|
+
},
|
|
4461
|
+
{
|
|
4462
|
+
id: asHeaderStyleId("split-glass"),
|
|
4463
|
+
label: "Split Glass",
|
|
4464
|
+
description: "Logo floats independently while the navigation sits in a glass rail.",
|
|
4465
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
4466
|
+
navInteraction: "glass-backed",
|
|
4467
|
+
surface: "floating",
|
|
4468
|
+
navTypography: "quiet-caps"
|
|
4469
|
+
},
|
|
4470
|
+
{
|
|
4471
|
+
id: asHeaderStyleId("split-pill"),
|
|
4472
|
+
label: "Split Pill",
|
|
4473
|
+
description: "Logo floats independently with a soft pill-backed navigation rail.",
|
|
4474
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
4475
|
+
navInteraction: "pill-background",
|
|
4476
|
+
surface: "floating",
|
|
4477
|
+
navTypography: "heading"
|
|
4478
|
+
}
|
|
4479
|
+
];
|
|
4480
|
+
var headerLayoutsById = new Map(
|
|
4481
|
+
headerLayoutCatalog.map((layout) => [layout.id, layout])
|
|
4482
|
+
);
|
|
4483
|
+
var headerStylesById = new Map(
|
|
4484
|
+
headerStyleCatalog.map((style) => [style.id, style])
|
|
4485
|
+
);
|
|
4486
|
+
var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
4487
|
+
[
|
|
4488
|
+
asHeaderLayoutId("classic"),
|
|
4489
|
+
headerStyleRepairChain([
|
|
4490
|
+
"minimal",
|
|
4491
|
+
"glass",
|
|
4492
|
+
"fine-line",
|
|
4493
|
+
"soft-bar",
|
|
4494
|
+
"pill-nav",
|
|
4495
|
+
"brand-bar",
|
|
4496
|
+
"brand-underline",
|
|
4497
|
+
"brand-pill",
|
|
4498
|
+
"serif-line",
|
|
4499
|
+
"flat-tabs"
|
|
4500
|
+
])
|
|
4501
|
+
],
|
|
4502
|
+
[
|
|
4503
|
+
asHeaderLayoutId("centered"),
|
|
4504
|
+
headerStyleRepairChain([
|
|
4505
|
+
"minimal",
|
|
4506
|
+
"fine-line",
|
|
4507
|
+
"soft-bar",
|
|
4508
|
+
"pill-nav",
|
|
4509
|
+
"brand-bar",
|
|
4510
|
+
"brand-pill",
|
|
4511
|
+
"serif-line",
|
|
4512
|
+
"flat-tabs"
|
|
4513
|
+
])
|
|
4514
|
+
],
|
|
4515
|
+
[
|
|
4516
|
+
asHeaderLayoutId("floating"),
|
|
4517
|
+
headerStyleRepairChain([
|
|
4518
|
+
"glass",
|
|
4519
|
+
"minimal-surface",
|
|
4520
|
+
"split-glass",
|
|
4521
|
+
"split-pill",
|
|
4522
|
+
"soft-shell",
|
|
4523
|
+
"brand-pill"
|
|
4524
|
+
])
|
|
4525
|
+
]
|
|
4526
|
+
]);
|
|
4527
|
+
function headerStyleRepairChain(values) {
|
|
4528
|
+
return values.map(asHeaderStyleId);
|
|
4529
|
+
}
|
|
4530
|
+
var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
4531
|
+
[
|
|
4532
|
+
[
|
|
4533
|
+
asHeaderStyleId("brand-bar"),
|
|
4534
|
+
headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
|
|
4535
|
+
],
|
|
4536
|
+
[
|
|
4537
|
+
asHeaderStyleId("brand-underline"),
|
|
4538
|
+
headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
|
|
4539
|
+
],
|
|
4540
|
+
[
|
|
4541
|
+
asHeaderStyleId("brand-pill"),
|
|
4542
|
+
headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
|
|
4543
|
+
],
|
|
4544
|
+
[
|
|
4545
|
+
asHeaderStyleId("pill-nav"),
|
|
4546
|
+
headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
|
|
4547
|
+
],
|
|
4548
|
+
[
|
|
4549
|
+
asHeaderStyleId("flat-tabs"),
|
|
4550
|
+
headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
|
|
4551
|
+
],
|
|
4552
|
+
[
|
|
4553
|
+
asHeaderStyleId("serif-line"),
|
|
4554
|
+
headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
|
|
4555
|
+
],
|
|
4556
|
+
[
|
|
4557
|
+
asHeaderStyleId("glass"),
|
|
4558
|
+
headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
|
|
4559
|
+
],
|
|
4560
|
+
[
|
|
4561
|
+
asHeaderStyleId("soft-shell"),
|
|
4562
|
+
headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
|
|
4563
|
+
],
|
|
4564
|
+
[
|
|
4565
|
+
asHeaderStyleId("minimal-surface"),
|
|
4566
|
+
headerStyleRepairChain(["minimal-surface", "minimal"])
|
|
4567
|
+
],
|
|
4568
|
+
[
|
|
4569
|
+
asHeaderStyleId("split-glass"),
|
|
4570
|
+
headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
|
|
4571
|
+
],
|
|
4572
|
+
[
|
|
4573
|
+
asHeaderStyleId("split-pill"),
|
|
4574
|
+
headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
|
|
4575
|
+
],
|
|
4576
|
+
[
|
|
4577
|
+
asHeaderStyleId("fine-line"),
|
|
4578
|
+
headerStyleRepairChain(["fine-line", "minimal"])
|
|
4579
|
+
],
|
|
4580
|
+
[
|
|
4581
|
+
asHeaderStyleId("soft-bar"),
|
|
4582
|
+
headerStyleRepairChain(["soft-bar", "minimal"])
|
|
4583
|
+
],
|
|
4584
|
+
[asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
|
|
4585
|
+
]
|
|
4586
|
+
);
|
|
4587
|
+
var legacyHeaderLookAliases = [
|
|
4588
|
+
{
|
|
4589
|
+
lookId: asHeaderLookId("clean-base"),
|
|
4590
|
+
selection: {
|
|
4591
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
4592
|
+
styleId: asHeaderStyleId("minimal")
|
|
4593
|
+
}
|
|
4594
|
+
},
|
|
4595
|
+
{
|
|
4596
|
+
lookId: asHeaderLookId("brand-solid"),
|
|
4597
|
+
selection: {
|
|
4598
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
4599
|
+
styleId: asHeaderStyleId("brand-bar")
|
|
4600
|
+
}
|
|
4601
|
+
},
|
|
4602
|
+
{
|
|
4603
|
+
lookId: asHeaderLookId("serif-line"),
|
|
4604
|
+
selection: {
|
|
4605
|
+
layoutId: asHeaderLayoutId("centered"),
|
|
4606
|
+
styleId: asHeaderStyleId("serif-line")
|
|
4607
|
+
}
|
|
4608
|
+
},
|
|
4609
|
+
{
|
|
4610
|
+
lookId: asHeaderLookId("centered-calm"),
|
|
4611
|
+
selection: {
|
|
4612
|
+
layoutId: asHeaderLayoutId("centered"),
|
|
4613
|
+
styleId: asHeaderStyleId("minimal")
|
|
4614
|
+
}
|
|
4615
|
+
},
|
|
4616
|
+
{
|
|
4617
|
+
lookId: asHeaderLookId("practical-utility"),
|
|
4618
|
+
selection: {
|
|
4619
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
4620
|
+
styleId: asHeaderStyleId("flat-tabs")
|
|
4621
|
+
}
|
|
4622
|
+
},
|
|
4623
|
+
{
|
|
4624
|
+
lookId: asHeaderLookId("minimal-transparent"),
|
|
4625
|
+
selection: {
|
|
4626
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
4627
|
+
styleId: asHeaderStyleId("minimal")
|
|
4628
|
+
}
|
|
4629
|
+
},
|
|
4630
|
+
{
|
|
4631
|
+
lookId: asHeaderLookId("transparent-overlay"),
|
|
4632
|
+
selection: {
|
|
4633
|
+
layoutId: asHeaderLayoutId("floating"),
|
|
4634
|
+
styleId: asHeaderStyleId("glass")
|
|
4635
|
+
}
|
|
4636
|
+
},
|
|
4637
|
+
{
|
|
4638
|
+
lookId: asHeaderLookId("floating-glass"),
|
|
4639
|
+
selection: {
|
|
4640
|
+
layoutId: asHeaderLayoutId("floating"),
|
|
4641
|
+
styleId: asHeaderStyleId("glass")
|
|
4642
|
+
}
|
|
4643
|
+
}
|
|
4644
|
+
];
|
|
4645
|
+
var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
|
|
4646
|
+
function getHeaderStyle(id) {
|
|
4647
|
+
return headerStylesById.get(id) ?? null;
|
|
4648
|
+
}
|
|
4649
|
+
function isHeaderStyleCompatibleWithLayout(style, layoutId) {
|
|
4650
|
+
return style.supportedLayoutIds.includes(layoutId);
|
|
4651
|
+
}
|
|
4652
|
+
function getHeaderStyleOrThrow(id) {
|
|
4653
|
+
const style = getHeaderStyle(id);
|
|
4654
|
+
if (!style) {
|
|
4655
|
+
throw new Error(`Unknown Theme V2 header style: ${id}`);
|
|
4656
|
+
}
|
|
4657
|
+
return style;
|
|
4658
|
+
}
|
|
4659
|
+
function resolveLegacyHeaderLookAlias(lookId) {
|
|
4660
|
+
return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
|
|
4661
|
+
}
|
|
4662
|
+
function getCompatibleHeaderStyleIds(layoutId) {
|
|
4663
|
+
return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
|
|
4664
|
+
(styleId) => {
|
|
4665
|
+
const style = getHeaderStyleOrThrow(styleId);
|
|
4666
|
+
return isHeaderStyleCompatibleWithLayout(style, layoutId);
|
|
4667
|
+
}
|
|
4668
|
+
);
|
|
4669
|
+
}
|
|
4670
|
+
function solidBrandHeader(theme) {
|
|
4671
|
+
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
4672
|
+
return {
|
|
4673
|
+
...baseHeader(theme),
|
|
4674
|
+
variant: "classic",
|
|
4675
|
+
positioning: "sticky",
|
|
4676
|
+
shrinkOnScroll: true,
|
|
4677
|
+
background: {
|
|
4678
|
+
type: "color",
|
|
4679
|
+
color: "primary"
|
|
4680
|
+
},
|
|
4681
|
+
textColor: "primaryForeground",
|
|
4682
|
+
navColor: "primaryForeground",
|
|
4683
|
+
navStyle: "underline-grow",
|
|
4684
|
+
navWeight: "bold",
|
|
4685
|
+
navLinkStyle: {
|
|
4686
|
+
typography: "body",
|
|
4687
|
+
fontWeight: "bold",
|
|
4688
|
+
textTransform: "uppercase",
|
|
4689
|
+
italic: false,
|
|
4690
|
+
colorToken: "primaryForeground",
|
|
4691
|
+
hoverColorToken: "secondary",
|
|
4692
|
+
textSize: "sm",
|
|
4693
|
+
letterSpacing: "wider",
|
|
4694
|
+
padding: "compact",
|
|
4695
|
+
paddingX: "compact",
|
|
4696
|
+
borderRadius: "none",
|
|
4697
|
+
effects: {
|
|
4698
|
+
hover: [
|
|
4699
|
+
{
|
|
4700
|
+
effectId: "text-color-change",
|
|
4701
|
+
options: { hoverColorToken: "secondary" }
|
|
4702
|
+
},
|
|
4703
|
+
{
|
|
4704
|
+
effectId: "nav-underline",
|
|
4705
|
+
options: { style: "grow", colorToken: "secondary" }
|
|
4706
|
+
}
|
|
4707
|
+
]
|
|
4708
|
+
}
|
|
4709
|
+
},
|
|
4710
|
+
dropdownStyle: {
|
|
4711
|
+
background: "primary-700",
|
|
4712
|
+
textColor: "primaryForeground",
|
|
4713
|
+
borderColor: null,
|
|
4714
|
+
shadow: "md",
|
|
4715
|
+
borderRadius: "md",
|
|
4716
|
+
hoverBackground: "primary-900",
|
|
4717
|
+
hoverTextColor: "secondary",
|
|
4718
|
+
textTransform: "uppercase",
|
|
4719
|
+
letterSpacing: "wider",
|
|
4720
|
+
fontWeight: "bold",
|
|
4721
|
+
textSize: "sm"
|
|
4722
|
+
},
|
|
4723
|
+
border: {
|
|
4724
|
+
style: "solid",
|
|
4725
|
+
width: "none",
|
|
4726
|
+
position: "none"
|
|
4727
|
+
},
|
|
4728
|
+
logoText: {
|
|
4729
|
+
hideOnShrink: true,
|
|
4730
|
+
mobileMaxWidth: "sm",
|
|
4731
|
+
mobileWrapLines: 2
|
|
4732
|
+
},
|
|
4733
|
+
ctaGap: "compact",
|
|
4734
|
+
ctaTreatment: "inverted",
|
|
4735
|
+
...ctaVariant ? { ctaVariant } : {}
|
|
4736
|
+
};
|
|
4737
|
+
}
|
|
4738
|
+
function cleanBaseHeader(theme) {
|
|
4739
|
+
return {
|
|
4740
|
+
...baseHeader(theme),
|
|
4741
|
+
variant: "classic",
|
|
4742
|
+
positioning: "sticky",
|
|
4743
|
+
shrinkOnScroll: false,
|
|
4744
|
+
background: {
|
|
4051
4745
|
type: "color",
|
|
4052
4746
|
color: "surface"
|
|
4053
4747
|
},
|
|
@@ -4065,10 +4759,10 @@ function cleanBaseHeader(theme) {
|
|
|
4065
4759
|
ctaGap: "default"
|
|
4066
4760
|
};
|
|
4067
4761
|
}
|
|
4068
|
-
function
|
|
4762
|
+
function serifLineHeader(theme) {
|
|
4069
4763
|
return {
|
|
4070
4764
|
...baseHeader(theme),
|
|
4071
|
-
variant: "
|
|
4765
|
+
variant: "centered",
|
|
4072
4766
|
positioning: "sticky",
|
|
4073
4767
|
shrinkOnScroll: false,
|
|
4074
4768
|
background: {
|
|
@@ -4215,6 +4909,11 @@ var headerLookCatalog = [
|
|
|
4215
4909
|
label: "Clean base",
|
|
4216
4910
|
visualTreatment: "solid-neutral",
|
|
4217
4911
|
layoutBehavior: "sticky",
|
|
4912
|
+
configuration: {
|
|
4913
|
+
structure: "inline-classic",
|
|
4914
|
+
treatment: "solid-neutral",
|
|
4915
|
+
behavior: "sticky"
|
|
4916
|
+
},
|
|
4218
4917
|
openingRequirement: "none",
|
|
4219
4918
|
compile: cleanBaseHeader
|
|
4220
4919
|
},
|
|
@@ -4223,23 +4922,38 @@ var headerLookCatalog = [
|
|
|
4223
4922
|
label: "Brand solid",
|
|
4224
4923
|
visualTreatment: "solid-brand",
|
|
4225
4924
|
layoutBehavior: "sticky-shrink",
|
|
4925
|
+
configuration: {
|
|
4926
|
+
structure: "inline-classic",
|
|
4927
|
+
treatment: "solid-brand",
|
|
4928
|
+
behavior: "sticky-shrink"
|
|
4929
|
+
},
|
|
4226
4930
|
openingRequirement: "none",
|
|
4227
4931
|
compile: solidBrandHeader
|
|
4228
4932
|
},
|
|
4229
4933
|
{
|
|
4230
|
-
id: asHeaderLookId("
|
|
4231
|
-
label: "
|
|
4232
|
-
visualTreatment: "light-
|
|
4934
|
+
id: asHeaderLookId("serif-line"),
|
|
4935
|
+
label: "Serif line",
|
|
4936
|
+
visualTreatment: "light-serif",
|
|
4233
4937
|
layoutBehavior: "sticky",
|
|
4938
|
+
configuration: {
|
|
4939
|
+
structure: "centered-stack",
|
|
4940
|
+
treatment: "light-serif",
|
|
4941
|
+
behavior: "sticky"
|
|
4942
|
+
},
|
|
4234
4943
|
openingRequirement: "none",
|
|
4235
4944
|
maxRecommendedNavItems: 6,
|
|
4236
|
-
compile:
|
|
4945
|
+
compile: serifLineHeader
|
|
4237
4946
|
},
|
|
4238
4947
|
{
|
|
4239
4948
|
id: asHeaderLookId("centered-calm"),
|
|
4240
4949
|
label: "Centered calm",
|
|
4241
|
-
visualTreatment: "light-
|
|
4950
|
+
visualTreatment: "light-serif",
|
|
4242
4951
|
layoutBehavior: "normal-flow",
|
|
4952
|
+
configuration: {
|
|
4953
|
+
structure: "centered-stack",
|
|
4954
|
+
treatment: "light-serif",
|
|
4955
|
+
behavior: "normal-flow"
|
|
4956
|
+
},
|
|
4243
4957
|
openingRequirement: "none",
|
|
4244
4958
|
maxRecommendedNavItems: 5,
|
|
4245
4959
|
allowedLogoShapes: ["none", "text-only", "horizontal", "square"],
|
|
@@ -4250,6 +4964,11 @@ var headerLookCatalog = [
|
|
|
4250
4964
|
label: "Practical utility",
|
|
4251
4965
|
visualTreatment: "solid-neutral",
|
|
4252
4966
|
layoutBehavior: "sticky-shrink",
|
|
4967
|
+
configuration: {
|
|
4968
|
+
structure: "inline-classic",
|
|
4969
|
+
treatment: "solid-neutral",
|
|
4970
|
+
behavior: "sticky-shrink"
|
|
4971
|
+
},
|
|
4253
4972
|
openingRequirement: "none",
|
|
4254
4973
|
requiresProminentCta: true,
|
|
4255
4974
|
compile: practicalUtilityHeader
|
|
@@ -4259,6 +4978,11 @@ var headerLookCatalog = [
|
|
|
4259
4978
|
label: "Minimal transparent",
|
|
4260
4979
|
visualTreatment: "minimal-transparent",
|
|
4261
4980
|
layoutBehavior: "normal-flow",
|
|
4981
|
+
configuration: {
|
|
4982
|
+
structure: "inline-classic",
|
|
4983
|
+
treatment: "minimal-transparent",
|
|
4984
|
+
behavior: "normal-flow"
|
|
4985
|
+
},
|
|
4262
4986
|
openingRequirement: "reserved-space-ok",
|
|
4263
4987
|
compile: minimalTransparentHeader
|
|
4264
4988
|
},
|
|
@@ -4267,6 +4991,11 @@ var headerLookCatalog = [
|
|
|
4267
4991
|
label: "Transparent overlay",
|
|
4268
4992
|
visualTreatment: "transparent-overlay",
|
|
4269
4993
|
layoutBehavior: "fixed-overlay",
|
|
4994
|
+
configuration: {
|
|
4995
|
+
structure: "inline-classic",
|
|
4996
|
+
treatment: "transparent-overlay",
|
|
4997
|
+
behavior: "fixed-overlay"
|
|
4998
|
+
},
|
|
4270
4999
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
4271
5000
|
maxRecommendedNavItems: 5,
|
|
4272
5001
|
allowedLogoShapes: ["none", "text-only", "horizontal"],
|
|
@@ -4277,6 +5006,11 @@ var headerLookCatalog = [
|
|
|
4277
5006
|
label: "Floating glass",
|
|
4278
5007
|
visualTreatment: "floating-glass",
|
|
4279
5008
|
layoutBehavior: "fixed-floating",
|
|
5009
|
+
configuration: {
|
|
5010
|
+
structure: "floating-shell",
|
|
5011
|
+
treatment: "floating-glass",
|
|
5012
|
+
behavior: "fixed-floating"
|
|
5013
|
+
},
|
|
4280
5014
|
openingRequirement: "requires-image-hero-with-contrast-overlay",
|
|
4281
5015
|
maxRecommendedNavItems: 5,
|
|
4282
5016
|
allowedLogoShapes: ["none", "text-only", "horizontal"],
|
|
@@ -4284,9 +5018,17 @@ var headerLookCatalog = [
|
|
|
4284
5018
|
}
|
|
4285
5019
|
];
|
|
4286
5020
|
var guaranteedFallbackHeaderLookId = asHeaderLookId("clean-base");
|
|
5021
|
+
var guaranteedFallbackHeaderLayoutId = asHeaderLayoutId("classic");
|
|
5022
|
+
var guaranteedFallbackHeaderStyleId = asHeaderStyleId("minimal");
|
|
5023
|
+
var allowedHeaderConfigurationKeys = new Set(
|
|
5024
|
+
headerLookCatalog.map((look) => headerConfigurationKey(look.configuration))
|
|
5025
|
+
);
|
|
4287
5026
|
var headerLooksById = new Map(
|
|
4288
5027
|
headerLookCatalog.map((look) => [look.id, look])
|
|
4289
5028
|
);
|
|
5029
|
+
function headerConfigurationKey(configuration) {
|
|
5030
|
+
return `${configuration.structure}:${configuration.treatment}:${configuration.behavior}`;
|
|
5031
|
+
}
|
|
4290
5032
|
|
|
4291
5033
|
// ../theme-core/src/site-styles/footerLooks.ts
|
|
4292
5034
|
function asFooterLookId(value) {
|
|
@@ -4419,6 +5161,264 @@ var advancedDesignOptionCatalog = {
|
|
|
4419
5161
|
detachedCustom: true
|
|
4420
5162
|
};
|
|
4421
5163
|
|
|
5164
|
+
// ../theme-core/src/site-styles/typographyPresets.ts
|
|
5165
|
+
var bodyReadablePolicy = {
|
|
5166
|
+
recommendedCategories: ["sans-serif", "serif"],
|
|
5167
|
+
allowedCategories: ["sans-serif", "serif"],
|
|
5168
|
+
requiresItalicForBody: true,
|
|
5169
|
+
requiresBoldForBody: true
|
|
5170
|
+
};
|
|
5171
|
+
var headingFlexiblePolicy = {
|
|
5172
|
+
recommendedCategories: ["sans-serif", "serif", "display"],
|
|
5173
|
+
allowedCategories: ["sans-serif", "serif", "display"]
|
|
5174
|
+
};
|
|
5175
|
+
var displayHeadingPolicy = {
|
|
5176
|
+
recommendedCategories: ["display", "sans-serif", "serif"],
|
|
5177
|
+
allowedCategories: ["display", "sans-serif", "serif"]
|
|
5178
|
+
};
|
|
5179
|
+
function asTypographyPresetId(value) {
|
|
5180
|
+
if (!value.startsWith("typography-preset:")) {
|
|
5181
|
+
throw new Error(`TypographyPresetId must start with "typography-preset:". Received: ${value}`);
|
|
5182
|
+
}
|
|
5183
|
+
return value;
|
|
5184
|
+
}
|
|
5185
|
+
function defineTypographyPreset(preset) {
|
|
5186
|
+
return {
|
|
5187
|
+
...preset,
|
|
5188
|
+
id: asTypographyPresetId(preset.id)
|
|
5189
|
+
};
|
|
5190
|
+
}
|
|
5191
|
+
var modernSansTypography = {
|
|
5192
|
+
body: {
|
|
5193
|
+
family: "Inter, system-ui, sans-serif",
|
|
5194
|
+
size: "md",
|
|
5195
|
+
weight: "regular",
|
|
5196
|
+
lineHeight: "relaxed",
|
|
5197
|
+
letterSpacing: "normal"
|
|
5198
|
+
},
|
|
5199
|
+
headings: {
|
|
5200
|
+
default: {
|
|
5201
|
+
family: "Inter, system-ui, sans-serif",
|
|
5202
|
+
weight: "semibold",
|
|
5203
|
+
lineHeight: "normal",
|
|
5204
|
+
letterSpacing: "tight",
|
|
5205
|
+
italic: null,
|
|
5206
|
+
case: null
|
|
5207
|
+
},
|
|
5208
|
+
h1: { size: "xl", weight: "bold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5209
|
+
h2: { size: "lg", weight: "semibold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5210
|
+
h3: { size: "md", weight: "semibold", lineHeight: "normal", letterSpacing: "normal", italic: null }
|
|
5211
|
+
},
|
|
5212
|
+
scale: "balanced"
|
|
5213
|
+
};
|
|
5214
|
+
var warmRoundedTypography = {
|
|
5215
|
+
body: {
|
|
5216
|
+
family: "Nunito Sans, system-ui, sans-serif",
|
|
5217
|
+
size: "lg",
|
|
5218
|
+
weight: "regular",
|
|
5219
|
+
lineHeight: "relaxed",
|
|
5220
|
+
letterSpacing: "normal"
|
|
5221
|
+
},
|
|
5222
|
+
headings: {
|
|
5223
|
+
default: {
|
|
5224
|
+
family: "Nunito Sans, system-ui, sans-serif",
|
|
5225
|
+
weight: "bold",
|
|
5226
|
+
lineHeight: "normal",
|
|
5227
|
+
letterSpacing: "normal",
|
|
5228
|
+
italic: null,
|
|
5229
|
+
case: null
|
|
5230
|
+
},
|
|
5231
|
+
h1: { size: "xl", weight: "bold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5232
|
+
h2: { size: "lg", weight: "bold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5233
|
+
h3: { size: "md", weight: "semibold", lineHeight: "relaxed", letterSpacing: "normal", italic: null }
|
|
5234
|
+
},
|
|
5235
|
+
scale: "balanced"
|
|
5236
|
+
};
|
|
5237
|
+
var editorialSerifTypography = {
|
|
5238
|
+
body: {
|
|
5239
|
+
family: "Lora, Georgia, serif",
|
|
5240
|
+
size: "lg",
|
|
5241
|
+
weight: "regular",
|
|
5242
|
+
lineHeight: "loose",
|
|
5243
|
+
letterSpacing: "normal"
|
|
5244
|
+
},
|
|
5245
|
+
headings: {
|
|
5246
|
+
default: {
|
|
5247
|
+
family: "Playfair Display, Georgia, serif",
|
|
5248
|
+
weight: "semibold",
|
|
5249
|
+
lineHeight: "normal",
|
|
5250
|
+
letterSpacing: "tight",
|
|
5251
|
+
italic: null,
|
|
5252
|
+
case: null
|
|
5253
|
+
},
|
|
5254
|
+
h1: { size: "2xl", weight: "semibold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5255
|
+
h2: { size: "xl", weight: "semibold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5256
|
+
h3: { size: "md", weight: "semibold", lineHeight: "relaxed", letterSpacing: "normal", italic: true }
|
|
5257
|
+
},
|
|
5258
|
+
scale: "spacious"
|
|
5259
|
+
};
|
|
5260
|
+
var classicSerifTypography = {
|
|
5261
|
+
body: {
|
|
5262
|
+
family: "Libre Baskerville, Georgia, serif",
|
|
5263
|
+
size: "md",
|
|
5264
|
+
weight: "regular",
|
|
5265
|
+
lineHeight: "relaxed",
|
|
5266
|
+
letterSpacing: "normal"
|
|
5267
|
+
},
|
|
5268
|
+
headings: {
|
|
5269
|
+
default: {
|
|
5270
|
+
family: "Cormorant Garamond, Georgia, serif",
|
|
5271
|
+
weight: "semibold",
|
|
5272
|
+
lineHeight: "normal",
|
|
5273
|
+
letterSpacing: "normal",
|
|
5274
|
+
italic: null,
|
|
5275
|
+
case: null
|
|
5276
|
+
},
|
|
5277
|
+
h1: { size: "2xl", weight: "semibold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5278
|
+
h2: { size: "xl", weight: "semibold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5279
|
+
h3: { size: "md", weight: "medium", lineHeight: "relaxed", letterSpacing: "normal", italic: null }
|
|
5280
|
+
},
|
|
5281
|
+
scale: "balanced"
|
|
5282
|
+
};
|
|
5283
|
+
var luxeContrastTypography = {
|
|
5284
|
+
body: {
|
|
5285
|
+
family: "Manrope, system-ui, sans-serif",
|
|
5286
|
+
size: "md",
|
|
5287
|
+
weight: "regular",
|
|
5288
|
+
lineHeight: "relaxed",
|
|
5289
|
+
letterSpacing: "normal"
|
|
5290
|
+
},
|
|
5291
|
+
headings: {
|
|
5292
|
+
default: {
|
|
5293
|
+
family: "Cormorant Garamond, Georgia, serif",
|
|
5294
|
+
weight: "semibold",
|
|
5295
|
+
lineHeight: "normal",
|
|
5296
|
+
letterSpacing: "tight",
|
|
5297
|
+
italic: null,
|
|
5298
|
+
case: null
|
|
5299
|
+
},
|
|
5300
|
+
h1: { size: "2xl", weight: "semibold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5301
|
+
h2: { size: "xl", weight: "semibold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5302
|
+
h3: { size: "md", weight: "medium", lineHeight: "relaxed", letterSpacing: "normal", italic: null }
|
|
5303
|
+
},
|
|
5304
|
+
scale: "spacious"
|
|
5305
|
+
};
|
|
5306
|
+
var boldDisplayTypography = {
|
|
5307
|
+
body: {
|
|
5308
|
+
family: "Manrope, system-ui, sans-serif",
|
|
5309
|
+
size: "lg",
|
|
5310
|
+
weight: "regular",
|
|
5311
|
+
lineHeight: "relaxed",
|
|
5312
|
+
letterSpacing: "normal"
|
|
5313
|
+
},
|
|
5314
|
+
headings: {
|
|
5315
|
+
default: {
|
|
5316
|
+
family: '"TAN - PEARL", sans-serif',
|
|
5317
|
+
weight: "bold",
|
|
5318
|
+
lineHeight: "normal",
|
|
5319
|
+
letterSpacing: "tight",
|
|
5320
|
+
colorToken: "primary",
|
|
5321
|
+
italic: null,
|
|
5322
|
+
case: null
|
|
5323
|
+
},
|
|
5324
|
+
h1: { size: "xl", weight: "bold", lineHeight: "normal", letterSpacing: "tight", italic: null },
|
|
5325
|
+
h2: { size: "lg", weight: "bold", lineHeight: "normal", letterSpacing: "normal", italic: null },
|
|
5326
|
+
h3: { size: "md", weight: "bold", lineHeight: "normal", letterSpacing: "normal", italic: null }
|
|
5327
|
+
},
|
|
5328
|
+
scale: "balanced"
|
|
5329
|
+
};
|
|
5330
|
+
var typographyPresets = [
|
|
5331
|
+
defineTypographyPreset({
|
|
5332
|
+
id: "typography-preset:modern-sans",
|
|
5333
|
+
name: "Modern Sans",
|
|
5334
|
+
description: "Crisp, neutral type for clear service pages and practical editorial structure.",
|
|
5335
|
+
defaultFonts: { body: "Inter, system-ui, sans-serif", heading: "Inter, system-ui, sans-serif" },
|
|
5336
|
+
recommendedFonts: {
|
|
5337
|
+
body: ["Inter", "Source Sans 3", "IBM Plex Sans"],
|
|
5338
|
+
heading: ["Inter", "Manrope", "Source Sans 3"]
|
|
5339
|
+
},
|
|
5340
|
+
slotPolicies: { body: bodyReadablePolicy, heading: headingFlexiblePolicy },
|
|
5341
|
+
typography: modernSansTypography
|
|
5342
|
+
}),
|
|
5343
|
+
defineTypographyPreset({
|
|
5344
|
+
id: "typography-preset:warm-rounded",
|
|
5345
|
+
name: "Warm Rounded",
|
|
5346
|
+
description: "Soft, friendly type for welcoming studios, classes, and community businesses.",
|
|
5347
|
+
defaultFonts: { body: "Nunito Sans, system-ui, sans-serif", heading: "Nunito Sans, system-ui, sans-serif" },
|
|
5348
|
+
recommendedFonts: {
|
|
5349
|
+
body: ["Nunito Sans", "Atkinson Hyperlegible", "Lato"],
|
|
5350
|
+
heading: ["Nunito Sans", "Quicksand", "Manrope"]
|
|
5351
|
+
},
|
|
5352
|
+
slotPolicies: { body: bodyReadablePolicy, heading: headingFlexiblePolicy },
|
|
5353
|
+
typography: warmRoundedTypography
|
|
5354
|
+
}),
|
|
5355
|
+
defineTypographyPreset({
|
|
5356
|
+
id: "typography-preset:editorial-serif",
|
|
5357
|
+
name: "Editorial Serif",
|
|
5358
|
+
description: "Story-led type with warm reading rhythm and expressive headings.",
|
|
5359
|
+
defaultFonts: { body: "Lora, Georgia, serif", heading: "Playfair Display, Georgia, serif" },
|
|
5360
|
+
recommendedFonts: {
|
|
5361
|
+
body: ["Lora", "Source Serif 4", "Libre Baskerville"],
|
|
5362
|
+
heading: ["Playfair Display", "Cormorant Garamond", "Fraunces"]
|
|
5363
|
+
},
|
|
5364
|
+
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
5365
|
+
typography: editorialSerifTypography
|
|
5366
|
+
}),
|
|
5367
|
+
defineTypographyPreset({
|
|
5368
|
+
id: "typography-preset:classic-serif",
|
|
5369
|
+
name: "Classic Serif",
|
|
5370
|
+
description: "Measured, polished type for premium and established offers.",
|
|
5371
|
+
defaultFonts: { body: "Libre Baskerville, Georgia, serif", heading: "Cormorant Garamond, Georgia, serif" },
|
|
5372
|
+
recommendedFonts: {
|
|
5373
|
+
body: ["Libre Baskerville", "Source Serif 4", "Lora"],
|
|
5374
|
+
heading: ["Cormorant Garamond", "Playfair Display", "Libre Baskerville"]
|
|
5375
|
+
},
|
|
5376
|
+
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
5377
|
+
typography: classicSerifTypography
|
|
5378
|
+
}),
|
|
5379
|
+
defineTypographyPreset({
|
|
5380
|
+
id: "typography-preset:luxe-contrast",
|
|
5381
|
+
name: "Luxe Contrast",
|
|
5382
|
+
description: "A restrained sans body paired with elegant high-contrast headings.",
|
|
5383
|
+
defaultFonts: { body: "Manrope, system-ui, sans-serif", heading: "Cormorant Garamond, Georgia, serif" },
|
|
5384
|
+
recommendedFonts: {
|
|
5385
|
+
body: ["Manrope", "Inter", "Source Sans 3"],
|
|
5386
|
+
heading: ["Cormorant Garamond", "Playfair Display", "Bodoni Moda"]
|
|
5387
|
+
},
|
|
5388
|
+
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
5389
|
+
typography: luxeContrastTypography
|
|
5390
|
+
}),
|
|
5391
|
+
defineTypographyPreset({
|
|
5392
|
+
id: "typography-preset:bold-display",
|
|
5393
|
+
name: "Bold Display",
|
|
5394
|
+
description: "Punchy display headings with readable sans body copy for branded launches.",
|
|
5395
|
+
defaultFonts: { body: "Manrope, system-ui, sans-serif", heading: '"TAN - PEARL", sans-serif' },
|
|
5396
|
+
recommendedFonts: {
|
|
5397
|
+
body: ["Manrope", "Inter", "Space Grotesk"],
|
|
5398
|
+
heading: ["Anton", "Bebas Neue", "Archivo Black"]
|
|
5399
|
+
},
|
|
5400
|
+
slotPolicies: { body: bodyReadablePolicy, heading: displayHeadingPolicy },
|
|
5401
|
+
typography: boldDisplayTypography,
|
|
5402
|
+
heroTypography: {
|
|
5403
|
+
headlineSize: "6xl",
|
|
5404
|
+
headlineLineHeight: "tight",
|
|
5405
|
+
subheadlineSize: "editorial",
|
|
5406
|
+
subheadlineLineHeight: "normal",
|
|
5407
|
+
microHeadlineSize: "6xl",
|
|
5408
|
+
microHeadlineLineHeight: "tight",
|
|
5409
|
+
microSubheadlineSize: "xl",
|
|
5410
|
+
microSubheadlineLineHeight: "normal",
|
|
5411
|
+
responsive: {
|
|
5412
|
+
tablet: { headlineSize: "5xl" },
|
|
5413
|
+
mobile: { headlineSize: "4xl", subheadlineSize: "xl" }
|
|
5414
|
+
}
|
|
5415
|
+
}
|
|
5416
|
+
})
|
|
5417
|
+
];
|
|
5418
|
+
var typographyPresetsById = new Map(
|
|
5419
|
+
typographyPresets.map((preset) => [preset.id, preset])
|
|
5420
|
+
);
|
|
5421
|
+
|
|
4422
5422
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
4423
5423
|
var curatedSiteStyleIdValues = [
|
|
4424
5424
|
"site-style:calm-studio",
|
|
@@ -4431,6 +5431,7 @@ var curatedSiteStyleIdValues = [
|
|
|
4431
5431
|
"site-style:personal-retreat-journal",
|
|
4432
5432
|
"site-style:tactile-workshop",
|
|
4433
5433
|
"site-style:modern-wellness",
|
|
5434
|
+
"site-style:soft-earth",
|
|
4434
5435
|
"site-style:bold-launch",
|
|
4435
5436
|
"site-style:south-west-twerk-school"
|
|
4436
5437
|
];
|
|
@@ -4496,26 +5497,45 @@ var expressiveUnderlineInputs = {
|
|
|
4496
5497
|
}
|
|
4497
5498
|
};
|
|
4498
5499
|
function uniqueContentFrameKinds() {
|
|
4499
|
-
const kinds = [
|
|
4500
|
-
|
|
4501
|
-
|
|
5500
|
+
const kinds = [
|
|
5501
|
+
...new Set(
|
|
5502
|
+
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
5503
|
+
)
|
|
5504
|
+
];
|
|
4502
5505
|
const firstKind = kinds[0];
|
|
4503
5506
|
if (!firstKind) {
|
|
4504
|
-
throw new Error(
|
|
5507
|
+
throw new Error(
|
|
5508
|
+
"Expected generated design option catalog to expose at least one content frame kind."
|
|
5509
|
+
);
|
|
4505
5510
|
}
|
|
4506
5511
|
return [firstKind, ...kinds.slice(1)];
|
|
4507
5512
|
}
|
|
4508
5513
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
4509
5514
|
function defineCuratedSiteStyle(input) {
|
|
5515
|
+
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
5516
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
|
|
5517
|
+
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
5518
|
+
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
5519
|
+
if (!typographyPresetChoices.some(
|
|
5520
|
+
(choice) => choice.id === defaultTypographyPresetId
|
|
5521
|
+
)) {
|
|
5522
|
+
throw new Error(
|
|
5523
|
+
`Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
|
|
5524
|
+
);
|
|
5525
|
+
}
|
|
4510
5526
|
return {
|
|
4511
5527
|
id: asSiteStyleId(input.id),
|
|
4512
5528
|
name: input.name,
|
|
4513
5529
|
description: input.description,
|
|
4514
5530
|
generationBrief: input.generationBrief,
|
|
4515
5531
|
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
4516
|
-
siteCreatorSelection: input.siteCreatorSelection ?? {
|
|
5532
|
+
siteCreatorSelection: input.siteCreatorSelection ?? {
|
|
5533
|
+
kind: "explicit_only"
|
|
5534
|
+
},
|
|
4517
5535
|
template: {
|
|
4518
|
-
id: asDesignSystemTemplateId(
|
|
5536
|
+
id: asDesignSystemTemplateId(
|
|
5537
|
+
`template:${input.id.replace("site-style:", "")}`
|
|
5538
|
+
),
|
|
4519
5539
|
name: input.name,
|
|
4520
5540
|
version: 1,
|
|
4521
5541
|
tokenRecipes: input.tokenRecipes,
|
|
@@ -4527,11 +5547,27 @@ function defineCuratedSiteStyle(input) {
|
|
|
4527
5547
|
},
|
|
4528
5548
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
4529
5549
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
4530
|
-
|
|
5550
|
+
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
5551
|
+
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
5552
|
+
styleId: asHeaderStyleId(input.defaultHeaderSelection.styleId)
|
|
5553
|
+
} : inferredHeaderCuration.defaultHeaderSelection,
|
|
5554
|
+
recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
|
|
5555
|
+
recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
|
|
5556
|
+
discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
|
|
5557
|
+
(selection) => ({
|
|
5558
|
+
layoutId: asHeaderLayoutId(selection.layoutId),
|
|
5559
|
+
styleId: asHeaderStyleId(selection.styleId)
|
|
5560
|
+
})
|
|
5561
|
+
),
|
|
5562
|
+
recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
|
|
4531
5563
|
// Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
|
|
4532
|
-
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
|
|
5564
|
+
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
|
|
5565
|
+
asFooterLookId
|
|
5566
|
+
),
|
|
4533
5567
|
buttonPersonalityChoices: input.buttonPersonalityChoices,
|
|
4534
|
-
paletteVariantChoices: input.paletteVariantChoices
|
|
5568
|
+
paletteVariantChoices: input.paletteVariantChoices,
|
|
5569
|
+
typographyPresetChoices,
|
|
5570
|
+
defaultTypographyPresetId
|
|
4535
5571
|
};
|
|
4536
5572
|
}
|
|
4537
5573
|
function buttonChoice(id, note) {
|
|
@@ -4540,6 +5576,87 @@ function buttonChoice(id, note) {
|
|
|
4540
5576
|
function paletteChoice(id, note) {
|
|
4541
5577
|
return note ? { id: asPaletteVariantId(id), note } : { id: asPaletteVariantId(id) };
|
|
4542
5578
|
}
|
|
5579
|
+
function headerLayoutChoice(id, note) {
|
|
5580
|
+
return note ? { id: asHeaderLayoutId(id), note } : { id: asHeaderLayoutId(id) };
|
|
5581
|
+
}
|
|
5582
|
+
function headerStyleChoice(id, note) {
|
|
5583
|
+
return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
|
|
5584
|
+
}
|
|
5585
|
+
function unbrandHeaderLayoutId(id) {
|
|
5586
|
+
return id;
|
|
5587
|
+
}
|
|
5588
|
+
function uniqueHeaderLayoutChoices(choices) {
|
|
5589
|
+
const seen = /* @__PURE__ */ new Set();
|
|
5590
|
+
const unique = choices.filter((choice) => {
|
|
5591
|
+
if (seen.has(choice.id)) return false;
|
|
5592
|
+
seen.add(choice.id);
|
|
5593
|
+
return true;
|
|
5594
|
+
});
|
|
5595
|
+
const first = unique[0];
|
|
5596
|
+
if (!first) {
|
|
5597
|
+
throw new Error("Expected at least one curated header layout choice.");
|
|
5598
|
+
}
|
|
5599
|
+
return [first, ...unique.slice(1)];
|
|
5600
|
+
}
|
|
5601
|
+
function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
5602
|
+
const first = choices[0] ?? {
|
|
5603
|
+
id: getCompatibleHeaderStyleIds(fallbackLayoutId)[0] ?? asHeaderStyleId("minimal")
|
|
5604
|
+
};
|
|
5605
|
+
return [first, ...choices.slice(1)];
|
|
5606
|
+
}
|
|
5607
|
+
function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
5608
|
+
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
5609
|
+
(selection) => Boolean(selection)
|
|
5610
|
+
);
|
|
5611
|
+
const defaultHeaderSelection = selections[0] ?? {
|
|
5612
|
+
layoutId: asHeaderLayoutId("classic"),
|
|
5613
|
+
styleId: asHeaderStyleId("minimal")
|
|
5614
|
+
};
|
|
5615
|
+
const layoutChoices = uniqueHeaderLayoutChoices(
|
|
5616
|
+
selections.map((selection) => headerLayoutChoice(selection.layoutId))
|
|
5617
|
+
);
|
|
5618
|
+
const stylesByLayout = {};
|
|
5619
|
+
for (const layoutChoice of layoutChoices) {
|
|
5620
|
+
const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
|
|
5621
|
+
stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
|
|
5622
|
+
}
|
|
5623
|
+
return {
|
|
5624
|
+
defaultHeaderSelection,
|
|
5625
|
+
recommendedHeaderLayoutChoices: layoutChoices,
|
|
5626
|
+
recommendedHeaderStyleChoicesByLayout: stylesByLayout
|
|
5627
|
+
};
|
|
5628
|
+
}
|
|
5629
|
+
function typographyChoice(id, note) {
|
|
5630
|
+
return note ? { id: asTypographyPresetId(id), note } : { id: asTypographyPresetId(id) };
|
|
5631
|
+
}
|
|
5632
|
+
function defaultTypographyPresetChoicesForRecipe(recipe) {
|
|
5633
|
+
switch (recipe) {
|
|
5634
|
+
case "clean-sans":
|
|
5635
|
+
return [
|
|
5636
|
+
typographyChoice("typography-preset:modern-sans"),
|
|
5637
|
+
typographyChoice("typography-preset:luxe-contrast"),
|
|
5638
|
+
typographyChoice("typography-preset:bold-display")
|
|
5639
|
+
];
|
|
5640
|
+
case "friendly-sans":
|
|
5641
|
+
return [
|
|
5642
|
+
typographyChoice("typography-preset:warm-rounded"),
|
|
5643
|
+
typographyChoice("typography-preset:modern-sans"),
|
|
5644
|
+
typographyChoice("typography-preset:editorial-serif")
|
|
5645
|
+
];
|
|
5646
|
+
case "serif-editorial":
|
|
5647
|
+
return [
|
|
5648
|
+
typographyChoice("typography-preset:editorial-serif"),
|
|
5649
|
+
typographyChoice("typography-preset:classic-serif"),
|
|
5650
|
+
typographyChoice("typography-preset:warm-rounded")
|
|
5651
|
+
];
|
|
5652
|
+
case "classic-serif":
|
|
5653
|
+
return [
|
|
5654
|
+
typographyChoice("typography-preset:classic-serif"),
|
|
5655
|
+
typographyChoice("typography-preset:luxe-contrast"),
|
|
5656
|
+
typographyChoice("typography-preset:editorial-serif")
|
|
5657
|
+
];
|
|
5658
|
+
}
|
|
5659
|
+
}
|
|
4543
5660
|
var curatedSiteStyles = [
|
|
4544
5661
|
defineCuratedSiteStyle({
|
|
4545
5662
|
id: "site-style:calm-studio",
|
|
@@ -4556,7 +5673,11 @@ var curatedSiteStyles = [
|
|
|
4556
5673
|
motion: "subtle"
|
|
4557
5674
|
},
|
|
4558
5675
|
compositionBudget: quietBudget,
|
|
4559
|
-
recommendedHeaderLookIds: [
|
|
5676
|
+
recommendedHeaderLookIds: [
|
|
5677
|
+
"centered-calm",
|
|
5678
|
+
"minimal-transparent",
|
|
5679
|
+
"clean-base"
|
|
5680
|
+
],
|
|
4560
5681
|
buttonPersonalityChoices: [
|
|
4561
5682
|
buttonChoice("soft-pill"),
|
|
4562
5683
|
buttonChoice("pebble"),
|
|
@@ -4585,7 +5706,11 @@ var curatedSiteStyles = [
|
|
|
4585
5706
|
motion: "subtle"
|
|
4586
5707
|
},
|
|
4587
5708
|
compositionBudget: balancedBudget,
|
|
4588
|
-
recommendedHeaderLookIds: [
|
|
5709
|
+
recommendedHeaderLookIds: [
|
|
5710
|
+
"practical-utility",
|
|
5711
|
+
"brand-solid",
|
|
5712
|
+
"clean-base"
|
|
5713
|
+
],
|
|
4589
5714
|
buttonPersonalityChoices: [
|
|
4590
5715
|
buttonChoice("confident-chip"),
|
|
4591
5716
|
buttonChoice("soft-pill"),
|
|
@@ -4612,7 +5737,11 @@ var curatedSiteStyles = [
|
|
|
4612
5737
|
motion: "subtle"
|
|
4613
5738
|
},
|
|
4614
5739
|
compositionBudget: balancedBudget,
|
|
4615
|
-
recommendedHeaderLookIds: [
|
|
5740
|
+
recommendedHeaderLookIds: [
|
|
5741
|
+
"serif-line",
|
|
5742
|
+
"minimal-transparent",
|
|
5743
|
+
"centered-calm"
|
|
5744
|
+
],
|
|
4616
5745
|
buttonPersonalityChoices: [
|
|
4617
5746
|
buttonChoice("editorial-link"),
|
|
4618
5747
|
buttonChoice("soft-pill"),
|
|
@@ -4640,7 +5769,11 @@ var curatedSiteStyles = [
|
|
|
4640
5769
|
motion: "expressive"
|
|
4641
5770
|
},
|
|
4642
5771
|
compositionBudget: balancedBudget,
|
|
4643
|
-
recommendedHeaderLookIds: [
|
|
5772
|
+
recommendedHeaderLookIds: [
|
|
5773
|
+
"brand-solid",
|
|
5774
|
+
"practical-utility",
|
|
5775
|
+
"clean-base"
|
|
5776
|
+
],
|
|
4644
5777
|
buttonPersonalityChoices: [
|
|
4645
5778
|
buttonChoice("pebble"),
|
|
4646
5779
|
buttonChoice("brushed-wash"),
|
|
@@ -4657,7 +5790,10 @@ var curatedSiteStyles = [
|
|
|
4657
5790
|
name: "Quiet Luxury",
|
|
4658
5791
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
4659
5792
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
4660
|
-
siteCreatorSelection: {
|
|
5793
|
+
siteCreatorSelection: {
|
|
5794
|
+
kind: "site_creator_keyword_heuristic",
|
|
5795
|
+
priority: 20
|
|
5796
|
+
},
|
|
4661
5797
|
selectionKeywordRules: [
|
|
4662
5798
|
{ kind: "word", value: "luxury" },
|
|
4663
5799
|
{ kind: "word", value: "premium" },
|
|
@@ -4675,7 +5811,11 @@ var curatedSiteStyles = [
|
|
|
4675
5811
|
motion: "none"
|
|
4676
5812
|
},
|
|
4677
5813
|
compositionBudget: quietBudget,
|
|
4678
|
-
recommendedHeaderLookIds: [
|
|
5814
|
+
recommendedHeaderLookIds: [
|
|
5815
|
+
"minimal-transparent",
|
|
5816
|
+
"serif-line",
|
|
5817
|
+
"clean-base"
|
|
5818
|
+
],
|
|
4679
5819
|
buttonPersonalityChoices: [
|
|
4680
5820
|
buttonChoice("editorial-link"),
|
|
4681
5821
|
buttonChoice("confident-chip"),
|
|
@@ -4711,7 +5851,11 @@ var curatedSiteStyles = [
|
|
|
4711
5851
|
motion: "none"
|
|
4712
5852
|
},
|
|
4713
5853
|
compositionBudget: quietBudget,
|
|
4714
|
-
recommendedHeaderLookIds: [
|
|
5854
|
+
recommendedHeaderLookIds: [
|
|
5855
|
+
"practical-utility",
|
|
5856
|
+
"brand-solid",
|
|
5857
|
+
"clean-base"
|
|
5858
|
+
],
|
|
4715
5859
|
buttonPersonalityChoices: [
|
|
4716
5860
|
buttonChoice("confident-chip"),
|
|
4717
5861
|
buttonChoice("pebble"),
|
|
@@ -4738,7 +5882,11 @@ var curatedSiteStyles = [
|
|
|
4738
5882
|
motion: "subtle"
|
|
4739
5883
|
},
|
|
4740
5884
|
compositionBudget: balancedBudget,
|
|
4741
|
-
recommendedHeaderLookIds: [
|
|
5885
|
+
recommendedHeaderLookIds: [
|
|
5886
|
+
"centered-calm",
|
|
5887
|
+
"minimal-transparent",
|
|
5888
|
+
"clean-base"
|
|
5889
|
+
],
|
|
4742
5890
|
buttonPersonalityChoices: [
|
|
4743
5891
|
buttonChoice("soft-pill"),
|
|
4744
5892
|
buttonChoice("pebble"),
|
|
@@ -4755,7 +5903,10 @@ var curatedSiteStyles = [
|
|
|
4755
5903
|
name: "Quiet Practice",
|
|
4756
5904
|
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
4757
5905
|
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.",
|
|
4758
|
-
siteCreatorSelection: {
|
|
5906
|
+
siteCreatorSelection: {
|
|
5907
|
+
kind: "site_creator_keyword_heuristic",
|
|
5908
|
+
priority: 30
|
|
5909
|
+
},
|
|
4759
5910
|
selectionKeywordRules: [
|
|
4760
5911
|
{ kind: "substring", value: "massage" },
|
|
4761
5912
|
{ kind: "word", value: "bodywork" },
|
|
@@ -4776,7 +5927,11 @@ var curatedSiteStyles = [
|
|
|
4776
5927
|
motion: "subtle"
|
|
4777
5928
|
},
|
|
4778
5929
|
compositionBudget: quietBudget,
|
|
4779
|
-
recommendedHeaderLookIds: [
|
|
5930
|
+
recommendedHeaderLookIds: [
|
|
5931
|
+
"practical-utility",
|
|
5932
|
+
"clean-base",
|
|
5933
|
+
"centered-calm"
|
|
5934
|
+
],
|
|
4780
5935
|
buttonPersonalityChoices: [
|
|
4781
5936
|
buttonChoice("pebble"),
|
|
4782
5937
|
buttonChoice("soft-pill"),
|
|
@@ -4793,7 +5948,10 @@ var curatedSiteStyles = [
|
|
|
4793
5948
|
name: "Personal Retreat Journal",
|
|
4794
5949
|
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
4795
5950
|
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.",
|
|
4796
|
-
siteCreatorSelection: {
|
|
5951
|
+
siteCreatorSelection: {
|
|
5952
|
+
kind: "site_creator_keyword_heuristic",
|
|
5953
|
+
priority: 40
|
|
5954
|
+
},
|
|
4797
5955
|
selectionKeywordRules: [
|
|
4798
5956
|
{ kind: "substring", value: "retreat" },
|
|
4799
5957
|
{ kind: "phrase", value: "solo practitioner" },
|
|
@@ -4813,7 +5971,11 @@ var curatedSiteStyles = [
|
|
|
4813
5971
|
motion: "subtle"
|
|
4814
5972
|
},
|
|
4815
5973
|
compositionBudget: balancedBudget,
|
|
4816
|
-
recommendedHeaderLookIds: [
|
|
5974
|
+
recommendedHeaderLookIds: [
|
|
5975
|
+
"serif-line",
|
|
5976
|
+
"centered-calm",
|
|
5977
|
+
"minimal-transparent"
|
|
5978
|
+
],
|
|
4817
5979
|
buttonPersonalityChoices: [
|
|
4818
5980
|
buttonChoice("editorial-link"),
|
|
4819
5981
|
buttonChoice("soft-pill"),
|
|
@@ -4830,7 +5992,10 @@ var curatedSiteStyles = [
|
|
|
4830
5992
|
name: "Tactile Workshop",
|
|
4831
5993
|
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
4832
5994
|
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.",
|
|
4833
|
-
siteCreatorSelection: {
|
|
5995
|
+
siteCreatorSelection: {
|
|
5996
|
+
kind: "site_creator_keyword_heuristic",
|
|
5997
|
+
priority: 50
|
|
5998
|
+
},
|
|
4834
5999
|
selectionKeywordRules: [
|
|
4835
6000
|
{ kind: "substring", value: "ceramic" },
|
|
4836
6001
|
{ kind: "word", value: "pottery" },
|
|
@@ -4850,8 +6015,15 @@ var curatedSiteStyles = [
|
|
|
4850
6015
|
motion: "subtle"
|
|
4851
6016
|
},
|
|
4852
6017
|
compositionBudget: balancedBudget,
|
|
4853
|
-
recommendedHeaderLookIds: [
|
|
4854
|
-
|
|
6018
|
+
recommendedHeaderLookIds: [
|
|
6019
|
+
"brand-solid",
|
|
6020
|
+
"practical-utility",
|
|
6021
|
+
"clean-base"
|
|
6022
|
+
],
|
|
6023
|
+
recommendedFooterLookIds: [
|
|
6024
|
+
"site-footer-brand-two-band",
|
|
6025
|
+
"footer-muted-grounding"
|
|
6026
|
+
],
|
|
4855
6027
|
buttonPersonalityChoices: [
|
|
4856
6028
|
buttonChoice("pebble"),
|
|
4857
6029
|
buttonChoice("confident-chip"),
|
|
@@ -4866,101 +6038,178 @@ var curatedSiteStyles = [
|
|
|
4866
6038
|
]
|
|
4867
6039
|
}),
|
|
4868
6040
|
defineCuratedSiteStyle({
|
|
4869
|
-
id: "site-style:
|
|
4870
|
-
name: "
|
|
4871
|
-
description: "
|
|
4872
|
-
generationBrief: "Use
|
|
4873
|
-
siteCreatorSelection: {
|
|
4874
|
-
|
|
4875
|
-
|
|
4876
|
-
{ kind: "substring", value: "campaign" },
|
|
4877
|
-
{ kind: "word", value: "preorder" },
|
|
4878
|
-
{ kind: "phrase", value: "pre-order" },
|
|
4879
|
-
{ kind: "substring", value: "waitlist" },
|
|
4880
|
-
{ kind: "word", value: "drop" }
|
|
4881
|
-
],
|
|
4882
|
-
tokenRecipes: {
|
|
4883
|
-
palette: "high-contrast",
|
|
4884
|
-
contrast: "maximum",
|
|
4885
|
-
radius: "pill",
|
|
4886
|
-
shadow: "layered",
|
|
4887
|
-
typography: "clean-sans",
|
|
4888
|
-
spacing: "regular",
|
|
4889
|
-
motion: "expressive"
|
|
6041
|
+
id: "site-style:soft-earth",
|
|
6042
|
+
name: "Soft Earth",
|
|
6043
|
+
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
6044
|
+
generationBrief: "Use cream space, terracotta CTAs, olive proof bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community proof, and a simple two-column FAQ when content allows.",
|
|
6045
|
+
siteCreatorSelection: {
|
|
6046
|
+
kind: "site_creator_keyword_heuristic",
|
|
6047
|
+
priority: 45
|
|
4890
6048
|
},
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
buttonChoice("pebble")
|
|
6049
|
+
selectionKeywordRules: [
|
|
6050
|
+
{ kind: "word", value: "meditation" },
|
|
6051
|
+
{ kind: "word", value: "wellbeing" },
|
|
6052
|
+
{ kind: "substring", value: "retreat" },
|
|
6053
|
+
{ kind: "phrase", value: "yoga studio" },
|
|
6054
|
+
{ kind: "phrase", value: "mindful movement" }
|
|
4898
6055
|
],
|
|
4899
|
-
paletteVariantChoices: [
|
|
4900
|
-
paletteChoice("high-contrast-monochrome"),
|
|
4901
|
-
paletteChoice("high-contrast-ink"),
|
|
4902
|
-
paletteChoice("brand-led-jewel"),
|
|
4903
|
-
paletteChoice("brand-led-warm")
|
|
4904
|
-
]
|
|
4905
|
-
}),
|
|
4906
|
-
defineCuratedSiteStyle({
|
|
4907
|
-
id: "site-style:south-west-twerk-school",
|
|
4908
|
-
name: "South West Twerk School",
|
|
4909
|
-
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
4910
|
-
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.",
|
|
4911
6056
|
tokenRecipes: {
|
|
4912
|
-
palette: "
|
|
4913
|
-
contrast: "
|
|
6057
|
+
palette: "warm-neutral",
|
|
6058
|
+
contrast: "standard",
|
|
4914
6059
|
radius: "soft",
|
|
4915
|
-
shadow: "
|
|
4916
|
-
typography: "
|
|
6060
|
+
shadow: "subtle",
|
|
6061
|
+
typography: "serif-editorial",
|
|
4917
6062
|
spacing: "airy",
|
|
4918
|
-
motion: "
|
|
6063
|
+
motion: "subtle"
|
|
4919
6064
|
},
|
|
4920
|
-
compositionBudget:
|
|
6065
|
+
compositionBudget: balancedBudget,
|
|
4921
6066
|
themeOverrides: {
|
|
4922
6067
|
typography: {
|
|
4923
6068
|
body: {
|
|
4924
|
-
family: "
|
|
4925
|
-
size: "
|
|
6069
|
+
family: "Inter, system-ui, sans-serif",
|
|
6070
|
+
size: "md",
|
|
4926
6071
|
weight: "regular",
|
|
4927
6072
|
lineHeight: "relaxed",
|
|
4928
6073
|
letterSpacing: "normal"
|
|
4929
6074
|
},
|
|
4930
6075
|
headings: {
|
|
4931
6076
|
default: {
|
|
4932
|
-
family: '"
|
|
4933
|
-
weight: "
|
|
6077
|
+
family: '"Cormorant Garamond", Georgia, serif',
|
|
6078
|
+
weight: "regular",
|
|
4934
6079
|
lineHeight: "normal",
|
|
4935
|
-
letterSpacing: "
|
|
4936
|
-
colorToken: "
|
|
6080
|
+
letterSpacing: "normal",
|
|
6081
|
+
colorToken: "text",
|
|
4937
6082
|
italic: null,
|
|
4938
6083
|
case: null
|
|
4939
6084
|
},
|
|
4940
6085
|
h1: {
|
|
4941
6086
|
size: "xl",
|
|
4942
|
-
weight: "
|
|
6087
|
+
weight: "regular",
|
|
4943
6088
|
lineHeight: "normal",
|
|
4944
|
-
letterSpacing: "
|
|
6089
|
+
letterSpacing: "normal",
|
|
4945
6090
|
italic: null
|
|
4946
6091
|
},
|
|
4947
6092
|
h2: {
|
|
4948
6093
|
size: "lg",
|
|
4949
|
-
weight: "
|
|
6094
|
+
weight: "regular",
|
|
4950
6095
|
lineHeight: "normal",
|
|
4951
6096
|
letterSpacing: "normal",
|
|
4952
6097
|
italic: null
|
|
4953
6098
|
},
|
|
4954
6099
|
h3: {
|
|
4955
6100
|
size: "md",
|
|
4956
|
-
weight: "
|
|
6101
|
+
weight: "regular",
|
|
4957
6102
|
lineHeight: "normal",
|
|
4958
6103
|
letterSpacing: "normal",
|
|
4959
6104
|
italic: null
|
|
4960
6105
|
}
|
|
4961
6106
|
},
|
|
4962
|
-
scale: "
|
|
6107
|
+
scale: "majorThird"
|
|
4963
6108
|
},
|
|
6109
|
+
bodyText: {
|
|
6110
|
+
intro: {
|
|
6111
|
+
paragraphSize: "default",
|
|
6112
|
+
headingSize: "editorial"
|
|
6113
|
+
}
|
|
6114
|
+
}
|
|
6115
|
+
},
|
|
6116
|
+
recommendedAppearancePresetIds: [
|
|
6117
|
+
"hero-brand-scrim",
|
|
6118
|
+
"intro-soft-earth-statement",
|
|
6119
|
+
"feature-cards-soft-earth-offerings",
|
|
6120
|
+
"testimonials-soft-earth-proof-band",
|
|
6121
|
+
"faq-soft-earth-two-column",
|
|
6122
|
+
"contact-form-panel"
|
|
6123
|
+
],
|
|
6124
|
+
recommendedHeaderLookIds: [
|
|
6125
|
+
"centered-calm",
|
|
6126
|
+
"minimal-transparent",
|
|
6127
|
+
"serif-line"
|
|
6128
|
+
],
|
|
6129
|
+
recommendedFooterLookIds: [
|
|
6130
|
+
"footer-muted-grounding",
|
|
6131
|
+
"site-footer-brand-two-band"
|
|
6132
|
+
],
|
|
6133
|
+
buttonPersonalityChoices: [
|
|
6134
|
+
buttonChoice("earth-pill"),
|
|
6135
|
+
buttonChoice("soft-pill"),
|
|
6136
|
+
buttonChoice("pebble"),
|
|
6137
|
+
buttonChoice("editorial-link")
|
|
6138
|
+
],
|
|
6139
|
+
paletteVariantChoices: [
|
|
6140
|
+
paletteChoice("warm-neutral-soft-earth"),
|
|
6141
|
+
paletteChoice("warm-neutral-clay"),
|
|
6142
|
+
paletteChoice("warm-neutral-forest"),
|
|
6143
|
+
paletteChoice("soft-natural-sage")
|
|
6144
|
+
]
|
|
6145
|
+
}),
|
|
6146
|
+
defineCuratedSiteStyle({
|
|
6147
|
+
id: "site-style:bold-launch",
|
|
6148
|
+
name: "Bold Launch",
|
|
6149
|
+
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
6150
|
+
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
6151
|
+
siteCreatorSelection: {
|
|
6152
|
+
kind: "site_creator_keyword_heuristic",
|
|
6153
|
+
priority: 10
|
|
6154
|
+
},
|
|
6155
|
+
selectionKeywordRules: [
|
|
6156
|
+
{ kind: "substring", value: "launch" },
|
|
6157
|
+
{ kind: "substring", value: "campaign" },
|
|
6158
|
+
{ kind: "word", value: "preorder" },
|
|
6159
|
+
{ kind: "phrase", value: "pre-order" },
|
|
6160
|
+
{ kind: "substring", value: "waitlist" },
|
|
6161
|
+
{ kind: "word", value: "drop" }
|
|
6162
|
+
],
|
|
6163
|
+
tokenRecipes: {
|
|
6164
|
+
palette: "high-contrast",
|
|
6165
|
+
contrast: "maximum",
|
|
6166
|
+
radius: "pill",
|
|
6167
|
+
shadow: "layered",
|
|
6168
|
+
typography: "clean-sans",
|
|
6169
|
+
spacing: "regular",
|
|
6170
|
+
motion: "expressive"
|
|
6171
|
+
},
|
|
6172
|
+
compositionBudget: expressiveBudget,
|
|
6173
|
+
recommendedHeaderLookIds: [
|
|
6174
|
+
"transparent-overlay",
|
|
6175
|
+
"floating-glass",
|
|
6176
|
+
"brand-solid"
|
|
6177
|
+
],
|
|
6178
|
+
buttonPersonalityChoices: [
|
|
6179
|
+
buttonChoice("ink-stamp"),
|
|
6180
|
+
buttonChoice("confident-chip"),
|
|
6181
|
+
buttonChoice("brushed-wash"),
|
|
6182
|
+
buttonChoice("pebble")
|
|
6183
|
+
],
|
|
6184
|
+
paletteVariantChoices: [
|
|
6185
|
+
paletteChoice("high-contrast-monochrome"),
|
|
6186
|
+
paletteChoice("high-contrast-ink"),
|
|
6187
|
+
paletteChoice("brand-led-jewel"),
|
|
6188
|
+
paletteChoice("brand-led-warm")
|
|
6189
|
+
]
|
|
6190
|
+
}),
|
|
6191
|
+
defineCuratedSiteStyle({
|
|
6192
|
+
id: "site-style:south-west-twerk-school",
|
|
6193
|
+
name: "South West Twerk School",
|
|
6194
|
+
description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
|
|
6195
|
+
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.",
|
|
6196
|
+
tokenRecipes: {
|
|
6197
|
+
palette: "brand-led",
|
|
6198
|
+
contrast: "maximum",
|
|
6199
|
+
radius: "soft",
|
|
6200
|
+
shadow: "layered",
|
|
6201
|
+
typography: "clean-sans",
|
|
6202
|
+
spacing: "airy",
|
|
6203
|
+
motion: "expressive"
|
|
6204
|
+
},
|
|
6205
|
+
compositionBudget: expressiveBudget,
|
|
6206
|
+
typographyPresetChoices: [
|
|
6207
|
+
typographyChoice("typography-preset:bold-display"),
|
|
6208
|
+
typographyChoice("typography-preset:modern-sans"),
|
|
6209
|
+
typographyChoice("typography-preset:luxe-contrast")
|
|
6210
|
+
],
|
|
6211
|
+
defaultTypographyPresetId: "typography-preset:bold-display",
|
|
6212
|
+
themeOverrides: {
|
|
4964
6213
|
bodyText: {
|
|
4965
6214
|
intro: {
|
|
4966
6215
|
paragraphSize: "editorial",
|
|
@@ -4976,8 +6225,15 @@ var curatedSiteStyles = [
|
|
|
4976
6225
|
"testimonials-accent-quote-proof",
|
|
4977
6226
|
"contact-form-brand-depth-card"
|
|
4978
6227
|
],
|
|
4979
|
-
recommendedHeaderLookIds: [
|
|
4980
|
-
|
|
6228
|
+
recommendedHeaderLookIds: [
|
|
6229
|
+
"brand-solid",
|
|
6230
|
+
"transparent-overlay",
|
|
6231
|
+
"practical-utility"
|
|
6232
|
+
],
|
|
6233
|
+
recommendedFooterLookIds: [
|
|
6234
|
+
"site-footer-brand-two-band",
|
|
6235
|
+
"footer-muted-grounding"
|
|
6236
|
+
],
|
|
4981
6237
|
buttonPersonalityChoices: [
|
|
4982
6238
|
buttonChoice("showtime-pill"),
|
|
4983
6239
|
buttonChoice("confident-chip"),
|
|
@@ -8747,8 +10003,9 @@ var faqAccordionFragment = defineFragment({
|
|
|
8747
10003
|
},
|
|
8748
10004
|
fallback: "rb-faq-item"
|
|
8749
10005
|
},
|
|
8750
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } }
|
|
8751
|
-
//
|
|
10006
|
+
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
10007
|
+
// Legacy theme accordion style
|
|
10008
|
+
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
8752
10009
|
},
|
|
8753
10010
|
triggerFrom: "faqItem.question",
|
|
8754
10011
|
contentFrom: "faqItem.answer"
|
|
@@ -9826,61 +11083,389 @@ function splitLayoutWith(children) {
|
|
|
9826
11083
|
children
|
|
9827
11084
|
}
|
|
9828
11085
|
}),
|
|
9829
|
-
// The split variants render the image as a real grid column, so suppress
|
|
9830
|
-
// the default absolute background image layer while keeping color/overlay.
|
|
9831
|
-
renderBackgroundImage: false,
|
|
9832
|
-
baseClass: ""
|
|
9833
|
-
});
|
|
9834
|
-
}
|
|
9835
|
-
var splitContentColumn = heroContentWrapper(heroContentNodes, "md", "rb-w-full rb-text-left");
|
|
9836
|
-
var splitImageColumn = heroSplitImagePane();
|
|
9837
|
-
var splitLayout = splitLayoutWith([
|
|
9838
|
-
splitContentColumn,
|
|
9839
|
-
splitImageColumn
|
|
9840
|
-
]);
|
|
9841
|
-
var splitReverseLayout = splitLayoutWith([
|
|
9842
|
-
splitImageColumn,
|
|
9843
|
-
splitContentColumn
|
|
9844
|
-
]);
|
|
9845
|
-
var heroConfig = {
|
|
9846
|
-
id: "block.hero",
|
|
9847
|
-
title: "Hero",
|
|
9848
|
-
titleSource: "headline",
|
|
9849
|
-
category: "layout",
|
|
9850
|
-
includeContainerStyles: true,
|
|
9851
|
-
promotedFields: ["_sectionStyles.background.image"],
|
|
9852
|
-
fragments: [
|
|
9853
|
-
{ fragment: heroCopyFragment, fieldPriority: 0 },
|
|
9854
|
-
{ fragment: heroLayoutControlsFragment, fieldPriority: 1 },
|
|
9855
|
-
{ fragment: heroCtaRowFragment, fieldPriority: 2 }
|
|
9856
|
-
],
|
|
9857
|
-
additionalFields: [
|
|
9858
|
-
containerStylesField({
|
|
9859
|
-
id: "_contentCardStyles",
|
|
9860
|
-
label: "Content card",
|
|
9861
|
-
renderInHeader: true,
|
|
9862
|
-
intent: "style"
|
|
11086
|
+
// The split variants render the image as a real grid column, so suppress
|
|
11087
|
+
// the default absolute background image layer while keeping color/overlay.
|
|
11088
|
+
renderBackgroundImage: false,
|
|
11089
|
+
baseClass: ""
|
|
11090
|
+
});
|
|
11091
|
+
}
|
|
11092
|
+
var splitContentColumn = heroContentWrapper(heroContentNodes, "md", "rb-w-full rb-text-left");
|
|
11093
|
+
var splitImageColumn = heroSplitImagePane();
|
|
11094
|
+
var splitLayout = splitLayoutWith([
|
|
11095
|
+
splitContentColumn,
|
|
11096
|
+
splitImageColumn
|
|
11097
|
+
]);
|
|
11098
|
+
var splitReverseLayout = splitLayoutWith([
|
|
11099
|
+
splitImageColumn,
|
|
11100
|
+
splitContentColumn
|
|
11101
|
+
]);
|
|
11102
|
+
var heroConfig = {
|
|
11103
|
+
id: "block.hero",
|
|
11104
|
+
title: "Hero",
|
|
11105
|
+
titleSource: "headline",
|
|
11106
|
+
category: "layout",
|
|
11107
|
+
includeContainerStyles: true,
|
|
11108
|
+
promotedFields: ["_sectionStyles.background.image"],
|
|
11109
|
+
fragments: [
|
|
11110
|
+
{ fragment: heroCopyFragment, fieldPriority: 0 },
|
|
11111
|
+
{ fragment: heroLayoutControlsFragment, fieldPriority: 1 },
|
|
11112
|
+
{ fragment: heroCtaRowFragment, fieldPriority: 2 }
|
|
11113
|
+
],
|
|
11114
|
+
additionalFields: [
|
|
11115
|
+
containerStylesField({
|
|
11116
|
+
id: "_contentCardStyles",
|
|
11117
|
+
label: "Content card",
|
|
11118
|
+
renderInHeader: true,
|
|
11119
|
+
intent: "style"
|
|
11120
|
+
})
|
|
11121
|
+
],
|
|
11122
|
+
layout: classicLayout,
|
|
11123
|
+
variants: {
|
|
11124
|
+
classic: classicLayout,
|
|
11125
|
+
micro: microLayout,
|
|
11126
|
+
split: splitLayout,
|
|
11127
|
+
splitReverse: splitReverseLayout
|
|
11128
|
+
},
|
|
11129
|
+
defaultVariant: "classic",
|
|
11130
|
+
description: "Hero section with headline, subtitle, and repeatable CTAs.",
|
|
11131
|
+
tags: ["header", "banner", "landing", "introduction", "welcome", "splash", "headline"],
|
|
11132
|
+
icon: "Sparkles",
|
|
11133
|
+
styleTokens: {
|
|
11134
|
+
typography: "display",
|
|
11135
|
+
spacing: "xl"
|
|
11136
|
+
}
|
|
11137
|
+
};
|
|
11138
|
+
var heroManifest = createBlockManifest(heroConfig);
|
|
11139
|
+
var heroBlockDefinition = {
|
|
11140
|
+
manifest: heroManifest
|
|
11141
|
+
};
|
|
11142
|
+
|
|
11143
|
+
// ../blocks/src/system/fields/aspectRatio.ts
|
|
11144
|
+
var standardAspectRatioOptions = [
|
|
11145
|
+
{ value: "auto", label: "Auto (original)" },
|
|
11146
|
+
{ value: "16/9", label: "16:9 (Landscape)" },
|
|
11147
|
+
{ value: "4/3", label: "4:3 (Standard)" },
|
|
11148
|
+
{ value: "1/1", label: "1:1 (Square)" },
|
|
11149
|
+
{ value: "3/4", label: "3:4 (Portrait)" }
|
|
11150
|
+
];
|
|
11151
|
+
function createAspectRatioField(options = {}) {
|
|
11152
|
+
return {
|
|
11153
|
+
id: options.id ?? "aspectRatio",
|
|
11154
|
+
type: "select",
|
|
11155
|
+
label: options.label ?? "Aspect ratio",
|
|
11156
|
+
...options.description ? { description: options.description } : {},
|
|
11157
|
+
required: false,
|
|
11158
|
+
defaultValue: options.defaultValue ?? "auto",
|
|
11159
|
+
multiple: false,
|
|
11160
|
+
options: [...standardAspectRatioOptions],
|
|
11161
|
+
ui: {
|
|
11162
|
+
intent: options.uiIntent ?? "display",
|
|
11163
|
+
...options.visibleWhen ? { visibleWhen: options.visibleWhen } : {}
|
|
11164
|
+
}
|
|
11165
|
+
};
|
|
11166
|
+
}
|
|
11167
|
+
|
|
11168
|
+
// ../blocks/src/system/fields/imageLayout.ts
|
|
11169
|
+
function createImageColSizeField(options = {}) {
|
|
11170
|
+
const {
|
|
11171
|
+
id = "imageColSize",
|
|
11172
|
+
label = "Image column size",
|
|
11173
|
+
description = "Controls how large the image/thumbnail column is at desktop breakpoints.",
|
|
11174
|
+
defaultValue = "1/3",
|
|
11175
|
+
uiIntent = "display",
|
|
11176
|
+
visibleWhen
|
|
11177
|
+
} = options;
|
|
11178
|
+
return {
|
|
11179
|
+
id,
|
|
11180
|
+
type: "select",
|
|
11181
|
+
label,
|
|
11182
|
+
description,
|
|
11183
|
+
required: false,
|
|
11184
|
+
defaultValue,
|
|
11185
|
+
multiple: false,
|
|
11186
|
+
options: [
|
|
11187
|
+
{ value: "1/4", label: "Small (1/4)" },
|
|
11188
|
+
{ value: "1/3", label: "Medium (1/3)" },
|
|
11189
|
+
{ value: "2/5", label: "Large (2/5)" },
|
|
11190
|
+
{ value: "1/2", label: "Extra large (1/2)" },
|
|
11191
|
+
{ value: "2/3", label: "Huge (2/3)" }
|
|
11192
|
+
],
|
|
11193
|
+
ui: {
|
|
11194
|
+
intent: uiIntent,
|
|
11195
|
+
...visibleWhen ? { visibleWhen } : {}
|
|
11196
|
+
}
|
|
11197
|
+
};
|
|
11198
|
+
}
|
|
11199
|
+
function createImagePositionField(options = {}) {
|
|
11200
|
+
const {
|
|
11201
|
+
id = "imagePosition",
|
|
11202
|
+
label = "Image position",
|
|
11203
|
+
description = "Choose which side the image appears on.",
|
|
11204
|
+
defaultValue = "left",
|
|
11205
|
+
includeAlternate = false,
|
|
11206
|
+
uiIntent = "display",
|
|
11207
|
+
visibleWhen
|
|
11208
|
+
} = options;
|
|
11209
|
+
const positionOptions = [
|
|
11210
|
+
{ value: "left", label: "Left" },
|
|
11211
|
+
{ value: "right", label: "Right" },
|
|
11212
|
+
...includeAlternate ? [{ value: "alternate", label: "Alternate" }] : []
|
|
11213
|
+
];
|
|
11214
|
+
return {
|
|
11215
|
+
id,
|
|
11216
|
+
type: "select",
|
|
11217
|
+
label,
|
|
11218
|
+
description,
|
|
11219
|
+
required: false,
|
|
11220
|
+
defaultValue,
|
|
11221
|
+
multiple: false,
|
|
11222
|
+
// Spread to get a mutable array type without unsafe casts.
|
|
11223
|
+
options: [...positionOptions],
|
|
11224
|
+
ui: {
|
|
11225
|
+
intent: uiIntent,
|
|
11226
|
+
...visibleWhen ? { visibleWhen } : {}
|
|
11227
|
+
}
|
|
11228
|
+
};
|
|
11229
|
+
}
|
|
11230
|
+
|
|
11231
|
+
// ../blocks/src/system/blocks/intro.ts
|
|
11232
|
+
function introHeading(className) {
|
|
11233
|
+
return text(
|
|
11234
|
+
{
|
|
11235
|
+
as: "h2",
|
|
11236
|
+
className
|
|
11237
|
+
},
|
|
11238
|
+
when("content.title"),
|
|
11239
|
+
bind("content.title")
|
|
11240
|
+
);
|
|
11241
|
+
}
|
|
11242
|
+
function introBody(className = "rb-prose rb-max-w-none") {
|
|
11243
|
+
return richText({ className }, bind("content.body"));
|
|
11244
|
+
}
|
|
11245
|
+
function introCtas(justify = "start") {
|
|
11246
|
+
return ctaRow({
|
|
11247
|
+
justify,
|
|
11248
|
+
gap: "md",
|
|
11249
|
+
containerClassName: "rb-mt-2"
|
|
11250
|
+
});
|
|
11251
|
+
}
|
|
11252
|
+
function introCopyStack(options = {}) {
|
|
11253
|
+
return stack(
|
|
11254
|
+
{
|
|
11255
|
+
gap: "md",
|
|
11256
|
+
className: options.className ?? "rb-intro-copy"
|
|
11257
|
+
},
|
|
11258
|
+
[
|
|
11259
|
+
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
11260
|
+
introBody(options.bodyClassName),
|
|
11261
|
+
introCtas(options.ctaJustify)
|
|
11262
|
+
]
|
|
11263
|
+
);
|
|
11264
|
+
}
|
|
11265
|
+
var introMedia = media(
|
|
11266
|
+
{
|
|
11267
|
+
className: "rb-intro-media rb-w-full rb-h-auto rb-object-cover",
|
|
11268
|
+
style: {
|
|
11269
|
+
aspectRatio: { $bind: { from: "content.aspectRatio" } }
|
|
11270
|
+
}
|
|
11271
|
+
},
|
|
11272
|
+
bind("content.media")
|
|
11273
|
+
);
|
|
11274
|
+
var centeredCopyLayout = styledSection({
|
|
11275
|
+
children: styledContainer({
|
|
11276
|
+
rootType: "stack",
|
|
11277
|
+
rootProps: { gap: "lg" },
|
|
11278
|
+
children: [
|
|
11279
|
+
introCopyStack({
|
|
11280
|
+
className: "rb-intro-copy rb-mx-auto rb-max-w-3xl rb-text-center",
|
|
11281
|
+
headingClassName: "rb-intro-title rb-text-center",
|
|
11282
|
+
bodyClassName: "rb-prose rb-mx-auto rb-max-w-none",
|
|
11283
|
+
ctaJustify: "center"
|
|
11284
|
+
})
|
|
11285
|
+
]
|
|
11286
|
+
}),
|
|
11287
|
+
baseClass: "",
|
|
11288
|
+
spacing: "medium"
|
|
11289
|
+
});
|
|
11290
|
+
var statementCopyLayout = styledSection({
|
|
11291
|
+
children: styledContainer({
|
|
11292
|
+
children: [
|
|
11293
|
+
el(
|
|
11294
|
+
"div",
|
|
11295
|
+
{
|
|
11296
|
+
className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
|
|
11297
|
+
},
|
|
11298
|
+
[
|
|
11299
|
+
introHeading("rb-intro-title rb-max-w-xl"),
|
|
11300
|
+
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
11301
|
+
introBody(),
|
|
11302
|
+
introCtas("start")
|
|
11303
|
+
])
|
|
11304
|
+
]
|
|
11305
|
+
)
|
|
11306
|
+
]
|
|
11307
|
+
}),
|
|
11308
|
+
baseClass: "",
|
|
11309
|
+
spacing: "medium"
|
|
11310
|
+
});
|
|
11311
|
+
var statementMediaLayout = styledSection({
|
|
11312
|
+
children: styledContainer({
|
|
11313
|
+
children: [
|
|
11314
|
+
el(
|
|
11315
|
+
"div",
|
|
11316
|
+
{
|
|
11317
|
+
className: "rb-intro rb-intro-statement-media rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-3 rb-lg-items-center"
|
|
11318
|
+
},
|
|
11319
|
+
[
|
|
11320
|
+
introHeading("rb-intro-title rb-max-w-xl"),
|
|
11321
|
+
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
11322
|
+
introBody(),
|
|
11323
|
+
introCtas("start")
|
|
11324
|
+
]),
|
|
11325
|
+
el("div", { className: "rb-intro-media-wrap rb-w-full" }, [introMedia], when("content.media"))
|
|
11326
|
+
]
|
|
11327
|
+
)
|
|
11328
|
+
]
|
|
11329
|
+
}),
|
|
11330
|
+
baseClass: "",
|
|
11331
|
+
spacing: "medium"
|
|
11332
|
+
});
|
|
11333
|
+
var mediaCopyLayout = styledSection({
|
|
11334
|
+
children: styledContainer({
|
|
11335
|
+
children: [
|
|
11336
|
+
responsiveTwoColumn({
|
|
11337
|
+
image: el("div", { className: "rb-intro-media-wrap rb-w-full" }, [introMedia]),
|
|
11338
|
+
text: introCopyStack({
|
|
11339
|
+
className: "rb-intro-copy rb-max-w-xl",
|
|
11340
|
+
headingClassName: "rb-intro-title"
|
|
11341
|
+
}),
|
|
11342
|
+
ratioFrom: "content.ratio",
|
|
11343
|
+
imagePositionFrom: "content.imagePosition",
|
|
11344
|
+
gapFrom: "content.gap",
|
|
11345
|
+
gapFallback: "comfortable",
|
|
11346
|
+
imageWrapperClassName: "rb-w-full rb-shrink-0",
|
|
11347
|
+
textWrapperClassName: "rb-w-full rb-min-w-0 rb-flex-1 rb-self-center"
|
|
11348
|
+
})
|
|
11349
|
+
]
|
|
11350
|
+
}),
|
|
11351
|
+
baseClass: "",
|
|
11352
|
+
spacing: "medium"
|
|
11353
|
+
});
|
|
11354
|
+
var introConfig = {
|
|
11355
|
+
id: "block.intro",
|
|
11356
|
+
title: "Intro",
|
|
11357
|
+
category: "layout",
|
|
11358
|
+
includeContainerStyles: true,
|
|
11359
|
+
titleSource: "title",
|
|
11360
|
+
additionalFields: [
|
|
11361
|
+
{
|
|
11362
|
+
id: "title",
|
|
11363
|
+
type: "text",
|
|
11364
|
+
label: "Statement",
|
|
11365
|
+
required: false,
|
|
11366
|
+
multiline: true,
|
|
11367
|
+
maxLength: 160
|
|
11368
|
+
},
|
|
11369
|
+
{
|
|
11370
|
+
id: "body",
|
|
11371
|
+
type: "richText",
|
|
11372
|
+
label: "Text",
|
|
11373
|
+
required: true,
|
|
11374
|
+
ui: {
|
|
11375
|
+
richTextVariant: "limited"
|
|
11376
|
+
}
|
|
11377
|
+
},
|
|
11378
|
+
{
|
|
11379
|
+
id: "media",
|
|
11380
|
+
type: "media",
|
|
11381
|
+
label: "Media",
|
|
11382
|
+
required: false,
|
|
11383
|
+
mediaKinds: ["image"],
|
|
11384
|
+
ui: {
|
|
11385
|
+
intent: "content",
|
|
11386
|
+
visibleWhen: { field: "variant", notEquals: "statement-copy" }
|
|
11387
|
+
}
|
|
11388
|
+
},
|
|
11389
|
+
createImagePositionField({
|
|
11390
|
+
id: "imagePosition",
|
|
11391
|
+
label: "Image position",
|
|
11392
|
+
defaultValue: "left",
|
|
11393
|
+
uiIntent: "display",
|
|
11394
|
+
visibleWhen: { field: "variant", equals: "media-copy" }
|
|
11395
|
+
}),
|
|
11396
|
+
{
|
|
11397
|
+
id: "gap",
|
|
11398
|
+
type: "select",
|
|
11399
|
+
label: "Gap between media and text",
|
|
11400
|
+
required: false,
|
|
11401
|
+
defaultValue: "comfortable",
|
|
11402
|
+
multiple: false,
|
|
11403
|
+
options: [
|
|
11404
|
+
{ value: "none", label: "None" },
|
|
11405
|
+
{ value: "compact", label: "Compact" },
|
|
11406
|
+
{ value: "cozy", label: "Cozy" },
|
|
11407
|
+
{ value: "medium", label: "Medium" },
|
|
11408
|
+
{ value: "comfortable", label: "Comfortable" },
|
|
11409
|
+
{ value: "spacious", label: "Spacious" }
|
|
11410
|
+
],
|
|
11411
|
+
ui: {
|
|
11412
|
+
intent: "display",
|
|
11413
|
+
visibleWhen: { field: "variant", equals: "media-copy" }
|
|
11414
|
+
}
|
|
11415
|
+
},
|
|
11416
|
+
createImageColSizeField({
|
|
11417
|
+
id: "ratio",
|
|
11418
|
+
label: "Media column size",
|
|
11419
|
+
defaultValue: "1/2",
|
|
11420
|
+
uiIntent: "display",
|
|
11421
|
+
visibleWhen: { field: "variant", equals: "media-copy" }
|
|
11422
|
+
}),
|
|
11423
|
+
createAspectRatioField({
|
|
11424
|
+
id: "aspectRatio",
|
|
11425
|
+
label: "Media aspect ratio",
|
|
11426
|
+
description: "Crop media to a consistent aspect ratio.",
|
|
11427
|
+
defaultValue: "auto",
|
|
11428
|
+
visibleWhen: { field: "media", notEquals: null }
|
|
11429
|
+
}),
|
|
11430
|
+
createCtasRepeater({
|
|
11431
|
+
label: "Calls to action",
|
|
11432
|
+
itemLabel: "CTA",
|
|
11433
|
+
maxItems: 2
|
|
9863
11434
|
})
|
|
9864
11435
|
],
|
|
9865
|
-
layout:
|
|
11436
|
+
layout: centeredCopyLayout,
|
|
9866
11437
|
variants: {
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
11438
|
+
"centered-copy": centeredCopyLayout,
|
|
11439
|
+
"statement-copy": statementCopyLayout,
|
|
11440
|
+
"statement-media": statementMediaLayout,
|
|
11441
|
+
"media-copy": mediaCopyLayout
|
|
9871
11442
|
},
|
|
9872
|
-
defaultVariant: "
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
9879
|
-
|
|
11443
|
+
defaultVariant: "statement-copy",
|
|
11444
|
+
variantOptions: {
|
|
11445
|
+
"centered-copy": {
|
|
11446
|
+
label: "Centered copy",
|
|
11447
|
+
description: "A focused intro with centered text and optional calls to action."
|
|
11448
|
+
},
|
|
11449
|
+
"statement-copy": {
|
|
11450
|
+
label: "Statement and copy",
|
|
11451
|
+
description: "A large statement on the left with supporting copy on the right."
|
|
11452
|
+
},
|
|
11453
|
+
"statement-media": {
|
|
11454
|
+
label: "Statement, copy and media",
|
|
11455
|
+
description: "A three-part intro with statement, copy and a small image."
|
|
11456
|
+
},
|
|
11457
|
+
"media-copy": {
|
|
11458
|
+
label: "Media and copy",
|
|
11459
|
+
description: "A compact media/text intro for softer transitions after a hero."
|
|
11460
|
+
}
|
|
11461
|
+
},
|
|
11462
|
+
description: "A flexible introductory section for statement copy, supporting text, media, and CTAs.",
|
|
11463
|
+
tags: ["intro", "introduction", "about", "welcome", "statement", "media", "text"],
|
|
11464
|
+
icon: "PanelTopOpen"
|
|
9880
11465
|
};
|
|
9881
|
-
var
|
|
9882
|
-
var
|
|
9883
|
-
manifest:
|
|
11466
|
+
var introManifest = createBlockManifest(introConfig);
|
|
11467
|
+
var introBlockDefinition = {
|
|
11468
|
+
manifest: introManifest
|
|
9884
11469
|
};
|
|
9885
11470
|
|
|
9886
11471
|
// ../blocks/src/system/blocks/body-text.ts
|
|
@@ -10726,6 +12311,37 @@ var faqComposition = composeFragments([
|
|
|
10726
12311
|
{ fragment: faqHeadingFragment, fieldPriority: 0 },
|
|
10727
12312
|
{ fragment: faqAccordionFragment, fieldPriority: 1 }
|
|
10728
12313
|
]);
|
|
12314
|
+
function fragmentLayoutNode(layout) {
|
|
12315
|
+
return isNodeDefinitionArray(layout) ? el("div", {}, [...layout]) : layout;
|
|
12316
|
+
}
|
|
12317
|
+
function isNodeDefinitionArray(layout) {
|
|
12318
|
+
return Array.isArray(layout);
|
|
12319
|
+
}
|
|
12320
|
+
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
12321
|
+
var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
|
|
12322
|
+
var defaultLayout = styledSection({
|
|
12323
|
+
children: styledContainer({
|
|
12324
|
+
baseClassName: "rb-relative rb-isolate",
|
|
12325
|
+
children: stack({ gap: "xl", className: "rb-w-full rb-max-w-4xl rb-mx-auto" }, faqComposition.layout)
|
|
12326
|
+
}),
|
|
12327
|
+
baseClass: ""
|
|
12328
|
+
});
|
|
12329
|
+
var twoColumnLayout = styledSection({
|
|
12330
|
+
children: styledContainer({
|
|
12331
|
+
baseClassName: "rb-relative rb-isolate",
|
|
12332
|
+
children: el(
|
|
12333
|
+
"div",
|
|
12334
|
+
{
|
|
12335
|
+
className: "rb-faq-two-column rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
|
|
12336
|
+
},
|
|
12337
|
+
[
|
|
12338
|
+
el("div", { className: "rb-faq-two-column-heading" }, [headingLayout]),
|
|
12339
|
+
el("div", { className: "rb-faq-two-column-accordion" }, [accordionLayout])
|
|
12340
|
+
]
|
|
12341
|
+
)
|
|
12342
|
+
}),
|
|
12343
|
+
baseClass: ""
|
|
12344
|
+
});
|
|
10729
12345
|
var faqManifest = createBlockManifest({
|
|
10730
12346
|
id: "block.faq",
|
|
10731
12347
|
title: "FAQ",
|
|
@@ -10742,13 +12358,22 @@ var faqManifest = createBlockManifest({
|
|
|
10742
12358
|
label: "FAQ item styles"
|
|
10743
12359
|
})
|
|
10744
12360
|
],
|
|
10745
|
-
layout:
|
|
10746
|
-
|
|
10747
|
-
|
|
10748
|
-
|
|
10749
|
-
|
|
10750
|
-
|
|
10751
|
-
|
|
12361
|
+
layout: defaultLayout,
|
|
12362
|
+
variants: {
|
|
12363
|
+
default: defaultLayout,
|
|
12364
|
+
"two-column": twoColumnLayout
|
|
12365
|
+
},
|
|
12366
|
+
defaultVariant: "default",
|
|
12367
|
+
variantOptions: {
|
|
12368
|
+
default: {
|
|
12369
|
+
label: "Default",
|
|
12370
|
+
description: "A centered heading above one FAQ accordion."
|
|
12371
|
+
},
|
|
12372
|
+
"two-column": {
|
|
12373
|
+
label: "Two column",
|
|
12374
|
+
description: "A left heading column with FAQ items on the right."
|
|
12375
|
+
}
|
|
12376
|
+
},
|
|
10752
12377
|
description: "Accordion of frequently asked questions and answers.",
|
|
10753
12378
|
tags: ["faq", "questions", "answers", "help", "support", "accordion", "q&a"],
|
|
10754
12379
|
icon: "HelpCircle"
|
|
@@ -10891,15 +12516,21 @@ var mobileCta = ctaButton({
|
|
|
10891
12516
|
var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
|
|
10892
12517
|
{
|
|
10893
12518
|
type: "div",
|
|
10894
|
-
props: {
|
|
12519
|
+
props: {
|
|
12520
|
+
className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
12521
|
+
}
|
|
10895
12522
|
},
|
|
10896
12523
|
{
|
|
10897
12524
|
type: "div",
|
|
10898
|
-
props: {
|
|
12525
|
+
props: {
|
|
12526
|
+
className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
12527
|
+
}
|
|
10899
12528
|
},
|
|
10900
12529
|
{
|
|
10901
12530
|
type: "div",
|
|
10902
|
-
props: {
|
|
12531
|
+
props: {
|
|
12532
|
+
className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
12533
|
+
}
|
|
10903
12534
|
}
|
|
10904
12535
|
]);
|
|
10905
12536
|
var mobileToggleButton = {
|
|
@@ -11082,31 +12713,12 @@ var floatingLayout = inline(
|
|
|
11082
12713
|
],
|
|
11083
12714
|
when("$root.theme.header.variant", { equals: "floating" })
|
|
11084
12715
|
);
|
|
11085
|
-
var editorialLayout = stack(
|
|
11086
|
-
{
|
|
11087
|
-
gap: "md",
|
|
11088
|
-
align: "center",
|
|
11089
|
-
className: bindProp("$root.theme.header.maxWidth", {
|
|
11090
|
-
transforms: pipe(
|
|
11091
|
-
tx("layout.maxWidthClass", {
|
|
11092
|
-
base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
|
|
11093
|
-
})
|
|
11094
|
-
),
|
|
11095
|
-
fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
|
|
11096
|
-
})
|
|
11097
|
-
},
|
|
11098
|
-
[
|
|
11099
|
-
centeredLogoRow,
|
|
11100
|
-
createNavRow(
|
|
11101
|
-
`${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
|
|
11102
|
-
"center"
|
|
11103
|
-
)
|
|
11104
|
-
],
|
|
11105
|
-
when("$root.theme.header.variant", { equals: "editorial" })
|
|
11106
|
-
);
|
|
11107
12716
|
var headerLayout = headerSection(
|
|
11108
12717
|
{
|
|
11109
|
-
background: "
|
|
12718
|
+
background: bindProp("$root.theme.header", {
|
|
12719
|
+
transforms: pipe(tx("layout.headerSectionBackground")),
|
|
12720
|
+
fallback: "background"
|
|
12721
|
+
}),
|
|
11110
12722
|
allowOverflow: true,
|
|
11111
12723
|
className: bindProp("$root.theme.header", {
|
|
11112
12724
|
transforms: pipe(tx("layout.headerRootClass")),
|
|
@@ -11114,10 +12726,7 @@ var headerLayout = headerSection(
|
|
|
11114
12726
|
}),
|
|
11115
12727
|
style: bindProp("$root.theme.header", {
|
|
11116
12728
|
transforms: pipe(tx("layout.headerRootStyle")),
|
|
11117
|
-
fallback: mergeStyles(
|
|
11118
|
-
textColorStyle("text"),
|
|
11119
|
-
borderColorStyle("border")
|
|
11120
|
-
)
|
|
12729
|
+
fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
|
|
11121
12730
|
})
|
|
11122
12731
|
},
|
|
11123
12732
|
[
|
|
@@ -11126,7 +12735,6 @@ var headerLayout = headerSection(
|
|
|
11126
12735
|
centeredLayout,
|
|
11127
12736
|
transparentLayout,
|
|
11128
12737
|
floatingLayout,
|
|
11129
|
-
editorialLayout,
|
|
11130
12738
|
mobileOverlay
|
|
11131
12739
|
],
|
|
11132
12740
|
props({
|
|
@@ -11941,79 +13549,298 @@ var collectionLayout = styledSection({
|
|
|
11941
13549
|
{ gap: "md" }
|
|
11942
13550
|
),
|
|
11943
13551
|
baseClass: "",
|
|
11944
|
-
spacing: "comfortable"
|
|
13552
|
+
spacing: "comfortable"
|
|
13553
|
+
});
|
|
13554
|
+
var collectionManifest = createBlockManifest({
|
|
13555
|
+
id: "block.collection",
|
|
13556
|
+
title: "Collection",
|
|
13557
|
+
category: "layout",
|
|
13558
|
+
additionalFields: [
|
|
13559
|
+
parseFieldDefinition({
|
|
13560
|
+
id: "layout",
|
|
13561
|
+
type: "select",
|
|
13562
|
+
label: "Layout",
|
|
13563
|
+
defaultValue: "grid",
|
|
13564
|
+
options: [
|
|
13565
|
+
{ value: "grid", label: "Grid" },
|
|
13566
|
+
{ value: "stack", label: "Stack" }
|
|
13567
|
+
],
|
|
13568
|
+
ui: { intent: "display" }
|
|
13569
|
+
}),
|
|
13570
|
+
parseFieldDefinition({
|
|
13571
|
+
id: "columns",
|
|
13572
|
+
type: "select",
|
|
13573
|
+
label: "Columns",
|
|
13574
|
+
description: "Number of columns in the grid layout.",
|
|
13575
|
+
defaultValue: "3",
|
|
13576
|
+
options: [
|
|
13577
|
+
{ value: "2", label: "2 columns" },
|
|
13578
|
+
{ value: "3", label: "3 columns" },
|
|
13579
|
+
{ value: "4", label: "4 columns" }
|
|
13580
|
+
],
|
|
13581
|
+
ui: {
|
|
13582
|
+
intent: "display",
|
|
13583
|
+
visibleWhen: { field: "layout", equals: "grid" }
|
|
13584
|
+
}
|
|
13585
|
+
}),
|
|
13586
|
+
parseFieldDefinition({
|
|
13587
|
+
id: "gap",
|
|
13588
|
+
type: "select",
|
|
13589
|
+
label: "Gap",
|
|
13590
|
+
defaultValue: "medium",
|
|
13591
|
+
options: [
|
|
13592
|
+
{ value: "none", label: "None" },
|
|
13593
|
+
{ value: "compact", label: "Compact" },
|
|
13594
|
+
{ value: "cozy", label: "Cozy" },
|
|
13595
|
+
{ value: "medium", label: "Medium" },
|
|
13596
|
+
{ value: "comfortable", label: "Comfortable" },
|
|
13597
|
+
{ value: "spacious", label: "Spacious" }
|
|
13598
|
+
],
|
|
13599
|
+
ui: { intent: "display" }
|
|
13600
|
+
}),
|
|
13601
|
+
fragmentsToRepeaterField(
|
|
13602
|
+
"items",
|
|
13603
|
+
"Items",
|
|
13604
|
+
collectionFragments,
|
|
13605
|
+
{
|
|
13606
|
+
minItems: 0,
|
|
13607
|
+
maxItems: 50,
|
|
13608
|
+
itemLabel: "Item",
|
|
13609
|
+
description: "Add items to this collection."
|
|
13610
|
+
}
|
|
13611
|
+
),
|
|
13612
|
+
cardStylesField({
|
|
13613
|
+
id: "_cardStyles",
|
|
13614
|
+
label: "Item styles"
|
|
13615
|
+
})
|
|
13616
|
+
],
|
|
13617
|
+
layout: collectionLayout,
|
|
13618
|
+
description: "Repeat items in a grid or stack layout.",
|
|
13619
|
+
tags: ["collection", "grid", "stack", "repeater"],
|
|
13620
|
+
icon: "LayoutList",
|
|
13621
|
+
styleTokens: { spacing: "lg" }
|
|
13622
|
+
});
|
|
13623
|
+
var collectionBlockDefinition = {
|
|
13624
|
+
manifest: collectionManifest
|
|
13625
|
+
};
|
|
13626
|
+
|
|
13627
|
+
// ../blocks/src/system/blocks/feature-cards.ts
|
|
13628
|
+
function grid3(props2, children) {
|
|
13629
|
+
return el("grid", props2 ?? void 0, children ?? void 0);
|
|
13630
|
+
}
|
|
13631
|
+
var sectionHeading = stack(
|
|
13632
|
+
{ gap: "sm", className: "rb-feature-cards-heading rb-mx-auto rb-max-w-3xl rb-text-center" },
|
|
13633
|
+
[
|
|
13634
|
+
text(
|
|
13635
|
+
{
|
|
13636
|
+
as: "h2",
|
|
13637
|
+
className: "rb-feature-cards-title rb-text-center"
|
|
13638
|
+
},
|
|
13639
|
+
when("content.title"),
|
|
13640
|
+
bind("content.title")
|
|
13641
|
+
),
|
|
13642
|
+
richText(
|
|
13643
|
+
{
|
|
13644
|
+
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
13645
|
+
style: textColorStyle("mutedText")
|
|
13646
|
+
},
|
|
13647
|
+
when("content.description"),
|
|
13648
|
+
bind("content.description")
|
|
13649
|
+
)
|
|
13650
|
+
]
|
|
13651
|
+
);
|
|
13652
|
+
var featureCard = styledCard(
|
|
13653
|
+
[
|
|
13654
|
+
media(
|
|
13655
|
+
{
|
|
13656
|
+
className: "rb-feature-card-media rb-w-full rb-h-auto rb-object-cover",
|
|
13657
|
+
style: {
|
|
13658
|
+
aspectRatio: { $bind: { from: "card.aspectRatio" } }
|
|
13659
|
+
}
|
|
13660
|
+
},
|
|
13661
|
+
when("card.media"),
|
|
13662
|
+
bind("card.media")
|
|
13663
|
+
),
|
|
13664
|
+
stack({ gap: "sm", className: "rb-feature-card-content rb-flex-1 rb-p-6" }, [
|
|
13665
|
+
text(
|
|
13666
|
+
{
|
|
13667
|
+
as: "h3",
|
|
13668
|
+
className: "rb-feature-card-title"
|
|
13669
|
+
},
|
|
13670
|
+
bind("card.title")
|
|
13671
|
+
),
|
|
13672
|
+
richText(
|
|
13673
|
+
{
|
|
13674
|
+
className: "rb-feature-card-body rb-prose rb-max-w-none",
|
|
13675
|
+
style: textColorStyle("mutedText")
|
|
13676
|
+
},
|
|
13677
|
+
when("card.body"),
|
|
13678
|
+
bind("card.body")
|
|
13679
|
+
),
|
|
13680
|
+
ctaRow({
|
|
13681
|
+
collectionPath: "ctas",
|
|
13682
|
+
itemName: "cta",
|
|
13683
|
+
gap: "sm",
|
|
13684
|
+
justify: "start",
|
|
13685
|
+
containerClassName: "rb-mt-auto"
|
|
13686
|
+
})
|
|
13687
|
+
])
|
|
13688
|
+
],
|
|
13689
|
+
{
|
|
13690
|
+
stylesFrom: "content._cardStyles",
|
|
13691
|
+
backgroundFrom: "content._cardStyles.background",
|
|
13692
|
+
baseClassName: "rb-feature-card rb-relative rb-isolate rb-overflow-hidden rb-border rb-flex rb-h-full rb-flex-col"
|
|
13693
|
+
},
|
|
13694
|
+
repeat("content.cards", "card")
|
|
13695
|
+
);
|
|
13696
|
+
var cardsLayout = styledSection({
|
|
13697
|
+
children: styledContainer({
|
|
13698
|
+
rootType: "stack",
|
|
13699
|
+
rootProps: { gap: "xl" },
|
|
13700
|
+
children: [
|
|
13701
|
+
sectionHeading,
|
|
13702
|
+
grid3(
|
|
13703
|
+
{
|
|
13704
|
+
cols: {
|
|
13705
|
+
$bind: {
|
|
13706
|
+
from: "content.columns",
|
|
13707
|
+
fallback: 3,
|
|
13708
|
+
coerce: "number"
|
|
13709
|
+
}
|
|
13710
|
+
},
|
|
13711
|
+
gap: "lg"
|
|
13712
|
+
},
|
|
13713
|
+
[featureCard]
|
|
13714
|
+
)
|
|
13715
|
+
]
|
|
13716
|
+
}),
|
|
13717
|
+
baseClass: "",
|
|
13718
|
+
spacing: "medium"
|
|
11945
13719
|
});
|
|
11946
|
-
var
|
|
11947
|
-
id: "block.
|
|
11948
|
-
title: "
|
|
13720
|
+
var featureCardsConfig = {
|
|
13721
|
+
id: "block.feature-cards",
|
|
13722
|
+
title: "Feature Cards",
|
|
11949
13723
|
category: "layout",
|
|
13724
|
+
includeContainerStyles: true,
|
|
13725
|
+
titleSource: "title",
|
|
11950
13726
|
additionalFields: [
|
|
11951
|
-
|
|
11952
|
-
id: "
|
|
11953
|
-
type: "
|
|
11954
|
-
label: "
|
|
11955
|
-
|
|
11956
|
-
|
|
11957
|
-
|
|
11958
|
-
|
|
11959
|
-
|
|
11960
|
-
|
|
11961
|
-
|
|
11962
|
-
|
|
13727
|
+
{
|
|
13728
|
+
id: "title",
|
|
13729
|
+
type: "text",
|
|
13730
|
+
label: "Title",
|
|
13731
|
+
required: false,
|
|
13732
|
+
multiline: false,
|
|
13733
|
+
maxLength: 120
|
|
13734
|
+
},
|
|
13735
|
+
{
|
|
13736
|
+
id: "description",
|
|
13737
|
+
type: "richText",
|
|
13738
|
+
label: "Description",
|
|
13739
|
+
required: false,
|
|
13740
|
+
ui: {
|
|
13741
|
+
richTextVariant: "limited"
|
|
13742
|
+
}
|
|
13743
|
+
},
|
|
13744
|
+
{
|
|
11963
13745
|
id: "columns",
|
|
11964
13746
|
type: "select",
|
|
11965
13747
|
label: "Columns",
|
|
11966
|
-
|
|
13748
|
+
required: false,
|
|
11967
13749
|
defaultValue: "3",
|
|
13750
|
+
multiple: false,
|
|
11968
13751
|
options: [
|
|
11969
13752
|
{ value: "2", label: "2 columns" },
|
|
11970
13753
|
{ value: "3", label: "3 columns" },
|
|
11971
13754
|
{ value: "4", label: "4 columns" }
|
|
11972
13755
|
],
|
|
11973
|
-
ui: {
|
|
11974
|
-
intent: "display",
|
|
11975
|
-
visibleWhen: { field: "layout", equals: "grid" }
|
|
11976
|
-
}
|
|
11977
|
-
}),
|
|
11978
|
-
parseFieldDefinition({
|
|
11979
|
-
id: "gap",
|
|
11980
|
-
type: "select",
|
|
11981
|
-
label: "Gap",
|
|
11982
|
-
defaultValue: "medium",
|
|
11983
|
-
options: [
|
|
11984
|
-
{ value: "none", label: "None" },
|
|
11985
|
-
{ value: "compact", label: "Compact" },
|
|
11986
|
-
{ value: "cozy", label: "Cozy" },
|
|
11987
|
-
{ value: "medium", label: "Medium" },
|
|
11988
|
-
{ value: "comfortable", label: "Comfortable" },
|
|
11989
|
-
{ value: "spacious", label: "Spacious" }
|
|
11990
|
-
],
|
|
11991
13756
|
ui: { intent: "display" }
|
|
11992
|
-
}
|
|
11993
|
-
|
|
11994
|
-
"
|
|
11995
|
-
"
|
|
11996
|
-
|
|
11997
|
-
|
|
11998
|
-
|
|
11999
|
-
|
|
12000
|
-
|
|
12001
|
-
|
|
13757
|
+
},
|
|
13758
|
+
{
|
|
13759
|
+
id: "cards",
|
|
13760
|
+
type: "repeater",
|
|
13761
|
+
label: "Cards",
|
|
13762
|
+
required: false,
|
|
13763
|
+
minItems: 1,
|
|
13764
|
+
maxItems: 8,
|
|
13765
|
+
itemLabel: "Card",
|
|
13766
|
+
itemLabelSource: "title",
|
|
13767
|
+
allowConversion: true,
|
|
13768
|
+
ui: {
|
|
13769
|
+
intent: "content"
|
|
13770
|
+
},
|
|
13771
|
+
schema: {
|
|
13772
|
+
fields: [
|
|
13773
|
+
{
|
|
13774
|
+
id: "media",
|
|
13775
|
+
type: "media",
|
|
13776
|
+
label: "Image",
|
|
13777
|
+
required: false,
|
|
13778
|
+
mediaKinds: ["image"]
|
|
13779
|
+
},
|
|
13780
|
+
createAspectRatioField({
|
|
13781
|
+
id: "aspectRatio",
|
|
13782
|
+
label: "Image aspect ratio",
|
|
13783
|
+
defaultValue: "4/3",
|
|
13784
|
+
visibleWhen: { field: "media", notEquals: null }
|
|
13785
|
+
}),
|
|
13786
|
+
{
|
|
13787
|
+
id: "title",
|
|
13788
|
+
type: "text",
|
|
13789
|
+
label: "Title",
|
|
13790
|
+
required: true,
|
|
13791
|
+
multiline: false,
|
|
13792
|
+
maxLength: 120
|
|
13793
|
+
},
|
|
13794
|
+
{
|
|
13795
|
+
id: "body",
|
|
13796
|
+
type: "richText",
|
|
13797
|
+
label: "Text",
|
|
13798
|
+
required: false,
|
|
13799
|
+
ui: {
|
|
13800
|
+
richTextVariant: "limited"
|
|
13801
|
+
}
|
|
13802
|
+
},
|
|
13803
|
+
createCtasRepeater({
|
|
13804
|
+
label: "Calls to action",
|
|
13805
|
+
itemLabel: "CTA",
|
|
13806
|
+
maxItems: 1,
|
|
13807
|
+
button: {
|
|
13808
|
+
variants: [
|
|
13809
|
+
{ value: "primary", label: "Primary" },
|
|
13810
|
+
{ value: "secondary", label: "Secondary" },
|
|
13811
|
+
{ value: "outline", label: "Outline" },
|
|
13812
|
+
{ value: "ghost", label: "Ghost" },
|
|
13813
|
+
{ value: "link", label: "Link" }
|
|
13814
|
+
],
|
|
13815
|
+
defaultVariant: "ghost"
|
|
13816
|
+
}
|
|
13817
|
+
})
|
|
13818
|
+
]
|
|
12002
13819
|
}
|
|
12003
|
-
|
|
13820
|
+
},
|
|
12004
13821
|
cardStylesField({
|
|
12005
13822
|
id: "_cardStyles",
|
|
12006
|
-
label: "
|
|
13823
|
+
label: "Card styles"
|
|
12007
13824
|
})
|
|
12008
13825
|
],
|
|
12009
|
-
layout:
|
|
12010
|
-
|
|
12011
|
-
|
|
12012
|
-
|
|
12013
|
-
|
|
12014
|
-
|
|
12015
|
-
|
|
12016
|
-
|
|
13826
|
+
layout: cardsLayout,
|
|
13827
|
+
variants: {
|
|
13828
|
+
cards: cardsLayout
|
|
13829
|
+
},
|
|
13830
|
+
defaultVariant: "cards",
|
|
13831
|
+
variantOptions: {
|
|
13832
|
+
cards: {
|
|
13833
|
+
label: "Cards",
|
|
13834
|
+
description: "A responsive grid of image cards with optional calls to action."
|
|
13835
|
+
}
|
|
13836
|
+
},
|
|
13837
|
+
description: "A card grid for offerings, services, classes, benefits, or featured links.",
|
|
13838
|
+
tags: ["cards", "features", "offerings", "services", "classes", "grid", "links"],
|
|
13839
|
+
icon: "PanelsTopLeft"
|
|
13840
|
+
};
|
|
13841
|
+
var featureCardsManifest = createBlockManifest(featureCardsConfig);
|
|
13842
|
+
var featureCardsBlockDefinition = {
|
|
13843
|
+
manifest: featureCardsManifest
|
|
12017
13844
|
};
|
|
12018
13845
|
|
|
12019
13846
|
// ../blocks/src/system/fields/carousel.ts
|
|
@@ -12101,69 +13928,6 @@ function createCarouselBehaviorFields(options = {}) {
|
|
|
12101
13928
|
return fields3;
|
|
12102
13929
|
}
|
|
12103
13930
|
|
|
12104
|
-
// ../blocks/src/system/fields/imageLayout.ts
|
|
12105
|
-
function createImageColSizeField(options = {}) {
|
|
12106
|
-
const {
|
|
12107
|
-
id = "imageColSize",
|
|
12108
|
-
label = "Image column size",
|
|
12109
|
-
description = "Controls how large the image/thumbnail column is at desktop breakpoints.",
|
|
12110
|
-
defaultValue = "1/3",
|
|
12111
|
-
uiIntent = "display",
|
|
12112
|
-
visibleWhen
|
|
12113
|
-
} = options;
|
|
12114
|
-
return {
|
|
12115
|
-
id,
|
|
12116
|
-
type: "select",
|
|
12117
|
-
label,
|
|
12118
|
-
description,
|
|
12119
|
-
required: false,
|
|
12120
|
-
defaultValue,
|
|
12121
|
-
multiple: false,
|
|
12122
|
-
options: [
|
|
12123
|
-
{ value: "1/4", label: "Small (1/4)" },
|
|
12124
|
-
{ value: "1/3", label: "Medium (1/3)" },
|
|
12125
|
-
{ value: "2/5", label: "Large (2/5)" },
|
|
12126
|
-
{ value: "1/2", label: "Extra large (1/2)" },
|
|
12127
|
-
{ value: "2/3", label: "Huge (2/3)" }
|
|
12128
|
-
],
|
|
12129
|
-
ui: {
|
|
12130
|
-
intent: uiIntent,
|
|
12131
|
-
...visibleWhen ? { visibleWhen } : {}
|
|
12132
|
-
}
|
|
12133
|
-
};
|
|
12134
|
-
}
|
|
12135
|
-
function createImagePositionField(options = {}) {
|
|
12136
|
-
const {
|
|
12137
|
-
id = "imagePosition",
|
|
12138
|
-
label = "Image position",
|
|
12139
|
-
description = "Choose which side the image appears on.",
|
|
12140
|
-
defaultValue = "left",
|
|
12141
|
-
includeAlternate = false,
|
|
12142
|
-
uiIntent = "display",
|
|
12143
|
-
visibleWhen
|
|
12144
|
-
} = options;
|
|
12145
|
-
const positionOptions = [
|
|
12146
|
-
{ value: "left", label: "Left" },
|
|
12147
|
-
{ value: "right", label: "Right" },
|
|
12148
|
-
...includeAlternate ? [{ value: "alternate", label: "Alternate" }] : []
|
|
12149
|
-
];
|
|
12150
|
-
return {
|
|
12151
|
-
id,
|
|
12152
|
-
type: "select",
|
|
12153
|
-
label,
|
|
12154
|
-
description,
|
|
12155
|
-
required: false,
|
|
12156
|
-
defaultValue,
|
|
12157
|
-
multiple: false,
|
|
12158
|
-
// Spread to get a mutable array type without unsafe casts.
|
|
12159
|
-
options: [...positionOptions],
|
|
12160
|
-
ui: {
|
|
12161
|
-
intent: uiIntent,
|
|
12162
|
-
...visibleWhen ? { visibleWhen } : {}
|
|
12163
|
-
}
|
|
12164
|
-
};
|
|
12165
|
-
}
|
|
12166
|
-
|
|
12167
13931
|
// ../blocks/src/system/blocks/media-text.ts
|
|
12168
13932
|
var mediaTextFrameCapability = defineFrameCapability([
|
|
12169
13933
|
"plain",
|
|
@@ -12287,26 +14051,13 @@ var mediaTextManifest = createBlockManifest({
|
|
|
12287
14051
|
},
|
|
12288
14052
|
ui: { intent: "behavior" }
|
|
12289
14053
|
}),
|
|
12290
|
-
{
|
|
14054
|
+
createAspectRatioField({
|
|
12291
14055
|
id: "aspectRatio",
|
|
12292
|
-
type: "select",
|
|
12293
14056
|
label: "Media aspect ratio",
|
|
12294
14057
|
description: "Crop media to a consistent aspect ratio.",
|
|
12295
|
-
required: false,
|
|
12296
14058
|
defaultValue: "auto",
|
|
12297
|
-
|
|
12298
|
-
|
|
12299
|
-
{ value: "auto", label: "Auto (original)" },
|
|
12300
|
-
{ value: "16/9", label: "16:9 (Landscape)" },
|
|
12301
|
-
{ value: "4/3", label: "4:3 (Standard)" },
|
|
12302
|
-
{ value: "1/1", label: "1:1 (Square)" },
|
|
12303
|
-
{ value: "3/4", label: "3:4 (Portrait)" }
|
|
12304
|
-
],
|
|
12305
|
-
ui: {
|
|
12306
|
-
intent: "display",
|
|
12307
|
-
visibleWhen: { field: "images", notEquals: null }
|
|
12308
|
-
}
|
|
12309
|
-
},
|
|
14059
|
+
visibleWhen: { field: "images", notEquals: null }
|
|
14060
|
+
}),
|
|
12310
14061
|
{
|
|
12311
14062
|
id: "text",
|
|
12312
14063
|
type: "richText",
|
|
@@ -12436,7 +14187,7 @@ var mediaTextManifest = createBlockManifest({
|
|
|
12436
14187
|
whenImagesLength(0)
|
|
12437
14188
|
);
|
|
12438
14189
|
const defaultInner = el("div", {}, [defaultImagesLayout, defaultTextOnlyLayout]);
|
|
12439
|
-
const
|
|
14190
|
+
const defaultLayout2 = styledSection({
|
|
12440
14191
|
children: styledContainer({
|
|
12441
14192
|
rootType: "stack",
|
|
12442
14193
|
rootProps: { gap: "lg" },
|
|
@@ -12468,9 +14219,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
12468
14219
|
spacing: "medium"
|
|
12469
14220
|
});
|
|
12470
14221
|
return {
|
|
12471
|
-
layout:
|
|
14222
|
+
layout: defaultLayout2,
|
|
12472
14223
|
variants: {
|
|
12473
|
-
default:
|
|
14224
|
+
default: defaultLayout2
|
|
12474
14225
|
},
|
|
12475
14226
|
defaultVariant: "default",
|
|
12476
14227
|
variantOptions: {
|
|
@@ -15794,7 +17545,7 @@ var embedBlockDefinition = {
|
|
|
15794
17545
|
};
|
|
15795
17546
|
|
|
15796
17547
|
// ../blocks/src/system/blocks/image-gallery.ts
|
|
15797
|
-
var
|
|
17548
|
+
var grid4 = (props2, children, ...mods) => el("grid", props2 ?? void 0, children ?? void 0, ...mods);
|
|
15798
17549
|
var galleryContainer = (children, opts) => {
|
|
15799
17550
|
const gap = opts?.gap ?? "md";
|
|
15800
17551
|
const withExtraClass = (baseClass) => opts?.className ? `${baseClass} ${opts.className}` : baseClass;
|
|
@@ -15874,7 +17625,7 @@ var galleryItem = (options) => stack(
|
|
|
15874
17625
|
],
|
|
15875
17626
|
repeat("content.images", "item")
|
|
15876
17627
|
);
|
|
15877
|
-
var gridLayout3 =
|
|
17628
|
+
var gridLayout3 = grid4(
|
|
15878
17629
|
{
|
|
15879
17630
|
className: "rb-grid rb-grid-cols-1 rb-gap-4 rb-sm-grid-cols-2 rb-md-grid-cols-3"
|
|
15880
17631
|
},
|
|
@@ -16477,7 +18228,7 @@ var imageGalleryBlockDefinition = {
|
|
|
16477
18228
|
};
|
|
16478
18229
|
|
|
16479
18230
|
// ../blocks/src/system/blocks/video-grid.ts
|
|
16480
|
-
var
|
|
18231
|
+
var grid5 = (props2, children, ...mods) => el("grid", props2 ?? void 0, children ?? void 0, ...mods);
|
|
16481
18232
|
var videoItem = (options) => stack(
|
|
16482
18233
|
{ gap: "xs", className: options.containerClassName },
|
|
16483
18234
|
[
|
|
@@ -16527,7 +18278,7 @@ var gridColumnsClass = (columns) => {
|
|
|
16527
18278
|
return "rb-grid rb-grid-cols-1 rb-gap-6 rb-sm-grid-cols-2 rb-md-grid-cols-3";
|
|
16528
18279
|
}
|
|
16529
18280
|
};
|
|
16530
|
-
var createGridLayout = (columns) =>
|
|
18281
|
+
var createGridLayout = (columns) => grid5(
|
|
16531
18282
|
{
|
|
16532
18283
|
className: gridColumnsClass(columns)
|
|
16533
18284
|
},
|
|
@@ -19691,6 +21442,40 @@ var systemBlockDefinitionsRaw = [
|
|
|
19691
21442
|
})
|
|
19692
21443
|
]
|
|
19693
21444
|
})),
|
|
21445
|
+
withDesignCapability("block.intro", introBlockDefinition, declareBlockDesignCapability({
|
|
21446
|
+
sectionSurfaces: "supported",
|
|
21447
|
+
contentFrames: ["plain", "panel"],
|
|
21448
|
+
itemSurfaces: "unsupported",
|
|
21449
|
+
headingDecorations: ["organic-squiggle"]
|
|
21450
|
+
}), defineBlockDesignMetadata({
|
|
21451
|
+
flow: bodyFlow,
|
|
21452
|
+
layoutProfiles: [
|
|
21453
|
+
layoutProfile({
|
|
21454
|
+
variantKey: "centered-copy",
|
|
21455
|
+
family: "centered",
|
|
21456
|
+
weight: "featured",
|
|
21457
|
+
bias: "soft"
|
|
21458
|
+
}),
|
|
21459
|
+
layoutProfile({
|
|
21460
|
+
variantKey: "statement-copy",
|
|
21461
|
+
family: "split",
|
|
21462
|
+
weight: "featured",
|
|
21463
|
+
bias: "merge"
|
|
21464
|
+
}),
|
|
21465
|
+
layoutProfile({
|
|
21466
|
+
variantKey: "statement-media",
|
|
21467
|
+
family: "media-text",
|
|
21468
|
+
weight: "featured",
|
|
21469
|
+
bias: "soft"
|
|
21470
|
+
}),
|
|
21471
|
+
layoutProfile({
|
|
21472
|
+
variantKey: "media-copy",
|
|
21473
|
+
family: "media-text",
|
|
21474
|
+
weight: "featured",
|
|
21475
|
+
bias: "soft"
|
|
21476
|
+
})
|
|
21477
|
+
]
|
|
21478
|
+
})),
|
|
19694
21479
|
withDesignCapability("block.body-text", bodyTextBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
19695
21480
|
flow: bodyFlow,
|
|
19696
21481
|
layoutProfiles: [
|
|
@@ -19751,9 +21536,17 @@ var systemBlockDefinitionsRaw = [
|
|
|
19751
21536
|
flow: conversionFlow,
|
|
19752
21537
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
19753
21538
|
})),
|
|
19754
|
-
withDesignCapability("block.faq", faqBlockDefinition, withEyebrowCapability(
|
|
21539
|
+
withDesignCapability("block.faq", faqBlockDefinition, withEyebrowCapability(declareBlockDesignCapability({
|
|
21540
|
+
sectionSurfaces: "supported",
|
|
21541
|
+
contentFrames: ["plain", "panel"],
|
|
21542
|
+
itemSurfaces: "supported",
|
|
21543
|
+
accordionIconSets: ["plus", "chevron", "caret", "minimal-cross"]
|
|
21544
|
+
}), standardEyebrowTreatments), defineBlockDesignMetadata({
|
|
19755
21545
|
flow: bodyFlow,
|
|
19756
|
-
layoutProfiles: [
|
|
21546
|
+
layoutProfiles: [
|
|
21547
|
+
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
21548
|
+
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
21549
|
+
]
|
|
19757
21550
|
})),
|
|
19758
21551
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
19759
21552
|
flow: siteChromeFlow,
|
|
@@ -19767,7 +21560,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
19767
21560
|
sectionSurfaces: "supported",
|
|
19768
21561
|
contentFrames: ["plain", "panel"],
|
|
19769
21562
|
itemSurfaces: "supported",
|
|
19770
|
-
testimonialCardTreatments: ["default", "accent-quote"]
|
|
21563
|
+
testimonialCardTreatments: ["default", "accent-quote"],
|
|
21564
|
+
headingDecorations: ["short-center-rule"]
|
|
19771
21565
|
}), defineBlockDesignMetadata({
|
|
19772
21566
|
flow: proofFlow,
|
|
19773
21567
|
layoutProfiles: [
|
|
@@ -19793,6 +21587,22 @@ var systemBlockDefinitionsRaw = [
|
|
|
19793
21587
|
flow: offeringsFlow,
|
|
19794
21588
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "grid", weight: "standard" })]
|
|
19795
21589
|
})),
|
|
21590
|
+
withDesignCapability("block.feature-cards", featureCardsBlockDefinition, declareBlockDesignCapability({
|
|
21591
|
+
sectionSurfaces: "supported",
|
|
21592
|
+
contentFrames: ["plain", "panel"],
|
|
21593
|
+
itemSurfaces: "supported",
|
|
21594
|
+
headingDecorations: ["short-center-rule"]
|
|
21595
|
+
}), defineBlockDesignMetadata({
|
|
21596
|
+
flow: offeringsFlow,
|
|
21597
|
+
layoutProfiles: [
|
|
21598
|
+
layoutProfile({
|
|
21599
|
+
variantKey: "cards",
|
|
21600
|
+
family: "grid",
|
|
21601
|
+
weight: "standard",
|
|
21602
|
+
bias: "soft"
|
|
21603
|
+
})
|
|
21604
|
+
]
|
|
21605
|
+
})),
|
|
19796
21606
|
withDesignCapability("block.media-text", mediaTextBlockDefinition, mediaPanelCapable(), defineBlockDesignMetadata({
|
|
19797
21607
|
flow: mediaFlow,
|
|
19798
21608
|
layoutProfiles: [
|