@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
@@ -9826,8 +9826,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
9826
9826
  colorToken: themeColorTokenSchema.nullable().optional()
9827
9827
  });
9828
9828
  var proseLinkUnderlineStyleSchema = z21.enum(["solid", "dotted", "dashed"]);
9829
- var proseLinkUnderlineThicknessSchema = z21.enum(["auto", "fromFont", "thin", "medium", "thick"]);
9830
- var proseLinkUnderlineOffsetSchema = z21.enum(["auto", "tight", "normal", "loose"]);
9829
+ var proseLinkUnderlineThicknessSchema = z21.enum([
9830
+ "auto",
9831
+ "fromFont",
9832
+ "thin",
9833
+ "medium",
9834
+ "thick"
9835
+ ]);
9836
+ var proseLinkUnderlineOffsetSchema = z21.enum([
9837
+ "auto",
9838
+ "tight",
9839
+ "normal",
9840
+ "loose"
9841
+ ]);
9831
9842
  var proseLinkStyleSchema = z21.object({
9832
9843
  colorToken: themeColorTokenSchema.optional(),
9833
9844
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -9838,7 +9849,14 @@ var proseLinkStyleSchema = z21.object({
9838
9849
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
9839
9850
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
9840
9851
  });
9841
- var semanticSpacingSchema = z21.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
9852
+ var semanticSpacingSchema = z21.enum([
9853
+ "none",
9854
+ "compact",
9855
+ "cozy",
9856
+ "medium",
9857
+ "comfortable",
9858
+ "spacious"
9859
+ ]);
9842
9860
  var boxRoundedSchema = z21.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
9843
9861
  var boxBackgroundOverlaySchema = z21.object({
9844
9862
  type: z21.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -9982,9 +10000,17 @@ var inputStyle = z21.object({
9982
10000
  focus: z21.enum(["glow", "ring", "underline"]),
9983
10001
  label: z21.enum(["inside", "above"])
9984
10002
  });
9985
- var headerVariant = z21.enum(["classic", "centered", "transparent", "floating", "editorial"]);
10003
+ var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"]);
9986
10004
  var headerPositioning = z21.enum(["static", "sticky", "fixed"]);
9987
- var headerNavStyle = z21.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
10005
+ var headerNavStyle = z21.enum([
10006
+ "minimal",
10007
+ "underline",
10008
+ "underline-grow",
10009
+ "capsule",
10010
+ "scale",
10011
+ "frosted",
10012
+ "solid"
10013
+ ]);
9988
10014
  var navFontWeight = z21.enum(["regular", "medium", "semibold", "bold"]);
9989
10015
  var headerMaxWidth = z21.enum(["container", "full"]);
9990
10016
  var headerContainerSchema = z21.object({
@@ -10032,8 +10058,22 @@ var dropdownStyleSchema = z21.object({
10032
10058
  textSize: z21.enum(["xs", "sm", "base", "lg"]).optional()
10033
10059
  // optional = no override (browser default)
10034
10060
  }).optional();
10035
- var headerCtaGapSchema = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10036
- var headerCtaTreatmentSchema = z21.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
10061
+ var headerCtaGapSchema = z21.enum([
10062
+ "none",
10063
+ "tight",
10064
+ "compact",
10065
+ "default",
10066
+ "relaxed",
10067
+ "spacious"
10068
+ ]);
10069
+ var headerCtaTreatmentSchema = z21.enum([
10070
+ "default",
10071
+ "primary",
10072
+ "secondary",
10073
+ "inverted",
10074
+ "outline",
10075
+ "ghost"
10076
+ ]);
10037
10077
  var navContainerSchema = z21.object({
10038
10078
  type: z21.enum(["none", "pill", "glass"]).default("none"),
10039
10079
  tint: z21.string().nullable().optional(),
@@ -10088,7 +10128,14 @@ var footerMaxWidth = z21.enum(["container", "full"]);
10088
10128
  var footerMode = z21.enum(["default", "blocks", "default+blocks", "none"]);
10089
10129
  var footerNavLayoutMode = z21.enum(["stack", "inline", "inline-wrap"]);
10090
10130
  var footerNavLayoutAlign = z21.enum(["start", "center", "end", "space-between"]);
10091
- var footerSpacing = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10131
+ var footerSpacing = z21.enum([
10132
+ "none",
10133
+ "tight",
10134
+ "compact",
10135
+ "default",
10136
+ "relaxed",
10137
+ "spacious"
10138
+ ]);
10092
10139
  var footerLogoPlacement = z21.enum(["left", "right", "above", "below"]);
10093
10140
  var footerLogoSize = z21.enum(["sm", "md", "lg", "xl"]);
10094
10141
  var footerLogoMaxHeight = z21.enum(["sm", "md", "lg", "xl"]);
@@ -10153,7 +10200,12 @@ var footerSchema = z21.object({
10153
10200
  logo: footerLogoSchema.optional(),
10154
10201
  bottomBar: footerBottomBarSchema.optional()
10155
10202
  });
10156
- var containerPaddingPresetSchema = z21.enum(["tight", "compact", "default", "relaxed"]);
10203
+ var containerPaddingPresetSchema = z21.enum([
10204
+ "tight",
10205
+ "compact",
10206
+ "default",
10207
+ "relaxed"
10208
+ ]);
10157
10209
  var layoutSchema = z21.object({
10158
10210
  containerPadding: z21.object({
10159
10211
  mobile: containerPaddingPresetSchema.optional(),
@@ -10161,8 +10213,24 @@ var layoutSchema = z21.object({
10161
10213
  desktop: containerPaddingPresetSchema.optional()
10162
10214
  }).optional()
10163
10215
  }).optional();
10164
- var heroTypographySizeSchema = z21.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
10165
- var heroTypographyLineHeightSchema = z21.enum(["tight", "snug", "normal", "relaxed"]);
10216
+ var heroTypographySizeSchema = z21.enum([
10217
+ "sm",
10218
+ "base",
10219
+ "lg",
10220
+ "xl",
10221
+ "2xl",
10222
+ "3xl",
10223
+ "4xl",
10224
+ "5xl",
10225
+ "6xl",
10226
+ "editorial"
10227
+ ]);
10228
+ var heroTypographyLineHeightSchema = z21.enum([
10229
+ "tight",
10230
+ "snug",
10231
+ "normal",
10232
+ "relaxed"
10233
+ ]);
10166
10234
  var heroResponsiveTypographySchema = z21.object({
10167
10235
  headlineSize: heroTypographySizeSchema.optional(),
10168
10236
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -10716,16 +10784,6 @@ var headerLayoutCatalog = [
10716
10784
  maxRecommendedNavItems: 5,
10717
10785
  allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
10718
10786
  },
10719
- {
10720
- id: asHeaderLayoutId("editorial"),
10721
- label: "Editorial",
10722
- description: "A composed, magazine-like stacked header treatment.",
10723
- structure: "editorial-stack",
10724
- variant: "editorial",
10725
- defaultPositioning: "static",
10726
- shrinkOnScroll: false,
10727
- maxRecommendedNavItems: 6
10728
- },
10729
10787
  {
10730
10788
  id: asHeaderLayoutId("floating"),
10731
10789
  label: "Floating",
@@ -10746,17 +10804,19 @@ var headerStyleCatalog = [
10746
10804
  id: asHeaderStyleId("minimal"),
10747
10805
  label: "Minimal",
10748
10806
  description: "Quiet surface with simple color-change navigation.",
10749
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10807
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10750
10808
  navInteraction: "color-change",
10751
- surface: "neutral"
10809
+ surface: "neutral",
10810
+ navTypography: "plain"
10752
10811
  },
10753
10812
  {
10754
10813
  id: asHeaderStyleId("fine-line"),
10755
10814
  label: "Fine Line",
10756
10815
  description: "Light surface with a crisp lower rule and underline hover.",
10757
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10816
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10758
10817
  navInteraction: "underline-grow",
10759
- surface: "bordered"
10818
+ surface: "bordered",
10819
+ navTypography: "plain"
10760
10820
  },
10761
10821
  {
10762
10822
  id: asHeaderStyleId("soft-bar"),
@@ -10764,7 +10824,8 @@ var headerStyleCatalog = [
10764
10824
  description: "Soft tinted surface with gentle pill hover states.",
10765
10825
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10766
10826
  navInteraction: "pill-background",
10767
- surface: "soft"
10827
+ surface: "soft",
10828
+ navTypography: "plain"
10768
10829
  },
10769
10830
  {
10770
10831
  id: asHeaderStyleId("pill-nav"),
@@ -10772,23 +10833,26 @@ var headerStyleCatalog = [
10772
10833
  description: "A calm pill navigation rail over a neutral header.",
10773
10834
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10774
10835
  navInteraction: "pill-background",
10775
- surface: "soft"
10836
+ surface: "soft",
10837
+ navTypography: "plain"
10776
10838
  },
10777
10839
  {
10778
10840
  id: asHeaderStyleId("brand-bar"),
10779
10841
  label: "Brand Bar",
10780
10842
  description: "Solid brand surface with high-contrast navigation.",
10781
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10843
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10782
10844
  navInteraction: "color-change",
10783
- surface: "brand-solid"
10845
+ surface: "brand-solid",
10846
+ navTypography: "brand-caps"
10784
10847
  },
10785
10848
  {
10786
10849
  id: asHeaderStyleId("brand-underline"),
10787
10850
  label: "Brand Underline",
10788
10851
  description: "Brand surface with underline-grow navigation.",
10789
- supportedLayoutIds: supportedLayouts(["classic", "editorial"]),
10852
+ supportedLayoutIds: supportedLayouts(["classic"]),
10790
10853
  navInteraction: "underline-grow",
10791
- surface: "brand-solid"
10854
+ surface: "brand-solid",
10855
+ navTypography: "brand-caps"
10792
10856
  },
10793
10857
  {
10794
10858
  id: asHeaderStyleId("brand-pill"),
@@ -10796,41 +10860,44 @@ var headerStyleCatalog = [
10796
10860
  description: "Solid brand surface with rounded active and hover states.",
10797
10861
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
10798
10862
  navInteraction: "pill-background",
10799
- surface: "brand-solid"
10863
+ surface: "brand-solid",
10864
+ navTypography: "brand-caps"
10800
10865
  },
10801
10866
  {
10802
- id: asHeaderStyleId("editorial-line"),
10803
- label: "Editorial Line",
10867
+ id: asHeaderStyleId("serif-line"),
10868
+ label: "Serif Line",
10804
10869
  description: "Typographic logo treatment with understated underline navigation.",
10805
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10870
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10806
10871
  navInteraction: "underline-grow",
10807
- surface: "bordered"
10872
+ surface: "bordered",
10873
+ navTypography: "heading"
10808
10874
  },
10809
10875
  {
10810
10876
  id: asHeaderStyleId("flat-tabs"),
10811
10877
  label: "Flat Tabs",
10812
10878
  description: "Flat block hover and active states with a Swiss utility feel.",
10813
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10879
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10814
10880
  navInteraction: "flat-block",
10815
- surface: "bordered"
10881
+ surface: "bordered",
10882
+ navTypography: "quiet-caps"
10816
10883
  },
10817
10884
  {
10818
10885
  id: asHeaderStyleId("glass"),
10819
10886
  label: "Glass",
10820
- description: "Floating translucent chrome with frosted navigation backing.",
10821
- supportedLayoutIds: supportedLayouts(["floating"]),
10887
+ description: "Translucent chrome with frosted navigation backing.",
10888
+ supportedLayoutIds: supportedLayouts(["classic", "floating"]),
10822
10889
  navInteraction: "glass-backed",
10823
10890
  surface: "floating",
10824
- requiresFloatingLayout: true
10891
+ navTypography: "plain"
10825
10892
  },
10826
10893
  {
10827
10894
  id: asHeaderStyleId("minimal-surface"),
10828
- label: "Minimal Surface",
10829
- description: "Floating chrome with a restrained translucent surface.",
10895
+ label: "Clear Split",
10896
+ description: "Floating logo with transparent navigation and no shared shell.",
10830
10897
  supportedLayoutIds: supportedLayouts(["floating"]),
10831
10898
  navInteraction: "color-change",
10832
10899
  surface: "floating",
10833
- requiresFloatingLayout: true
10900
+ navTypography: "plain"
10834
10901
  },
10835
10902
  {
10836
10903
  id: asHeaderStyleId("soft-shell"),
@@ -10839,7 +10906,25 @@ var headerStyleCatalog = [
10839
10906
  supportedLayoutIds: supportedLayouts(["floating"]),
10840
10907
  navInteraction: "pill-background",
10841
10908
  surface: "floating",
10842
- requiresFloatingLayout: true
10909
+ navTypography: "plain"
10910
+ },
10911
+ {
10912
+ id: asHeaderStyleId("split-glass"),
10913
+ label: "Split Glass",
10914
+ description: "Logo floats independently while the navigation sits in a glass rail.",
10915
+ supportedLayoutIds: supportedLayouts(["floating"]),
10916
+ navInteraction: "glass-backed",
10917
+ surface: "floating",
10918
+ navTypography: "quiet-caps"
10919
+ },
10920
+ {
10921
+ id: asHeaderStyleId("split-pill"),
10922
+ label: "Split Pill",
10923
+ description: "Logo floats independently with a soft pill-backed navigation rail.",
10924
+ supportedLayoutIds: supportedLayouts(["floating"]),
10925
+ navInteraction: "pill-background",
10926
+ surface: "floating",
10927
+ navTypography: "heading"
10843
10928
  }
10844
10929
  ];
10845
10930
  var headerLayoutsById = new Map(
@@ -10853,13 +10938,14 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10853
10938
  asHeaderLayoutId("classic"),
10854
10939
  headerStyleRepairChain([
10855
10940
  "minimal",
10941
+ "glass",
10856
10942
  "fine-line",
10857
10943
  "soft-bar",
10858
10944
  "pill-nav",
10859
10945
  "brand-bar",
10860
10946
  "brand-underline",
10861
10947
  "brand-pill",
10862
- "editorial-line",
10948
+ "serif-line",
10863
10949
  "flat-tabs"
10864
10950
  ])
10865
10951
  ],
@@ -10872,19 +10958,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10872
10958
  "pill-nav",
10873
10959
  "brand-bar",
10874
10960
  "brand-pill",
10875
- "editorial-line",
10876
- "flat-tabs"
10877
- ])
10878
- ],
10879
- [
10880
- asHeaderLayoutId("editorial"),
10881
- headerStyleRepairChain([
10882
- "minimal",
10883
- "fine-line",
10884
- "soft-bar",
10885
- "brand-bar",
10886
- "brand-underline",
10887
- "editorial-line",
10961
+ "serif-line",
10888
10962
  "flat-tabs"
10889
10963
  ])
10890
10964
  ],
@@ -10893,6 +10967,8 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10893
10967
  headerStyleRepairChain([
10894
10968
  "glass",
10895
10969
  "minimal-surface",
10970
+ "split-glass",
10971
+ "split-pill",
10896
10972
  "soft-shell",
10897
10973
  "brand-pill"
10898
10974
  ])
@@ -10901,20 +10977,63 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10901
10977
  function headerStyleRepairChain(values) {
10902
10978
  return values.map(asHeaderStyleId);
10903
10979
  }
10904
- var headerStyleRepairOrder = /* @__PURE__ */ new Map([
10905
- [asHeaderStyleId("brand-bar"), headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])],
10906
- [asHeaderStyleId("brand-underline"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
10907
- [asHeaderStyleId("brand-pill"), headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])],
10908
- [asHeaderStyleId("pill-nav"), headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])],
10909
- [asHeaderStyleId("flat-tabs"), headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])],
10910
- [asHeaderStyleId("editorial-line"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
10911
- [asHeaderStyleId("glass"), headerStyleRepairChain(["glass", "minimal-surface", "minimal"])],
10912
- [asHeaderStyleId("soft-shell"), headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])],
10913
- [asHeaderStyleId("minimal-surface"), headerStyleRepairChain(["minimal-surface", "minimal"])],
10914
- [asHeaderStyleId("fine-line"), headerStyleRepairChain(["fine-line", "minimal"])],
10915
- [asHeaderStyleId("soft-bar"), headerStyleRepairChain(["soft-bar", "minimal"])],
10916
- [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
10917
- ]);
10980
+ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
10981
+ [
10982
+ [
10983
+ asHeaderStyleId("brand-bar"),
10984
+ headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
10985
+ ],
10986
+ [
10987
+ asHeaderStyleId("brand-underline"),
10988
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
10989
+ ],
10990
+ [
10991
+ asHeaderStyleId("brand-pill"),
10992
+ headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
10993
+ ],
10994
+ [
10995
+ asHeaderStyleId("pill-nav"),
10996
+ headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
10997
+ ],
10998
+ [
10999
+ asHeaderStyleId("flat-tabs"),
11000
+ headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
11001
+ ],
11002
+ [
11003
+ asHeaderStyleId("serif-line"),
11004
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
11005
+ ],
11006
+ [
11007
+ asHeaderStyleId("glass"),
11008
+ headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
11009
+ ],
11010
+ [
11011
+ asHeaderStyleId("soft-shell"),
11012
+ headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
11013
+ ],
11014
+ [
11015
+ asHeaderStyleId("minimal-surface"),
11016
+ headerStyleRepairChain(["minimal-surface", "minimal"])
11017
+ ],
11018
+ [
11019
+ asHeaderStyleId("split-glass"),
11020
+ headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
11021
+ ],
11022
+ [
11023
+ asHeaderStyleId("split-pill"),
11024
+ headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
11025
+ ],
11026
+ [
11027
+ asHeaderStyleId("fine-line"),
11028
+ headerStyleRepairChain(["fine-line", "minimal"])
11029
+ ],
11030
+ [
11031
+ asHeaderStyleId("soft-bar"),
11032
+ headerStyleRepairChain(["soft-bar", "minimal"])
11033
+ ],
11034
+ [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
11035
+ ]
11036
+ );
10918
11037
  var legacyHeaderLookAliases = [
10919
11038
  {
10920
11039
  lookId: asHeaderLookId("clean-base"),
@@ -10931,10 +11050,10 @@ var legacyHeaderLookAliases = [
10931
11050
  }
10932
11051
  },
10933
11052
  {
10934
- lookId: asHeaderLookId("editorial-line"),
11053
+ lookId: asHeaderLookId("serif-line"),
10935
11054
  selection: {
10936
- layoutId: asHeaderLayoutId("editorial"),
10937
- styleId: asHeaderStyleId("editorial-line")
11055
+ layoutId: asHeaderLayoutId("centered"),
11056
+ styleId: asHeaderStyleId("serif-line")
10938
11057
  }
10939
11058
  },
10940
11059
  {
@@ -10973,9 +11092,7 @@ var legacyHeaderLookAliases = [
10973
11092
  }
10974
11093
  }
10975
11094
  ];
10976
- var legacyHeaderLookAliasesById = new Map(
10977
- legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
10978
- );
11095
+ var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
10979
11096
  function getHeaderStyle(id) {
10980
11097
  return headerStylesById.get(id) ?? null;
10981
11098
  }
@@ -10993,10 +11110,12 @@ function resolveLegacyHeaderLookAlias(lookId) {
10993
11110
  return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
10994
11111
  }
10995
11112
  function getCompatibleHeaderStyleIds(layoutId) {
10996
- return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
10997
- const style = getHeaderStyleOrThrow(styleId);
10998
- return isHeaderStyleCompatibleWithLayout(style, layoutId);
10999
- });
11113
+ return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
11114
+ (styleId) => {
11115
+ const style = getHeaderStyleOrThrow(styleId);
11116
+ return isHeaderStyleCompatibleWithLayout(style, layoutId);
11117
+ }
11118
+ );
11000
11119
  }
11001
11120
  function solidBrandHeader(theme) {
11002
11121
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
@@ -11027,8 +11146,14 @@ function solidBrandHeader(theme) {
11027
11146
  borderRadius: "none",
11028
11147
  effects: {
11029
11148
  hover: [
11030
- { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
11031
- { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
11149
+ {
11150
+ effectId: "text-color-change",
11151
+ options: { hoverColorToken: "secondary" }
11152
+ },
11153
+ {
11154
+ effectId: "nav-underline",
11155
+ options: { style: "grow", colorToken: "secondary" }
11156
+ }
11032
11157
  ]
11033
11158
  }
11034
11159
  },
@@ -11084,10 +11209,10 @@ function cleanBaseHeader(theme) {
11084
11209
  ctaGap: "default"
11085
11210
  };
11086
11211
  }
11087
- function editorialLineHeader(theme) {
11212
+ function serifLineHeader(theme) {
11088
11213
  return {
11089
11214
  ...baseHeader(theme),
11090
- variant: "editorial",
11215
+ variant: "centered",
11091
11216
  positioning: "sticky",
11092
11217
  shrinkOnScroll: false,
11093
11218
  background: {
@@ -11256,27 +11381,27 @@ var headerLookCatalog = [
11256
11381
  compile: solidBrandHeader
11257
11382
  },
11258
11383
  {
11259
- id: asHeaderLookId("editorial-line"),
11260
- label: "Editorial line",
11261
- visualTreatment: "light-editorial",
11384
+ id: asHeaderLookId("serif-line"),
11385
+ label: "Serif line",
11386
+ visualTreatment: "light-serif",
11262
11387
  layoutBehavior: "sticky",
11263
11388
  configuration: {
11264
- structure: "editorial-stack",
11265
- treatment: "light-editorial",
11389
+ structure: "centered-stack",
11390
+ treatment: "light-serif",
11266
11391
  behavior: "sticky"
11267
11392
  },
11268
11393
  openingRequirement: "none",
11269
11394
  maxRecommendedNavItems: 6,
11270
- compile: editorialLineHeader
11395
+ compile: serifLineHeader
11271
11396
  },
11272
11397
  {
11273
11398
  id: asHeaderLookId("centered-calm"),
11274
11399
  label: "Centered calm",
11275
- visualTreatment: "light-editorial",
11400
+ visualTreatment: "light-serif",
11276
11401
  layoutBehavior: "normal-flow",
11277
11402
  configuration: {
11278
11403
  structure: "centered-stack",
11279
- treatment: "light-editorial",
11404
+ treatment: "light-serif",
11280
11405
  behavior: "normal-flow"
11281
11406
  },
11282
11407
  openingRequirement: "none",
@@ -11822,12 +11947,16 @@ var expressiveUnderlineInputs = {
11822
11947
  }
11823
11948
  };
11824
11949
  function uniqueContentFrameKinds() {
11825
- const kinds = [...new Set(
11826
- generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
11827
- )];
11950
+ const kinds = [
11951
+ ...new Set(
11952
+ generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
11953
+ )
11954
+ ];
11828
11955
  const firstKind = kinds[0];
11829
11956
  if (!firstKind) {
11830
- throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
11957
+ throw new Error(
11958
+ "Expected generated design option catalog to expose at least one content frame kind."
11959
+ );
11831
11960
  }
11832
11961
  return [firstKind, ...kinds.slice(1)];
11833
11962
  }
@@ -11837,7 +11966,9 @@ function defineCuratedSiteStyle(input) {
11837
11966
  const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
11838
11967
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
11839
11968
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
11840
- if (!typographyPresetChoices.some((choice) => choice.id === defaultTypographyPresetId)) {
11969
+ if (!typographyPresetChoices.some(
11970
+ (choice) => choice.id === defaultTypographyPresetId
11971
+ )) {
11841
11972
  throw new Error(
11842
11973
  `Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
11843
11974
  );
@@ -11848,9 +11979,13 @@ function defineCuratedSiteStyle(input) {
11848
11979
  description: input.description,
11849
11980
  generationBrief: input.generationBrief,
11850
11981
  selectionKeywordRules: input.selectionKeywordRules ?? [],
11851
- siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
11982
+ siteCreatorSelection: input.siteCreatorSelection ?? {
11983
+ kind: "explicit_only"
11984
+ },
11852
11985
  template: {
11853
- id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
11986
+ id: asDesignSystemTemplateId(
11987
+ `template:${input.id.replace("site-style:", "")}`
11988
+ ),
11854
11989
  name: input.name,
11855
11990
  version: 1,
11856
11991
  tokenRecipes: input.tokenRecipes,
@@ -11868,13 +12003,17 @@ function defineCuratedSiteStyle(input) {
11868
12003
  } : inferredHeaderCuration.defaultHeaderSelection,
11869
12004
  recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
11870
12005
  recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
11871
- discouragedHeaderSelections: input.discouragedHeaderSelections?.map((selection) => ({
11872
- layoutId: asHeaderLayoutId(selection.layoutId),
11873
- styleId: asHeaderStyleId(selection.styleId)
11874
- })),
12006
+ discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
12007
+ (selection) => ({
12008
+ layoutId: asHeaderLayoutId(selection.layoutId),
12009
+ styleId: asHeaderStyleId(selection.styleId)
12010
+ })
12011
+ ),
11875
12012
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
11876
12013
  // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
11877
- recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
12014
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
12015
+ asFooterLookId
12016
+ ),
11878
12017
  buttonPersonalityChoices: input.buttonPersonalityChoices,
11879
12018
  paletteVariantChoices: input.paletteVariantChoices,
11880
12019
  typographyPresetChoices,
@@ -11893,7 +12032,7 @@ function headerLayoutChoice(id, note) {
11893
12032
  function headerStyleChoice(id, note) {
11894
12033
  return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
11895
12034
  }
11896
- function headerLayoutRecordKey(id) {
12035
+ function unbrandHeaderLayoutId(id) {
11897
12036
  return id;
11898
12037
  }
11899
12038
  function uniqueHeaderLayoutChoices(choices) {
@@ -11916,7 +12055,9 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
11916
12055
  return [first, ...choices.slice(1)];
11917
12056
  }
11918
12057
  function inferHeaderCurationFromLegacyLooks(lookIds) {
11919
- const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter((selection) => Boolean(selection));
12058
+ const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
12059
+ (selection) => Boolean(selection)
12060
+ );
11920
12061
  const defaultHeaderSelection = selections[0] ?? {
11921
12062
  layoutId: asHeaderLayoutId("classic"),
11922
12063
  styleId: asHeaderStyleId("minimal")
@@ -11927,10 +12068,7 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
11927
12068
  const stylesByLayout = {};
11928
12069
  for (const layoutChoice of layoutChoices) {
11929
12070
  const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
11930
- stylesByLayout[headerLayoutRecordKey(layoutChoice.id)] = nonEmptyHeaderStyleChoices(
11931
- styleChoices,
11932
- layoutChoice.id
11933
- );
12071
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
11934
12072
  }
11935
12073
  return {
11936
12074
  defaultHeaderSelection,
@@ -11985,7 +12123,11 @@ var curatedSiteStyles = [
11985
12123
  motion: "subtle"
11986
12124
  },
11987
12125
  compositionBudget: quietBudget,
11988
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12126
+ recommendedHeaderLookIds: [
12127
+ "centered-calm",
12128
+ "minimal-transparent",
12129
+ "clean-base"
12130
+ ],
11989
12131
  buttonPersonalityChoices: [
11990
12132
  buttonChoice("soft-pill"),
11991
12133
  buttonChoice("pebble"),
@@ -12014,7 +12156,11 @@ var curatedSiteStyles = [
12014
12156
  motion: "subtle"
12015
12157
  },
12016
12158
  compositionBudget: balancedBudget,
12017
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12159
+ recommendedHeaderLookIds: [
12160
+ "practical-utility",
12161
+ "brand-solid",
12162
+ "clean-base"
12163
+ ],
12018
12164
  buttonPersonalityChoices: [
12019
12165
  buttonChoice("confident-chip"),
12020
12166
  buttonChoice("soft-pill"),
@@ -12041,7 +12187,11 @@ var curatedSiteStyles = [
12041
12187
  motion: "subtle"
12042
12188
  },
12043
12189
  compositionBudget: balancedBudget,
12044
- recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
12190
+ recommendedHeaderLookIds: [
12191
+ "serif-line",
12192
+ "minimal-transparent",
12193
+ "centered-calm"
12194
+ ],
12045
12195
  buttonPersonalityChoices: [
12046
12196
  buttonChoice("editorial-link"),
12047
12197
  buttonChoice("soft-pill"),
@@ -12069,7 +12219,11 @@ var curatedSiteStyles = [
12069
12219
  motion: "expressive"
12070
12220
  },
12071
12221
  compositionBudget: balancedBudget,
12072
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12222
+ recommendedHeaderLookIds: [
12223
+ "brand-solid",
12224
+ "practical-utility",
12225
+ "clean-base"
12226
+ ],
12073
12227
  buttonPersonalityChoices: [
12074
12228
  buttonChoice("pebble"),
12075
12229
  buttonChoice("brushed-wash"),
@@ -12086,7 +12240,10 @@ var curatedSiteStyles = [
12086
12240
  name: "Quiet Luxury",
12087
12241
  description: "Minimal, confident, and refined for premium experiences and private services.",
12088
12242
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
12089
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
12243
+ siteCreatorSelection: {
12244
+ kind: "site_creator_keyword_heuristic",
12245
+ priority: 20
12246
+ },
12090
12247
  selectionKeywordRules: [
12091
12248
  { kind: "word", value: "luxury" },
12092
12249
  { kind: "word", value: "premium" },
@@ -12104,7 +12261,11 @@ var curatedSiteStyles = [
12104
12261
  motion: "none"
12105
12262
  },
12106
12263
  compositionBudget: quietBudget,
12107
- recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
12264
+ recommendedHeaderLookIds: [
12265
+ "minimal-transparent",
12266
+ "serif-line",
12267
+ "clean-base"
12268
+ ],
12108
12269
  buttonPersonalityChoices: [
12109
12270
  buttonChoice("editorial-link"),
12110
12271
  buttonChoice("confident-chip"),
@@ -12140,7 +12301,11 @@ var curatedSiteStyles = [
12140
12301
  motion: "none"
12141
12302
  },
12142
12303
  compositionBudget: quietBudget,
12143
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12304
+ recommendedHeaderLookIds: [
12305
+ "practical-utility",
12306
+ "brand-solid",
12307
+ "clean-base"
12308
+ ],
12144
12309
  buttonPersonalityChoices: [
12145
12310
  buttonChoice("confident-chip"),
12146
12311
  buttonChoice("pebble"),
@@ -12167,7 +12332,11 @@ var curatedSiteStyles = [
12167
12332
  motion: "subtle"
12168
12333
  },
12169
12334
  compositionBudget: balancedBudget,
12170
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12335
+ recommendedHeaderLookIds: [
12336
+ "centered-calm",
12337
+ "minimal-transparent",
12338
+ "clean-base"
12339
+ ],
12171
12340
  buttonPersonalityChoices: [
12172
12341
  buttonChoice("soft-pill"),
12173
12342
  buttonChoice("pebble"),
@@ -12184,7 +12353,10 @@ var curatedSiteStyles = [
12184
12353
  name: "Quiet Practice",
12185
12354
  description: "Grounded, calm, and practical for small appointment-first practices.",
12186
12355
  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.",
12187
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
12356
+ siteCreatorSelection: {
12357
+ kind: "site_creator_keyword_heuristic",
12358
+ priority: 30
12359
+ },
12188
12360
  selectionKeywordRules: [
12189
12361
  { kind: "substring", value: "massage" },
12190
12362
  { kind: "word", value: "bodywork" },
@@ -12205,7 +12377,11 @@ var curatedSiteStyles = [
12205
12377
  motion: "subtle"
12206
12378
  },
12207
12379
  compositionBudget: quietBudget,
12208
- recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
12380
+ recommendedHeaderLookIds: [
12381
+ "practical-utility",
12382
+ "clean-base",
12383
+ "centered-calm"
12384
+ ],
12209
12385
  buttonPersonalityChoices: [
12210
12386
  buttonChoice("pebble"),
12211
12387
  buttonChoice("soft-pill"),
@@ -12222,7 +12398,10 @@ var curatedSiteStyles = [
12222
12398
  name: "Personal Retreat Journal",
12223
12399
  description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
12224
12400
  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.",
12225
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
12401
+ siteCreatorSelection: {
12402
+ kind: "site_creator_keyword_heuristic",
12403
+ priority: 40
12404
+ },
12226
12405
  selectionKeywordRules: [
12227
12406
  { kind: "substring", value: "retreat" },
12228
12407
  { kind: "phrase", value: "solo practitioner" },
@@ -12242,7 +12421,11 @@ var curatedSiteStyles = [
12242
12421
  motion: "subtle"
12243
12422
  },
12244
12423
  compositionBudget: balancedBudget,
12245
- recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
12424
+ recommendedHeaderLookIds: [
12425
+ "serif-line",
12426
+ "centered-calm",
12427
+ "minimal-transparent"
12428
+ ],
12246
12429
  buttonPersonalityChoices: [
12247
12430
  buttonChoice("editorial-link"),
12248
12431
  buttonChoice("soft-pill"),
@@ -12259,7 +12442,10 @@ var curatedSiteStyles = [
12259
12442
  name: "Tactile Workshop",
12260
12443
  description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
12261
12444
  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.",
12262
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
12445
+ siteCreatorSelection: {
12446
+ kind: "site_creator_keyword_heuristic",
12447
+ priority: 50
12448
+ },
12263
12449
  selectionKeywordRules: [
12264
12450
  { kind: "substring", value: "ceramic" },
12265
12451
  { kind: "word", value: "pottery" },
@@ -12279,8 +12465,15 @@ var curatedSiteStyles = [
12279
12465
  motion: "subtle"
12280
12466
  },
12281
12467
  compositionBudget: balancedBudget,
12282
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12283
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12468
+ recommendedHeaderLookIds: [
12469
+ "brand-solid",
12470
+ "practical-utility",
12471
+ "clean-base"
12472
+ ],
12473
+ recommendedFooterLookIds: [
12474
+ "site-footer-brand-two-band",
12475
+ "footer-muted-grounding"
12476
+ ],
12284
12477
  buttonPersonalityChoices: [
12285
12478
  buttonChoice("pebble"),
12286
12479
  buttonChoice("confident-chip"),
@@ -12299,7 +12492,10 @@ var curatedSiteStyles = [
12299
12492
  name: "Soft Earth",
12300
12493
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
12301
12494
  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.",
12302
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 45 },
12495
+ siteCreatorSelection: {
12496
+ kind: "site_creator_keyword_heuristic",
12497
+ priority: 45
12498
+ },
12303
12499
  selectionKeywordRules: [
12304
12500
  { kind: "word", value: "meditation" },
12305
12501
  { kind: "word", value: "wellbeing" },
@@ -12375,8 +12571,15 @@ var curatedSiteStyles = [
12375
12571
  "faq-soft-earth-two-column",
12376
12572
  "contact-form-panel"
12377
12573
  ],
12378
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "editorial-line"],
12379
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
12574
+ recommendedHeaderLookIds: [
12575
+ "centered-calm",
12576
+ "minimal-transparent",
12577
+ "serif-line"
12578
+ ],
12579
+ recommendedFooterLookIds: [
12580
+ "footer-muted-grounding",
12581
+ "site-footer-brand-two-band"
12582
+ ],
12380
12583
  buttonPersonalityChoices: [
12381
12584
  buttonChoice("earth-pill"),
12382
12585
  buttonChoice("soft-pill"),
@@ -12395,7 +12598,10 @@ var curatedSiteStyles = [
12395
12598
  name: "Bold Launch",
12396
12599
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
12397
12600
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
12398
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
12601
+ siteCreatorSelection: {
12602
+ kind: "site_creator_keyword_heuristic",
12603
+ priority: 10
12604
+ },
12399
12605
  selectionKeywordRules: [
12400
12606
  { kind: "substring", value: "launch" },
12401
12607
  { kind: "substring", value: "campaign" },
@@ -12414,7 +12620,11 @@ var curatedSiteStyles = [
12414
12620
  motion: "expressive"
12415
12621
  },
12416
12622
  compositionBudget: expressiveBudget,
12417
- recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
12623
+ recommendedHeaderLookIds: [
12624
+ "transparent-overlay",
12625
+ "floating-glass",
12626
+ "brand-solid"
12627
+ ],
12418
12628
  buttonPersonalityChoices: [
12419
12629
  buttonChoice("ink-stamp"),
12420
12630
  buttonChoice("confident-chip"),
@@ -12465,8 +12675,15 @@ var curatedSiteStyles = [
12465
12675
  "testimonials-accent-quote-proof",
12466
12676
  "contact-form-brand-depth-card"
12467
12677
  ],
12468
- recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
12469
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12678
+ recommendedHeaderLookIds: [
12679
+ "brand-solid",
12680
+ "transparent-overlay",
12681
+ "practical-utility"
12682
+ ],
12683
+ recommendedFooterLookIds: [
12684
+ "site-footer-brand-two-band",
12685
+ "footer-muted-grounding"
12686
+ ],
12470
12687
  buttonPersonalityChoices: [
12471
12688
  buttonChoice("showtime-pill"),
12472
12689
  buttonChoice("confident-chip"),
@@ -19871,10 +20088,7 @@ var headerRootClassTransform = {
19871
20088
  const navContainerType = header?.navContainer?.type ?? "none";
19872
20089
  const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
19873
20090
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
19874
- const classes = [
19875
- config.base,
19876
- backgroundClass
19877
- ];
20091
+ const classes = [config.base, backgroundClass];
19878
20092
  if (!hasContainedNav) {
19879
20093
  if (config.blur) classes.push(config.blur);
19880
20094
  if (config.blurSupport) classes.push(config.blurSupport);
@@ -19889,7 +20103,12 @@ var headerRootClassTransform = {
19889
20103
  if (shrinkOnScroll && (positioning === "sticky" || positioning === "fixed")) {
19890
20104
  classes.push(config.shrink);
19891
20105
  }
19892
- const VALID_VARIANTS = ["classic", "centered", "transparent", "floating", "editorial"];
20106
+ const VALID_VARIANTS = [
20107
+ "classic",
20108
+ "centered",
20109
+ "transparent",
20110
+ "floating"
20111
+ ];
19893
20112
  const variant = header?.variant;
19894
20113
  if (variant && VALID_VARIANTS.includes(variant)) {
19895
20114
  classes.push(`header-variant-${variant}`);
@@ -20510,15 +20729,21 @@ var mobileCta = ctaButton({
20510
20729
  var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
20511
20730
  {
20512
20731
  type: "div",
20513
- props: { className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20732
+ props: {
20733
+ className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20734
+ }
20514
20735
  },
20515
20736
  {
20516
20737
  type: "div",
20517
- props: { className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20738
+ props: {
20739
+ className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20740
+ }
20518
20741
  },
20519
20742
  {
20520
20743
  type: "div",
20521
- props: { className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20744
+ props: {
20745
+ className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20746
+ }
20522
20747
  }
20523
20748
  ]);
20524
20749
  var mobileToggleButton = {
@@ -20701,28 +20926,6 @@ var floatingLayout = inline(
20701
20926
  ],
20702
20927
  when("$root.theme.header.variant", { equals: "floating" })
20703
20928
  );
20704
- var editorialLayout = stack(
20705
- {
20706
- gap: "md",
20707
- align: "center",
20708
- className: bindProp("$root.theme.header.maxWidth", {
20709
- transforms: pipe(
20710
- tx("layout.maxWidthClass", {
20711
- base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20712
- })
20713
- ),
20714
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20715
- })
20716
- },
20717
- [
20718
- centeredLogoRow,
20719
- createNavRow(
20720
- `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
20721
- "center"
20722
- )
20723
- ],
20724
- when("$root.theme.header.variant", { equals: "editorial" })
20725
- );
20726
20929
  var headerLayout = headerSection(
20727
20930
  {
20728
20931
  background: bindProp("$root.theme.header", {
@@ -20736,10 +20939,7 @@ var headerLayout = headerSection(
20736
20939
  }),
20737
20940
  style: bindProp("$root.theme.header", {
20738
20941
  transforms: pipe(tx("layout.headerRootStyle")),
20739
- fallback: mergeStyles(
20740
- textColorStyle("text"),
20741
- borderColorStyle("border")
20742
- )
20942
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
20743
20943
  })
20744
20944
  },
20745
20945
  [
@@ -20748,7 +20948,6 @@ var headerLayout = headerSection(
20748
20948
  centeredLayout,
20749
20949
  transparentLayout,
20750
20950
  floatingLayout,
20751
- editorialLayout,
20752
20951
  mobileOverlay
20753
20952
  ],
20754
20953
  props({