@riverbankcms/sdk 0.107.0 → 0.108.0

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 (159) hide show
  1. package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +46 -11
  2. package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
  3. package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +426 -72
  5. package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +3865 -544
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +3712 -220
  7. package/dist/_dts/api/src/blocks.d.ts +41 -7
  8. package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
  9. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  10. package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
  11. package/dist/_dts/api/src/endpoints.d.ts +99 -0
  12. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  13. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  14. package/dist/_dts/api/src/index.d.ts +5 -2
  15. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  16. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  17. package/dist/_dts/api/src/sdkContracts.d.ts +62 -0
  18. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  19. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
  20. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -1
  21. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +41 -1
  22. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  23. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  24. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  25. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  26. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  29. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
  31. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  32. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  33. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  35. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  38. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  39. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  40. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  41. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  42. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  43. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  44. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  45. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  46. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  47. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  48. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  49. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  50. package/dist/_dts/core/src/branded.d.ts +3 -0
  51. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  52. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  53. package/dist/_dts/core/src/index.d.ts +2 -0
  54. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  55. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3043 -2941
  56. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  57. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  58. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  59. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  60. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  61. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  62. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  63. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  64. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  65. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  66. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  67. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  68. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  70. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  71. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  72. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  73. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -0
  74. package/dist/_dts/sdk/src/client/management/types.d.ts +15 -1
  75. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  76. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  77. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  78. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -2
  79. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  80. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  81. package/dist/_dts/sdk/src/version.d.ts +1 -1
  82. package/dist/_dts/site-commands/src/commands.d.ts +13 -10
  83. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  84. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  86. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  88. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
  89. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  90. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -30
  93. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/schema.d.ts +1186 -34
  95. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  96. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  97. package/dist/cli/index.mjs +760 -374
  98. package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
  99. package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
  100. package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
  101. package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
  102. package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
  103. package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
  104. package/dist/client/{accordion-DAIBVpTS.mjs → accordion-BPy-AJ4_.mjs} +1 -1
  105. package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-BL4PGZds.mjs} +6 -6
  106. package/dist/client/bookings.mjs +143 -94
  107. package/dist/client/{buttons-DJgynGHQ.mjs → buttons-EBjyslaX.mjs} +144 -95
  108. package/dist/client/{carousel-D-SLfX8r.mjs → carousel-C2b7Cn9-.mjs} +1 -1
  109. package/dist/client/{cart-CEgbgJhX.mjs → cart-BQcbXIVD.mjs} +3 -3
  110. package/dist/client/{checkout-CXWrCRAA.mjs → checkout-DEmpGRJu.mjs} +3 -3
  111. package/dist/client/client.mjs +827 -434
  112. package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-BqRZPmsq.mjs} +7 -7
  113. package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-B8N_tSl5.mjs} +5 -5
  114. package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
  115. package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-M-VCxA-r.mjs} +3 -3
  116. package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-DR19hqYi.mjs} +2 -2
  117. package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-BR02a0k3.mjs} +7 -7
  118. package/dist/client/{form-CH1lCusH.mjs → form-LY2xIbwg.mjs} +2 -2
  119. package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-CYwwXJfh.mjs} +3 -3
  120. package/dist/client/hooks.mjs +377 -362
  121. package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-DWnBXrFq.mjs} +2 -2
  122. package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-D9s-fQ2P.mjs} +2 -2
  123. package/dist/client/{pricing-BIbzmV0G.mjs → pricing-DDq80oYc.mjs} +1 -1
  124. package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-B0SbWd45.mjs} +3 -3
  125. package/dist/client/{productList-Cc7OMrqN.mjs → productList-PwYlZn0y.mjs} +3 -3
  126. package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-BRWBiH7i.mjs} +33 -9
  127. package/dist/client/rendering/client.mjs +247 -40
  128. package/dist/client/rendering/islands.mjs +18 -18
  129. package/dist/client/rendering.mjs +478 -270
  130. package/dist/client/{shop-CQ_YbCnn.mjs → shop-CMwZPYME.mjs} +6 -6
  131. package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BuxsFate.mjs} +5 -5
  132. package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
  133. package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-D2naaOes.mjs} +2 -2
  134. package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
  135. package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-igGiK1re.mjs} +3 -3
  136. package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-CI7MbsFB.mjs} +2 -2
  137. package/dist/preview-next/before-render.mjs +178 -0
  138. package/dist/preview-next/client/runtime.mjs +4 -4
  139. package/dist/preview-next/middleware.mjs +178 -0
  140. package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-a_cBD28m.mjs} +178 -0
  141. package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
  142. package/dist/{separator-BoMSQnsP.mjs → separator-5ahRBC85.mjs} +1 -1
  143. package/dist/server/components.mjs +556 -366
  144. package/dist/server/config-validation.mjs +384 -363
  145. package/dist/server/config.mjs +384 -364
  146. package/dist/server/data.mjs +377 -362
  147. package/dist/server/index.mjs +179 -1
  148. package/dist/server/navigation.mjs +9 -3
  149. package/dist/server/next.mjs +1384 -995
  150. package/dist/server/page-converter.mjs +368 -355
  151. package/dist/server/prebuild.mjs +1 -1
  152. package/dist/server/rendering/server.mjs +539 -360
  153. package/dist/server/rendering.mjs +556 -366
  154. package/dist/server/routing.mjs +613 -543
  155. package/dist/server/server.mjs +554 -361
  156. package/dist/server/theme-bridge.mjs +189 -98
  157. package/dist/server/theme.mjs +161 -95
  158. package/dist/styles/index.css +7 -1
  159. package/package.json +1 -1
