@riverbankcms/sdk 0.76.0 → 0.77.1

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 (151) hide show
  1. package/dist/{PreviewEditorSidebar-X2HWXFOL.mjs → PreviewEditorSidebar-DVUG7GK4.mjs} +1019 -442
  2. package/dist/{PreviewEditorUI-AQXIXPOH.mjs → PreviewEditorUI-P7RN4CDS.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +8 -0
  4. package/dist/_dts/ai/src/contracts/proposals.d.ts +538 -20
  5. package/dist/_dts/api/src/contentRuntime.d.ts +5 -0
  6. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  7. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +26 -2
  8. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +28 -0
  9. package/dist/_dts/block-form/src/client/index.d.ts +2 -2
  10. package/dist/_dts/block-form/src/index.d.ts +2 -1
  11. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +1 -1
  12. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +1 -1
  13. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +1 -1
  14. package/dist/_dts/blocks/src/PageRenderer.d.ts +10 -10
  15. package/dist/_dts/blocks/src/client/site-chrome.d.ts +22 -0
  16. package/dist/_dts/blocks/src/customBlockRegistry.d.ts +57 -0
  17. package/dist/_dts/blocks/src/index.d.ts +2 -0
  18. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +20 -2
  19. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +25 -0
  20. package/dist/_dts/blocks/src/system/blocks/index.d.ts +2 -0
  21. package/dist/_dts/blocks/src/system/blocks/intro.d.ts +24 -0
  22. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -34
  23. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +2 -2
  24. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +30 -0
  26. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -1
  27. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +7 -0
  28. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +16 -2
  29. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  30. package/dist/_dts/blocks/src/system/runtime/components/multi-step/runtimeFormValidation.d.ts +28 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.d.ts +2 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/accordion.server.d.ts +2 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/accordionIconTreatment.d.ts +5 -0
  34. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -4
  35. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  36. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -0
  37. package/dist/_dts/content-editor/src/hooks/blockDraftLifecycle.d.ts +48 -0
  38. package/dist/_dts/content-editor/src/hooks/invalidBlockSelectors.d.ts +4 -0
  39. package/dist/_dts/content-editor/src/hooks/publishability.d.ts +47 -0
  40. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  41. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +20 -0
  42. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -1
  43. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -1
  44. package/dist/_dts/editor-blocks/src/block-editor/customBlockRegistry.d.ts +2 -0
  45. package/dist/_dts/editor-blocks/src/block-editor/sdkBlockMerger.d.ts +9 -37
  46. package/dist/_dts/editor-blocks/src/index.d.ts +2 -2
  47. package/dist/_dts/preview-next/src/client/index.d.ts +3 -0
  48. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +5 -1
  49. package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +20 -0
  50. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +7 -2
  51. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -2
  52. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +7 -2
  53. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -0
  54. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +20 -3
  55. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +6 -1
  56. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +14 -4
  57. package/dist/_dts/preview-next/src/client/preview/previewDesignCoordinator.d.ts +73 -0
  58. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +12 -4
  59. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +46 -0
  60. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +6 -1
  61. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +14 -0
  62. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +1 -1
  63. package/dist/_dts/sdk/src/cli/commands/style.d.ts +8 -0
  64. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -1
  65. package/dist/_dts/sdk/src/client/types.d.ts +9 -0
  66. package/dist/_dts/sdk/src/client.d.ts +1 -1
  67. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +35 -0
  68. package/dist/_dts/sdk/src/contracts/theme.d.ts +1 -1
  69. package/dist/_dts/sdk/src/index.d.ts +2 -1
  70. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -0
  71. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  72. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  73. package/dist/_dts/sdk/src/version.d.ts +1 -1
  74. package/dist/_dts/site-commands/src/commands.d.ts +15 -0
  75. package/dist/_dts/theme-core/src/buttons/personalities/earth-pill.d.ts +16 -0
  76. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  77. package/dist/_dts/theme-core/src/fonts/types.d.ts +1 -1
  78. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  79. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -27
  80. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  81. package/dist/_dts/theme-core/src/palette/variants/warm-neutral.d.ts +16 -0
  82. package/dist/_dts/theme-core/src/schema.d.ts +306 -30
  83. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +81 -0
  84. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +6 -4
  85. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +81 -0
  86. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +119 -3
  87. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +4 -4
  88. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +13 -0
  89. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  90. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +402 -13
  91. package/dist/_dts/theme-core/src/site-styles/headerOpeningSection.d.ts +6 -0
  92. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  93. package/dist/_dts/theme-core/src/site-styles/persistedIdParseResult.d.ts +9 -0
  94. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +20 -4
  95. package/dist/_dts/theme-core/src/site-styles/types.d.ts +74 -2
  96. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +189 -0
  97. package/dist/{chunk-Q4OLG66B.mjs → chunk-2SPENC5M.mjs} +476 -153
  98. package/dist/{chunk-Z7JLNTJR.mjs → chunk-6SMUFTXD.mjs} +2 -1
  99. package/dist/{chunk-TW2Y4RR5.mjs → chunk-IENWFSLO.mjs} +365 -52
  100. package/dist/{chunk-LYI7TEMH.mjs → chunk-KWJPDZH2.mjs} +4682 -1463
  101. package/dist/{chunk-V5VORNEJ.mjs → chunk-ZYEJLCTN.mjs} +1 -1
  102. package/dist/cli/index.mjs +2314 -267
  103. package/dist/client/{accordion-2YHIBOZH.mjs → accordion-RZMQSYLR.mjs} +1 -1
  104. package/dist/client/{bookingForm-35IBDWAS.mjs → bookingForm-NF4ASVNV.mjs} +2 -2
  105. package/dist/client/bookings.mjs +92 -0
  106. package/dist/client/{carousel-K6XG7NZQ.mjs → carousel-LDX47ZIK.mjs} +1 -1
  107. package/dist/client/{cart-HCFYUTTU.mjs → cart-RGXDS5F4.mjs} +3 -3
  108. package/dist/client/{checkout-J3U4XR7K.mjs → checkout-P7WWSNNY.mjs} +3 -3
  109. package/dist/client/{chunk-BOIHIU7E.mjs → chunk-E2TDNXCL.mjs} +1 -1
  110. package/dist/client/{chunk-PFBX3IQL.mjs → chunk-GMVTOKYG.mjs} +2 -2
  111. package/dist/client/{chunk-FGUIVT2B.mjs → chunk-JNC7CGHX.mjs} +1 -1
  112. package/dist/client/{chunk-SNSWVZEP.mjs → chunk-L3DNHIJX.mjs} +3 -3
  113. package/dist/client/{chunk-7UOSCYY4.mjs → chunk-R56FQ3RR.mjs} +92 -0
  114. package/dist/client/{chunk-J227A3CQ.mjs → chunk-UFSWADAO.mjs} +1 -1
  115. package/dist/client/client.mjs +3579 -1351
  116. package/dist/client/{courseRegistration-ZBXS7VGI.mjs → courseRegistration-7F65K5ZR.mjs} +2 -2
  117. package/dist/client/{eventCalendar-EQQZHJBA.mjs → eventCalendar-GLSC5KTL.mjs} +4 -4
  118. package/dist/client/{eventCombined-JCFTGBFQ.mjs → eventCombined-ZHK4WKUR.mjs} +4 -4
  119. package/dist/client/{eventDetails-HLUTQSYY.mjs → eventDetails-E3PJYBIN.mjs} +4 -4
  120. package/dist/client/{eventListing-FG4MICVB.mjs → eventListing-EMS3WC3E.mjs} +4 -4
  121. package/dist/client/{eventRegistration-GUEB7LBT.mjs → eventRegistration-NZOTVNPI.mjs} +4 -4
  122. package/dist/client/{form-YQEW4YIT.mjs → form-ETFZFATW.mjs} +1 -1
  123. package/dist/client/{headerSection-GTR3TTRM.mjs → headerSection-4LBP7ULT.mjs} +2 -2
  124. package/dist/client/hooks.mjs +2226 -402
  125. package/dist/client/{locationMap-SPC7VGUH.mjs → locationMap-5M655YSJ.mjs} +1 -1
  126. package/dist/client/{newsletterForm-4IW5BLID.mjs → newsletterForm-QOUYW44O.mjs} +1 -1
  127. package/dist/client/{productDetail-KP5H2WJO.mjs → productDetail-O4DOCWQG.mjs} +3 -3
  128. package/dist/client/{productList-3M3M72XZ.mjs → productList-A5RO5WIS.mjs} +3 -3
  129. package/dist/client/rendering/client.mjs +198 -32
  130. package/dist/client/rendering/islands.mjs +18 -18
  131. package/dist/client/rendering.mjs +3573 -1355
  132. package/dist/client/{shop-ACQKVGOM.mjs → shop-L4MZH4I2.mjs} +3 -3
  133. package/dist/preview-next/client/runtime.mjs +4 -4
  134. package/dist/{sdk-runtime-K7HNB4U2.mjs → sdk-runtime-6UT2S7KZ.mjs} +5 -5
  135. package/dist/server/components.mjs +3497 -1333
  136. package/dist/server/config-validation.mjs +2229 -402
  137. package/dist/server/config.mjs +2229 -402
  138. package/dist/server/data.mjs +2226 -402
  139. package/dist/server/index.mjs +31 -2
  140. package/dist/server/next.mjs +3503 -1329
  141. package/dist/server/page-converter.mjs +2213 -403
  142. package/dist/server/prebuild.mjs +1 -1
  143. package/dist/server/rendering/server.mjs +3497 -1333
  144. package/dist/server/rendering.mjs +3497 -1333
  145. package/dist/server/routing.mjs +2250 -363
  146. package/dist/server/server.mjs +2243 -400
  147. package/dist/server/theme-bridge.mjs +1313 -1035
  148. package/dist/server/theme.mjs +237 -12
  149. package/dist/styles/index.css +1081 -1028
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +0 -8
@@ -1,7 +1,7 @@
1
1
  import { LeafletStaticMap } from './chunk-F7LHOKEH.mjs';
2
2
  import './chunk-I2MMZO53.mjs';
3
3
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
4
- import { defineIslandPropsDecoder } from './chunk-7UOSCYY4.mjs';
4
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
5
5
  import { normalizeLocationAddressText, toLocationCoordinates, textColorStyle, mergeStyles, borderColorStyle, backgroundColorStyle } from './chunk-PMAIXMAB.mjs';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
 
@@ -3,7 +3,7 @@ import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-
3
3
  import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-YLMKMCSJ.mjs';
4
4
  import { BlockApiProvider, useBlockApi, FeedbackMessage } from './chunk-M3L3KYYR.mjs';
5
5
  import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
6
- import { defineIslandPropsDecoder, themeButtonClassName } from './chunk-7UOSCYY4.mjs';
6
+ import { defineIslandPropsDecoder, themeButtonClassName } from './chunk-R56FQ3RR.mjs';
7
7
  import { clsx_default } from './chunk-PMAIXMAB.mjs';
8
8
  import { useState } from 'react';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,5 +1,5 @@
1
- import { mountShopBlockIsland, ProductDetailClient } from './chunk-PFBX3IQL.mjs';
2
- import './chunk-BOIHIU7E.mjs';
1
+ import { mountShopBlockIsland, ProductDetailClient } from './chunk-GMVTOKYG.mjs';
2
+ import './chunk-E2TDNXCL.mjs';
3
3
  import './chunk-II7O4XN3.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-RTZ3JKKX.mjs';
@@ -8,7 +8,7 @@ import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-M3L3KYYR.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-7UOSCYY4.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
12
12
  import './chunk-PMAIXMAB.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/productDetail.tsx
@@ -1,5 +1,5 @@
1
- import { mountShopBlockIsland, ProductListClient } from './chunk-PFBX3IQL.mjs';
2
- import './chunk-BOIHIU7E.mjs';
1
+ import { mountShopBlockIsland, ProductListClient } from './chunk-GMVTOKYG.mjs';
2
+ import './chunk-E2TDNXCL.mjs';
3
3
  import './chunk-II7O4XN3.mjs';
4
4
  import './chunk-I2MMZO53.mjs';
5
5
  import './chunk-RTZ3JKKX.mjs';
@@ -8,7 +8,7 @@ import './chunk-3DCJ45Z2.mjs';
8
8
  import './chunk-3PEDD5KJ.mjs';
9
9
  import './chunk-M3L3KYYR.mjs';
10
10
  import './chunk-N7PBWBWQ.mjs';
11
- import { defineIslandPropsDecoder } from './chunk-7UOSCYY4.mjs';
11
+ import { defineIslandPropsDecoder } from './chunk-R56FQ3RR.mjs';
12
12
  import './chunk-PMAIXMAB.mjs';
13
13
 
14
14
  // src/rendering/islands/enhancers/productList.tsx
@@ -2077,6 +2077,104 @@ var init_confident_chip = __esm({
2077
2077
  }
2078
2078
  });
