@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
@@ -6842,7 +6842,7 @@ var SimpleCache = class {
6842
6842
  };
6843
6843
 
6844
6844
  // src/version.ts
6845
- var SDK_VERSION = "0.77.0";
6845
+ var SDK_VERSION = "0.77.1";
6846
6846
 
6847
6847
  // src/client/error.ts
6848
6848
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -11636,8 +11636,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
11636
11636
  colorToken: themeColorTokenSchema.nullable().optional()
11637
11637
  });
11638
11638
  var proseLinkUnderlineStyleSchema = z21.enum(["solid", "dotted", "dashed"]);
11639
- var proseLinkUnderlineThicknessSchema = z21.enum(["auto", "fromFont", "thin", "medium", "thick"]);
11640
- var proseLinkUnderlineOffsetSchema = z21.enum(["auto", "tight", "normal", "loose"]);
11639
+ var proseLinkUnderlineThicknessSchema = z21.enum([
11640
+ "auto",
11641
+ "fromFont",
11642
+ "thin",
11643
+ "medium",
11644
+ "thick"
11645
+ ]);
11646
+ var proseLinkUnderlineOffsetSchema = z21.enum([
11647
+ "auto",
11648
+ "tight",
11649
+ "normal",
11650
+ "loose"
11651
+ ]);
11641
11652
  var proseLinkStyleSchema = z21.object({
11642
11653
  colorToken: themeColorTokenSchema.optional(),
11643
11654
  hoverColorToken: themeColorTokenSchema.optional(),
@@ -11648,7 +11659,14 @@ var proseLinkStyleSchema = z21.object({
11648
11659
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
11649
11660
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
11650
11661
  });
11651
- var semanticSpacingSchema = z21.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
11662
+ var semanticSpacingSchema = z21.enum([
11663
+ "none",
11664
+ "compact",
11665
+ "cozy",
11666
+ "medium",
11667
+ "comfortable",
11668
+ "spacious"
11669
+ ]);
11652
11670
  var boxRoundedSchema = z21.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
11653
11671
  var boxBackgroundOverlaySchema = z21.object({
11654
11672
  type: z21.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -11792,9 +11810,17 @@ var inputStyle = z21.object({
11792
11810
  focus: z21.enum(["glow", "ring", "underline"]),
11793
11811
  label: z21.enum(["inside", "above"])
11794
11812
  });
11795
- var headerVariant = z21.enum(["classic", "centered", "transparent", "floating", "editorial"]);
11813
+ var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"]);
11796
11814
  var headerPositioning = z21.enum(["static", "sticky", "fixed"]);
11797
- var headerNavStyle = z21.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
11815
+ var headerNavStyle = z21.enum([
11816
+ "minimal",
11817
+ "underline",
11818
+ "underline-grow",
11819
+ "capsule",
11820
+ "scale",
11821
+ "frosted",
11822
+ "solid"
11823
+ ]);
11798
11824
  var navFontWeight = z21.enum(["regular", "medium", "semibold", "bold"]);
11799
11825
  var headerMaxWidth = z21.enum(["container", "full"]);
11800
11826
  var headerContainerSchema = z21.object({
@@ -11842,8 +11868,22 @@ var dropdownStyleSchema = z21.object({
11842
11868
  textSize: z21.enum(["xs", "sm", "base", "lg"]).optional()
11843
11869
  // optional = no override (browser default)
11844
11870
  }).optional();
11845
- var headerCtaGapSchema = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
11846
- var headerCtaTreatmentSchema = z21.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
11871
+ var headerCtaGapSchema = z21.enum([
11872
+ "none",
11873
+ "tight",
11874
+ "compact",
11875
+ "default",
11876
+ "relaxed",
11877
+ "spacious"
11878
+ ]);
11879
+ var headerCtaTreatmentSchema = z21.enum([
11880
+ "default",
11881
+ "primary",
11882
+ "secondary",
11883
+ "inverted",
11884
+ "outline",
11885
+ "ghost"
11886
+ ]);
11847
11887
  var navContainerSchema = z21.object({
11848
11888
  type: z21.enum(["none", "pill", "glass"]).default("none"),
11849
11889
  tint: z21.string().nullable().optional(),
@@ -11898,7 +11938,14 @@ var footerMaxWidth = z21.enum(["container", "full"]);
11898
11938
  var footerMode = z21.enum(["default", "blocks", "default+blocks", "none"]);
11899
11939
  var footerNavLayoutMode = z21.enum(["stack", "inline", "inline-wrap"]);
11900
11940
  var footerNavLayoutAlign = z21.enum(["start", "center", "end", "space-between"]);
11901
- var footerSpacing = z21.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
11941
+ var footerSpacing = z21.enum([
11942
+ "none",
11943
+ "tight",
11944
+ "compact",
11945
+ "default",
11946
+ "relaxed",
11947
+ "spacious"
11948
+ ]);
11902
11949
  var footerLogoPlacement = z21.enum(["left", "right", "above", "below"]);
11903
11950
  var footerLogoSize = z21.enum(["sm", "md", "lg", "xl"]);
11904
11951
  var footerLogoMaxHeight = z21.enum(["sm", "md", "lg", "xl"]);
@@ -11963,7 +12010,12 @@ var footerSchema = z21.object({
11963
12010
  logo: footerLogoSchema.optional(),
11964
12011
  bottomBar: footerBottomBarSchema.optional()
11965
12012
  });
11966
- var containerPaddingPresetSchema = z21.enum(["tight", "compact", "default", "relaxed"]);
12013
+ var containerPaddingPresetSchema = z21.enum([
12014
+ "tight",
12015
+ "compact",
12016
+ "default",
12017
+ "relaxed"
12018
+ ]);
11967
12019
  var layoutSchema = z21.object({
11968
12020
  containerPadding: z21.object({
11969
12021
  mobile: containerPaddingPresetSchema.optional(),
@@ -11971,8 +12023,24 @@ var layoutSchema = z21.object({
11971
12023
  desktop: containerPaddingPresetSchema.optional()
11972
12024
  }).optional()
11973
12025
  }).optional();
11974
- var heroTypographySizeSchema = z21.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
11975
- var heroTypographyLineHeightSchema = z21.enum(["tight", "snug", "normal", "relaxed"]);
12026
+ var heroTypographySizeSchema = z21.enum([
12027
+ "sm",
12028
+ "base",
12029
+ "lg",
12030
+ "xl",
12031
+ "2xl",
12032
+ "3xl",
12033
+ "4xl",
12034
+ "5xl",
12035
+ "6xl",
12036
+ "editorial"
12037
+ ]);
12038
+ var heroTypographyLineHeightSchema = z21.enum([
12039
+ "tight",
12040
+ "snug",
12041
+ "normal",
12042
+ "relaxed"
12043
+ ]);
11976
12044
  var heroResponsiveTypographySchema = z21.object({
11977
12045
  headlineSize: heroTypographySizeSchema.optional(),
11978
12046
  headlineLineHeight: heroTypographyLineHeightSchema.optional(),
@@ -12526,16 +12594,6 @@ var headerLayoutCatalog = [
12526
12594
  maxRecommendedNavItems: 5,
12527
12595
  allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
12528
12596
  },
12529
- {
12530
- id: asHeaderLayoutId("editorial"),
12531
- label: "Editorial",
12532
- description: "A composed, magazine-like stacked header treatment.",
12533
- structure: "editorial-stack",
12534
- variant: "editorial",
12535
- defaultPositioning: "static",
12536
- shrinkOnScroll: false,
12537
- maxRecommendedNavItems: 6
12538
- },
12539
12597
  {
12540
12598
  id: asHeaderLayoutId("floating"),
12541
12599
  label: "Floating",
@@ -12556,17 +12614,19 @@ var headerStyleCatalog = [
12556
12614
  id: asHeaderStyleId("minimal"),
12557
12615
  label: "Minimal",
12558
12616
  description: "Quiet surface with simple color-change navigation.",
12559
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12617
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12560
12618
  navInteraction: "color-change",
12561
- surface: "neutral"
12619
+ surface: "neutral",
12620
+ navTypography: "plain"
12562
12621
  },
12563
12622
  {
12564
12623
  id: asHeaderStyleId("fine-line"),
12565
12624
  label: "Fine Line",
12566
12625
  description: "Light surface with a crisp lower rule and underline hover.",
12567
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12626
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12568
12627
  navInteraction: "underline-grow",
12569
- surface: "bordered"
12628
+ surface: "bordered",
12629
+ navTypography: "plain"
12570
12630
  },
12571
12631
  {
12572
12632
  id: asHeaderStyleId("soft-bar"),
@@ -12574,7 +12634,8 @@ var headerStyleCatalog = [
12574
12634
  description: "Soft tinted surface with gentle pill hover states.",
12575
12635
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12576
12636
  navInteraction: "pill-background",
12577
- surface: "soft"
12637
+ surface: "soft",
12638
+ navTypography: "plain"
12578
12639
  },
12579
12640
  {
12580
12641
  id: asHeaderStyleId("pill-nav"),
@@ -12582,23 +12643,26 @@ var headerStyleCatalog = [
12582
12643
  description: "A calm pill navigation rail over a neutral header.",
12583
12644
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12584
12645
  navInteraction: "pill-background",
12585
- surface: "soft"
12646
+ surface: "soft",
12647
+ navTypography: "plain"
12586
12648
  },
12587
12649
  {
12588
12650
  id: asHeaderStyleId("brand-bar"),
12589
12651
  label: "Brand Bar",
12590
12652
  description: "Solid brand surface with high-contrast navigation.",
12591
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12653
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12592
12654
  navInteraction: "color-change",
12593
- surface: "brand-solid"
12655
+ surface: "brand-solid",
12656
+ navTypography: "brand-caps"
12594
12657
  },
12595
12658
  {
12596
12659
  id: asHeaderStyleId("brand-underline"),
12597
12660
  label: "Brand Underline",
12598
12661
  description: "Brand surface with underline-grow navigation.",
12599
- supportedLayoutIds: supportedLayouts(["classic", "editorial"]),
12662
+ supportedLayoutIds: supportedLayouts(["classic"]),
12600
12663
  navInteraction: "underline-grow",
12601
- surface: "brand-solid"
12664
+ surface: "brand-solid",
12665
+ navTypography: "brand-caps"
12602
12666
  },
12603
12667
  {
12604
12668
  id: asHeaderStyleId("brand-pill"),
@@ -12606,41 +12670,44 @@ var headerStyleCatalog = [
12606
12670
  description: "Solid brand surface with rounded active and hover states.",
12607
12671
  supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
12608
12672
  navInteraction: "pill-background",
12609
- surface: "brand-solid"
12673
+ surface: "brand-solid",
12674
+ navTypography: "brand-caps"
12610
12675
  },
12611
12676
  {
12612
- id: asHeaderStyleId("editorial-line"),
12613
- label: "Editorial Line",
12677
+ id: asHeaderStyleId("serif-line"),
12678
+ label: "Serif Line",
12614
12679
  description: "Typographic logo treatment with understated underline navigation.",
12615
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12680
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12616
12681
  navInteraction: "underline-grow",
12617
- surface: "bordered"
12682
+ surface: "bordered",
12683
+ navTypography: "heading"
12618
12684
  },
12619
12685
  {
12620
12686
  id: asHeaderStyleId("flat-tabs"),
12621
12687
  label: "Flat Tabs",
12622
12688
  description: "Flat block hover and active states with a Swiss utility feel.",
12623
- supportedLayoutIds: supportedLayouts(["classic", "centered", "editorial"]),
12689
+ supportedLayoutIds: supportedLayouts(["classic", "centered"]),
12624
12690
  navInteraction: "flat-block",
12625
- surface: "bordered"
12691
+ surface: "bordered",
12692
+ navTypography: "quiet-caps"
12626
12693
  },
12627
12694
  {
12628
12695
  id: asHeaderStyleId("glass"),
12629
12696
  label: "Glass",
12630
- description: "Floating translucent chrome with frosted navigation backing.",
12631
- supportedLayoutIds: supportedLayouts(["floating"]),
12697
+ description: "Translucent chrome with frosted navigation backing.",
12698
+ supportedLayoutIds: supportedLayouts(["classic", "floating"]),
12632
12699
  navInteraction: "glass-backed",
12633
12700
  surface: "floating",
12634
- requiresFloatingLayout: true
12701
+ navTypography: "plain"
12635
12702
  },
12636
12703
  {
12637
12704
  id: asHeaderStyleId("minimal-surface"),
12638
- label: "Minimal Surface",
12639
- description: "Floating chrome with a restrained translucent surface.",
12705
+ label: "Clear Split",
12706
+ description: "Floating logo with transparent navigation and no shared shell.",
12640
12707
  supportedLayoutIds: supportedLayouts(["floating"]),
12641
12708
  navInteraction: "color-change",
12642
12709
  surface: "floating",
12643
- requiresFloatingLayout: true
12710
+ navTypography: "plain"
12644
12711
  },
12645
12712
  {
12646
12713
  id: asHeaderStyleId("soft-shell"),
@@ -12649,7 +12716,25 @@ var headerStyleCatalog = [
12649
12716
  supportedLayoutIds: supportedLayouts(["floating"]),
12650
12717
  navInteraction: "pill-background",
12651
12718
  surface: "floating",
12652
- requiresFloatingLayout: true
12719
+ navTypography: "plain"
12720
+ },
12721
+ {
12722
+ id: asHeaderStyleId("split-glass"),
12723
+ label: "Split Glass",
12724
+ description: "Logo floats independently while the navigation sits in a glass rail.",
12725
+ supportedLayoutIds: supportedLayouts(["floating"]),
12726
+ navInteraction: "glass-backed",
12727
+ surface: "floating",
12728
+ navTypography: "quiet-caps"
12729
+ },
12730
+ {
12731
+ id: asHeaderStyleId("split-pill"),
12732
+ label: "Split Pill",
12733
+ description: "Logo floats independently with a soft pill-backed navigation rail.",
12734
+ supportedLayoutIds: supportedLayouts(["floating"]),
12735
+ navInteraction: "pill-background",
12736
+ surface: "floating",
12737
+ navTypography: "heading"
12653
12738
  }
12654
12739
  ];
12655
12740
  var headerLayoutsById = new Map(
@@ -12663,13 +12748,14 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
12663
12748
  asHeaderLayoutId("classic"),
12664
12749
  headerStyleRepairChain([
12665
12750
  "minimal",
12751
+ "glass",
12666
12752
  "fine-line",
12667
12753
  "soft-bar",
12668
12754
  "pill-nav",
12669
12755
  "brand-bar",
12670
12756
  "brand-underline",
12671
12757
  "brand-pill",
12672
- "editorial-line",
12758
+ "serif-line",
12673
12759
  "flat-tabs"
12674
12760
  ])
12675
12761
  ],
@@ -12682,19 +12768,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
12682
12768
  "pill-nav",
12683
12769
  "brand-bar",
12684
12770
  "brand-pill",
12685
- "editorial-line",
12686
- "flat-tabs"
12687
- ])
12688
- ],
12689
- [
12690
- asHeaderLayoutId("editorial"),
12691
- headerStyleRepairChain([
12692
- "minimal",
12693
- "fine-line",
12694
- "soft-bar",
12695
- "brand-bar",
12696
- "brand-underline",
12697
- "editorial-line",
12771
+ "serif-line",
12698
12772
  "flat-tabs"
12699
12773
  ])
12700
12774
  ],
@@ -12703,6 +12777,8 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
12703
12777
  headerStyleRepairChain([
12704
12778
  "glass",
12705
12779
  "minimal-surface",
12780
+ "split-glass",
12781
+ "split-pill",
12706
12782
  "soft-shell",
12707
12783
  "brand-pill"
12708
12784
  ])
@@ -12711,20 +12787,63 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
12711
12787
  function headerStyleRepairChain(values) {
12712
12788
  return values.map(asHeaderStyleId);
12713
12789
  }
12714
- var headerStyleRepairOrder = /* @__PURE__ */ new Map([
12715
- [asHeaderStyleId("brand-bar"), headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])],
12716
- [asHeaderStyleId("brand-underline"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
12717
- [asHeaderStyleId("brand-pill"), headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])],
12718
- [asHeaderStyleId("pill-nav"), headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])],
12719
- [asHeaderStyleId("flat-tabs"), headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])],
12720
- [asHeaderStyleId("editorial-line"), headerStyleRepairChain(["editorial-line", "fine-line", "minimal"])],
12721
- [asHeaderStyleId("glass"), headerStyleRepairChain(["glass", "minimal-surface", "minimal"])],
12722
- [asHeaderStyleId("soft-shell"), headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])],
12723
- [asHeaderStyleId("minimal-surface"), headerStyleRepairChain(["minimal-surface", "minimal"])],
12724
- [asHeaderStyleId("fine-line"), headerStyleRepairChain(["fine-line", "minimal"])],
12725
- [asHeaderStyleId("soft-bar"), headerStyleRepairChain(["soft-bar", "minimal"])],
12726
- [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
12727
- ]);
12790
+ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
12791
+ [
12792
+ [
12793
+ asHeaderStyleId("brand-bar"),
12794
+ headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
12795
+ ],
12796
+ [
12797
+ asHeaderStyleId("brand-underline"),
12798
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
12799
+ ],
12800
+ [
12801
+ asHeaderStyleId("brand-pill"),
12802
+ headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
12803
+ ],
12804
+ [
12805
+ asHeaderStyleId("pill-nav"),
12806
+ headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
12807
+ ],
12808
+ [
12809
+ asHeaderStyleId("flat-tabs"),
12810
+ headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
12811
+ ],
12812
+ [
12813
+ asHeaderStyleId("serif-line"),
12814
+ headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
12815
+ ],
12816
+ [
12817
+ asHeaderStyleId("glass"),
12818
+ headerStyleRepairChain(["glass", "minimal-surface", "minimal"])
12819
+ ],
12820
+ [
12821
+ asHeaderStyleId("soft-shell"),
12822
+ headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
12823
+ ],
12824
+ [
12825
+ asHeaderStyleId("minimal-surface"),
12826
+ headerStyleRepairChain(["minimal-surface", "minimal"])
12827
+ ],
12828
+ [
12829
+ asHeaderStyleId("split-glass"),
12830
+ headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
12831
+ ],
12832
+ [
12833
+ asHeaderStyleId("split-pill"),
12834
+ headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
12835
+ ],
12836
+ [
12837
+ asHeaderStyleId("fine-line"),
12838
+ headerStyleRepairChain(["fine-line", "minimal"])
12839
+ ],
12840
+ [
12841
+ asHeaderStyleId("soft-bar"),
12842
+ headerStyleRepairChain(["soft-bar", "minimal"])
12843
+ ],
12844
+ [asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
12845
+ ]
12846
+ );
12728
12847
  var legacyHeaderLookAliases = [
12729
12848
  {
12730
12849
  lookId: asHeaderLookId("clean-base"),
@@ -12741,10 +12860,10 @@ var legacyHeaderLookAliases = [
12741
12860
  }
12742
12861
  },
12743
12862
  {
12744
- lookId: asHeaderLookId("editorial-line"),
12863
+ lookId: asHeaderLookId("serif-line"),
12745
12864
  selection: {
12746
- layoutId: asHeaderLayoutId("editorial"),
12747
- styleId: asHeaderStyleId("editorial-line")
12865
+ layoutId: asHeaderLayoutId("centered"),
12866
+ styleId: asHeaderStyleId("serif-line")
12748
12867
  }
12749
12868
  },
12750
12869
  {
@@ -12783,9 +12902,7 @@ var legacyHeaderLookAliases = [
12783
12902
  }
12784
12903
  }
12785
12904
  ];
12786
- var legacyHeaderLookAliasesById = new Map(
12787
- legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
12788
- );
12905
+ var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
12789
12906
  function getHeaderStyle(id) {
12790
12907
  return headerStylesById.get(id) ?? null;
12791
12908
  }
@@ -12803,10 +12920,12 @@ function resolveLegacyHeaderLookAlias(lookId) {
12803
12920
  return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
12804
12921
  }
12805
12922
  function getCompatibleHeaderStyleIds(layoutId) {
12806
- return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter((styleId) => {
12807
- const style = getHeaderStyleOrThrow(styleId);
12808
- return isHeaderStyleCompatibleWithLayout(style, layoutId);
12809
- });
12923
+ return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
12924
+ (styleId) => {
12925
+ const style = getHeaderStyleOrThrow(styleId);
12926
+ return isHeaderStyleCompatibleWithLayout(style, layoutId);
12927
+ }
12928
+ );
12810
12929
  }
12811
12930
  function solidBrandHeader(theme) {
12812
12931
  const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
@@ -12837,8 +12956,14 @@ function solidBrandHeader(theme) {
12837
12956
  borderRadius: "none",
12838
12957
  effects: {
12839
12958
  hover: [
12840
- { effectId: "text-color-change", options: { hoverColorToken: "secondary" } },
12841
- { effectId: "nav-underline", options: { style: "grow", colorToken: "secondary" } }
12959
+ {
12960
+ effectId: "text-color-change",
12961
+ options: { hoverColorToken: "secondary" }
12962
+ },
12963
+ {
12964
+ effectId: "nav-underline",
12965
+ options: { style: "grow", colorToken: "secondary" }
12966
+ }
12842
12967
  ]
12843
12968
  }
12844
12969
  },
@@ -12894,10 +13019,10 @@ function cleanBaseHeader(theme) {
12894
13019
  ctaGap: "default"
12895
13020
  };
12896
13021
  }
12897
- function editorialLineHeader(theme) {
13022
+ function serifLineHeader(theme) {
12898
13023
  return {
12899
13024
  ...baseHeader(theme),
12900
- variant: "editorial",
13025
+ variant: "centered",
12901
13026
  positioning: "sticky",
12902
13027
  shrinkOnScroll: false,
12903
13028
  background: {
@@ -13066,27 +13191,27 @@ var headerLookCatalog = [
13066
13191
  compile: solidBrandHeader
13067
13192
  },
13068
13193
  {
13069
- id: asHeaderLookId("editorial-line"),
13070
- label: "Editorial line",
13071
- visualTreatment: "light-editorial",
13194
+ id: asHeaderLookId("serif-line"),
13195
+ label: "Serif line",
13196
+ visualTreatment: "light-serif",
13072
13197
  layoutBehavior: "sticky",
13073
13198
  configuration: {
13074
- structure: "editorial-stack",
13075
- treatment: "light-editorial",
13199
+ structure: "centered-stack",
13200
+ treatment: "light-serif",
13076
13201
  behavior: "sticky"
13077
13202
  },
13078
13203
  openingRequirement: "none",
13079
13204
  maxRecommendedNavItems: 6,
13080
- compile: editorialLineHeader
13205
+ compile: serifLineHeader
13081
13206
  },
13082
13207
  {
13083
13208
  id: asHeaderLookId("centered-calm"),
13084
13209
  label: "Centered calm",
13085
- visualTreatment: "light-editorial",
13210
+ visualTreatment: "light-serif",
13086
13211
  layoutBehavior: "normal-flow",
13087
13212
  configuration: {
13088
13213
  structure: "centered-stack",
13089
- treatment: "light-editorial",
13214
+ treatment: "light-serif",
13090
13215
  behavior: "normal-flow"
13091
13216
  },
13092
13217
  openingRequirement: "none",
@@ -13632,12 +13757,16 @@ var expressiveUnderlineInputs = {
13632
13757
  }
13633
13758
  };
13634
13759
  function uniqueContentFrameKinds() {
13635
- const kinds = [...new Set(
13636
- generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
13637
- )];
13760
+ const kinds = [
13761
+ ...new Set(
13762
+ generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
13763
+ )
13764
+ ];
13638
13765
  const firstKind = kinds[0];
13639
13766
  if (!firstKind) {
13640
- throw new Error("Expected generated design option catalog to expose at least one content frame kind.");
13767
+ throw new Error(
13768
+ "Expected generated design option catalog to expose at least one content frame kind."
13769
+ );
13641
13770
  }
13642
13771
  return [firstKind, ...kinds.slice(1)];
13643
13772
  }
@@ -13647,7 +13776,9 @@ function defineCuratedSiteStyle(input) {
13647
13776
  const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(legacyHeaderLookIds);
13648
13777
  const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
13649
13778
  const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
13650
- if (!typographyPresetChoices.some((choice) => choice.id === defaultTypographyPresetId)) {
13779
+ if (!typographyPresetChoices.some(
13780
+ (choice) => choice.id === defaultTypographyPresetId
13781
+ )) {
13651
13782
  throw new Error(
13652
13783
  `Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
13653
13784
  );
@@ -13658,9 +13789,13 @@ function defineCuratedSiteStyle(input) {
13658
13789
  description: input.description,
13659
13790
  generationBrief: input.generationBrief,
13660
13791
  selectionKeywordRules: input.selectionKeywordRules ?? [],
13661
- siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
13792
+ siteCreatorSelection: input.siteCreatorSelection ?? {
13793
+ kind: "explicit_only"
13794
+ },
13662
13795
  template: {
13663
- id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
13796
+ id: asDesignSystemTemplateId(
13797
+ `template:${input.id.replace("site-style:", "")}`
13798
+ ),
13664
13799
  name: input.name,
13665
13800
  version: 1,
13666
13801
  tokenRecipes: input.tokenRecipes,
@@ -13678,13 +13813,17 @@ function defineCuratedSiteStyle(input) {
13678
13813
  } : inferredHeaderCuration.defaultHeaderSelection,
13679
13814
  recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
13680
13815
  recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
13681
- discouragedHeaderSelections: input.discouragedHeaderSelections?.map((selection) => ({
13682
- layoutId: asHeaderLayoutId(selection.layoutId),
13683
- styleId: asHeaderStyleId(selection.styleId)
13684
- })),
13816
+ discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
13817
+ (selection) => ({
13818
+ layoutId: asHeaderLayoutId(selection.layoutId),
13819
+ styleId: asHeaderStyleId(selection.styleId)
13820
+ })
13821
+ ),
13685
13822
  recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
13686
13823
  // Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
13687
- recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(asFooterLookId),
13824
+ recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
13825
+ asFooterLookId
13826
+ ),
13688
13827
  buttonPersonalityChoices: input.buttonPersonalityChoices,
13689
13828
  paletteVariantChoices: input.paletteVariantChoices,
13690
13829
  typographyPresetChoices,
@@ -13703,7 +13842,7 @@ function headerLayoutChoice(id, note) {
13703
13842
  function headerStyleChoice(id, note) {
13704
13843
  return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
13705
13844
  }
13706
- function headerLayoutRecordKey(id) {
13845
+ function unbrandHeaderLayoutId(id) {
13707
13846
  return id;
13708
13847
  }
13709
13848
  function uniqueHeaderLayoutChoices(choices) {
@@ -13726,7 +13865,9 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
13726
13865
  return [first, ...choices.slice(1)];
13727
13866
  }
13728
13867
  function inferHeaderCurationFromLegacyLooks(lookIds) {
13729
- const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter((selection) => Boolean(selection));
13868
+ const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
13869
+ (selection) => Boolean(selection)
13870
+ );
13730
13871
  const defaultHeaderSelection = selections[0] ?? {
13731
13872
  layoutId: asHeaderLayoutId("classic"),
13732
13873
  styleId: asHeaderStyleId("minimal")
@@ -13737,10 +13878,7 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
13737
13878
  const stylesByLayout = {};
13738
13879
  for (const layoutChoice of layoutChoices) {
13739
13880
  const styleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
13740
- stylesByLayout[headerLayoutRecordKey(layoutChoice.id)] = nonEmptyHeaderStyleChoices(
13741
- styleChoices,
13742
- layoutChoice.id
13743
- );
13881
+ stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = nonEmptyHeaderStyleChoices(styleChoices, layoutChoice.id);
13744
13882
  }
13745
13883
  return {
13746
13884
  defaultHeaderSelection,
@@ -13795,7 +13933,11 @@ var curatedSiteStyles = [
13795
13933
  motion: "subtle"
13796
13934
  },
13797
13935
  compositionBudget: quietBudget,
13798
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
13936
+ recommendedHeaderLookIds: [
13937
+ "centered-calm",
13938
+ "minimal-transparent",
13939
+ "clean-base"
13940
+ ],
13799
13941
  buttonPersonalityChoices: [
13800
13942
  buttonChoice("soft-pill"),
13801
13943
  buttonChoice("pebble"),
@@ -13824,7 +13966,11 @@ var curatedSiteStyles = [
13824
13966
  motion: "subtle"
13825
13967
  },
13826
13968
  compositionBudget: balancedBudget,
13827
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
13969
+ recommendedHeaderLookIds: [
13970
+ "practical-utility",
13971
+ "brand-solid",
13972
+ "clean-base"
13973
+ ],
13828
13974
  buttonPersonalityChoices: [
13829
13975
  buttonChoice("confident-chip"),
13830
13976
  buttonChoice("soft-pill"),
@@ -13851,7 +13997,11 @@ var curatedSiteStyles = [
13851
13997
  motion: "subtle"
13852
13998
  },
13853
13999
  compositionBudget: balancedBudget,
13854
- recommendedHeaderLookIds: ["editorial-line", "minimal-transparent", "centered-calm"],
14000
+ recommendedHeaderLookIds: [
14001
+ "serif-line",
14002
+ "minimal-transparent",
14003
+ "centered-calm"
14004
+ ],
13855
14005
  buttonPersonalityChoices: [
13856
14006
  buttonChoice("editorial-link"),
13857
14007
  buttonChoice("soft-pill"),
@@ -13879,7 +14029,11 @@ var curatedSiteStyles = [
13879
14029
  motion: "expressive"
13880
14030
  },
13881
14031
  compositionBudget: balancedBudget,
13882
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
14032
+ recommendedHeaderLookIds: [
14033
+ "brand-solid",
14034
+ "practical-utility",
14035
+ "clean-base"
14036
+ ],
13883
14037
  buttonPersonalityChoices: [
13884
14038
  buttonChoice("pebble"),
13885
14039
  buttonChoice("brushed-wash"),
@@ -13896,7 +14050,10 @@ var curatedSiteStyles = [
13896
14050
  name: "Quiet Luxury",
13897
14051
  description: "Minimal, confident, and refined for premium experiences and private services.",
13898
14052
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
13899
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
14053
+ siteCreatorSelection: {
14054
+ kind: "site_creator_keyword_heuristic",
14055
+ priority: 20
14056
+ },
13900
14057
  selectionKeywordRules: [
13901
14058
  { kind: "word", value: "luxury" },
13902
14059
  { kind: "word", value: "premium" },
@@ -13914,7 +14071,11 @@ var curatedSiteStyles = [
13914
14071
  motion: "none"
13915
14072
  },
13916
14073
  compositionBudget: quietBudget,
13917
- recommendedHeaderLookIds: ["minimal-transparent", "editorial-line", "clean-base"],
14074
+ recommendedHeaderLookIds: [
14075
+ "minimal-transparent",
14076
+ "serif-line",
14077
+ "clean-base"
14078
+ ],
13918
14079
  buttonPersonalityChoices: [
13919
14080
  buttonChoice("editorial-link"),
13920
14081
  buttonChoice("confident-chip"),
@@ -13950,7 +14111,11 @@ var curatedSiteStyles = [
13950
14111
  motion: "none"
13951
14112
  },
13952
14113
  compositionBudget: quietBudget,
13953
- recommendedHeaderLookIds: ["practical-utility", "brand-solid", "clean-base"],
14114
+ recommendedHeaderLookIds: [
14115
+ "practical-utility",
14116
+ "brand-solid",
14117
+ "clean-base"
14118
+ ],
13954
14119
  buttonPersonalityChoices: [
13955
14120
  buttonChoice("confident-chip"),
13956
14121
  buttonChoice("pebble"),
@@ -13977,7 +14142,11 @@ var curatedSiteStyles = [
13977
14142
  motion: "subtle"
13978
14143
  },
13979
14144
  compositionBudget: balancedBudget,
13980
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "clean-base"],
14145
+ recommendedHeaderLookIds: [
14146
+ "centered-calm",
14147
+ "minimal-transparent",
14148
+ "clean-base"
14149
+ ],
13981
14150
  buttonPersonalityChoices: [
13982
14151
  buttonChoice("soft-pill"),
13983
14152
  buttonChoice("pebble"),
@@ -13994,7 +14163,10 @@ var curatedSiteStyles = [
13994
14163
  name: "Quiet Practice",
13995
14164
  description: "Grounded, calm, and practical for small appointment-first practices.",
13996
14165
  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.",
13997
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
14166
+ siteCreatorSelection: {
14167
+ kind: "site_creator_keyword_heuristic",
14168
+ priority: 30
14169
+ },
13998
14170
  selectionKeywordRules: [
13999
14171
  { kind: "substring", value: "massage" },
14000
14172
  { kind: "word", value: "bodywork" },
@@ -14015,7 +14187,11 @@ var curatedSiteStyles = [
14015
14187
  motion: "subtle"
14016
14188
  },
14017
14189
  compositionBudget: quietBudget,
14018
- recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
14190
+ recommendedHeaderLookIds: [
14191
+ "practical-utility",
14192
+ "clean-base",
14193
+ "centered-calm"
14194
+ ],
14019
14195
  buttonPersonalityChoices: [
14020
14196
  buttonChoice("pebble"),
14021
14197
  buttonChoice("soft-pill"),
@@ -14032,7 +14208,10 @@ var curatedSiteStyles = [
14032
14208
  name: "Personal Retreat Journal",
14033
14209
  description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
14034
14210
  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.",
14035
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
14211
+ siteCreatorSelection: {
14212
+ kind: "site_creator_keyword_heuristic",
14213
+ priority: 40
14214
+ },
14036
14215
  selectionKeywordRules: [
14037
14216
  { kind: "substring", value: "retreat" },
14038
14217
  { kind: "phrase", value: "solo practitioner" },
@@ -14052,7 +14231,11 @@ var curatedSiteStyles = [
14052
14231
  motion: "subtle"
14053
14232
  },
14054
14233
  compositionBudget: balancedBudget,
14055
- recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
14234
+ recommendedHeaderLookIds: [
14235
+ "serif-line",
14236
+ "centered-calm",
14237
+ "minimal-transparent"
14238
+ ],
14056
14239
  buttonPersonalityChoices: [
14057
14240
  buttonChoice("editorial-link"),
14058
14241
  buttonChoice("soft-pill"),
@@ -14069,7 +14252,10 @@ var curatedSiteStyles = [
14069
14252
  name: "Tactile Workshop",
14070
14253
  description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
14071
14254
  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.",
14072
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
14255
+ siteCreatorSelection: {
14256
+ kind: "site_creator_keyword_heuristic",
14257
+ priority: 50
14258
+ },
14073
14259
  selectionKeywordRules: [
14074
14260
  { kind: "substring", value: "ceramic" },
14075
14261
  { kind: "word", value: "pottery" },
@@ -14089,8 +14275,15 @@ var curatedSiteStyles = [
14089
14275
  motion: "subtle"
14090
14276
  },
14091
14277
  compositionBudget: balancedBudget,
14092
- recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
14093
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
14278
+ recommendedHeaderLookIds: [
14279
+ "brand-solid",
14280
+ "practical-utility",
14281
+ "clean-base"
14282
+ ],
14283
+ recommendedFooterLookIds: [
14284
+ "site-footer-brand-two-band",
14285
+ "footer-muted-grounding"
14286
+ ],
14094
14287
  buttonPersonalityChoices: [
14095
14288
  buttonChoice("pebble"),
14096
14289
  buttonChoice("confident-chip"),
@@ -14109,7 +14302,10 @@ var curatedSiteStyles = [
14109
14302
  name: "Soft Earth",
14110
14303
  description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
14111
14304
  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.",
14112
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 45 },
14305
+ siteCreatorSelection: {
14306
+ kind: "site_creator_keyword_heuristic",
14307
+ priority: 45
14308
+ },
14113
14309
  selectionKeywordRules: [
14114
14310
  { kind: "word", value: "meditation" },
14115
14311
  { kind: "word", value: "wellbeing" },
@@ -14185,8 +14381,15 @@ var curatedSiteStyles = [
14185
14381
  "faq-soft-earth-two-column",
14186
14382
  "contact-form-panel"
14187
14383
  ],
14188
- recommendedHeaderLookIds: ["centered-calm", "minimal-transparent", "editorial-line"],
14189
- recommendedFooterLookIds: ["footer-muted-grounding", "site-footer-brand-two-band"],
14384
+ recommendedHeaderLookIds: [
14385
+ "centered-calm",
14386
+ "minimal-transparent",
14387
+ "serif-line"
14388
+ ],
14389
+ recommendedFooterLookIds: [
14390
+ "footer-muted-grounding",
14391
+ "site-footer-brand-two-band"
14392
+ ],
14190
14393
  buttonPersonalityChoices: [
14191
14394
  buttonChoice("earth-pill"),
14192
14395
  buttonChoice("soft-pill"),
@@ -14205,7 +14408,10 @@ var curatedSiteStyles = [
14205
14408
  name: "Bold Launch",
14206
14409
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
14207
14410
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
14208
- siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
14411
+ siteCreatorSelection: {
14412
+ kind: "site_creator_keyword_heuristic",
14413
+ priority: 10
14414
+ },
14209
14415
  selectionKeywordRules: [
14210
14416
  { kind: "substring", value: "launch" },
14211
14417
  { kind: "substring", value: "campaign" },
@@ -14224,7 +14430,11 @@ var curatedSiteStyles = [
14224
14430
  motion: "expressive"
14225
14431
  },
14226
14432
  compositionBudget: expressiveBudget,
14227
- recommendedHeaderLookIds: ["transparent-overlay", "floating-glass", "brand-solid"],
14433
+ recommendedHeaderLookIds: [
14434
+ "transparent-overlay",
14435
+ "floating-glass",
14436
+ "brand-solid"
14437
+ ],
14228
14438
  buttonPersonalityChoices: [
14229
14439
  buttonChoice("ink-stamp"),
14230
14440
  buttonChoice("confident-chip"),
@@ -14275,8 +14485,15 @@ var curatedSiteStyles = [
14275
14485
  "testimonials-accent-quote-proof",
14276
14486
  "contact-form-brand-depth-card"
14277
14487
  ],
14278
- recommendedHeaderLookIds: ["brand-solid", "transparent-overlay", "practical-utility"],
14279
- recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
14488
+ recommendedHeaderLookIds: [
14489
+ "brand-solid",
14490
+ "transparent-overlay",
14491
+ "practical-utility"
14492
+ ],
14493
+ recommendedFooterLookIds: [
14494
+ "site-footer-brand-two-band",
14495
+ "footer-muted-grounding"
14496
+ ],
14280
14497
  buttonPersonalityChoices: [
14281
14498
  buttonChoice("showtime-pill"),
14282
14499
  buttonChoice("confident-chip"),
@@ -21681,10 +21898,7 @@ var headerRootClassTransform = {
21681
21898
  const navContainerType = header?.navContainer?.type ?? "none";
21682
21899
  const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
21683
21900
  const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
21684
- const classes = [
21685
- config.base,
21686
- backgroundClass
21687
- ];
21901
+ const classes = [config.base, backgroundClass];
21688
21902
  if (!hasContainedNav) {
21689
21903
  if (config.blur) classes.push(config.blur);
21690
21904
  if (config.blurSupport) classes.push(config.blurSupport);
@@ -21699,7 +21913,12 @@ var headerRootClassTransform = {
21699
21913
  if (shrinkOnScroll && (positioning === "sticky" || positioning === "fixed")) {
21700
21914
  classes.push(config.shrink);
21701
21915
  }
21702
- const VALID_VARIANTS = ["classic", "centered", "transparent", "floating", "editorial"];
21916
+ const VALID_VARIANTS = [
21917
+ "classic",
21918
+ "centered",
21919
+ "transparent",
21920
+ "floating"
21921
+ ];
21703
21922
  const variant = header?.variant;
21704
21923
  if (variant && VALID_VARIANTS.includes(variant)) {
21705
21924
  classes.push(`header-variant-${variant}`);
@@ -22320,15 +22539,21 @@ var mobileCta = ctaButton({
22320
22539
  var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
22321
22540
  {
22322
22541
  type: "div",
22323
- props: { className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
22542
+ props: {
22543
+ className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
22544
+ }
22324
22545
  },
22325
22546
  {
22326
22547
  type: "div",
22327
- props: { className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
22548
+ props: {
22549
+ className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
22550
+ }
22328
22551
  },
22329
22552
  {
22330
22553
  type: "div",
22331
- props: { className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current" }
22554
+ props: {
22555
+ className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
22556
+ }
22332
22557
  }
22333
22558
  ]);
22334
22559
  var mobileToggleButton = {
@@ -22511,28 +22736,6 @@ var floatingLayout = inline(
22511
22736
  ],
22512
22737
  when("$root.theme.header.variant", { equals: "floating" })
22513
22738
  );
22514
- var editorialLayout = stack(
22515
- {
22516
- gap: "md",
22517
- align: "center",
22518
- className: bindProp("$root.theme.header.maxWidth", {
22519
- transforms: pipe(
22520
- tx("layout.maxWidthClass", {
22521
- base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
22522
- })
22523
- ),
22524
- fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
22525
- })
22526
- },
22527
- [
22528
- centeredLogoRow,
22529
- createNavRow(
22530
- `${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
22531
- "center"
22532
- )
22533
- ],
22534
- when("$root.theme.header.variant", { equals: "editorial" })
22535
- );
22536
22739
  var headerLayout = headerSection(
22537
22740
  {
22538
22741
  background: bindProp("$root.theme.header", {
@@ -22546,10 +22749,7 @@ var headerLayout = headerSection(
22546
22749
  }),
22547
22750
  style: bindProp("$root.theme.header", {
22548
22751
  transforms: pipe(tx("layout.headerRootStyle")),
22549
- fallback: mergeStyles(
22550
- textColorStyle("text"),
22551
- borderColorStyle("border")
22552
- )
22752
+ fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
22553
22753
  })
22554
22754
  },
22555
22755
  [
@@ -22558,7 +22758,6 @@ var headerLayout = headerSection(
22558
22758
  centeredLayout,
22559
22759
  transparentLayout,
22560
22760
  floatingLayout,
22561
- editorialLayout,
22562
22761
  mobileOverlay
22563
22762
  ],
22564
22763
  props({