@@ -1861,104 +1861,153 @@ const showtimePill = defineButtonPersonality({
1861
1861
  }
1862
1862
  });
1863
1863
  //#endregion
1864
- //#region ../theme-core/src/buttons/personalities/index.ts
1865
- const buttonPersonalities = [
1866
- defineButtonPersonality({
1867
- id: "soft-pill",
1868
- name: "Soft Pill",
1869
- description: "Rounded pills with a gentle lift on hover. Quietly modern.",
1870
- tags: {
1871
- tone: "classic",
1872
- energy: "calm",
1873
- motion: "subtle",
1874
- era: "organic"
1864
+ //#region ../theme-core/src/buttons/personalities/soft-pill.ts
1865
+ /**
1866
+ * Soft Pill — rounded-full pill buttons with a hover lift. The default for
1867
+ * Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
1868
+ */
1869
+ const softPill = defineButtonPersonality({
1870
+ id: "soft-pill",
1871
+ name: "Soft Pill",
1872
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
1873
+ tags: {
1874
+ tone: "classic",
1875
+ energy: "calm",
1876
+ motion: "subtle",
1877
+ era: "organic"
1878
+ },
1879
+ buttonSystem: {
1880
+ global: {
1881
+ cornerStyle: "pill",
1882
+ shadow: "low",
1883
+ textTransform: "none",
1884
+ fontWeight: 500,
1885
+ borderWidth: 2,
1886
+ hoverTransform: "lift",
1887
+ hoverColor: "none"
1875
1888
  },
1876
- buttonSystem: {
1877
- global: {
1878
- cornerStyle: "pill",
1879
- shadow: "low",
1880
- textTransform: "none",
1881
- fontWeight: 500,
1882
- borderWidth: 2,
1883
- hoverTransform: "lift",
1884
- hoverColor: "none"
1885
- },
1886
- variants: [
1887
- {
1888
- id: "primary",
1889
- name: "Primary",
1890
- enabled: true,
1891
- priority: 1,
1892
- background: {
1893
- type: "solid",
1894
- colorToken: "primary"
1895
- },
1896
- textColorToken: "primaryForeground",
1897
- borderRadius: "rounded-full",
1898
- shadow: {
1899
- elevation: "low",
1900
- softness: "soft",
1901
- position: "bottom"
1902
- },
1903
- effects: {
1904
- hover: [{
1905
- effectId: "lift",
1906
- options: { translateY: "-1px" }
1907
- }],
1908
- active: [{
1909
- effectId: "scale-down",
1910
- options: { scale: "0.98" }
1911
- }]
1912
- }
1913
- },
1914
- {
1915
- id: "secondary",
1916
- name: "Secondary",
1917
- enabled: true,
1918
- priority: 2,
1919
- background: { type: "transparent" },
1920
- textColorToken: "primary",
1921
- borderRadius: "rounded-full",
1922
- border: {
1923
- widthClass: "border-2",
1924
- colorToken: "primary"
1925
- },
1926
- effects: { hover: [{
1927
- effectId: "background-on-hover",
1928
- options: { colorToken: "surface" }
1929
- }] }
1889
+ variants: [
1890
+ {
1891
+ id: "primary",
1892
+ name: "Primary",
1893
+ enabled: true,
1894
+ priority: 1,
1895
+ background: {
1896
+ type: "solid",
1897
+ colorToken: "primary"
1930
1898
  },
1931
- {
1932
- id: "outline",
1933
- name: "Outline",
1934
- enabled: true,
1935
- priority: 3,
1936
- background: { type: "transparent" },
1937
- textColorToken: "text",
1938
- borderRadius: "rounded-full",
1939
- border: {
1940
- widthClass: "border",
1941
- colorToken: "border"
1942
- },
1943
- effects: { hover: [{
1944
- effectId: "background-on-hover",
1945
- options: { colorToken: "surface" }
1946
- }] }
1899
+ textColorToken: "primaryForeground",
1900
+ borderRadius: "rounded-full",
1901
+ shadow: {
1902
+ elevation: "low",
1903
+ softness: "soft",
1904
+ position: "bottom"
1947
1905
  },
1948
- {
1949
- id: "ghost",
1950
- name: "Ghost",
1951
- enabled: true,
1952
- priority: 3,
1953
- background: { type: "transparent" },
1954
- textColorToken: "text",
1955
- borderRadius: "rounded-full",
1956
- effects: { hover: [{
1957
- effectId: "background-on-hover",
1958
- options: { colorToken: "surface" }
1959
- }] }
1906
+ effects: {
1907
+ hover: [{
1908
+ effectId: "lift",
1909
+ options: { translateY: "-1px" }
1910
+ }],
1911
+ active: [{
1912
+ effectId: "scale-down",
1913
+ options: { scale: "0.98" }
1914
+ }]
1960
1915
  }
1961
- ]
1916
+ },
1917
+ {
1918
+ id: "secondary",
1919
+ name: "Secondary",
1920
+ enabled: true,
1921
+ priority: 2,
1922
+ background: { type: "transparent" },
1923
+ textColorToken: "primary",
1924
+ borderRadius: "rounded-full",
1925
+ border: {
1926
+ widthClass: "border-2",
1927
+ colorToken: "primary"
1928
+ },
1929
+ effects: { hover: [{
1930
+ effectId: "background-on-hover",
1931
+ options: { colorToken: "surface" }
1932
+ }] }
1933
+ },
1934
+ {
1935
+ id: "outline",
1936
+ name: "Outline",
1937
+ enabled: true,
1938
+ priority: 3,
1939
+ background: { type: "transparent" },
1940
+ textColorToken: "text",
1941
+ borderRadius: "rounded-full",
1942
+ border: {
1943
+ widthClass: "border",
1944
+ colorToken: "border"
1945
+ },
1946
+ effects: { hover: [{
1947
+ effectId: "background-on-hover",
1948
+ options: { colorToken: "surface" }
1949
+ }] }
1950
+ },
1951
+ {
1952
+ id: "ghost",
1953
+ name: "Ghost",
1954
+ enabled: true,
1955
+ priority: 3,
1956
+ background: { type: "transparent" },
1957
+ textColorToken: "text",
1958
+ borderRadius: "rounded-full",
1959
+ effects: { hover: [{
1960
+ effectId: "background-on-hover",
1961
+ options: { colorToken: "surface" }
1962
+ }] }
1963
+ }
1964
+ ]
1965
+ }
1966
+ });
1967
+ //#endregion
1968
+ //#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
1969
+ const solidSecondary = {
1970
+ id: "secondary",
1971
+ name: "Secondary",
1972
+ enabled: true,
1973
+ priority: 2,
1974
+ background: {
1975
+ type: "solid",
1976
+ colorToken: "secondary"
1977
+ },
1978
+ textColorToken: "onSecondary",
1979
+ borderRadius: "rounded-full",
1980
+ shadow: {
1981
+ elevation: "none",
1982
+ softness: null,
1983
+ position: "bottom"
1984
+ },
1985
+ effects: {
1986
+ hover: [{
1987
+ effectId: "background-on-hover-alpha",
1988
+ options: {
1989
+ colorToken: "secondary",
1990
+ opacity: 88
1991
+ }
1992
+ }],
1993
+ active: [{
1994
+ effectId: "scale-down",
1995
+ options: { scale: "0.98" }
1996
+ }]
1997
+ }
1998
+ };
1999
+ //#endregion
2000
+ //#region ../theme-core/src/buttons/personalities/index.ts
2001
+ const buttonPersonalities = [
2002
+ softPill,
2003
+ defineButtonPersonality({
2004
+ id: "two-tone-pill",
2005
+ name: "Two-tone Pill",
2006
+ description: "Rounded pills with distinct solid primary and secondary brand colours.",
2007
+ tags: softPill.tags,
2008
+ buttonSystem: {
2009
+ ...softPill.buttonSystem,
2010
+ variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
1962
2011
  }
1963
2012
  }),
1964
2013
  earthPill,
@@ -2398,7 +2447,7 @@ function generateVariantCss(scopeId, variant, settings) {
2398
2447
  containerRules.push("display: flex");
2399
2448
  containerRules.push("flex-direction: column");
2400
2449
  containerRules.push("position: relative");
2401
- containerRules.push("overflow: hidden");
2450
+ containerRules.push("overflow: visible");
2402
2451
  const mediaRadius = CORNER_RADIUS_MAP$1[settings.corners];
2403
2452
  const mediaRules = [`border-top-left-radius: ${mediaRadius}`, `border-top-right-radius: ${mediaRadius}`];
2404
2453
  const contentRules = [`padding: ${SPACING_MAP[variant.spacing]}`];
@@ -3780,6 +3829,7 @@ const navFontWeight = z$1.enum([
3780
3829
  "bold"
3781
3830
  ]);
3782
3831
  const headerMaxWidth = z$1.enum(["container", "full"]);
3832
+ const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
3783
3833
  const headerContainerSchema = z$1.object({
3784
3834
  rounded: z$1.enum([
3785
3835
  "none",
@@ -3924,6 +3974,7 @@ const headerSchema = z$1.object({
3924
3974
  positioning: headerPositioning,
3925
3975
  shrinkOnScroll: z$1.boolean(),
3926
3976
  maxWidth: headerMaxWidth,
3977
+ barFrame: headerBarFrame.optional(),
3927
3978
  logoOverride: mediaSchema.nullable().optional(),
3928
3979
  background: headerBackgroundSchema.default({
3929
3980
  type: "color",
@@ -3933,6 +3984,7 @@ const headerSchema = z$1.object({
3933
3984
  navStyle: headerNavStyle,
3934
3985
  navColor: themeColorTokenSchema.nullable().optional(),
3935
3986
  navWeight: navFontWeight.default("medium"),
3987
+ navFontRole: z$1.enum(["body", "heading"]).optional(),
3936
3988
  navTypography: z$1.enum(["body", "heading"]).optional(),
3937
3989
  navTextSize: navLinkStyleSchema.shape.textSize,
3938
3990
  navPlacement: z$1.enum(["end", "center"]).optional(),
@@ -3948,7 +4000,21 @@ const headerSchema = z$1.object({
3948
4000
  ctaTreatment: headerCtaTreatmentSchema.optional(),
3949
4001
  ctaVariant: z$1.string().min(1).optional(),
3950
4002
  dropdownStyle: dropdownStyleSchema
3951
- });
4003
+ }).transform(normaliseHeaderNavFontRole);
4004
+ /**
4005
+ * Normalises the legacy `navTypography` font-role alias into the canonical
4006
+ * `navFontRole` field so persisted themes migrate at the parse boundary without
4007
+ * a data migration. `navFontRole` always wins when both are present; the legacy
4008
+ * field is dropped so we never carry a dual write forward.
4009
+ */
4010
+ function normaliseHeaderNavFontRole(header) {
4011
+ if (header.navTypography === void 0) return header;
4012
+ const { navTypography, ...rest } = header;
4013
+ return header.navFontRole === void 0 ? {
4014
+ ...rest,
4015
+ navFontRole: navTypography
4016
+ } : rest;
4017
+ }
3952
4018
  const footerVariant = z$1.enum([
3953
4019
  "simple",
3954
4020
  "columns",
@@ -6284,7 +6350,7 @@ const overlayLogoAccommodations = [
6284
6350
  * optional nested styling fields that would otherwise leak from another Look.
6285
6351
  */
6286
6352
  function baseHeader(theme) {
6287
- const { navLinkStyle: _navLinkStyle, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
6353
+ const { navLinkStyle: _navLinkStyle, navFontRole: _navFontRole, navTypography: _navTypography, navTextSize: _navTextSize, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
6288
6354
  return {
6289
6355
  ...header,
6290
6356
  navContainer: {
@@ -6433,6 +6499,17 @@ const headerStyleCatalog = defineExactCatalog()([
6433
6499
  navTypography: "brand-caps",
6434
6500
  moods: ["expressive"]
6435
6501
  },
6502
+ {
6503
+ id: asHeaderStyleId("brand-capsule"),
6504
+ label: "Brand Capsule",
6505
+ description: "Solid brand chrome designed as a floating capsule, with quiet-caps nav, a soft pill active state, and an inverted CTA pill.",
6506
+ supportedLayoutIds: supportedLayouts(["classic"]),
6507
+ navInteraction: "pill-background",
6508
+ surface: "brand-solid",
6509
+ defaultDepth: "shadow",
6510
+ navTypography: "quiet-caps",
6511
+ moods: ["expressive", "professional"]
6512
+ },
6436
6513
  {
6437
6514
  id: asHeaderStyleId("serif-line"),
6438
6515
  label: "Serif Line",
@@ -6526,6 +6603,7 @@ const headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
6526
6603
  "brand-bar",
6527
6604
  "brand-underline",
6528
6605
  "brand-pill",
6606
+ "brand-capsule",
6529
6607
  "serif-line",
6530
6608
  "flat-tabs"
6531
6609
  ])],
@@ -6563,6 +6641,11 @@ headerStyleRepairChain([
6563
6641
  "brand-pill",
6564
6642
  "brand-bar",
6565
6643
  "minimal"
6644
+ ]), headerStyleRepairChain([
6645
+ "brand-capsule",
6646
+ "brand-pill",
6647
+ "brand-bar",
6648
+ "minimal"
6566
6649
  ]), headerStyleRepairChain([
6567
6650
  "pill-nav",
6568
6651
  "soft-bar",
@@ -8800,6 +8883,7 @@ const curatedSiteStyles = [
8800
8883
  ],
8801
8884
  buttonPersonalityChoices: [
8802
8885
  buttonChoice("soft-pill"),
8886
+ buttonChoice("two-tone-pill"),
8803
8887
  buttonChoice("pebble"),
8804
8888
  buttonChoice("editorial-link"),
8805
8889
  buttonChoice("brushed-wash")
@@ -9979,6 +10063,7 @@ const curatedSiteStyles = [
9979
10063
  ],
9980
10064
  buttonPersonalityChoices: [
9981
10065
  buttonChoice("quiet-arrow"),
10066
+ buttonChoice("two-tone-pill"),
9982
10067
  buttonChoice("flat-ink"),
9983
10068
  buttonChoice("editorial-link")
9984
10069
  ],
@@ -11938,6 +12023,12 @@ const containerResponsiveThemeCss = `/*
11938
12023
  .rb-lg-hidden {
11939
12024
  display: none;
11940
12025
  }
12026
+ .rb-lg-flex-row {
12027
+ flex-direction: row;
12028
+ }
12029
+ .rb-lg-items-center {
12030
+ align-items: center;
12031
+ }
11941
12032
  }
11942
12033
 
11943
12034
  }
@@ -23374,7 +23465,7 @@ const containerResponsiveThemeCss = `/*
23374
23465
  [data-block="feature-cards"][data-block-composition="asymmetric-emphasis"]
23375
23466
  .rb-feature-card {
23376
23467
  height: auto;
23377
- overflow: hidden;
23468
+ overflow: visible;
23378
23469
  border: 0;
23379
23470
  border-radius: 0;
23380
23471
  background: transparent;
@@ -1861,104 +1861,153 @@ const showtimePill = defineButtonPersonality({
1861
1861
  }
1862
1862
  });
1863
1863
  //#endregion
1864
- //#region ../theme-core/src/buttons/personalities/index.ts
1865
- const buttonPersonalities = [
1866
- defineButtonPersonality({
1867
- id: "soft-pill",
1868
- name: "Soft Pill",
1869
- description: "Rounded pills with a gentle lift on hover. Quietly modern.",
1870
- tags: {
1871
- tone: "classic",
1872
- energy: "calm",
1873
- motion: "subtle",
1874
- era: "organic"
1864
+ //#region ../theme-core/src/buttons/personalities/soft-pill.ts
1865
+ /**
1866
+ * Soft Pill — rounded-full pill buttons with a hover lift. The default for
1867
+ * Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
1868
+ */
1869
+ const softPill = defineButtonPersonality({
1870
+ id: "soft-pill",
1871
+ name: "Soft Pill",
1872
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
1873
+ tags: {
1874
+ tone: "classic",
1875
+ energy: "calm",
1876
+ motion: "subtle",
1877
+ era: "organic"
1878
+ },
1879
+ buttonSystem: {
1880
+ global: {
1881
+ cornerStyle: "pill",
1882
+ shadow: "low",
1883
+ textTransform: "none",
1884
+ fontWeight: 500,
1885
+ borderWidth: 2,
1886
+ hoverTransform: "lift",
1887
+ hoverColor: "none"
1875
1888
  },
1876
- buttonSystem: {
1877
- global: {
1878
- cornerStyle: "pill",
1879
- shadow: "low",
1880
- textTransform: "none",
1881
- fontWeight: 500,
1882
- borderWidth: 2,
1883
- hoverTransform: "lift",
1884
- hoverColor: "none"
1885
- },
1886
- variants: [
1887
- {
1888
- id: "primary",
1889
- name: "Primary",
1890
- enabled: true,
1891
- priority: 1,
1892
- background: {
1893
- type: "solid",
1894
- colorToken: "primary"
1895
- },
1896
- textColorToken: "primaryForeground",
1897
- borderRadius: "rounded-full",
1898
- shadow: {
1899
- elevation: "low",
1900
- softness: "soft",
1901
- position: "bottom"
1902
- },
1903
- effects: {
1904
- hover: [{
1905
- effectId: "lift",
1906
- options: { translateY: "-1px" }
1907
- }],
1908
- active: [{
1909
- effectId: "scale-down",
1910
- options: { scale: "0.98" }
1911
- }]
1912
- }
1913
- },
1914
- {
1915
- id: "secondary",
1916
- name: "Secondary",
1917
- enabled: true,
1918
- priority: 2,
1919
- background: { type: "transparent" },
1920
- textColorToken: "primary",
1921
- borderRadius: "rounded-full",
1922
- border: {
1923
- widthClass: "border-2",
1924
- colorToken: "primary"
1925
- },
1926
- effects: { hover: [{
1927
- effectId: "background-on-hover",
1928
- options: { colorToken: "surface" }
1929
- }] }
1889
+ variants: [
1890
+ {
1891
+ id: "primary",
1892
+ name: "Primary",
1893
+ enabled: true,
1894
+ priority: 1,
1895
+ background: {
1896
+ type: "solid",
1897
+ colorToken: "primary"
1930
1898
  },
1931
- {
1932
- id: "outline",
1933
- name: "Outline",
1934
- enabled: true,
1935
- priority: 3,
1936
- background: { type: "transparent" },
1937
- textColorToken: "text",
1938
- borderRadius: "rounded-full",
1939
- border: {
1940
- widthClass: "border",
1941
- colorToken: "border"
1942
- },
1943
- effects: { hover: [{
1944
- effectId: "background-on-hover",
1945
- options: { colorToken: "surface" }
1946
- }] }
1899
+ textColorToken: "primaryForeground",
1900
+ borderRadius: "rounded-full",
1901
+ shadow: {
1902
+ elevation: "low",
1903
+ softness: "soft",
1904
+ position: "bottom"
1947
1905
  },
1948
- {
1949
- id: "ghost",
1950
- name: "Ghost",
1951
- enabled: true,
1952
- priority: 3,
1953
- background: { type: "transparent" },
1954
- textColorToken: "text",
1955
- borderRadius: "rounded-full",
1956
- effects: { hover: [{
1957
- effectId: "background-on-hover",
1958
- options: { colorToken: "surface" }
1959
- }] }
1906
+ effects: {
1907
+ hover: [{
1908
+ effectId: "lift",
1909
+ options: { translateY: "-1px" }
1910
+ }],
1911
+ active: [{
1912
+ effectId: "scale-down",
1913
+ options: { scale: "0.98" }
1914
+ }]
1960
1915
  }
1961
- ]
1916
+ },
1917
+ {
1918
+ id: "secondary",
1919
+ name: "Secondary",
1920
+ enabled: true,
1921
+ priority: 2,
1922
+ background: { type: "transparent" },
1923
+ textColorToken: "primary",
1924
+ borderRadius: "rounded-full",
1925
+ border: {
1926
+ widthClass: "border-2",
1927
+ colorToken: "primary"
1928
+ },
1929
+ effects: { hover: [{
1930
+ effectId: "background-on-hover",
1931
+ options: { colorToken: "surface" }
1932
+ }] }
1933
+ },
1934
+ {
1935
+ id: "outline",
1936
+ name: "Outline",
1937
+ enabled: true,
1938
+ priority: 3,
1939
+ background: { type: "transparent" },
1940
+ textColorToken: "text",
1941
+ borderRadius: "rounded-full",
1942
+ border: {
1943
+ widthClass: "border",
1944
+ colorToken: "border"
1945
+ },
1946
+ effects: { hover: [{
1947
+ effectId: "background-on-hover",
1948
+ options: { colorToken: "surface" }
1949
+ }] }
1950
+ },
1951
+ {
1952
+ id: "ghost",
1953
+ name: "Ghost",
1954
+ enabled: true,
1955
+ priority: 3,
1956
+ background: { type: "transparent" },
1957
+ textColorToken: "text",
1958
+ borderRadius: "rounded-full",
1959
+ effects: { hover: [{
1960
+ effectId: "background-on-hover",
1961
+ options: { colorToken: "surface" }
1962
+ }] }
1963
+ }
1964
+ ]
1965
+ }
1966
+ });
1967
+ //#endregion
1968
+ //#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
1969
+ const solidSecondary = {
1970
+ id: "secondary",
1971
+ name: "Secondary",
1972
+ enabled: true,
1973
+ priority: 2,
1974
+ background: {
1975
+ type: "solid",
1976
+ colorToken: "secondary"
1977
+ },
1978
+ textColorToken: "onSecondary",
1979
+ borderRadius: "rounded-full",
1980
+ shadow: {
1981
+ elevation: "none",
1982
+ softness: null,
1983
+ position: "bottom"
1984
+ },
1985
+ effects: {
1986
+ hover: [{
1987
+ effectId: "background-on-hover-alpha",
1988
+ options: {
1989
+ colorToken: "secondary",
1990
+ opacity: 88
1991
+ }
1992
+ }],
1993
+ active: [{
1994
+ effectId: "scale-down",
1995
+ options: { scale: "0.98" }
1996
+ }]
1997
+ }
1998
+ };
1999
+ //#endregion
2000
+ //#region ../theme-core/src/buttons/personalities/index.ts
2001
+ const buttonPersonalities = [
2002
+ softPill,
2003
+ defineButtonPersonality({
2004
+ id: "two-tone-pill",
2005
+ name: "Two-tone Pill",
2006
+ description: "Rounded pills with distinct solid primary and secondary brand colours.",
2007
+ tags: softPill.tags,
2008
+ buttonSystem: {
2009
+ ...softPill.buttonSystem,
2010
+ variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
1962
2011
  }
1963
2012
  }),
1964
2013
  earthPill,
@@ -3323,6 +3372,7 @@ const navFontWeight = z$1.enum([
3323
3372
  "bold"
3324
3373
  ]);
3325
3374
  const headerMaxWidth = z$1.enum(["container", "full"]);
3375
+ const headerBarFrame = z$1.enum(["full-bleed", "inset-shell"]);
3326
3376
  const headerContainerSchema = z$1.object({
3327
3377
  rounded: z$1.enum([
3328
3378
  "none",
@@ -3467,6 +3517,7 @@ const headerSchema = z$1.object({
3467
3517
  positioning: headerPositioning,
3468
3518
  shrinkOnScroll: z$1.boolean(),
3469
3519
  maxWidth: headerMaxWidth,
3520
+ barFrame: headerBarFrame.optional(),
3470
3521
  logoOverride: mediaSchema.nullable().optional(),
3471
3522
  background: headerBackgroundSchema.default({
3472
3523
  type: "color",
@@ -3476,6 +3527,7 @@ const headerSchema = z$1.object({
3476
3527
  navStyle: headerNavStyle,
3477
3528
  navColor: themeColorTokenSchema.nullable().optional(),
3478
3529
  navWeight: navFontWeight.default("medium"),
3530
+ navFontRole: z$1.enum(["body", "heading"]).optional(),
3479
3531
  navTypography: z$1.enum(["body", "heading"]).optional(),
3480
3532
  navTextSize: navLinkStyleSchema.shape.textSize,
3481
3533
  navPlacement: z$1.enum(["end", "center"]).optional(),
@@ -3491,7 +3543,21 @@ const headerSchema = z$1.object({
3491
3543
  ctaTreatment: headerCtaTreatmentSchema.optional(),
3492
3544
  ctaVariant: z$1.string().min(1).optional(),
3493
3545
  dropdownStyle: dropdownStyleSchema
3494
- });
3546
+ }).transform(normaliseHeaderNavFontRole);
3547
+ /**
3548
+ * Normalises the legacy `navTypography` font-role alias into the canonical
3549
+ * `navFontRole` field so persisted themes migrate at the parse boundary without
3550
+ * a data migration. `navFontRole` always wins when both are present; the legacy
3551
+ * field is dropped so we never carry a dual write forward.
3552
+ */
3553
+ function normaliseHeaderNavFontRole(header) {
3554
+ if (header.navTypography === void 0) return header;
3555
+ const { navTypography, ...rest } = header;
3556
+ return header.navFontRole === void 0 ? {
3557
+ ...rest,
3558
+ navFontRole: navTypography
3559
+ } : rest;
3560
+ }
3495
3561
  const footerVariant = z$1.enum([
3496
3562
  "simple",
3497
3563
  "columns",
@@ -948,6 +948,12 @@
948
948
  .rb-lg-hidden {
949
949
  display: none;
950
950
  }
951
+ .rb-lg-flex-row {
952
+ flex-direction: row;
953
+ }
954
+ .rb-lg-items-center {
955
+ align-items: center;
956
+ }
951
957
  }
952
958
  }
953
959
 
@@ -12324,7 +12330,7 @@
12324
12330
  [data-block="feature-cards"][data-block-composition="asymmetric-emphasis"]
12325
12331
  .rb-feature-card {
12326
12332
  height: auto;
12327
- overflow: hidden;
12333
+ overflow: visible;
12328
12334
  border: 0;
12329
12335
  border-radius: 0;
12330
12336
  background: transparent;