2079
2079
 
2080
+ // ../theme-core/src/buttons/personalities/earth-pill.ts
2081
+ var earthPill;
2082
+ var init_earth_pill = __esm({
2083
+ "../theme-core/src/buttons/personalities/earth-pill.ts"() {
2084
+ "use strict";
2085
+ init_types2();
2086
+ earthPill = defineButtonPersonality({
2087
+ id: "earth-pill",
2088
+ name: "Earth Pill",
2089
+ description: "Compact terracotta pills with quiet primary-coloured ghost CTAs.",
2090
+ tags: { tone: "classic", energy: "calm", motion: "subtle", era: "organic" },
2091
+ buttonSystem: {
2092
+ global: {
2093
+ cornerStyle: "pill",
2094
+ shadow: "low",
2095
+ textTransform: "none",
2096
+ fontWeight: 500,
2097
+ borderWidth: 1,
2098
+ hoverTransform: "lift",
2099
+ hoverColor: "none",
2100
+ typography: "body",
2101
+ paddingPreset: "default"
2102
+ },
2103
+ sizes: {
2104
+ sm: { padding: "0.5rem 1rem", fontSize: "text-sm" },
2105
+ md: { padding: "0.625rem 1.35rem" },
2106
+ lg: { padding: "0.75rem 1.65rem", fontSize: "text-lg" },
2107
+ xl: { padding: "0.875rem 2rem", fontSize: "text-xl" }
2108
+ },
2109
+ variants: [
2110
+ {
2111
+ id: "primary",
2112
+ name: "Primary",
2113
+ enabled: true,
2114
+ priority: 1,
2115
+ background: { type: "solid", colorToken: "primary" },
2116
+ textColorToken: "primaryForeground",
2117
+ borderRadius: "rounded-full",
2118
+ shadow: { elevation: "low", softness: "soft", position: "bottom" },
2119
+ effects: {
2120
+ hover: [
2121
+ { effectId: "lift", options: { translateY: "-1px" } },
2122
+ { effectId: "background-on-hover", options: { colorToken: "accent" } }
2123
+ ],
2124
+ active: [{ effectId: "scale-down", options: { scale: "0.98" } }]
2125
+ }
2126
+ },
2127
+ {
2128
+ id: "secondary",
2129
+ name: "Secondary",
2130
+ enabled: true,
2131
+ priority: 2,
2132
+ background: { type: "transparent" },
2133
+ textColorToken: "primary",
2134
+ borderRadius: "rounded-full",
2135
+ border: { widthClass: "border", colorToken: "primary" },
2136
+ effects: {
2137
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "muted" } }]
2138
+ }
2139
+ },
2140
+ {
2141
+ id: "outline",
2142
+ name: "Outline",
2143
+ enabled: true,
2144
+ priority: 3,
2145
+ background: { type: "transparent" },
2146
+ textColorToken: "text",
2147
+ borderRadius: "rounded-full",
2148
+ border: { widthClass: "border", colorToken: "border" },
2149
+ effects: {
2150
+ hover: [{ effectId: "background-on-hover", options: { colorToken: "surfaceAlt" } }]
2151
+ }
2152
+ },
2153
+ {
2154
+ id: "ghost",
2155
+ name: "Ghost",
2156
+ enabled: true,
2157
+ priority: 3,
2158
+ background: { type: "transparent" },
2159
+ textColorToken: "primary",
2160
+ borderRadius: "rounded-full",
2161
+ shadow: { elevation: "none", softness: null, position: "bottom" },
2162
+ sizes: {
2163
+ sm: { padding: "0.25rem 0", fontSize: "text-sm" },
2164
+ md: { padding: "0.375rem 0" },
2165
+ lg: { padding: "0.5rem 0", fontSize: "text-lg" },
2166
+ xl: { padding: "0.625rem 0", fontSize: "text-xl" }
2167
+ },
2168
+ effects: {
2169
+ hover: [{ effectId: "opacity-reduce", options: { reduction: 25 } }]
2170
+ }
2171
+ }
2172
+ ]
2173
+ }
2174
+ });
2175
+ }
2176
+ });
2177
+
2080
2178
  // ../theme-core/src/buttons/personalities/editorial-link.ts
