@riverbankcms/sdk 0.102.0 → 0.104.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 (203) hide show
  1. package/README.md +10 -2
  2. package/dist/{PreviewEditorSidebar-BKkhhkJk.mjs → PreviewEditorSidebar-ywqcYjTB.mjs} +217 -131
  3. package/dist/{PreviewEditorUI-DIvTqcqI.mjs → PreviewEditorUI-DApUNF6g.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-ZF6TXq5Q.mjs → PreviewQueryProvider-CStABBUh.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CA2k7Z_T.mjs → SdkPreviewModeRuntime-DmHCcIMO.mjs} +1738 -815
  6. package/dist/{SiteChromeCustomizeContext-Bh9-DtMQ.mjs → SiteChromeCustomizeContext-BV9GU-3C.mjs} +3517 -2524
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +298 -298
  8. package/dist/_dts/api/src/contentRuntime.d.ts +6 -3
  9. package/dist/_dts/api/src/endpoints.d.ts +10 -3
  10. package/dist/_dts/api/src/index.d.ts +2 -2
  11. package/dist/_dts/api/src/navigation/contracts.d.ts +6 -6
  12. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  13. package/dist/_dts/api/src/siteIcons.d.ts +39 -43
  14. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +3 -3
  15. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +36 -7
  16. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +3 -3
  17. package/dist/_dts/block-form/src/widgets/SliderField/sliderValue.d.ts +36 -0
  18. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +3 -0
  19. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -1
  20. package/dist/_dts/blocks/src/bindings/index.d.ts +2 -2
  21. package/dist/_dts/blocks/src/index.d.ts +2 -2
  22. package/dist/_dts/blocks/src/server.d.ts +1 -1
  23. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +7 -7
  24. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +14 -14
  26. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +29 -29
  27. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +1 -0
  28. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +8 -5
  29. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +362 -227
  30. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  32. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/icons/generatedAssets.d.ts +28 -0
  34. package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/icons/value.d.ts +3 -6
  36. package/dist/_dts/blocks/src/system/inlineText.d.ts +2 -2
  37. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +417 -177
  38. package/dist/_dts/blocks/src/system/node/schema.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +1 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -7
  42. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  43. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -0
  44. package/dist/_dts/content-editor/src/ui/stores/generatedIconAssetsStore.d.ts +9 -0
  45. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  46. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +344 -0
  47. package/dist/_dts/db/src/schemas/forms.d.ts +15 -15
  48. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +7 -0
  49. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +2 -1
  50. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +4 -4
  51. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -3
  52. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +4 -4
  53. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +4 -4
  54. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +3 -3
  55. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -3
  56. package/dist/_dts/editor-blocks/src/block-editor/blockHeaderActionPlan.d.ts +1 -5
  57. package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +25 -19
  58. package/dist/_dts/editor-blocks/src/block-editor/generatedIconApplyCoordination.d.ts +32 -0
  59. package/dist/_dts/editor-blocks/src/widgets/icon-picker/GeneratedIconLibraryContext.d.ts +28 -0
  60. package/dist/_dts/editor-blocks/src/widgets/icon-picker/index.d.ts +2 -0
  61. package/dist/_dts/editor-blocks/src/widgets/icon-picker/loaders.d.ts +7 -0
  62. package/dist/_dts/preview-next/src/client/blocks/previewProjection/types.d.ts +2 -1
  63. package/dist/_dts/preview-next/src/client/preview/CustomizeBackgroundControlRows.d.ts +15 -0
  64. package/dist/_dts/preview-next/src/client/preview/CustomizeColorTokenPicker.d.ts +27 -0
  65. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -1
  66. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -1
  67. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +3 -1
  68. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -3
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +4 -3
  70. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -3
  71. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +13 -6
  72. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -4
  73. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +44 -18
  74. package/dist/_dts/preview-next/src/client/preview/sidebarTabPreference.d.ts +1 -1
  75. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +16 -1
  76. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +3 -2
  77. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +4 -5
  78. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +22 -1
  79. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +12 -4
  80. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -0
  81. package/dist/_dts/sdk/src/config/validation.d.ts +3 -3
  82. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  83. package/dist/_dts/sdk/src/contracts/page.d.ts +2 -0
  84. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +0 -1
  85. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +10 -10
  86. package/dist/_dts/sdk/src/next/revalidate.d.ts +14 -1
  87. package/dist/_dts/sdk/src/public-api/contracts.d.ts +9 -6
  88. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -1
  89. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -2
  90. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +3 -4
  91. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +1 -0
  92. package/dist/_dts/sdk/src/version.d.ts +1 -1
  93. package/dist/_dts/site-commands/src/commands.d.ts +19 -19
  94. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  95. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  96. package/dist/_dts/theme-core/src/buttons/types.d.ts +7 -7
  97. package/dist/_dts/theme-core/src/cards/types.d.ts +6 -6
  98. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  99. package/dist/_dts/theme-core/src/inputs/types.d.ts +4 -4
  100. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -150
  101. package/dist/_dts/theme-core/src/navigation/types.d.ts +8 -6
  102. package/dist/_dts/theme-core/src/palette/colors.d.ts +84 -0
  103. package/dist/_dts/theme-core/src/palette/{variants → curated}/brand-led.d.ts +12 -24
  104. package/dist/_dts/theme-core/src/palette/{variants → curated}/high-contrast.d.ts +9 -18
  105. package/dist/_dts/theme-core/src/palette/{variants → curated}/index.d.ts +67 -119
  106. package/dist/_dts/theme-core/src/palette/{variants → curated}/soft-natural.d.ts +12 -24
  107. package/dist/_dts/theme-core/src/palette/{variants → curated}/types.d.ts +52 -62
  108. package/dist/_dts/theme-core/src/palette/{variants → curated}/warm-dark.d.ts +6 -12
  109. package/dist/_dts/theme-core/src/palette/{variants → curated}/warm-neutral.d.ts +12 -24
  110. package/dist/_dts/theme-core/src/palette/editorState.d.ts +45 -0
  111. package/dist/_dts/theme-core/src/palette/index.d.ts +25 -14
  112. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +38 -0
  113. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +34 -0
  114. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +58 -0
  115. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +241 -0
  116. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +118 -0
  117. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +50 -0
  118. package/dist/_dts/theme-core/src/palette/selection.d.ts +72 -0
  119. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +34 -0
  120. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +58 -0
  121. package/dist/_dts/theme-core/src/schema.d.ts +208 -169
  122. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  123. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  124. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +22 -22
  125. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +24 -24
  126. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  127. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  128. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +35 -11
  129. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +48 -17
  130. package/dist/_dts/theme-core/src/site-styles/sectionTransitions.d.ts +77 -0
  131. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +45 -0
  132. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  133. package/dist/_dts/theme-core/src/site-styles/themeParity.d.ts +21 -0
  134. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  135. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  136. package/dist/_dts/ui/src/badge.d.ts +1 -1
  137. package/dist/_dts/ui/src/button.d.ts +1 -1
  138. package/dist/_dts/ui/src/card.d.ts +1 -1
  139. package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +2 -1
  140. package/dist/_dts/ui/src/toggle.d.ts +2 -2
  141. package/dist/cli/index.mjs +7815 -7445
  142. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +9 -1
  143. package/dist/client/{DiscountCodeDisclosure-ChVZwVtS.mjs → DiscountCodeDisclosure-Dit2aItR.mjs} +1 -1
  144. package/dist/client/{EventCombined.client-PZtXbH6R.mjs → EventCombined.client-BnREyCjf.mjs} +3 -3
  145. package/dist/client/{EventListing.client-C4AMTXec.mjs → EventListing.client-0uHld51x.mjs} +2 -2
  146. package/dist/client/{LeafletStaticMap-B0w8_i0u.mjs → LeafletStaticMap-DJcvSfmj.mjs} +1 -1
  147. package/dist/client/{MagicLinkForm-DF0ZGhIu.mjs → MagicLinkForm-EAsIktfw.mjs} +2 -2
  148. package/dist/client/{StepIndicator-PccQ89Ct.mjs → StepIndicator-CRR17tYI.mjs} +2 -2
  149. package/dist/client/{accordion-CTNWT1lk.mjs → accordion-B47HIuuH.mjs} +1 -1
  150. package/dist/client/{bookingForm-DYixwPqP.mjs → bookingForm-I1E-8F9P.mjs} +6 -6
  151. package/dist/client/{buttons-CySQwlFs.mjs → buttons-BbPn8OKA.mjs} +1 -1
  152. package/dist/client/{carousel-W75iYR0M.mjs → carousel-OlM7SyBs.mjs} +1 -1
  153. package/dist/client/{cart-Ca_DGWQq.mjs → cart-BKpG5jz6.mjs} +3 -3
  154. package/dist/client/{checkout-STgKTsNh.mjs → checkout-Dmmr6qoU.mjs} +3 -3
  155. package/dist/client/client.mjs +9000 -8353
  156. package/dist/client/{courseRegistration-DQI1cu1u.mjs → courseRegistration-CflZiqGk.mjs} +7 -7
  157. package/dist/client/{eventCalendar-BJrHpofg.mjs → eventCalendar-BvoLWcp-.mjs} +5 -5
  158. package/dist/client/{eventCombined-DPtqBHaH.mjs → eventCombined-DsrO8t_t.mjs} +2 -2
  159. package/dist/client/{eventDetails-Brt31CDo.mjs → eventDetails-C3hxgcJm.mjs} +3 -3
  160. package/dist/client/{eventListing-BrClHJOq.mjs → eventListing-C-hb237X.mjs} +2 -2
  161. package/dist/client/{eventRegistration-DxlNlVUC.mjs → eventRegistration-B0gyzDGi.mjs} +7 -7
  162. package/dist/client/{form-Vp5cGzDF.mjs → form-C_RUi6oJ.mjs} +2 -2
  163. package/dist/client/{headerSection-DL2xjRgW.mjs → headerSection-IKQiD2U0.mjs} +3 -3
  164. package/dist/client/hooks.mjs +4792 -4606
  165. package/dist/client/{locationMap-B0EjoXQS.mjs → locationMap-8ZBrMzRJ.mjs} +2 -2
  166. package/dist/client/{newsletterForm-BlV9VRlq.mjs → newsletterForm-CYk3ucwj.mjs} +2 -2
  167. package/dist/client/{pricing-DmRD7Tjx.mjs → pricing-B5GmvfIH.mjs} +1 -1
  168. package/dist/client/{productDetail-BLTQsY2f.mjs → productDetail-BjS2Dqzo.mjs} +3 -3
  169. package/dist/client/{productList-R8lsMpRs.mjs → productList-BOHvC8My.mjs} +3 -3
  170. package/dist/client/{propsDecoder-DgAshF92.mjs → propsDecoder-WS6UEJwZ.mjs} +7 -0
  171. package/dist/client/rendering/client.mjs +3565 -3218
  172. package/dist/client/rendering/islands.mjs +18 -18
  173. package/dist/client/rendering.mjs +8919 -8279
  174. package/dist/client/{shop-DWjyje1s.mjs → shop-CON03-wN.mjs} +6 -6
  175. package/dist/client/{shop-commerce-CSKCR87d.mjs → shop-commerce-DlqrFgH8.mjs} +5 -5
  176. package/dist/client/{shop-commerce-store-DxPnE-iN.mjs → shop-commerce-store-l74-Kne6.mjs} +1 -1
  177. package/dist/client/{shopShared-OOeAkFq7.mjs → shopShared-CQheEXSg.mjs} +2 -2
  178. package/dist/client/{useDiscountCodeUi-Bp6X7XgG.mjs → useDiscountCodeUi-v6OluyWl.mjs} +1 -1
  179. package/dist/client/{useEventFilters-B489x9TO.mjs → useEventFilters-BqSTcNOf.mjs} +3 -3
  180. package/dist/client/{usePolling-BKP66stL.mjs → usePolling-DMfADjIF.mjs} +2 -2
  181. package/dist/preview-next/before-render.mjs +10 -3
  182. package/dist/preview-next/client/runtime.mjs +4 -4
  183. package/dist/preview-next/middleware.mjs +10 -3
  184. package/dist/{previewAuthStore-ByPPZqmp.mjs → previewAuthStore-CfquDtTh.mjs} +10 -3
  185. package/dist/{sdk-runtime-K8Oqj97H.mjs → sdk-runtime-DWb08Xaz.mjs} +2 -2
  186. package/dist/{separator-CRoP34pT.mjs → separator--6yjc914.mjs} +1 -1
  187. package/dist/server/components.mjs +10183 -9621
  188. package/dist/server/config-validation.mjs +4871 -4686
  189. package/dist/server/config.mjs +4871 -4686
  190. package/dist/server/data.mjs +4848 -4663
  191. package/dist/server/index.mjs +11 -4
  192. package/dist/server/next/revalidate.mjs +31 -1
  193. package/dist/server/next.mjs +9894 -9322
  194. package/dist/server/page-converter.mjs +4758 -4573
  195. package/dist/server/prebuild.mjs +1 -1
  196. package/dist/server/rendering/server.mjs +10099 -9619
  197. package/dist/server/rendering.mjs +10195 -9631
  198. package/dist/server/routing.mjs +4985 -4701
  199. package/dist/server/server.mjs +4823 -4629
  200. package/dist/server/theme-bridge.mjs +360 -146
  201. package/dist/server/theme.mjs +94 -91
  202. package/dist/styles/index.css +143 -30
  203. package/package.json +1 -1
