@riverbankcms/sdk 0.101.0 → 0.103.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 (123) hide show
  1. package/README.md +10 -2
  2. package/dist/{PreviewEditorSidebar-DBpy0KTh.mjs → PreviewEditorSidebar-DkNpCPja.mjs} +430 -74
  3. package/dist/{PreviewEditorUI-Fg6I2R2T.mjs → PreviewEditorUI-DeNKtqk3.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BICQLAUF.mjs → PreviewQueryProvider-ZF6TXq5Q.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DFQP-Q53.mjs → SdkPreviewModeRuntime-5bCsXK2y.mjs} +694 -329
  6. package/dist/{SiteChromeCustomizeContext-GwZc89KN.mjs → SiteChromeCustomizeContext-CO1sTK_W.mjs} +538 -69
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +298 -298
  8. package/dist/_dts/ai/src/designer/rfc6902.d.ts +57 -1
  9. package/dist/_dts/ai/src/designer/themePatch.d.ts +16 -6
  10. package/dist/_dts/api/src/bookingVerticals.d.ts +53 -1
  11. package/dist/_dts/api/src/index.d.ts +1 -1
  12. package/dist/_dts/api/src/navigation/contracts.d.ts +6 -6
  13. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -0
  15. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -1
  16. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  17. package/dist/_dts/blocks/src/index.d.ts +1 -1
  18. package/dist/_dts/blocks/src/server.d.ts +1 -1
  19. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +7 -7
  20. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  21. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +14 -14
  22. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +5 -5
  23. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +227 -227
  24. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  27. package/dist/_dts/blocks/src/system/inlineText.d.ts +2 -2
  28. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +177 -177
  29. package/dist/_dts/blocks/src/system/node/schema.d.ts +1 -1
  30. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/layout.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
  33. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  34. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  35. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  36. package/dist/_dts/core/src/branded.d.ts +4 -0
  37. package/dist/_dts/core/src/person-records.d.ts +6 -1
  38. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +154 -18
  39. package/dist/_dts/db/src/schemas/forms.d.ts +15 -15
  40. package/dist/_dts/media-core/src/identifiers.d.ts +14 -1
  41. package/dist/_dts/preview-next/src/client/blocks/composer/mergeDrafts.d.ts +1 -1
  42. package/dist/_dts/preview-next/src/client/blocks/previewProjection/applyPreviewProjections.d.ts +3 -1
  43. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  44. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -1
  45. package/dist/_dts/preview-next/src/client/preview/CustomizeColorTokenPicker.d.ts +27 -0
  46. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  47. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +2 -1
  48. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +10 -2
  49. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +43 -7
  50. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +1 -1
  51. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +16 -1
  52. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +3 -2
  53. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +4 -4
  54. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  55. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +4 -2
  56. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  57. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  58. package/dist/_dts/sdk/src/contracts/page.d.ts +2 -0
  59. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +10 -10
  60. package/dist/_dts/sdk/src/next/revalidate.d.ts +14 -1
  61. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -4
  62. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
  63. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -2
  64. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -4
  65. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -0
  66. package/dist/_dts/sdk/src/version.d.ts +1 -1
  67. package/dist/_dts/site-commands/src/commands.d.ts +19 -19
  68. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  69. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  70. package/dist/_dts/theme-core/src/buttons/types.d.ts +7 -7
  71. package/dist/_dts/theme-core/src/cards/types.d.ts +6 -6
  72. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  73. package/dist/_dts/theme-core/src/inputs/types.d.ts +4 -4
  74. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +150 -144
  75. package/dist/_dts/theme-core/src/navigation/types.d.ts +6 -6
  76. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +5 -5
  77. package/dist/_dts/theme-core/src/schema.d.ts +199 -169
  78. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  79. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  80. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +28 -26
  81. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  82. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +4 -4
  83. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  84. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +9 -2
  85. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +3 -3
  86. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +50 -2
  87. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +77 -0
  88. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +44 -0
  89. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  90. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  92. package/dist/_dts/ui/src/badge.d.ts +1 -1
  93. package/dist/_dts/ui/src/button.d.ts +1 -1
  94. package/dist/_dts/ui/src/card.d.ts +1 -1
  95. package/dist/_dts/ui/src/toggle.d.ts +2 -2
  96. package/dist/cli/index.mjs +58 -21
  97. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +9 -1
  98. package/dist/client/client.mjs +379 -83
  99. package/dist/client/hooks.mjs +27 -6
  100. package/dist/client/rendering/client.mjs +46 -17
  101. package/dist/client/rendering.mjs +378 -82
  102. package/dist/preview-next/before-render.mjs +1 -1
  103. package/dist/preview-next/client/runtime.mjs +4 -4
  104. package/dist/{previewAuthStore-Da74OL0X.mjs → previewAuthStore-ByPPZqmp.mjs} +1 -0
  105. package/dist/{sdk-runtime-CP6Kwalv.mjs → sdk-runtime-C8whifOy.mjs} +2 -2
  106. package/dist/{separator-BVk7GvGN.mjs → separator-CM2C5Axs.mjs} +1 -1
  107. package/dist/server/components.mjs +357 -77
  108. package/dist/server/config-validation.mjs +26 -6
  109. package/dist/server/config.mjs +26 -6
  110. package/dist/server/data.mjs +26 -6
  111. package/dist/server/index.mjs +2 -2
  112. package/dist/server/next/revalidate.mjs +31 -1
  113. package/dist/server/next.mjs +361 -78
  114. package/dist/server/page-converter.mjs +19 -5
  115. package/dist/server/prebuild.mjs +1 -1
  116. package/dist/server/rendering/server.mjs +359 -77
  117. package/dist/server/rendering.mjs +359 -77
  118. package/dist/server/routing.mjs +40 -9
  119. package/dist/server/server.mjs +29 -7
  120. package/dist/server/theme-bridge.mjs +158 -36
  121. package/dist/server/theme.mjs +3 -0
  122. package/dist/styles/index.css +123 -30
  123. package/package.json +1 -1