2081
2179
  var editorialLink;
2082
2180
  var init_editorial_link = __esm({
@@ -2574,6 +2672,7 @@ var init_personalities = __esm({
2574
2672
  "use strict";
2575
2673
  init_brushed_wash();
2576
2674
  init_confident_chip();
2675
+ init_earth_pill();
2577
2676
  init_editorial_link();
2578
2677
  init_ink_stamp();
2579
2678
  init_pebble();
@@ -2582,6 +2681,7 @@ var init_personalities = __esm({
2582
2681
  init_types2();
2583
2682
  buttonPersonalities = [
2584
2683
  softPill,
2684
+ earthPill,
2585
2685
  confidentChip,
2586
2686
  editorialLink,
2587
2687
  pebble,
@@ -6465,7 +6565,7 @@ function okWith(data) {
6465
6565
  function err2(error) {
6466
6566
  return { ok: false, error };
6467
6567
  }
6468
- function assertNever4(value, message) {
6568
+ function assertNever5(value, message) {
6469
6569
  throw new Error(message ?? `Unexpected value: ${String(value)}`);
6470
6570
  }
6471
6571
  var init_dist = __esm({
@@ -6631,7 +6731,7 @@ function deriveBookingFormViewState(input) {
6631
6731
  resourceName: input.verificationState.resourceName
6632
6732
  };
6633
6733
  default:
6634
- return assertNever4(input.verificationState);
6734
+ return assertNever5(input.verificationState);
6635
6735
  }
6636
6736
  }
6637
6737
  function resolveBookingSiteId(siteId, form2) {
@@ -6801,7 +6901,7 @@ function getBookingServicePaymentSelectionMode(service) {
6801
6901
  case "flexible_balance":
6802
6902
  return "implicit_flexible_balance";
6803
6903
  default:
6804
- return assertNever4(onlyKind);
6904
+ return assertNever5(onlyKind);
6805
6905
  }
6806
6906
  }
6807
6907
  if (allowedKinds.length === 2 && allowedKinds.includes("upfront") && (allowedKinds.includes("deferred_manual") || allowedKinds.includes("instalment_plan") || allowedKinds.includes("flexible_balance"))) {
@@ -7003,7 +7103,7 @@ function formatBookingSubmissionPreparationError(error) {
7003
7103
  case "service-missing-duration":
7004
7104
  return `Service "${error.serviceTitle}" is missing duration. Please update the service in the dashboard to include a duration (e.g., 30 minutes).`;
7005
7105
  default:
7006
- return assertNever4(error);
7106
+ return assertNever5(error);
7007
7107
  }
7008
7108
  }
7009
7109
  function getBookingSuccessMessage(successMessage) {
@@ -11881,6 +11981,7 @@ var init_validation_constants = __esm({
11881
11981
  "layout.headerRootClass",
11882
11982
  "layout.footerRootClass",
11883
11983
  "layout.headerRootStyle",
11984
+ "layout.headerSectionBackground",
11884
11985
  "layout.footerRootStyle",
11885
11986
  // UI (ui.ts)
11886
11987
  "ui.headerNavLinkClass",
@@ -14113,8 +14214,9 @@ var init_faqAccordion = __esm({
14113
14214
  },
14114
14215
  fallback: "rb-faq-item"
14115
14216
  },
14116
- iconStyle: { $bind: { from: "theme.accordions.icon.style" } }
14117
- // Pass icon style from theme
14217
+ iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
14218
+ // Legacy theme accordion style
14219
+ iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
14118
14220
  },
14119
14221
  triggerFrom: "faqItem.question",
14120
14222
  contentFrom: "faqItem.answer"
@@ -21272,7 +21374,7 @@ function bookingSubmissionReducer(state, action) {
21272
21374
  feedback: { tag: "idle" }
21273
21375
  };
21274
21376
  default:
21275
- return assertNever4(action);
21377
+ return assertNever5(action);
21276
21378
  }
21277
21379
  }
21278
21380
  function selectIsSubmitting(state) {
@@ -21624,7 +21726,7 @@ function buildBookingPaymentOptionViewModel(input) {
21624
21726
  };
21625
21727
  }
21626
21728
  default:
21627
- return assertNever4(input.option);
21729
+ return assertNever5(input.option);
21628
21730
  }
21629
21731
  }
21630
21732
  function buildInstalmentSchedulePreview(input) {
@@ -21681,7 +21783,7 @@ function buildInstalmentSchedulePreview(input) {
21681
21783
  })));
21682
21784
  }
21683
21785
  default:
21684
- return assertNever4(input.option.plan);
21786
+ return assertNever5(input.option.plan);
21685
21787
  }
21686
21788
  }
21687
21789
  function getPaymentCadenceLabel(plan) {
@@ -21913,7 +22015,7 @@ function bookingFlowReducer(state, event) {
21913
22015
  case "reset":
21914
22016
  return event.initial;
21915
22017
  default:
21916
- return assertNever4(event);
22018
+ return assertNever5(event);
21917
22019
  }
21918
22020
  }
21919
22021
  function clearAvailabilityFeedback(feedback) {
@@ -22042,7 +22144,7 @@ function validateBookingStep(input) {
22042
22144
  return Object.keys(errors).length > 0 ? { ok: false, errors: createFieldBookingValidationErrors(errors) } : { ok: true };
22043
22145
  }
22044
22146
  default:
22045
- return assertNever4(input.stepId);
22147
+ return assertNever5(input.stepId);
22046
22148
  }
22047
22149
  }
22048
22150
  function validateBookingFields(input) {
@@ -22336,7 +22438,7 @@ function resolveAppointmentPackagesModel(input) {
22336
22438
  };
22337
22439
  }
22338
22440
  default:
22339
- return assertNever4(input.state);
22441
+ return assertNever5(input.state);
22340
22442
  }
