@riverbankcms/sdk 0.102.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 (101) hide show
  1. package/README.md +10 -2
  2. package/dist/{PreviewEditorSidebar-BKkhhkJk.mjs → PreviewEditorSidebar-DkNpCPja.mjs} +75 -9
  3. package/dist/{PreviewEditorUI-DIvTqcqI.mjs → PreviewEditorUI-DeNKtqk3.mjs} +2 -2
  4. package/dist/{SdkPreviewModeRuntime-CA2k7Z_T.mjs → SdkPreviewModeRuntime-5bCsXK2y.mjs} +572 -285
  5. package/dist/{SiteChromeCustomizeContext-Bh9-DtMQ.mjs → SiteChromeCustomizeContext-CO1sTK_W.mjs} +336 -36
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +298 -298
  7. package/dist/_dts/api/src/index.d.ts +1 -1
  8. package/dist/_dts/api/src/navigation/contracts.d.ts +6 -6
  9. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  10. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -1
  11. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  12. package/dist/_dts/blocks/src/index.d.ts +1 -1
  13. package/dist/_dts/blocks/src/server.d.ts +1 -1
  14. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +7 -7
  15. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  16. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +14 -14
  17. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +5 -5
  18. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +227 -227
  19. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +1 -1
  20. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  21. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  22. package/dist/_dts/blocks/src/system/inlineText.d.ts +2 -2
  23. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +177 -177
  24. package/dist/_dts/blocks/src/system/node/schema.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
  27. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  28. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  29. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +154 -18
  30. package/dist/_dts/db/src/schemas/forms.d.ts +15 -15
  31. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -1
  32. package/dist/_dts/preview-next/src/client/preview/CustomizeColorTokenPicker.d.ts +27 -0
  33. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  34. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +10 -2
  35. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +1 -1
  36. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +16 -1
  37. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +3 -2
  38. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  39. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  40. package/dist/_dts/sdk/src/contracts/page.d.ts +2 -0
  41. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +10 -10
  42. package/dist/_dts/sdk/src/next/revalidate.d.ts +14 -1
  43. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -4
  44. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
  45. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -2
  46. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -4
  47. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -0
  48. package/dist/_dts/sdk/src/version.d.ts +1 -1
  49. package/dist/_dts/site-commands/src/commands.d.ts +19 -19
  50. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  51. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  52. package/dist/_dts/theme-core/src/buttons/types.d.ts +7 -7
  53. package/dist/_dts/theme-core/src/cards/types.d.ts +6 -6
  54. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  55. package/dist/_dts/theme-core/src/inputs/types.d.ts +4 -4
  56. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +150 -144
  57. package/dist/_dts/theme-core/src/navigation/types.d.ts +6 -6
  58. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +5 -5
  59. package/dist/_dts/theme-core/src/schema.d.ts +199 -169
  60. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  61. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  62. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +24 -24
  63. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  64. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  65. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -2
  66. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +26 -1
  67. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +77 -0
  68. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +44 -0
  69. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  70. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  71. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  72. package/dist/_dts/ui/src/badge.d.ts +1 -1
  73. package/dist/_dts/ui/src/button.d.ts +1 -1
  74. package/dist/_dts/ui/src/card.d.ts +1 -1
  75. package/dist/_dts/ui/src/toggle.d.ts +2 -2
  76. package/dist/cli/index.mjs +28 -7
  77. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +9 -1
  78. package/dist/client/client.mjs +337 -69
  79. package/dist/client/hooks.mjs +13 -1
  80. package/dist/client/rendering/client.mjs +25 -4
  81. package/dist/client/rendering.mjs +336 -68
  82. package/dist/preview-next/client/runtime.mjs +3 -3
  83. package/dist/{sdk-runtime-K8Oqj97H.mjs → sdk-runtime-C8whifOy.mjs} +1 -1
  84. package/dist/{separator-CRoP34pT.mjs → separator-CM2C5Axs.mjs} +1 -1
  85. package/dist/server/components.mjs +321 -65
  86. package/dist/server/config-validation.mjs +12 -1
  87. package/dist/server/config.mjs +12 -1
  88. package/dist/server/data.mjs +12 -1
  89. package/dist/server/index.mjs +1 -1
  90. package/dist/server/next/revalidate.mjs +31 -1
  91. package/dist/server/next.mjs +325 -66
  92. package/dist/server/page-converter.mjs +12 -1
  93. package/dist/server/prebuild.mjs +1 -1
  94. package/dist/server/rendering/server.mjs +323 -65
  95. package/dist/server/rendering.mjs +323 -65
  96. package/dist/server/routing.mjs +24 -3
  97. package/dist/server/server.mjs +15 -2
  98. package/dist/server/theme-bridge.mjs +153 -32
  99. package/dist/server/theme.mjs +2 -0
  100. package/dist/styles/index.css +123 -30
  101. package/package.json +1 -1
