@riverbankcms/sdk 0.79.0 → 0.80.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 (160) hide show
  1. package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
  2. package/dist/{PreviewEditorUI-27KJVEET.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
  3. package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +20 -0
  5. package/dist/_dts/api/src/endpoints.d.ts +24 -0
  6. package/dist/_dts/api/src/index.d.ts +1 -1
  7. package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
  8. package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
  9. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +10 -1
  10. package/dist/_dts/block-form/src/client/index.d.ts +2 -0
  11. package/dist/_dts/block-form/src/index.d.ts +2 -0
  12. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
  13. package/dist/_dts/blocks/src/client/header.d.ts +1 -1
  14. package/dist/_dts/blocks/src/client.d.ts +12 -12
  15. package/dist/_dts/blocks/src/index.d.ts +1 -1
  16. package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
  17. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
  19. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  20. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +21 -12
  21. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
  22. package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
  23. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -0
  24. package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
  25. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
  27. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
  29. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
  30. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
  31. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
  32. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
  33. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
  34. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
  35. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
  38. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
  39. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +9 -3
  40. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -6
  41. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +2 -6
  42. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -6
  43. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +2 -6
  44. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +6 -4
  45. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -6
  46. package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
  47. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
  48. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
  49. package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
  50. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  51. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -1
  52. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
  53. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
  54. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
  55. package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
  56. package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
  57. package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
  58. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
  59. package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
  60. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  61. package/dist/_dts/sdk/src/client/management/types.d.ts +56 -0
  62. package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
  63. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +6 -3
  64. package/dist/_dts/sdk/src/version.d.ts +1 -1
  65. package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
  66. package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
  67. package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
  68. package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
  69. package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
  70. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  71. package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
  72. package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
  73. package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
  74. package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
  75. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  76. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -18
  77. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  78. package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
  79. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
  80. package/dist/_dts/theme-core/src/schema.d.ts +446 -52
  81. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
  82. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
  83. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
  84. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +110 -1
  85. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
  86. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -0
  87. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
  88. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  89. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
  90. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +2 -8
  91. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  92. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
  93. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
  94. package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  96. package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
  97. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  98. package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
  99. package/dist/{PreviewEditorSidebar-56NMJMIK.mjs → chunk-5NZGBSJF.mjs} +1423 -2451
  100. package/dist/{chunk-4HCW7FHJ.mjs → chunk-7PCYG6YV.mjs} +215 -137
  101. package/dist/{chunk-K2IIF34C.mjs → chunk-BBLZSQEY.mjs} +24 -0
  102. package/dist/{chunk-V47ZU33I.mjs → chunk-GYXKAUFV.mjs} +2785 -785
  103. package/dist/{chunk-GP555I66.mjs → chunk-HTB4BMKD.mjs} +94 -46
  104. package/dist/{chunk-A3HHFKVT.mjs → chunk-MPBNEVPB.mjs} +1 -1
  105. package/dist/cli/index.mjs +2100 -545
  106. package/dist/cli/init-docs/content/workflow-isr-revalidation.md +16 -4
  107. package/dist/client/{accordion-QLA7KBYO.mjs → accordion-QFZMNB7O.mjs} +1 -1
  108. package/dist/client/{bookingForm-PYZIPA5G.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
  109. package/dist/client/bookings.mjs +1144 -329
  110. package/dist/client/{carousel-5EIULWBI.mjs → carousel-EO4BJMWD.mjs} +2 -2
  111. package/dist/client/{cart-DOP3FNI4.mjs → cart-FTYCLYUW.mjs} +5 -5
  112. package/dist/client/{checkout-BVMF6FBV.mjs → checkout-NFGLVCOX.mjs} +5 -5
  113. package/dist/client/{chunk-TYONZMST.mjs → chunk-4W66ALYT.mjs} +1 -1
  114. package/dist/client/{chunk-44K2U3QI.mjs → chunk-6GVVWSPU.mjs} +4 -4
  115. package/dist/client/{chunk-UDS3NTWA.mjs → chunk-IWFZSQNZ.mjs} +1 -1
  116. package/dist/client/{chunk-R5ESWNKX.mjs → chunk-PUOELU4O.mjs} +89 -5
  117. package/dist/client/{chunk-YLDYVRZL.mjs → chunk-PYRBIURC.mjs} +4 -4
  118. package/dist/client/{chunk-GG4M2NP6.mjs → chunk-T6UIP6UZ.mjs} +1 -1
  119. package/dist/client/{chunk-V6M5FCR5.mjs → chunk-VDS5YFLX.mjs} +1 -1
  120. package/dist/client/{chunk-CCNTDRCF.mjs → chunk-Y37KDO7P.mjs} +1 -1
  121. package/dist/client/client.mjs +4205 -2324
  122. package/dist/client/{courseRegistration-E6EAA6NL.mjs → courseRegistration-2EORROPS.mjs} +3 -3
  123. package/dist/client/{eventCalendar-HBG3HAK6.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
  124. package/dist/client/{eventCombined-6K5ZZWAK.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
  125. package/dist/client/{eventDetails-Q75ICXLT.mjs → eventDetails-TFTATAPH.mjs} +5 -5
  126. package/dist/client/{eventListing-27P5F7DZ.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
  127. package/dist/client/{eventRegistration-IQ7AMASR.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
  128. package/dist/client/{form-JRTD65FN.mjs → form-NTIFD6WQ.mjs} +1 -1
  129. package/dist/client/{headerSection-7FPSSZHS.mjs → headerSection-7TBNKCLA.mjs} +65 -24
  130. package/dist/client/hooks.mjs +3354 -2006
  131. package/dist/client/{locationMap-7NGFNYBH.mjs → locationMap-LRLB5A3H.mjs} +1 -1
  132. package/dist/client/{newsletterForm-F3BADCI2.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
  133. package/dist/client/{productDetail-V3HP7ITJ.mjs → productDetail-GSNKBFLY.mjs} +5 -5
  134. package/dist/client/{productList-L3EGJUF2.mjs → productList-BGCGT4KZ.mjs} +5 -5
  135. package/dist/client/rendering/client.mjs +2570 -1657
  136. package/dist/client/rendering/islands.mjs +18 -18
  137. package/dist/client/rendering.mjs +4275 -2394
  138. package/dist/client/{shop-DQUB5E2C.mjs → shop-RQHUCLNY.mjs} +5 -5
  139. package/dist/preview-next/before-render.mjs +24 -0
  140. package/dist/preview-next/client/runtime.mjs +5 -5
  141. package/dist/preview-next/middleware.mjs +24 -0
  142. package/dist/{sdk-runtime-AF6KXJU4.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
  143. package/dist/server/components.mjs +4063 -2293
  144. package/dist/server/config-validation.mjs +3525 -2176
  145. package/dist/server/config.mjs +3525 -2176
  146. package/dist/server/data.mjs +3354 -2006
  147. package/dist/server/index.mjs +25 -1
  148. package/dist/server/next.mjs +4006 -2236
  149. package/dist/server/page-converter.mjs +2747 -1816
  150. package/dist/server/prebuild.mjs +1 -1
  151. package/dist/server/rendering/server.mjs +4063 -2293
  152. package/dist/server/rendering.mjs +4063 -2293
  153. package/dist/server/routing.mjs +3508 -2111
  154. package/dist/server/server.mjs +3372 -2024
  155. package/dist/server/theme-bridge.mjs +1436 -310
  156. package/dist/server/theme.mjs +409 -219
  157. package/dist/styles/index.css +300 -33
  158. package/package.json +1 -1
  159. package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +0 -8
  160. package/dist/chunk-LCY32PXF.mjs +0 -1175
@@ -1,3 +1,218 @@
1
+ /**
2
+ * Reusable accordion "looks" for curated site styles.
3
+ *
4
+ * Each curated site style should declare one of these (or a bespoke variant)
5
+ * via `themeOverrides.accordions` so its FAQ accordions carry the style's
6
+ * personality instead of falling back to the generic generated default. The
7
+ * looks vary the things that make an accordion read as designed vs. cheap:
8
+ * box vs. boxless, question typography (body vs. heading font + scale), icon,
9
+ * and how an open item is emphasised.
10
+ */
11
+ /**
12
+ * Boxless editorial list: transparent root, hairline dividers between rows,
13
+ * generous spacing, heading-font questions, plus/minus marks, and an accented
14
+ * tinted band on the open row. The reference "expensive" FAQ look.
15
+ */
16
+ export declare const editorialDividedAccordionSystem: {
17
+ readonly background: null;
18
+ readonly spacing: "comfortable";
19
+ readonly corners: "square";
20
+ readonly border: null;
21
+ readonly shadow: null;
22
+ readonly icon: {
23
+ readonly style: "plus-minus";
24
+ readonly position: "right";
25
+ readonly size: "md";
26
+ readonly colorToken: "primary";
27
+ };
28
+ readonly trigger: {
29
+ readonly textColorToken: "text";
30
+ readonly fontWeight: "regular";
31
+ readonly fontFamily: "heading";
32
+ readonly fontScale: "lg";
33
+ };
34
+ readonly hover: {
35
+ readonly textColorToken: "primary";
36
+ };
37
+ readonly openState: {
38
+ readonly backgroundColorToken: "surfaceAlt";
39
+ readonly triggerColorToken: "primary";
40
+ readonly accent: {
41
+ readonly edge: "left";
42
+ readonly colorToken: "primary";
43
+ readonly thickness: "medium";
44
+ };
45
+ };
46
+ readonly content: {
47
+ readonly textColorToken: "neutral-700";
48
+ };
49
+ };
50
+ /**
51
+ * Quiet, airy underlined rows: transparent, spacious, large calm heading-font
52
+ * questions, a small subtle chevron, and open emphasis carried only by the
53
+ * question recolouring. For minimal / premium / wellness styles.
54
+ */
55
+ export declare const quietUnderlinedAccordionSystem: {
56
+ readonly background: null;
57
+ readonly spacing: "spacious";
58
+ readonly corners: "square";
59
+ readonly border: null;
60
+ readonly shadow: null;
61
+ readonly icon: {
62
+ readonly style: "chevron";
63
+ readonly position: "right";
64
+ readonly size: "sm";
65
+ readonly colorToken: "muted";
66
+ };
67
+ readonly trigger: {
68
+ readonly textColorToken: "text";
69
+ readonly fontWeight: "regular";
70
+ readonly fontFamily: "heading";
71
+ readonly fontScale: "lg";
72
+ };
73
+ readonly hover: {
74
+ readonly textColorToken: "primary";
75
+ };
76
+ readonly openState: {
77
+ readonly triggerColorToken: "primary";
78
+ };
79
+ readonly content: {
80
+ readonly textColorToken: "neutral-700";
81
+ };
82
+ };
83
+ /**
84
+ * Soft contained panel: a gentle surface box with soft corners, a hairline
85
+ * border and a low shadow, heading-font questions at a moderate size, chevron,
86
+ * and a tinted open state. For clean, trustworthy, appointment-led styles.
87
+ */
88
+ export declare const calmPanelAccordionSystem: {
89
+ readonly background: {
90
+ readonly type: "solid";
91
+ readonly colorToken: "surface";
92
+ };
93
+ readonly spacing: "comfortable";
94
+ readonly corners: "soft";
95
+ readonly border: {
96
+ readonly widthClass: "border";
97
+ readonly colorToken: "border";
98
+ };
99
+ readonly shadow: {
100
+ readonly elevation: "low";
101
+ readonly softness: "soft";
102
+ readonly position: "bottom";
103
+ };
104
+ readonly icon: {
105
+ readonly style: "chevron";
106
+ readonly position: "right";
107
+ readonly size: "md";
108
+ readonly colorToken: "primary";
109
+ };
110
+ readonly trigger: {
111
+ readonly textColorToken: "text";
112
+ readonly fontWeight: "medium";
113
+ readonly fontFamily: "heading";
114
+ readonly fontScale: "md";
115
+ };
116
+ readonly hover: {
117
+ readonly backgroundColorToken: "primary/5";
118
+ readonly textColorToken: "primary";
119
+ };
120
+ readonly openState: {
121
+ readonly backgroundColorToken: "primary/5";
122
+ readonly triggerColorToken: "primary";
123
+ };
124
+ readonly content: {
125
+ readonly textColorToken: "neutral-700";
126
+ };
127
+ };
128
+ /**
129
+ * Bold bordered panel: a strong-bordered surface box, bold heading-font
130
+ * questions, large plus/minus marks, and a high-emphasis tinted + accented
131
+ * open state. For confident, conversion-led, high-energy styles.
132
+ */
133
+ export declare const boldBorderedAccordionSystem: {
134
+ readonly background: {
135
+ readonly type: "solid";
136
+ readonly colorToken: "surface";
137
+ };
138
+ readonly spacing: "comfortable";
139
+ readonly corners: "soft";
140
+ readonly border: {
141
+ readonly widthClass: "border-2";
142
+ readonly colorToken: "border";
143
+ };
144
+ readonly shadow: null;
145
+ readonly icon: {
146
+ readonly style: "plus-minus";
147
+ readonly position: "right";
148
+ readonly size: "lg";
149
+ readonly colorToken: "primary";
150
+ };
151
+ readonly trigger: {
152
+ readonly textColorToken: "text";
153
+ readonly fontWeight: "bold";
154
+ readonly fontFamily: "heading";
155
+ readonly fontScale: "md";
156
+ };
157
+ readonly hover: {
158
+ readonly backgroundColorToken: "primary/10";
159
+ readonly textColorToken: "primary";
160
+ };
161
+ readonly openState: {
162
+ readonly backgroundColorToken: "primary/10";
163
+ readonly triggerColorToken: "primary";
164
+ readonly accent: {
165
+ readonly edge: "left";
166
+ readonly colorToken: "primary";
167
+ readonly thickness: "thick";
168
+ };
169
+ };
170
+ readonly content: {
171
+ readonly textColorToken: "neutral-700";
172
+ };
173
+ };
174
+ /**
175
+ * Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
176
+ * border; the open row lifts to the lighter surface colour. Friendly,
177
+ * hands-on, community styles.
178
+ */
179
+ export declare const warmInsetAccordionSystem: {
180
+ readonly background: {
181
+ readonly type: "solid";
182
+ readonly colorToken: "surfaceAlt";
183
+ };
184
+ readonly spacing: "comfortable";
185
+ readonly corners: "rounded";
186
+ readonly border: null;
187
+ readonly shadow: null;
188
+ readonly icon: {
189
+ readonly style: "circle-plus-minus";
190
+ readonly position: "right";
191
+ readonly size: "md";
192
+ readonly colorToken: "primary";
193
+ };
194
+ readonly trigger: {
195
+ readonly textColorToken: "text";
196
+ readonly fontWeight: "semibold";
197
+ readonly fontFamily: "heading";
198
+ readonly fontScale: "md";
199
+ };
200
+ readonly hover: {
201
+ readonly backgroundColorToken: "primary/5";
202
+ readonly textColorToken: "primary";
203
+ };
204
+ readonly openState: {
205
+ readonly backgroundColorToken: "surface";
206
+ readonly triggerColorToken: "primary";
207
+ };
208
+ readonly content: {
209
+ readonly textColorToken: "neutral-700";
210
+ };
211
+ };
212
+ /**
213
+ * Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
214
+ * a warm ground, with a quiet open recolour.
215
+ */
1
216
  export declare const softEarthAccordionSystem: {
2
217
  readonly background: {
3
218
  readonly type: "solid";
@@ -16,10 +231,15 @@ export declare const softEarthAccordionSystem: {
16
231
  readonly trigger: {
17
232
  readonly textColorToken: "text";
18
233
  readonly fontWeight: "medium";
234
+ readonly fontFamily: "heading";
235
+ readonly fontScale: "md";
19
236
  };
20
237
  readonly hover: {
21
238
  readonly textColorToken: "primary";
22
239
  };
240
+ readonly openState: {
241
+ readonly triggerColorToken: "primary";
242
+ };
23
243
  readonly content: {
24
244
  readonly textColorToken: "neutral-700";
25
245
  };
@@ -20,10 +20,10 @@ export type AccordionLucideIcon = 'Plus' | 'Minus' | 'ChevronDown' | 'ArrowDown'
20
20
  * Single style per theme (no variants needed)
21
21
  */
22
22
  export declare const accordionSystemSchema: z.ZodObject<{
23
- background: z.ZodObject<{
23
+ background: z.ZodNullable<z.ZodObject<{
24
24
  type: z.ZodLiteral<"solid">;
25
25
  colorToken: z.ZodString;
26
- }, z.core.$strip>;
26
+ }, z.core.$strip>>;
27
27
  spacing: z.ZodEnum<{
28
28
  medium: "medium";
29
29
  none: "none";
@@ -86,12 +86,47 @@ export declare const accordionSystemSchema: z.ZodObject<{
86
86
  regular: "regular";
87
87
  semibold: "semibold";
88
88
  }>>;
89
+ fontFamily: z.ZodOptional<z.ZodEnum<{
90
+ body: "body";
91
+ heading: "heading";
92
+ }>>;
93
+ fontScale: z.ZodOptional<z.ZodEnum<{
94
+ body: "body";
95
+ md: "md";
96
+ lg: "lg";
97
+ }>>;
98
+ letterSpacing: z.ZodOptional<z.ZodEnum<{
99
+ wide: "wide";
100
+ normal: "normal";
101
+ tight: "tight";
102
+ }>>;
103
+ textTransform: z.ZodOptional<z.ZodEnum<{
104
+ none: "none";
105
+ uppercase: "uppercase";
106
+ }>>;
89
107
  }, z.core.$strip>;
90
108
  hover: z.ZodObject<{
91
109
  backgroundColorToken: z.ZodOptional<z.ZodString>;
92
110
  textColorToken: z.ZodOptional<z.ZodString>;
93
111
  borderColorToken: z.ZodOptional<z.ZodString>;
94
112
  }, z.core.$strip>;
113
+ openState: z.ZodOptional<z.ZodObject<{
114
+ backgroundColorToken: z.ZodOptional<z.ZodString>;
115
+ triggerColorToken: z.ZodOptional<z.ZodString>;
116
+ accent: z.ZodOptional<z.ZodObject<{
117
+ edge: z.ZodEnum<{
118
+ left: "left";
119
+ top: "top";
120
+ bottom: "bottom";
121
+ }>;
122
+ colorToken: z.ZodString;
123
+ thickness: z.ZodEnum<{
124
+ medium: "medium";
125
+ thick: "thick";
126
+ thin: "thin";
127
+ }>;
128
+ }, z.core.$strip>>;
129
+ }, z.core.$strip>>;
95
130
  content: z.ZodObject<{
96
131
  textColorToken: z.ZodString;
97
132
  }, z.core.$strip>;
@@ -114,3 +149,11 @@ export declare const ICON_SIZE_PX: Record<AccordionSystem['icon']['size'], strin
114
149
  * Spacing map for accordion content padding
115
150
  */
116
151
  export declare const ACCORDION_SPACING_MAP: Record<AccordionSystem['spacing'], string>;
152
+ /**
153
+ * Question (trigger) font-size by scale step. Kept as self-contained clamps
154
+ * rather than the heading-scale CSS vars so question size stays predictable
155
+ * even when a theme configures very large headings.
156
+ */
157
+ export declare const ACCORDION_TRIGGER_FONT_SCALE: Record<NonNullable<AccordionSystem['trigger']['fontScale']>, string>;
158
+ export declare const ACCORDION_TRIGGER_LETTER_SPACING: Record<NonNullable<AccordionSystem['trigger']['letterSpacing']>, string>;
159
+ export declare const ACCORDION_OPEN_ACCENT_THICKNESS: Record<NonNullable<NonNullable<AccordionSystem['openState']>['accent']>['thickness'], string>;
@@ -1,4 +1,12 @@
1
1
  import type { BlockThemeOverride, Theme } from "./schema";
2
+ import type { HeadingDecorationOverride, VisibleHeadingDecoration } from "./site-styles/types";
2
3
  export declare function normalizeBlockKind(blockKind: string): string;
4
+ export type EffectiveHeadingDecoration = Readonly<{
5
+ kind: "none";
6
+ }> | Readonly<{
7
+ kind: "visible";
8
+ decoration: VisibleHeadingDecoration;
9
+ }>;
10
+ export declare function resolveEffectiveHeadingDecoration(themeDecoration: Theme["headingDecoration"], override: HeadingDecorationOverride | null | undefined): EffectiveHeadingDecoration;
3
11
  export declare function resolveBlockThemeOverride(theme: Theme | undefined, blockKind: string | undefined): BlockThemeOverride | undefined;
4
12
  export declare function mergeContentWithBlockStyleOverrides<TContent extends Record<string, unknown>>(content: TContent, theme: Theme | undefined, blockKind: string | undefined): TContent;
@@ -4,7 +4,7 @@
4
4
  * Type definitions for Tier 3 (block-specific) CSS variable generation.
5
5
  */
6
6
  import type { Theme } from '../schema';
7
- export type BlockVarGeneratorTheme = Pick<Theme, 'corners' | 'motion'>;
7
+ export type BlockVarGeneratorTheme = Pick<Theme, 'corners' | 'motion' | 'testimonialQuote'>;
8
8
  /**
9
9
  * Context passed to block var generators.
10
10
  * Contains the theme read surface and themeId for scoped CSS generation.
@@ -4,6 +4,9 @@
4
4
  * Tier 3 variables for the testimonials block:
5
5
  * - Applies to [data-block="testimonials"]
6
6
  * - Intended for theme overrides via blockCustomVars/blockCustomCss
7
+ *
8
+ * The quote-mark vars are driven by the site-style-owned quote treatment
9
+ * (theme.testimonialQuote); see resolveTestimonialQuoteVars.
7
10
  */
8
11
  import type { BlockVarGeneratorContext } from '../types';
9
- export declare function generateTestimonialsVars({ themeId }: BlockVarGeneratorContext): string;
12
+ export declare function generateTestimonialsVars({ themeId, theme, }: BlockVarGeneratorContext): string;
@@ -40,8 +40,8 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
40
40
  }>>;
41
41
  motion: z.ZodOptional<z.ZodEnum<{
42
42
  standard: "standard";
43
- subtle: "subtle";
44
43
  expressive: "expressive";
44
+ subtle: "subtle";
45
45
  }>>;
46
46
  era: z.ZodOptional<z.ZodEnum<{
47
47
  editorial: "editorial";
@@ -6,6 +6,20 @@
6
6
  */
7
7
  export type CardBackgroundType = 'solid' | 'transparent' | 'gradient';
8
8
  export type CardSpacingCore = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable' | 'spacious';
9
+ export type CardCornerValueCore = 'square' | 'soft' | 'rounded' | 'pill' | 'expressive';
10
+ export type CardEdgeCore = 'left' | 'top' | 'right' | 'bottom';
11
+ export type CardEdgeWidthCore = 'thin' | 'medium' | 'thick' | 'heavy';
12
+ export interface CardCornerRadiiCore {
13
+ topLeft?: CardCornerValueCore;
14
+ topRight?: CardCornerValueCore;
15
+ bottomLeft?: CardCornerValueCore;
16
+ bottomRight?: CardCornerValueCore;
17
+ }
18
+ export interface CardAccentEdgeCore {
19
+ edge: CardEdgeCore;
20
+ colorToken: string;
21
+ width: CardEdgeWidthCore;
22
+ }
9
23
  export interface CardVariantCore {
10
24
  /** Unique variant identifier (e.g., 'default', 'elevated') */
11
25
  id: string;
@@ -21,10 +35,16 @@ export interface CardVariantCore {
21
35
  gradientDirection?: 'to-r' | 'to-l' | 'to-t' | 'to-b' | 'to-tr' | 'to-tl' | 'to-br' | 'to-bl';
22
36
  /** Content padding */
23
37
  spacing: CardSpacingCore;
38
+ /** Card text (foreground) color token, for cards on a strong fill */
39
+ foregroundToken?: string;
24
40
  /** Border color token */
25
41
  borderToken?: string;
26
42
  /** Border width */
27
43
  borderWidth?: 'none' | 'thin' | 'medium' | 'thick';
44
+ /** Single accent edge; replaces the full border when set */
45
+ accentEdge?: CardAccentEdgeCore;
46
+ /** Per-corner radius override; wins over the global corners setting */
47
+ cornerRadii?: CardCornerRadiiCore;
28
48
  }
29
49
  export interface CardCoreSettings {
30
50
  /** Corner radius style */
@@ -3,9 +3,12 @@ import type { CardSystem } from './types';
3
3
  /**
4
4
  * Generate a default card system from theme settings
5
5
  *
6
- * Creates a single "default" variant that intelligently uses theme settings:
7
- * - Explicitly sets theme.shadow and theme.corners (for runtime transform access)
8
- * - Uses theme.border if defined and has meaningful width
6
+ * Creates the baseline card roles that blocks can request:
7
+ * - `default` for everyday surfaced cards
8
+ * - `alternative` for emphasised cards
9
+ *
10
+ * Both variants explicitly set theme.shadow and theme.corners for runtime
11
+ * transform access, and both use theme.border when it has meaningful width.
9
12
  *
10
13
  * This ensures cards have sensible defaults even when theme.cards is undefined.
11
14
  *
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Reusable card systems for curated site styles.
3
+ *
4
+ * generateCardCss emits a `.card-{id}` class per enabled variant. The
5
+ * intended convention (block-level role selection is wired in a follow-up) is
6
+ * a role pair:
7
+ * - `default` — the quiet, everyday card (most blocks, most of the time)
8
+ * - `alternative` — the prominent "statement" card for sections that pop
9
+ * A card-heavy site style may add a third; the schema allows up to three
10
+ * variants. The planned fallback when a block references a missing variant is
11
+ * `alternative`, then `default`.
12
+ *
13
+ * Keep `default` close to the generated baseline so shared consumers (event
14
+ * cards, testimonials) stay stable; put the personality in `alternative`.
15
+ */
16
+ /**
17
+ * South West Twerk School: a quiet default surface card plus a high-impact
18
+ * "statement" card that reproduces the legacy accent-quote testimonial surface
19
+ * — burgundy fill, light text, a heavy gold left accent bar, and an expressive
20
+ * asymmetric top-right corner.
21
+ */
22
+ export declare const southWestCardSystem: {
23
+ readonly variants: [{
24
+ readonly id: "default";
25
+ readonly name: "Default";
26
+ readonly enabled: true;
27
+ readonly priority: 1;
28
+ readonly background: {
29
+ readonly type: "solid";
30
+ readonly colorToken: "surface";
31
+ };
32
+ readonly foregroundToken: "text";
33
+ readonly spacing: "comfortable";
34
+ readonly corners: "soft";
35
+ readonly shadow: {
36
+ readonly elevation: "low";
37
+ readonly softness: "soft";
38
+ readonly position: "bottom";
39
+ };
40
+ }, {
41
+ readonly id: "alternative";
42
+ readonly name: "Statement";
43
+ readonly enabled: true;
44
+ readonly priority: 2;
45
+ readonly background: {
46
+ readonly type: "solid";
47
+ readonly colorToken: "primary-700";
48
+ };
49
+ readonly foregroundToken: "primaryForeground";
50
+ readonly spacing: "comfortable";
51
+ readonly shadow: {
52
+ readonly elevation: "none";
53
+ readonly softness: null;
54
+ readonly position: "bottom";
55
+ };
56
+ readonly accentEdge: {
57
+ readonly edge: "left";
58
+ readonly colorToken: "secondary";
59
+ readonly width: "heavy";
60
+ };
61
+ readonly cornerRadii: {
62
+ readonly topLeft: "square";
63
+ readonly topRight: "expressive";
64
+ readonly bottomLeft: "square";
65
+ readonly bottomRight: "square";
66
+ };
67
+ }];
68
+ };
69
+ export declare const clarityZenCardSystem: {
70
+ readonly variants: [{
71
+ readonly id: "default";
72
+ readonly name: "Default";
73
+ readonly enabled: true;
74
+ readonly priority: 1;
75
+ readonly background: {
76
+ readonly type: "solid";
77
+ readonly colorToken: "surface";
78
+ };
79
+ readonly foregroundToken: "text";
80
+ readonly spacing: "comfortable";
81
+ readonly corners: "rounded";
82
+ readonly shadow: {
83
+ readonly elevation: "low";
84
+ readonly softness: "soft";
85
+ readonly position: "bottom";
86
+ };
87
+ }, {
88
+ readonly id: "alternative";
89
+ readonly name: "Statement";
90
+ readonly enabled: true;
91
+ readonly priority: 2;
92
+ readonly background: {
93
+ readonly type: "solid";
94
+ readonly colorToken: "surfaceAlt";
95
+ };
96
+ readonly foregroundToken: "text";
97
+ readonly spacing: "comfortable";
98
+ readonly corners: "rounded";
99
+ readonly shadow: {
100
+ readonly elevation: "medium";
101
+ readonly softness: "soft";
102
+ readonly position: "bottom";
103
+ };
104
+ }];
105
+ };