@riverbankcms/sdk 0.77.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.
Files changed (46) hide show
  1. package/dist/{PreviewEditorSidebar-XSX7QKHQ.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +2 -2
  2. package/dist/{PreviewEditorUI-YZNEZ3QD.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +40 -30
  5. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +20 -1
  6. package/dist/_dts/blocks/src/index.d.ts +2 -2
  7. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  8. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +5 -0
  9. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  10. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +4 -4
  11. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  12. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  13. package/dist/_dts/sdk/src/version.d.ts +1 -1
  14. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  15. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +27 -27
  16. package/dist/_dts/theme-core/src/schema.d.ts +26 -30
  17. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +1 -1
  18. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  19. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +63 -33
  20. package/dist/{chunk-EAWHBECW.mjs → chunk-2SPENC5M.mjs} +5 -5
  21. package/dist/{chunk-GSQX43EZ.mjs → chunk-IENWFSLO.mjs} +22 -41
  22. package/dist/{chunk-WLQBJN2Z.mjs → chunk-KWJPDZH2.mjs} +1815 -1338
  23. package/dist/{chunk-ANKDYZ2E.mjs → chunk-ZYEJLCTN.mjs} +1 -1
  24. package/dist/cli/index.mjs +381 -176
  25. package/dist/client/client.mjs +1574 -1252
  26. package/dist/client/hooks.mjs +369 -170
  27. package/dist/client/rendering.mjs +1588 -1257
  28. package/dist/preview-next/client/runtime.mjs +3 -3
  29. package/dist/{sdk-runtime-Q6MTR4KL.mjs → sdk-runtime-6UT2S7KZ.mjs} +4 -4
  30. package/dist/server/components.mjs +1561 -1239
  31. package/dist/server/config-validation.mjs +369 -170
  32. package/dist/server/config.mjs +369 -170
  33. package/dist/server/data.mjs +369 -170
  34. package/dist/server/index.mjs +1 -1
  35. package/dist/server/next.mjs +1547 -1234
  36. package/dist/server/page-converter.mjs +362 -165
  37. package/dist/server/prebuild.mjs +1 -1
  38. package/dist/server/rendering/server.mjs +1561 -1239
  39. package/dist/server/rendering.mjs +1561 -1239
  40. package/dist/server/routing.mjs +370 -171
  41. package/dist/server/server.mjs +370 -171
  42. package/dist/server/theme-bridge.mjs +1156 -1035
  43. package/dist/server/theme.mjs +79 -11
  44. package/dist/styles/index.css +1081 -1028
  45. package/package.json +1 -1
  46. package/dist/SdkPreviewModeRuntime-5FS5E6BI.mjs +0 -8
@@ -9974,8 +9974,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
9974
9974
  colorToken: themeColorTokenSchema.nullable().optional()
9975
9975
  });
9976
9976
  var proseLinkUnderlineStyleSchema = z21.enum(["solid", "dotted", "dashed"]);