@@ -1,96 +1,6 @@
1
1
  import z, { z as z$1 } from "zod";
2
2
  import * as fs from "fs/promises";
3
3
  import * as path from "path";
4
- //#region ../theme-core/src/site-styles/styleTags.ts
5
- /**
6
- * Descriptive style-axis metadata for button personalities and palette
7
- * variants. Site Style picker shape is curated explicitly; these tags remain
8
- * for catalog audit, docs, and future discovery tooling.
9
- */
10
- const STYLE_AXIS_VALUES = {
11
- tone: [
12
- "minimal",
13
- "classic",
14
- "bold"
15
- ],
16
- energy: ["calm", "vibrant"],
17
- motion: [
18
- "subtle",
19
- "standard",
20
- "expressive"
21
- ],
22
- era: [
23
- "editorial",
24
- "modern",
25
- "organic",
26
- "technical",
27
- "retro"
28
- ]
29
- };
30
- const styleTagsSchema = z$1.object({
31
- tone: z$1.enum(STYLE_AXIS_VALUES.tone).optional(),
32
- energy: z$1.enum(STYLE_AXIS_VALUES.energy).optional(),
33
- motion: z$1.enum(STYLE_AXIS_VALUES.motion).optional(),
34
- era: z$1.enum(STYLE_AXIS_VALUES.era).optional()
35
- });
36
- //#endregion
37
- //#region ../theme-core/src/lib/media.ts
38
- const hotspotSchema = z.object({
39
- x: z.number().min(0).max(1),
40
- y: z.number().min(0).max(1),
41
- radius: z.number().optional()
42
- });
43
- const rotationSchema = z.union([
44
- z.literal(0),
45
- z.literal(90),
46
- z.literal(180),
47
- z.literal(270)
48
- ]);
49
- const rectSchema = z.tuple([
50
- z.number(),
51
- z.number(),
52
- z.number(),
53
- z.number()
54
- ]);
55
- const aspectCropSchema = z.object({
56
- aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
57
- rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
58
- hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
59
- rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
60
- });
61
- const transformSchema = z.object({
62
- aspectCrops: z.preprocess((value) => {
63
- if (!value || typeof value !== "object" || Array.isArray(value)) return;
64
- return value;
65
- }, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
66
- rect: rectSchema.optional(),
67
- hotspot: hotspotSchema.optional(),
68
- rotation: rotationSchema.optional()
69
- });
70
- const mediaSchema = z.object({
71
- type: z.enum([
72
- "image",
73
- "video",
74
- "audio",
75
- "document",
76
- "spreadsheet",
77
- "archive"
78
- ]),
79
- purpose: z.string().optional(),
80
- placeholder: z.boolean().default(true).optional(),
81
- assetId: z.string().optional(),
82
- identifier: z.string().optional(),
83
- src: z.string().optional(),
84
- alt: z.string().optional(),
85
- filename: z.string().optional(),
86
- mimeType: z.string().optional(),
87
- width: z.number().optional(),
88
- height: z.number().optional(),
89
- storageBucket: z.string().optional(),
90
- storagePath: z.string().optional(),
91
- transform: transformSchema.optional()
92
- });
93
- //#endregion
94
4
  //#region ../theme-core/src/tokens/colorTokenParts.ts
95
5
  function parseOpacityPercent(source) {
96
6
  const trimmed = source.trim();
@@ -224,6 +134,96 @@ function isThemeColorToken(value) {
224
134
  }
225
135
  const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isThemeColorToken(value)), "Expected a known Theme V2 color token");
