@riverbankcms/sdk 0.60.11 → 0.60.14

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 (96) hide show
  1. package/README.md +10 -7
  2. package/dist/_dts/api/src/accessAdmin.d.ts +102 -0
  3. package/dist/_dts/api/src/bookingConfig.d.ts +31 -1
  4. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +38 -1
  5. package/dist/_dts/api/src/bookingOperations.d.ts +3 -0
  6. package/dist/_dts/api/src/bookingRecords.d.ts +45 -0
  7. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +4 -4
  8. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +1 -5
  9. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  10. package/dist/_dts/api/src/communications.d.ts +1 -1
  11. package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
  12. package/dist/_dts/api/src/domains.d.ts +14 -13
  13. package/dist/_dts/api/src/endpoints.d.ts +121 -9
  14. package/dist/_dts/api/src/index.d.ts +3 -2
  15. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  16. package/dist/_dts/api/src/seoEndpoints.d.ts +2 -0
  17. package/dist/_dts/api/src/siteAssets.d.ts +0 -10
  18. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -1
  19. package/dist/_dts/api/src/types.d.ts +1 -1
  20. package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
  21. package/dist/_dts/blocks/src/index.d.ts +1 -0
  22. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  23. package/dist/_dts/blocks/src/server.d.ts +1 -0
  24. package/dist/_dts/blocks/src/subroutes/fold.d.ts +40 -0
  25. package/dist/_dts/blocks/src/subroutes/formatDate.d.ts +12 -0
  26. package/dist/_dts/blocks/src/subroutes/index.d.ts +3 -0
  27. package/dist/_dts/blocks/src/subroutes/kinds.d.ts +32 -0
  28. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +3 -1
  29. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +2 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/spacing.d.ts +2 -1
  33. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -0
  34. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +5 -1
  35. package/dist/_dts/core/src/booking-refunds.d.ts +8 -0
  36. package/dist/_dts/core/src/participant-identity.d.ts +1 -1
  37. package/dist/_dts/core/src/participants.d.ts +19 -7
  38. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +284 -96
  39. package/dist/_dts/db/src/schemas/forms.d.ts +135 -24
  40. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -3
  41. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -3
  42. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -3
  43. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -3
  44. package/dist/_dts/preview-next/src/client/preview/SubrouteNoticePanel.d.ts +13 -0
  45. package/dist/_dts/preview-next/src/client/preview/subrouteNotice.d.ts +26 -0
  46. package/dist/_dts/sdk/src/contracts/page.d.ts +1 -0
  47. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
  48. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -0
  49. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +4 -5
  50. package/dist/_dts/sdk/src/version.d.ts +1 -1
  51. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  52. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +17 -0
  53. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -1
  54. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  55. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +66 -30
  56. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +16 -0
  57. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  58. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  59. package/dist/_dts/theme-core/src/schema.d.ts +174 -6
  60. package/dist/_dts/theme-core/src/site-styles/appearancePresets.d.ts +328 -15
  61. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +54 -2
  62. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +124 -0
  63. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  64. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  65. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +21 -0
  66. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +2 -1
  67. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  68. package/dist/_dts/theme-core/src/site-styles/types.d.ts +135 -2
  69. package/dist/_dts/ui/src/badge.d.ts +1 -1
  70. package/dist/_dts/ui/src/button.d.ts +1 -1
  71. package/dist/cli/index.mjs +801 -115
  72. package/dist/client/bookings.mjs +115 -1
  73. package/dist/client/client.mjs +905 -166
  74. package/dist/client/hooks.mjs +794 -111
  75. package/dist/client/rendering/client.mjs +179 -39
  76. package/dist/client/rendering/islands.mjs +179 -38
  77. package/dist/client/rendering.mjs +904 -165
  78. package/dist/preview-next/before-render.mjs +160 -16
  79. package/dist/preview-next/client/runtime.mjs +1674 -260
  80. package/dist/preview-next/middleware.mjs +160 -16
  81. package/dist/server/components.mjs +895 -165
  82. package/dist/server/config-validation.mjs +794 -111
  83. package/dist/server/config.mjs +794 -111
  84. package/dist/server/data.mjs +794 -111
  85. package/dist/server/index.mjs +163 -17
  86. package/dist/server/next.mjs +898 -167
  87. package/dist/server/page-converter.mjs +589 -82
  88. package/dist/server/prebuild.mjs +1 -1
  89. package/dist/server/rendering/server.mjs +895 -165
  90. package/dist/server/rendering.mjs +895 -165
  91. package/dist/server/routing.mjs +828 -117
  92. package/dist/server/server.mjs +795 -112
  93. package/dist/server/theme-bridge.mjs +216 -39
  94. package/dist/server/theme.mjs +139 -37
  95. package/dist/styles/index.css +44 -2
  96. package/package.json +1 -1
@@ -4191,6 +4191,118 @@ var init_pebble = __esm({
4191
4191
  }
4192
4192
  });
4193
4193
 
4194
+ // ../theme-core/src/buttons/personalities/showtime-pill.ts
4195
+ var showtimePill;
4196
+ var init_showtime_pill = __esm({
4197
+ "../theme-core/src/buttons/personalities/showtime-pill.ts"() {
4198
+ "use strict";
4199
+ init_types2();
4200
+ showtimePill = defineButtonPersonality({
4201
+ id: "showtime-pill",
4202
+ name: "Showtime Pill",
4203
+ description: "Bold pill buttons with uppercase labels, generous padding, and a playful pop.",
4204
+ tags: { tone: "bold", energy: "vibrant", motion: "expressive", era: "modern" },
4205
+ buttonSystem: {
4206
+ global: {
4207
+ cornerStyle: "pill",
4208
+ shadow: "low",
4209
+ textTransform: "uppercase",
4210
+ fontWeight: 700,
4211
+ borderWidth: 2,
4212
+ hoverTransform: "lift",
4213
+ hoverColor: "darken",
4214
+ typography: "body",
4215
+ paddingPreset: "spacious",
4216
+ italic: false
4217
+ },
4218
+ sizes: {
4219
+ sm: { padding: "0.625rem 1.25rem", fontSize: "0.875rem" },
4220
+ md: { padding: "0.875rem 1.75rem", fontSize: "1rem" },
4221
+ lg: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" },
4222
+ xl: { padding: "1.125rem 2.25rem", fontSize: "1.125rem" }
4223
+ },
4224
+ variants: [
4225
+ {
4226
+ id: "primary",
4227
+ name: "Primary",
4228
+ enabled: true,
4229
+ priority: 1,
4230
+ background: { type: "solid", colorToken: "primary" },
4231
+ textColorToken: "background",
4232
+ borderRadius: "rounded-full",
4233
+ effects: {
4234
+ hover: [{ effectId: "pop" }]
4235
+ }
4236
+ },
4237
+ {
4238
+ id: "secondary",
4239
+ name: "Secondary",
4240
+ enabled: true,
4241
+ priority: 2,
4242
+ background: { type: "transparent" },
4243
+ textColorToken: "primary",
4244
+ borderRadius: "rounded-full",
4245
+ border: { widthClass: "border-2", colorToken: "primary" },
4246
+ effects: {
4247
+ hover: [{ effectId: "pop" }]
4248
+ }
4249
+ },
4250
+ {
4251
+ id: "hero",
4252
+ name: "Hero",
4253
+ enabled: true,
4254
+ priority: 1,
4255
+ background: { type: "solid", colorToken: "secondary" },
4256
+ textColorToken: "primary",
4257
+ borderRadius: "rounded-full",
4258
+ effects: {
4259
+ hover: [{ effectId: "pop" }]
4260
+ }
4261
+ },
4262
+ {
4263
+ id: "header",
4264
+ name: "Header",
4265
+ enabled: true,
4266
+ priority: 2,
4267
+ background: { type: "solid", colorToken: "background" },
4268
+ textColorToken: "primary",
4269
+ borderRadius: "rounded-full",
4270
+ border: { widthClass: "border-2", colorToken: "primary" },
4271
+ effects: {
4272
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
4273
+ }
4274
+ },
4275
+ {
4276
+ id: "outline",
4277
+ name: "Outline",
4278
+ enabled: true,
4279
+ priority: 3,
4280
+ background: { type: "transparent" },
4281
+ textColorToken: "primary",
4282
+ borderRadius: "rounded-full",
4283
+ border: { widthClass: "border-2", colorToken: "primary" },
4284
+ effects: {
4285
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "background" } }]
4286
+ }
4287
+ },
4288
+ {
4289
+ id: "ghost",
4290
+ name: "Ghost",
4291
+ enabled: true,
4292
+ priority: 3,
4293
+ background: { type: "transparent" },
4294
+ textColorToken: "primary",
4295
+ borderRadius: "rounded-full",
4296
+ effects: {
4297
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surface" } }]
4298
+ }
4299
+ }
4300
+ ]
4301
+ }
4302
+ });
4303
+ }
4304
+ });
4305
+
4194
4306
  // ../theme-core/src/buttons/personalities/soft-pill.ts
4195
4307
  var softPill;