22341
22443
  }
22342
22444
  function toHeadlessEligibleAppointmentPackage(appointmentPackage) {
@@ -23091,7 +23193,7 @@ function pollingReducer(state, action) {
23091
23193
  case "timeout":
23092
23194
  return state;
23093
23195
  default:
23094
- return assertNever4(state);
23196
+ return assertNever5(state);
23095
23197
  }
23096
23198
  case "polling-timed-out":
23097
23199
  return {
@@ -23100,7 +23202,7 @@ function pollingReducer(state, action) {
23100
23202
  error: new Error("Polling timed out")
23101
23203
  };
23102
23204
  default:
23103
- return assertNever4(action);
23205
+ return assertNever5(action);
23104
23206
  }
23105
23207
  }
23106
23208
  var init_usePolling_state = __esm({
@@ -23583,7 +23685,7 @@ function DefaultBookingStepContent({
23583
23685
  case "custom-fields":
23584
23686
  return /* @__PURE__ */ jsx59(DefaultDynamicFields, { fields: booking.fields.items, booking });
23585
23687
  default:
23586
- return assertNever4(stepId);
23688
+ return assertNever5(stepId);
23587
23689
  }
23588
23690
  }
23589
23691
  function DefaultServiceSelectionStep({
@@ -25435,7 +25537,7 @@ function eligibilityLookupReducer(state, action) {
25435
25537
  error: action.message
25436
25538
  };
25437
25539
  default:
25438
- return assertNever4(action);
25540
+ return assertNever5(action);
25439
25541
  }
25440
25542
  }
25441
25543
  function existingRegistrationLookupReducer(state, action) {
@@ -25453,7 +25555,7 @@ function existingRegistrationLookupReducer(state, action) {
25453
25555
  registration: action.registration
25454
25556
  };
25455
25557
  default:
25456
- return assertNever4(action);
25558
+ return assertNever5(action);
25457
25559
  }
25458
25560
  }
25459
25561
  var initialEligibilityLookupState, initialExistingRegistrationLookupState;
@@ -30976,7 +31078,7 @@ function shopPassesMembershipsReducer(state, action) {
30976
31078
  returnNotice: null
30977
31079
  };
30978
31080
  default:
30979
- return assertNever4(action);
31081
+ return assertNever5(action);
30980
31082
  }