226
136
  //#endregion
137
+ //#region ../theme-core/src/site-styles/styleTags.ts
138
+ /**
139
+ * Descriptive style-axis metadata for button personalities and palette
140
+ * variants. Site Style picker shape is curated explicitly; these tags remain
141
+ * for catalog audit, docs, and future discovery tooling.
142
+ */
143
+ const STYLE_AXIS_VALUES = {
144
+ tone: [
145
+ "minimal",
146
+ "classic",
147
+ "bold"
148
+ ],
149
+ energy: ["calm", "vibrant"],
150
+ motion: [
151
+ "subtle",
152
+ "standard",
153
+ "expressive"
154
+ ],
155
+ era: [
156
+ "editorial",
157
+ "modern",
158
+ "organic",
159
+ "technical",
160
+ "retro"
161
+ ]
162
+ };
163
+ const styleTagsSchema = z$1.object({
164
+ tone: z$1.enum(STYLE_AXIS_VALUES.tone).optional(),
165
+ energy: z$1.enum(STYLE_AXIS_VALUES.energy).optional(),
166
+ motion: z$1.enum(STYLE_AXIS_VALUES.motion).optional(),
167
+ era: z$1.enum(STYLE_AXIS_VALUES.era).optional()
168
+ });
169
+ //#endregion
170
+ //#region ../theme-core/src/lib/media.ts
171
+ const hotspotSchema = z.object({
172
+ x: z.number().min(0).max(1),
173
+ y: z.number().min(0).max(1),
174
+ radius: z.number().optional()
175
+ });
176
+ const rotationSchema = z.union([
177
+ z.literal(0),
178
+ z.literal(90),
179
+ z.literal(180),
180
+ z.literal(270)
181
+ ]);
182
+ const rectSchema = z.tuple([
183
+ z.number(),
184
+ z.number(),
185
+ z.number(),
186
+ z.number()
187
+ ]);
188
+ const aspectCropSchema = z.object({
189
+ aspect: z.preprocess((value) => value == null ? void 0 : value, z.string().optional()),
190
+ rect: z.preprocess((value) => value == null ? void 0 : value, rectSchema.optional()),
191
+ hotspot: z.preprocess((value) => value == null ? void 0 : value, hotspotSchema.optional()),
192
+ rotation: z.preprocess((value) => value == null ? void 0 : value, rotationSchema.optional())
193
+ });
194
+ const transformSchema = z.object({
195
+ aspectCrops: z.preprocess((value) => {
196
+ if (!value || typeof value !== "object" || Array.isArray(value)) return;
197
+ return value;
198
+ }, z.record(z.string(), aspectCropSchema.catch({}))).optional(),
199
+ rect: rectSchema.optional(),
200
+ hotspot: hotspotSchema.optional(),
201
+ rotation: rotationSchema.optional()
202
+ });
203
+ const mediaSchema = z.object({
204
+ type: z.enum([
205
+ "image",
206
+ "video",
207
+ "audio",
208
+ "document",
209
+ "spreadsheet",
210
+ "archive"
211
+ ]),
212
+ purpose: z.string().optional(),
213
+ placeholder: z.boolean().default(true).optional(),
214
+ assetId: z.string().optional(),
215
+ identifier: z.string().optional(),
216
+ src: z.string().optional(),
217
+ alt: z.string().optional(),
218
+ filename: z.string().optional(),
219
+ mimeType: z.string().optional(),
220
+ width: z.number().optional(),
221
+ height: z.number().optional(),
222
+ storageBucket: z.string().optional(),
223
+ storagePath: z.string().optional(),
224
+ transform: transformSchema.optional()
225
+ });
226
+ //#endregion
227
227
  //#region ../theme-core/src/buttons/types.ts