4196
4308
  var init_soft_pill = __esm({
@@ -4281,6 +4393,7 @@ var init_personalities = __esm({
4281
4393
  init_editorial_link();
4282
4394
  init_ink_stamp();
4283
4395
  init_pebble();
4396
+ init_showtime_pill();
4284
4397
  init_soft_pill();
4285
4398
  init_types2();
4286
4399
  buttonPersonalities = [
@@ -4289,7 +4402,8 @@ var init_personalities = __esm({
4289
4402
  editorialLink,
4290
4403
  pebble,
4291
4404
  inkStamp,
4292
- brushedWash
4405
+ brushedWash,
4406
+ showtimePill
4293
4407
  ];
4294
4408
  personalitiesById = new Map(
4295
4409
  buttonPersonalities.map((p) => [p.id, p])
@@ -13078,6 +13192,7 @@ var init_spacing = __esm({
13078
13192
  ];
13079
13193
  SECTION_MIN_HEIGHT_VALUES = [
13080
13194
  "none",
13195
+ "banner",
13081
13196
  "hero",
13082
13197
  "immersive"
13083
13198
  ];
@@ -13099,6 +13214,7 @@ var init_spacing = __esm({
13099
13214
  };
13100
13215
  SECTION_MIN_HEIGHT_MAP = {
13101
13216
  none: "",
13217
+ banner: "rb-section-min-h-banner",
13102
13218
  hero: "rb-section-min-h-hero",
13103
13219
  immersive: "rb-section-min-h-immersive"
13104
13220
  };
@@ -14060,6 +14176,9 @@ var init_boxStyles = __esm({
14060
14176
  classes.push(roundedResult);
14061
14177
  }
14062
14178
  }
14179
+ if (input.treatment === "accent-quote") {
14180
+ classes.push("rb-card-treatment-accent-quote");
14181
+ }
14063
14182
  return classes.join(" ").trim() || "";
14064
14183
  }
14065
14184
  };
@@ -14129,7 +14248,7 @@ var init_boxStyles = __esm({
14129
14248
  minHeight = input.minHeight;
14130
14249
  } else if (true) {
14131
14250
  console.warn(
14132
- `[sectionStyles] Invalid minHeight value in _sectionStyles: "${input.minHeight}". Expected one of: none, hero, immersive.`
14251
+ `[sectionStyles] Invalid minHeight value in _sectionStyles: "${input.minHeight}". Expected one of: none, banner, hero, immersive.`
14133
14252
  );
14134
14253
  }
14135
14254
  }
@@ -14469,25 +14588,9 @@ var init_styledCard = __esm({
14469
14588
  });
14470
14589
 
14471
14590
  // ../blocks/src/system/node/fragments/typography.ts
14472
- function mergeClassName(base, extra) {
14473
- return [base, extra ?? ""].filter(Boolean).join(" ");
14474
- }
14475
- function captionText(opts, ...mods) {
14476
- const {
14477
- as: asProp,
14478
- className: classNameProp,
14479
- color,
14480
- ...rest
14481
- } = opts ?? {};
14482
- const as = asProp ?? "p";
14483
- const className = mergeClassName("rb-caption", classNameProp);
14484
- const style = textColorStyle(color ?? "mutedText");
14485
- return text({ ...rest, as, className, style }, ...mods);
14486
- }
14487
14591
  var init_typography = __esm({
14488
14592
  "../blocks/src/system/node/fragments/typography.ts"() {
14489
14593
  "use strict";
14490
- init_builder();
14491
14594
  init_colorStyles();
14492
14595
  }
14493
14596
  });
@@ -16765,18 +16868,17 @@ function buildAttributionNodes() {
16765
16868
  const name = text(
16766
16869
  {
16767
16870
  as: "strong",
16768
- className: "rb-block",
16769
- style: textColorStyle("text")
16871
+ className: "rb-block"
16770
16872
  },
16771
16873
  bind("testimonial.content.name", { fallback: "Anonymous" })
16772
16874
  );
16773
- const jobTitle = captionText(
16774
- null,
16875
+ const jobTitle = text(
16876
+ { as: "p", className: "rb-caption" },
16775
16877
  when("testimonial.content.jobTitle"),
16776
16878
  bind("testimonial.content.jobTitle")
16777
16879
  );
16778
- const company = captionText(
16779
- null,
16880
+ const company = text(
16881
+ { as: "p", className: "rb-caption" },
16780
16882
  when("testimonial.content.company"),
16781
16883
  bind("testimonial.content.company")
16782
16884
  );
@@ -16810,8 +16912,7 @@ function buildTestimonialCard(...mods) {
16810
16912
  );
16811
16913
  const body = richText(
16812
16914
  {
16813
- className: "rb-prose rb-max-w-none",
16814
- style: textColorStyle("text")
16915
+ className: "rb-prose rb-max-w-none"
16815
16916
  },
16816
16917
  bind("testimonial.content.body"),
16817
16918
  when("testimonial.content.body")
@@ -16896,7 +16997,6 @@ var init_testimonialsCarousel = __esm({
16896
16997
  "use strict";
16897
16998
  init_types9();
16898
16999
  init_builder();
16899
- init_colorStyles();
16900
17000
  init_fragments();
16901
17001
  grid = (props2, children, ...mods) => el("grid", props2 ?? void 0, children ?? void 0, ...mods);
16902
17002
  testimonialsCarouselFragment = defineFragment({
@@ -20260,7 +20360,8 @@ var init_course_registration_interactive = __esm({
20260
20360
  run: z20.object({
20261
20361
  courseId: z20.string(),
20262
20362
  seriesId: z20.string(),
20263
- runSlug: z20.string()
20363
+ runSlug: z20.string(),
20364
+ runName: z20.string().nullable()
20264
20365
  })
20265
20366
  }),
20266
20367
  z20.object({
@@ -46202,16 +46303,14 @@ function generateDropdownLinkStyles(header, themeId, tokens, theme) {
46202
46303
  };
46203
46304
  additionalRules.push(`letter-spacing: ${letterSpacingMap[letterSpacing]};`);
46204
46305
  }
46205
- const textSize = configuredDropdownStyle?.textSize;
46206
- if (textSize) {
46207
- const textSizeMap = {
46208
- "xs": "0.75rem",
46209
- "sm": "0.875rem",
46210
- "base": "1rem",
46211
- "lg": "1.125rem"
46212
- };
46213
- additionalRules.push(`font-size: ${textSizeMap[textSize]};`);
46214
- }
46306
+ const textSize = configuredDropdownStyle?.textSize ?? "sm";
46307
+ const textSizeMap = {
46308
+ "xs": "0.75rem",
46309
+ "sm": "0.875rem",
46310
+ "base": "1rem",
46311
+ "lg": "1.125rem"
46312
+ };
46313
+ additionalRules.push(`font-size: ${textSizeMap[textSize]};`);
46215
46314
  if (additionalRules.length > 0) {
46216
46315
  const selector = `:where([data-theme-scope="${themeId}"]) .nav-dropdown-link`;
46217
46316
  return baseCSS + `
@@ -46537,12 +46636,10 @@ ${selector} .rb-container-full`;
46537
46636
  ${rootRules.join("\n ")}
46538
46637
  }`);
46539
46638
  if (containerPadding?.mobile) {
46540
- cssChunks.push(
46541
- `${containerSelector} {
46639
+ cssChunks.push(`${containerSelector} {
46542
46640
  padding-left: ${toPaddingValue(containerPadding.mobile)};
46543
46641
  padding-right: ${toPaddingValue(containerPadding.mobile)};
46544
- }`
46545
- );
46642
+ }`);
46546
46643
  }
46547
46644
  if (containerPadding?.tablet) {
46548
46645
  cssChunks.push(
@@ -46568,6 +46665,10 @@ ${selector} .rb-container-full`;
46568
46665
  if (heroTypographyCss) {
46569
46666
  cssChunks.push(heroTypographyCss);
46570
46667
  }
46668
+ const bodyTextTypographyCss = generateBodyTextTypographyCss(themeId, theme);
46669
+ if (bodyTextTypographyCss) {
46670
+ cssChunks.push(bodyTextTypographyCss);
46671
+ }
46571
46672
  cssChunks.push(generateSiteStyleTransitionCss(themeId));
46572
46673
  return cssChunks.join("\n\n");
46573
46674
  }
@@ -46647,21 +46748,17 @@ ${selector} [data-style-group^='site-style-transition-angle-edge-'] > [data-slot
46647
46748
 
46648
46749
  ${selector} [data-style-group^='site-style-transition-wave-edge-'] > [data-slot='section']::after {
46649
46750
  background: var(--site-style-transition-to);
46650
- clip-path: polygon(
46651
- 0 42%,
46652
- 10% 34%,
46653
- 21% 42%,
46654
- 34% 31%,
46655
- 48% 39%,
46656
- 63% 29%,
46657
- 78% 37%,
46658
- 90% 30%,
46659
- 100% 36%,
46660
- 100% 100%,
46661
- 0 100%
46662
- );
46751
+ mask-image: url("${waveTransitionMask}");
46752
+ mask-repeat: no-repeat;
46753
+ mask-size: 100% 100%;
46754
+ -webkit-mask-image: url("${waveTransitionMask}");
46755
+ -webkit-mask-repeat: no-repeat;
46756
+ -webkit-mask-size: 100% 100%;
46663
46757
  }`;
46664
46758
  }
46759
+ function svgDataUrl(svg) {
46760
+ return `data:image/svg+xml,${encodeURIComponent(svg)}`;
46761
+ }
46665
46762
  function generateHeroTypographyCss(themeId, theme) {
46666
46763
  const typography = theme.hero?.typography;
46667
46764
  if (!typography) return "";
@@ -46684,33 +46781,21 @@ function generateHeroTypographyCss(themeId, theme) {
46684
46781
  ${subheadlineRules.join("\n ")}
46685
46782
  }`);
46686
46783
  }
46687
- const microHeadlineRules = buildTypographyRules(
46688
- typography.microHeadlineSize,
46689
- typography.microHeadlineLineHeight
46690
- );
46784
+ const microHeadlineRules = buildTypographyRules(typography.microHeadlineSize, typography.microHeadlineLineHeight);
46691
46785
  if (microHeadlineRules.length > 0) {
46692
46786
  chunks.push(`${microHeadlineSelector} {
46693
46787
  ${microHeadlineRules.join("\n ")}
46694
46788
  }`);
46695
46789
  }
46696
- const microSubheadlineRules = buildTypographyRules(
46697
- typography.microSubheadlineSize,
46698
- typography.microSubheadlineLineHeight
46699
- );
46790
+ const microSubheadlineRules = buildTypographyRules(typography.microSubheadlineSize, typography.microSubheadlineLineHeight);
46700
46791
  if (microSubheadlineRules.length > 0) {
46701
46792
  chunks.push(`${microSubheadlineSelector} {
46702
46793
  ${microSubheadlineRules.join("\n ")}
46703
46794
  }`);
46704
46795
  }
46705
46796
  if (typography.responsive?.tablet) {
46706
- const tabletHeadlineRules = buildTypographyRules(
46707
- typography.responsive.tablet.headlineSize,
46708
- typography.responsive.tablet.headlineLineHeight
46709
- );
46710
- const tabletSubheadlineRules = buildTypographyRules(
46711
- typography.responsive.tablet.subheadlineSize,
46712
- typography.responsive.tablet.subheadlineLineHeight
46713
- );
46797
+ const tabletHeadlineRules = buildTypographyRules(typography.responsive.tablet.headlineSize, typography.responsive.tablet.headlineLineHeight);
46798
+ const tabletSubheadlineRules = buildTypographyRules(typography.responsive.tablet.subheadlineSize, typography.responsive.tablet.subheadlineLineHeight);
46714
46799
  const tabletChunks = [];
46715
46800
  if (tabletHeadlineRules.length > 0) {
46716
46801
  tabletChunks.push(`${headlineSelector} {
@@ -46729,14 +46814,8 @@ function generateHeroTypographyCss(themeId, theme) {
46729
46814
  }
46730
46815
  }
46731
46816
  if (typography.responsive?.mobile) {
46732
- const mobileHeadlineRules = buildTypographyRules(
46733
- typography.responsive.mobile.headlineSize,
46734
- typography.responsive.mobile.headlineLineHeight
46735
- );
46736
- const mobileSubheadlineRules = buildTypographyRules(
46737
- typography.responsive.mobile.subheadlineSize,
46738
- typography.responsive.mobile.subheadlineLineHeight
46739
- );
46817
+ const mobileHeadlineRules = buildTypographyRules(typography.responsive.mobile.headlineSize, typography.responsive.mobile.headlineLineHeight);
46818
+ const mobileSubheadlineRules = buildTypographyRules(typography.responsive.mobile.subheadlineSize, typography.responsive.mobile.subheadlineLineHeight);
46740
46819
  const mobileChunks = [];
46741
46820
  if (mobileHeadlineRules.length > 0) {
46742
46821
  mobileChunks.push(`${headlineSelector} {
@@ -46766,6 +46845,27 @@ function buildTypographyRules(size, lineHeight) {
46766
46845
  }
46767
46846
  return rules;
46768
46847
  }
46848
+ function generateBodyTextTypographyCss(themeId, theme) {
46849
+ const intro = theme.bodyText?.intro;
46850
+ if (!intro) return "";
46851
+ const rootSelector = `:where([data-theme-scope="${themeId}"]) :where([data-block="body-text"][data-block-variant="intro"])`;
46852
+ const chunks = [];
46853
+ if (intro.headingSize === "editorial") {
46854
+ chunks.push(`${rootSelector} .body-copy-heading {
46855
+ font-size: clamp(1.75rem, 1.15rem + 2.2vw, 3rem);
46856
+ line-height: 1.08;
46857
+ }`);
46858
+ }
46859
+ if (intro.paragraphSize === "editorial") {
46860
+ chunks.push(`${rootSelector} .body-copy-body {
46861
+ --rb-prose-lg-font-size: clamp(1.35rem, 1.05rem + 1.3vw, 2rem);
46862
+ --rb-prose-lg-line-height: 1.55;
46863
+ --rb-prose-xl-sm-font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2rem);
46864
+ --rb-prose-xl-sm-line-height: 1.55;
46865
+ }`);
46866
+ }
46867
+ return chunks.join("\n\n");
46868
+ }
46769
46869
  function toHeroSize(size) {
46770
46870
  const map = {
46771
46871
  sm: "0.875rem",
@@ -46776,7 +46876,8 @@ function toHeroSize(size) {
46776
46876
  "3xl": "1.875rem",
46777
46877
  "4xl": "2.25rem",
46778
46878
  "5xl": "3rem",
46779
- "6xl": "3.75rem"
46879
+ "6xl": "3.75rem",
46880
+ editorial: "clamp(1.25rem, 3vw, 2.25rem)"
46780
46881
  };
46781
46882
  return map[size];
46782
46883
  }
@@ -46789,10 +46890,14 @@ function toHeroLineHeight(lineHeight) {
46789
46890
  };
46790
46891
  return map[lineHeight];
46791
46892
  }
46893
+ var waveTransitionMask;
46792
46894
  var init_generateLayoutCss = __esm({
46793
46895
  "../theme-core/src/layout/generateLayoutCss.ts"() {
46794
46896
  "use strict";
46795
46897
  init_breakpoints();
46898
+ waveTransitionMask = svgDataUrl(
46899
+ "<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>"
46900
+ );
46796
46901
  }
46797
46902
  });
46798
46903
 
@@ -49143,12 +49248,16 @@ var init_containerResponsiveThemeCss = __esm({
49143
49248
  .rb-h-full {
49144
49249
  height: 100%;
49145
49250
  }
49251
+ .rb-section-min-h-banner {
49252
+ min-height: clamp(16rem, 34svh, 24rem);
49253
+ }
49146
49254
  .rb-section-min-h-hero {
49147
49255
  min-height: clamp(32rem, 62svh, 44rem);
49148
49256
  }
49149
49257
  .rb-section-min-h-immersive {
49150
49258
  min-height: clamp(38rem, 78svh, 54rem);
49151
49259
  }
49260
+ .rb-section-min-h-banner > .rb-container,
49152
49261
  .rb-section-min-h-hero > .rb-container,
49153
49262
  .rb-section-min-h-immersive > .rb-container {
49154
49263
  min-height: inherit;
@@ -50258,6 +50367,19 @@ var init_containerResponsiveThemeCss = __esm({
50258
50367
  .rb-object-contain {
50259
50368
  object-fit: contain;
50260
50369
  }
50370
+ .rb-bg-motion-fixed-frame {
50371
+ position: fixed;
50372
+ inset: 0;
50373
+ width: 100vw;
50374
+ height: 100svh;
50375
+ }
50376
+ @media (hover: none), (prefers-reduced-motion: reduce) {
50377
+ .rb-bg-motion-fixed-frame {
50378
+ position: absolute;
50379
+ width: 100%;
50380
+ height: 100%;
50381
+ }
50382
+ }
50261
50383
 
50262
50384
  /* Line clamp */
50263
50385
  .rb-line-clamp-2,
@@ -54768,13 +54890,13 @@ var init_containerResponsiveThemeCss = __esm({
54768
54890
 
54769
54891
  /* Eyebrow - color only (typography via .rb-eyebrow) */
54770
54892
  :where(.theme-scope) :where([data-block="hero"]) .hero-eyebrow {
54771
- color: rgb(var(--tb-text));
54893
+ color: var(--section-text-color, rgb(var(--tb-text)));
54772
54894
  }
54773
54895
 
54774
54896
  /* Subheadline - supporting text below headline */
54775
54897
  :where(.theme-scope) :where([data-block="hero"]) .hero-subheadline {
54776
54898
  font-size: 1.125rem;
54777
- color: rgb(var(--tb-text));
54899
+ color: var(--section-text-color, rgb(var(--tb-text)));
54778
54900
  }
54779
54901
 
54780
54902
  @container rb-site (min-width: 640px) {
@@ -54848,6 +54970,20 @@ var init_containerResponsiveThemeCss = __esm({
54848
54970
  max-width: 60rem;
54849
54971
  }
54850
54972
 
54973
+ :where(.theme-scope) :where([data-block="body-text"][data-block-variant="intro"]) .body-copy-body {
54974
+ font-size: var(--rb-prose-lg-font-size);
54975
+ line-height: var(--rb-prose-lg-line-height);
54976
+ }
54977
+
54978
+ @container rb-site (min-width: 640px) {
54979
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
54980
+ :where(.theme-scope) :where([data-block="body-text"][data-block-variant="intro"]) .body-copy-body {
54981
+ font-size: var(--rb-prose-xl-sm-font-size);
54982
+ line-height: var(--rb-prose-xl-sm-line-height);
54983
+ }
54984
+ }
54985
+ }
54986
+
54851
54987
  /* Variant: Narrow (left-aligned, shorter line length) */
54852
54988
  :where(.theme-scope) :where([data-block="body-text"][data-block-variant="narrow"]) .body-copy-container {
54853
54989
  max-width: 34rem;
@@ -56190,6 +56326,13 @@ var init_containerResponsiveThemeCss = __esm({
56190
56326
  border-radius: var(--rb-block-radius);
56191
56327
  }
56192
56328
 
56329
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-card.rb-card-treatment-accent-quote {
56330
+ border: 0;
56331
+ border-left: 5px solid rgb(var(--tb-secondary));
56332
+ border-radius: 0 calc(var(--rb-block-radius) * 3) 0 0;
56333
+ color: rgb(var(--tb-primaryForeground));
56334
+ }
56335
+
56193
56336
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonial-quote {
56194
56337
  font-size: var(--rb-testimonial-quote-size);
56195
56338
  line-height: 1;
@@ -56198,6 +56341,12 @@ var init_containerResponsiveThemeCss = __esm({
56198
56341
  color: rgb(var(--tb-primary));
56199
56342
  }
56200
56343
 
56344
+ :where(.theme-scope) :where([data-block="testimonials"]) .rb-card-treatment-accent-quote .rb-testimonial-quote {
56345
+ color: rgb(var(--tb-secondary));
56346
+ font-size: calc(var(--rb-testimonial-quote-size) * 1.25);
56347
+ opacity: 1;
56348
+ }
56349
+
56201
56350
 
56202
56351
  /* Testimonials carousel tweaks: arrow styling + gutters + equal-height cards */
56203
56352
  :where(.theme-scope) :where([data-block="testimonials"]) .rb-testimonials-carousel.carousel-root .carousel-nav-btn {
@@ -59796,12 +59945,29 @@ function defineFrameCapability(capability) {
59796
59945
  function defineBlockDesignCapability(capability) {
59797
59946
  return {
59798
59947
  ...capability,
59799
- kind: "designed"
59948
+ kind: "designed",
59949
+ sectionHeights: capability.sectionHeights ?? ["default"],
59950
+ imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
59951
+ imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
59952
+ testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"]
59800
59953
  };
59801
59954
  }
59802
59955
 
59803
59956
  // ../theme-core/src/site-styles/appearancePresets.ts
59957
+ function assertValidOptionGroups(preset2) {
59958
+ preset2.optionGroups?.forEach((group) => {
59959
+ const selectedOption = group.options.find(
59960
+ (option) => option.id === group.selectedOptionId
59961
+ );
59962
+ if (!selectedOption) {
59963
+ throw new Error(
59964
+ `Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
59965
+ );
59966
+ }
59967
+ });
59968
+ }
59804
59969
  function defineBlockAppearancePreset(preset2) {
59970
+ assertValidOptionGroups(preset2);
59805
59971
  return preset2;
59806
59972
  }
59807
59973
  function defineSiteChromeAppearancePreset(preset2) {
@@ -59814,13 +59980,122 @@ var appearancePresets = [
59814
59980
  target: "hero",
59815
59981
  label: "Immersive image hero",
59816
59982
  blockKinds: ["block.hero"],
59983
+ constraints: {
59984
+ layoutFamilies: ["centered", "compact"]
59985
+ },
59986
+ design: {
59987
+ sectionSurface: "hero-image",
59988
+ contentFrame: plainFrame,
59989
+ itemSurface: "none",
59990
+ transitionAfter: "soft-fade-short",
59991
+ emphasis: "high",
59992
+ sectionHeight: "hero",
59993
+ imageSurfaceTreatment: { kind: "neutral-wash" }
59994
+ }
59995
+ }),
59996
+ defineBlockAppearancePreset({
59997
+ kind: "block-design",
59998
+ id: "hero-brand-scrim",
59999
+ target: "hero",
60000
+ label: "Brand scrim image hero",
60001
+ blockKinds: ["block.hero"],
60002
+ constraints: {
60003
+ layoutFamilies: ["centered", "compact"]
60004
+ },
60005
+ optionGroups: [
60006
+ {
60007
+ id: "image-surface-treatment",
60008
+ label: "Treatment",
60009
+ selectedOptionId: "brand-scrim-primary",
60010
+ options: [
60011
+ {
60012
+ id: "brand-scrim-primary",
60013
+ label: "Brand scrim",
60014
+ designPatch: {
60015
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
60016
+ }
60017
+ },
60018
+ {
60019
+ id: "neutral-scrim",
60020
+ label: "Neutral scrim",
60021
+ designPatch: {
60022
+ imageSurfaceTreatment: { kind: "neutral-scrim" }
60023
+ }
60024
+ }
60025
+ ]
60026
+ }
60027
+ ],
60028
+ layoutPatches: [
60029
+ {
60030
+ constraints: {
60031
+ layoutVariantKeys: ["micro"]
60032
+ },
60033
+ designPatch: {
60034
+ sectionHeight: "banner"
60035
+ }
60036
+ }
60037
+ ],
60038
+ design: {
60039
+ sectionSurface: "hero-image",
60040
+ contentFrame: plainFrame,
60041
+ itemSurface: "none",
60042
+ transitionAfter: "soft-fade-short",
60043
+ emphasis: "high",
60044
+ sectionHeight: "immersive",
60045
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
60046
+ }
60047
+ }),
60048
+ defineBlockAppearancePreset({
60049
+ kind: "block-design",
60050
+ id: "hero-brand-scrim-fixed-frame",
60051
+ target: "hero",
60052
+ label: "Fixed-frame brand scrim hero",
60053
+ blockKinds: ["block.hero"],
60054
+ constraints: {
60055
+ layoutFamilies: ["centered", "compact"]
60056
+ },
60057
+ optionGroups: [
60058
+ {
60059
+ id: "image-surface-treatment",
60060
+ label: "Treatment",
60061
+ selectedOptionId: "brand-scrim-primary",
60062
+ options: [
60063
+ {
60064
+ id: "brand-scrim-primary",
60065
+ label: "Brand scrim",
60066
+ designPatch: {
60067
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
60068
+ }
60069
+ },
60070
+ {
60071
+ id: "neutral-scrim",
60072
+ label: "Neutral scrim",
60073
+ designPatch: {
60074
+ imageSurfaceTreatment: { kind: "neutral-scrim" }
60075
+ }
60076
+ }
60077
+ ]
60078
+ }
60079
+ ],
60080
+ layoutPatches: [
60081
+ {
60082
+ constraints: {
60083
+ layoutVariantKeys: ["micro"]
60084
+ },
60085
+ designPatch: {
60086
+ sectionHeight: "banner"
60087
+ }
60088
+ }
60089
+ ],
59817
60090
  design: {
59818
60091
  sectionSurface: "hero-image",
59819
60092
  contentFrame: plainFrame,
59820
60093
  itemSurface: "none",
59821
60094
  transitionAfter: "soft-fade-short",
59822
60095
  emphasis: "high",
59823
- heroLegibility: "scrim-gradient"
60096
+ sectionHeight: "immersive",
60097
+ imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
60098
+ imageSurfaceMotion: "fixed-frame"
59824
60099
  }
59825
60100
  }),
59826
60101
  defineBlockAppearancePreset({
@@ -59837,17 +60112,26 @@ var appearancePresets = [
59837
60112
  emphasis: "high"
59838
60113
  }
59839
60114
  }),
60115
+ defineBlockAppearancePreset({
60116
+ kind: "block-design",
60117
+ id: "body-text-editorial-intro",
60118
+ target: "body-text",
60119
+ label: "Editorial intro copy",
60120
+ blockKinds: ["block.body-text"],
60121
+ design: {
60122
+ sectionSurface: "base",
60123
+ contentFrame: plainFrame,
60124
+ itemSurface: "none",
60125
+ transitionAfter: "soft-fade-short",
60126
+ emphasis: "high"
60127
+ }
60128
+ }),
59840
60129
  defineBlockAppearancePreset({
59841
60130
  kind: "block-design",
59842
60131
  id: "offerings-calm-list",
59843
60132
  target: "offerings",
59844
60133
  label: "Calm offerings list",
59845
- blockKinds: [
59846
- "block.event-listing",
59847
- "block.event-calendar",
59848
- "block.event-spotlight",
59849
- "block.product-list"
59850
- ],
60134
+ blockKinds: ["block.event-listing", "block.event-calendar", "block.event-spotlight", "block.product-list"],
59851
60135
  design: {
59852
60136
  sectionSurface: "muted-band",
59853
60137
  contentFrame: plainFrame,
@@ -59926,6 +60210,35 @@ var appearancePresets = [
59926
60210
  emphasis: "high"
59927
60211
  }
59928
60212
  }),
60213
+ defineBlockAppearancePreset({
60214
+ kind: "block-design",
60215
+ id: "testimonials-dark-proof",
60216
+ target: "testimonials",
60217
+ label: "Dark proof panel",
60218
+ blockKinds: ["block.testimonials"],
60219
+ design: {
60220
+ sectionSurface: "accent-band",
60221
+ contentFrame: panelFrame("raised"),
60222
+ itemSurface: "raised",
60223
+ transitionAfter: "soft-fade-short",
60224
+ emphasis: "high"
60225
+ }
60226
+ }),
60227
+ defineBlockAppearancePreset({
60228
+ kind: "block-design",
60229
+ id: "testimonials-accent-quote-proof",
60230
+ target: "testimonials",
60231
+ label: "Accent quote proof",
60232
+ blockKinds: ["block.testimonials"],
60233
+ design: {
60234
+ sectionSurface: "accent-band",
60235
+ contentFrame: plainFrame,
60236
+ itemSurface: "raised",
60237
+ transitionAfter: "soft-fade-short",
60238
+ emphasis: "high",
60239
+ testimonialCardTreatment: "accent-quote"
60240
+ }
60241
+ }),
59929
60242
  defineBlockAppearancePreset({
59930
60243
  kind: "block-design",
59931
60244
  id: "faq-contained-help",
@@ -59954,6 +60267,20 @@ var appearancePresets = [
59954
60267
  emphasis: "medium"
59955
60268
  }
59956
60269
  }),
60270
+ defineBlockAppearancePreset({
60271
+ kind: "block-design",
60272
+ id: "contact-form-dark-card",
60273
+ target: "contact-form",
60274
+ label: "Dark form card",
60275
+ blockKinds: ["block.form"],
60276
+ design: {
60277
+ sectionSurface: "accent-band",
60278
+ contentFrame: panelFrame("raised"),
60279
+ itemSurface: "none",
60280
+ transitionAfter: "soft-fade-short",
60281
+ emphasis: "high"
60282
+ }
60283
+ }),
59957
60284
  defineBlockAppearancePreset({
59958
60285
  kind: "block-design",
59959
60286
  id: "cta-accent-band",
@@ -59973,9 +60300,33 @@ var appearancePresets = [
59973
60300
  id: "header-clean-base",
59974
60301
  target: "site-header",
59975
60302
  label: "Clean base header",
59976
- chrome: {
59977
- surface: "base",
59978
- emphasis: "medium"
60303
+ header: {
60304
+ surface: {
60305
+ kind: "neutral-solid",
60306
+ token: "surface",
60307
+ textColorToken: "text"
60308
+ },
60309
+ navTreatment: "minimal",
60310
+ dropdownTreatment: "surface",
60311
+ ctaTreatment: "default",
60312
+ behavior: "default"
60313
+ }
60314
+ }),
60315
+ defineSiteChromeAppearancePreset({
60316
+ kind: "site-chrome",
60317
+ id: "site-header-brand-solid-inverted-cta",
60318
+ target: "site-header",
60319
+ label: "Brand solid header with inverted CTA",
60320
+ header: {
60321
+ surface: {
60322
+ kind: "brand-solid",
60323
+ token: "primary",
60324
+ textColorToken: "primaryForeground"
60325
+ },
60326
+ navTreatment: "uppercase-underline",
60327
+ dropdownTreatment: "matched-solid",
60328
+ ctaTreatment: "inverted",
60329
+ behavior: "sticky-shrink"
59979
60330
  }
59980
60331
  }),
59981
60332
  defineSiteChromeAppearancePreset({
@@ -59983,10 +60334,31 @@ var appearancePresets = [
59983
60334
  id: "footer-muted-grounding",
59984
60335
  target: "site-footer",
59985
60336
  label: "Muted grounding footer",
59986
- chrome: {
60337
+ footer: {
60338
+ kind: "grounding",
59987
60339
  surface: "muted-band",
59988
60340
  emphasis: "low"
59989
60341
  }
60342
+ }),
60343
+ defineSiteChromeAppearancePreset({
60344
+ kind: "site-chrome",
60345
+ id: "site-footer-brand-two-band",
60346
+ target: "site-footer",
60347
+ label: "Two-band brand footer",
60348
+ footer: {
60349
+ kind: "brand-two-band",
60350
+ surface: {
60351
+ token: "primary",
60352
+ shade: "800",
60353
+ textColorToken: "primaryForeground"
60354
+ },
60355
+ bottomBand: {
60356
+ token: "primary",
60357
+ shade: "900",
60358
+ textColorToken: "primaryForeground"
60359
+ },
60360
+ emphasis: "high"
60361
+ }
59990
60362
  })
59991
60363
  ];
59992
60364
 
@@ -60203,14 +60575,7 @@ var proseLinkStyleSchema = z45.object({
60203
60575
  underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
60204
60576
  underlineOffset: proseLinkUnderlineOffsetSchema.optional()
60205
60577
  });
60206
- var semanticSpacingSchema = z45.enum([
60207
- "none",
60208
- "compact",
60209
- "cozy",
60210
- "medium",
60211
- "comfortable",
60212
- "spacious"
60213
- ]);
60578
+ var semanticSpacingSchema = z45.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
60214
60579
  var boxRoundedSchema = z45.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
60215
60580
  var boxBackgroundOverlaySchema = z45.object({
60216
60581
  type: z45.enum(["none", "color", "gradient"]).nullable().optional(),
@@ -60227,6 +60592,7 @@ var boxBackgroundSchema = z45.object({
60227
60592
  scale: z45.string().nullable().optional(),
60228
60593
  position: z45.string().nullable().optional(),
60229
60594
  opacity: z45.number().min(0).max(1).nullable().optional(),
60595
+ motion: z45.enum(["static", "fixed-frame"]).nullable().optional(),
60230
60596
  overlay: boxBackgroundOverlaySchema.nullable().optional(),
60231
60597
  textColor: z45.string().nullable().optional(),
60232
60598
  headingColor: z45.string().nullable().optional()
@@ -60234,7 +60600,7 @@ var boxBackgroundSchema = z45.object({
60234
60600
  var sectionStylesOverrideSchema = z45.object({
60235
60601
  background: boxBackgroundSchema.nullable().optional(),
60236
60602
  spacing: semanticSpacingSchema.nullable().optional(),
60237
- minHeight: z45.enum(["none", "hero", "immersive"]).nullable().optional()
60603
+ minHeight: z45.enum(["none", "banner", "hero", "immersive"]).nullable().optional()
60238
60604
  });
60239
60605
  var containerStylesOverrideSchema = z45.object({
60240
60606
  background: boxBackgroundSchema.nullable().optional(),
@@ -60253,7 +60619,8 @@ var cardStylesOverrideSchema = z45.object({
60253
60619
  border: cardBorderOverrideSchema.nullable().optional(),
60254
60620
  spacing: semanticSpacingSchema.nullable().optional(),
60255
60621
  raised: z45.boolean().nullable().optional(),
60256
- rounded: boxRoundedSchema.nullable().optional()
60622
+ rounded: boxRoundedSchema.nullable().optional(),
60623
+ treatment: z45.enum(["accent-quote"]).nullable().optional()
60257
60624
  });
60258
60625
  var blockStyleOverridesSchema = z45.object({
60259
60626
  sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
@@ -60328,15 +60695,7 @@ var inputStyle = z45.object({
60328
60695
  });
60329
60696
  var headerVariant = z45.enum(["classic", "centered", "transparent", "floating", "editorial"]);
60330
60697
  var headerPositioning = z45.enum(["static", "sticky", "fixed"]);
60331
- var headerNavStyle = z45.enum([
60332
- "minimal",
60333
- "underline",
60334
- "underline-grow",
60335
- "capsule",
60336
- "scale",
60337
- "frosted",
60338
- "solid"
60339
- ]);
60698
+ var headerNavStyle = z45.enum(["minimal", "underline", "underline-grow", "capsule", "scale", "frosted", "solid"]);
60340
60699
  var navFontWeight = z45.enum(["regular", "medium", "semibold", "bold"]);
60341
60700
  var headerMaxWidth = z45.enum(["container", "full"]);
60342
60701
  var headerContainerSchema = z45.object({
@@ -60390,6 +60749,7 @@ var dropdownStyleSchema = z45.object({
60390
60749
  // optional = no override (browser default)
60391
60750
  }).optional();
60392
60751
  var headerCtaGapSchema = z45.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
60752
+ var headerCtaTreatmentSchema = z45.enum(["default", "primary", "secondary", "inverted", "outline", "ghost"]);
60393
60753
  var navContainerSchema = z45.object({
60394
60754
  type: z45.enum(["none", "pill", "glass"]).default("none"),
60395
60755
  tint: z45.string().nullable().optional(),
@@ -60408,7 +60768,10 @@ var headerSchema = z45.object({
60408
60768
  shrinkOnScroll: z45.boolean(),
60409
60769
  maxWidth: headerMaxWidth,
60410
60770
  logoOverride: mediaSchema2.nullable().optional(),
60411
- background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
60771
+ background: headerBackgroundSchema.default({
60772
+ type: "color",
60773
+ color: "surface"
60774
+ }),
60412
60775
  textColor: z45.string().nullable().optional(),
60413
60776
  // Site title and general header text
60414
60777
  navStyle: headerNavStyle,
@@ -60428,6 +60791,13 @@ var headerSchema = z45.object({
60428
60791
  navLinkStyle: navLinkStyleSchema.optional(),
60429
60792
  // CTA button spacing (desktop left margin)
60430
60793
  ctaGap: headerCtaGapSchema.optional(),
60794
+ // Semantic CTA treatment for header/nav CTA buttons. The Theme V2 compiler
60795
+ // materializes this to ctaVariant against the active button personality.
60796
+ ctaTreatment: headerCtaTreatmentSchema.optional(),
60797
+ // Optional theme-level CTA variant for header/nav CTA buttons.
60798
+ // Internal runtime bridge for the block renderer; prefer ctaTreatment in
60799
+ // authored Theme V2 concepts.
60800
+ ctaVariant: z45.string().min(1).optional(),
60431
60801
  // Dropdown menu styling (nav dropdowns and mobile drawer)
60432
60802
  dropdownStyle: dropdownStyleSchema
60433
60803
  });
@@ -60484,7 +60854,10 @@ var footerSchema = z45.object({
60484
60854
  variant: footerVariant,
60485
60855
  maxWidth: footerMaxWidth,
60486
60856
  showLogoText: z45.boolean().optional(),
60487
- background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
60857
+ background: headerBackgroundSchema.default({
60858
+ type: "color",
60859
+ color: "surface"
60860
+ }),
60488
60861
  // Footer nav styling (independent from header)
60489
60862
  navStyle: headerNavStyle.default("minimal"),
60490
60863
  navColor: z45.string().nullable().optional(),
@@ -60506,17 +60879,7 @@ var layoutSchema = z45.object({
60506
60879
  desktop: containerPaddingPresetSchema.optional()
60507
60880
  }).optional()
60508
60881
  }).optional();
60509
- var heroTypographySizeSchema = z45.enum([
60510
- "sm",
60511
- "base",
60512
- "lg",
60513
- "xl",
60514
- "2xl",
60515
- "3xl",
60516
- "4xl",
60517
- "5xl",
60518
- "6xl"
60519
- ]);
60882
+ var heroTypographySizeSchema = z45.enum(["sm", "base", "lg", "xl", "2xl", "3xl", "4xl", "5xl", "6xl", "editorial"]);
60520
60883
  var heroTypographyLineHeightSchema = z45.enum(["tight", "snug", "normal", "relaxed"]);
60521
60884
  var heroResponsiveTypographySchema = z45.object({
60522
60885
  headlineSize: heroTypographySizeSchema.optional(),
@@ -60541,6 +60904,13 @@ var heroTypographySchema = z45.object({
60541
60904
  var heroSchema = z45.object({
60542
60905
  typography: heroTypographySchema.optional()
60543
60906
  }).optional();
60907
+ var bodyTextIntroTypographySizeSchema = z45.enum(["default", "editorial"]);
60908
+ var bodyTextSchema = z45.object({
60909
+ intro: z45.object({
60910
+ paragraphSize: bodyTextIntroTypographySizeSchema.optional(),
60911
+ headingSize: bodyTextIntroTypographySizeSchema.optional()
60912
+ }).optional()
60913
+ }).optional();
60544
60914
  var gradientsSchema = z45.object({
60545
60915
  button: z45.string().min(1).nullable().optional(),
60546
60916
  hero: z45.string().min(1).nullable().optional(),
@@ -60562,6 +60932,7 @@ var themeSchema = z45.object({
60562
60932
  gradients: gradientsSchema.optional(),
60563
60933
  layout: layoutSchema,
60564
60934
  hero: heroSchema,
60935
+ bodyText: bodyTextSchema,
60565
60936
  header: headerSchema,
60566
60937
  footer: footerSchema,
60567
60938
  buttons: buttonSystemSchema.optional(),
@@ -60585,10 +60956,7 @@ var themeSchema = z45.object({
60585
60956
  ).optional(),
60586
60957
  // Structured block-kind theme overrides (v1: typography prose-link style only)
60587
60958
  // Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
60588
- blockOverrides: z45.record(
60589
- z45.string(),
60590
- blockThemeOverrideSchema
60591
- ).optional(),
60959
+ blockOverrides: z45.record(z45.string(), blockThemeOverrideSchema).optional(),
60592
60960
  // Structured custom CSS rules
60593
60961
  // Validated, scoped, and safe by construction - no @import, remote url(), or global selectors
60594
60962
  customCssRules: customCssRulesSchema,
@@ -60759,6 +61127,28 @@ var brandLedJewel = definePaletteVariant({
60759
61127
  { name: "border", hex: "#a8a29e" }
60760
61128
  ]
60761
61129
  });
61130
+ var brandLedBurgundyGold = definePaletteVariant({
61131
+ id: "brand-led-burgundy-gold",
61132
+ name: "Brand-led \u2014 Burgundy Gold",
61133
+ description: "Deep burgundy with warm gold accents and soft neutral grounds.",
61134
+ tags: { tone: "bold", energy: "vibrant", era: "modern" },
61135
+ mode: "light",
61136
+ colors: [
61137
+ { name: "primary", hex: "#7c2e38" },
61138
+ { name: "secondary", hex: "#d4af37" },
61139
+ { name: "accent", hex: "#b8e19a" },
61140
+ { name: "success", hex: "#10b981" },
61141
+ { name: "warning", hex: "#f59e0b" },
61142
+ { name: "destructive", hex: "#ef4444" },
61143
+ { name: "background", hex: "#f1dfd0" },
61144
+ { name: "surface", hex: "#f5e6db" },
61145
+ { name: "surfaceAlt", hex: "#f8ece3" },
61146
+ { name: "muted", hex: "#c9b8a8" },
61147
+ { name: "text", hex: "#400000" },
61148
+ { name: "primaryForeground", hex: "#ffffff" },
61149
+ { name: "border", hex: "#c9b8a8" }
61150
+ ]
61151
+ });
60762
61152
 
60763
61153
  // ../theme-core/src/palette/variants/high-contrast.ts
60764
61154
  var highContrastInk = definePaletteVariant({
@@ -60970,6 +61360,7 @@ var paletteVariants = [
60970
61360
  brandLedCool,
60971
61361
  brandLedWarm,
60972
61362
  brandLedJewel,
61363
+ brandLedBurgundyGold,
60973
61364
  // Warm-neutral family
60974
61365
  warmNeutralClay,
60975
61366
  warmNeutralCream,
@@ -61045,7 +61436,8 @@ var curatedSiteStyleIdValues = [
61045
61436
  "site-style:quiet-luxury",
61046
61437
  "site-style:practical-services",
61047
61438
  "site-style:modern-wellness",
61048
- "site-style:bold-launch"
61439
+ "site-style:bold-launch",
61440
+ "site-style:south-west-twerk-school"
61049
61441
  ];
61050
61442
  var quietBudget = {
61051
61443
  accentDensity: "low",
@@ -61100,6 +61492,8 @@ function defineCuratedSiteStyle(input) {
61100
61492
  supportedItemSurfaces: generatedDesignOptionCatalog.itemSurfaces,
61101
61493
  supportedTransitions: generatedDesignOptionCatalog.transitions
61102
61494
  },
61495
+ ...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
61496
+ recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
61103
61497
  buttonPersonalityChoices: input.buttonPersonalityChoices,
61104
61498
  paletteVariantChoices: input.paletteVariantChoices
61105
61499
  };
@@ -61346,6 +61740,101 @@ var curatedSiteStyles = [
61346
61740
  paletteChoice("brand-led-jewel"),
61347
61741
  paletteChoice("brand-led-warm")
61348
61742
  ]
61743
+ }),
61744
+ defineCuratedSiteStyle({
61745
+ id: "site-style:south-west-twerk-school",
61746
+ name: "South West Twerk School",
61747
+ description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
61748
+ generationBrief: "Use confident rhythm, bold burgundy-and-gold accents, large editorial intro copy, strong booking routes, and dark feature sections where proof or forms need emphasis.",
61749
+ selectionKeywords: [
61750
+ "dance",
61751
+ "classes",
61752
+ "workshop",
61753
+ "school",
61754
+ "movement",
61755
+ "performance",
61756
+ "community"
61757
+ ],
61758
+ tokenRecipes: {
61759
+ palette: "brand-led",
61760
+ contrast: "maximum",
61761
+ radius: "soft",
61762
+ shadow: "layered",
61763
+ typography: "clean-sans",
61764
+ spacing: "airy",
61765
+ motion: "expressive"
61766
+ },
61767
+ compositionBudget: expressiveBudget,
61768
+ themeOverrides: {
61769
+ typography: {
61770
+ body: {
61771
+ family: "Manrope, system-ui, sans-serif",
61772
+ size: "lg",
61773
+ weight: "regular",
61774
+ lineHeight: "relaxed",
61775
+ letterSpacing: "normal"
61776
+ },
61777
+ headings: {
61778
+ default: {
61779
+ family: '"TAN - PEARL", sans-serif',
61780
+ weight: "bold",
61781
+ lineHeight: "normal",
61782
+ letterSpacing: "tight",
61783
+ colorToken: "primary",
61784
+ italic: null,
61785
+ case: null
61786
+ },
61787
+ h1: {
61788
+ size: "xl",
61789
+ weight: "bold",
61790
+ lineHeight: "normal",
61791
+ letterSpacing: "tight",
61792
+ italic: null
61793
+ },
61794
+ h2: {
61795
+ size: "lg",
61796
+ weight: "bold",
61797
+ lineHeight: "normal",
61798
+ letterSpacing: "normal",
61799
+ italic: null
61800
+ },
61801
+ h3: {
61802
+ size: "md",
61803
+ weight: "bold",
61804
+ lineHeight: "normal",
61805
+ letterSpacing: "normal",
61806
+ italic: null
61807
+ }
61808
+ },
61809
+ scale: "balanced"
61810
+ },
61811
+ bodyText: {
61812
+ intro: {
61813
+ paragraphSize: "editorial",
61814
+ headingSize: "editorial"
61815
+ }
61816
+ }
61817
+ },
61818
+ recommendedAppearancePresetIds: [
61819
+ "site-header-brand-solid-inverted-cta",
61820
+ "site-footer-brand-two-band",
61821
+ "hero-brand-scrim-fixed-frame",
61822
+ "body-text-editorial-intro",
61823
+ "testimonials-accent-quote-proof",
61824
+ "contact-form-dark-card"
61825
+ ],
61826
+ buttonPersonalityChoices: [
61827
+ buttonChoice("showtime-pill"),
61828
+ buttonChoice("confident-chip"),
61829
+ buttonChoice("ink-stamp"),
61830
+ buttonChoice("brushed-wash")
61831
+ ],
61832
+ paletteVariantChoices: [
61833
+ paletteChoice("brand-led-burgundy-gold"),
61834
+ paletteChoice("brand-led-jewel"),
61835
+ paletteChoice("brand-led-warm"),
61836
+ paletteChoice("high-contrast-ink")
61837
+ ]
61349
61838
  })
61350
61839
  ];
61351
61840
  var curatedSiteStylesById = new Map(
@@ -61390,6 +61879,40 @@ var heroLegibilityStrategySchema = z47.enum([
61390
61879
  "scrim-gradient",
61391
61880
  "solid-panel"
61392
61881
  ]);
61882
+ var sectionHeightIntentSchema = z47.enum([
61883
+ "default",
61884
+ "banner",
61885
+ "hero",
61886
+ "immersive"
61887
+ ]);
61888
+ var imageSurfaceTreatmentIntensitySchema = z47.enum(["soft", "balanced", "strong"]);
61889
+ var imageSurfaceMotionSchema = z47.enum(["static", "fixed-frame"]);
61890
+ var imageSurfaceTreatmentSchema = z47.discriminatedUnion("kind", [
61891
+ z47.object({ kind: z47.literal("none") }).strict(),
61892
+ z47.object({
61893
+ kind: z47.literal("brand-scrim"),
61894
+ token: z47.enum(["primary", "secondary", "accent"]),
61895
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
61896
+ }).strict(),
61897
+ z47.object({
61898
+ kind: z47.literal("brand-wash"),
61899
+ token: z47.enum(["primary", "secondary", "accent"]),
61900
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
61901
+ }).strict(),
61902
+ z47.object({
61903
+ kind: z47.literal("neutral-scrim"),
61904
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
61905
+ }).strict(),
61906
+ z47.object({
61907
+ kind: z47.literal("neutral-wash"),
61908
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
61909
+ }).strict(),
61910
+ z47.object({
61911
+ kind: z47.literal("solid-panel"),
61912
+ intensity: imageSurfaceTreatmentIntensitySchema.optional()
61913
+ }).strict()
61914
+ ]);
61915
+ var testimonialCardTreatmentSchema = z47.enum(["default", "accent-quote"]);
61393
61916
  function uniqueNonEmpty(values) {
61394
61917
  const uniqueValues = [...new Set(values)];
61395
61918
  const firstValue = uniqueValues[0];
@@ -61428,7 +61951,11 @@ var blockDesignPlanSchema = z47.object({
61428
61951
  itemSurface: z47.enum(userDesignOptionCatalog.itemSurfaces),
61429
61952
  transitionAfter: z47.enum(userDesignOptionCatalog.transitions),
61430
61953
  emphasis: z47.enum(userDesignOptionCatalog.emphases),
61431
- heroLegibility: heroLegibilityStrategySchema.optional()
61954
+ sectionHeight: sectionHeightIntentSchema.optional(),
61955
+ heroLegibility: heroLegibilityStrategySchema.optional(),
61956
+ imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
61957
+ imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
61958
+ testimonialCardTreatment: testimonialCardTreatmentSchema.optional()
61432
61959
  }).strict();
61433
61960
  var styleAuthoritySchema = z47.discriminatedUnion("kind", [
61434
61961
  z47.object({
@@ -62095,6 +62622,7 @@ function heroContentCard(children, gap) {
62095
62622
  return styledContainer({
62096
62623
  bindFrom: "_contentCardStyles",
62097
62624
  constrainWidth: false,
62625
+ baseClassName: "rb-relative rb-isolate",
62098
62626
  rootType: "stack",
62099
62627
  rootProps: {
62100
62628
  gap
@@ -62125,6 +62653,7 @@ function heroContentWrapper(children, gap, fallbackClassName) {
62125
62653
  function heroContainerStack(children, gap) {
62126
62654
  return styledContainer({
62127
62655
  rootType: "stack",
62656
+ baseClassName: "rb-relative rb-isolate",
62128
62657
  rootProps: {
62129
62658
  gap: "none",
62130
62659
  justify: {
@@ -63051,7 +63580,7 @@ function resolveHeroVerticalAlignment(content) {
63051
63580
  if (raw === "top" || raw === "center" || raw === "bottom") return raw;
63052
63581
  const sectionStyles = asPartialObject(content._sectionStyles);
63053
63582
  const minHeight = sectionStyles?.minHeight;
63054
- if (minHeight === "hero" || minHeight === "immersive") return "center";
63583
+ if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
63055
63584
  const variant = resolveHeroVariant(content);
63056
63585
  if (variant === "split" || variant === "splitReverse") return "center";
63057
63586
  return "top";
@@ -63745,6 +64274,26 @@ var footerSplitNavSingleClassTransform = {
63745
64274
  ]);
63746
64275
  }
63747
64276
  };
64277
+ var footerSplitMainClassSchema = z56.object({
64278
+ base: z56.string().optional(),
64279
+ reverseClass: z56.string().optional()
64280
+ });
64281
+ var footerSplitMainClassTransform = {
64282
+ id: "layout.footerSplitMainClass",
64283
+ kind: "string",
64284
+ summary: "Compose split-footer main row classes from footer logo placement",
64285
+ schema: footerSplitMainClassSchema,
64286
+ run: (value, options) => {
64287
+ const logo = asPartialObject(value);
64288
+ const placement = logo?.placement ?? "right";
64289
+ const shouldPlaceLogoFirst = placement === "left" || placement === "above";
64290
+ const baseClass = shouldPlaceLogoFirst ? "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-end rb-gap-8 rb-md-flex-row rb-md-items-end" : "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-between rb-gap-8 rb-md-flex-row rb-md-items-end";
64291
+ return joinClasses7([
64292
+ options.base ?? baseClass,
64293
+ shouldPlaceLogoFirst ? options.reverseClass ?? "rb-md-flex-row-reverse" : null
64294
+ ]);
64295
+ }
64296
+ };
63748
64297
  var footerLogoClassSchema = z56.object({
63749
64298
  base: z56.string().optional()
63750
64299
  });
@@ -63755,14 +64304,11 @@ var footerLogoClassTransform = {
63755
64304
  schema: footerLogoClassSchema,
63756
64305
  run: (value, options) => {
63757
64306
  const logo = asPartialObject(value);
63758
- const placement = logo?.placement ?? "right";
63759
64307
  const align = logo?.align ?? "end";
63760
64308
  const hiddenClass = logo?.showLogo === false ? "rb-hidden" : null;
63761
- const orderClass = placement === "left" || placement === "above" ? "rb-md-order-first" : "rb-md-order-last";
63762
64309
  const selfAlignClass = align === "start" ? "rb-self-start rb-text-left" : align === "center" ? "rb-self-center rb-text-center" : "rb-self-end rb-text-right";
63763
64310
  return joinClasses7([
63764
64311
  options.base ?? "footer-logo rb-inline-flex rb-items-center rb-justify-end rb-gap-3 rb-no-underline rb-transition-opacity rb-hover-opacity-80",
63765
- orderClass,
63766
64312
  selfAlignClass,
63767
64313
  hiddenClass
63768
64314
  ]);
@@ -63817,6 +64363,7 @@ var layoutTransforms = [
63817
64363
  footerBottomBarContainerClassTransform,
63818
64364
  footerBottomBarStyleTransform,
63819
64365
  footerSplitNavSingleClassTransform,
64366
+ footerSplitMainClassTransform,
63820
64367
  footerLogoClassTransform,
63821
64368
  footerLogoMediaClassTransform,
63822
64369
  footerLogoTextVisibleTransform
@@ -64065,7 +64612,7 @@ var createNavRow = (className, align = "end") => navRow({
64065
64612
  var headerCta = ctaButton({
64066
64613
  basePath: "menu.ctaItem",
64067
64614
  whenPath: "menu.ctaItem.label",
64068
- variantPath: "menu.ctaItem.variant",
64615
+ variantPath: "$root.theme.header.ctaVariant",
64069
64616
  linkPath: "menu.ctaItem.link",
64070
64617
  sizeFallback: "sm",
64071
64618
  className: `header-cta ${desktopOnlyDisplay("inline-flex")} rb-ml-6`
@@ -64073,7 +64620,7 @@ var headerCta = ctaButton({
64073
64620
  var mobileCta = ctaButton({
64074
64621
  basePath: "menu.ctaItem",
64075
64622
  whenPath: "menu.ctaItem.label",
64076
- variantPath: "menu.ctaItem.variant",
64623
+ variantPath: "$root.theme.header.ctaVariant",
64077
64624
  linkPath: "menu.ctaItem.link",
64078
64625
  sizeFallback: "md",
64079
64626
  className: "nav-mobile-cta rb-w-full"
@@ -64543,7 +65090,13 @@ var splitFooterLayout = stack(
64543
65090
  [
64544
65091
  inline(
64545
65092
  {
64546
- className: "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-between rb-gap-8 rb-md-flex-row rb-md-items-end"
65093
+ className: {
65094
+ $bind: {
65095
+ from: "$root.theme.footer.logo",
65096
+ transforms: [{ id: "layout.footerSplitMainClass" }],
65097
+ fallback: "rb-flex rb-w-full rb-flex-col rb-items-start rb-justify-between rb-gap-8 rb-md-flex-row rb-md-items-end"
65098
+ }
65099
+ }
64547
65100
  },
64548
65101
  [
64549
65102
  stack(
@@ -68342,6 +68895,34 @@ function panelCapable() {
68342
68895
  itemSurfaces: "unsupported"
68343
68896
  });
68344
68897
  }
68898
+ var heroSectionHeights = [
68899
+ "default",
68900
+ "banner",
68901
+ "hero",
68902
+ "immersive"
68903
+ ];
68904
+ var heroImageSurfaceTreatments = [
68905
+ "none",
68906
+ "brand-scrim",
68907
+ "brand-wash",
68908
+ "neutral-scrim",
68909
+ "neutral-wash",
68910
+ "solid-panel"
68911
+ ];
68912
+ var heroImageSurfaceMotions = [
68913
+ "static",
68914
+ "fixed-frame"
68915
+ ];
68916
+ function heroCapable() {
68917
+ return declareBlockDesignCapability({
68918
+ sectionSurfaces: "supported",
68919
+ contentFrames: ["plain", "panel"],
68920
+ itemSurfaces: "unsupported",
68921
+ sectionHeights: heroSectionHeights,
68922
+ imageSurfaceTreatments: heroImageSurfaceTreatments,
68923
+ imageSurfaceMotions: heroImageSurfaceMotions
68924
+ });
68925
+ }
68345
68926
  function plainItemsCapable() {
68346
68927
  return declareBlockDesignCapability({
68347
68928
  sectionSurfaces: "supported",
@@ -68458,7 +69039,7 @@ function withDesignCapability(blockKind, definition, designCapability, designMet
68458
69039
  };
68459
69040
  }
68460
69041
  var systemBlockDefinitionsRaw = [
68461
- withDesignCapability("block.hero", heroBlockDefinition, panelCapable(), defineBlockDesignMetadata({
69042
+ withDesignCapability("block.hero", heroBlockDefinition, heroCapable(), defineBlockDesignMetadata({
68462
69043
  flow: heroFlow,
68463
69044
  layoutProfiles: [
68464
69045
  layoutProfile({
@@ -68562,7 +69143,12 @@ var systemBlockDefinitionsRaw = [
68562
69143
  flow: siteChromeFlow,
68563
69144
  layoutProfiles: []
68564
69145
  })),
68565
- withDesignCapability("block.testimonials", testimonialsBlockDefinition, panelAndItemsCapable(), defineBlockDesignMetadata({
69146
+ withDesignCapability("block.testimonials", testimonialsBlockDefinition, declareBlockDesignCapability({
69147
+ sectionSurfaces: "supported",
69148
+ contentFrames: ["plain", "panel"],
69149
+ itemSurfaces: "supported",
69150
+ testimonialCardTreatments: ["default", "accent-quote"]
69151
+ }), defineBlockDesignMetadata({
68566
69152
  flow: proofFlow,
68567
69153
  layoutProfiles: [
68568
69154
  layoutProfile({
@@ -68813,8 +69399,15 @@ function parseOpacity(value) {
68813
69399
  }
68814
69400
  return opacity <= 1 ? opacity : opacity / 100;
68815
69401
  }
68816
- function appendOptionalClasses(baseClassName, optionalClassName) {
68817
- return optionalClassName ? `${baseClassName} ${optionalClassName}` : baseClassName;
69402
+ function backgroundMotionClassNames(input) {
69403
+ return input.motion === "fixed-frame" ? "rb-bg-motion-fixed-frame" : "";
69404
+ }
69405
+ function appendBackgroundMediaClasses(baseClassName, input) {
69406
+ return [
69407
+ baseClassName,
69408
+ backgroundMotionClassNames(input),
69409
+ backgroundVideoMobileClassNames(input)
69410
+ ].filter(Boolean).join(" ");
68818
69411
  }
68819
69412
  var resolveImageStyleTransform = {
68820
69413
  id: "background.resolveImageStyle",
@@ -68891,9 +69484,9 @@ var resolveImageClassNameTransform = {
68891
69484
  const objectFit = isString2(input.objectFit) ? input.objectFit.trim() : null;
68892
69485
  const position = isString2(input.position) ? input.position.trim() : null;
68893
69486
  if (objectFit === "fill" || objectFit === "fit" || objectFit === null) {
68894
- return appendOptionalClasses(
69487
+ return appendBackgroundMediaClasses(
68895
69488
  `${baseClass} rb-inset-0 rb-h-full rb-w-full rb-object-${objectFit === "fit" ? "contain" : "cover"}`,
68896
- backgroundVideoMobileClassNames(input)
69489
+ input
68897
69490
  );
68898
69491
  }
68899
69492
  let needsAnchoring = false;
@@ -68906,18 +69499,18 @@ var resolveImageClassNameTransform = {
68906
69499
  }
68907
69500
  }
68908
69501
  if (!needsAnchoring) {
68909
- return appendOptionalClasses(
69502
+ return appendBackgroundMediaClasses(
68910
69503
  `${baseClass} rb-inset-0 rb-h-full rb-w-full`,
68911
- backgroundVideoMobileClassNames(input)
69504
+ input
68912
69505
  );
68913
69506
  }
68914
69507
  const isPreset = position && BACKGROUND_POSITION_PRESET_VALUES.includes(position);
68915
69508
  const isCustom = position && !isPreset;
68916
69509
  if (isCustom) {
68917
- return appendOptionalClasses(baseClass, backgroundVideoMobileClassNames(input));
69510
+ return appendBackgroundMediaClasses(baseClass, input);
68918
69511
  }
68919
69512
  const anchorClasses = getAnchorClasses(position);
68920
- return appendOptionalClasses(`${baseClass} ${anchorClasses}`, backgroundVideoMobileClassNames(input));
69513
+ return appendBackgroundMediaClasses(`${baseClass} ${anchorClasses}`, input);
68921
69514
  }
68922
69515
  };
68923
69516
  var resolveOverlayStyleTransform = {
@@ -73661,7 +74254,7 @@ var ENDPOINT_DEFINITIONS = {
73661
74254
  method: "GET",
73662
74255
  tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
73663
74256
  auth: "user",
73664
- responseKind: "text"
74257
+ responseKind: "blob"
73665
74258
  },
73666
74259
  getNewsletterSubscriber: {
73667
74260
  path: "/sites/{siteId}/newsletter/subscribers/{subscriberId}",
@@ -73992,12 +74585,7 @@ var ENDPOINT_DEFINITIONS = {
73992
74585
  ],
73993
74586
  auth: "user",
73994
74587
  responseKind: "json",
73995
- errors: [
73996
- "validation:invalid_input",
73997
- "resource:not_found",
73998
- "resource:conflict",
73999
- "server:internal_error"
74000
- ]
74588
+ errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
74001
74589
  },
74002
74590
  unpublishTeamMemberProfile: {
74003
74591
  path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
@@ -74250,6 +74838,13 @@ var ENDPOINT_DEFINITIONS = {
74250
74838
  auth: "user",
74251
74839
  responseKind: "json"
74252
74840
  },
74841
+ exportBookingAppointmentsCsv: {
74842
+ path: "/sites/{siteId}/bookings/appointments/export.csv",
74843
+ method: "GET",
74844
+ auth: "user",
74845
+ errors: [],
74846
+ responseKind: "blob"
74847
+ },
74253
74848
  createAppointment: {
74254
74849
  path: "/sites/{siteId}/bookings/appointments",
74255
74850
  method: "POST",
@@ -74377,6 +74972,13 @@ var ENDPOINT_DEFINITIONS = {
74377
74972
  auth: "user",
74378
74973
  responseKind: "json"
74379
74974
  },
74975
+ exportCourseEnrollmentsCsv: {
74976
+ path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/export.csv",
74977
+ method: "GET",
74978
+ auth: "user",
74979
+ errors: [],
74980
+ responseKind: "blob"
74981
+ },
74380
74982
  listCourseWaitlist: {
74381
74983
  path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist",
74382
74984
  method: "GET",
@@ -75135,6 +75737,63 @@ var ENDPOINT_DEFINITIONS = {
75135
75737
  auth: "user",
75136
75738
  responseKind: "json"
75137
75739
  },
75740
+ updateRegisteredDomainContact: {
75741
+ path: "/domains/{domainId}/registrar/contact",
75742
+ method: "POST",
75743
+ errors: [
75744
+ "validation:invalid_input",
75745
+ "resource:not_found",
75746
+ "auth:forbidden",
75747
+ "external:service_error",
75748
+ "external:registrar_orphaned_contact_profile",
75749
+ "server:internal_error"
75750
+ ],
75751
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
75752
+ auth: "user",
75753
+ responseKind: "json"
75754
+ },
75755
+ setRegisteredDomainPrivacy: {
75756
+ path: "/domains/{domainId}/registrar/privacy",
75757
+ method: "POST",
75758
+ errors: [
75759
+ "validation:invalid_input",
75760
+ "resource:not_found",
75761
+ "auth:forbidden",
75762
+ "external:service_error",
75763
+ "server:internal_error"
75764
+ ],
75765
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
75766
+ auth: "user",
75767
+ responseKind: "json"
75768
+ },
75769
+ setRegisteredDomainAutoRenew: {
75770
+ path: "/domains/{domainId}/registrar/auto-renew",
75771
+ method: "POST",
75772
+ errors: [
75773
+ "validation:invalid_input",
75774
+ "resource:not_found",
75775
+ "auth:forbidden",
75776
+ "external:service_error",
75777
+ "server:internal_error"
75778
+ ],
75779
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
75780
+ auth: "user",
75781
+ responseKind: "json"
75782
+ },
75783
+ getRegisteredDomainRenewalPosture: {
75784
+ path: "/domains/{domainId}/registrar/renewal",
75785
+ method: "GET",
75786
+ errors: [
75787
+ "validation:invalid_input",
75788
+ "resource:not_found",
75789
+ "auth:forbidden",
75790
+ "external:service_error",
75791
+ "server:internal_error"
75792
+ ],
75793
+ tags: ["domains", "domain-{domainId}", "domain-registrar"],
75794
+ auth: "user",
75795
+ responseKind: "json"
75796
+ },
75138
75797
  retryDomainVercel: {
75139
75798
  path: "/domains/{domainId}/vercel",
75140
75799
  method: "POST",
@@ -75682,6 +76341,14 @@ var ENDPOINT_DEFINITIONS = {
75682
76341
  auth: "user",
75683
76342
  responseKind: "json"
75684
76343
  },
76344
+ exportSeoPagesCsv: {
76345
+ path: "/sites/{siteId}/seo/pages",
76346
+ method: "GET",
76347
+ tags: ["site-{siteId}", "seo-pages-{siteId}"],
76348
+ auth: "user",
76349
+ responseKind: "blob",
76350
+ errors: []
76351
+ },
75685
76352
  getSeoQueries: {
75686
76353
  path: "/sites/{siteId}/seo/queries",
75687
76354
  method: "GET",
@@ -75690,6 +76357,14 @@ var ENDPOINT_DEFINITIONS = {
75690
76357
  auth: "user",
75691
76358
  responseKind: "json"
75692
76359
  },
76360
+ exportSeoQueriesCsv: {
76361
+ path: "/sites/{siteId}/seo/queries",
76362
+ method: "GET",
76363
+ tags: ["site-{siteId}", "seo-queries-{siteId}"],
76364
+ auth: "user",
76365
+ responseKind: "blob",
76366
+ errors: []
76367
+ },
75693
76368
  getPerformanceOverview: {
75694
76369
  path: "/sites/{siteId}/performance/overview",
75695
76370
  method: "GET",
@@ -75738,7 +76413,12 @@ var ENDPOINT_DEFINITIONS = {
75738
76413
  path: "/media/{assetId}/canonical-crop",
75739
76414
  method: "POST",
75740
76415
  tags: ["media", "media-{assetId}"],
75741
- errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"],
76416
+ errors: [
76417
+ "validation:invalid_input",
76418
+ "resource:not_found",
76419
+ "resource:conflict",
76420
+ "server:internal_error"
76421
+ ],
75742
76422
  auth: "user",
75743
76423
  responseKind: "json"
75744
76424
  },
@@ -76070,7 +76750,7 @@ var ENDPOINT_DEFINITIONS = {
76070
76750
  method: "GET",
76071
76751
  tags: [TAG_TEMPLATES.siteForms, TAG_TEMPLATES.formSubmissionsBySlug],
76072
76752
  auth: "user",
76073
- responseKind: "text"
76753
+ responseKind: "blob"
76074
76754
  },
76075
76755
  // Public submit
76076
76756
  submitForm: {
@@ -76953,6 +77633,14 @@ var ENDPOINT_DEFINITIONS = {
76953
77633
  auth: "user",
76954
77634
  responseKind: "json"
76955
77635
  },
77636
+ exportEventSeriesAttendeesCsv: {
77637
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/attendees/export.csv",
77638
+ method: "GET",
77639
+ tags: ["site-{siteId}", "event-series-{seriesId}"],
77640
+ auth: "user",
77641
+ errors: [],
77642
+ responseKind: "blob"
77643
+ },
76956
77644
  listEventSeriesWaitlist: {
76957
77645
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist",
76958
77646
  method: "GET",
@@ -77516,6 +78204,14 @@ var ENDPOINT_DEFINITIONS = {
77516
78204
  auth: "user",
77517
78205
  responseKind: "json"
77518
78206
  },
78207
+ exportBookingCustomersCsv: {
78208
+ path: "/sites/{siteId}/bookings/customers/export.csv",
78209
+ method: "GET",
78210
+ tags: ["site-{siteId}", "customers-{siteId}"],
78211
+ auth: "user",
78212
+ errors: [],
78213
+ responseKind: "blob"
78214
+ },
77519
78215
  createBookingCustomer: {
77520
78216
  path: "/sites/{siteId}/bookings/customers",
77521
78217
  method: "POST",
@@ -77543,6 +78239,21 @@ var ENDPOINT_DEFINITIONS = {
77543
78239
  "server:internal_error"
77544
78240
  ]
77545
78241
  },
78242
+ rectifyBookingParticipantIdentity: {
78243
+ path: "/sites/{siteId}/bookings/participants/{participantId}/identity",
78244
+ method: "PATCH",
78245
+ tags: ["site-{siteId}", "customers-{siteId}"],
78246
+ auth: "user",
78247
+ responseKind: "json",
78248
+ errors: [
78249
+ "validation:invalid_input",
78250
+ "auth:forbidden",
78251
+ "resource:not_found",
78252
+ "resource:already_exists",
78253
+ "resource:conflict",
78254
+ "server:internal_error"
78255
+ ]
78256
+ },
77546
78257
  listCustomerPasses: {
77547
78258
  path: "/sites/{siteId}/bookings/customers/{customerId}/passes",
77548
78259
  method: "GET",
@@ -77677,13 +78388,46 @@ var ENDPOINT_DEFINITIONS = {
77677
78388
  auth: "user",
77678
78389
  responseKind: "json"
77679
78390
  },
78391
+ exportMoneyPaymentsCsv: {
78392
+ path: "/sites/{siteId}/bookings/money/payments/export.csv",
78393
+ method: "GET",
78394
+ tags: ["site-{siteId}", "bookings", "money-payments-{siteId}"],
78395
+ errors: [],
78396
+ auth: "user",
78397
+ responseKind: "blob"
78398
+ },
78399
+ exportMoneyBreakdownsCsv: {
78400
+ path: "/sites/{siteId}/bookings/money/report/breakdowns/export.csv",
78401
+ method: "GET",
78402
+ tags: ["site-{siteId}", "bookings", "money-report-{siteId}"],
78403
+ errors: [],
78404
+ auth: "user",
78405
+ responseKind: "blob"
78406
+ },
78407
+ exportMoneyTimeSeriesCsv: {
78408
+ path: "/sites/{siteId}/bookings/money/report/time-series/export.csv",
78409
+ method: "GET",
78410
+ tags: ["site-{siteId}", "bookings", "money-report-{siteId}"],
78411
+ errors: [],
78412
+ auth: "user",
78413
+ responseKind: "blob"
78414
+ },
77680
78415
  listBookingActivity: {
77681
78416
  path: "/sites/{siteId}/bookings/activity",
77682
78417
  method: "GET",
77683
78418
  tags: ["site-{siteId}", "bookings", "activity-{siteId}"],
78419
+ errors: [],
77684
78420
  auth: "user",
77685
78421
  responseKind: "json"
77686
78422
  },
78423
+ exportBookingActivityCsv: {
78424
+ path: "/sites/{siteId}/bookings/activity/export.csv",
78425
+ method: "GET",
78426
+ tags: ["site-{siteId}", "bookings", "activity-{siteId}"],
78427
+ errors: [],
78428
+ auth: "user",
78429
+ responseKind: "blob"
78430
+ },
77687
78431
  // Site logs
77688
78432
  listSiteActivityLogs: {
77689
78433
  path: "/sites/{siteId}/logs/activity",
@@ -77835,13 +78579,6 @@ var ENDPOINT_DEFINITIONS = {
77835
78579
  auth: "user",
77836
78580
  responseKind: "blob"
77837
78581
  },
77838
- exportSeoCsv: {
77839
- path: "/sites/{siteId}/seo/export",
77840
- method: "GET",
77841
- tags: ["site-{siteId}", "seo"],
77842
- auth: "user",
77843
- responseKind: "blob"
77844
- },
77845
78582
  // Admin site cost (for admin panel)
77846
78583
  adminSiteCost: {
77847
78584
  path: "/admin/sites/{siteId}/cost",
@@ -79145,6 +79882,8 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
79145
79882
  var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
79146
79883
  "missing_amount",
79147
79884
  "amount_exceeds_remaining",
79885
+ "credit_refunds_disabled",
79886
+ "missing_credit_customer",
79148
79887
  "deposit_refund_override_required",
79149
79888
  "refund_revoke_requires_full_line_refund",
79150
79889
  "unified_order_link_required"