@@ -5486,6 +5486,8 @@ var init_schema$2 = __esmMin((() => {
5486
5486
  navStyle: headerNavStyle,
5487
5487
  navColor: themeColorTokenSchema.nullable().optional(),
5488
5488
  navWeight: navFontWeight.default("medium"),
5489
+ navTypography: z$1.enum(["body", "heading"]).optional(),
5490
+ navTextSize: navLinkStyleSchema.shape.textSize,
5489
5491
  container: headerContainerSchema,
5490
5492
  border: headerBorderSchema,
5491
5493
  shadow: componentShadowSchema.optional(),
@@ -7973,9 +7975,21 @@ var init_backgroundAppearance = __esmMin((() => {
7973
7975
  }));
7974
7976
  //#endregion
7975
7977
  //#region ../theme-core/src/site-styles/compositionBudget.ts
7976
- 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;
7977
7990
  var init_sectionTransitions = __esmMin((() => {
7978
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");
7979
7993
  noneBoundaryOption = {
7980
7994
  id: asBoundaryOptionId("break:none"),
7981
7995
  label: "None",
@@ -8495,7 +8509,7 @@ function asHeaderStyleId(value) {
8495
8509
  * optional nested styling fields that would otherwise leak from another Look.
8496
8510
  */
8497
8511
  function baseHeader(theme) {
8498
- 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;
8499
8513
  return {
8500
8514
  ...header,
8501
8515
  navContainer: {
@@ -10629,6 +10643,7 @@ var init_runtimeCompiler = __esmMin((() => {
10629
10643
  init_personalities();
10630
10644
  init_variants();
10631
10645
  init_designState();
10646
+ init_sectionTransitions();
10632
10647
  defaultDesignRuntimeRules = defineDesignRuntimeRules({
10633
10648
  sectionSurfaces: {
10634
10649
  base: {},
@@ -12444,7 +12459,10 @@ var init_siteChromeBackgrounds = __esmMin((() => {
12444
12459
  siteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceColorTokenNames);
12445
12460
  quickSiteChromeBackgroundColorTokens = toSiteChromeBackgroundColorTokens(backgroundAppearanceQuickColorTokenNames);
12446
12461
  siteChromeBackgroundColorTokens.filter((token) => !quickSiteChromeBackgroundColorTokens.includes(token));
12447
- })), themeTokenRecipeOptions;
12462
+ }));
12463
+ //#endregion
12464
+ //#region ../theme-core/src/site-styles/siteChromeNavPreferences.ts
12465
+ var init_siteChromeNavPreferences = __esmMin((() => {})), themeTokenRecipeOptions;
12448
12466
  var init_tokenRecipes = __esmMin((() => {
12449
12467
  themeTokenRecipeOptions = {
12450
12468
  palette: [
@@ -12529,6 +12547,7 @@ var init_site_styles = __esmMin((() => {
12529
12547
  init_runtimeCompiler();
12530
12548
  init_sectionTransitions();
12531
12549
  init_siteChromeBackgrounds();
12550
+ init_siteChromeNavPreferences();
12532
12551
  init_siteStyleThemeCompiler();
12533
12552
  init_siteStyleBlockPolicies();
12534
12553
  init_sourceCatalogs();
@@ -12980,6 +12999,7 @@ function svgDataUrl(svg) {
12980
12999
  }
12981
13000
  var init_generateLayoutCss = __esmMin((() => {
12982
13001
  init_breakpoints();
13002
+ init_sectionTransitions();
12983
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>");
12984
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>");
12985
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>");
@@ -39662,6 +39682,7 @@ async function loadPageWithDeps(deps, params) {
39662
39682
  }
39663
39683
  return {
39664
39684
  page: pageOutline,
39685
+ runtimeBoundaries: pageData.runtimeBoundaries,
39665
39686
  theme: support.theme,
39666
39687
  sdkConfig: support.sdkConfig,
39667
39688
  siteId,
@@ -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.102.0";
7530
+ const SDK_VERSION = "0.103.0";
7531
7531
  //#endregion
7532
7532
  //#region src/client/error.ts
7533
7533
  let _Symbol$for;
@@ -14459,6 +14459,8 @@ const headerSchema = z$1.object({
14459
14459
  navStyle: headerNavStyle,
14460
14460
  navColor: themeColorTokenSchema.nullable().optional(),
14461
14461
  navWeight: navFontWeight.default("medium"),
14462
+ navTypography: z$1.enum(["body", "heading"]).optional(),
14463
+ navTextSize: navLinkStyleSchema.shape.textSize,
14462
14464
  container: headerContainerSchema,
14463
14465
  border: headerBorderSchema,
14464
14466
  shadow: componentShadowSchema.optional(),
@@ -16837,6 +16839,15 @@ function uniqueStrings(values) {
16837
16839
  }
16838
16840
  //#endregion
16839
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");
16840
16851
  const noneBoundaryOption = {
16841
16852
  id: asBoundaryOptionId("break:none"),
16842
16853
  label: "None",
@@ -17524,7 +17535,7 @@ const overlayLogoAccommodations = [
17524
17535
  * optional nested styling fields that would otherwise leak from another Look.
17525
17536
  */
17526
17537
  function baseHeader(theme) {
17527
- 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;
17528
17539
  return {
17529
17540
  ...header,
17530
17541
  navContainer: {
@@ -44465,6 +44476,7 @@ async function loadPageWithDeps(deps, params) {
44465
44476
  }
44466
44477
  return {
44467
44478
  page: pageOutline,
44479
+ runtimeBoundaries: pageData.runtimeBoundaries,
44468
44480
  theme: support.theme,
44469
44481
  sdkConfig: support.sdkConfig,
44470
44482
  siteId,
@@ -45226,6 +45238,7 @@ async function loadContentFromContentResponseWithDeps(deps, params) {
45226
45238
  ogImageId: pageRecord.ogImageId ?? null
45227
45239
  },
45228
45240
  page: pageOutline,
45241
+ runtimeBoundaries: pageData.runtimeBoundaries,
45229
45242
  theme: support.theme,
45230
45243
  siteId,
45231
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}`);
@@ -3609,6 +3612,8 @@ const headerSchema = z$1.object({
3609
3612
  navStyle: headerNavStyle,
3610
3613
  navColor: themeColorTokenSchema.nullable().optional(),
3611
3614
  navWeight: navFontWeight.default("medium"),
3615
+ navTypography: z$1.enum(["body", "heading"]).optional(),
3616
+ navTextSize: navLinkStyleSchema.shape.textSize,
3612
3617
  container: headerContainerSchema,
3613
3618
  border: headerBorderSchema,
3614
3619
  shadow: componentShadowSchema.optional(),
@@ -5696,7 +5701,7 @@ const overlayLogoAccommodations = [
5696
5701
  * optional nested styling fields that would otherwise leak from another Look.
5697
5702
  */
5698
5703
  function baseHeader(theme) {
5699
- 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;
5700
5705
  return {
5701
5706
  ...header,
5702
5707
  navContainer: {
@@ -7661,6 +7666,29 @@ z$1.object({
7661
7666
  styleAuthorities: z$1.array(blockRuntimeStyleAuthoritySchema)
7662
7667
  }).strict();
7663
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
7664
7692
  //#region ../theme-core/src/site-styles/runtimeCompiler.ts
7665
7693
  function defineDesignRuntimeRules(rules) {
7666
7694
  return rules;
@@ -11709,52 +11737,53 @@ const containerResponsiveThemeCss = `/*
11709
11737
 
11710
11738
  /* Semantic spacing tokens (replaces Tailwind maps in src/system/spacing.ts) */
11711
11739
  .rb-section-pad-none {
11712
- padding-top: 0;
11713
- 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);
11714
11743
  }
11715
11744
  .rb-section-pad-compact {
11716
- padding-top: 1.5rem;
11717
- 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);
11718
11748
  }
11719
11749
  .rb-section-pad-cozy {
11720
- padding-top: 2.5rem;
11721
- 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);
11722
11753
  }
11723
11754
  .rb-section-pad-medium {
11724
- padding-top: 3rem;
11725
- 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);
11726
11758
  }
11727
11759
  .rb-section-pad-comfortable {
11728
- padding-top: 4rem;
11729
- 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);
11730
11763
  }
11731
11764
  .rb-section-pad-spacious {
11732
- padding-top: 5rem;
11733
- 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);
11734
11768
  }
11735
11769
 
11736
11770
  @container rb-site (min-width: 640px) {
11737
11771
 
11738
11772
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
11739
11773
  .rb-section-pad-compact {
11740
- padding-top: 2rem;
11741
- padding-bottom: 2rem;
11774
+ --rb-section-pad-y: 2rem;
11742
11775
  }
11743
11776
  .rb-section-pad-cozy {
11744
- padding-top: 3.5rem;
11745
- padding-bottom: 3.5rem;
11777
+ --rb-section-pad-y: 3.5rem;
11746
11778
  }
11747
11779
  .rb-section-pad-medium {
11748
- padding-top: 4rem;
11749
- padding-bottom: 4rem;
11780
+ --rb-section-pad-y: 4rem;
11750
11781
  }
11751
11782
  .rb-section-pad-comfortable {
11752
- padding-top: 5rem;
11753
- padding-bottom: 5rem;
11783
+ --rb-section-pad-y: 5rem;
11754
11784
  }
11755
11785
  .rb-section-pad-spacious {
11756
- padding-top: 7rem;
11757
- padding-bottom: 7rem;
11786
+ --rb-section-pad-y: 7rem;
11758
11787
  }
11759
11788
  }
11760
11789
 
@@ -13144,30 +13173,122 @@ const containerResponsiveThemeCss = `/*
13144
13173
  :where(.theme-scope) .header-logo-text {
13145
13174
  font-size: 1.125rem; /* matches rb-text-lg */
13146
13175
  line-height: 1.75rem;
13176
+ margin-inline: -0.18em;
13177
+ padding-inline: 0.18em;
13147
13178
  transition: font-size 300ms var(--motion-ease, ease);
13148
13179
  }
13149
13180
 
13150
- /* 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 */
13151
13234
  @container rb-site (max-width: 767px) {
13152
13235
  @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
13153
- :where(.theme-scope) .header-logo-text {
13236
+ :where(.theme-scope) .header-logo-text,
13237
+ :where(.theme-scope) .header-logo-size-standard .header-logo-text {
13154
13238
  font-size: 0.8rem;
13155
13239
  line-height: 1.25rem;
13156
13240
  }
13157
13241
 
13158
- :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 {
13159
13262
  font-size: 0.875rem;
13160
13263
  line-height: 1.25rem;
13161
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
+ }
13162
13289
  }
13163
13290
  }
13164
13291
 
13165
- /* Centered variant uses larger title */
13166
- :where(.theme-scope) .header-variant-centered .header-logo-text {
13167
- font-size: 1.25rem; /* matches rb-text-xl */
13168
- line-height: 1.75rem;
13169
- }
13170
-
13171
13292
  /* =================================================================
13172
13293
  Shrink on Scroll - Logo & Title
13173
13294
  ================================================================= */
@@ -3223,6 +3223,8 @@ const headerSchema = z$1.object({
3223
3223
  navStyle: headerNavStyle,
3224
3224
  navColor: themeColorTokenSchema.nullable().optional(),
3225
3225
  navWeight: navFontWeight.default("medium"),
3226
+ navTypography: z$1.enum(["body", "heading"]).optional(),
3227
+ navTextSize: navLinkStyleSchema.shape.textSize,
3226
3228
  container: headerContainerSchema,
3227
3229
  border: headerBorderSchema,
3228
3230
  shadow: componentShadowSchema.optional(),
@@ -1550,51 +1550,52 @@
1550
1550
 
1551
1551
  /* Semantic spacing tokens (replaces Tailwind maps in src/system/spacing.ts) */
1552
1552
  .rb-section-pad-none {
1553
- padding-top: 0;
1554
- padding-bottom: 0;
1553
+ --rb-section-pad-y: 0rem;
1554
+ padding-top: var(--rb-section-pad-y);
1555
+ padding-bottom: var(--rb-section-pad-y);
1555
1556
  }
1556
1557
  .rb-section-pad-compact {
1557
- padding-top: 1.5rem;
1558
- padding-bottom: 1.5rem;
1558
+ --rb-section-pad-y: 1.5rem;
1559
+ padding-top: var(--rb-section-pad-y);
1560
+ padding-bottom: var(--rb-section-pad-y);
1559
1561
  }
1560
1562
  .rb-section-pad-cozy {
1561
- padding-top: 2.5rem;
1562
- padding-bottom: 2.5rem;
1563
+ --rb-section-pad-y: 2.5rem;
1564
+ padding-top: var(--rb-section-pad-y);
1565
+ padding-bottom: var(--rb-section-pad-y);
1563
1566
  }
1564
1567
  .rb-section-pad-medium {
1565
- padding-top: 3rem;
1566
- padding-bottom: 3rem;
1568
+ --rb-section-pad-y: 3rem;
1569
+ padding-top: var(--rb-section-pad-y);
1570
+ padding-bottom: var(--rb-section-pad-y);
1567
1571
  }
1568
1572
  .rb-section-pad-comfortable {
1569
- padding-top: 4rem;
1570
- padding-bottom: 4rem;
1573
+ --rb-section-pad-y: 4rem;
1574
+ padding-top: var(--rb-section-pad-y);
1575
+ padding-bottom: var(--rb-section-pad-y);
1571
1576
  }
1572
1577
  .rb-section-pad-spacious {
1573
- padding-top: 5rem;
1574
- padding-bottom: 5rem;
1578
+ --rb-section-pad-y: 5rem;
1579
+ padding-top: var(--rb-section-pad-y);
1580
+ padding-bottom: var(--rb-section-pad-y);
1575
1581
  }
1576
1582
 
1577
1583
  @media (min-width: 640px) {
1578
1584
  @scope ([data-rb-responsive-mode="viewport"]) to (:scope [data-rb-responsive-mode]) {
1579
1585
  .rb-section-pad-compact {
1580
- padding-top: 2rem;
1581
- padding-bottom: 2rem;
1586
+ --rb-section-pad-y: 2rem;
1582
1587
  }
1583
1588
  .rb-section-pad-cozy {
1584
- padding-top: 3.5rem;
1585
- padding-bottom: 3.5rem;
1589
+ --rb-section-pad-y: 3.5rem;
1586
1590
  }
1587
1591
  .rb-section-pad-medium {
1588
- padding-top: 4rem;
1589
- padding-bottom: 4rem;
1592
+ --rb-section-pad-y: 4rem;
1590
1593
  }
1591
1594
  .rb-section-pad-comfortable {
1592
- padding-top: 5rem;
1593
- padding-bottom: 5rem;
1595
+ --rb-section-pad-y: 5rem;
1594
1596
  }
1595
1597
  .rb-section-pad-spacious {
1596
- padding-top: 7rem;
1597
- padding-bottom: 7rem;
1598
+ --rb-section-pad-y: 7rem;
1598
1599
  }
1599
1600
  }
1600
1601
  }
@@ -2972,26 +2973,118 @@
2972
2973
  :where(.theme-scope) .header-logo-text {
2973
2974
  font-size: 1.125rem; /* matches rb-text-lg */
2974
2975
  line-height: 1.75rem;
2976
+ margin-inline: -0.18em;
2977
+ padding-inline: 0.18em;
2975
2978
  transition: font-size 300ms var(--motion-ease, ease);
2976
2979
  }
2977
2980
 
2978
- /* Mobile: reduce site title size (~30%) to keep header compact */
2981
+ /* Centered variant uses larger title */
2982
+ :where(.theme-scope) .header-variant-centered .header-logo-text {
2983
+ font-size: 1.25rem; /* matches rb-text-xl */
2984
+ line-height: 1.75rem;
2985
+ }
2986
+
2987
+ :where(.theme-scope) .header-logo-size-compact .header-logo-text {
2988
+ font-size: 0.95rem;
2989
+ line-height: 1.5rem;
2990
+ }
2991
+ :where(.theme-scope) .header-logo-size-standard .header-logo-text {
2992
+ font-size: 1.125rem;
2993
+ line-height: 1.75rem;
2994
+ }
2995
+ :where(.theme-scope) .header-logo-size-generous .header-logo-text {
2996
+ font-size: 1.35rem;
2997
+ line-height: 1.9rem;
2998
+ }
2999
+ :where(.theme-scope) .header-logo-size-display .header-logo-text {
3000
+ font-size: 1.75rem;
3001
+ line-height: 2.25rem;
3002
+ }
3003
+
3004
+ :where(.theme-scope)
3005
+ .header-variant-centered
3006
+ .header-logo-size-compact
3007
+ .header-logo-text {
3008
+ font-size: 1.125rem;
3009
+ line-height: 1.75rem;
3010
+ }
3011
+ :where(.theme-scope)
3012
+ .header-variant-centered
3013
+ .header-logo-size-standard
3014
+ .header-logo-text {
3015
+ font-size: 1.25rem;
3016
+ line-height: 1.75rem;
3017
+ }
3018
+ :where(.theme-scope)
3019
+ .header-variant-centered
3020
+ .header-logo-size-generous
3021
+ .header-logo-text {
3022
+ font-size: 1.6rem;
3023
+ line-height: 2rem;
3024
+ }
3025
+ :where(.theme-scope)
3026
+ .header-variant-centered
3027
+ .header-logo-size-display
3028
+ .header-logo-text {
3029
+ font-size: 2.1rem;
3030
+ line-height: 2.5rem;
3031
+ }
3032
+
3033
+ /* Mobile: reduce site title size to keep header compact */
2979
3034
  @media (max-width: 767px) {
2980
- :where(.theme-scope) .header-logo-text {
3035
+ :where(.theme-scope) .header-logo-text,
3036
+ :where(.theme-scope) .header-logo-size-standard .header-logo-text {
2981
3037
  font-size: 0.8rem;
2982
3038
  line-height: 1.25rem;
2983
3039
  }
2984
3040
 
2985
- :where(.theme-scope) .header-variant-centered .header-logo-text {
3041
+ :where(.theme-scope) .header-logo-size-compact .header-logo-text {
3042
+ font-size: 0.75rem;
3043
+ line-height: 1.15rem;
3044
+ }
3045
+
3046
+ :where(.theme-scope) .header-logo-size-generous .header-logo-text {
3047
+ font-size: 1rem;
3048
+ line-height: 1.4rem;
3049
+ }
3050
+
3051
+ :where(.theme-scope) .header-logo-size-display .header-logo-text {
3052
+ font-size: 1.25rem;
3053
+ line-height: 1.65rem;
3054
+ }
3055
+
3056
+ :where(.theme-scope) .header-variant-centered .header-logo-text,
3057
+ :where(.theme-scope)
3058
+ .header-variant-centered
3059
+ .header-logo-size-standard
3060
+ .header-logo-text {
2986
3061
  font-size: 0.875rem;
2987
3062
  line-height: 1.25rem;
2988
3063
  }
2989
- }
2990
3064
 
2991
- /* Centered variant uses larger title */
2992
- :where(.theme-scope) .header-variant-centered .header-logo-text {
2993
- font-size: 1.25rem; /* matches rb-text-xl */
2994
- line-height: 1.75rem;
3065
+ :where(.theme-scope)
3066
+ .header-variant-centered
3067
+ .header-logo-size-compact
3068
+ .header-logo-text {
3069
+ font-size: 0.8rem;
3070
+ line-height: 1.2rem;
3071
+ }
3072
+
3073
+ :where(.theme-scope)
3074
+ .header-variant-centered
3075
+ .header-logo-size-generous
3076
+ .header-logo-text {
3077
+ font-size: 1.125rem;
3078
+ line-height: 1.5rem;
3079
+ }
3080
+
3081
+ :where(.theme-scope)
3082
+ .header-variant-centered
3083
+ .header-logo-size-display
3084
+ .header-logo-text {
3085
+ font-size: 1.35rem;
3086
+ line-height: 1.75rem;
3087
+ }
2995
3088
  }
2996
3089
 
2997
3090
  /* =================================================================
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.102.0",
3
+ "version": "0.103.0",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",