228
228
  /**
229
229
  * Standard semantic variant roles a theme exposes.
@@ -2211,7 +2211,8 @@ const navLinkTextSizeSchema = z$1.enum([
2211
2211
  "xs",
2212
2212
  "sm",
2213
2213
  "base",
2214
- "lg"
2214
+ "lg",
2215
+ "xl"
2215
2216
  ]);
2216
2217
  /**
2217
2218
  * Letter spacing options for nav links.
@@ -3223,6 +3224,8 @@ const headerSchema = z$1.object({
3223
3224
  navStyle: headerNavStyle,
3224
3225
  navColor: themeColorTokenSchema.nullable().optional(),
3225
3226
  navWeight: navFontWeight.default("medium"),
3227
+ navTypography: z$1.enum(["body", "heading"]).optional(),
3228
+ navTextSize: navLinkStyleSchema.shape.textSize,
3226
3229
  container: headerContainerSchema,
3227
3230
  border: headerBorderSchema,
3228
3231
  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
  /* =================================================================
@@ -10662,11 +10755,31 @@
10662
10755
  object-fit: contain;
10663
10756
  }
10664
10757
 
10758
+ :where(.theme-scope) .rb-feature-card-icon-zone--generated {
10759
+ align-self: center;
10760
+ inline-size: min(var(--rb-feature-card-generated-icon-size, 75px), 100%);
10761
+ max-inline-size: 100%;
10762
+ block-size: auto;
10763
+ aspect-ratio: 1;
10764
+ margin-inline: auto;
10765
+ padding: 0;
10766
+ border: 0;
10767
+ border-radius: 0;
10768
+ background: transparent;
10769
+ box-shadow: none;
10770
+ }
10771
+
10665
10772
  :where(.theme-scope) .rb-feature-card-icon-zone--plain .rb-feature-card-icon {
10666
10773
  width: 1.5rem;
10667
10774
  height: 1.5rem;
10668
10775
  }
10669
10776
 
10777
+ :where(.theme-scope) .rb-feature-card-icon-zone--generated .rb-feature-card-icon--generated {
10778
+ inline-size: 100%;
10779
+ max-inline-size: 100%;
10780
+ block-size: 100%;
10781
+ }
10782
+
10670
10783
  /* --- Card marker mode (icons / numbers / none) -----------------------------
10671
10784
  *
10672
10785
  * The icon zone and the number zone both sit in the DOM; the grid's
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.102.0",
3
+ "version": "0.104.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",