30981
31083
  }
30982
31084
  function getOpenCheckout(state) {
@@ -33613,7 +33715,7 @@ function shopCheckoutReducer(state, action) {
33613
33715
  notice: action.notice
33614
33716
  };
33615
33717
  default:
33616
- return assertNever4(action);
33718
+ return assertNever5(action);
33617
33719
  }
33618
33720
  }
33619
33721
  var initialShopCheckoutState;
@@ -37415,7 +37517,7 @@ function formSubmissionReducer(_state, action) {
37415
37517
  case "submission-failed":
37416
37518
  return { tag: "failed", message: action.message };
37417
37519
  default:
37418
- return assertNever4(action);
37520
+ return assertNever5(action);
37419
37521
  }
37420
37522
  }
37421
37523
  var initialFormSubmissionState;
@@ -39995,6 +40097,46 @@ init_RichText();
39995
40097
  init_richText_coerce();
39996
40098
  init_lucide_react();
39997
40099
  init_types5();
40100
+
40101
+ // ../blocks/src/system/runtime/nodes/accordionIconTreatment.ts
40102
+ init_types5();
40103
+ init_colorStyles();
40104
+ function resolveAccordionIconStyle(iconStyle, iconTreatment) {
40105
+ if (iconTreatment) {
40106
+ switch (iconTreatment.iconSet) {
40107
+ case "plus":
40108
+ return "plus-minus";
40109
+ case "chevron":
40110
+ return "chevron";
40111
+ case "caret":
40112
+ return "caret";
40113
+ case "minimal-cross":
40114
+ return "plus-minus";
40115
+ default:
40116
+ return assertNever4(iconTreatment.iconSet);
40117
+ }
40118
+ }
40119
+ return iconStyle && iconStyle in ICON_CONFIG ? iconStyle : "chevron";
40120
+ }
40121
+ function accordionIconColorStyle(iconTreatment) {
40122
+ const token = iconTreatment?.colorToken;
40123
+ if (!token || token === "current") return void 0;
40124
+ const themeToken = resolveIconColorToken(token);
40125
+ return {
40126
+ color: rgbColorValue(themeToken),
40127
+ ...iconTreatment.openColorToken && iconTreatment.openColorToken !== "current" ? {
40128
+ "--accordion-icon-open-color": rgbColorValue(resolveIconColorToken(iconTreatment.openColorToken))
40129
+ } : {}
40130
+ };
40131
+ }
40132
+ function resolveIconColorToken(token) {
40133
+ return token === "muted" ? "mutedText" : token;
40134
+ }
40135
+ function assertNever4(value) {
40136
+ throw new Error(`Unhandled accordion icon set: ${String(value)}`);
40137
+ }
40138
+
40139
+ // ../blocks/src/system/runtime/nodes/accordion.server.tsx
39998
40140
  import { jsx as jsx17, jsxs as jsxs4 } from "react/jsx-runtime";