9977
- var proseLinkUnderlineThicknessSchema = z21.enum(["auto", "fromFont", "thin", "medium", "thick"]);
9978
- var proseLinkUnderlineOffsetSchema = z21.enum(["auto", "tight", "normal", "loose"]);
9977
+ var proseLinkUnderlineThicknessSchema = z21.enum([
9978
+ "auto",
9979
+ "fromFont",
9980
+ "thin",
9981
+ "medium",
9982
+ "thick"
9983
+ ]);
9984
+ var proseLinkUnderlineOffsetSchema = z21.enum([
9985
+ "auto",
9986
+ "tight",
9987
+ "normal",
9988
+ "loose"
9989
+ ]);
9979
9990
  var proseLinkStyleSchema = z21.object({
9980
9991
  colorToken: themeColorTokenSchema.optional(),
9981
9992
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -9986,7 +9997,14 @@ var proseLinkStyleSchema = z21.object({
9986
9997
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
9987
9998
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
9988
9999
  });
9989
- var semanticSpacingSchema = z21.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
10000
+ var semanticSpacingSchema = z21.enum([
10001
+ "none",
10002
+ "compact",
10003
+ "cozy",
10004
+ "medium",
10005
+ "comfortable",
10006
+ "spacious"
10007
+ ]);
9990
10008
  var boxRoundedSchema = z21.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
9991
10009
  var boxBackgroundOverlaySchema = z21.object({
9992
10010
  type: z21.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -10130,9 +10148,17 @@ var inputStyle = z21.object({
10130
10148
  focus: z21.enum(["glow", "ring", "underline"]),
10131
10149
  label: z21.enum(["inside", "above"])
10132
10150
  });
10133
- var headerVariant = z21.enum(["classic", "centered", "transparent", "floating", "editorial"]);
10151
+ var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"]);
10134
10152
  var headerPositioning = z21.enum(["static", "sticky", "fixed"]);
10135
- var headerNavStyle = z21.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
10153
+ var headerNavStyle = z21.enum([
10154
+ "minimal",
10155
+ "underline",
10156
+ "underline-grow",
10157
+ "capsule",
10158
+ "scale",
10159
+ "frosted",
10160
+ "solid"
10161
+ ]);
10136
10162
  var navFontWeight = z21.enum(["regular", "medium", "semibold", "bold"]);
10137
10163
  var headerMaxWidth = z21.enum(["container", "full"]);
10138
10164
  var headerContainerSchema = z21.object({
@@ -10180,8 +10206,22 @@ var dropdownStyleSchema = z21.object({
10180
10206
  textSize: z21.enum(["xs", "sm", "base", "lg"]).optional()
10181
10207
  // optional = no override (browser default)
10182
10208
  }).optional();
10183
- var headerCtaGapSchema = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10184
- var headerCtaTreatmentSchema = z21.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
10209
+ var headerCtaGapSchema = z21.enum([
10210
+ "none",
10211
+ "tight",
10212
+ "compact",
10213
+ "default",
10214
+ "relaxed",
10215
+ "spacious"
10216
+ ]);
10217
+ var headerCtaTreatmentSchema = z21.enum([
10218
+ "default",
10219
+ "primary",
10220
+ "secondary",
10221
+ "inverted",
10222
+ "outline",
10223
+ "ghost"
10224
+ ]);
10185
10225
  var navContainerSchema = z21.object({
10186
10226
  type: z21.enum(["none", "pill", "glass"]).default("none"),
10187
10227
  tint: z21.string().nullable().optional(),
@@ -10236,7 +10276,14 @@ var footerMaxWidth = z21.enum(["container", "full"]);
10236
10276
  var footerMode = z21.enum(["default", "blocks", "default+blocks", "none"]);
10237
10277
  var footerNavLayoutMode = z21.enum(["stack", "inline", "inline-wrap"]);
10238
10278
  var footerNavLayoutAlign = z21.enum(["start", "center", "end", "space-between"]);
10239
- var footerSpacing = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10279
+ var footerSpacing = z21.enum([
10280
+ "none",
10281
+ "tight",
10282
+ "compact",
10283
+ "default",
10284
+ "relaxed",
10285
+ "spacious"
10286
+ ]);
10240
10287
  var footerLogoPlacement = z21.enum(["left", "right", "above", "below"]);
10241
10288
  var footerLogoSize = z21.enum(["sm", "md", "lg", "xl"]);
10242
10289
  var footerLogoMaxHeight = z21.enum(["sm", "md", "lg", "xl"]);
@@ -10301,7 +10348,12 @@ var footerSchema = z21.object({
10301
10348
  logo: footerLogoSchema.optional(),
10302
10349
  bottomBar: footerBottomBarSchema.optional()
10303
10350
  });
10304
- var containerPaddingPresetSchema = z21.enum(["tight", "compact", "default", "relaxed"]);
10351
+ var containerPaddingPresetSchema = z21.enum([
10352
+ "tight",
10353
+ "compact",
10354
+ "default",
10355
+ "relaxed"
10356
+ ]);
10305
10357
  var layoutSchema = z21.object({
10306
10358
  containerPadding: z21.object({
10307
10359
  mobile: containerPaddingPresetSchema.optional(),
@@ -10309,8 +10361,24 @@ var layoutSchema = z21.object({
10309
10361
  desktop: containerPaddingPresetSchema.optional()
10310
10362
  }).optional()
10311
10363
  }).optional();
10312
- var heroTypographySizeSchema = z21.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
10313
- var heroTypographyLineHeightSchema = z21.enum(["tight", "snug", "normal", "relaxed"]);
10364
+ var heroTypographySizeSchema = z21.enum([
10365
+ "sm",
10366
+ "base",
10367
+ "lg",
10368
+ "xl",
10369
+ "2xl",
10370
+ "3xl",
10371
+ "4xl",
10372
+ "5xl",
10373
+ "6xl",
10374
+ "editorial"
10375
+ ]);
10376
+ var heroTypographyLineHeightSchema = z21.enum([
10377
+ "tight",
10378
+ "snug",
10379
+ "normal",
10380
+ "relaxed"
10381
+ ]);
10314
10382
  var heroResponsiveTypographySchema = z21.object({
10315
10383
  headlineSize: heroTypographySizeSchema.optional(),
10316
10384
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -10864,16 +10932,6 @@ var headerLayoutCatalog = [
10864
10932
  maxRecommendedNavItems: 5,
10865
10933
  allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
10866
10934
  },
10867
- {
10868
- id: asHeaderLayoutId("editorial"),
10869
- label: "Editorial",
10870
- description: "A composed, magazine-like stacked header treatment.",
10871
- structure: "editorial-stack",
10872
- variant: "editorial",
10873
- defaultPositioning: "static",
10874
- shrinkOnScroll: false,
10875
- maxRecommendedNavItems: 6
10876
- },
10877
10935
  {
10878
10936
  id: asHeaderLayoutId("floating"),
10879
10937
  label: "Floating",
@@ -10894,17 +10952,19 @@ var headerStyleCatalog = [
10894
10952
  id: asHeaderStyleId("minimal"),
10895
10953
  label: "Minimal",
10896
10954
  description: "Quiet surface with simple color-change navigation.",
10897
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10955
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10898
10956
  navInteraction: "color-change",
10899
- surface: "neutral"
10957
+ surface: "neutral",
10958
+ navTypography: "plain"
10900
10959
  },
10901
10960
  {
10902
10961
  id: asHeaderStyleId("fine-line"),
10903
10962
  label: "Fine Line",
10904
10963
  description: "Light surface with a crisp lower rule and underline hover.",
10905
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10964
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10906
10965
  navInteraction: "underline-grow",
10907
- surface: "bordered"
10966
+ surface: "bordered",
10967
+ navTypography: "plain"
10908
10968
  },
10909
10969
  {
10910
10970
  id: asHeaderStyleId("soft-bar"),
@@ -10912,7 +10972,8 @@ var headerStyleCatalog = [
10912
10972
  description: "Soft tinted surface with gentle pill hover states.",
10913
10973
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10914
10974
  navInteraction: "pill-background",
10915
- surface: "soft"
10975
+ surface: "soft",
10976
+ navTypography: "plain"
10916
10977
  },
10917
10978
  {
10918
10979
  id: asHeaderStyleId("pill-nav"),
@@ -10920,23 +10981,26 @@ var headerStyleCatalog = [
10920
10981
  description: "A calm pill navigation rail over a neutral header.",
10921
10982
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10922
10983
  navInteraction: "pill-background",
10923
- surface: "soft"
10984
+ surface: "soft",
10985
+ navTypography: "plain"
10924
10986
  },
10925
10987
  {
10926
10988
  id: asHeaderStyleId("brand-bar"),
10927
10989
  label: "Brand Bar",
10928
10990
  description: "Solid brand surface with high-contrast navigation.",
10929
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10991
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10930
10992
  navInteraction: "color-change",
10931
- surface: "brand-solid"
10993
+ surface: "brand-solid",
10994
+ navTypography: "brand-caps"
10932
10995
  },
10933
10996
  {
10934
10997
  id: asHeaderStyleId("brand-underline"),
10935
10998
  label: "Brand Underline",
10936
10999
  description: "Brand surface with underline-grow navigation.",
10937
- supportedLayoutIds: supportedLayouts(["classic", "editorial"]),
11000
+ supportedLayoutIds: supportedLayouts(["classic"]),
10938
11001
  navInteraction: "underline-grow",
10939
- surface: "brand-solid"
11002
+ surface: "brand-solid",
11003
+ navTypography: "brand-caps"
10940
11004
  },
10941
11005
  {
10942
11006
  id: asHeaderStyleId("brand-pill"),
@@ -10944,41 +11008,44 @@ var headerStyleCatalog = [
10944
11008
  description: "Solid brand surface with rounded active and hover states.",
10945
11009
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
10946
11010
  navInteraction: "pill-background",
10947
- surface: "brand-solid"
11011
+ surface: "brand-solid",
11012
+ navTypography: "brand-caps"
10948
11013
  },
10949
11014
  {
10950
- id: asHeaderStyleId("editorial-line"),
10951
- label: "Editorial Line",
11015
+ id: asHeaderStyleId("serif-line"),
11016
+ label: "Serif Line",
10952
11017
  description: "Typographic logo treatment with understated underline navigation.",
10953
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
11018
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10954
11019
  navInteraction: "underline-grow",
10955
- surface: "bordered"
11020
+ surface: "bordered",
11021
+ navTypography: "heading"
10956
11022
  },
10957
11023
  {
10958
11024
  id: asHeaderStyleId("flat-tabs"),
10959
11025
  label: "Flat Tabs",
10960
11026
  description: "Flat block hover and active states with a Swiss utility feel.",
10961
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
11027
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10962
11028
  navInteraction: "flat-block",
10963
- surface: "bordered"
11029
+ surface: "bordered",
11030
+ navTypography: "quiet-caps"
10964
11031
  },
10965
11032
  {
10966
11033
  id: asHeaderStyleId("glass"),
10967
11034
  label: "Glass",
10968
- description: "Floating translucent chrome with frosted navigation backing.",
10969
- supportedLayoutIds: supportedLayouts(["floating"]),
11035
+ description: "Translucent chrome with frosted navigation backing.",
11036
+ supportedLayoutIds: supportedLayouts(["classic", "floating"]),
10970
11037
  navInteraction: "glass-backed",
10971
11038
  surface: "floating",
10972
- requiresFloatingLayout: true
11039
+ navTypography: "plain"
10973
11040
  },
10974
11041
  {
10975
11042
  id: asHeaderStyleId("minimal-surface"),
10976
- label: "Minimal Surface",
10977
- description: "Floating chrome with a restrained translucent surface.",
11043
+ label: "Clear Split",
11044
+ description: "Floating logo with transparent navigation and no shared shell.",
10978
11045
  supportedLayoutIds: supportedLayouts(["floating"]),
10979
11046
  navInteraction: "color-change",
10980
11047
  surface: "floating",
10981
- requiresFloatingLayout: true
11048
+ navTypography: "plain"
10982
11049
  },
10983
11050
  {
10984
11051
  id: asHeaderStyleId("soft-shell"),
@@ -10987,7 +11054,25 @@ var headerStyleCatalog = [
10987
11054
  supportedLayoutIds: supportedLayouts(["floating"]),
10988
11055
  navInteraction: "pill-background",
10989
11056
  surface: "floating",
10990
- requiresFloatingLayout: true
11057
+ navTypography: "plain"
11058
+ },
11059
+ {
11060
+ id: asHeaderStyleId("split-glass"),
11061
+ label: "Split Glass",
11062
+ description: "Logo floats independently while the navigation sits in a glass rail.",
11063
+ supportedLayoutIds: supportedLayouts(["floating"]),
11064
+ navInteraction: "glass-backed",
11065
+ surface: "floating",
11066
+ navTypography: "quiet-caps"
11067
+ },
11068
+ {
11069
+ id: asHeaderStyleId("split-pill"),
11070
+ label: "Split Pill",
11071
+ description: "Logo floats independently with a soft pill-backed navigation rail.",
11072
+ supportedLayoutIds: supportedLayouts(["floating"]),
11073
+ navInteraction: "pill-background",
11074
+ surface: "floating",
11075
+ navTypography: "heading"
10991
11076
  }
10992
11077
  ];
10993
11078
  var headerLayoutsById = new Map(
@@ -11001,13 +11086,14 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
11001
11086
  asHeaderLayoutId("classic"),
11002
11087
  headerStyleRepairChain([
11003
11088
  "minimal",
11089
+ "glass",
11004
11090
  "fine-line",
11005
11091
  "soft-bar",
11006
11092
  "pill-nav",
11007
11093
  "brand-bar",
11008
11094
  "brand-underline",
11009
11095
  "brand-pill",
11010
- "editorial-line",
11096
+ "serif-line",
11011
11097
  "flat-tabs"
11012
11098
  ])
11013
11099
  ],
@@ -11020,19 +11106,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
11020
11106
  "pill-nav",
11021
11107
  "brand-bar",
11022
11108
  "brand-pill",
11023
- "editorial-line",
11024
- "flat-tabs"
11025
- ])
11026
- ],
11027
- [
11028
- asHeaderLayoutId("editorial"),
11029
- headerStyleRepairChain([
11030
- "minimal",
11031
- "fine-line",
11032
- "soft-bar",
11033
- "brand-bar",
11034
- "brand-underline",
11035
- "editorial-line",
11109
+ "serif-line",
11036
11110
  "flat-tabs"
11037
11111
  ])
11038
11112
  ],
@@ -11041,6 +11115,8 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
11041
11115
  headerStyleRepairChain([
11042
11116
  "glass",
11043
11117
  "minimal-surface",
11118
+ "split-glass",
11119
+ "split-pill",
11044
11120
  "soft-shell",
11045
11121
  "brand-pill"
11046
11122
  ])
@@ -11049,20 +11125,63 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
11049
11125
  function headerStyleRepairChain(values) {
11050
11126
  return values.map(asHeaderStyleId);
11051
11127
  }
11052
- var headerStyleRepairOrder = /* @__PURE__ */ new Map([
11053
- [asHeaderStyleId("brand-bar"), headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])],
11054
- [asHeaderStyleId("brand-underline"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
11055
- [asHeaderStyleId("brand-pill"), headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])],
11056
- [asHeaderStyleId("pill-nav"), headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])],
11057
- [asHeaderStyleId("flat-tabs"), headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])],
11058
- [asHeaderStyleId("editorial-line"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
11059
- [asHeaderStyleId("glass"), headerStyleRepairChain(["glass", "minimal-surface", "minimal"])],
11060
- [asHeaderStyleId("soft-shell"), headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])],
11061
- [asHeaderStyleId("minimal-surface"), headerStyleRepairChain(["minimal-surface", "minimal"])],
11062
- [asHeaderStyleId("fine-line"), headerStyleRepairChain(["fine-line", "minimal"])],
11063
- [asHeaderStyleId("soft-bar"), headerStyleRepairChain(["soft-bar", "minimal"])],
11064
- [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
11065
- ]);
11128
+ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
11129
+ [
11130
+ [
11131
+ asHeaderStyleId("brand-bar"),
11132
+ headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
11133
+ ],
11134
+ [
11135
+ asHeaderStyleId("brand-underline"),
11136
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
11137
+ ],
11138
+ [
11139
+ asHeaderStyleId("brand-pill"),
11140
+ headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
11141
+ ],
11142
+ [
11143
+ asHeaderStyleId("pill-nav"),
11144
+ headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
11145
+ ],
11146
+ [
11147
+ asHeaderStyleId("flat-tabs"),
11148
+ headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
11149
+ ],
11150
+ [
11151
+ asHeaderStyleId("serif-line"),
11152
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
11153
+ ],
11154
+ [
11155
+ asHeaderStyleId("glass"),
11156
+ headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
11157
+ ],
11158
+ [
11159
+ asHeaderStyleId("soft-shell"),
11160
+ headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
11161
+ ],
11162
+ [
11163
+ asHeaderStyleId("minimal-surface"),
11164
+ headerStyleRepairChain(["minimal-surface", "minimal"])
11165
+ ],
11166
+ [
11167
+ asHeaderStyleId("split-glass"),
11168
+ headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
11169
+ ],
11170
+ [
11171
+ asHeaderStyleId("split-pill"),
11172
+ headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
11173
+ ],
11174
+ [
11175
+ asHeaderStyleId("fine-line"),
11176
+ headerStyleRepairChain(["fine-line", "minimal"])
11177
+ ],
11178
+ [
11179
+ asHeaderStyleId("soft-bar"),
11180
+ headerStyleRepairChain(["soft-bar", "minimal"])
11181
+ ],
11182
+ [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
11183
+ ]
11184
+ );
11066
11185
  var legacyHeaderLookAliases = [
11067
11186
  {
11068
11187
  lookId: asHeaderLookId("clean-base"),
@@ -11079,10 +11198,10 @@ var legacyHeaderLookAliases = [
11079
11198
  }
11080
11199
  },
11081
11200
  {
11082
- lookId: asHeaderLookId("editorial-line"),
11201
+ lookId: asHeaderLookId("serif-line"),
11083
11202
  selection: {
11084
- layoutId: asHeaderLayoutId("editorial"),
11085
- styleId: asHeaderStyleId("editorial-line")
11203
+ layoutId: asHeaderLayoutId("centered"),
11204
+ styleId: asHeaderStyleId("serif-line")
11086
11205
  }
11087
11206
  },
11088
11207
  {
@@ -11121,9 +11240,7 @@ var legacyHeaderLookAliases = [
11121
11240
  }
11122
11241
  }
11123
11242
  ];
11124
- var legacyHeaderLookAliasesById = new Map(
11125
- legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
11126
- );
11243
+ var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
11127
11244
  function getHeaderStyle(id) {
11128
11245
  return headerStylesById.get(id) ?? null;
11129
11246
  }
@@ -11141,10 +11258,12 @@ function resolveLegacyHeaderLookAlias(lookId) {
11141
11258
  return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
11142
11259
  }
11143
11260
  function getCompatibleHeaderStyleIds(layoutId) {
11144
- return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
11145
- const style = getHeaderStyleOrThrow(styleId);
11146
- return isHeaderStyleCompatibleWithLayout(style, layoutId);
11147
- });
11261
+ return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
11262
+ (styleId) => {
11263
+ const style = getHeaderStyleOrThrow(styleId);
11264
+ return isHeaderStyleCompatibleWithLayout(style, layoutId);
11265
+ }
11266
+ );
11148
11267
  }
11149
11268
  function solidBrandHeader(theme) {
11150
11269
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
@@ -11175,8 +11294,14 @@ function solidBrandHeader(theme) {
11175
11294
  borderRadius: "none",
11176
11295
  effects: {
11177
11296
  hover: [
11178
- { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
11179
- { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
11297
+ {
11298
+ effectId: "text-color-change",
11299
+ options: { hoverColorToken: "secondary" }
11300
+ },
11301
+ {
11302
+ effectId: "nav-underline",
11303
+ options: { style: "grow", colorToken: "secondary" }
11304
+ }
11180
11305
  ]
11181
11306
  }
11182
11307
  },
@@ -11232,10 +11357,10 @@ function cleanBaseHeader(theme) {
11232
11357
  ctaGap: "default"
11233
11358
  };
11234
11359
  }
11235
- function editorialLineHeader(theme) {
11360
+ function serifLineHeader(theme) {
11236
11361
  return {
11237
11362
  ...baseHeader(theme),
11238
- variant: "editorial",
11363
+ variant: "centered",
11239
11364
  positioning: "sticky",
11240
11365
  shrinkOnScroll: false,
11241
11366
  background: {
@@ -11404,27 +11529,27 @@ var headerLookCatalog = [
11404
11529
  compile: solidBrandHeader
11405
11530
  },
11406
11531
  {
11407
- id: asHeaderLookId("editorial-line"),
11408
- label: "Editorial line",
11409
- visualTreatment: "light-editorial",
11532
+ id: asHeaderLookId("serif-line"),
11533
+ label: "Serif line",
11534
+ visualTreatment: "light-serif",
11410
11535
  layoutBehavior: "sticky",
11411
11536
  configuration: {
11412
- structure: "editorial-stack",
11413
- treatment: "light-editorial",
11537
+ structure: "centered-stack",
11538
+ treatment: "light-serif",
11414
11539
  behavior: "sticky"
11415
11540
  },
11416
11541
  openingRequirement: "none",
11417
11542
  maxRecommendedNavItems: 6,
11418
- compile: editorialLineHeader
11543
+ compile: serifLineHeader
11419
11544
  },
11420
11545
  {
11421
11546
  id: asHeaderLookId("centered-calm"),
11422
11547
  label: "Centered calm",
11423
- visualTreatment: "light-editorial",
11548
+ visualTreatment: "light-serif",
11424
11549
  layoutBehavior: "normal-flow",
11425
11550
  configuration: {
11426
11551
  structure: "centered-stack",
11427
- treatment: "light-editorial",
11552
+ treatment: "light-serif",
11428
11553
  behavior: "normal-flow"
11429
11554
  },
11430
11555
  openingRequirement: "none",
@@ -11970,12 +12095,16 @@ var expressiveUnderlineInputs = {
11970
12095
  }
11971
12096
  };
11972
12097
  function uniqueContentFrameKinds() {
11973
- const kinds = [...new Set(
11974
- generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
11975
- )];
12098
+ const kinds = [
12099
+ ...new Set(
12100
+ generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
12101
+ )
12102
+ ];
11976
12103
  const firstKind = kinds[0];
11977
12104
  if (!firstKind) {
11978
- throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
12105
+ throw new Error(
12106
+ "Expected generated design option catalog to expose at least one content frame kind."
12107
+ );
11979
12108
  }
11980
12109
  return [firstKind, ...kinds.slice(1)];
11981
12110
  }
@@ -11985,7 +12114,9 @@ function defineCuratedSiteStyle(input) {
11985
12114
  const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
11986
12115
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
11987
12116
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
11988
- if (!typographyPresetChoices.some((choice) => choice.id === defaultTypographyPresetId)) {
12117
+ if (!typographyPresetChoices.some(
12118
+ (choice) => choice.id === defaultTypographyPresetId
12119
+ )) {
11989
12120
  throw new Error(
11990
12121
  `Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
11991
12122
  );
@@ -11996,9 +12127,13 @@ function defineCuratedSiteStyle(input) {
11996
12127
  description: input.description,
11997
12128
  generationBrief: input.generationBrief,
11998
12129
  selectionKeywordRules: input.selectionKeywordRules ?? [],
11999
- siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
12130
+ siteCreatorSelection: input.siteCreatorSelection ?? {
12131
+ kind: "explicit_only"
12132
+ },
12000
12133
  template: {
12001
- id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
12134
+ id: asDesignSystemTemplateId(
12135
+ `template:${input.id.replace("site-style:", "")}`
12136
+ ),
12002
12137
  name: input.name,
12003
12138
  version: 1,
12004
12139
  tokenRecipes: input.tokenRecipes,
@@ -12016,13 +12151,17 @@ function defineCuratedSiteStyle(input) {
12016
12151
  } : inferredHeaderCuration.defaultHeaderSelection,
12017
12152
  recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
12018
12153
  recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
12019
- discouragedHeaderSelections: input.discouragedHeaderSelections?.map((selection) => ({
12020
- layoutId: asHeaderLayoutId(selection.layoutId),
12021
- styleId: asHeaderStyleId(selection.styleId)
12022
- })),
12154
+ discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
12155
+ (selection) => ({
12156
+ layoutId: asHeaderLayoutId(selection.layoutId),
12157
+ styleId: asHeaderStyleId(selection.styleId)
12158
+ })
12159
+ ),
12023
12160
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
12024
12161
  // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
12025
- recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
12162
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
12163
+ asFooterLookId
12164
+ ),
12026
12165
  buttonPersonalityChoices: input.buttonPersonalityChoices,
12027
12166
  paletteVariantChoices: input.paletteVariantChoices,
12028
12167
  typographyPresetChoices,
@@ -12041,7 +12180,7 @@ function headerLayoutChoice(id, note) {
12041
12180
  function headerStyleChoice(id, note) {
12042
12181
  return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
12043
12182
  }
12044
- function headerLayoutRecordKey(id) {
12183
+ function unbrandHeaderLayoutId(id) {
12045
12184
  return id;
12046
12185
  }
12047
12186
  function uniqueHeaderLayoutChoices(choices) {
@@ -12064,7 +12203,9 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
12064
12203
  return [first, ...choices.slice(1)];
12065
12204
  }
12066
12205
  function inferHeaderCurationFromLegacyLooks(lookIds) {
12067
- const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter((selection) => Boolean(selection));
12206
+ const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
12207
+ (selection) => Boolean(selection)
12208
+ );
12068
12209
  const defaultHeaderSelection = selections[0] ?? {
12069
12210
  layoutId: asHeaderLayoutId("classic"),
12070
12211
  styleId: asHeaderStyleId("minimal")
@@ -12075,10 +12216,7 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
12075
12216
  const stylesByLayout = {};
12076
12217
  for (const layoutChoice of layoutChoices) {
12077
12218
  const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
12078
- stylesByLayout[headerLayoutRecordKey(layoutChoice.id)] = nonEmptyHeaderStyleChoices(
12079
- styleChoices,
12080
- layoutChoice.id
12081
- );
12219
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
12082
12220
  }
12083
12221
  return {
12084
12222
  defaultHeaderSelection,
@@ -12133,7 +12271,11 @@ var curatedSiteStyles = [
12133
12271
  motion: "subtle"
12134
12272
  },
12135
12273
  compositionBudget: quietBudget,
12136
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12274
+ recommendedHeaderLookIds: [
12275
+ "centered-calm",
12276
+ "minimal-transparent",
12277
+ "clean-base"
12278
+ ],
12137
12279
  buttonPersonalityChoices: [
12138
12280
  buttonChoice("soft-pill"),
12139
12281
  buttonChoice("pebble"),
@@ -12162,7 +12304,11 @@ var curatedSiteStyles = [
12162
12304
  motion: "subtle"
12163
12305
  },
12164
12306
  compositionBudget: balancedBudget,
12165
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12307
+ recommendedHeaderLookIds: [
12308
+ "practical-utility",
12309
+ "brand-solid",
12310
+ "clean-base"
12311
+ ],
12166
12312
  buttonPersonalityChoices: [
12167
12313
  buttonChoice("confident-chip"),
12168
12314
  buttonChoice("soft-pill"),
@@ -12189,7 +12335,11 @@ var curatedSiteStyles = [
12189
12335
  motion: "subtle"
12190
12336
  },
12191
12337
  compositionBudget: balancedBudget,
12192
- recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
12338
+ recommendedHeaderLookIds: [
12339
+ "serif-line",
12340
+ "minimal-transparent",
12341
+ "centered-calm"
12342
+ ],
12193
12343
  buttonPersonalityChoices: [
12194
12344
  buttonChoice("editorial-link"),
12195
12345
  buttonChoice("soft-pill"),
@@ -12217,7 +12367,11 @@ var curatedSiteStyles = [
12217
12367
  motion: "expressive"
12218
12368
  },
12219
12369
  compositionBudget: balancedBudget,
12220
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12370
+ recommendedHeaderLookIds: [
12371
+ "brand-solid",
12372
+ "practical-utility",
12373
+ "clean-base"
12374
+ ],
12221
12375
  buttonPersonalityChoices: [
12222
12376
  buttonChoice("pebble"),
12223
12377
  buttonChoice("brushed-wash"),
@@ -12234,7 +12388,10 @@ var curatedSiteStyles = [
12234
12388
  name: "Quiet Luxury",
12235
12389
  description: "Minimal, confident, and refined for premium experiences and private services.",
12236
12390
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
12237
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
12391
+ siteCreatorSelection: {
12392
+ kind: "site_creator_keyword_heuristic",
12393
+ priority: 20
12394
+ },
12238
12395
  selectionKeywordRules: [
12239
12396
  { kind: "word", value: "luxury" },
12240
12397
  { kind: "word", value: "premium" },
@@ -12252,7 +12409,11 @@ var curatedSiteStyles = [
12252
12409
  motion: "none"
12253
12410
  },
12254
12411
  compositionBudget: quietBudget,
12255
- recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
12412
+ recommendedHeaderLookIds: [
12413
+ "minimal-transparent",
12414
+ "serif-line",
12415
+ "clean-base"
12416
+ ],
12256
12417
  buttonPersonalityChoices: [
12257
12418
  buttonChoice("editorial-link"),
12258
12419
  buttonChoice("confident-chip"),
@@ -12288,7 +12449,11 @@ var curatedSiteStyles = [
12288
12449
  motion: "none"
12289
12450
  },
12290
12451
  compositionBudget: quietBudget,
12291
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12452
+ recommendedHeaderLookIds: [
12453
+ "practical-utility",
12454
+ "brand-solid",
12455
+ "clean-base"
12456
+ ],
12292
12457
  buttonPersonalityChoices: [
12293
12458
  buttonChoice("confident-chip"),
12294
12459
  buttonChoice("pebble"),
@@ -12315,7 +12480,11 @@ var curatedSiteStyles = [
12315
12480
  motion: "subtle"
12316
12481
  },
12317
12482
  compositionBudget: balancedBudget,
12318
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12483
+ recommendedHeaderLookIds: [
12484
+ "centered-calm",
12485
+ "minimal-transparent",
12486
+ "clean-base"
12487
+ ],
12319
12488
  buttonPersonalityChoices: [
12320
12489
  buttonChoice("soft-pill"),
12321
12490
  buttonChoice("pebble"),
@@ -12332,7 +12501,10 @@ var curatedSiteStyles = [
12332
12501
  name: "Quiet Practice",
12333
12502
  description: "Grounded, calm, and practical for small appointment-first practices.",
12334
12503
  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.",
12335
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
12504
+ siteCreatorSelection: {
12505
+ kind: "site_creator_keyword_heuristic",
12506
+ priority: 30
12507
+ },
12336
12508
  selectionKeywordRules: [
12337
12509
  { kind: "substring", value: "massage" },
12338
12510
  { kind: "word", value: "bodywork" },
@@ -12353,7 +12525,11 @@ var curatedSiteStyles = [
12353
12525
  motion: "subtle"
12354
12526
  },
12355
12527
  compositionBudget: quietBudget,
12356
- recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
12528
+ recommendedHeaderLookIds: [
12529
+ "practical-utility",
12530
+ "clean-base",
12531
+ "centered-calm"
12532
+ ],
12357
12533
  buttonPersonalityChoices: [
12358
12534
  buttonChoice("pebble"),
12359
12535
  buttonChoice("soft-pill"),
@@ -12370,7 +12546,10 @@ var curatedSiteStyles = [
12370
12546
  name: "Personal Retreat Journal",
12371
12547
  description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
12372
12548
  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.",
12373
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
12549
+ siteCreatorSelection: {
12550
+ kind: "site_creator_keyword_heuristic",
12551
+ priority: 40
12552
+ },
12374
12553
  selectionKeywordRules: [
12375
12554
  { kind: "substring", value: "retreat" },
12376
12555
  { kind: "phrase", value: "solo practitioner" },
@@ -12390,7 +12569,11 @@ var curatedSiteStyles = [
12390
12569
  motion: "subtle"
12391
12570
  },
12392
12571
  compositionBudget: balancedBudget,
12393
- recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
12572
+ recommendedHeaderLookIds: [
12573
+ "serif-line",
12574
+ "centered-calm",
12575
+ "minimal-transparent"
12576
+ ],
12394
12577
  buttonPersonalityChoices: [
12395
12578
  buttonChoice("editorial-link"),
12396
12579
  buttonChoice("soft-pill"),
@@ -12407,7 +12590,10 @@ var curatedSiteStyles = [
12407
12590
  name: "Tactile Workshop",
12408
12591
  description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
12409
12592
  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.",
12410
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
12593
+ siteCreatorSelection: {
12594
+ kind: "site_creator_keyword_heuristic",
12595
+ priority: 50
12596
+ },
12411
12597
  selectionKeywordRules: [
12412
12598
  { kind: "substring", value: "ceramic" },
12413
12599
  { kind: "word", value: "pottery" },
@@ -12427,8 +12613,15 @@ var curatedSiteStyles = [
12427
12613
  motion: "subtle"
12428
12614
  },
12429
12615
  compositionBudget: balancedBudget,
12430
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12431
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12616
+ recommendedHeaderLookIds: [
12617
+ "brand-solid",
12618
+ "practical-utility",
12619
+ "clean-base"
12620
+ ],
12621
+ recommendedFooterLookIds: [
12622
+ "site-footer-brand-two-band",
12623
+ "footer-muted-grounding"
12624
+ ],
12432
12625
  buttonPersonalityChoices: [
12433
12626
  buttonChoice("pebble"),
12434
12627
  buttonChoice("confident-chip"),
@@ -12447,7 +12640,10 @@ var curatedSiteStyles = [
12447
12640
  name: "Soft Earth",
12448
12641
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
12449
12642
  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.",
12450
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 45 },
12643
+ siteCreatorSelection: {
12644
+ kind: "site_creator_keyword_heuristic",
12645
+ priority: 45
12646
+ },
12451
12647
  selectionKeywordRules: [
12452
12648
  { kind: "word", value: "meditation" },
12453
12649
  { kind: "word", value: "wellbeing" },
@@ -12523,8 +12719,15 @@ var curatedSiteStyles = [
12523
12719
  "faq-soft-earth-two-column",
12524
12720
  "contact-form-panel"
12525
12721
  ],
12526
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "editorial-line"],
12527
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
12722
+ recommendedHeaderLookIds: [
12723
+ "centered-calm",
12724
+ "minimal-transparent",
12725
+ "serif-line"
12726
+ ],
12727
+ recommendedFooterLookIds: [
12728
+ "footer-muted-grounding",
12729
+ "site-footer-brand-two-band"
12730
+ ],
12528
12731
  buttonPersonalityChoices: [
12529
12732
  buttonChoice("earth-pill"),
12530
12733
  buttonChoice("soft-pill"),
@@ -12543,7 +12746,10 @@ var curatedSiteStyles = [
12543
12746
  name: "Bold Launch",
12544
12747
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
12545
12748
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
12546
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
12749
+ siteCreatorSelection: {
12750
+ kind: "site_creator_keyword_heuristic",
12751
+ priority: 10
12752
+ },
12547
12753
  selectionKeywordRules: [
12548
12754
  { kind: "substring", value: "launch" },
12549
12755
  { kind: "substring", value: "campaign" },
@@ -12562,7 +12768,11 @@ var curatedSiteStyles = [
12562
12768
  motion: "expressive"
12563
12769
  },
12564
12770
  compositionBudget: expressiveBudget,
12565
- recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
12771
+ recommendedHeaderLookIds: [
12772
+ "transparent-overlay",
12773
+ "floating-glass",
12774
+ "brand-solid"
12775
+ ],
12566
12776
  buttonPersonalityChoices: [
12567
12777
  buttonChoice("ink-stamp"),
12568
12778
  buttonChoice("confident-chip"),
@@ -12613,8 +12823,15 @@ var curatedSiteStyles = [
12613
12823
  "testimonials-accent-quote-proof",
12614
12824
  "contact-form-brand-depth-card"
12615
12825
  ],
12616
- recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
12617
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12826
+ recommendedHeaderLookIds: [
12827
+ "brand-solid",
12828
+ "transparent-overlay",
12829
+ "practical-utility"
12830
+ ],
12831
+ recommendedFooterLookIds: [
12832
+ "site-footer-brand-two-band",
12833
+ "footer-muted-grounding"
12834
+ ],
12618
12835
  buttonPersonalityChoices: [
12619
12836
  buttonChoice("showtime-pill"),
12620
12837
  buttonChoice("confident-chip"),
@@ -20008,10 +20225,7 @@ var headerRootClassTransform = {
20008
20225
  const navContainerType = header?.navContainer?.type ?? "none";
20009
20226
  const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
20010
20227
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
20011
- const classes = [
20012
- config.base,
20013
- backgroundClass
20014
- ];
20228
+ const classes = [config.base, backgroundClass];
20015
20229
  if (!hasContainedNav) {
20016
20230
  if (config.blur) classes.push(config.blur);
20017
20231
  if (config.blurSupport) classes.push(config.blurSupport);
@@ -20026,7 +20240,12 @@ var headerRootClassTransform = {
20026
20240
  if (shrinkOnScroll && (positioning === "sticky" || positioning === "fixed")) {
20027
20241
  classes.push(config.shrink);
20028
20242
  }
20029
- const VALID_VARIANTS = ["classic", "centered", "transparent", "floating", "editorial"];
20243
+ const VALID_VARIANTS = [
20244
+ "classic",
20245
+ "centered",
20246
+ "transparent",
20247
+ "floating"
20248
+ ];
20030
20249
  const variant = header?.variant;
20031
20250
  if (variant && VALID_VARIANTS.includes(variant)) {
20032
20251
  classes.push(`header-variant-${variant}`);
@@ -20644,15 +20863,21 @@ var mobileCta = ctaButton({
20644
20863
  var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
20645
20864
  {
20646
20865
  type: "div",
20647
- props: { className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20866
+ props: {
20867
+ className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20868
+ }
20648
20869
  },
20649
20870
  {
20650
20871
  type: "div",
20651
- props: { className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20872
+ props: {
20873
+ className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20874
+ }
20652
20875
  },
20653
20876
  {
20654
20877
  type: "div",
20655
- props: { className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20878
+ props: {
20879
+ className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20880
+ }
20656
20881
  }
20657
20882
  ]);
20658
20883
  var mobileToggleButton = {
@@ -20835,28 +21060,6 @@ var floatingLayout = inline(
20835
21060
  ],
20836
21061
  when("$root.theme.header.variant", { equals: "floating" })
20837
21062
  );
20838
- var editorialLayout = stack(
20839
- {
20840
- gap: "md",
20841
- align: "center",
20842
- className: bindProp("$root.theme.header.maxWidth", {
20843
- transforms: pipe(
20844
- tx("layout.maxWidthClass", {
20845
- base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20846
- })
20847
- ),
20848
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20849
- })
20850
- },
20851
- [
20852
- centeredLogoRow,
20853
- createNavRow(
20854
- `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
20855
- "center"
20856
- )
20857
- ],
20858
- when("$root.theme.header.variant", { equals: "editorial" })
20859
- );
20860
21063
  var headerLayout = headerSection(
20861
21064
  {
20862
21065
  background: bindProp("$root.theme.header", {
@@ -20870,10 +21073,7 @@ var headerLayout = headerSection(
20870
21073
  }),
20871
21074
  style: bindProp("$root.theme.header", {
20872
21075
  transforms: pipe(tx("layout.headerRootStyle")),
20873
- fallback: mergeStyles(
20874
- textColorStyle("text"),
20875
- borderColorStyle("border")
20876
- )
21076
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
20877
21077
  })
20878
21078
  },
20879
21079
  [
@@ -20882,7 +21082,6 @@ var headerLayout = headerSection(
20882
21082
  centeredLayout,
20883
21083
  transparentLayout,
20884
21084
  floatingLayout,
20885
- editorialLayout,
20886
21085
  mobileOverlay
20887
21086
  ],
20888
21087
  props({