@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
@@ -9833,8 +9833,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
9833
9833
  colorToken: themeColorTokenSchema.nullable().optional()
9834
9834
  });
9835
9835
  var proseLinkUnderlineStyleSchema = z21.enum(["solid", "dotted", "dashed"]);
9836
- var proseLinkUnderlineThicknessSchema = z21.enum(["auto", "fromFont", "thin", "medium", "thick"]);
9837
- var proseLinkUnderlineOffsetSchema = z21.enum(["auto", "tight", "normal", "loose"]);
9836
+ var proseLinkUnderlineThicknessSchema = z21.enum([
9837
+ "auto",
9838
+ "fromFont",
9839
+ "thin",
9840
+ "medium",
9841
+ "thick"
9842
+ ]);
9843
+ var proseLinkUnderlineOffsetSchema = z21.enum([
9844
+ "auto",
9845
+ "tight",
9846
+ "normal",
9847
+ "loose"
9848
+ ]);
9838
9849
  var proseLinkStyleSchema = z21.object({
9839
9850
  colorToken: themeColorTokenSchema.optional(),
9840
9851
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -9845,7 +9856,14 @@ var proseLinkStyleSchema = z21.object({
9845
9856
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
9846
9857
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
9847
9858
  });
9848
- var semanticSpacingSchema = z21.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
9859
+ var semanticSpacingSchema = z21.enum([
9860
+ "none",
9861
+ "compact",
9862
+ "cozy",
9863
+ "medium",
9864
+ "comfortable",
9865
+ "spacious"
9866
+ ]);
9849
9867
  var boxRoundedSchema = z21.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
9850
9868
  var boxBackgroundOverlaySchema = z21.object({
9851
9869
  type: z21.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -9989,9 +10007,17 @@ var inputStyle = z21.object({
9989
10007
  focus: z21.enum(["glow", "ring", "underline"]),
9990
10008
  label: z21.enum(["inside", "above"])
9991
10009
  });
9992
- var headerVariant = z21.enum(["classic", "centered", "transparent", "floating", "editorial"]);
10010
+ var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"]);
9993
10011
  var headerPositioning = z21.enum(["static", "sticky", "fixed"]);
9994
- var headerNavStyle = z21.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
10012
+ var headerNavStyle = z21.enum([
10013
+ "minimal",
10014
+ "underline",
10015
+ "underline-grow",
10016
+ "capsule",
10017
+ "scale",
10018
+ "frosted",
10019
+ "solid"
10020
+ ]);
9995
10021
  var navFontWeight = z21.enum(["regular", "medium", "semibold", "bold"]);
9996
10022
  var headerMaxWidth = z21.enum(["container", "full"]);
9997
10023
  var headerContainerSchema = z21.object({
@@ -10039,8 +10065,22 @@ var dropdownStyleSchema = z21.object({
10039
10065
  textSize: z21.enum(["xs", "sm", "base", "lg"]).optional()
10040
10066
  // optional = no override (browser default)
10041
10067
  }).optional();
10042
- var headerCtaGapSchema = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10043
- var headerCtaTreatmentSchema = z21.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
10068
+ var headerCtaGapSchema = z21.enum([
10069
+ "none",
10070
+ "tight",
10071
+ "compact",
10072
+ "default",
10073
+ "relaxed",
10074
+ "spacious"
10075
+ ]);
10076
+ var headerCtaTreatmentSchema = z21.enum([
10077
+ "default",
10078
+ "primary",
10079
+ "secondary",
10080
+ "inverted",
10081
+ "outline",
10082
+ "ghost"
10083
+ ]);
10044
10084
  var navContainerSchema = z21.object({
10045
10085
  type: z21.enum(["none", "pill", "glass"]).default("none"),
10046
10086
  tint: z21.string().nullable().optional(),
@@ -10095,7 +10135,14 @@ var footerMaxWidth = z21.enum(["container", "full"]);
10095
10135
  var footerMode = z21.enum(["default", "blocks", "default+blocks", "none"]);
10096
10136
  var footerNavLayoutMode = z21.enum(["stack", "inline", "inline-wrap"]);
10097
10137
  var footerNavLayoutAlign = z21.enum(["start", "center", "end", "space-between"]);
10098
- var footerSpacing = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
10138
+ var footerSpacing = z21.enum([
10139
+ "none",
10140
+ "tight",
10141
+ "compact",
10142
+ "default",
10143
+ "relaxed",
10144
+ "spacious"
10145
+ ]);
10099
10146
  var footerLogoPlacement = z21.enum(["left", "right", "above", "below"]);
10100
10147
  var footerLogoSize = z21.enum(["sm", "md", "lg", "xl"]);
10101
10148
  var footerLogoMaxHeight = z21.enum(["sm", "md", "lg", "xl"]);
@@ -10160,7 +10207,12 @@ var footerSchema = z21.object({
10160
10207
  logo: footerLogoSchema.optional(),
10161
10208
  bottomBar: footerBottomBarSchema.optional()
10162
10209
  });
10163
- var containerPaddingPresetSchema = z21.enum(["tight", "compact", "default", "relaxed"]);
10210
+ var containerPaddingPresetSchema = z21.enum([
10211
+ "tight",
10212
+ "compact",
10213
+ "default",
10214
+ "relaxed"
10215
+ ]);
10164
10216
  var layoutSchema = z21.object({
10165
10217
  containerPadding: z21.object({
10166
10218
  mobile: containerPaddingPresetSchema.optional(),
@@ -10168,8 +10220,24 @@ var layoutSchema = z21.object({
10168
10220
  desktop: containerPaddingPresetSchema.optional()
10169
10221
  }).optional()
10170
10222
  }).optional();
10171
- var heroTypographySizeSchema = z21.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
10172
- var heroTypographyLineHeightSchema = z21.enum(["tight", "snug", "normal", "relaxed"]);
10223
+ var heroTypographySizeSchema = z21.enum([
10224
+ "sm",
10225
+ "base",
10226
+ "lg",
10227
+ "xl",
10228
+ "2xl",
10229
+ "3xl",
10230
+ "4xl",
10231
+ "5xl",
10232
+ "6xl",
10233
+ "editorial"
10234
+ ]);
10235
+ var heroTypographyLineHeightSchema = z21.enum([
10236
+ "tight",
10237
+ "snug",
10238
+ "normal",
10239
+ "relaxed"
10240
+ ]);
10173
10241
  var heroResponsiveTypographySchema = z21.object({
10174
10242
  headlineSize: heroTypographySizeSchema.optional(),
10175
10243
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -10723,16 +10791,6 @@ var headerLayoutCatalog = [
10723
10791
  maxRecommendedNavItems: 5,
10724
10792
  allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
10725
10793
  },
10726
- {
10727
- id: asHeaderLayoutId("editorial"),
10728
- label: "Editorial",
10729
- description: "A composed, magazine-like stacked header treatment.",
10730
- structure: "editorial-stack",
10731
- variant: "editorial",
10732
- defaultPositioning: "static",
10733
- shrinkOnScroll: false,
10734
- maxRecommendedNavItems: 6
10735
- },
10736
10794
  {
10737
10795
  id: asHeaderLayoutId("floating"),
10738
10796
  label: "Floating",
@@ -10753,17 +10811,19 @@ var headerStyleCatalog = [
10753
10811
  id: asHeaderStyleId("minimal"),
10754
10812
  label: "Minimal",
10755
10813
  description: "Quiet surface with simple color-change navigation.",
10756
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10814
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10757
10815
  navInteraction: "color-change",
10758
- surface: "neutral"
10816
+ surface: "neutral",
10817
+ navTypography: "plain"
10759
10818
  },
10760
10819
  {
10761
10820
  id: asHeaderStyleId("fine-line"),
10762
10821
  label: "Fine Line",
10763
10822
  description: "Light surface with a crisp lower rule and underline hover.",
10764
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10823
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10765
10824
  navInteraction: "underline-grow",
10766
- surface: "bordered"
10825
+ surface: "bordered",
10826
+ navTypography: "plain"
10767
10827
  },
10768
10828
  {
10769
10829
  id: asHeaderStyleId("soft-bar"),
@@ -10771,7 +10831,8 @@ var headerStyleCatalog = [
10771
10831
  description: "Soft tinted surface with gentle pill hover states.",
10772
10832
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10773
10833
  navInteraction: "pill-background",
10774
- surface: "soft"
10834
+ surface: "soft",
10835
+ navTypography: "plain"
10775
10836
  },
10776
10837
  {
10777
10838
  id: asHeaderStyleId("pill-nav"),
@@ -10779,23 +10840,26 @@ var headerStyleCatalog = [
10779
10840
  description: "A calm pill navigation rail over a neutral header.",
10780
10841
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10781
10842
  navInteraction: "pill-background",
10782
- surface: "soft"
10843
+ surface: "soft",
10844
+ navTypography: "plain"
10783
10845
  },
10784
10846
  {
10785
10847
  id: asHeaderStyleId("brand-bar"),
10786
10848
  label: "Brand Bar",
10787
10849
  description: "Solid brand surface with high-contrast navigation.",
10788
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10850
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10789
10851
  navInteraction: "color-change",
10790
- surface: "brand-solid"
10852
+ surface: "brand-solid",
10853
+ navTypography: "brand-caps"
10791
10854
  },
10792
10855
  {
10793
10856
  id: asHeaderStyleId("brand-underline"),
10794
10857
  label: "Brand Underline",
10795
10858
  description: "Brand surface with underline-grow navigation.",
10796
- supportedLayoutIds: supportedLayouts(["classic", "editorial"]),
10859
+ supportedLayoutIds: supportedLayouts(["classic"]),
10797
10860
  navInteraction: "underline-grow",
10798
- surface: "brand-solid"
10861
+ surface: "brand-solid",
10862
+ navTypography: "brand-caps"
10799
10863
  },
10800
10864
  {
10801
10865
  id: asHeaderStyleId("brand-pill"),
@@ -10803,41 +10867,44 @@ var headerStyleCatalog = [
10803
10867
  description: "Solid brand surface with rounded active and hover states.",
10804
10868
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
10805
10869
  navInteraction: "pill-background",
10806
- surface: "brand-solid"
10870
+ surface: "brand-solid",
10871
+ navTypography: "brand-caps"
10807
10872
  },
10808
10873
  {
10809
- id: asHeaderStyleId("editorial-line"),
10810
- label: "Editorial Line",
10874
+ id: asHeaderStyleId("serif-line"),
10875
+ label: "Serif Line",
10811
10876
  description: "Typographic logo treatment with understated underline navigation.",
10812
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10877
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10813
10878
  navInteraction: "underline-grow",
10814
- surface: "bordered"
10879
+ surface: "bordered",
10880
+ navTypography: "heading"
10815
10881
  },
10816
10882
  {
10817
10883
  id: asHeaderStyleId("flat-tabs"),
10818
10884
  label: "Flat Tabs",
10819
10885
  description: "Flat block hover and active states with a Swiss utility feel.",
10820
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
10886
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
10821
10887
  navInteraction: "flat-block",
10822
- surface: "bordered"
10888
+ surface: "bordered",
10889
+ navTypography: "quiet-caps"
10823
10890
  },
10824
10891
  {
10825
10892
  id: asHeaderStyleId("glass"),
10826
10893
  label: "Glass",
10827
- description: "Floating translucent chrome with frosted navigation backing.",
10828
- supportedLayoutIds: supportedLayouts(["floating"]),
10894
+ description: "Translucent chrome with frosted navigation backing.",
10895
+ supportedLayoutIds: supportedLayouts(["classic", "floating"]),
10829
10896
  navInteraction: "glass-backed",
10830
10897
  surface: "floating",
10831
- requiresFloatingLayout: true
10898
+ navTypography: "plain"
10832
10899
  },
10833
10900
  {
10834
10901
  id: asHeaderStyleId("minimal-surface"),
10835
- label: "Minimal Surface",
10836
- description: "Floating chrome with a restrained translucent surface.",
10902
+ label: "Clear Split",
10903
+ description: "Floating logo with transparent navigation and no shared shell.",
10837
10904
  supportedLayoutIds: supportedLayouts(["floating"]),
10838
10905
  navInteraction: "color-change",
10839
10906
  surface: "floating",
10840
- requiresFloatingLayout: true
10907
+ navTypography: "plain"
10841
10908
  },
10842
10909
  {
10843
10910
  id: asHeaderStyleId("soft-shell"),
@@ -10846,7 +10913,25 @@ var headerStyleCatalog = [
10846
10913
  supportedLayoutIds: supportedLayouts(["floating"]),
10847
10914
  navInteraction: "pill-background",
10848
10915
  surface: "floating",
10849
- requiresFloatingLayout: true
10916
+ navTypography: "plain"
10917
+ },
10918
+ {
10919
+ id: asHeaderStyleId("split-glass"),
10920
+ label: "Split Glass",
10921
+ description: "Logo floats independently while the navigation sits in a glass rail.",
10922
+ supportedLayoutIds: supportedLayouts(["floating"]),
10923
+ navInteraction: "glass-backed",
10924
+ surface: "floating",
10925
+ navTypography: "quiet-caps"
10926
+ },
10927
+ {
10928
+ id: asHeaderStyleId("split-pill"),
10929
+ label: "Split Pill",
10930
+ description: "Logo floats independently with a soft pill-backed navigation rail.",
10931
+ supportedLayoutIds: supportedLayouts(["floating"]),
10932
+ navInteraction: "pill-background",
10933
+ surface: "floating",
10934
+ navTypography: "heading"
10850
10935
  }
10851
10936
  ];
10852
10937
  var headerLayoutsById = new Map(
@@ -10860,13 +10945,14 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10860
10945
  asHeaderLayoutId("classic"),
10861
10946
  headerStyleRepairChain([
10862
10947
  "minimal",
10948
+ "glass",
10863
10949
  "fine-line",
10864
10950
  "soft-bar",
10865
10951
  "pill-nav",
10866
10952
  "brand-bar",
10867
10953
  "brand-underline",
10868
10954
  "brand-pill",
10869
- "editorial-line",
10955
+ "serif-line",
10870
10956
  "flat-tabs"
10871
10957
  ])
10872
10958
  ],
@@ -10879,19 +10965,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10879
10965
  "pill-nav",
10880
10966
  "brand-bar",
10881
10967
  "brand-pill",
10882
- "editorial-line",
10883
- "flat-tabs"
10884
- ])
10885
- ],
10886
- [
10887
- asHeaderLayoutId("editorial"),
10888
- headerStyleRepairChain([
10889
- "minimal",
10890
- "fine-line",
10891
- "soft-bar",
10892
- "brand-bar",
10893
- "brand-underline",
10894
- "editorial-line",
10968
+ "serif-line",
10895
10969
  "flat-tabs"
10896
10970
  ])
10897
10971
  ],
@@ -10900,6 +10974,8 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10900
10974
  headerStyleRepairChain([
10901
10975
  "glass",
10902
10976
  "minimal-surface",
10977
+ "split-glass",
10978
+ "split-pill",
10903
10979
  "soft-shell",
10904
10980
  "brand-pill"
10905
10981
  ])
@@ -10908,20 +10984,63 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
10908
10984
  function headerStyleRepairChain(values) {
10909
10985
  return values.map(asHeaderStyleId);
10910
10986
  }
10911
- var headerStyleRepairOrder = /* @__PURE__ */ new Map([
10912
- [asHeaderStyleId("brand-bar"), headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])],
10913
- [asHeaderStyleId("brand-underline"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
10914
- [asHeaderStyleId("brand-pill"), headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])],
10915
- [asHeaderStyleId("pill-nav"), headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])],
10916
- [asHeaderStyleId("flat-tabs"), headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])],
10917
- [asHeaderStyleId("editorial-line"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
10918
- [asHeaderStyleId("glass"), headerStyleRepairChain(["glass", "minimal-surface", "minimal"])],
10919
- [asHeaderStyleId("soft-shell"), headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])],
10920
- [asHeaderStyleId("minimal-surface"), headerStyleRepairChain(["minimal-surface", "minimal"])],
10921
- [asHeaderStyleId("fine-line"), headerStyleRepairChain(["fine-line", "minimal"])],
10922
- [asHeaderStyleId("soft-bar"), headerStyleRepairChain(["soft-bar", "minimal"])],
10923
- [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
10924
- ]);
10987
+ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
10988
+ [
10989
+ [
10990
+ asHeaderStyleId("brand-bar"),
10991
+ headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
10992
+ ],
10993
+ [
10994
+ asHeaderStyleId("brand-underline"),
10995
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
10996
+ ],
10997
+ [
10998
+ asHeaderStyleId("brand-pill"),
10999
+ headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
11000
+ ],
11001
+ [
11002
+ asHeaderStyleId("pill-nav"),
11003
+ headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
11004
+ ],
11005
+ [
11006
+ asHeaderStyleId("flat-tabs"),
11007
+ headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
11008
+ ],
11009
+ [
11010
+ asHeaderStyleId("serif-line"),
11011
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
11012
+ ],
11013
+ [
11014
+ asHeaderStyleId("glass"),
11015
+ headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
11016
+ ],
11017
+ [
11018
+ asHeaderStyleId("soft-shell"),
11019
+ headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
11020
+ ],
11021
+ [
11022
+ asHeaderStyleId("minimal-surface"),
11023
+ headerStyleRepairChain(["minimal-surface", "minimal"])
11024
+ ],
11025
+ [
11026
+ asHeaderStyleId("split-glass"),
11027
+ headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
11028
+ ],
11029
+ [
11030
+ asHeaderStyleId("split-pill"),
11031
+ headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
11032
+ ],
11033
+ [
11034
+ asHeaderStyleId("fine-line"),
11035
+ headerStyleRepairChain(["fine-line", "minimal"])
11036
+ ],
11037
+ [
11038
+ asHeaderStyleId("soft-bar"),
11039
+ headerStyleRepairChain(["soft-bar", "minimal"])
11040
+ ],
11041
+ [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
11042
+ ]
11043
+ );
10925
11044
  var legacyHeaderLookAliases = [
10926
11045
  {
10927
11046
  lookId: asHeaderLookId("clean-base"),
@@ -10938,10 +11057,10 @@ var legacyHeaderLookAliases = [
10938
11057
  }
10939
11058
  },
10940
11059
  {
10941
- lookId: asHeaderLookId("editorial-line"),
11060
+ lookId: asHeaderLookId("serif-line"),
10942
11061
  selection: {
10943
- layoutId: asHeaderLayoutId("editorial"),
10944
- styleId: asHeaderStyleId("editorial-line")
11062
+ layoutId: asHeaderLayoutId("centered"),
11063
+ styleId: asHeaderStyleId("serif-line")
10945
11064
  }
10946
11065
  },
10947
11066
  {
@@ -10980,9 +11099,7 @@ var legacyHeaderLookAliases = [
10980
11099
  }
10981
11100
  }
10982
11101
  ];
10983
- var legacyHeaderLookAliasesById = new Map(
10984
- legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
10985
- );
11102
+ var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
10986
11103
  function getHeaderStyle(id) {
10987
11104
  return headerStylesById.get(id) ?? null;
10988
11105
  }
@@ -11000,10 +11117,12 @@ function resolveLegacyHeaderLookAlias(lookId) {
11000
11117
  return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
11001
11118
  }
11002
11119
  function getCompatibleHeaderStyleIds(layoutId) {
11003
- return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
11004
- const style = getHeaderStyleOrThrow(styleId);
11005
- return isHeaderStyleCompatibleWithLayout(style, layoutId);
11006
- });
11120
+ return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
11121
+ (styleId) => {
11122
+ const style = getHeaderStyleOrThrow(styleId);
11123
+ return isHeaderStyleCompatibleWithLayout(style, layoutId);
11124
+ }
11125
+ );
11007
11126
  }
11008
11127
  function solidBrandHeader(theme) {
11009
11128
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
@@ -11034,8 +11153,14 @@ function solidBrandHeader(theme) {
11034
11153
  borderRadius: "none",
11035
11154
  effects: {
11036
11155
  hover: [
11037
- { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
11038
- { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
11156
+ {
11157
+ effectId: "text-color-change",
11158
+ options: { hoverColorToken: "secondary" }
11159
+ },
11160
+ {
11161
+ effectId: "nav-underline",
11162
+ options: { style: "grow", colorToken: "secondary" }
11163
+ }
11039
11164
  ]
11040
11165
  }
11041
11166
  },
@@ -11091,10 +11216,10 @@ function cleanBaseHeader(theme) {
11091
11216
  ctaGap: "default"
11092
11217
  };
11093
11218
  }
11094
- function editorialLineHeader(theme) {
11219
+ function serifLineHeader(theme) {
11095
11220
  return {
11096
11221
  ...baseHeader(theme),
11097
- variant: "editorial",
11222
+ variant: "centered",
11098
11223
  positioning: "sticky",
11099
11224
  shrinkOnScroll: false,
11100
11225
  background: {
@@ -11263,27 +11388,27 @@ var headerLookCatalog = [
11263
11388
  compile: solidBrandHeader
11264
11389
  },
11265
11390
  {
11266
- id: asHeaderLookId("editorial-line"),
11267
- label: "Editorial line",
11268
- visualTreatment: "light-editorial",
11391
+ id: asHeaderLookId("serif-line"),
11392
+ label: "Serif line",
11393
+ visualTreatment: "light-serif",
11269
11394
  layoutBehavior: "sticky",
11270
11395
  configuration: {
11271
- structure: "editorial-stack",
11272
- treatment: "light-editorial",
11396
+ structure: "centered-stack",
11397
+ treatment: "light-serif",
11273
11398
  behavior: "sticky"
11274
11399
  },
11275
11400
  openingRequirement: "none",
11276
11401
  maxRecommendedNavItems: 6,
11277
- compile: editorialLineHeader
11402
+ compile: serifLineHeader
11278
11403
  },
11279
11404
  {
11280
11405
  id: asHeaderLookId("centered-calm"),
11281
11406
  label: "Centered calm",
11282
- visualTreatment: "light-editorial",
11407
+ visualTreatment: "light-serif",
11283
11408
  layoutBehavior: "normal-flow",
11284
11409
  configuration: {
11285
11410
  structure: "centered-stack",
11286
- treatment: "light-editorial",
11411
+ treatment: "light-serif",
11287
11412
  behavior: "normal-flow"
11288
11413
  },
11289
11414
  openingRequirement: "none",
@@ -11829,12 +11954,16 @@ var expressiveUnderlineInputs = {
11829
11954
  }
11830
11955
  };
11831
11956
  function uniqueContentFrameKinds() {
11832
- const kinds = [...new Set(
11833
- generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
11834
- )];
11957
+ const kinds = [
11958
+ ...new Set(
11959
+ generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
11960
+ )
11961
+ ];
11835
11962
  const firstKind = kinds[0];
11836
11963
  if (!firstKind) {
11837
- throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
11964
+ throw new Error(
11965
+ "Expected generated design option catalog to expose at least one content frame kind."
11966
+ );
11838
11967
  }
11839
11968
  return [firstKind, ...kinds.slice(1)];
11840
11969
  }
@@ -11844,7 +11973,9 @@ function defineCuratedSiteStyle(input) {
11844
11973
  const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
11845
11974
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
11846
11975
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
11847
- if (!typographyPresetChoices.some((choice) => choice.id === defaultTypographyPresetId)) {
11976
+ if (!typographyPresetChoices.some(
11977
+ (choice) => choice.id === defaultTypographyPresetId
11978
+ )) {
11848
11979
  throw new Error(
11849
11980
  `Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
11850
11981
  );
@@ -11855,9 +11986,13 @@ function defineCuratedSiteStyle(input) {
11855
11986
  description: input.description,
11856
11987
  generationBrief: input.generationBrief,
11857
11988
  selectionKeywordRules: input.selectionKeywordRules ?? [],
11858
- siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
11989
+ siteCreatorSelection: input.siteCreatorSelection ?? {
11990
+ kind: "explicit_only"
11991
+ },
11859
11992
  template: {
11860
- id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
11993
+ id: asDesignSystemTemplateId(
11994
+ `template:${input.id.replace("site-style:", "")}`
11995
+ ),
11861
11996
  name: input.name,
11862
11997
  version: 1,
11863
11998
  tokenRecipes: input.tokenRecipes,
@@ -11875,13 +12010,17 @@ function defineCuratedSiteStyle(input) {
11875
12010
  } : inferredHeaderCuration.defaultHeaderSelection,
11876
12011
  recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
11877
12012
  recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
11878
- discouragedHeaderSelections: input.discouragedHeaderSelections?.map((selection) => ({
11879
- layoutId: asHeaderLayoutId(selection.layoutId),
11880
- styleId: asHeaderStyleId(selection.styleId)
11881
- })),
12013
+ discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
12014
+ (selection) => ({
12015
+ layoutId: asHeaderLayoutId(selection.layoutId),
12016
+ styleId: asHeaderStyleId(selection.styleId)
12017
+ })
12018
+ ),
11882
12019
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
11883
12020
  // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
11884
- recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
12021
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
12022
+ asFooterLookId
12023
+ ),
11885
12024
  buttonPersonalityChoices: input.buttonPersonalityChoices,
11886
12025
  paletteVariantChoices: input.paletteVariantChoices,
11887
12026
  typographyPresetChoices,
@@ -11900,7 +12039,7 @@ function headerLayoutChoice(id, note) {
11900
12039
  function headerStyleChoice(id, note) {
11901
12040
  return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
11902
12041
  }
11903
- function headerLayoutRecordKey(id) {
12042
+ function unbrandHeaderLayoutId(id) {
11904
12043
  return id;
11905
12044
  }
11906
12045
  function uniqueHeaderLayoutChoices(choices) {
@@ -11923,7 +12062,9 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
11923
12062
  return [first, ...choices.slice(1)];
11924
12063
  }
11925
12064
  function inferHeaderCurationFromLegacyLooks(lookIds) {
11926
- const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter((selection) => Boolean(selection));
12065
+ const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
12066
+ (selection) => Boolean(selection)
12067
+ );
11927
12068
  const defaultHeaderSelection = selections[0] ?? {
11928
12069
  layoutId: asHeaderLayoutId("classic"),
11929
12070
  styleId: asHeaderStyleId("minimal")
@@ -11934,10 +12075,7 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
11934
12075
  const stylesByLayout = {};
11935
12076
  for (const layoutChoice of layoutChoices) {
11936
12077
  const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
11937
- stylesByLayout[headerLayoutRecordKey(layoutChoice.id)] = nonEmptyHeaderStyleChoices(
11938
- styleChoices,
11939
- layoutChoice.id
11940
- );
12078
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
11941
12079
  }
11942
12080
  return {
11943
12081
  defaultHeaderSelection,
@@ -11992,7 +12130,11 @@ var curatedSiteStyles = [
11992
12130
  motion: "subtle"
11993
12131
  },
11994
12132
  compositionBudget: quietBudget,
11995
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12133
+ recommendedHeaderLookIds: [
12134
+ "centered-calm",
12135
+ "minimal-transparent",
12136
+ "clean-base"
12137
+ ],
11996
12138
  buttonPersonalityChoices: [
11997
12139
  buttonChoice("soft-pill"),
11998
12140
  buttonChoice("pebble"),
@@ -12021,7 +12163,11 @@ var curatedSiteStyles = [
12021
12163
  motion: "subtle"
12022
12164
  },
12023
12165
  compositionBudget: balancedBudget,
12024
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12166
+ recommendedHeaderLookIds: [
12167
+ "practical-utility",
12168
+ "brand-solid",
12169
+ "clean-base"
12170
+ ],
12025
12171
  buttonPersonalityChoices: [
12026
12172
  buttonChoice("confident-chip"),
12027
12173
  buttonChoice("soft-pill"),
@@ -12048,7 +12194,11 @@ var curatedSiteStyles = [
12048
12194
  motion: "subtle"
12049
12195
  },
12050
12196
  compositionBudget: balancedBudget,
12051
- recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
12197
+ recommendedHeaderLookIds: [
12198
+ "serif-line",
12199
+ "minimal-transparent",
12200
+ "centered-calm"
12201
+ ],
12052
12202
  buttonPersonalityChoices: [
12053
12203
  buttonChoice("editorial-link"),
12054
12204
  buttonChoice("soft-pill"),
@@ -12076,7 +12226,11 @@ var curatedSiteStyles = [
12076
12226
  motion: "expressive"
12077
12227
  },
12078
12228
  compositionBudget: balancedBudget,
12079
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12229
+ recommendedHeaderLookIds: [
12230
+ "brand-solid",
12231
+ "practical-utility",
12232
+ "clean-base"
12233
+ ],
12080
12234
  buttonPersonalityChoices: [
12081
12235
  buttonChoice("pebble"),
12082
12236
  buttonChoice("brushed-wash"),
@@ -12093,7 +12247,10 @@ var curatedSiteStyles = [
12093
12247
  name: "Quiet Luxury",
12094
12248
  description: "Minimal, confident, and refined for premium experiences and private services.",
12095
12249
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
12096
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
12250
+ siteCreatorSelection: {
12251
+ kind: "site_creator_keyword_heuristic",
12252
+ priority: 20
12253
+ },
12097
12254
  selectionKeywordRules: [
12098
12255
  { kind: "word", value: "luxury" },
12099
12256
  { kind: "word", value: "premium" },
@@ -12111,7 +12268,11 @@ var curatedSiteStyles = [
12111
12268
  motion: "none"
12112
12269
  },
12113
12270
  compositionBudget: quietBudget,
12114
- recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
12271
+ recommendedHeaderLookIds: [
12272
+ "minimal-transparent",
12273
+ "serif-line",
12274
+ "clean-base"
12275
+ ],
12115
12276
  buttonPersonalityChoices: [
12116
12277
  buttonChoice("editorial-link"),
12117
12278
  buttonChoice("confident-chip"),
@@ -12147,7 +12308,11 @@ var curatedSiteStyles = [
12147
12308
  motion: "none"
12148
12309
  },
12149
12310
  compositionBudget: quietBudget,
12150
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
12311
+ recommendedHeaderLookIds: [
12312
+ "practical-utility",
12313
+ "brand-solid",
12314
+ "clean-base"
12315
+ ],
12151
12316
  buttonPersonalityChoices: [
12152
12317
  buttonChoice("confident-chip"),
12153
12318
  buttonChoice("pebble"),
@@ -12174,7 +12339,11 @@ var curatedSiteStyles = [
12174
12339
  motion: "subtle"
12175
12340
  },
12176
12341
  compositionBudget: balancedBudget,
12177
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
12342
+ recommendedHeaderLookIds: [
12343
+ "centered-calm",
12344
+ "minimal-transparent",
12345
+ "clean-base"
12346
+ ],
12178
12347
  buttonPersonalityChoices: [
12179
12348
  buttonChoice("soft-pill"),
12180
12349
  buttonChoice("pebble"),
@@ -12191,7 +12360,10 @@ var curatedSiteStyles = [
12191
12360
  name: "Quiet Practice",
12192
12361
  description: "Grounded, calm, and practical for small appointment-first practices.",
12193
12362
  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.",
12194
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
12363
+ siteCreatorSelection: {
12364
+ kind: "site_creator_keyword_heuristic",
12365
+ priority: 30
12366
+ },
12195
12367
  selectionKeywordRules: [
12196
12368
  { kind: "substring", value: "massage" },
12197
12369
  { kind: "word", value: "bodywork" },
@@ -12212,7 +12384,11 @@ var curatedSiteStyles = [
12212
12384
  motion: "subtle"
12213
12385
  },
12214
12386
  compositionBudget: quietBudget,
12215
- recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
12387
+ recommendedHeaderLookIds: [
12388
+ "practical-utility",
12389
+ "clean-base",
12390
+ "centered-calm"
12391
+ ],
12216
12392
  buttonPersonalityChoices: [
12217
12393
  buttonChoice("pebble"),
12218
12394
  buttonChoice("soft-pill"),
@@ -12229,7 +12405,10 @@ var curatedSiteStyles = [
12229
12405
  name: "Personal Retreat Journal",
12230
12406
  description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
12231
12407
  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.",
12232
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
12408
+ siteCreatorSelection: {
12409
+ kind: "site_creator_keyword_heuristic",
12410
+ priority: 40
12411
+ },
12233
12412
  selectionKeywordRules: [
12234
12413
  { kind: "substring", value: "retreat" },
12235
12414
  { kind: "phrase", value: "solo practitioner" },
@@ -12249,7 +12428,11 @@ var curatedSiteStyles = [
12249
12428
  motion: "subtle"
12250
12429
  },
12251
12430
  compositionBudget: balancedBudget,
12252
- recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
12431
+ recommendedHeaderLookIds: [
12432
+ "serif-line",
12433
+ "centered-calm",
12434
+ "minimal-transparent"
12435
+ ],
12253
12436
  buttonPersonalityChoices: [
12254
12437
  buttonChoice("editorial-link"),
12255
12438
  buttonChoice("soft-pill"),
@@ -12266,7 +12449,10 @@ var curatedSiteStyles = [
12266
12449
  name: "Tactile Workshop",
12267
12450
  description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
12268
12451
  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.",
12269
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
12452
+ siteCreatorSelection: {
12453
+ kind: "site_creator_keyword_heuristic",
12454
+ priority: 50
12455
+ },
12270
12456
  selectionKeywordRules: [
12271
12457
  { kind: "substring", value: "ceramic" },
12272
12458
  { kind: "word", value: "pottery" },
@@ -12286,8 +12472,15 @@ var curatedSiteStyles = [
12286
12472
  motion: "subtle"
12287
12473
  },
12288
12474
  compositionBudget: balancedBudget,
12289
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
12290
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12475
+ recommendedHeaderLookIds: [
12476
+ "brand-solid",
12477
+ "practical-utility",
12478
+ "clean-base"
12479
+ ],
12480
+ recommendedFooterLookIds: [
12481
+ "site-footer-brand-two-band",
12482
+ "footer-muted-grounding"
12483
+ ],
12291
12484
  buttonPersonalityChoices: [
12292
12485
  buttonChoice("pebble"),
12293
12486
  buttonChoice("confident-chip"),
@@ -12306,7 +12499,10 @@ var curatedSiteStyles = [
12306
12499
  name: "Soft Earth",
12307
12500
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
12308
12501
  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.",
12309
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 45 },
12502
+ siteCreatorSelection: {
12503
+ kind: "site_creator_keyword_heuristic",
12504
+ priority: 45
12505
+ },
12310
12506
  selectionKeywordRules: [
12311
12507
  { kind: "word", value: "meditation" },
12312
12508
  { kind: "word", value: "wellbeing" },
@@ -12382,8 +12578,15 @@ var curatedSiteStyles = [
12382
12578
  "faq-soft-earth-two-column",
12383
12579
  "contact-form-panel"
12384
12580
  ],
12385
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "editorial-line"],
12386
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
12581
+ recommendedHeaderLookIds: [
12582
+ "centered-calm",
12583
+ "minimal-transparent",
12584
+ "serif-line"
12585
+ ],
12586
+ recommendedFooterLookIds: [
12587
+ "footer-muted-grounding",
12588
+ "site-footer-brand-two-band"
12589
+ ],
12387
12590
  buttonPersonalityChoices: [
12388
12591
  buttonChoice("earth-pill"),
12389
12592
  buttonChoice("soft-pill"),
@@ -12402,7 +12605,10 @@ var curatedSiteStyles = [
12402
12605
  name: "Bold Launch",
12403
12606
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
12404
12607
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
12405
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
12608
+ siteCreatorSelection: {
12609
+ kind: "site_creator_keyword_heuristic",
12610
+ priority: 10
12611
+ },
12406
12612
  selectionKeywordRules: [
12407
12613
  { kind: "substring", value: "launch" },
12408
12614
  { kind: "substring", value: "campaign" },
@@ -12421,7 +12627,11 @@ var curatedSiteStyles = [
12421
12627
  motion: "expressive"
12422
12628
  },
12423
12629
  compositionBudget: expressiveBudget,
12424
- recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
12630
+ recommendedHeaderLookIds: [
12631
+ "transparent-overlay",
12632
+ "floating-glass",
12633
+ "brand-solid"
12634
+ ],
12425
12635
  buttonPersonalityChoices: [
12426
12636
  buttonChoice("ink-stamp"),
12427
12637
  buttonChoice("confident-chip"),
@@ -12472,8 +12682,15 @@ var curatedSiteStyles = [
12472
12682
  "testimonials-accent-quote-proof",
12473
12683
  "contact-form-brand-depth-card"
12474
12684
  ],
12475
- recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
12476
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
12685
+ recommendedHeaderLookIds: [
12686
+ "brand-solid",
12687
+ "transparent-overlay",
12688
+ "practical-utility"
12689
+ ],
12690
+ recommendedFooterLookIds: [
12691
+ "site-footer-brand-two-band",
12692
+ "footer-muted-grounding"
12693
+ ],
12477
12694
  buttonPersonalityChoices: [
12478
12695
  buttonChoice("showtime-pill"),
12479
12696
  buttonChoice("confident-chip"),
@@ -19878,10 +20095,7 @@ var headerRootClassTransform = {
19878
20095
  const navContainerType = header?.navContainer?.type ?? "none";
19879
20096
  const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
19880
20097
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
19881
- const classes = [
19882
- config.base,
19883
- backgroundClass
19884
- ];
20098
+ const classes = [config.base, backgroundClass];
19885
20099
  if (!hasContainedNav) {
19886
20100
  if (config.blur) classes.push(config.blur);
19887
20101
  if (config.blurSupport) classes.push(config.blurSupport);
@@ -19896,7 +20110,12 @@ var headerRootClassTransform = {
19896
20110
  if (shrinkOnScroll && (positioning === "sticky" || positioning === "fixed")) {
19897
20111
  classes.push(config.shrink);
19898
20112
  }
19899
- const VALID_VARIANTS = ["classic", "centered", "transparent", "floating", "editorial"];
20113
+ const VALID_VARIANTS = [
20114
+ "classic",
20115
+ "centered",
20116
+ "transparent",
20117
+ "floating"
20118
+ ];
19900
20119
  const variant = header?.variant;
19901
20120
  if (variant && VALID_VARIANTS.includes(variant)) {
19902
20121
  classes.push(`header-variant-${variant}`);
@@ -20517,15 +20736,21 @@ var mobileCta = ctaButton({
20517
20736
  var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
20518
20737
  {
20519
20738
  type: "div",
20520
- props: { className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20739
+ props: {
20740
+ className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20741
+ }
20521
20742
  },
20522
20743
  {
20523
20744
  type: "div",
20524
- props: { className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20745
+ props: {
20746
+ className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20747
+ }
20525
20748
  },
20526
20749
  {
20527
20750
  type: "div",
20528
- props: { className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
20751
+ props: {
20752
+ className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
20753
+ }
20529
20754
  }
20530
20755
  ]);
20531
20756
  var mobileToggleButton = {
@@ -20708,28 +20933,6 @@ var floatingLayout = inline(
20708
20933
  ],
20709
20934
  when("$root.theme.header.variant", { equals: "floating" })
20710
20935
  );
20711
- var editorialLayout = stack(
20712
- {
20713
- gap: "md",
20714
- align: "center",
20715
- className: bindProp("$root.theme.header.maxWidth", {
20716
- transforms: pipe(
20717
- tx("layout.maxWidthClass", {
20718
- base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20719
- })
20720
- ),
20721
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
20722
- })
20723
- },
20724
- [
20725
- centeredLogoRow,
20726
- createNavRow(
20727
- `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
20728
- "center"
20729
- )
20730
- ],
20731
- when("$root.theme.header.variant", { equals: "editorial" })
20732
- );
20733
20936
  var headerLayout = headerSection(
20734
20937
  {
20735
20938
  background: bindProp("$root.theme.header", {
@@ -20743,10 +20946,7 @@ var headerLayout = headerSection(
20743
20946
  }),
20744
20947
  style: bindProp("$root.theme.header", {
20745
20948
  transforms: pipe(tx("layout.headerRootStyle")),
20746
- fallback: mergeStyles(
20747
- textColorStyle("text"),
20748
- borderColorStyle("border")
20749
- )
20949
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
20750
20950
  })
20751
20951
  },
20752
20952
  [
@@ -20755,7 +20955,6 @@ var headerLayout = headerSection(
20755
20955
  centeredLayout,
20756
20956
  transparentLayout,
20757
20957
  floatingLayout,
20758
- editorialLayout,
20759
20958
  mobileOverlay
20760
20959
  ],
20761
20960
  props({