39999
40141
  var ACCORDION_ICONS = {
40000
40142
  Plus,
@@ -40033,15 +40175,17 @@ var AccordionItemNodeSSR = ({
40033
40175
  content,
40034
40176
  question,
40035
40177
  answer,
40036
- iconStyle
40178
+ iconStyle,
40179
+ iconTreatment
40037
40180
  }) => {
40038
40181
  const resolvedValue = value !== void 0 && value !== null ? String(value) : void 0;
40039
40182
  const triggerSource = trigger ?? question;
40040
40183
  const contentSource = content ?? answer;
40041
- const resolvedIconStyle = iconStyle && iconStyle in ICON_CONFIG ? iconStyle : "chevron";
40184
+ const resolvedIconStyle = resolveAccordionIconStyle(iconStyle, iconTreatment);
40042
40185
  const iconConfig = ICON_CONFIG[resolvedIconStyle];
40043
40186
  const ClosedIconComponent = ACCORDION_ICONS[iconConfig.closedIcon];
40044
40187
  const OpenIconComponent = iconConfig.openIcon ? ACCORDION_ICONS[iconConfig.openIcon] : null;
40188
+ const iconColorStyle = accordionIconColorStyle(iconTreatment);
40045
40189
  return /* @__PURE__ */ jsxs4(
40046
40190
  "div",
40047
40191
  {
@@ -40051,10 +40195,20 @@ var AccordionItemNodeSSR = ({
40051
40195
  children: [
40052
40196
  /* @__PURE__ */ jsxs4("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
40053
40197
  /* @__PURE__ */ jsx17("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
40054
- /* @__PURE__ */ jsxs4("span", { className: "accordion-icon", "aria-hidden": "true", children: [
40055
- ClosedIconComponent && /* @__PURE__ */ jsx17(ClosedIconComponent, { className: "accordion-icon-closed" }),
40056
- OpenIconComponent && /* @__PURE__ */ jsx17(OpenIconComponent, { className: "accordion-icon-open" })
40057
- ] })
40198
+ /* @__PURE__ */ jsxs4(
40199
+ "span",
40200
+ {
40201
+ className: "accordion-icon",
40202
+ "aria-hidden": "true",
40203
+ "data-accordion-icon-set": iconTreatment?.iconSet,
40204
+ "data-accordion-icon-motion": iconTreatment?.motion,
40205
+ style: iconColorStyle,
40206
+ children: [
40207
+ ClosedIconComponent && /* @__PURE__ */ jsx17(ClosedIconComponent, { className: "accordion-icon-closed" }),
40208
+ OpenIconComponent && /* @__PURE__ */ jsx17(OpenIconComponent, { className: "accordion-icon-open" })
40209
+ ]
40210
+ }
40211
+ )
40058
40212
  ] }),
40059
40213
  /* @__PURE__ */ jsx17(
40060
40214
  "div",
@@ -44352,7 +44506,7 @@ function giftingClientReducer(state, action) {
44352
44506
  purchaseNotice: action.notice
44353
44507
  };
44354
44508
  default:
44355
- return assertNever4(action);
44509
+ return assertNever5(action);
44356
44510
  }
44357
44511
  }
44358
44512
  function resolveGiftingPurchaseNotice(search, defaultSuccessMessage) {
@@ -45725,6 +45879,7 @@ var AccordionItemNode = ({
45725
45879
  question,
45726
45880
  answer,
45727
45881
  iconStyle,
45882
+ iconTreatment,
45728
45883
  blockId: _blockId,
45729
45884
  blockKind: _blockKind,
45730
45885
  blockContent: _blockContent,
@@ -45737,10 +45892,11 @@ var AccordionItemNode = ({
45737
45892
  const triggerSource = trigger ?? question;
45738
45893
  const contentSource = content ?? answer;
45739
45894
  const resolvedTrigger = typeof triggerSource === "string" || typeof triggerSource === "number" ? String(triggerSource) : triggerSource;
45740
- const resolvedIconStyle = iconStyle && iconStyle in ICON_CONFIG ? iconStyle : "chevron";
45895
+ const resolvedIconStyle = resolveAccordionIconStyle(iconStyle, iconTreatment);
45741
45896
  const iconConfig = ICON_CONFIG[resolvedIconStyle];
45742
45897
  const ClosedIconComponent = ACCORDION_ICONS2[iconConfig.closedIcon];
45743
45898
  const OpenIconComponent = iconConfig.openIcon ? ACCORDION_ICONS2[iconConfig.openIcon] : null;
45899
+ const iconColorStyle = accordionIconColorStyle(iconTreatment);
45744
45900
  return /* @__PURE__ */ jsxs80(
45745
45901
  AccordionItem2,
45746
45902
  {
@@ -45750,10 +45906,20 @@ var AccordionItemNode = ({
45750
45906
  children: [
45751
45907
  /* @__PURE__ */ jsxs80(AccordionTrigger2, { className: "accordion-trigger", children: [
45752
45908
  /* @__PURE__ */ jsx125(Text2, { as: "span", className: "accordion-trigger-text", children: resolvedTrigger }),
45753
- /* @__PURE__ */ jsxs80("span", { className: "accordion-icon", "aria-hidden": "true", children: [
45754
- ClosedIconComponent && /* @__PURE__ */ jsx125(ClosedIconComponent, { className: "accordion-icon-closed" }),
45755
- OpenIconComponent && /* @__PURE__ */ jsx125(OpenIconComponent, { className: "accordion-icon-open" })
45756
- ] })
45909
+ /* @__PURE__ */ jsxs80(
45910
+ "span",
45911
+ {
45912
+ className: "accordion-icon",
45913
+ "aria-hidden": "true",
45914
+ "data-accordion-icon-set": iconTreatment?.iconSet,
45915
+ "data-accordion-icon-motion": iconTreatment?.motion,
45916
+ style: iconColorStyle,
45917
+ children: [
45918
+ ClosedIconComponent && /* @__PURE__ */ jsx125(ClosedIconComponent, { className: "accordion-icon-closed" }),
45919
+ OpenIconComponent && /* @__PURE__ */ jsx125(OpenIconComponent, { className: "accordion-icon-open" })
45920
+ ]
45921
+ }
45922
+ )
45757
45923
  ] }),
45758
45924
  /* @__PURE__ */ jsx125(AccordionContent2, { className: "accordion-content", children: typeof contentSource === "string" || typeof contentSource === "number" ? /* @__PURE__ */ jsx125("p", { children: String(contentSource) }) : contentSource ? (() => {
45759
45925
  const doc = coerceRichTextDoc(contentSource);
@@ -80,24 +80,24 @@ function isSafeHttpsUrl(value) {
80
80
 
81
81
  // src/rendering/islands/hydrateBlocksIslands.ts
82
82
  var defaultEnhancerLoaders = {
83
- accordion: () => import('../accordion-2YHIBOZH.mjs'),
84
- headerSection: () => import('../headerSection-GTR3TTRM.mjs'),
85
- carousel: () => import('../carousel-K6XG7NZQ.mjs'),
86
- form: () => import('../form-YQEW4YIT.mjs'),
87
- "booking-form": () => import('../bookingForm-35IBDWAS.mjs'),
88
- "event-registration": () => import('../eventRegistration-GUEB7LBT.mjs'),
89
- "event-details": () => import('../eventDetails-HLUTQSYY.mjs'),
90
- "location-map": () => import('../locationMap-SPC7VGUH.mjs'),
91
- "course-registration": () => import('../courseRegistration-ZBXS7VGI.mjs'),
92
- "event-listing": () => import('../eventListing-FG4MICVB.mjs'),
93
- "event-calendar": () => import('../eventCalendar-EQQZHJBA.mjs'),
94
- "event-combined": () => import('../eventCombined-JCFTGBFQ.mjs'),
95
- "product-list": () => import('../productList-3M3M72XZ.mjs'),
96
- "product-detail": () => import('../productDetail-KP5H2WJO.mjs'),
97
- "cart": () => import('../cart-HCFYUTTU.mjs'),
98
- "checkout": () => import('../checkout-J3U4XR7K.mjs'),
99
- shop: () => import('../shop-ACQKVGOM.mjs'),
100
- "newsletter-form": () => import('../newsletterForm-4IW5BLID.mjs')
83
+ accordion: () => import('../accordion-RZMQSYLR.mjs'),
84
+ headerSection: () => import('../headerSection-4LBP7ULT.mjs'),
85
+ carousel: () => import('../carousel-LDX47ZIK.mjs'),
86
+ form: () => import('../form-ETFZFATW.mjs'),
87
+ "booking-form": () => import('../bookingForm-NF4ASVNV.mjs'),
88
+ "event-registration": () => import('../eventRegistration-NZOTVNPI.mjs'),
89
+ "event-details": () => import('../eventDetails-E3PJYBIN.mjs'),
90
+ "location-map": () => import('../locationMap-5M655YSJ.mjs'),
91
+ "course-registration": () => import('../courseRegistration-7F65K5ZR.mjs'),
92
+ "event-listing": () => import('../eventListing-EMS3WC3E.mjs'),
93
+ "event-calendar": () => import('../eventCalendar-GLSC5KTL.mjs'),
94
+ "event-combined": () => import('../eventCombined-ZHK4WKUR.mjs'),
95
+ "product-list": () => import('../productList-A5RO5WIS.mjs'),
96
+ "product-detail": () => import('../productDetail-O4DOCWQG.mjs'),
97
+ "cart": () => import('../cart-RGXDS5F4.mjs'),
98
+ "checkout": () => import('../checkout-P7WWSNNY.mjs'),
99
+ shop: () => import('../shop-L4MZH4I2.mjs'),
100
+ "newsletter-form": () => import('../newsletterForm-QOUYW44O.mjs')
101
101
  };
102
102
  var DEFAULT_MAX_RETRIES = 2;
103
103
  var RETRY_DELAYS_MS = [250, 1e3];