@@ -4748,6 +4748,7 @@ var init_rawStyleFields = __esmMin((() => {
4748
4748
  "_sectionStyles",
4749
4749
  "_containerStyles",
4750
4750
  "_cardStyles",
4751
+ "_transitionStyles",
4751
4752
  "styleGroup"
4752
4753
  ];
4753
4754
  themeV2BlockSpecificRawStyleFieldNames = [
@@ -5485,6 +5486,8 @@ var init_schema$2 = __esmMin((() => {
5485
5486
  navStyle: headerNavStyle,
5486
5487
  navColor: themeColorTokenSchema.nullable().optional(),
5487
5488
  navWeight: navFontWeight.default("medium"),
5489
+ navTypography: z$1.enum(["body", "heading"]).optional(),
5490
+ navTextSize: navLinkStyleSchema.shape.textSize,
5488
5491
  container: headerContainerSchema,
5489
5492
  border: headerBorderSchema,
5490
5493
  shadow: componentShadowSchema.optional(),
@@ -7972,9 +7975,21 @@ var init_backgroundAppearance = __esmMin((() => {
7972
7975
  }));
7973
7976
  //#endregion
7974
7977
  //#region ../theme-core/src/site-styles/compositionBudget.ts
7975
- var init_compositionBudget = __esmMin((() => {})), noneBoundaryOption, softBoundaryOption, spaciousBoundaryOption;
7978
+ var init_compositionBudget = __esmMin((() => {}));
7979
+ //#endregion
7980
+ //#region ../theme-core/src/site-styles/sectionTransitions.ts
7981
+ function boundaryRuntimeMetrics(family, size, heightExpression) {
7982
+ return {
7983
+ family,
7984
+ size,
7985
+ heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
7986
+ reserveCss: `calc((${heightExpression}) / 2)`
7987
+ };
7988
+ }
7989
+ var noneBoundaryOption, softBoundaryOption, spaciousBoundaryOption;
7976
7990
  var init_sectionTransitions = __esmMin((() => {
7977
7991
  init_types$8();
7992
+ boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
7978
7993
  noneBoundaryOption = {
7979
7994
  id: asBoundaryOptionId("break:none"),
7980
7995
  label: "None",
@@ -8494,7 +8509,7 @@ function asHeaderStyleId(value) {
8494
8509
  * optional nested styling fields that would otherwise leak from another Look.
8495
8510
  */
8496
8511
  function baseHeader(theme) {
8497
- const { navLinkStyle: _navLinkStyle, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
8512
+ 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;
8498
8513
  return {
8499
8514
  ...header,
8500
8515
  navContainer: {
@@ -8963,12 +8978,12 @@ var init_headerLooks = __esmMin((() => {
8963
8978
  },
8964
8979
  {
8965
8980
  id: asHeaderStyleId("fine-line"),
8966
- label: "Fine Line",
8967
- description: "Light surface with a crisp lower rule and underline hover.",
8981
+ label: "Seamless",
8982
+ description: "Borderless surface with underline hover for a quieter page transition.",
8968
8983
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
8969
8984
  navInteraction: "underline-grow",
8970
- surface: "bordered",
8971
- defaultDepth: "line",
8985
+ surface: "neutral",
8986
+ defaultDepth: "none",
8972
8987
  navTypography: "plain",
8973
8988
  moods: [
8974
8989
  "calm",
@@ -10628,6 +10643,7 @@ var init_runtimeCompiler = __esmMin((() => {
10628
10643
  init_personalities();
10629
10644
  init_variants();
10630
10645
  init_designState();
10646
+ init_sectionTransitions();
10631
10647
  defaultDesignRuntimeRules = defineDesignRuntimeRules({
10632
10648
  sectionSurfaces: {
10633
10649
  base: {},
@@ -12443,7 +12459,10 @@ var init_siteChromeBackgrounds = __esmMin((() => {
12443
12459
  siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
12444
12460
  quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
12445
12461
  siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
12446
- })), themeTokenRecipeOptions;
12462
+ }));
12463
+ //#endregion
12464
+ //#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
12465
+ var init_siteChromeNavPreferences = __esmMin((() => {})), themeTokenRecipeOptions;
12447
12466
  var init_tokenRecipes = __esmMin((() => {
12448
12467
  themeTokenRecipeOptions = {
12449
12468
  palette: [
@@ -12528,6 +12547,7 @@ var init_site_styles = __esmMin((() => {
12528
12547
  init_runtimeCompiler();
12529
12548
  init_sectionTransitions();
12530
12549
  init_siteChromeBackgrounds();
12550
+ init_siteChromeNavPreferences();
12531
12551
  init_siteStyleThemeCompiler();
12532
12552
  init_siteStyleBlockPolicies();
12533
12553
  init_sourceCatalogs();
@@ -12979,6 +12999,7 @@ function svgDataUrl(svg) {
12979
12999
  }
12980
13000
  var init_generateLayoutCss = __esmMin((() => {
12981
13001
  init_breakpoints();
13002
+ init_sectionTransitions();
12982
13003
  svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V46C130 55 260 24 420 30C590 36 690 62 860 42C1035 21 1160 47 1305 36C1365 31 1415 33 1440 38V72H0Z' fill='white'/></svg>");
12983
13004
  svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V42C120 24 240 24 360 42C480 60 600 60 720 42C840 24 960 24 1080 42C1200 60 1320 60 1440 42V72H0Z' fill='white'/></svg>");
12984
13005
  svgDataUrl("<svg viewBox='0 0 1440 72' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><path d='M0 72V43C180 32 300 32 480 43C660 54 780 54 960 43C1140 32 1260 32 1440 43V72H0Z' fill='white'/></svg>");
@@ -29684,6 +29705,7 @@ var init_event_listing = __esmMin((() => {
29684
29705
  } },
29685
29706
  seeAllUrl: { $bind: {
29686
29707
  from: "content.seeAllUrl",
29708
+ fallback: "",
29687
29709
  transforms: [{ id: "links.resolve" }]
29688
29710
  } },
29689
29711
  loadMoreText: { $bind: {
@@ -30030,6 +30052,7 @@ var init_event_calendar = __esmMin((() => {
30030
30052
  } },
30031
30053
  seeAllUrl: { $bind: {
30032
30054
  from: "content.seeAllUrl",
30055
+ fallback: "",
30033
30056
  transforms: [{ id: "links.resolve" }]
30034
30057
  } },
30035
30058
  loadMoreText: { $bind: {
@@ -38103,11 +38126,12 @@ var init_siteOnboarding = __esmMin((() => {
38103
38126
  //#region ../api/src/launchReadiness.ts
38104
38127
  var init_launchReadiness = __esmMin((() => {
38105
38128
  init_siteOnboarding();
38106
- })), SURFACE_IDS, DEFAULT_SURFACE_ID;
38129
+ })), SURFACE_IDS, DEFAULT_SURFACE_ID, NAMED_SURFACE_IDS;
38107
38130
  var init_src$1 = __esmMin((() => {
38108
38131
  SURFACE_IDS = ["core", "macadamia"];
38109
38132
  DEFAULT_SURFACE_ID = "core";
38110
- SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID);
38133
+ NAMED_SURFACE_IDS = SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID);
38134
+ [...NAMED_SURFACE_IDS];
38111
38135
  }));
38112
38136
  //#endregion
38113
38137
  //#region ../api/src/url.ts
@@ -38300,6 +38324,7 @@ var init_bookingVerticals = __esmMin((() => {
38300
38324
  "training_provider",
38301
38325
  "retreat_centre",
38302
38326
  "music_school",
38327
+ "voice_singing",
38303
38328
  "performing_arts_school",
38304
38329
  "community_wellbeing",
38305
38330
  "venue_event_space"
@@ -38352,6 +38377,11 @@ var init_bookingVerticals = __esmMin((() => {
38352
38377
  preset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
38353
38378
  preset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
38354
38379
  preset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
38380
+ preset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
38381
+ preset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
38382
+ preset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
38383
+ preset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
38384
+ preset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
38355
38385
  preset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
38356
38386
  preset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
38357
38387
  preset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
@@ -39652,6 +39682,7 @@ async function loadPageWithDeps(deps, params) {
39652
39682
  }
39653
39683
  return {
39654
39684
  page: pageOutline,
39685
+ runtimeBoundaries: pageData.runtimeBoundaries,
39655
39686
  theme: support.theme,
39656
39687
  sdkConfig: support.sdkConfig,
39657
39688
  siteId,
@@ -6918,7 +6918,7 @@ const API_ENDPOINTS$1 = {
6918
6918
  //#region ../surfaces/src/index.ts
6919
6919
  const SURFACE_IDS = ["core", "macadamia"];
6920
6920
  const DEFAULT_SURFACE_ID = "core";
6921
- SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID);
6921
+ [...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
6922
6922
  //#endregion
6923
6923
  //#region ../api/src/url.ts
6924
6924
  function looksLikeLocalAuthority(authority) {
@@ -7527,7 +7527,7 @@ var SimpleCache = class {
7527
7527
  * 1. This constant
7528
7528
  * 2. The "version" field in package.json
7529
7529
  */
7530
- const SDK_VERSION = "0.101.0";
7530
+ const SDK_VERSION = "0.103.0";
7531
7531
  //#endregion
7532
7532
  //#region src/client/error.ts
7533
7533
  let _Symbol$for;
@@ -13737,6 +13737,7 @@ const themeV2RuntimeStyleFieldNames = [
13737
13737
  "_sectionStyles",
13738
13738
  "_containerStyles",
13739
13739
  "_cardStyles",
13740
+ "_transitionStyles",
13740
13741
  "styleGroup"
13741
13742
  ];
13742
13743
  const themeV2BlockSpecificRawStyleFieldNames = [
@@ -14458,6 +14459,8 @@ const headerSchema = z$1.object({
14458
14459
  navStyle: headerNavStyle,
14459
14460
  navColor: themeColorTokenSchema.nullable().optional(),
14460
14461
  navWeight: navFontWeight.default("medium"),
14462
+ navTypography: z$1.enum(["body", "heading"]).optional(),
14463
+ navTextSize: navLinkStyleSchema.shape.textSize,
14461
14464
  container: headerContainerSchema,
14462
14465
  border: headerBorderSchema,
14463
14466
  shadow: componentShadowSchema.optional(),
@@ -16836,6 +16839,15 @@ function uniqueStrings(values) {
16836
16839
  }
16837
16840
  //#endregion
16838
16841
  //#region ../theme-core/src/site-styles/sectionTransitions.ts
16842
+ function boundaryRuntimeMetrics(family, size, heightExpression) {
16843
+ return {
16844
+ family,
16845
+ size,
16846
+ heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
16847
+ reserveCss: `calc((${heightExpression}) / 2)`
16848
+ };
16849
+ }
16850
+ boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
16839
16851
  const noneBoundaryOption = {
16840
16852
  id: asBoundaryOptionId("break:none"),
16841
16853
  label: "None",
@@ -17523,7 +17535,7 @@ const overlayLogoAccommodations = [
17523
17535
  * optional nested styling fields that would otherwise leak from another Look.
17524
17536
  */
17525
17537
  function baseHeader(theme) {
17526
- const { navLinkStyle: _navLinkStyle, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
17538
+ 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;
17527
17539
  return {
17528
17540
  ...header,
17529
17541
  navContainer: {
@@ -17596,12 +17608,12 @@ const headerStyleCatalog = defineExactCatalog()([
17596
17608
  },
17597
17609
  {
17598
17610
  id: asHeaderStyleId("fine-line"),
17599
- label: "Fine Line",
17600
- description: "Light surface with a crisp lower rule and underline hover.",
17611
+ label: "Seamless",
17612
+ description: "Borderless surface with underline hover for a quieter page transition.",
17601
17613
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
17602
17614
  navInteraction: "underline-grow",
17603
- surface: "bordered",
17604
- defaultDepth: "line",
17615
+ surface: "neutral",
17616
+ defaultDepth: "none",
17605
17617
  navTypography: "plain",
17606
17618
  moods: [
17607
17619
  "calm",
@@ -35549,6 +35561,7 @@ const eventListingBlockDefinition = {
35549
35561
  } },
35550
35562
  seeAllUrl: { $bind: {
35551
35563
  from: "content.seeAllUrl",
35564
+ fallback: "",
35552
35565
  transforms: [{ id: "links.resolve" }]
35553
35566
  } },
35554
35567
  loadMoreText: { $bind: {
@@ -35852,6 +35865,7 @@ const eventCalendarLayout = [styledSection({
35852
35865
  } },
35853
35866
  seeAllUrl: { $bind: {
35854
35867
  from: "content.seeAllUrl",
35868
+ fallback: "",
35855
35869
  transforms: [{ id: "links.resolve" }]
35856
35870
  } },
35857
35871
  loadMoreText: { $bind: {
@@ -43346,6 +43360,7 @@ const VERTICAL_IDS = [
43346
43360
  "training_provider",
43347
43361
  "retreat_centre",
43348
43362
  "music_school",
43363
+ "voice_singing",
43349
43364
  "performing_arts_school",
43350
43365
  "community_wellbeing",
43351
43366
  "venue_event_space"
@@ -43398,6 +43413,11 @@ const VERTICAL_BOOKING_PRESETS = [
43398
43413
  preset("music_school.terms", "music_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date group courses."),
43399
43414
  preset("music_school.workshops", "music_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
43400
43415
  preset("music_school.performances", "music_school", "performance", "Performance", "Performances", "Concerts, recitals, showcases, or ticketed performances."),
43416
+ preset("voice_singing.lessons", "voice_singing", "appointment", "Voice session", "Voice sessions", "One-to-one singing lessons, voice coaching, or private practice sessions."),
43417
+ preset("voice_singing.classes", "voice_singing", "class", "Ongoing weekly session", "Ongoing weekly sessions", "Regular choirs, voice circles, community singing, or group practice."),
43418
+ preset("voice_singing.terms", "voice_singing", "course", "Singing term", "Singing terms", "Multi-week choir terms, voice courses, or fixed-date group programmes."),
43419
+ preset("voice_singing.workshops", "voice_singing", "workshop", "Workshop", "Workshops", "One-off singing workshops, voice journeys, or devotional singing sessions."),
43420
+ preset("voice_singing.performances", "voice_singing", "performance", "Performance", "Performances", "Choir concerts, sharing events, recitals, or community performances."),
43401
43421
  preset("performing_arts_school.classes", "performing_arts_school", "class", "Class", "Classes", "Regular group classes, rehearsals, or weekly sessions."),
43402
43422
  preset("performing_arts_school.terms", "performing_arts_school", "course", "Term", "Terms", "Multi-week term blocks or fixed-date course groups."),
43403
43423
  preset("performing_arts_school.workshops", "performing_arts_school", "workshop", "Workshop", "Workshops", "One-off workshops, masterclasses, or intensives."),
@@ -44456,6 +44476,7 @@ async function loadPageWithDeps(deps, params) {
44456
44476
  }
44457
44477
  return {
44458
44478
  page: pageOutline,
44479
+ runtimeBoundaries: pageData.runtimeBoundaries,
44459
44480
  theme: support.theme,
44460
44481
  sdkConfig: support.sdkConfig,
44461
44482
  siteId,
@@ -45217,6 +45238,7 @@ async function loadContentFromContentResponseWithDeps(deps, params) {
45217
45238
  ogImageId: pageRecord.ogImageId ?? null
45218
45239
  },
45219
45240
  page: pageOutline,
45241
+ runtimeBoundaries: pageData.runtimeBoundaries,
45220
45242
  theme: support.theme,
45221
45243
  siteId,
45222
45244
  ...support.customBlocks ? { customBlocks: support.customBlocks } : {},
@@ -2839,6 +2839,9 @@ function asDesignBlockId(value) {
2839
2839
  function asAppearancePresetId(value) {
2840
2840
  return brandNonEmptyString(value, "AppearancePresetId");
2841
2841
  }
2842
+ function asBoundaryOptionId(value) {
2843
+ return brandNonEmptyString(value, "BoundaryOptionId");
2844
+ }
2842
2845
  function asSiteStyleId(value) {
2843
2846
  const siteStyleId = brandNonEmptyString(value, "SiteStyleId");
2844
2847
  if (!siteStyleId.startsWith("site-style:")) throw new Error(`SiteStyleId must start with "site-style:". Received: ${value}`);
@@ -3009,6 +3012,7 @@ const themeV2RuntimeStyleFieldNames = [
3009
3012
  "_sectionStyles",
3010
3013
  "_containerStyles",
3011
3014
  "_cardStyles",
3015
+ "_transitionStyles",
3012
3016
  "styleGroup"
3013
3017
  ];
3014
3018
  const themeV2BlockSpecificRawStyleFieldNames = [
@@ -3608,6 +3612,8 @@ const headerSchema = z$1.object({
3608
3612
  navStyle: headerNavStyle,
3609
3613
  navColor: themeColorTokenSchema.nullable().optional(),
3610
3614
  navWeight: navFontWeight.default("medium"),
3615
+ navTypography: z$1.enum(["body", "heading"]).optional(),
3616
+ navTextSize: navLinkStyleSchema.shape.textSize,
3611
3617
  container: headerContainerSchema,
3612
3618
  border: headerBorderSchema,
3613
3619
  shadow: componentShadowSchema.optional(),
@@ -5695,7 +5701,7 @@ const overlayLogoAccommodations = [
5695
5701
  * optional nested styling fields that would otherwise leak from another Look.
5696
5702
  */
5697
5703
  function baseHeader(theme) {
5698
- const { navLinkStyle: _navLinkStyle, dropdownStyle: _dropdownStyle, ctaVariant: _ctaVariant, navContainer: _navContainer, container: _container, shadow: _shadow, logo: _logo, logoText: _logoText, border: _border, ...header } = theme.header;
5704
+ 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;
5699
5705
  return {
5700
5706
  ...header,
5701
5707
  navContainer: {
@@ -5768,12 +5774,12 @@ const headerStyleCatalog = defineExactCatalog()([
5768
5774
  },
5769
5775
  {
5770
5776
  id: asHeaderStyleId("fine-line"),
5771
- label: "Fine Line",
5772
- description: "Light surface with a crisp lower rule and underline hover.",
5777
+ label: "Seamless",
5778
+ description: "Borderless surface with underline hover for a quieter page transition.",
5773
5779
  supportedLayoutIds: supportedLayouts(["classic", "centered"]),
5774
5780
  navInteraction: "underline-grow",
5775
- surface: "bordered",
5776
- defaultDepth: "line",
5781
+ surface: "neutral",
5782
+ defaultDepth: "none",
5777
5783
  navTypography: "plain",
5778
5784
  moods: [
5779
5785
  "calm",
@@ -7660,6 +7666,29 @@ z$1.object({
7660
7666
  styleAuthorities: z$1.array(blockRuntimeStyleAuthoritySchema)
7661
7667
  }).strict();
7662
7668
  //#endregion
7669
+ //#region ../theme-core/src/site-styles/sectionTransitions.ts
7670
+ function boundaryRuntimeMetrics(family, size, heightExpression) {
7671
+ return {
7672
+ family,
7673
+ size,
7674
+ heightCss: heightExpression.includes(" ") ? `calc(${heightExpression})` : heightExpression,
7675
+ reserveCss: `calc((${heightExpression}) / 2)`
7676
+ };
7677
+ }
7678
+ boundaryRuntimeMetrics("gradient", "medium", "6rem + 2px"), boundaryRuntimeMetrics("gradient", "spacious", "10rem"), boundaryRuntimeMetrics("gradient", "expansive", "14rem"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("wave", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("wave", "large", "7rem + 2px"), boundaryRuntimeMetrics("wave", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "medium", "6rem + 2px"), boundaryRuntimeMetrics("angle", "compact", "4.5rem + 2px"), boundaryRuntimeMetrics("angle", "large", "7rem + 2px");
7679
+ asBoundaryOptionId("break:none");
7680
+ asBoundaryOptionId("break:soft");
7681
+ asBoundaryOptionId("break:spacious");
7682
+ asBoundaryOptionId("break:expansive");
7683
+ asBoundaryOptionId("break:wave");
7684
+ asBoundaryOptionId("break:wave-balanced");
7685
+ asBoundaryOptionId("break:wave-gentle");
7686
+ asBoundaryOptionId("break:wave-bold");
7687
+ asBoundaryOptionId("break:wave-drift");
7688
+ asBoundaryOptionId("break:angle-subtle");
7689
+ asBoundaryOptionId("break:angle-balanced");
7690
+ asBoundaryOptionId("break:angle-steep");
7691
+ //#endregion
7663
7692
  //#region ../theme-core/src/site-styles/runtimeCompiler.ts
7664
7693
  function defineDesignRuntimeRules(rules) {
7665
7694
  return rules;
@@ -11708,52 +11737,53 @@ const containerResponsiveThemeCss = `/*
11708
11737
 
11709
11738
  /* Semantic spacing tokens (replaces Tailwind maps in src/system/spacing.ts) */
11710
11739
  .rb-section-pad-none {
11711
- padding-top: 0;
11712
- padding-bottom: 0;
11740
+ --rb-section-pad-y: 0rem;
11741
+ padding-top: var(--rb-section-pad-y);
11742
+ padding-bottom: var(--rb-section-pad-y);
11713
11743
  }
11714
11744
  .rb-section-pad-compact {
11715
- padding-top: 1.5rem;
11716
- padding-bottom: 1.5rem;
11745
+ --rb-section-pad-y: 1.5rem;
11746
+ padding-top: var(--rb-section-pad-y);
11747
+ padding-bottom: var(--rb-section-pad-y);
11717
11748
  }
11718
11749
  .rb-section-pad-cozy {
11719
- padding-top: 2.5rem;
11720
- padding-bottom: 2.5rem;
11750
+ --rb-section-pad-y: 2.5rem;
11751
+ padding-top: var(--rb-section-pad-y);
11752
+ padding-bottom: var(--rb-section-pad-y);
11721
11753
  }
11722
11754
  .rb-section-pad-medium {
11723
- padding-top: 3rem;
11724
- padding-bottom: 3rem;
11755
+ --rb-section-pad-y: 3rem;
11756
+ padding-top: var(--rb-section-pad-y);
11757
+ padding-bottom: var(--rb-section-pad-y);
11725
11758
  }
11726
11759
  .rb-section-pad-comfortable {
11727
- padding-top: 4rem;
11728
- padding-bottom: 4rem;
11760
+ --rb-section-pad-y: 4rem;
11761
+ padding-top: var(--rb-section-pad-y);
11762
+ padding-bottom: var(--rb-section-pad-y);
11729
11763
  }
11730
11764
  .rb-section-pad-spacious {
11731
- padding-top: 5rem;
11732
- padding-bottom: 5rem;
11765
+ --rb-section-pad-y: 5rem;
11766
+ padding-top: var(--rb-section-pad-y);
11767
+ padding-bottom: var(--rb-section-pad-y);
11733
11768
  }
11734
11769
 
11735
11770
  @container rb-site (min-width: 640px) {
11736
11771
 
11737
11772
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11738
11773
  .rb-section-pad-compact {
11739
- padding-top: 2rem;
11740
- padding-bottom: 2rem;
11774
+ --rb-section-pad-y: 2rem;
11741
11775
  }
11742
11776
  .rb-section-pad-cozy {
11743
- padding-top: 3.5rem;
11744
- padding-bottom: 3.5rem;
11777
+ --rb-section-pad-y: 3.5rem;
11745
11778
  }
11746
11779
  .rb-section-pad-medium {
11747
- padding-top: 4rem;
11748
- padding-bottom: 4rem;
11780
+ --rb-section-pad-y: 4rem;
11749
11781
  }
11750
11782
  .rb-section-pad-comfortable {
11751
- padding-top: 5rem;
11752
- padding-bottom: 5rem;
11783
+ --rb-section-pad-y: 5rem;
11753
11784
  }
11754
11785
  .rb-section-pad-spacious {
11755
- padding-top: 7rem;
11756
- padding-bottom: 7rem;
11786
+ --rb-section-pad-y: 7rem;
11757
11787
  }
11758
11788
  }
11759
11789
 
@@ -13143,30 +13173,122 @@ const containerResponsiveThemeCss = `/*
13143
13173
  :where(.theme-scope) .header-logo-text {
13144
13174
  font-size: 1.125rem; /* matches rb-text-lg */
13145
13175
  line-height: 1.75rem;
13176
+ margin-inline: -0.18em;
13177
+ padding-inline: 0.18em;
13146
13178
  transition: font-size 300ms var(--motion-ease, ease);
13147
13179
  }
13148
13180
 
13149
- /* Mobile: reduce site title size (~30%) to keep header compact */
13181
+ /* Centered variant uses larger title */
13182
+ :where(.theme-scope) .header-variant-centered .header-logo-text {
13183
+ font-size: 1.25rem; /* matches rb-text-xl */
13184
+ line-height: 1.75rem;
13185
+ }
13186
+
13187
+ :where(.theme-scope) .header-logo-size-compact .header-logo-text {
13188
+ font-size: 0.95rem;
13189
+ line-height: 1.5rem;
13190
+ }
13191
+ :where(.theme-scope) .header-logo-size-standard .header-logo-text {
13192
+ font-size: 1.125rem;
13193
+ line-height: 1.75rem;
13194
+ }
13195
+ :where(.theme-scope) .header-logo-size-generous .header-logo-text {
13196
+ font-size: 1.35rem;
13197
+ line-height: 1.9rem;
13198
+ }
13199
+ :where(.theme-scope) .header-logo-size-display .header-logo-text {
13200
+ font-size: 1.75rem;
13201
+ line-height: 2.25rem;
13202
+ }
13203
+
13204
+ :where(.theme-scope)
13205
+ .header-variant-centered
13206
+ .header-logo-size-compact
13207
+ .header-logo-text {
13208
+ font-size: 1.125rem;
13209
+ line-height: 1.75rem;
13210
+ }
13211
+ :where(.theme-scope)
13212
+ .header-variant-centered
13213
+ .header-logo-size-standard
13214
+ .header-logo-text {
13215
+ font-size: 1.25rem;
13216
+ line-height: 1.75rem;
13217
+ }
13218
+ :where(.theme-scope)
13219
+ .header-variant-centered
13220
+ .header-logo-size-generous
13221
+ .header-logo-text {
13222
+ font-size: 1.6rem;
13223
+ line-height: 2rem;
13224
+ }
13225
+ :where(.theme-scope)
13226
+ .header-variant-centered
13227
+ .header-logo-size-display
13228
+ .header-logo-text {
13229
+ font-size: 2.1rem;
13230
+ line-height: 2.5rem;
13231
+ }
13232
+
13233
+ /* Mobile: reduce site title size to keep header compact */
13150
13234
  @container rb-site (max-width: 767px) {
13151
13235
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
13152
- :where(.theme-scope) .header-logo-text {
13236
+ :where(.theme-scope) .header-logo-text,
13237
+ :where(.theme-scope) .header-logo-size-standard .header-logo-text {
13153
13238
  font-size: 0.8rem;
13154
13239
  line-height: 1.25rem;
13155
13240
  }
13156
13241
 
13157
- :where(.theme-scope) .header-variant-centered .header-logo-text {
13242
+ :where(.theme-scope) .header-logo-size-compact .header-logo-text {
13243
+ font-size: 0.75rem;
13244
+ line-height: 1.15rem;
13245
+ }
13246
+
13247
+ :where(.theme-scope) .header-logo-size-generous .header-logo-text {
13248
+ font-size: 1rem;
13249
+ line-height: 1.4rem;
13250
+ }
13251
+
13252
+ :where(.theme-scope) .header-logo-size-display .header-logo-text {
13253
+ font-size: 1.25rem;
13254
+ line-height: 1.65rem;
13255
+ }
13256
+
13257
+ :where(.theme-scope) .header-variant-centered .header-logo-text,
13258
+ :where(.theme-scope)
13259
+ .header-variant-centered
13260
+ .header-logo-size-standard
13261
+ .header-logo-text {
13158
13262
  font-size: 0.875rem;
13159
13263
  line-height: 1.25rem;
13160
13264
  }
13265
+
13266
+ :where(.theme-scope)
13267
+ .header-variant-centered
13268
+ .header-logo-size-compact
13269
+ .header-logo-text {
13270
+ font-size: 0.8rem;
13271
+ line-height: 1.2rem;
13272
+ }
13273
+
13274
+ :where(.theme-scope)
13275
+ .header-variant-centered
13276
+ .header-logo-size-generous
13277
+ .header-logo-text {
13278
+ font-size: 1.125rem;
13279
+ line-height: 1.5rem;
13280
+ }
13281
+
13282
+ :where(.theme-scope)
13283
+ .header-variant-centered
13284
+ .header-logo-size-display
13285
+ .header-logo-text {
13286
+ font-size: 1.35rem;
13287
+ line-height: 1.75rem;
13288
+ }
13161
13289
  }
13162
13290
  }
13163
13291
 
13164
- /* Centered variant uses larger title */
13165
- :where(.theme-scope) .header-variant-centered .header-logo-text {
13166
- font-size: 1.25rem; /* matches rb-text-xl */
13167
- line-height: 1.75rem;
13168
- }
13169
-
13170
13292
  /* =================================================================
13171
13293
  Shrink on Scroll - Logo & Title
13172
13294
  ================================================================= */
@@ -2657,6 +2657,7 @@ const themeV2RuntimeStyleFieldNames = [
2657
2657
  "_sectionStyles",
2658
2658
  "_containerStyles",
2659
2659
  "_cardStyles",
2660
+ "_transitionStyles",
2660
2661
  "styleGroup"
2661
2662
  ];
2662
2663
  const themeV2BlockSpecificRawStyleFieldNames = [
@@ -3222,6 +3223,8 @@ const headerSchema = z$1.object({
3222
3223
  navStyle: headerNavStyle,
3223
3224
  navColor: themeColorTokenSchema.nullable().optional(),
3224
3225
  navWeight: navFontWeight.default("medium"),
3226
+ navTypography: z$1.enum(["body", "heading"]).optional(),
3227
+ navTextSize: navLinkStyleSchema.shape.textSize,
3225
3228
  container: headerContainerSchema,
3226
3229
  border: headerBorderSchema,
3227
3230
  shadow: componentShadowSchema.optional(),