@riverbankcms/sdk 0.89.1 → 0.90.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
  6. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  7. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  9. package/dist/_dts/api/src/bookings.d.ts +3 -1
  10. package/dist/_dts/api/src/index.d.ts +6 -5
  11. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
  12. package/dist/_dts/api/src/request.d.ts +21 -0
  13. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  14. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  15. package/dist/_dts/api/src/types.d.ts +3 -1
  16. package/dist/_dts/api/src/url.d.ts +6 -3
  17. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  18. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  19. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  20. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  21. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  22. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  23. package/dist/_dts/blocks/src/index.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  25. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
  26. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  27. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  29. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  31. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  35. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  39. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  50. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  51. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  54. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  55. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  56. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  57. package/dist/_dts/core/src/money-input.d.ts +18 -0
  58. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  59. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  60. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  61. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  62. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  64. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  65. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  66. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  67. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  68. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  69. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  70. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  71. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  72. package/dist/_dts/sdk/src/components.d.ts +1 -0
  73. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  74. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  75. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  76. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  77. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  78. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  79. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  80. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  81. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  82. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  83. package/dist/_dts/sdk/src/version.d.ts +1 -1
  84. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  85. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  86. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  88. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  89. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  90. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  91. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  92. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  93. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  94. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  95. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  96. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  97. package/dist/{chunk-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
  98. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  99. package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
  100. package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
  101. package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
  102. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  103. package/dist/cli/index.mjs +899 -531
  104. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  105. package/dist/cli/init-docs/content/content-management.md +27 -0
  106. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
  107. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
  108. package/dist/client/bookings.mjs +432 -269
  109. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
  110. package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
  111. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
  112. package/dist/client/chunk-4RTFGHZN.mjs +433 -0
  113. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
  114. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
  115. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
  116. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  117. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
  118. package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
  119. package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
  120. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  121. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
  122. package/dist/client/client.mjs +3292 -2827
  123. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
  124. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
  125. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
  126. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
  127. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
  128. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
  129. package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
  130. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
  131. package/dist/client/hooks.mjs +1084 -1029
  132. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
  133. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
  134. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
  135. package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
  136. package/dist/client/rendering/client.mjs +2692 -2285
  137. package/dist/client/rendering/islands.mjs +18 -18
  138. package/dist/client/rendering.mjs +2611 -2156
  139. package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
  140. package/dist/client/spam-protection.mjs +4 -5
  141. package/dist/preview-next/before-render.mjs +2 -2
  142. package/dist/preview-next/client/runtime.mjs +5 -5
  143. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
  144. package/dist/server/components.mjs +1722 -1453
  145. package/dist/server/config-validation.mjs +1316 -1261
  146. package/dist/server/config.mjs +1316 -1261
  147. package/dist/server/data.mjs +1084 -1029
  148. package/dist/server/index.mjs +135 -100
  149. package/dist/server/navigation.mjs +20 -30
  150. package/dist/server/next.mjs +1782 -1500
  151. package/dist/server/page-converter.mjs +1009 -946
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1722 -1453
  154. package/dist/server/rendering.mjs +1728 -1459
  155. package/dist/server/routing.mjs +1127 -1045
  156. package/dist/server/server.mjs +1219 -1129
  157. package/dist/server/theme-bridge.mjs +8 -5
  158. package/package.json +2 -2
  159. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  160. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  161. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -6519,19 +6519,23 @@ function normalizeDashboardOrigin(input) {
6519
6519
  }
6520
6520
  function deriveCmsApiUrlFromDashboardUrl(input) {
6521
6521
  const origin = normalizeDashboardOrigin(input);
6522
- return origin ? `${origin}/api` : "";
6522
+ return origin ? normalizeCmsApiBaseUrl(`${origin}/api`) : "";
6523
+ }
6524
+ function normalizeCmsApiBaseUrl(input) {
6525
+ return input.trim().replace(/\/+$/, "").replace(/(?:\/api)+$/i, "/api");
6523
6526
  }
6524
6527
  function getCmsApiUrl() {
6525
6528
  if (typeof window !== "undefined") {
6526
- return "/api";
6529
+ return normalizeCmsApiBaseUrl("/api");
6527
6530
  }
6528
6531
  const internalUrl = process.env.CMS_API_URL;
6529
6532
  if (internalUrl) {
6530
- return internalUrl.replace(/\/$/, "");
6533
+ return normalizeCmsApiBaseUrl(internalUrl);
6531
6534
  }
6532
6535
  const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
6533
6536
  if (dashboardUrl) {
6534
- return deriveCmsApiUrlFromDashboardUrl(dashboardUrl);
6537
+ const apiUrl = deriveCmsApiUrlFromDashboardUrl(dashboardUrl);
6538
+ if (apiUrl) return apiUrl;
6535
6539
  }
6536
6540
  throw new Error(
6537
6541
  "CMS_API_URL or NEXT_PUBLIC_DASHBOARD_URL is not configured. Set NEXT_PUBLIC_DASHBOARD_URL to your dashboard URL (e.g., http://localhost:4000)"
@@ -6640,6 +6644,27 @@ function serializeQueryValue(value) {
6640
6644
  if (value instanceof Date) return value.toISOString();
6641
6645
  return null;
6642
6646
  }
6647
+ function normalizeHeaders(source) {
6648
+ const normalized = {};
6649
+ if (!source) return normalized;
6650
+ new Headers(source).forEach((value, key) => {
6651
+ normalized[key] = value;
6652
+ });
6653
+ return normalized;
6654
+ }
6655
+ function buildRequestHeaders(input) {
6656
+ const headers = {
6657
+ ...normalizeHeaders(input.optionsHeaders),
6658
+ ...normalizeHeaders(input.authHeaders)
6659
+ };
6660
+ if (input.sdkVersion) {
6661
+ headers["x-sdk-version"] = input.sdkVersion;
6662
+ }
6663
+ if (input.includeJsonContentType) {
6664
+ headers["Content-Type"] = "application/json";
6665
+ }
6666
+ return headers;
6667
+ }
6643
6668
  function serializePathParam(endpoint, key, value) {
6644
6669
  if (typeof value === "string") {
6645
6670
  return value;
@@ -6775,104 +6800,20 @@ function createRawCMSClient(headers = {}, baseUrl) {
6775
6800
  params,
6776
6801
  options = {}
6777
6802
  }) => {
6778
- const resolvedBaseUrl = baseUrl ?? resolveApiBaseUrl();
6779
- let url = buildEndpointURL(resolvedBaseUrl, endpoint);
6780
- const originalPath = API_ENDPOINTS[endpoint].path;
6781
- const unusedParams = {};
6782
- if (params) {
6783
- Object.entries(params).forEach(([key, value]) => {
6784
- const bracePlaceholder = `{${key}}`;
6785
- const colonPlaceholder = `:${key}`;
6786
- if (originalPath.includes(bracePlaceholder) || originalPath.includes(colonPlaceholder)) {
6787
- const stringValue = serializePathParam(endpoint, key, value);
6788
- url = url.replace(bracePlaceholder, stringValue);
6789
- url = url.replace(colonPlaceholder, stringValue);
6790
- } else {
6791
- unusedParams[key] = value;
6792
- }
6793
- });
6794
- }
6795
- const unresolvedPathParams = [
6796
- ...url.match(/\{[^}]+\}/g) ?? [],
6797
- ...url.match(/(^|\/):([A-Za-z][A-Za-z0-9_]*)\b/g) ?? []
6798
- ];
6799
- if (unresolvedPathParams.length > 0) {
6800
- const missingParams = Array.from(
6801
- new Set(
6802
- unresolvedPathParams.map((token) => {
6803
- if (token.startsWith("{") && token.endsWith("}")) {
6804
- return token.slice(1, -1);
6805
- }
6806
- return token.replace(/^\//, "").slice(1);
6807
- })
6808
- )
6809
- );
6810
- throw new Error(
6811
- `Missing required path params for endpoint ${String(endpoint)}: ${missingParams.join(", ")}`
6812
- );
6813
- }
6814
- const endpointConfig = API_ENDPOINTS[endpoint];
6815
- const method = endpointConfig.method;
6816
- const isGetOrHead = method === "GET" || method === "HEAD";
6817
- const queryParams = new URLSearchParams();
6818
- Object.entries(unusedParams).forEach(([key, value]) => {
6819
- appendQueryParam(queryParams, key, value);
6803
+ const plan = buildApiRequestPlan({
6804
+ endpoint,
6805
+ body,
6806
+ params,
6807
+ options,
6808
+ headers,
6809
+ baseUrl: normalizeCmsApiBaseUrl(baseUrl ?? resolveApiBaseUrl()),
6810
+ sdkVersion
6820
6811
  });
6821
- if (isGetOrHead && typeof body === "object" && body !== null && !isFormDataBody(body)) {
6822
- Object.entries(body).forEach(([key, value]) => {
6823
- appendQueryParam(queryParams, key, value);
6824
- });
6825
- }
6826
- const queryString = queryParams.toString();
6827
- if (queryString) {
6828
- url += (url.includes("?") ? "&" : "?") + queryString;
6829
- }
6830
- const formDataBody = isFormDataBody(body) ? body : void 0;
6831
- const optionsNext = options?.next;
6832
- const nextOptions = { ...optionsNext ?? {} };
6833
- const cacheIsNoStore = options?.cache === "no-store";
6834
- if (cacheIsNoStore) {
6835
- delete nextOptions.revalidate;
6836
- } else if (isGetOrHead && nextOptions.revalidate === void 0 && "revalidate" in endpointConfig && typeof endpointConfig.revalidate === "number") {
6837
- nextOptions.revalidate = endpointConfig.revalidate;
6838
- }
6839
- if ("tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
6840
- const processedTags = endpointConfig.tags.map((tag) => {
6841
- let processedTag = tag;
6842
- if (params) {
6843
- Object.entries(params).forEach(([key, value]) => {
6844
- processedTag = processedTag.replace(`{${key}}`, String(value));
6845
- });
6846
- }
6847
- return /\{[^}]+\}/.test(processedTag) ? null : processedTag;
6848
- }).filter((tag) => tag !== null);
6849
- nextOptions.tags = Array.from(/* @__PURE__ */ new Set([...nextOptions.tags ?? [], ...processedTags]));
6850
- }
6851
- const requestInit = {
6852
- method,
6853
- ...options,
6854
- // Include credentials for same-origin requests (sends cookies for auth)
6855
- credentials: "same-origin",
6856
- // Don't include body for GET/HEAD requests
6857
- // FormData is pre-narrowed via isFormDataBody() above
6858
- body: isGetOrHead || body == null ? void 0 : formDataBody ?? JSON.stringify(body),
6859
- headers: {
6860
- ...options.headers,
6861
- ...headers,
6862
- // Include SDK version if set
6863
- ...sdkVersion && { "x-sdk-version": sdkVersion },
6864
- // Don't set Content-Type for GET/HEAD requests without body
6865
- ...isGetOrHead ? {} : formDataBody ? {} : { "Content-Type": "application/json" }
6866
- },
6867
- // Add Next.js caching options
6868
- next: Object.keys(nextOptions).length > 0 ? nextOptions : void 0
6869
- };
6870
- const fetchPromise = fetch(url, requestInit);
6871
- if (!isGetOrHead && "tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
6872
- const tags2 = endpointConfig.tags.map((tag) => tag);
6812
+ const fetchPromise = fetch(plan.url, plan.init);
6813
+ if (plan.cacheInvalidationTags) {
6873
6814
  return fetchPromise.then((response) => {
6874
6815
  if (response.ok) {
6875
- invalidateCacheTags(tags2, params);
6816
+ invalidateCacheTags(plan.cacheInvalidationTags, params);
6876
6817
  }
6877
6818
  return response;
6878
6819
  });
@@ -6880,6 +6821,100 @@ function createRawCMSClient(headers = {}, baseUrl) {
6880
6821
  return fetchPromise;
6881
6822
  };
6882
6823
  }
6824
+ function buildApiRequestPlan(input) {
6825
+ const { endpoint, body, params, headers = {}, baseUrl } = input;
6826
+ const options = input.options ?? {};
6827
+ let url = buildEndpointURL(baseUrl, endpoint);
6828
+ const originalPath = API_ENDPOINTS[endpoint].path;
6829
+ const unusedParams = {};
6830
+ if (params) {
6831
+ Object.entries(params).forEach(([key, value]) => {
6832
+ const bracePlaceholder = `{${key}}`;
6833
+ const colonPlaceholder = `:${key}`;
6834
+ if (originalPath.includes(bracePlaceholder) || originalPath.includes(colonPlaceholder)) {
6835
+ const stringValue = serializePathParam(endpoint, key, value);
6836
+ url = url.replace(bracePlaceholder, stringValue);
6837
+ url = url.replace(colonPlaceholder, stringValue);
6838
+ } else {
6839
+ unusedParams[key] = value;
6840
+ }
6841
+ });
6842
+ }
6843
+ const unresolvedPathParams = [
6844
+ ...url.match(/\{[^}]+\}/g) ?? [],
6845
+ ...url.match(/(^|\/):([A-Za-z][A-Za-z0-9_]*)\b/g) ?? []
6846
+ ];
6847
+ if (unresolvedPathParams.length > 0) {
6848
+ const missingParams = Array.from(
6849
+ new Set(
6850
+ unresolvedPathParams.map((token) => {
6851
+ if (token.startsWith("{") && token.endsWith("}")) {
6852
+ return token.slice(1, -1);
6853
+ }
6854
+ return token.replace(/^\//, "").slice(1);
6855
+ })
6856
+ )
6857
+ );
6858
+ throw new Error(
6859
+ `Missing required path params for endpoint ${String(endpoint)}: ${missingParams.join(", ")}`
6860
+ );
6861
+ }
6862
+ const endpointConfig = API_ENDPOINTS[endpoint];
6863
+ const method = endpointConfig.method;
6864
+ const isGetOrHead = method === "GET" || method === "HEAD";
6865
+ const queryParams = new URLSearchParams();
6866
+ Object.entries(unusedParams).forEach(([key, value]) => {
6867
+ appendQueryParam(queryParams, key, value);
6868
+ });
6869
+ if (isGetOrHead && typeof body === "object" && body !== null && !isFormDataBody(body)) {
6870
+ Object.entries(body).forEach(([key, value]) => {
6871
+ appendQueryParam(queryParams, key, value);
6872
+ });
6873
+ }
6874
+ const queryString = queryParams.toString();
6875
+ if (queryString) {
6876
+ url += (url.includes("?") ? "&" : "?") + queryString;
6877
+ }
6878
+ const formDataBody = isFormDataBody(body) ? body : void 0;
6879
+ const optionsNext = options?.next;
6880
+ const nextOptions = { ...optionsNext ?? {} };
6881
+ const cacheIsNoStore = options?.cache === "no-store";
6882
+ if (cacheIsNoStore) {
6883
+ delete nextOptions.revalidate;
6884
+ } else if (isGetOrHead && nextOptions.revalidate === void 0 && "revalidate" in endpointConfig && typeof endpointConfig.revalidate === "number") {
6885
+ nextOptions.revalidate = endpointConfig.revalidate;
6886
+ }
6887
+ if ("tags" in endpointConfig && Array.isArray(endpointConfig.tags)) {
6888
+ const processedTags = endpointConfig.tags.map((tag) => {
6889
+ let processedTag = tag;
6890
+ if (params) {
6891
+ Object.entries(params).forEach(([key, value]) => {
6892
+ processedTag = processedTag.replace(`{${key}}`, String(value));
6893
+ });
6894
+ }
6895
+ return /\{[^}]+\}/.test(processedTag) ? null : processedTag;
6896
+ }).filter((tag) => tag !== null);
6897
+ nextOptions.tags = Array.from(/* @__PURE__ */ new Set([...nextOptions.tags ?? [], ...processedTags]));
6898
+ }
6899
+ const init = {
6900
+ method,
6901
+ ...options,
6902
+ credentials: "same-origin",
6903
+ body: isGetOrHead || body == null ? void 0 : formDataBody ?? JSON.stringify(body),
6904
+ headers: buildRequestHeaders({
6905
+ optionsHeaders: options.headers,
6906
+ authHeaders: headers,
6907
+ sdkVersion: input.sdkVersion,
6908
+ includeJsonContentType: !isGetOrHead && !formDataBody
6909
+ }),
6910
+ ...Object.keys(nextOptions).length > 0 ? { next: nextOptions } : {}
6911
+ };
6912
+ return {
6913
+ url,
6914
+ init,
6915
+ ...!isGetOrHead && "tags" in endpointConfig && Array.isArray(endpointConfig.tags) ? { cacheInvalidationTags: endpointConfig.tags.map((tag) => tag) } : {}
6916
+ };
6917
+ }
6883
6918
  function createParsedClient(rawClient) {
6884
6919
  return async (params) => {
6885
6920
  const response = await rawClient(params);
@@ -7060,7 +7095,7 @@ var SimpleCache = class {
7060
7095
  };
7061
7096
 
7062
7097
  // src/version.ts
7063
- var SDK_VERSION = "0.89.1";
7098
+ var SDK_VERSION = "0.90.0";
7064
7099
 
7065
7100
  // src/client/error.ts
7066
7101
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -9512,7 +9547,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
9512
9547
  );
9513
9548
 
9514
9549
  // ../api/src/sdkConfig/contracts.ts
9515
- import { z as z65 } from "zod";
9550
+ import { z as z63 } from "zod";
9516
9551
 
9517
9552
  // ../blocks/src/system/manifest/augmentManifest.ts
9518
9553
  function augmentManifest(manifest) {
@@ -9838,12 +9873,17 @@ var visibleWhenPredicateSchema = z4.object({
9838
9873
  minItems: z4.number().int().nonnegative().optional(),
9839
9874
  maxItems: z4.number().int().nonnegative().optional()
9840
9875
  });
9841
- var visibleWhenSchema = z4.union([
9842
- visibleWhenPredicateSchema,
9843
- z4.object({
9844
- allOf: z4.array(visibleWhenPredicateSchema).min(1)
9845
- })
9846
- ]);
9876
+ var visibleWhenSchema = z4.lazy(
9877
+ () => z4.union([
9878
+ visibleWhenPredicateSchema,
9879
+ z4.object({
9880
+ allOf: z4.array(visibleWhenSchema).min(1)
9881
+ }),
9882
+ z4.object({
9883
+ anyOf: z4.array(visibleWhenSchema).min(1)
9884
+ })
9885
+ ])
9886
+ );
9847
9887
  var uiSchema = z4.object({
9848
9888
  widget: z4.string().optional(),
9849
9889
  // Container/widget presets (used by Group/Repeater widgets themselves, not for widget selection)
@@ -22829,9 +22869,6 @@ var heroCopyFragment = defineFragment({
22829
22869
  maxLength: 600
22830
22870
  }
22831
22871
  ],
22832
- // Layout order is [eyebrow, headline, subheadline]. The hero block's
22833
- // `splitEditorial` variant reads these nodes by index; keep the order stable
22834
- // (it fails fast at import if the count changes).
22835
22872
  layout: [
22836
22873
  text(
22837
22874
  {
@@ -25069,32 +25106,6 @@ var splitReverseLayout = splitLayoutWith([
25069
25106
  splitContentColumn,
25070
25107
  splitImageColumn
25071
25108
  ]);
25072
- var heroEyebrowNode = heroCopyFragment.layout[0];
25073
- var heroHeadlineNode = heroCopyFragment.layout[1];
25074
- var heroSubheadlineNode = heroCopyFragment.layout[2];
25075
- var heroCtaRowNode = heroCtaRowFragment.layout[0];
25076
- if (!heroEyebrowNode || !heroHeadlineNode || !heroSubheadlineNode || !heroCtaRowNode) {
25077
- throw new Error("Hero copy/CTA fragments are missing their expected layout nodes.");
25078
- }
25079
- var heroEditorialBottomRow = inline(
25080
- {
25081
- gap: "lg",
25082
- align: "end",
25083
- justify: "start",
25084
- wrap: true,
25085
- className: "rb-w-full"
25086
- },
25087
- [heroSubheadlineNode, heroCtaRowNode]
25088
- );
25089
- var splitEditorialContentColumn = heroContentWrapper(
25090
- [heroEyebrowNode, heroHeadlineNode, heroEditorialBottomRow],
25091
- "md",
25092
- "rb-w-full rb-text-left"
25093
- );
25094
- var splitEditorialLayout = splitLayoutWith([
25095
- splitEditorialContentColumn,
25096
- splitImageColumn
25097
- ]);
25098
25109
  var heroConfig = {
25099
25110
  id: "block.hero",
25100
25111
  title: "Hero",
@@ -25118,7 +25129,8 @@ var heroConfig = {
25118
25129
  id: "imageShape",
25119
25130
  label: "Image shape",
25120
25131
  defaultValue: "default",
25121
- uiIntent: "display"
25132
+ uiIntent: "display",
25133
+ visibleWhen: { field: "variant", oneOf: ["split", "splitReverse"] }
25122
25134
  })
25123
25135
  ],
25124
25136
  layout: classicLayout,
@@ -25126,8 +25138,7 @@ var heroConfig = {
25126
25138
  classic: classicLayout,
25127
25139
  micro: microLayout,
25128
25140
  split: splitLayout,
25129
- splitReverse: splitReverseLayout,
25130
- splitEditorial: splitEditorialLayout
25141
+ splitReverse: splitReverseLayout
25131
25142
  },
25132
25143
  defaultVariant: "classic",
25133
25144
  description: "Hero section with headline, subtitle, and repeatable CTAs.",
@@ -27003,8 +27014,10 @@ function resolveGeneratedHeroLayoutStyles(content) {
27003
27014
  return isPlainObject(raw) ? raw : null;
27004
27015
  }
27005
27016
  function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
27017
+ const explicitValue = readString(content, fallbackKey);
27018
+ if (explicitValue !== void 0) return explicitValue;
27006
27019
  const generated = resolveGeneratedHeroLayoutStyles(content);
27007
- return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
27020
+ return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : void 0;
27008
27021
  }
27009
27022
  function resolveHeroVariant(content) {
27010
27023
  const variant = readString(content, "variant");
@@ -27017,7 +27030,7 @@ function resolveHeroContentAlignment(content) {
27017
27030
  const raw = readHeroLayoutString(content, "contentAlignment");
27018
27031
  if (raw === "left" || raw === "center" || raw === "right") return raw;
27019
27032
  const variant = resolveHeroVariant(content);
27020
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "left";
27033
+ if (variant === "split" || variant === "splitReverse") return "left";
27021
27034
  return "center";
27022
27035
  }
27023
27036
  function resolveHeroVerticalAlignment(content) {
@@ -27027,7 +27040,7 @@ function resolveHeroVerticalAlignment(content) {
27027
27040
  const minHeight = sectionStyles?.minHeight;
27028
27041
  if (minHeight === "banner" || minHeight === "hero" || minHeight === "immersive") return "center";
27029
27042
  const variant = resolveHeroVariant(content);
27030
- if (variant === "split" || variant === "splitReverse" || variant === "splitEditorial") return "center";
27043
+ if (variant === "split" || variant === "splitReverse") return "center";
27031
27044
  return "top";
27032
27045
  }
27033
27046
  function resolveHeroContentMaxWidth(content) {
@@ -30596,9 +30609,6 @@ var appointmentBookingBlockDefinition = {
30596
30609
  }
30597
30610
  };
30598
30611
 
30599
- // ../blocks/src/system/blocks/event-registration.ts
30600
- import { z as z47 } from "zod";
30601
-
30602
30612
  // ../blocks/src/system/blocks/events/shared/schemas.ts
30603
30613
  import { z as z43 } from "zod";
30604
30614
 
@@ -31220,24 +31230,57 @@ function normalizeEventStaffMemberId(value) {
31220
31230
  return trimmed ? trimmed : null;
31221
31231
  }
31222
31232
 
31223
- // ../blocks/src/system/blocks/event-registration.shared.ts
31233
+ // ../blocks/src/system/blocks/shop.shared.ts
31224
31234
  import { z as z44 } from "zod";
31225
- var occurrenceContextSchema = z44.object({
31235
+ var publicPassProductSchema = z44.object({
31236
+ id: z44.string(),
31237
+ productUseCase: z44.enum(["event_pass", "appointment_package"]).default("event_pass"),
31238
+ name: z44.string(),
31239
+ description: z44.string().nullable(),
31240
+ price: z44.number(),
31241
+ currency: z44.string(),
31242
+ creditsTotal: z44.number(),
31243
+ pricePerCredit: z44.number(),
31244
+ validDays: z44.number().nullable(),
31245
+ eligibleCategoryIds: z44.array(z44.string()),
31246
+ eligibleCategoryNames: z44.array(z44.string())
31247
+ });
31248
+ var publicPassProductCollectionSchema = z44.object({
31249
+ passes: z44.array(publicPassProductSchema)
31250
+ });
31251
+ var publicMembershipProductSchema = z44.object({
31226
31252
  id: z44.string(),
31227
- seriesId: z44.string(),
31228
- startsAt: z44.string(),
31229
- endsAt: z44.string(),
31230
- timeZone: z44.string(),
31231
- capacityOverride: z44.number().nullable().optional(),
31232
- overrides: z44.record(z44.string(), z44.unknown()).nullable().optional()
31253
+ name: z44.string(),
31254
+ description: z44.string().nullable(),
31255
+ price: z44.number(),
31256
+ currency: z44.string(),
31257
+ billingInterval: z44.enum(["month", "year"]),
31258
+ eligibleCategoryIds: z44.array(z44.string()),
31259
+ eligibleCategoryNames: z44.array(z44.string())
31260
+ });
31261
+ var publicMembershipProductCollectionSchema = z44.object({
31262
+ memberships: z44.array(publicMembershipProductSchema)
31263
+ });
31264
+
31265
+ // ../blocks/src/system/blocks/event-registration.shared.ts
31266
+ import { z as z45 } from "zod";
31267
+ var occurrenceContextSchema = z45.object({
31268
+ id: z45.string(),
31269
+ seriesId: z45.string(),
31270
+ startsAt: z45.string(),
31271
+ endsAt: z45.string(),
31272
+ timeZone: z45.string(),
31273
+ capacityOverride: z45.number().nullable().optional(),
31274
+ overrides: z45.record(z45.string(), z45.unknown()).nullable().optional()
31233
31275
  }).nullable();
31234
31276
 
31235
31277
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31236
- import { z as z46 } from "zod";
31278
+ import { z as z47 } from "zod";
31237
31279
 
31238
31280
  // ../blocks/src/system/constants/events.ts
31239
31281
  var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
31240
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
31282
+ var eventCalendarDisplayModeValues = ["combined", "calendar", "list", "timetable"];
31283
+ var eventCalendarDefaultViewValues = ["month", "week"];
31241
31284
  var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
31242
31285
  var eventCalendarListLayoutOptions = [
31243
31286
  { id: "stack", label: "Stack" },
@@ -31247,6 +31290,9 @@ var eventCalendarListLayoutOptions = [
31247
31290
  function isEventCalendarDisplayMode(value) {
31248
31291
  return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
31249
31292
  }
31293
+ function isEventCalendarDefaultView(value) {
31294
+ return typeof value === "string" && eventCalendarDefaultViewValues.includes(value);
31295
+ }
31250
31296
  function isEventCalendarListLayout(value) {
31251
31297
  return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
31252
31298
  }
@@ -31387,16 +31433,17 @@ function readAmount(value) {
31387
31433
  }
31388
31434
 
31389
31435
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
31390
- import { z as z45 } from "zod";
31391
- var previewStageSchema = z45.enum(["preview", "published"]);
31392
- var registrationButtonVariantSchema = z45.enum(["primary", "secondary", "outline"]);
31393
- var eventButtonVariantSchema = z45.enum(["primary", "secondary", "outline", "link"]);
31394
- var eventLayoutSchema = z45.enum(eventCalendarListLayoutValues);
31395
- var eventCalendarDisplayModeSchema = z45.enum(eventCalendarDisplayModeValues);
31396
- var columnOptionSchema = z45.enum(["2", "3", "4"]);
31397
- var weekStartSchema = z45.enum(["sunday", "monday"]);
31398
- var filterAutoShowSchema = z45.enum(["auto", "always", "never"]);
31399
- var calendarTabViewsSchema = z45.enum(["both", "month", "week"]);
31436
+ import { z as z46 } from "zod";
31437
+ var previewStageSchema = z46.enum(["preview", "published"]);
31438
+ var registrationButtonVariantSchema = z46.enum(["primary", "secondary", "outline"]);
31439
+ var eventButtonVariantSchema = z46.enum(["primary", "secondary", "outline", "link"]);
31440
+ var eventLayoutSchema = z46.enum(eventCalendarListLayoutValues);
31441
+ var eventCalendarDisplayModeSchema = z46.enum(eventCalendarDisplayModeValues);
31442
+ var eventCalendarDefaultViewSchema = z46.enum(eventCalendarDefaultViewValues);
31443
+ var columnOptionSchema = z46.enum(["2", "3", "4"]);
31444
+ var weekStartSchema = z46.enum(["sunday", "monday"]);
31445
+ var filterAutoShowSchema = z46.enum(["auto", "always", "never"]);
31446
+ var calendarTabViewsSchema = z46.enum(["both", "month", "week"]);
31400
31447
 
31401
31448
  // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
31402
31449
  function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
@@ -31414,7 +31461,7 @@ function eventMatchesOccurrenceId(event, occurrenceId) {
31414
31461
  function findPreSelectedEvent(input) {
31415
31462
  const occurrenceContext = input.occurrenceContext;
31416
31463
  if (!occurrenceContext) {
31417
- return null;
31464
+ return input.scopedEvents.length === 1 ? input.scopedEvents[0] ?? null : null;
31418
31465
  }
31419
31466
  const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
31420
31467
  startsAt: occurrenceContext.startsAt,
@@ -31456,68 +31503,72 @@ function toRegistrationEvents(events) {
31456
31503
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
31457
31504
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
31458
31505
  var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
31459
- var contentEntrySchema = z46.object({
31460
- id: z46.string(),
31461
- slug: z46.string(),
31462
- contentTypeSlug: z46.string()
31506
+ var contentEntrySchema = z47.object({
31507
+ id: z47.string(),
31508
+ slug: z47.string(),
31509
+ contentTypeSlug: z47.string()
31463
31510
  });
31464
- var eventRegistrationPublicEventSchema = z46.preprocess(
31511
+ var eventRegistrationPublicEventSchema = z47.preprocess(
31465
31512
  normalizeEventRegistrationEventInput,
31466
31513
  publicEventSchema
31467
31514
  );
31468
- var eventRegistrationSourceSchema = z46.object({
31469
- siteId: z46.string().optional(),
31470
- apiBaseUrl: z46.string().optional(),
31471
- portalToken: z46.string().nullable().optional(),
31472
- previewToken: z46.string().nullable().optional(),
31515
+ var eventRegistrationSourceSchema = z47.object({
31516
+ siteId: z47.string().optional(),
31517
+ apiBaseUrl: z47.string().optional(),
31518
+ portalToken: z47.string().nullable().optional(),
31519
+ previewToken: z47.string().nullable().optional(),
31473
31520
  occurrenceContext: occurrenceContextSchema.optional(),
31474
31521
  contentEntry: contentEntrySchema.nullable().optional(),
31475
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
31476
- className: z46.string().nullable().optional(),
31477
- buttonText: z46.string().nullable().optional(),
31478
- maxTickets: z46.string().nullable().optional(),
31479
- showVenue: z46.boolean().optional(),
31480
- showCapacity: z46.boolean().optional(),
31481
- successMessage: z46.string().optional(),
31482
- waitlistMessage: z46.string().optional(),
31522
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
31523
+ className: z47.string().nullable().optional(),
31524
+ buttonText: z47.string().nullable().optional(),
31525
+ maxTickets: z47.string().nullable().optional(),
31526
+ showVenue: z47.boolean().optional(),
31527
+ showCapacity: z47.boolean().optional(),
31528
+ successMessage: z47.string().optional(),
31529
+ waitlistMessage: z47.string().optional(),
31483
31530
  buttonVariant: registrationButtonVariantSchema.optional(),
31484
- overlayEnabled: z46.boolean().optional(),
31485
- spamProtectionEnabled: z46.boolean().optional(),
31531
+ overlayEnabled: z47.boolean().optional(),
31532
+ spamProtectionEnabled: z47.boolean().optional(),
31486
31533
  stage: previewStageSchema.optional(),
31487
- supportEmail: z46.string().optional()
31488
- });
31489
- var eventRegistrationDisplaySchema = z46.object({
31490
- kind: z46.literal("event-registration"),
31491
- state: z46.literal("generic-shell"),
31492
- className: z46.string().nullable(),
31493
- titleText: z46.string(),
31494
- bodyText: z46.string(),
31495
- stepLabels: z46.array(z46.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
31496
- summaryButtonText: z46.string()
31497
- });
31498
- var eventRegistrationHydrationSchema = z46.object({
31534
+ supportEmail: z47.string().optional(),
31535
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31536
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31537
+ });
31538
+ var eventRegistrationDisplaySchema = z47.object({
31539
+ kind: z47.literal("event-registration"),
31540
+ state: z47.literal("generic-shell"),
31541
+ className: z47.string().nullable(),
31542
+ titleText: z47.string(),
31543
+ bodyText: z47.string(),
31544
+ stepLabels: z47.array(z47.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
31545
+ summaryButtonText: z47.string()
31546
+ });
31547
+ var eventRegistrationHydrationSchema = z47.object({
31499
31548
  occurrenceContext: occurrenceContextSchema.optional(),
31500
31549
  contentEntry: contentEntrySchema.nullable().optional(),
31501
- events: z46.array(eventRegistrationPublicEventSchema).nullable().optional(),
31502
- maxTickets: z46.string().optional(),
31503
- showVenue: z46.boolean().optional(),
31504
- showCapacity: z46.boolean().optional(),
31505
- successMessage: z46.string().optional(),
31506
- waitlistMessage: z46.string().optional(),
31550
+ events: z47.array(eventRegistrationPublicEventSchema).nullable().optional(),
31551
+ maxTickets: z47.string().optional(),
31552
+ showVenue: z47.boolean().optional(),
31553
+ showCapacity: z47.boolean().optional(),
31554
+ successMessage: z47.string().optional(),
31555
+ waitlistMessage: z47.string().optional(),
31507
31556
  buttonVariant: registrationButtonVariantSchema.optional(),
31508
- overlayEnabled: z46.boolean().optional(),
31509
- spamProtectionEnabled: z46.boolean().optional(),
31510
- supportEmail: z46.string().optional()
31557
+ overlayEnabled: z47.boolean().optional(),
31558
+ spamProtectionEnabled: z47.boolean().optional(),
31559
+ supportEmail: z47.string().optional(),
31560
+ sitePasses: publicPassProductCollectionSchema.nullable().optional(),
31561
+ siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
31511
31562
  });
31512
- var eventRegistrationRenderSchema = z46.object({
31563
+ var eventRegistrationRenderSchema = z47.object({
31513
31564
  display: eventRegistrationDisplaySchema,
31514
31565
  hydration: eventRegistrationHydrationSchema
31515
31566
  });
31516
- var eventRegistrationIslandMetaCodec = createZodCodec(z46.object({
31517
- siteId: z46.string().optional(),
31518
- apiBaseUrl: z46.string().optional(),
31519
- portalToken: z46.string().nullable().optional(),
31520
- previewToken: z46.string().nullable().optional(),
31567
+ var eventRegistrationIslandMetaCodec = createZodCodec(z47.object({
31568
+ siteId: z47.string().optional(),
31569
+ apiBaseUrl: z47.string().optional(),
31570
+ portalToken: z47.string().nullable().optional(),
31571
+ previewToken: z47.string().nullable().optional(),
31521
31572
  stage: previewStageSchema.optional()
31522
31573
  }));
31523
31574
  var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -31623,7 +31674,9 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
31623
31674
  buttonVariant: source.buttonVariant,
31624
31675
  overlayEnabled: source.overlayEnabled,
31625
31676
  spamProtectionEnabled: source.spamProtectionEnabled,
31626
- supportEmail: source.supportEmail
31677
+ supportEmail: source.supportEmail,
31678
+ sitePasses: source.sitePasses ?? null,
31679
+ siteMemberships: source.siteMemberships ?? null
31627
31680
  }
31628
31681
  })
31629
31682
  });
@@ -31805,6 +31858,8 @@ var eventRegistrationManifest = createBlockManifest({
31805
31858
  },
31806
31859
  // Event data from loader
31807
31860
  events: { $bind: { from: "data.events" } },
31861
+ sitePasses: { $bind: { from: "data.sitePasses" } },
31862
+ siteMemberships: { $bind: { from: "data.siteMemberships" } },
31808
31863
  // Stage for preview mode (allows registering for draft events)
31809
31864
  stage: {
31810
31865
  $bind: { from: "$root.previewStage", fallback: "published" }
@@ -31823,7 +31878,9 @@ var eventRegistrationBlockDefinition = {
31823
31878
  manifest: eventRegistrationManifest,
31824
31879
  runtime: eventRegistrationBlockRuntime,
31825
31880
  dataSchemas: {
31826
- events: z47.array(publicEventSchema).optional(),
31881
+ events: publicEventsArraySchema.optional(),
31882
+ sitePasses: publicPassProductCollectionSchema.optional(),
31883
+ siteMemberships: publicMembershipProductCollectionSchema.optional(),
31827
31884
  occurrenceContext: occurrenceContextSchema.optional()
31828
31885
  },
31829
31886
  dataLoaders: {
@@ -31842,6 +31899,20 @@ var eventRegistrationBlockDefinition = {
31842
31899
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
31843
31900
  },
31844
31901
  mode: "server"
31902
+ },
31903
+ sitePasses: {
31904
+ endpoint: "listPublicPasses",
31905
+ params: {
31906
+ siteId: { $bind: { from: "$root.siteId" } }
31907
+ },
31908
+ mode: "server"
31909
+ },
31910
+ siteMemberships: {
31911
+ endpoint: "listPublicMemberships",
31912
+ params: {
31913
+ siteId: { $bind: { from: "$root.siteId" } }
31914
+ },
31915
+ mode: "server"
31845
31916
  }
31846
31917
  }
31847
31918
  };
@@ -32173,35 +32244,7 @@ var courseRegistrationBlockDefinition = {
32173
32244
  };
32174
32245
 
32175
32246
  // ../blocks/src/system/blocks/event-details.ts
32176
- import { z as z50 } from "zod";
32177
-
32178
- // ../blocks/src/system/blocks/shop.shared.ts
32179
32247
  import { z as z49 } from "zod";
32180
- var publicPassProductSchema = z49.object({
32181
- id: z49.string(),
32182
- productUseCase: z49.enum(["event_pass", "appointment_package"]).default("event_pass"),
32183
- name: z49.string(),
32184
- description: z49.string().nullable(),
32185
- price: z49.number(),
32186
- currency: z49.string(),
32187
- creditsTotal: z49.number(),
32188
- pricePerCredit: z49.number(),
32189
- validDays: z49.number().nullable(),
32190
- eligibleCategoryIds: z49.array(z49.string()),
32191
- eligibleCategoryNames: z49.array(z49.string())
32192
- });
32193
- var publicMembershipProductSchema = z49.object({
32194
- id: z49.string(),
32195
- name: z49.string(),
32196
- description: z49.string().nullable(),
32197
- price: z49.number(),
32198
- currency: z49.string(),
32199
- billingInterval: z49.enum(["month", "year"]),
32200
- eligibleCategoryIds: z49.array(z49.string()),
32201
- eligibleCategoryNames: z49.array(z49.string())
32202
- });
32203
-
32204
- // ../blocks/src/system/blocks/event-details.ts
32205
32248
  var eventDetailsManifest = createBlockManifest({
32206
32249
  id: "block.event-details",
32207
32250
  version: "1.0.0",
@@ -32333,40 +32376,40 @@ var eventDetailsManifest = createBlockManifest({
32333
32376
  })
32334
32377
  ]
32335
32378
  });
32336
- var occurrenceContextSchema2 = z50.object({
32337
- id: z50.string(),
32338
- seriesId: z50.string(),
32339
- startsAt: z50.string(),
32340
- endsAt: z50.string(),
32341
- timeZone: z50.string(),
32342
- capacityOverride: z50.number().nullable().optional(),
32343
- overrides: z50.record(z50.string(), z50.unknown()).nullable().optional()
32379
+ var occurrenceContextSchema2 = z49.object({
32380
+ id: z49.string(),
32381
+ seriesId: z49.string(),
32382
+ startsAt: z49.string(),
32383
+ endsAt: z49.string(),
32384
+ timeZone: z49.string(),
32385
+ capacityOverride: z49.number().nullable().optional(),
32386
+ overrides: z49.record(z49.string(), z49.unknown()).nullable().optional()
32344
32387
  }).nullable();
32345
- var eventAutoApplyDiscountPreviewBaseSchema = z50.object({
32346
- id: z50.string(),
32347
- publicLabel: z50.string(),
32348
- description: z50.string().nullable(),
32349
- minTicketsRequired: z50.number().nullable()
32388
+ var eventAutoApplyDiscountPreviewBaseSchema = z49.object({
32389
+ id: z49.string(),
32390
+ publicLabel: z49.string(),
32391
+ description: z49.string().nullable(),
32392
+ minTicketsRequired: z49.number().nullable()
32350
32393
  });
32351
- var eventAutoApplyDiscountPreviewSchema = z50.discriminatedUnion("discountType", [
32394
+ var eventAutoApplyDiscountPreviewSchema = z49.discriminatedUnion("discountType", [
32352
32395
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32353
- discountType: z50.literal("percent"),
32354
- discountPercent: z50.number(),
32355
- discountAmountCents: z50.null()
32396
+ discountType: z49.literal("percent"),
32397
+ discountPercent: z49.number(),
32398
+ discountAmountCents: z49.null()
32356
32399
  }),
32357
32400
  eventAutoApplyDiscountPreviewBaseSchema.extend({
32358
- discountType: z50.literal("fixed"),
32359
- discountPercent: z50.null(),
32360
- discountAmountCents: z50.number()
32401
+ discountType: z49.literal("fixed"),
32402
+ discountPercent: z49.null(),
32403
+ discountAmountCents: z49.number()
32361
32404
  })
32362
32405
  ]);
32363
32406
  var eventDetailsBlockDefinition = {
32364
32407
  manifest: eventDetailsManifest,
32365
32408
  dataSchemas: {
32366
- eventDetailsData: z50.object({
32409
+ eventDetailsData: z49.object({
32367
32410
  events: publicEventsArraySchema,
32368
- sitePasses: z50.object({ passes: z50.array(publicPassProductSchema) }),
32369
- siteMemberships: z50.object({ memberships: z50.array(publicMembershipProductSchema) }),
32411
+ sitePasses: publicPassProductCollectionSchema,
32412
+ siteMemberships: publicMembershipProductCollectionSchema,
32370
32413
  autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
32371
32414
  }).optional(),
32372
32415
  occurrenceContext: occurrenceContextSchema2.optional()
@@ -32690,7 +32733,7 @@ var eventSpotlightBlockDefinition = {
32690
32733
  };
32691
32734
 
32692
32735
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
32693
- import { z as z52 } from "zod";
32736
+ import { z as z51 } from "zod";
32694
32737
 
32695
32738
  // ../blocks/src/system/runtime/nodes/events/shared/utils.ts
32696
32739
  var COLUMN_CLASSES = {
@@ -32798,16 +32841,16 @@ function computeMediaTransformStyle(value, style, targetAspectRatio, options) {
32798
32841
  }
32799
32842
 
32800
32843
  // ../blocks/src/system/runtime/nodes/events/shared/listOptions.ts
32801
- import { z as z51 } from "zod";
32844
+ import { z as z50 } from "zod";
32802
32845
  var eventPageSizeValues = [3, 6, 10, 12, 20, 24, 30];
32803
- var eventPageSizeSchema = z51.union([
32804
- z51.literal(3),
32805
- z51.literal(6),
32806
- z51.literal(10),
32807
- z51.literal(12),
32808
- z51.literal(20),
32809
- z51.literal(24),
32810
- z51.literal(30)
32846
+ var eventPageSizeSchema = z50.union([
32847
+ z50.literal(3),
32848
+ z50.literal(6),
32849
+ z50.literal(10),
32850
+ z50.literal(12),
32851
+ z50.literal(20),
32852
+ z50.literal(24),
32853
+ z50.literal(30)
32811
32854
  ]);
32812
32855
  var eventPageSizeSet = new Set(eventPageSizeValues);
32813
32856
  function resolveEventPageSize(value, fallback = 12) {
@@ -32817,15 +32860,15 @@ function resolveEventPageSize(value, fallback = 12) {
32817
32860
  function resolveEventCalendarListPageSize(input) {
32818
32861
  return resolveEventPageSize(input.eventsPerPage);
32819
32862
  }
32820
- var eventListPaginationActionSchema = z51.discriminatedUnion("kind", [
32821
- z51.object({
32822
- kind: z51.literal("loadMore"),
32823
- label: z51.string()
32863
+ var eventListPaginationActionSchema = z50.discriminatedUnion("kind", [
32864
+ z50.object({
32865
+ kind: z50.literal("loadMore"),
32866
+ label: z50.string()
32824
32867
  }),
32825
- z51.object({
32826
- kind: z51.literal("seeAllLink"),
32827
- label: z51.string(),
32828
- href: z51.string()
32868
+ z50.object({
32869
+ kind: z50.literal("seeAllLink"),
32870
+ label: z50.string(),
32871
+ href: z50.string()
32829
32872
  })
32830
32873
  ]);
32831
32874
  function resolveEventListPaginationAction(input) {
@@ -32838,89 +32881,89 @@ function resolveEventListPaginationAction(input) {
32838
32881
  }
32839
32882
 
32840
32883
  // ../blocks/src/system/runtime/nodes/events/EventListing.interactive.ts
32841
- var legacyEventCardVariantSchema = z52.enum(["variant1", "variant2"]);
32842
- var eventCardVariantInputSchema = z52.union([
32884
+ var legacyEventCardVariantSchema = z51.enum(["variant1", "variant2"]);
32885
+ var eventCardVariantInputSchema = z51.union([
32843
32886
  cardVariantRoleSchema,
32844
32887
  legacyEventCardVariantSchema
32845
32888
  ]);
32846
- var cardOrientationSchema = z52.enum(["vertical", "horizontal"]);
32847
- var eventBlockKindSchema = z52.enum(eventBlockKindValues);
32848
- var eventSurfaceScopeSchema = z52.enum(eventSurfaceScopeValues);
32849
- var eventScheduleScopeSchema2 = z52.enum(eventScheduleScopeValues);
32850
- var eventListingSourceSchema = z52.object({
32851
- events: z52.array(publicEventSchema).nullable().optional(),
32852
- siteId: z52.string(),
32853
- apiBaseUrl: z52.string().optional(),
32889
+ var cardOrientationSchema = z51.enum(["vertical", "horizontal"]);
32890
+ var eventBlockKindSchema = z51.enum(eventBlockKindValues);
32891
+ var eventSurfaceScopeSchema = z51.enum(eventSurfaceScopeValues);
32892
+ var eventScheduleScopeSchema2 = z51.enum(eventScheduleScopeValues);
32893
+ var eventListingSourceSchema = z51.object({
32894
+ events: z51.array(publicEventSchema).nullable().optional(),
32895
+ siteId: z51.string(),
32896
+ apiBaseUrl: z51.string().optional(),
32854
32897
  stage: previewStageSchema.optional(),
32855
32898
  layout: eventLayoutSchema.optional(),
32856
32899
  columns: columnOptionSchema.optional(),
32857
- eventsPerPage: z52.string().optional(),
32858
- paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
32859
- seeAllUrl: z52.string().optional(),
32860
- loadMoreText: z52.string().optional(),
32900
+ eventsPerPage: z51.string().optional(),
32901
+ paginationMode: z51.enum(["loadMore", "seeAllLink"]).optional(),
32902
+ seeAllUrl: z51.string().optional(),
32903
+ loadMoreText: z51.string().optional(),
32861
32904
  cardVariant: eventCardVariantInputSchema.optional(),
32862
32905
  buttonVariant: eventButtonVariantSchema.optional(),
32863
- buttonText: z52.string().optional(),
32864
- showVenue: z52.boolean().optional(),
32865
- showMap: z52.boolean().optional(),
32866
- showCapacity: z52.boolean().optional(),
32867
- emptyMessage: z52.string().optional(),
32868
- className: z52.string().optional(),
32869
- showFilters: z52.boolean().nullable().optional(),
32906
+ buttonText: z51.string().optional(),
32907
+ showVenue: z51.boolean().optional(),
32908
+ showMap: z51.boolean().optional(),
32909
+ showCapacity: z51.boolean().optional(),
32910
+ emptyMessage: z51.string().optional(),
32911
+ className: z51.string().optional(),
32912
+ showFilters: z51.boolean().nullable().optional(),
32870
32913
  showCategoryFilter: filterAutoShowSchema.optional(),
32871
- showVenueFilter: z52.boolean().nullable().optional(),
32872
- showStaffFilter: z52.boolean().nullable().optional(),
32914
+ showVenueFilter: z51.boolean().nullable().optional(),
32915
+ showStaffFilter: z51.boolean().nullable().optional(),
32873
32916
  eventKind: eventBlockKindSchema.nullable().optional(),
32874
32917
  eventSurface: eventSurfaceScopeSchema.nullable().optional(),
32875
- filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
32918
+ filterEventPresets: z51.union([z51.string(), z51.array(z51.string())]).nullable().optional(),
32876
32919
  scheduleScope: eventScheduleScopeSchema2.nullable().optional(),
32877
- filterCategoryIds: z52.string().nullable().optional(),
32878
- filterStaffMemberId: z52.string().nullable().optional(),
32879
- filterVenueId: z52.string().nullable().optional()
32920
+ filterCategoryIds: z51.string().nullable().optional(),
32921
+ filterStaffMemberId: z51.string().nullable().optional(),
32922
+ filterVenueId: z51.string().nullable().optional()
32880
32923
  });
32881
- var eventListingDisplaySchema = z52.object({
32882
- kind: z52.literal("event-listing"),
32883
- state: z52.enum(["loading", "empty", "ready"]),
32924
+ var eventListingDisplaySchema = z51.object({
32925
+ kind: z51.literal("event-listing"),
32926
+ state: z51.enum(["loading", "empty", "ready"]),
32884
32927
  listLayout: eventLayoutSchema,
32885
- className: z52.string().nullable(),
32886
- emptyMessage: z52.string(),
32887
- loadingMessage: z52.string(),
32888
- containerClass: z52.string(),
32928
+ className: z51.string().nullable(),
32929
+ emptyMessage: z51.string(),
32930
+ loadingMessage: z51.string(),
32931
+ containerClass: z51.string(),
32889
32932
  cardVariant: cardVariantRoleSchema,
32890
32933
  buttonVariant: eventButtonVariantSchema,
32891
- buttonText: z52.string(),
32892
- showVenue: z52.boolean(),
32893
- showMap: z52.boolean(),
32894
- showCapacity: z52.boolean(),
32934
+ buttonText: z51.string(),
32935
+ showVenue: z51.boolean(),
32936
+ showMap: z51.boolean(),
32937
+ showCapacity: z51.boolean(),
32895
32938
  orientation: cardOrientationSchema,
32896
- events: z52.array(publicEventSchema)
32939
+ events: z51.array(publicEventSchema)
32897
32940
  });
32898
- var eventListingHydrationSchema = z52.object({
32899
- siteId: z52.string(),
32941
+ var eventListingHydrationSchema = z51.object({
32942
+ siteId: z51.string(),
32900
32943
  stage: previewStageSchema.optional(),
32901
32944
  eventsPerPage: eventPageSizeSchema,
32902
32945
  paginationAction: eventListPaginationActionSchema,
32903
- showFilters: z52.boolean(),
32946
+ showFilters: z51.boolean(),
32904
32947
  showCategoryFilter: filterAutoShowSchema,
32905
- showVenueFilter: z52.boolean(),
32906
- showStaffFilter: z52.boolean(),
32948
+ showVenueFilter: z51.boolean(),
32949
+ showStaffFilter: z51.boolean(),
32907
32950
  eventKind: eventBlockKindSchema,
32908
32951
  eventSurface: eventSurfaceScopeSchema,
32909
- filterEventPresets: z52.string().nullable(),
32952
+ filterEventPresets: z51.string().nullable(),
32910
32953
  scheduleScope: eventScheduleScopeSchema2,
32911
- filterCategoryIds: z52.string().nullable().optional(),
32912
- filterStaffMemberId: z52.string().nullable().optional(),
32913
- filterVenueId: z52.string().nullable().optional(),
32914
- fetchInitialEventsOnMount: z52.boolean()
32954
+ filterCategoryIds: z51.string().nullable().optional(),
32955
+ filterStaffMemberId: z51.string().nullable().optional(),
32956
+ filterVenueId: z51.string().nullable().optional(),
32957
+ fetchInitialEventsOnMount: z51.boolean()
32915
32958
  });
32916
- var eventListingRenderSchema = z52.object({
32959
+ var eventListingRenderSchema = z51.object({
32917
32960
  display: eventListingDisplaySchema,
32918
32961
  hydration: eventListingHydrationSchema
32919
32962
  });
32920
32963
  var eventListingIslandMetaCodec = createZodCodec(
32921
- z52.object({
32922
- siteId: z52.string(),
32923
- apiBaseUrl: z52.string().optional(),
32964
+ z51.object({
32965
+ siteId: z51.string(),
32966
+ apiBaseUrl: z51.string().optional(),
32924
32967
  stage: previewStageSchema.optional()
32925
32968
  })
32926
32969
  );
@@ -33287,15 +33330,15 @@ var eventListingBlockDefinition = {
33287
33330
  };
33288
33331
 
33289
33332
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
33290
- import { z as z53 } from "zod";
33291
- var eventBlockKindSchema2 = z53.enum(eventBlockKindValues);
33292
- var eventSurfaceScopeSchema2 = z53.enum(eventSurfaceScopeValues);
33293
- var eventScheduleScopeSchema3 = z53.enum(eventScheduleScopeValues);
33294
- var eventCalendarSourceSchema = z53.object(
33333
+ import { z as z52 } from "zod";
33334
+ var eventBlockKindSchema2 = z52.enum(eventBlockKindValues);
33335
+ var eventSurfaceScopeSchema2 = z52.enum(eventSurfaceScopeValues);
33336
+ var eventScheduleScopeSchema3 = z52.enum(eventScheduleScopeValues);
33337
+ var eventCalendarSourceSchema = z52.object(
33295
33338
  {
33296
- events: z53.array(publicEventSchema).nullable().optional(),
33297
- siteId: z53.string(),
33298
- apiBaseUrl: z53.string().optional(),
33339
+ events: z52.array(publicEventSchema).nullable().optional(),
33340
+ siteId: z52.string(),
33341
+ apiBaseUrl: z52.string().optional(),
33299
33342
  stage: previewStageSchema.optional(),
33300
33343
  variant: eventCalendarDisplayModeSchema.nullable().optional(),
33301
33344
  displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
@@ -33303,78 +33346,80 @@ var eventCalendarSourceSchema = z53.object(
33303
33346
  listColumns: columnOptionSchema.optional(),
33304
33347
  layout: eventLayoutSchema.optional(),
33305
33348
  columns: columnOptionSchema.optional(),
33306
- eventsPerPage: z53.string().optional(),
33307
- paginationMode: z53.enum(["loadMore", "seeAllLink"]).optional(),
33308
- seeAllUrl: z53.string().optional(),
33309
- loadMoreText: z53.string().optional(),
33349
+ eventsPerPage: z52.string().optional(),
33350
+ paginationMode: z52.enum(["loadMore", "seeAllLink"]).optional(),
33351
+ seeAllUrl: z52.string().optional(),
33352
+ loadMoreText: z52.string().optional(),
33310
33353
  startOfWeek: weekStartSchema.optional(),
33311
33354
  calendarTabViews: calendarTabViewsSchema.optional(),
33312
- showFilters: z53.boolean().nullable().optional(),
33355
+ defaultCalendarView: eventCalendarDefaultViewSchema.optional(),
33356
+ showFilters: z52.boolean().nullable().optional(),
33313
33357
  showCategoryFilter: filterAutoShowSchema.optional(),
33314
- showVenueFilter: z53.boolean().nullable().optional(),
33315
- showStaffFilter: z53.boolean().nullable().optional(),
33358
+ showVenueFilter: z52.boolean().nullable().optional(),
33359
+ showStaffFilter: z52.boolean().nullable().optional(),
33316
33360
  kind: eventBlockKindSchema2.nullable().optional(),
33317
33361
  eventSurface: eventSurfaceScopeSchema2.nullable().optional(),
33318
- filterEventPresets: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33362
+ filterEventPresets: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
33319
33363
  scheduleScope: eventScheduleScopeSchema3.nullable().optional(),
33320
- filterCategoryIds: z53.union([z53.string(), z53.array(z53.string())]).nullable().optional(),
33321
- filterStaffMemberId: z53.string().nullable().optional(),
33322
- filterVenueId: z53.string().nullable().optional(),
33364
+ filterCategoryIds: z52.union([z52.string(), z52.array(z52.string())]).nullable().optional(),
33365
+ filterStaffMemberId: z52.string().nullable().optional(),
33366
+ filterVenueId: z52.string().nullable().optional(),
33323
33367
  buttonVariant: eventButtonVariantSchema.optional(),
33324
- buttonText: z53.string().optional(),
33325
- showVenue: z53.boolean().nullable().optional(),
33326
- showMap: z53.boolean().nullable().optional(),
33327
- showCapacity: z53.boolean().nullable().optional(),
33328
- emptyMessage: z53.string().optional(),
33329
- className: z53.string().optional()
33368
+ buttonText: z52.string().optional(),
33369
+ showVenue: z52.boolean().nullable().optional(),
33370
+ showMap: z52.boolean().nullable().optional(),
33371
+ showCapacity: z52.boolean().nullable().optional(),
33372
+ emptyMessage: z52.string().optional(),
33373
+ className: z52.string().optional()
33330
33374
  }
33331
33375
  );
33332
- var eventCalendarDisplaySchema = z53.object({
33333
- kind: z53.literal("event-calendar"),
33376
+ var eventCalendarDisplaySchema = z52.object({
33377
+ kind: z52.literal("event-calendar"),
33334
33378
  displayMode: eventCalendarDisplayModeSchema,
33335
- className: z53.string().nullable(),
33336
- events: z53.array(publicEventSchema),
33379
+ className: z52.string().nullable(),
33380
+ events: z52.array(publicEventSchema),
33337
33381
  listLayout: eventLayoutSchema,
33338
33382
  listColumns: columnOptionSchema,
33339
33383
  eventsPerPage: eventPageSizeSchema,
33340
33384
  paginationAction: eventListPaginationActionSchema,
33341
33385
  startOfWeek: weekStartSchema,
33342
33386
  calendarTabViews: calendarTabViewsSchema,
33343
- showFilters: z53.boolean(),
33387
+ defaultCalendarView: eventCalendarDefaultViewSchema,
33388
+ showFilters: z52.boolean(),
33344
33389
  showCategoryFilter: filterAutoShowSchema,
33345
- showVenueFilter: z53.boolean(),
33346
- showStaffFilter: z53.boolean(),
33390
+ showVenueFilter: z52.boolean(),
33391
+ showStaffFilter: z52.boolean(),
33347
33392
  eventKind: eventBlockKindSchema2,
33348
33393
  eventSurface: eventSurfaceScopeSchema2,
33349
- filterEventPresets: z53.string().nullable(),
33394
+ filterEventPresets: z52.string().nullable(),
33350
33395
  scheduleScope: eventScheduleScopeSchema3,
33351
- filterCategoryIds: z53.string().nullable(),
33352
- filterStaffMemberId: z53.string().nullable(),
33353
- filterVenueId: z53.string().nullable(),
33396
+ filterCategoryIds: z52.string().nullable(),
33397
+ filterStaffMemberId: z52.string().nullable(),
33398
+ filterVenueId: z52.string().nullable(),
33354
33399
  buttonVariant: eventButtonVariantSchema,
33355
- buttonText: z53.string(),
33356
- showVenue: z53.boolean(),
33357
- showMap: z53.boolean(),
33358
- showCapacity: z53.boolean(),
33359
- emptyMessage: z53.string()
33360
- });
33361
- var eventCalendarHydrationSchema = z53.object({
33362
- siteId: z53.string(),
33400
+ buttonText: z52.string(),
33401
+ showVenue: z52.boolean(),
33402
+ showMap: z52.boolean(),
33403
+ showCapacity: z52.boolean(),
33404
+ emptyMessage: z52.string()
33405
+ });
33406
+ var eventCalendarHydrationSchema = z52.object({
33407
+ siteId: z52.string(),
33363
33408
  stage: previewStageSchema.optional(),
33364
- prefetchedEvents: z53.boolean(),
33409
+ prefetchedEvents: z52.boolean(),
33365
33410
  eventKind: eventBlockKindSchema2,
33366
33411
  eventSurface: eventSurfaceScopeSchema2,
33367
- filterEventPresets: z53.string().nullable(),
33412
+ filterEventPresets: z52.string().nullable(),
33368
33413
  scheduleScope: eventScheduleScopeSchema3
33369
33414
  });
33370
- var eventCalendarRenderSchema = z53.object({
33415
+ var eventCalendarRenderSchema = z52.object({
33371
33416
  display: eventCalendarDisplaySchema,
33372
33417
  hydration: eventCalendarHydrationSchema
33373
33418
  });
33374
33419
  var eventCalendarIslandMetaCodec = createZodCodec(
33375
- z53.object({
33376
- siteId: z53.string(),
33377
- apiBaseUrl: z53.string().optional(),
33420
+ z52.object({
33421
+ siteId: z52.string(),
33422
+ apiBaseUrl: z52.string().optional(),
33378
33423
  stage: previewStageSchema.optional()
33379
33424
  })
33380
33425
  );
@@ -33404,6 +33449,7 @@ function buildEventCalendarDisplay(source) {
33404
33449
  }),
33405
33450
  startOfWeek: source.startOfWeek ?? "monday",
33406
33451
  calendarTabViews: source.calendarTabViews ?? "both",
33452
+ defaultCalendarView: source.defaultCalendarView ?? "month",
33407
33453
  showFilters: source.showFilters ?? true,
33408
33454
  showCategoryFilter: source.showCategoryFilter ?? "auto",
33409
33455
  showVenueFilter: source.showVenueFilter ?? false,
@@ -33466,6 +33512,9 @@ function normalizeEventCalendarContent(content) {
33466
33512
  ...variant ? { variant } : {},
33467
33513
  displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
33468
33514
  listLayout: normalizeEventCalendarListLayout(record.listLayout),
33515
+ defaultCalendarView: normalizeEventCalendarDefaultView(
33516
+ record.defaultCalendarView
33517
+ ),
33469
33518
  kind,
33470
33519
  eventSurface: normalizeEventSurfaceScope(record.eventSurface),
33471
33520
  filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
@@ -33483,6 +33532,9 @@ function normalizeEventCalendarDisplayMode(value) {
33483
33532
  function normalizeEventCalendarListLayout(value) {
33484
33533
  return isEventCalendarListLayout(value) ? value : void 0;
33485
33534
  }
33535
+ function normalizeEventCalendarDefaultView(value) {
33536
+ return isEventCalendarDefaultView(value) ? value : void 0;
33537
+ }
33486
33538
  var eventCalendarLayout = [
33487
33539
  styledSection({
33488
33540
  children: sectionContainer(
@@ -33542,6 +33594,9 @@ var eventCalendarLayout = [
33542
33594
  calendarTabViews: {
33543
33595
  $bind: { from: "content.calendarTabViews", fallback: "both" }
33544
33596
  },
33597
+ defaultCalendarView: {
33598
+ $bind: { from: "content.defaultCalendarView", fallback: "month" }
33599
+ },
33545
33600
  // Filtering options
33546
33601
  showFilters: {
33547
33602
  $bind: { from: "content.showFilters", fallback: true }
@@ -33608,8 +33663,7 @@ var eventCalendarAdditionalFields = [
33608
33663
  defaultValue: "combined",
33609
33664
  options: [
33610
33665
  { value: "combined", label: "Combined (List + Calendar tabs)" },
33611
- { value: "month", label: "Month calendar" },
33612
- { value: "week", label: "Week agenda" },
33666
+ { value: "calendar", label: "Calendar" },
33613
33667
  { value: "timetable", label: "Timetable" },
33614
33668
  { value: "list", label: "List" }
33615
33669
  ],
@@ -33648,7 +33702,12 @@ var eventCalendarAdditionalFields = [
33648
33702
  ],
33649
33703
  ui: {
33650
33704
  intent: "display",
33651
- visibleWhen: { field: "listLayout", equals: "grid" }
33705
+ visibleWhen: {
33706
+ allOf: [
33707
+ { field: "variant", oneOf: ["combined", "list"] },
33708
+ { field: "listLayout", equals: "grid" }
33709
+ ]
33710
+ }
33652
33711
  }
33653
33712
  },
33654
33713
  {
@@ -33696,7 +33755,12 @@ var eventCalendarAdditionalFields = [
33696
33755
  required: false,
33697
33756
  ui: {
33698
33757
  intent: "display",
33699
- visibleWhen: { field: "paginationMode", equals: "seeAllLink" }
33758
+ visibleWhen: {
33759
+ allOf: [
33760
+ { field: "variant", oneOf: ["combined", "list"] },
33761
+ { field: "paginationMode", equals: "seeAllLink" }
33762
+ ]
33763
+ }
33700
33764
  }
33701
33765
  },
33702
33766
  {
@@ -33729,7 +33793,7 @@ var eventCalendarAdditionalFields = [
33729
33793
  intent: "display",
33730
33794
  visibleWhen: {
33731
33795
  field: "variant",
33732
- oneOf: ["combined", "month", "week"]
33796
+ oneOf: ["combined", "calendar", "timetable"]
33733
33797
  }
33734
33798
  }
33735
33799
  },
@@ -33752,6 +33816,33 @@ var eventCalendarAdditionalFields = [
33752
33816
  visibleWhen: { field: "variant", equals: "combined" }
33753
33817
  }
33754
33818
  },
33819
+ {
33820
+ id: "defaultCalendarView",
33821
+ type: "select",
33822
+ label: "Calendar view",
33823
+ description: "Choose the standalone calendar view, or the first view in combined mode",
33824
+ required: false,
33825
+ multiple: false,
33826
+ defaultValue: "month",
33827
+ options: [
33828
+ { value: "month", label: "Month" },
33829
+ { value: "week", label: "Week" }
33830
+ ],
33831
+ ui: {
33832
+ intent: "display",
33833
+ visibleWhen: {
33834
+ anyOf: [
33835
+ { field: "variant", equals: "calendar" },
33836
+ {
33837
+ allOf: [
33838
+ { field: "variant", equals: "combined" },
33839
+ { field: "calendarTabViews", equals: "both" }
33840
+ ]
33841
+ }
33842
+ ]
33843
+ }
33844
+ }
33845
+ },
33755
33846
  // Filtering options
33756
33847
  {
33757
33848
  id: "kind",
@@ -33779,7 +33870,7 @@ var eventCalendarAdditionalFields = [
33779
33870
  intent: "display",
33780
33871
  visibleWhen: {
33781
33872
  field: "variant",
33782
- oneOf: ["combined", "list", "timetable"]
33873
+ oneOf: ["combined", "calendar", "list", "timetable"]
33783
33874
  }
33784
33875
  }
33785
33876
  },
@@ -33799,8 +33890,10 @@ var eventCalendarAdditionalFields = [
33799
33890
  ui: {
33800
33891
  intent: "display",
33801
33892
  visibleWhen: {
33802
- field: "variant",
33803
- oneOf: ["combined", "list", "timetable"]
33893
+ allOf: [
33894
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
33895
+ { field: "showFilters", equals: true }
33896
+ ]
33804
33897
  }
33805
33898
  }
33806
33899
  },
@@ -33814,8 +33907,10 @@ var eventCalendarAdditionalFields = [
33814
33907
  ui: {
33815
33908
  intent: "display",
33816
33909
  visibleWhen: {
33817
- field: "variant",
33818
- oneOf: ["combined", "list", "timetable"]
33910
+ allOf: [
33911
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
33912
+ { field: "showFilters", equals: true }
33913
+ ]
33819
33914
  }
33820
33915
  }
33821
33916
  },
@@ -33829,8 +33924,10 @@ var eventCalendarAdditionalFields = [
33829
33924
  ui: {
33830
33925
  intent: "display",
33831
33926
  visibleWhen: {
33832
- field: "variant",
33833
- oneOf: ["combined", "list", "timetable"]
33927
+ allOf: [
33928
+ { field: "variant", oneOf: ["combined", "calendar", "list", "timetable"] },
33929
+ { field: "showFilters", equals: true }
33930
+ ]
33834
33931
  }
33835
33932
  }
33836
33933
  },
@@ -33844,8 +33941,15 @@ var eventCalendarAdditionalFields = [
33844
33941
  ui: {
33845
33942
  intent: "display",
33846
33943
  visibleWhen: {
33847
- field: "variant",
33848
- oneOf: ["combined", "list", "week", "timetable"]
33944
+ anyOf: [
33945
+ { field: "variant", oneOf: ["combined", "list", "timetable"] },
33946
+ {
33947
+ allOf: [
33948
+ { field: "variant", equals: "calendar" },
33949
+ { field: "defaultCalendarView", equals: "week" }
33950
+ ]
33951
+ }
33952
+ ]
33849
33953
  }
33850
33954
  }
33851
33955
  },
@@ -33961,8 +34065,7 @@ var eventCalendarAdditionalFields = [
33961
34065
  ];
33962
34066
  var eventCalendarVariants = {
33963
34067
  combined: eventCalendarLayout[0],
33964
- month: eventCalendarLayout[0],
33965
- week: eventCalendarLayout[0],
34068
+ calendar: eventCalendarLayout[0],
33966
34069
  timetable: eventCalendarLayout[0],
33967
34070
  list: eventCalendarLayout[0]
33968
34071
  };
@@ -33974,8 +34077,7 @@ var eventCalendarDerivedFields = [
33974
34077
  multiple: false,
33975
34078
  options: [
33976
34079
  { value: "combined" },
33977
- { value: "month" },
33978
- { value: "week" },
34080
+ { value: "calendar" },
33979
34081
  { value: "timetable" },
33980
34082
  { value: "list" }
33981
34083
  ]
@@ -33988,6 +34090,13 @@ var eventCalendarDerivedFields = [
33988
34090
  options: eventCalendarListLayoutOptions.map((option) => ({
33989
34091
  value: option.id
33990
34092
  }))
34093
+ },
34094
+ {
34095
+ id: "defaultCalendarView",
34096
+ type: "select",
34097
+ required: false,
34098
+ multiple: false,
34099
+ options: [{ value: "month" }, { value: "week" }]
33991
34100
  }
33992
34101
  ];
33993
34102
  var eventCalendarContentShape = {
@@ -34036,8 +34145,7 @@ var eventCalendarConfig = {
34036
34145
  defaultVariant: "combined",
34037
34146
  variantOptions: {
34038
34147
  combined: { label: "Combined" },
34039
- month: { label: "Month" },
34040
- week: { label: "Week" },
34148
+ calendar: { label: "Calendar" },
34041
34149
  timetable: { label: "Timetable" },
34042
34150
  list: { label: "List" }
34043
34151
  }
@@ -34083,7 +34191,7 @@ var eventCalendarBlockDefinition = {
34083
34191
  };
34084
34192
 
34085
34193
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34086
- import { z as z54 } from "zod";
34194
+ import { z as z53 } from "zod";
34087
34195
 
34088
34196
  // ../blocks/src/system/blocks/offerings-preview/model.ts
34089
34197
  var OFFERINGS_PREVIEW_DEFAULT_ITEM_LIMIT = "3";
@@ -34175,13 +34283,13 @@ function isRecord5(value) {
34175
34283
  }
34176
34284
 
34177
34285
  // ../blocks/src/system/blocks/offerings-preview/index.ts
34178
- var publicRouteCandidatesSchema = z54.object({
34179
- routes: z54.array(z54.object({
34180
- entityId: z54.string(),
34181
- path: z54.string(),
34182
- title: z54.string(),
34183
- kind: z54.enum(["page", "content"]),
34184
- contentTypeKey: z54.string().nullable().optional()
34286
+ var publicRouteCandidatesSchema = z53.object({
34287
+ routes: z53.array(z53.object({
34288
+ entityId: z53.string(),
34289
+ path: z53.string(),
34290
+ title: z53.string(),
34291
+ kind: z53.enum(["page", "content"]),
34292
+ contentTypeKey: z53.string().nullable().optional()
34185
34293
  }))
34186
34294
  });
34187
34295
  var groupOverrideFields = [
@@ -34579,7 +34687,7 @@ function isRecord6(value) {
34579
34687
  }
34580
34688
 
34581
34689
  // ../blocks/src/system/blocks/embed.ts
34582
- import { z as z55 } from "zod";
34690
+ import { z as z54 } from "zod";
34583
34691
  var embedFields = [
34584
34692
  // Section heading
34585
34693
  parseFieldDefinition({
@@ -34810,18 +34918,18 @@ var embedManifest = createBlockManifest({
34810
34918
  spacing: "lg"
34811
34919
  }
34812
34920
  });
34813
- var embedEntrySchema = z55.object({
34814
- id: z55.string(),
34815
- identifier: z55.string(),
34816
- title: z55.string(),
34817
- slug: z55.string().nullable().optional(),
34818
- content: z55.record(z55.string(), z55.unknown()).optional(),
34819
- publishedAt: z55.string().nullable().optional()
34921
+ var embedEntrySchema = z54.object({
34922
+ id: z54.string(),
34923
+ identifier: z54.string(),
34924
+ title: z54.string(),
34925
+ slug: z54.string().nullable().optional(),
34926
+ content: z54.record(z54.string(), z54.unknown()).optional(),
34927
+ publishedAt: z54.string().nullable().optional()
34820
34928
  });
34821
34929
  var embedBlockDefinition = {
34822
34930
  manifest: embedManifest,
34823
34931
  dataSchemas: {
34824
- entries: z55.array(embedEntrySchema).optional()
34932
+ entries: z54.array(embedEntrySchema).optional()
34825
34933
  },
34826
34934
  dataLoaders: {
34827
34935
  entries: {
@@ -36004,53 +36112,50 @@ var fileDownloadBlockDefinition = {
36004
36112
  manifest: fileDownloadManifest
36005
36113
  };
36006
36114
 
36007
- // ../blocks/src/system/blocks/shop.ts
36008
- import { z as z59 } from "zod";
36009
-
36010
36115
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36011
- import { z as z58 } from "zod";
36116
+ import { z as z57 } from "zod";
36012
36117
 
36013
36118
  // ../blocks/src/system/blocks/products/shared.ts
36014
- import { z as z56 } from "zod";
36015
- var publicProductVariantSchema = z56.object({
36016
- id: z56.string(),
36017
- title: z56.string(),
36018
- sku: z56.string().nullable(),
36019
- priceCents: z56.number(),
36020
- stockQuantity: z56.number().nullable(),
36021
- soldOut: z56.boolean()
36022
- });
36023
- var publicProductSchema = z56.object({
36024
- id: z56.string(),
36025
- contentEntryId: z56.string().nullable(),
36026
- title: z56.string(),
36027
- slug: z56.string(),
36028
- path: z56.string().nullable(),
36029
- status: z56.enum(["draft", "active"]),
36030
- priceCents: z56.number(),
36031
- currency: z56.string(),
36032
- productType: z56.enum(["physical", "digital"]),
36033
- requiresShipping: z56.boolean(),
36034
- hasVariants: z56.boolean(),
36035
- trackInventory: z56.boolean(),
36036
- soldOut: z56.boolean(),
36037
- category: z56.object({
36038
- id: z56.string(),
36039
- name: z56.string(),
36040
- slug: z56.string()
36119
+ import { z as z55 } from "zod";
36120
+ var publicProductVariantSchema = z55.object({
36121
+ id: z55.string(),
36122
+ title: z55.string(),
36123
+ sku: z55.string().nullable(),
36124
+ priceCents: z55.number(),
36125
+ stockQuantity: z55.number().nullable(),
36126
+ soldOut: z55.boolean()
36127
+ });
36128
+ var publicProductSchema = z55.object({
36129
+ id: z55.string(),
36130
+ contentEntryId: z55.string().nullable(),
36131
+ title: z55.string(),
36132
+ slug: z55.string(),
36133
+ path: z55.string().nullable(),
36134
+ status: z55.enum(["draft", "active"]),
36135
+ priceCents: z55.number(),
36136
+ currency: z55.string(),
36137
+ productType: z55.enum(["physical", "digital"]),
36138
+ requiresShipping: z55.boolean(),
36139
+ hasVariants: z55.boolean(),
36140
+ trackInventory: z55.boolean(),
36141
+ soldOut: z55.boolean(),
36142
+ category: z55.object({
36143
+ id: z55.string(),
36144
+ name: z55.string(),
36145
+ slug: z55.string()
36041
36146
  }).nullable(),
36042
- summary: z56.string().nullable(),
36043
- body: z56.unknown().nullable(),
36044
- gallery: z56.array(
36045
- z56.object({
36046
- url: z56.string(),
36047
- alt: z56.string().nullable()
36147
+ summary: z55.string().nullable(),
36148
+ body: z55.unknown().nullable(),
36149
+ gallery: z55.array(
36150
+ z55.object({
36151
+ url: z55.string(),
36152
+ alt: z55.string().nullable()
36048
36153
  })
36049
36154
  ),
36050
- variants: z56.array(publicProductVariantSchema)
36155
+ variants: z55.array(publicProductVariantSchema)
36051
36156
  });
36052
- var publicProductsResponseSchema = z56.object({
36053
- products: z56.array(publicProductSchema)
36157
+ var publicProductsResponseSchema = z55.object({
36158
+ products: z55.array(publicProductSchema)
36054
36159
  });
36055
36160
 
36056
36161
  // ../blocks/src/system/runtime/api/creditProducts.ts
@@ -36114,27 +36219,27 @@ function deriveCreditProductLabels(products, options = {}) {
36114
36219
  }
36115
36220
 
36116
36221
  // ../blocks/src/system/runtime/nodes/shop-commerce.shared.ts
36117
- import { z as z57 } from "zod";
36118
- var storedProductCartItemSchema = z57.object({
36119
- kind: z57.literal("product"),
36120
- productId: z57.string().min(1),
36121
- productCategoryId: z57.string().min(1).optional().nullable(),
36122
- variantId: z57.string().min(1).optional().nullable(),
36123
- title: z57.string().min(1),
36124
- variantTitle: z57.string().optional().nullable(),
36125
- quantity: z57.number().finite(),
36126
- unitPriceCents: z57.number().finite(),
36127
- currency: z57.string().min(1),
36128
- imageUrl: z57.string().optional().nullable(),
36129
- soldOut: z57.boolean().optional()
36130
- });
36131
- var storedPassCartItemSchema = z57.object({
36132
- kind: z57.literal("pass"),
36133
- passId: z57.string().min(1),
36134
- title: z57.string().min(1),
36135
- quantity: z57.number().finite().optional(),
36136
- unitPriceCents: z57.number().finite(),
36137
- currency: z57.string().min(1)
36222
+ import { z as z56 } from "zod";
36223
+ var storedProductCartItemSchema = z56.object({
36224
+ kind: z56.literal("product"),
36225
+ productId: z56.string().min(1),
36226
+ productCategoryId: z56.string().min(1).optional().nullable(),
36227
+ variantId: z56.string().min(1).optional().nullable(),
36228
+ title: z56.string().min(1),
36229
+ variantTitle: z56.string().optional().nullable(),
36230
+ quantity: z56.number().finite(),
36231
+ unitPriceCents: z56.number().finite(),
36232
+ currency: z56.string().min(1),
36233
+ imageUrl: z56.string().optional().nullable(),
36234
+ soldOut: z56.boolean().optional()
36235
+ });
36236
+ var storedPassCartItemSchema = z56.object({
36237
+ kind: z56.literal("pass"),
36238
+ passId: z56.string().min(1),
36239
+ title: z56.string().min(1),
36240
+ quantity: z56.number().finite().optional(),
36241
+ unitPriceCents: z56.number().finite(),
36242
+ currency: z56.string().min(1)
36138
36243
  });
36139
36244
  function deriveCommerceCheckoutState(state) {
36140
36245
  if (state.items.length === 0) {
@@ -36368,214 +36473,214 @@ function formatValidity(days) {
36368
36473
  }
36369
36474
 
36370
36475
  // ../blocks/src/system/runtime/nodes/shop.interactive.ts
36371
- var shopModeSchema = z58.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
36372
- var contentEntrySchema3 = z58.object({
36373
- id: z58.string().nullable().optional(),
36374
- slug: z58.string().nullable().optional()
36476
+ var shopModeSchema = z57.enum(["passes-memberships", "product-list", "product-detail", "cart", "checkout"]);
36477
+ var contentEntrySchema3 = z57.object({
36478
+ id: z57.string().nullable().optional(),
36479
+ slug: z57.string().nullable().optional()
36375
36480
  }).nullable();
36376
- var shopSourceSchema = z58.object({
36377
- className: z58.string().nullable().optional(),
36481
+ var shopSourceSchema = z57.object({
36482
+ className: z57.string().nullable().optional(),
36378
36483
  mode: shopModeSchema.optional(),
36379
- heading: z58.string().nullable().optional(),
36380
- productSlug: z58.string().nullable().optional(),
36381
- showPasses: z58.boolean().optional(),
36382
- showMemberships: z58.boolean().optional(),
36383
- layout: z58.enum(["grid", "list"]).optional(),
36384
- columns: z58.string().optional(),
36385
- showDescriptions: z58.boolean().optional(),
36386
- showSummary: z58.boolean().optional(),
36387
- showBody: z58.boolean().optional(),
36388
- showPrices: z58.boolean().optional(),
36389
- showValidityPeriod: z58.boolean().optional(),
36390
- showPricePerCredit: z58.boolean().nullable().optional(),
36391
- passesHeading: z58.string().optional(),
36392
- membershipsHeading: z58.string().optional(),
36393
- buyButtonText: z58.string().optional(),
36394
- addButtonText: z58.string().optional(),
36395
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"]).optional(),
36396
- subscribeButtonText: z58.string().optional(),
36397
- emptyStateText: z58.string().optional(),
36398
- checkoutButtonText: z58.string().optional(),
36399
- clearButtonText: z58.string().optional(),
36400
- submitButtonText: z58.string().optional(),
36484
+ heading: z57.string().nullable().optional(),
36485
+ productSlug: z57.string().nullable().optional(),
36486
+ showPasses: z57.boolean().optional(),
36487
+ showMemberships: z57.boolean().optional(),
36488
+ layout: z57.enum(["grid", "list"]).optional(),
36489
+ columns: z57.string().optional(),
36490
+ showDescriptions: z57.boolean().optional(),
36491
+ showSummary: z57.boolean().optional(),
36492
+ showBody: z57.boolean().optional(),
36493
+ showPrices: z57.boolean().optional(),
36494
+ showValidityPeriod: z57.boolean().optional(),
36495
+ showPricePerCredit: z57.boolean().nullable().optional(),
36496
+ passesHeading: z57.string().optional(),
36497
+ membershipsHeading: z57.string().optional(),
36498
+ buyButtonText: z57.string().optional(),
36499
+ addButtonText: z57.string().optional(),
36500
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"]).optional(),
36501
+ subscribeButtonText: z57.string().optional(),
36502
+ emptyStateText: z57.string().optional(),
36503
+ checkoutButtonText: z57.string().optional(),
36504
+ clearButtonText: z57.string().optional(),
36505
+ submitButtonText: z57.string().optional(),
36401
36506
  contentEntry: contentEntrySchema3.optional(),
36402
- passes: z58.array(publicPassProductSchema).nullable().optional(),
36403
- memberships: z58.array(publicMembershipProductSchema).nullable().optional(),
36404
- products: z58.array(publicProductSchema).nullable().optional(),
36405
- siteId: z58.string().optional(),
36406
- apiBaseUrl: z58.string().optional(),
36507
+ passes: z57.array(publicPassProductSchema).nullable().optional(),
36508
+ memberships: z57.array(publicMembershipProductSchema).nullable().optional(),
36509
+ products: z57.array(publicProductSchema).nullable().optional(),
36510
+ siteId: z57.string().optional(),
36511
+ apiBaseUrl: z57.string().optional(),
36407
36512
  stage: previewStageSchema.optional()
36408
36513
  });
36409
- var productVariantOptionDisplaySchema = z58.object({
36410
- id: z58.string(),
36411
- label: z58.string(),
36412
- soldOut: z58.boolean()
36413
- });
36414
- var productCardDisplaySchema = z58.object({
36415
- productId: z58.string(),
36416
- title: z58.string(),
36417
- path: z58.string().nullable(),
36418
- summary: z58.string().nullable(),
36419
- priceLabel: z58.string().nullable(),
36420
- image: z58.object({
36421
- url: z58.string(),
36422
- alt: z58.string().nullable()
36514
+ var productVariantOptionDisplaySchema = z57.object({
36515
+ id: z57.string(),
36516
+ label: z57.string(),
36517
+ soldOut: z57.boolean()
36518
+ });
36519
+ var productCardDisplaySchema = z57.object({
36520
+ productId: z57.string(),
36521
+ title: z57.string(),
36522
+ path: z57.string().nullable(),
36523
+ summary: z57.string().nullable(),
36524
+ priceLabel: z57.string().nullable(),
36525
+ image: z57.object({
36526
+ url: z57.string(),
36527
+ alt: z57.string().nullable()
36423
36528
  }).nullable(),
36424
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36425
- selectedVariantId: z58.string().nullable(),
36426
- selectionLabel: z58.string(),
36427
- actionLabel: z58.string(),
36428
- soldOut: z58.boolean()
36429
- });
36430
- var productListDisplaySchema = z58.object({
36431
- kind: z58.literal("product-list"),
36432
- state: z58.enum(["empty", "ready"]),
36433
- heading: z58.string().nullable(),
36434
- className: z58.string().nullable(),
36435
- layout: z58.enum(["grid", "list"]),
36436
- columns: z58.string(),
36437
- emptyMessage: z58.string(),
36438
- cards: z58.array(productCardDisplaySchema)
36439
- });
36440
- var productDetailDisplaySchema = z58.discriminatedUnion("state", [
36441
- z58.object({
36442
- kind: z58.literal("product-detail"),
36443
- state: z58.literal("empty"),
36444
- heading: z58.string().nullable(),
36445
- className: z58.string().nullable(),
36446
- emptyMessage: z58.string()
36529
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
36530
+ selectedVariantId: z57.string().nullable(),
36531
+ selectionLabel: z57.string(),
36532
+ actionLabel: z57.string(),
36533
+ soldOut: z57.boolean()
36534
+ });
36535
+ var productListDisplaySchema = z57.object({
36536
+ kind: z57.literal("product-list"),
36537
+ state: z57.enum(["empty", "ready"]),
36538
+ heading: z57.string().nullable(),
36539
+ className: z57.string().nullable(),
36540
+ layout: z57.enum(["grid", "list"]),
36541
+ columns: z57.string(),
36542
+ emptyMessage: z57.string(),
36543
+ cards: z57.array(productCardDisplaySchema)
36544
+ });
36545
+ var productDetailDisplaySchema = z57.discriminatedUnion("state", [
36546
+ z57.object({
36547
+ kind: z57.literal("product-detail"),
36548
+ state: z57.literal("empty"),
36549
+ heading: z57.string().nullable(),
36550
+ className: z57.string().nullable(),
36551
+ emptyMessage: z57.string()
36447
36552
  }),
36448
- z58.object({
36449
- kind: z58.literal("product-detail"),
36450
- state: z58.literal("ready"),
36451
- heading: z58.string().nullable(),
36452
- className: z58.string().nullable(),
36453
- title: z58.string(),
36454
- priceLabel: z58.string(),
36455
- summary: z58.string().nullable(),
36456
- categoryLabel: z58.string().nullable(),
36457
- gallery: z58.array(z58.object({
36458
- url: z58.string(),
36459
- alt: z58.string().nullable()
36553
+ z57.object({
36554
+ kind: z57.literal("product-detail"),
36555
+ state: z57.literal("ready"),
36556
+ heading: z57.string().nullable(),
36557
+ className: z57.string().nullable(),
36558
+ title: z57.string(),
36559
+ priceLabel: z57.string(),
36560
+ summary: z57.string().nullable(),
36561
+ categoryLabel: z57.string().nullable(),
36562
+ gallery: z57.array(z57.object({
36563
+ url: z57.string(),
36564
+ alt: z57.string().nullable()
36460
36565
  })),
36461
- variantOptions: z58.array(productVariantOptionDisplaySchema),
36462
- selectedVariantId: z58.string().nullable(),
36463
- selectionLabel: z58.string(),
36464
- actionLabel: z58.string(),
36465
- soldOut: z58.boolean(),
36466
- body: z58.unknown().nullable()
36566
+ variantOptions: z57.array(productVariantOptionDisplaySchema),
36567
+ selectedVariantId: z57.string().nullable(),
36568
+ selectionLabel: z57.string(),
36569
+ actionLabel: z57.string(),
36570
+ soldOut: z57.boolean(),
36571
+ body: z57.unknown().nullable()
36467
36572
  })
36468
36573
  ]);
36469
- var passCardDisplaySchema = z58.object({
36470
- id: z58.string(),
36471
- title: z58.string(),
36472
- description: z58.string().nullable(),
36473
- priceLabel: z58.string(),
36474
- creditsLabel: z58.string(),
36475
- perCreditLabel: z58.string().nullable(),
36476
- validityLabel: z58.string().nullable(),
36477
- actionLabel: z58.string()
36478
- });
36479
- var membershipCardDisplaySchema = z58.object({
36480
- id: z58.string(),
36481
- title: z58.string(),
36482
- description: z58.string().nullable(),
36483
- priceLabel: z58.string(),
36484
- intervalLabel: z58.string(),
36485
- actionLabel: z58.string()
36486
- });
36487
- var passesMembershipsDisplaySchema = z58.object({
36488
- kind: z58.literal("passes-memberships"),
36489
- state: z58.enum(["empty", "ready"]),
36490
- className: z58.string().nullable(),
36491
- layout: z58.enum(["grid", "list"]),
36492
- columns: z58.string(),
36493
- emptyMessage: z58.string(),
36494
- passesHeading: z58.string(),
36495
- membershipsHeading: z58.string(),
36496
- passes: z58.array(passCardDisplaySchema),
36497
- memberships: z58.array(membershipCardDisplaySchema)
36498
- });
36499
- var cartLineDisplaySchema = z58.object({
36500
- key: z58.string(),
36501
- title: z58.string(),
36502
- priceLabel: z58.string(),
36503
- quantity: z58.number(),
36504
- quantityEditable: z58.boolean()
36505
- });
36506
- var cartDisplaySchema = z58.object({
36507
- kind: z58.literal("cart"),
36508
- state: z58.enum(["empty", "ready"]),
36509
- heading: z58.string().nullable(),
36510
- className: z58.string().nullable(),
36511
- emptyMessage: z58.string(),
36512
- supportText: z58.string().nullable(),
36513
- items: z58.array(cartLineDisplaySchema),
36514
- subtotalLabel: z58.string().nullable(),
36515
- checkoutButtonText: z58.string(),
36516
- clearButtonText: z58.string()
36517
- });
36518
- var checkoutDisplaySchema = z58.object({
36519
- kind: z58.literal("checkout"),
36520
- state: z58.enum(["empty", "blocked", "ready"]),
36521
- heading: z58.string().nullable(),
36522
- className: z58.string().nullable(),
36523
- message: z58.string().nullable(),
36524
- submitButtonText: z58.string()
36525
- });
36526
- var passesMembershipsHydrationSchema = z58.object({
36527
- passes: z58.array(publicPassProductSchema),
36528
- memberships: z58.array(publicMembershipProductSchema),
36529
- passPurchaseMode: z58.enum(["add_to_cart", "buy_now"])
36530
- });
36531
- var productListHydrationSchema = z58.object({
36532
- products: z58.array(publicProductSchema),
36533
- showSummary: z58.boolean(),
36534
- showPrices: z58.boolean(),
36535
- addButtonText: z58.string()
36536
- });
36537
- var productDetailHydrationSchema = z58.object({
36538
- products: z58.array(publicProductSchema),
36539
- productId: z58.string().nullable(),
36540
- showSummary: z58.boolean(),
36541
- showBody: z58.boolean(),
36542
- addButtonText: z58.string()
36543
- });
36544
- var cartHydrationSchema = z58.object({
36545
- emptyStateText: z58.string(),
36546
- checkoutButtonText: z58.string(),
36547
- clearButtonText: z58.string()
36548
- });
36549
- var checkoutHydrationSchema = z58.object({
36550
- emptyStateText: z58.string(),
36551
- submitButtonText: z58.string()
36552
- });
36553
- var passesMembershipsRenderSchema = z58.object({
36574
+ var passCardDisplaySchema = z57.object({
36575
+ id: z57.string(),
36576
+ title: z57.string(),
36577
+ description: z57.string().nullable(),
36578
+ priceLabel: z57.string(),
36579
+ creditsLabel: z57.string(),
36580
+ perCreditLabel: z57.string().nullable(),
36581
+ validityLabel: z57.string().nullable(),
36582
+ actionLabel: z57.string()
36583
+ });
36584
+ var membershipCardDisplaySchema = z57.object({
36585
+ id: z57.string(),
36586
+ title: z57.string(),
36587
+ description: z57.string().nullable(),
36588
+ priceLabel: z57.string(),
36589
+ intervalLabel: z57.string(),
36590
+ actionLabel: z57.string()
36591
+ });
36592
+ var passesMembershipsDisplaySchema = z57.object({
36593
+ kind: z57.literal("passes-memberships"),
36594
+ state: z57.enum(["empty", "ready"]),
36595
+ className: z57.string().nullable(),
36596
+ layout: z57.enum(["grid", "list"]),
36597
+ columns: z57.string(),
36598
+ emptyMessage: z57.string(),
36599
+ passesHeading: z57.string(),
36600
+ membershipsHeading: z57.string(),
36601
+ passes: z57.array(passCardDisplaySchema),
36602
+ memberships: z57.array(membershipCardDisplaySchema)
36603
+ });
36604
+ var cartLineDisplaySchema = z57.object({
36605
+ key: z57.string(),
36606
+ title: z57.string(),
36607
+ priceLabel: z57.string(),
36608
+ quantity: z57.number(),
36609
+ quantityEditable: z57.boolean()
36610
+ });
36611
+ var cartDisplaySchema = z57.object({
36612
+ kind: z57.literal("cart"),
36613
+ state: z57.enum(["empty", "ready"]),
36614
+ heading: z57.string().nullable(),
36615
+ className: z57.string().nullable(),
36616
+ emptyMessage: z57.string(),
36617
+ supportText: z57.string().nullable(),
36618
+ items: z57.array(cartLineDisplaySchema),
36619
+ subtotalLabel: z57.string().nullable(),
36620
+ checkoutButtonText: z57.string(),
36621
+ clearButtonText: z57.string()
36622
+ });
36623
+ var checkoutDisplaySchema = z57.object({
36624
+ kind: z57.literal("checkout"),
36625
+ state: z57.enum(["empty", "blocked", "ready"]),
36626
+ heading: z57.string().nullable(),
36627
+ className: z57.string().nullable(),
36628
+ message: z57.string().nullable(),
36629
+ submitButtonText: z57.string()
36630
+ });
36631
+ var passesMembershipsHydrationSchema = z57.object({
36632
+ passes: z57.array(publicPassProductSchema),
36633
+ memberships: z57.array(publicMembershipProductSchema),
36634
+ passPurchaseMode: z57.enum(["add_to_cart", "buy_now"])
36635
+ });
36636
+ var productListHydrationSchema = z57.object({
36637
+ products: z57.array(publicProductSchema),
36638
+ showSummary: z57.boolean(),
36639
+ showPrices: z57.boolean(),
36640
+ addButtonText: z57.string()
36641
+ });
36642
+ var productDetailHydrationSchema = z57.object({
36643
+ products: z57.array(publicProductSchema),
36644
+ productId: z57.string().nullable(),
36645
+ showSummary: z57.boolean(),
36646
+ showBody: z57.boolean(),
36647
+ addButtonText: z57.string()
36648
+ });
36649
+ var cartHydrationSchema = z57.object({
36650
+ emptyStateText: z57.string(),
36651
+ checkoutButtonText: z57.string(),
36652
+ clearButtonText: z57.string()
36653
+ });
36654
+ var checkoutHydrationSchema = z57.object({
36655
+ emptyStateText: z57.string(),
36656
+ submitButtonText: z57.string()
36657
+ });
36658
+ var passesMembershipsRenderSchema = z57.object({
36554
36659
  display: passesMembershipsDisplaySchema,
36555
36660
  hydration: passesMembershipsHydrationSchema
36556
36661
  });
36557
- var productListRenderSchema = z58.object({
36662
+ var productListRenderSchema = z57.object({
36558
36663
  display: productListDisplaySchema,
36559
36664
  hydration: productListHydrationSchema
36560
36665
  });
36561
- var productDetailRenderSchema = z58.object({
36666
+ var productDetailRenderSchema = z57.object({
36562
36667
  display: productDetailDisplaySchema,
36563
36668
  hydration: productDetailHydrationSchema
36564
36669
  });
36565
- var cartRenderSchema = z58.object({
36670
+ var cartRenderSchema = z57.object({
36566
36671
  display: cartDisplaySchema,
36567
36672
  hydration: cartHydrationSchema
36568
36673
  });
36569
- var checkoutRenderSchema = z58.object({
36674
+ var checkoutRenderSchema = z57.object({
36570
36675
  display: checkoutDisplaySchema,
36571
36676
  hydration: checkoutHydrationSchema
36572
36677
  });
36573
36678
  function resolveShowPricePerCredit(source) {
36574
36679
  return source.showPricePerCredit ?? true;
36575
36680
  }
36576
- var shopIslandMetaCodec = createZodCodec(z58.object({
36577
- siteId: z58.string().optional(),
36578
- apiBaseUrl: z58.string().optional(),
36681
+ var shopIslandMetaCodec = createZodCodec(z57.object({
36682
+ siteId: z57.string().optional(),
36683
+ apiBaseUrl: z57.string().optional(),
36579
36684
  stage: previewStageSchema.optional()
36580
36685
  }));
36581
36686
  var shopIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
@@ -36953,9 +37058,9 @@ var shopBlockDefinition = {
36953
37058
  runtime: shopBlockRuntime,
36954
37059
  dataSchemas: {
36955
37060
  // listPublicPasses returns { passes: [...] }
36956
- passes: z59.object({ passes: z59.array(publicPassProductSchema) }).optional(),
37061
+ passes: publicPassProductCollectionSchema.optional(),
36957
37062
  // listPublicMemberships returns { memberships: [...] }
36958
- memberships: z59.object({ memberships: z59.array(publicMembershipProductSchema) }).optional()
37063
+ memberships: publicMembershipProductCollectionSchema.optional()
36959
37064
  },
36960
37065
  dataLoaders: {
36961
37066
  // Load passes for display
@@ -36978,7 +37083,7 @@ var shopBlockDefinition = {
36978
37083
  };
36979
37084
 
36980
37085
  // ../blocks/src/system/blocks/product-list.ts
36981
- import { z as z60 } from "zod";
37086
+ import { z as z58 } from "zod";
36982
37087
  var productListManifest = createBlockManifest({
36983
37088
  id: "block.product-list",
36984
37089
  version: "1.0.0",
@@ -37111,7 +37216,7 @@ var productListBlockDefinition = {
37111
37216
  }
37112
37217
  }
37113
37218
  };
37114
- var productListDataSchema = z60.object({
37219
+ var productListDataSchema = z58.object({
37115
37220
  products: publicProductsResponseSchema.optional()
37116
37221
  });
37117
37222
 
@@ -37372,72 +37477,72 @@ var checkoutBlockDefinition = {
37372
37477
  };
37373
37478
 
37374
37479
  // ../blocks/src/system/runtime/nodes/gifting.interactive.ts
37375
- import { z as z61 } from "zod";
37376
- var publicGiftCardOfferSchema = z61.object({
37377
- id: z61.string(),
37378
- kind: z61.literal("gift_card"),
37379
- title: z61.string(),
37380
- description: z61.string().nullable(),
37381
- sortOrder: z61.number().int(),
37382
- giftCard: z61.object({
37383
- fixedDenominations: z61.array(z61.number().int().positive()),
37384
- customAmountEnabled: z61.boolean(),
37385
- customAmountMinCents: z61.number().int().positive(),
37386
- customAmountMaxCents: z61.number().int().positive()
37480
+ import { z as z59 } from "zod";
37481
+ var publicGiftCardOfferSchema = z59.object({
37482
+ id: z59.string(),
37483
+ kind: z59.literal("gift_card"),
37484
+ title: z59.string(),
37485
+ description: z59.string().nullable(),
37486
+ sortOrder: z59.number().int(),
37487
+ giftCard: z59.object({
37488
+ fixedDenominations: z59.array(z59.number().int().positive()),
37489
+ customAmountEnabled: z59.boolean(),
37490
+ customAmountMinCents: z59.number().int().positive(),
37491
+ customAmountMaxCents: z59.number().int().positive()
37387
37492
  }),
37388
- voucher: z61.null()
37389
- });
37390
- var publicVoucherOfferSchema = z61.object({
37391
- id: z61.string(),
37392
- kind: z61.literal("voucher"),
37393
- title: z61.string(),
37394
- description: z61.string().nullable(),
37395
- sortOrder: z61.number().int(),
37396
- giftCard: z61.null(),
37397
- voucher: z61.object({
37398
- purchaseAmountCents: z61.number().int().positive()
37493
+ voucher: z59.null()
37494
+ });
37495
+ var publicVoucherOfferSchema = z59.object({
37496
+ id: z59.string(),
37497
+ kind: z59.literal("voucher"),
37498
+ title: z59.string(),
37499
+ description: z59.string().nullable(),
37500
+ sortOrder: z59.number().int(),
37501
+ giftCard: z59.null(),
37502
+ voucher: z59.object({
37503
+ purchaseAmountCents: z59.number().int().positive()
37399
37504
  })
37400
37505
  });
37401
- var publicGiftingOffersResponseSchema = z61.object({
37402
- currency: z61.string(),
37403
- giftCards: z61.array(publicGiftCardOfferSchema),
37404
- vouchers: z61.array(publicVoucherOfferSchema)
37506
+ var publicGiftingOffersResponseSchema = z59.object({
37507
+ currency: z59.string(),
37508
+ giftCards: z59.array(publicGiftCardOfferSchema),
37509
+ vouchers: z59.array(publicVoucherOfferSchema)
37405
37510
  });
37406
- var giftingSourceSchema = z61.object({
37407
- siteId: z61.string().optional(),
37408
- apiBaseUrl: z61.string().optional(),
37511
+ var giftingSourceSchema = z59.object({
37512
+ siteId: z59.string().optional(),
37513
+ apiBaseUrl: z59.string().optional(),
37409
37514
  offers: publicGiftingOffersResponseSchema.nullable().optional(),
37410
- className: z61.string().nullable().optional(),
37411
- heading: z61.string().nullable().optional(),
37412
- intro: z61.string().nullable().optional(),
37413
- giftCardsHeading: z61.string().nullable().optional(),
37414
- vouchersHeading: z61.string().nullable().optional(),
37415
- emptyStateText: z61.string().nullable().optional(),
37416
- checkoutButtonText: z61.string().nullable().optional(),
37417
- successMessage: z61.string().nullable().optional()
37418
- });
37419
- var giftingDisplaySchema = z61.object({
37420
- kind: z61.literal("gifting"),
37421
- state: z61.literal("ready"),
37422
- className: z61.string().nullable(),
37423
- heading: z61.string(),
37424
- intro: z61.string().nullable(),
37425
- giftCardsHeading: z61.string(),
37426
- vouchersHeading: z61.string(),
37427
- emptyStateText: z61.string()
37428
- });
37429
- var giftingHydrationSchema = z61.object({
37515
+ className: z59.string().nullable().optional(),
37516
+ heading: z59.string().nullable().optional(),
37517
+ intro: z59.string().nullable().optional(),
37518
+ giftCardsHeading: z59.string().nullable().optional(),
37519
+ vouchersHeading: z59.string().nullable().optional(),
37520
+ emptyStateText: z59.string().nullable().optional(),
37521
+ checkoutButtonText: z59.string().nullable().optional(),
37522
+ successMessage: z59.string().nullable().optional()
37523
+ });
37524
+ var giftingDisplaySchema = z59.object({
37525
+ kind: z59.literal("gifting"),
37526
+ state: z59.literal("ready"),
37527
+ className: z59.string().nullable(),
37528
+ heading: z59.string(),
37529
+ intro: z59.string().nullable(),
37530
+ giftCardsHeading: z59.string(),
37531
+ vouchersHeading: z59.string(),
37532
+ emptyStateText: z59.string()
37533
+ });
37534
+ var giftingHydrationSchema = z59.object({
37430
37535
  offers: publicGiftingOffersResponseSchema.nullable(),
37431
- checkoutButtonText: z61.string(),
37432
- successMessage: z61.string()
37536
+ checkoutButtonText: z59.string(),
37537
+ successMessage: z59.string()
37433
37538
  });
37434
- var giftingRenderSchema = z61.object({
37539
+ var giftingRenderSchema = z59.object({
37435
37540
  display: giftingDisplaySchema,
37436
37541
  hydration: giftingHydrationSchema
37437
37542
  });
37438
- var giftingIslandMetaCodec = createZodCodec(z61.object({
37439
- siteId: z61.string().optional(),
37440
- apiBaseUrl: z61.string().optional()
37543
+ var giftingIslandMetaCodec = createZodCodec(z59.object({
37544
+ siteId: z59.string().optional(),
37545
+ apiBaseUrl: z59.string().optional()
37441
37546
  }));
37442
37547
  var giftingIslandMetaKeys = defineInteractiveIslandMetaKeys(
37443
37548
  "siteId",
@@ -37608,7 +37713,7 @@ var giftingBlockDefinition = {
37608
37713
  };
37609
37714
 
37610
37715
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
37611
- import { z as z62 } from "zod";
37716
+ import { z as z60 } from "zod";
37612
37717
 
37613
37718
  // ../blocks/src/system/blocks/newsletter-signup-destination.ts
37614
37719
  function parseNewsletterSignupBlockId(value) {
@@ -37743,65 +37848,65 @@ function withOptionalPhone(fields3, includePhone) {
37743
37848
  }
37744
37849
 
37745
37850
  // ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
37746
- var newsletterPresetSchema = z62.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
37747
- var newsletterDestinationProviderSchema = z62.enum(["riverbank", "mailchimp"]);
37748
- var newsletterFieldSchema = z62.object({
37749
- id: z62.string(),
37750
- type: z62.enum(["email", "text"]),
37751
- label: z62.string(),
37752
- required: z62.boolean(),
37753
- placeholder: z62.string().optional()
37754
- });
37755
- var newsletterSignupBlockIdSchema = z62.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
37756
- var signedNewsletterDestinationRefSchema = z62.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
37757
- var newsletterPublicDestinationRefSchema = z62.discriminatedUnion("tag", [
37758
- z62.object({
37759
- tag: z62.literal("block_ref"),
37851
+ var newsletterPresetSchema = z60.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
37852
+ var newsletterDestinationProviderSchema = z60.enum(["riverbank", "mailchimp"]);
37853
+ var newsletterFieldSchema = z60.object({
37854
+ id: z60.string(),
37855
+ type: z60.enum(["email", "text"]),
37856
+ label: z60.string(),
37857
+ required: z60.boolean(),
37858
+ placeholder: z60.string().optional()
37859
+ });
37860
+ var newsletterSignupBlockIdSchema = z60.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
37861
+ var signedNewsletterDestinationRefSchema = z60.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
37862
+ var newsletterPublicDestinationRefSchema = z60.discriminatedUnion("tag", [
37863
+ z60.object({
37864
+ tag: z60.literal("block_ref"),
37760
37865
  blockId: newsletterSignupBlockIdSchema
37761
37866
  }),
37762
- z62.object({
37763
- tag: z62.literal("signed_destination_ref"),
37867
+ z60.object({
37868
+ tag: z60.literal("signed_destination_ref"),
37764
37869
  token: signedNewsletterDestinationRefSchema
37765
37870
  })
37766
37871
  ]);
37767
- var newsletterSourceSchema = z62.object({
37768
- blockId: z62.string().nullable().optional(),
37769
- siteId: z62.string().optional(),
37770
- apiBaseUrl: z62.string().optional(),
37771
- listId: z62.string().nullable().optional(),
37872
+ var newsletterSourceSchema = z60.object({
37873
+ blockId: z60.string().nullable().optional(),
37874
+ siteId: z60.string().optional(),
37875
+ apiBaseUrl: z60.string().optional(),
37876
+ listId: z60.string().nullable().optional(),
37772
37877
  destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
37773
37878
  preset: newsletterPresetSchema.optional(),
37774
- includePhone: z62.boolean().optional(),
37775
- buttonLabel: z62.string().nullable().optional(),
37776
- successMessage: z62.string().nullable().optional(),
37777
- privacyNote: z62.string().nullable().optional(),
37778
- tags: z62.string().nullable().optional(),
37779
- spamProtectionEnabled: z62.boolean().optional(),
37780
- className: z62.string().nullable().optional()
37781
- });
37782
- var newsletterDisplaySchema = z62.object({
37783
- kind: z62.literal("newsletter-form"),
37784
- className: z62.string().nullable(),
37785
- buttonLabel: z62.string(),
37786
- successMessage: z62.string().nullable(),
37787
- privacyNote: z62.string().nullable(),
37788
- fields: z62.array(newsletterFieldSchema)
37789
- });
37790
- var newsletterHydrationSchema = z62.object({
37879
+ includePhone: z60.boolean().optional(),
37880
+ buttonLabel: z60.string().nullable().optional(),
37881
+ successMessage: z60.string().nullable().optional(),
37882
+ privacyNote: z60.string().nullable().optional(),
37883
+ tags: z60.string().nullable().optional(),
37884
+ spamProtectionEnabled: z60.boolean().optional(),
37885
+ className: z60.string().nullable().optional()
37886
+ });
37887
+ var newsletterDisplaySchema = z60.object({
37888
+ kind: z60.literal("newsletter-form"),
37889
+ className: z60.string().nullable(),
37890
+ buttonLabel: z60.string(),
37891
+ successMessage: z60.string().nullable(),
37892
+ privacyNote: z60.string().nullable(),
37893
+ fields: z60.array(newsletterFieldSchema)
37894
+ });
37895
+ var newsletterHydrationSchema = z60.object({
37791
37896
  destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
37792
- listId: z62.string().nullable().optional(),
37897
+ listId: z60.string().nullable().optional(),
37793
37898
  preset: newsletterPresetSchema,
37794
- includePhone: z62.boolean(),
37795
- tags: z62.string().nullable().optional(),
37796
- spamProtectionEnabled: z62.boolean().optional()
37899
+ includePhone: z60.boolean(),
37900
+ tags: z60.string().nullable().optional(),
37901
+ spamProtectionEnabled: z60.boolean().optional()
37797
37902
  });
37798
- var newsletterRenderSchema = z62.object({
37903
+ var newsletterRenderSchema = z60.object({
37799
37904
  display: newsletterDisplaySchema,
37800
37905
  hydration: newsletterHydrationSchema
37801
37906
  });
37802
- var newsletterIslandMetaCodec = createZodCodec(z62.object({
37803
- siteId: z62.string().optional(),
37804
- apiBaseUrl: z62.string().optional()
37907
+ var newsletterIslandMetaCodec = createZodCodec(z60.object({
37908
+ siteId: z60.string().optional(),
37909
+ apiBaseUrl: z60.string().optional()
37805
37910
  }));
37806
37911
  var newsletterIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl");
37807
37912
  function buildNewsletterDisplay(source) {
@@ -37940,23 +38045,23 @@ var newsletterSignupBlockDefinition = {
37940
38045
  };
37941
38046
 
37942
38047
  // ../blocks/src/system/blocks/team-members.ts
37943
- import { z as z63 } from "zod";
38048
+ import { z as z61 } from "zod";
37944
38049
  var ITEM_NAME2 = "member";
37945
38050
  var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
37946
38051
  message: "Team member photos must be image media"
37947
38052
  }).nullable();
37948
- var teamMemberDataSchema = z63.object({
37949
- _type: z63.literal("teamMember"),
37950
- id: z63.string(),
37951
- name: z63.string(),
37952
- role: z63.string().nullable(),
37953
- roleLabel: z63.string().nullable(),
37954
- bio: z63.string().nullable(),
37955
- summary: z63.string().nullable(),
38053
+ var teamMemberDataSchema = z61.object({
38054
+ _type: z61.literal("teamMember"),
38055
+ id: z61.string(),
38056
+ name: z61.string(),
38057
+ role: z61.string().nullable(),
38058
+ roleLabel: z61.string().nullable(),
38059
+ bio: z61.string().nullable(),
38060
+ summary: z61.string().nullable(),
37956
38061
  photo: teamMemberPhotoSchema,
37957
- profilePath: z63.string().nullable()
38062
+ profilePath: z61.string().nullable()
37958
38063
  });
37959
- var teamMembersDataSchema = z63.array(teamMemberDataSchema);
38064
+ var teamMembersDataSchema = z61.array(teamMemberDataSchema);
37960
38065
  var dynamicSourceWhen = { equals: "site_staff" };
37961
38066
  var manualSourceWhen = { equals: "site_staff", not: true };
37962
38067
  var headingNode = text(
@@ -38848,13 +38953,6 @@ var systemBlockDefinitionsRaw = [
38848
38953
  weight: "featured",
38849
38954
  bias: "clear",
38850
38955
  surfaces: heroSectionSurfaces
38851
- }),
38852
- layoutProfile({
38853
- variantKey: "splitEditorial",
38854
- family: "split",
38855
- weight: "featured",
38856
- bias: "clear",
38857
- surfaces: heroSectionSurfaces
38858
38956
  })
38859
38957
  ]
38860
38958
  })),
@@ -39098,9 +39196,8 @@ var systemBlockDefinitionsRaw = [
39098
39196
  flow: offeringsFlow,
39099
39197
  layoutProfiles: [
39100
39198
  layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
39199
+ layoutProfile({ variantKey: "calendar", family: "stack", weight: "standard" }),
39101
39200
  layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
39102
- layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
39103
- layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
39104
39201
  layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
39105
39202
  ]
39106
39203
  })),
@@ -39663,10 +39760,7 @@ function normalizeRenderStage(stage) {
39663
39760
  return stage === "preview" ? "preview" : "published";
39664
39761
  }
39665
39762
  function isRouteVisibleInStage(routeEntry, stageInput) {
39666
- const stage = normalizeRenderStage(stageInput);
39667
- if (stage === "preview" || !isRouteRecord(routeEntry)) {
39668
- return true;
39669
- }
39763
+ if (normalizeRenderStage(stageInput) === "preview" || !isRouteRecord(routeEntry)) return true;
39670
39764
  const status = routeEntry.status;
39671
39765
  return !(typeof status === "string" && status !== "published");
39672
39766
  }
@@ -39675,52 +39769,45 @@ function extractRouteHref(candidate, stageInput = "published") {
39675
39769
  const trimmed = candidate.trim();
39676
39770
  return trimmed.length > 0 ? trimmed : null;
39677
39771
  }
39678
- if (!isRouteRecord(candidate)) {
39679
- return null;
39680
- }
39681
- const stage = normalizeRenderStage(stageInput);
39682
- const fields3 = stage === "preview" ? ["draftPath", "path", "href", "url"] : ["path", "href", "url"];
39772
+ if (!isRouteRecord(candidate)) return null;
39773
+ const fields3 = normalizeRenderStage(stageInput) === "preview" ? [
39774
+ "draftPath",
39775
+ "path",
39776
+ "href",
39777
+ "url"
39778
+ ] : [
39779
+ "path",
39780
+ "href",
39781
+ "url"
39782
+ ];
39683
39783
  for (const field of fields3) {
39684
39784
  const value = candidate[field];
39685
- if (typeof value === "string" && value.trim().length > 0) {
39686
- return value.trim();
39687
- }
39785
+ if (typeof value === "string" && value.trim().length > 0) return value.trim();
39688
39786
  }
39689
39787
  return null;
39690
39788
  }
39691
39789
  function extractRouteUpdatedAt(candidate) {
39692
- if (!isRouteRecord(candidate)) {
39693
- return null;
39694
- }
39695
- const fields3 = [
39790
+ if (!isRouteRecord(candidate)) return null;
39791
+ for (const field of [
39696
39792
  "updatedAt",
39697
39793
  "updated_at",
39698
39794
  "publishedAt",
39699
39795
  "published_at",
39700
39796
  "modifiedAt",
39701
39797
  "modified_at"
39702
- ];
39703
- for (const field of fields3) {
39798
+ ]) {
39704
39799
  const value = candidate[field];
39705
- if (typeof value === "string" && value.length > 0) {
39706
- return value;
39707
- }
39800
+ if (typeof value === "string" && value.length > 0) return value;
39708
39801
  }
39709
39802
  return null;
39710
39803
  }
39711
39804
  function resolveRouteTargetForStage(routeIdValue, routes, stageInput) {
39712
39805
  const routeId = typeof routeIdValue === "string" ? routeIdValue : null;
39713
- if (!routeId || !routes) {
39714
- return null;
39715
- }
39806
+ if (!routeId || !routes) return null;
39716
39807
  const routeEntry = routes[routeId];
39717
- if (!isRouteVisibleInStage(routeEntry, stageInput)) {
39718
- return null;
39719
- }
39808
+ if (!isRouteVisibleInStage(routeEntry, stageInput)) return null;
39720
39809
  const href = extractRouteHref(routeEntry, stageInput);
39721
- if (!href) {
39722
- return null;
39723
- }
39810
+ if (!href) return null;
39724
39811
  return {
39725
39812
  routeId,
39726
39813
  href,
@@ -40756,42 +40843,45 @@ import { jsx as jsx5 } from "react/jsx-runtime";
40756
40843
  import * as React from "react";
40757
40844
  import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
40758
40845
 
40846
+ // ../theme-core/src/ResponsiveScope.tsx
40847
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
40848
+
40759
40849
  // ../theme-core/src/fonts/uploadFormat.ts
40760
40850
  var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
40761
40851
 
40762
40852
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
40763
- import { z as z64 } from "zod";
40764
- var themeBridgeConfigSchema = z64.object({
40765
- tokens: z64.record(z64.string(), z64.string()),
40766
- typography: z64.object({
40767
- headingFamily: z64.string().optional(),
40768
- bodyFamily: z64.string().optional(),
40769
- headingWeight: z64.number().optional(),
40770
- bodyWeight: z64.number().optional()
40853
+ import { z as z62 } from "zod";
40854
+ var themeBridgeConfigSchema = z62.object({
40855
+ tokens: z62.record(z62.string(), z62.string()),
40856
+ typography: z62.object({
40857
+ headingFamily: z62.string().optional(),
40858
+ bodyFamily: z62.string().optional(),
40859
+ headingWeight: z62.number().optional(),
40860
+ bodyWeight: z62.number().optional()
40771
40861
  }).optional(),
40772
- spacing: z64.enum(["comfortable", "standard", "dense"]).optional(),
40773
- corners: z64.enum(["square", "soft", "rounded", "pill"]).optional(),
40774
- shadows: z64.enum(["none", "low", "medium", "high"]).optional(),
40775
- components: z64.object({
40776
- buttons: z64.union([
40777
- z64.boolean(),
40778
- z64.object({
40779
- variants: z64.array(z64.enum(["primary", "secondary", "outline", "ghost"])).optional()
40862
+ spacing: z62.enum(["comfortable", "standard", "dense"]).optional(),
40863
+ corners: z62.enum(["square", "soft", "rounded", "pill"]).optional(),
40864
+ shadows: z62.enum(["none", "low", "medium", "high"]).optional(),
40865
+ components: z62.object({
40866
+ buttons: z62.union([
40867
+ z62.boolean(),
40868
+ z62.object({
40869
+ variants: z62.array(z62.enum(["primary", "secondary", "outline", "ghost"])).optional()
40780
40870
  })
40781
40871
  ]).optional(),
40782
- cards: z64.union([
40783
- z64.boolean(),
40784
- z64.object({
40785
- variants: z64.array(z64.enum(["default", "elevated", "outlined"])).optional()
40872
+ cards: z62.union([
40873
+ z62.boolean(),
40874
+ z62.object({
40875
+ variants: z62.array(z62.enum(["default", "elevated", "outlined"])).optional()
40786
40876
  })
40787
40877
  ]).optional(),
40788
- inputs: z64.boolean().optional()
40878
+ inputs: z62.boolean().optional()
40789
40879
  }).optional(),
40790
- overrides: z64.record(z64.string(), z64.string()).optional()
40880
+ overrides: z62.record(z62.string(), z62.string()).optional()
40791
40881
  }).passthrough();
40792
40882
 
40793
40883
  // ../theme-core/src/siteChrome.tsx
40794
- import { Fragment as Fragment2, jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
40884
+ import { Fragment as Fragment2, jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
40795
40885
 
40796
40886
  // ../blocks/src/system/runtime/bindings.ts
40797
40887
  var shouldLogWarnings = isNonProductionEnv();
@@ -41156,17 +41246,17 @@ function normalizeLoaderParams(endpoint, params, context) {
41156
41246
  function unsafeRetypeZodSchema(schema) {
41157
41247
  return schema;
41158
41248
  }
41159
- var navIdListSchema = z65.preprocess((value) => {
41249
+ var navIdListSchema = z63.preprocess((value) => {
41160
41250
  if (!Array.isArray(value)) return void 0;
41161
41251
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
41162
41252
  return filtered.length > 0 ? filtered : void 0;
41163
- }, z65.array(z65.string()).max(200).optional());
41164
- var dashboardNavVisibilityBaseSchema = z65.object({
41165
- mode: z65.enum(["augment", "restrict"]).optional(),
41253
+ }, z63.array(z63.string()).max(200).optional());
41254
+ var dashboardNavVisibilityBaseSchema = z63.object({
41255
+ mode: z63.enum(["augment", "restrict"]).optional(),
41166
41256
  allowIds: navIdListSchema,
41167
41257
  denyIds: navIdListSchema
41168
41258
  }).strip();
41169
- var dashboardNavVisibilityRolesSchema = z65.object({
41259
+ var dashboardNavVisibilityRolesSchema = z63.object({
41170
41260
  administrator: dashboardNavVisibilityBaseSchema.optional(),
41171
41261
  editor: dashboardNavVisibilityBaseSchema.optional(),
41172
41262
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -41174,63 +41264,63 @@ var dashboardNavVisibilityRolesSchema = z65.object({
41174
41264
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
41175
41265
  roles: dashboardNavVisibilityRolesSchema
41176
41266
  }).strip();
41177
- var dashboardNavigationConfigSchema = z65.object({
41267
+ var dashboardNavigationConfigSchema = z63.object({
41178
41268
  siteNav: dashboardNavVisibilitySchema.optional(),
41179
41269
  settingsNav: dashboardNavVisibilitySchema.optional()
41180
41270
  }).strip();
41181
- var dashboardConfigSchema = z65.object({
41182
- previewEditingEnabled: z65.boolean().optional(),
41271
+ var dashboardConfigSchema = z63.object({
41272
+ previewEditingEnabled: z63.boolean().optional(),
41183
41273
  navigation: dashboardNavigationConfigSchema.optional()
41184
41274
  }).strip();
41185
41275
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
41186
41276
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
41187
- var sdkLoaderEndpointSchema = z65.enum(SUPPORTED_LOADER_ENDPOINTS);
41188
- var loaderFallbackScalarSchema = z65.union([
41189
- z65.string(),
41190
- z65.number(),
41191
- z65.boolean(),
41192
- z65.null()
41277
+ var sdkLoaderEndpointSchema = z63.enum(SUPPORTED_LOADER_ENDPOINTS);
41278
+ var loaderFallbackScalarSchema = z63.union([
41279
+ z63.string(),
41280
+ z63.number(),
41281
+ z63.boolean(),
41282
+ z63.null()
41193
41283
  ]);
41194
- var loaderParamBindingSchema = z65.object({
41195
- $bind: z65.object({
41196
- from: z65.string().min(1, "Binding path is required"),
41284
+ var loaderParamBindingSchema = z63.object({
41285
+ $bind: z63.object({
41286
+ from: z63.string().min(1, "Binding path is required"),
41197
41287
  fallback: loaderFallbackScalarSchema.optional()
41198
41288
  })
41199
41289
  });
41200
- var loaderParamValueSchema = z65.union([
41201
- z65.string(),
41202
- z65.number(),
41203
- z65.boolean(),
41290
+ var loaderParamValueSchema = z63.union([
41291
+ z63.string(),
41292
+ z63.number(),
41293
+ z63.boolean(),
41204
41294
  loaderParamBindingSchema
41205
41295
  ]);
41206
- var sdkConfigLoaderSchema = z65.object({
41296
+ var sdkConfigLoaderSchema = z63.object({
41207
41297
  endpoint: sdkLoaderEndpointSchema,
41208
- params: z65.record(z65.string(), loaderParamValueSchema),
41209
- mode: z65.enum(["server", "client"]).default("server")
41298
+ params: z63.record(z63.string(), loaderParamValueSchema),
41299
+ mode: z63.enum(["server", "client"]).default("server")
41210
41300
  });
41211
- var sdkDataLoadersSchema = z65.record(z65.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
41212
- var sdkCustomBlockIdSchema = z65.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
41301
+ var sdkDataLoadersSchema = z63.record(z63.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
41302
+ var sdkCustomBlockIdSchema = z63.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
41213
41303
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
41214
41304
  }).transform((value) => value);
41215
- var sdkCustomBlockInputSchema = z65.object({
41305
+ var sdkCustomBlockInputSchema = z63.object({
41216
41306
  id: sdkCustomBlockIdSchema,
41217
- title: z65.string().min(1),
41218
- titleSource: z65.union([z65.string().min(1), z65.array(z65.string().min(1)).min(1)]).optional(),
41219
- description: z65.string().optional(),
41307
+ title: z63.string().min(1),
41308
+ titleSource: z63.union([z63.string().min(1), z63.array(z63.string().min(1)).min(1)]).optional(),
41309
+ description: z63.string().optional(),
41220
41310
  category: blockCategoryEnum,
41221
- icon: z65.string().optional(),
41222
- tags: z65.array(z65.string()).optional(),
41311
+ icon: z63.string().optional(),
41312
+ tags: z63.array(z63.string()).optional(),
41223
41313
  fields: fieldDefinitionInputSchema.array().min(1),
41224
41314
  dataLoaders: sdkDataLoadersSchema,
41225
41315
  layout: NodeSchema.optional(),
41226
- variants: z65.record(z65.string().min(1), NodeSchema).optional(),
41227
- defaultVariant: z65.string().min(1).optional(),
41228
- variantOptions: z65.record(
41229
- z65.string().min(1),
41230
- z65.object({
41231
- label: z65.string().min(1).optional(),
41232
- description: z65.string().min(1).optional(),
41233
- icon: z65.string().min(1).optional()
41316
+ variants: z63.record(z63.string().min(1), NodeSchema).optional(),
41317
+ defaultVariant: z63.string().min(1).optional(),
41318
+ variantOptions: z63.record(
41319
+ z63.string().min(1),
41320
+ z63.object({
41321
+ label: z63.string().min(1).optional(),
41322
+ description: z63.string().min(1).optional(),
41323
+ icon: z63.string().min(1).optional()
41234
41324
  })
41235
41325
  ).optional(),
41236
41326
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -41241,7 +41331,7 @@ var sdkCustomBlockInputSchema = z65.object({
41241
41331
  const exists = data.fields.some((field) => field.id === source);
41242
41332
  if (!exists) {
41243
41333
  ctx.addIssue({
41244
- code: z65.ZodIssueCode.custom,
41334
+ code: z63.ZodIssueCode.custom,
41245
41335
  message: `titleSource must reference a valid field ID (got "${source}")`,
41246
41336
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
41247
41337
  });
@@ -41250,7 +41340,7 @@ var sdkCustomBlockInputSchema = z65.object({
41250
41340
  }
41251
41341
  if (data.layout && data.variants) {
41252
41342
  ctx.addIssue({
41253
- code: z65.ZodIssueCode.custom,
41343
+ code: z63.ZodIssueCode.custom,
41254
41344
  message: "Custom block must define either `layout` or `variants`, not both",
41255
41345
  path: ["variants"]
41256
41346
  });
@@ -41259,14 +41349,14 @@ var sdkCustomBlockInputSchema = z65.object({
41259
41349
  const keys = Object.keys(data.variants);
41260
41350
  if (keys.length === 0) {
41261
41351
  ctx.addIssue({
41262
- code: z65.ZodIssueCode.custom,
41352
+ code: z63.ZodIssueCode.custom,
41263
41353
  message: "`variants` must contain at least one variant key",
41264
41354
  path: ["variants"]
41265
41355
  });
41266
41356
  }
41267
41357
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
41268
41358
  ctx.addIssue({
41269
- code: z65.ZodIssueCode.custom,
41359
+ code: z63.ZodIssueCode.custom,
41270
41360
  message: "`defaultVariant` must be a key present in `variants`",
41271
41361
  path: ["defaultVariant"]
41272
41362
  });
@@ -41275,7 +41365,7 @@ var sdkCustomBlockInputSchema = z65.object({
41275
41365
  for (const key of Object.keys(data.variantOptions)) {
41276
41366
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
41277
41367
  ctx.addIssue({
41278
- code: z65.ZodIssueCode.custom,
41368
+ code: z63.ZodIssueCode.custom,
41279
41369
  message: "`variantOptions` key must exist in `variants`",
41280
41370
  path: ["variantOptions", key]
41281
41371
  });
@@ -41284,78 +41374,78 @@ var sdkCustomBlockInputSchema = z65.object({
41284
41374
  }
41285
41375
  }
41286
41376
  });
41287
- var sdkBlockFieldExtensionInputSchema = z65.object({
41377
+ var sdkBlockFieldExtensionInputSchema = z63.object({
41288
41378
  fields: fieldDefinitionInputSchema.array().min(1)
41289
41379
  });
41290
- var sdkBlockFieldExtensionsInputSchema = z65.record(
41291
- z65.string().min(1),
41380
+ var sdkBlockFieldExtensionsInputSchema = z63.record(
41381
+ z63.string().min(1),
41292
41382
  sdkBlockFieldExtensionInputSchema
41293
41383
  );
41294
- var sdkThemePaletteSchema = z65.record(z65.string(), z65.string());
41295
- var sdkThemeConfigSchema = z65.object({
41384
+ var sdkThemePaletteSchema = z63.record(z63.string(), z63.string());
41385
+ var sdkThemeConfigSchema = z63.object({
41296
41386
  palette: sdkThemePaletteSchema
41297
41387
  });
41298
- var sdkSectionBackgroundSchema = z65.object({
41299
- id: z65.string().min(1),
41300
- label: z65.string().min(1),
41301
- token: z65.string().min(1)
41388
+ var sdkSectionBackgroundSchema = z63.object({
41389
+ id: z63.string().min(1),
41390
+ label: z63.string().min(1),
41391
+ token: z63.string().min(1)
41302
41392
  });
41303
- var sdkSectionOptionsConfigSchema = z65.object({
41304
- backgroundColor: z65.boolean().optional(),
41305
- backgroundImage: z65.boolean().optional(),
41306
- backgroundGradient: z65.boolean().optional(),
41307
- spacing: z65.union([z65.array(z65.enum(["compact", "default", "spacious"])), z65.boolean()]).optional(),
41308
- textColor: z65.boolean().optional()
41393
+ var sdkSectionOptionsConfigSchema = z63.object({
41394
+ backgroundColor: z63.boolean().optional(),
41395
+ backgroundImage: z63.boolean().optional(),
41396
+ backgroundGradient: z63.boolean().optional(),
41397
+ spacing: z63.union([z63.array(z63.enum(["compact", "default", "spacious"])), z63.boolean()]).optional(),
41398
+ textColor: z63.boolean().optional()
41309
41399
  });
41310
- var sdkContainerOptionsConfigSchema = z65.object({
41311
- maxWidth: z65.union([z65.array(z65.enum(["narrow", "default", "wide", "full"])), z65.boolean()]).optional(),
41312
- alignment: z65.union([z65.array(z65.enum(["left", "center", "right"])), z65.boolean()]).optional()
41400
+ var sdkContainerOptionsConfigSchema = z63.object({
41401
+ maxWidth: z63.union([z63.array(z63.enum(["narrow", "default", "wide", "full"])), z63.boolean()]).optional(),
41402
+ alignment: z63.union([z63.array(z63.enum(["left", "center", "right"])), z63.boolean()]).optional()
41313
41403
  });
41314
- var sdkSiteStyleConfigSchema = z65.object({
41315
- sectionBackgrounds: z65.array(sdkSectionBackgroundSchema).optional(),
41404
+ var sdkSiteStyleConfigSchema = z63.object({
41405
+ sectionBackgrounds: z63.array(sdkSectionBackgroundSchema).optional(),
41316
41406
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
41317
41407
  containerOptions: sdkContainerOptionsConfigSchema.optional()
41318
41408
  });
41319
- var sdkSiteLayoutConfigSchema = z65.object({
41320
- footerBlocks: z65.array(
41321
- z65.object({
41322
- id: z65.string().min(1).optional(),
41323
- kind: z65.string().min(1),
41324
- content: z65.record(z65.string(), z65.unknown()).optional()
41409
+ var sdkSiteLayoutConfigSchema = z63.object({
41410
+ footerBlocks: z63.array(
41411
+ z63.object({
41412
+ id: z63.string().min(1).optional(),
41413
+ kind: z63.string().min(1),
41414
+ content: z63.record(z63.string(), z63.unknown()).optional()
41325
41415
  })
41326
41416
  ).optional()
41327
41417
  });
41328
- var sdkFieldSelectOptionSchema = z65.object({
41329
- value: z65.string(),
41330
- label: z65.string()
41418
+ var sdkFieldSelectOptionSchema = z63.object({
41419
+ value: z63.string(),
41420
+ label: z63.string()
41331
41421
  });
41332
- var sdkBlockFieldConfigSchema = z65.object({
41333
- options: z65.array(sdkFieldSelectOptionSchema).optional()
41422
+ var sdkBlockFieldConfigSchema = z63.object({
41423
+ options: z63.array(sdkFieldSelectOptionSchema).optional()
41334
41424
  });
41335
- var sdkBlockFieldOptionsMapSchema = z65.record(
41336
- z65.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
41425
+ var sdkBlockFieldOptionsMapSchema = z63.record(
41426
+ z63.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
41337
41427
  message: "Block ID must be 'block.*' or 'custom.*' format"
41338
41428
  }),
41339
- z65.record(z65.string().min(1), sdkBlockFieldConfigSchema)
41429
+ z63.record(z63.string().min(1), sdkBlockFieldConfigSchema)
41340
41430
  ).optional();
41341
- var sdkContentTypeTemplateConfigSchema = z65.object({
41342
- blocks: z65.array(z65.unknown())
41431
+ var sdkContentTypeTemplateConfigSchema = z63.object({
41432
+ blocks: z63.array(z63.unknown())
41343
41433
  }).passthrough();
41344
- var sdkContentTypeOrderingConfigSchema = z65.object({
41345
- mode: z65.enum(["default", "manual"]).optional()
41434
+ var sdkContentTypeOrderingConfigSchema = z63.object({
41435
+ mode: z63.enum(["default", "manual"]).optional()
41346
41436
  }).optional();
41347
- var sdkContentTypeConfigSchema = z65.object({
41348
- key: z65.string().min(1),
41349
- fields: z65.array(z65.unknown()),
41437
+ var sdkContentTypeConfigSchema = z63.object({
41438
+ key: z63.string().min(1),
41439
+ fields: z63.array(z63.unknown()),
41350
41440
  ordering: sdkContentTypeOrderingConfigSchema,
41351
41441
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
41352
41442
  }).passthrough();
41353
- var sdkContentConfigSchema = z65.object({
41354
- contentTypes: z65.array(sdkContentTypeConfigSchema).optional(),
41355
- pages: z65.array(z65.unknown()).optional(),
41356
- entries: z65.array(z65.unknown()).optional(),
41357
- navigationMenus: z65.array(z65.unknown()).optional(),
41358
- settings: z65.unknown().optional()
41443
+ var sdkContentConfigSchema = z63.object({
41444
+ contentTypes: z63.array(sdkContentTypeConfigSchema).optional(),
41445
+ pages: z63.array(z63.unknown()).optional(),
41446
+ entries: z63.array(z63.unknown()).optional(),
41447
+ navigationMenus: z63.array(z63.unknown()).optional(),
41448
+ settings: z63.unknown().optional()
41359
41449
  }).passthrough();
41360
41450
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
41361
41451
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -41370,62 +41460,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
41370
41460
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
41371
41461
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
41372
41462
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
41373
- var sdkWorkflowIdSchema = z65.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
41463
+ var sdkWorkflowIdSchema = z63.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
41374
41464
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
41375
41465
  });
41376
- var sdkWorkflowEndpointSchema = z65.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
41377
- var sdkWorkflowManualTriggerSchema = z65.object({
41378
- type: z65.literal("manual")
41466
+ var sdkWorkflowEndpointSchema = z63.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
41467
+ var sdkWorkflowManualTriggerSchema = z63.object({
41468
+ type: z63.literal("manual")
41379
41469
  }).strict();
41380
- var sdkWorkflowTriggerFieldSchema = z65.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
41470
+ var sdkWorkflowTriggerFieldSchema = z63.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
41381
41471
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
41382
41472
  });
41383
- var sdkWorkflowFieldChangedConditionSchema = z65.object({
41473
+ var sdkWorkflowFieldChangedConditionSchema = z63.object({
41384
41474
  field: sdkWorkflowTriggerFieldSchema,
41385
- changed: z65.literal(true)
41475
+ changed: z63.literal(true)
41386
41476
  }).strict();
41387
- var sdkWorkflowFieldEmptyConditionSchema = z65.object({
41477
+ var sdkWorkflowFieldEmptyConditionSchema = z63.object({
41388
41478
  field: sdkWorkflowTriggerFieldSchema,
41389
- isEmpty: z65.boolean()
41479
+ isEmpty: z63.boolean()
41390
41480
  }).strict();
41391
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z65.object({
41392
- type: z65.literal("entry.draft.updated"),
41393
- when: z65.array(
41394
- z65.union([
41481
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z63.object({
41482
+ type: z63.literal("entry.draft.updated"),
41483
+ when: z63.array(
41484
+ z63.union([
41395
41485
  sdkWorkflowFieldChangedConditionSchema,
41396
41486
  sdkWorkflowFieldEmptyConditionSchema
41397
41487
  ])
41398
41488
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
41399
41489
  }).strict();
41400
- var sdkWorkflowTriggerSchema = z65.discriminatedUnion("type", [
41490
+ var sdkWorkflowTriggerSchema = z63.discriminatedUnion("type", [
41401
41491
  sdkWorkflowManualTriggerSchema,
41402
41492
  sdkWorkflowEntryDraftUpdatedTriggerSchema
41403
41493
  ]);
41404
- var sdkWorkflowConfirmationSchema = z65.object({
41405
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
41406
- body: z65.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
41494
+ var sdkWorkflowConfirmationSchema = z63.object({
41495
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
41496
+ body: z63.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
41407
41497
  }).strict();
41408
- var sdkWorkflowConfigSchema = z65.object({
41498
+ var sdkWorkflowConfigSchema = z63.object({
41409
41499
  id: sdkWorkflowIdSchema,
41410
- title: z65.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
41411
- description: z65.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
41412
- contentType: z65.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
41500
+ title: z63.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
41501
+ description: z63.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
41502
+ contentType: z63.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
41413
41503
  endpoint: sdkWorkflowEndpointSchema,
41414
- triggers: z65.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
41504
+ triggers: z63.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
41415
41505
  confirmation: sdkWorkflowConfirmationSchema.optional()
41416
41506
  }).strict();
41417
- var sdkWorkflowsSchema = z65.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
41507
+ var sdkWorkflowsSchema = z63.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
41418
41508
  const ids = workflows.map((workflow) => workflow.id);
41419
41509
  return ids.length === new Set(ids).size;
41420
41510
  }, { message: "Workflow IDs must be unique" }).optional();
41421
- var riverbankSiteConfigInputSchema = z65.object({
41422
- siteId: z65.string().uuid(),
41423
- previewUrl: z65.string().url().optional(),
41424
- liveUrl: z65.string().url().optional(),
41511
+ var riverbankSiteConfigInputSchema = z63.object({
41512
+ siteId: z63.string().uuid(),
41513
+ previewUrl: z63.string().url().optional(),
41514
+ liveUrl: z63.string().url().optional(),
41425
41515
  theme: sdkThemeConfigSchema.optional(),
41426
41516
  styles: sdkSiteStyleConfigSchema.optional(),
41427
41517
  layout: sdkSiteLayoutConfigSchema.optional(),
41428
- customBlocks: z65.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
41518
+ customBlocks: z63.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
41429
41519
  const ids = blocks.map((b) => b.id);
41430
41520
  return ids.length === new Set(ids).size;
41431
41521
  }, { message: "Block IDs must be unique" }).optional(),
@@ -41433,50 +41523,50 @@ var riverbankSiteConfigInputSchema = z65.object({
41433
41523
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
41434
41524
  workflows: sdkWorkflowsSchema,
41435
41525
  content: sdkContentConfigSchema.optional(),
41436
- contentDir: z65.string().optional(),
41437
- sync: z65.object({
41438
- existingEntries: z65.enum(["skip", "update"]).optional()
41526
+ contentDir: z63.string().optional(),
41527
+ sync: z63.object({
41528
+ existingEntries: z63.enum(["skip", "update"]).optional()
41439
41529
  }).optional(),
41440
- deploy: z65.object({
41441
- verifyCommand: z65.string().optional(),
41442
- prebuildOutput: z65.string().optional()
41530
+ deploy: z63.object({
41531
+ verifyCommand: z63.string().optional(),
41532
+ prebuildOutput: z63.string().optional()
41443
41533
  }).optional(),
41444
- themeSource: z65.enum(["local", "cms"]).optional(),
41445
- activeTheme: z65.string().optional(),
41446
- enablePortal: z65.boolean().optional(),
41534
+ themeSource: z63.enum(["local", "cms"]).optional(),
41535
+ activeTheme: z63.string().optional(),
41536
+ enablePortal: z63.boolean().optional(),
41447
41537
  dashboard: dashboardConfigSchema.optional()
41448
41538
  }).strict();
41449
- var pushSdkConfigBodySchema = z65.object({
41539
+ var pushSdkConfigBodySchema = z63.object({
41450
41540
  config: riverbankSiteConfigInputSchema,
41451
- forceContentTypes: z65.boolean().optional()
41541
+ forceContentTypes: z63.boolean().optional()
41452
41542
  }).strict();
41453
41543
 
41454
41544
  // ../api/src/siteOnboarding.ts
41455
- import { z as z66 } from "zod";
41545
+ import { z as z64 } from "zod";
41456
41546
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
41457
41547
  configure_appointments: {
41458
41548
  requirementId: "configure_appointments",
41459
41549
  reason: "launch_anyway"
41460
41550
  }
41461
41551
  };
41462
- var acknowledgeLaunchRequirementRequestSchema = z66.discriminatedUnion(
41552
+ var acknowledgeLaunchRequirementRequestSchema = z64.discriminatedUnion(
41463
41553
  "requirementId",
41464
41554
  [
41465
- z66.object({
41466
- requirementId: z66.literal("review_generated_site")
41555
+ z64.object({
41556
+ requirementId: z64.literal("review_generated_site")
41467
41557
  }),
41468
- z66.object({
41469
- requirementId: z66.literal(
41558
+ z64.object({
41559
+ requirementId: z64.literal(
41470
41560
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
41471
41561
  ),
41472
- overrideReason: z66.literal(
41562
+ overrideReason: z64.literal(
41473
41563
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
41474
41564
  )
41475
41565
  })
41476
41566
  ]
41477
41567
  );
41478
- var goLiveSiteRequestSchema = z66.object({
41479
- acceptExtraSiteCharge: z66.boolean().optional()
41568
+ var goLiveSiteRequestSchema = z64.object({
41569
+ acceptExtraSiteCharge: z64.boolean().optional()
41480
41570
  });
41481
41571
 
41482
41572
  // ../api/src/customerMembershipOutcomes.ts
@@ -41553,7 +41643,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
41553
41643
  ];
41554
41644
 
41555
41645
  // ../api/src/bookingVerticals.ts
41556
- import { z as z67 } from "zod";
41646
+ import { z as z65 } from "zod";
41557
41647
  var VERTICAL_IDS = [
41558
41648
  "yoga_wellness",
41559
41649
  "fitness_pt",
@@ -41718,39 +41808,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
41718
41808
  }
41719
41809
  return [...issues];
41720
41810
  }
41721
- var VerticalIdSchema = z67.string().trim().transform((value, ctx) => {
41811
+ var VerticalIdSchema = z65.string().trim().transform((value, ctx) => {
41722
41812
  const parsed = parseVerticalId(value);
41723
41813
  if (!parsed) {
41724
41814
  ctx.addIssue({
41725
- code: z67.ZodIssueCode.custom,
41815
+ code: z65.ZodIssueCode.custom,
41726
41816
  message: "Unknown booking vertical"
41727
41817
  });
41728
- return z67.NEVER;
41818
+ return z65.NEVER;
41729
41819
  }
41730
41820
  return parsed;
41731
41821
  });
41732
- var VerticalPresetIdSchema = z67.string().trim().transform((value, ctx) => {
41822
+ var VerticalPresetIdSchema = z65.string().trim().transform((value, ctx) => {
41733
41823
  const parsed = parseVerticalPresetId(value);
41734
41824
  if (!parsed) {
41735
41825
  ctx.addIssue({
41736
- code: z67.ZodIssueCode.custom,
41826
+ code: z65.ZodIssueCode.custom,
41737
41827
  message: "Unknown booking preset"
41738
41828
  });
41739
- return z67.NEVER;
41829
+ return z65.NEVER;
41740
41830
  }
41741
41831
  return parsed;
41742
41832
  });
41743
- var BookingVerticalConfigSchema = z67.object({
41833
+ var BookingVerticalConfigSchema = z65.object({
41744
41834
  verticalId: VerticalIdSchema.nullable(),
41745
- selectedPresetIds: z67.array(VerticalPresetIdSchema).max(20)
41835
+ selectedPresetIds: z65.array(VerticalPresetIdSchema).max(20)
41746
41836
  }).transform((value, ctx) => {
41747
41837
  const resolved = resolveSiteVerticalBookingConfig(value);
41748
41838
  if (resolved.kind === "invalid") {
41749
41839
  ctx.addIssue({
41750
- code: z67.ZodIssueCode.custom,
41840
+ code: z65.ZodIssueCode.custom,
41751
41841
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
41752
41842
  });
41753
- return z67.NEVER;
41843
+ return z65.NEVER;
41754
41844
  }
41755
41845
  return resolved.config;
41756
41846
  });
@@ -41777,51 +41867,51 @@ function isRecord9(value) {
41777
41867
  }
41778
41868
 
41779
41869
  // ../api/src/appointmentSetup.ts
41780
- import { z as z68 } from "zod";
41870
+ import { z as z66 } from "zod";
41781
41871
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
41782
- var appointmentSetupRefSchema = z68.discriminatedUnion("kind", [
41783
- z68.object({ kind: z68.literal("existing"), id: z68.string().min(1) }),
41784
- z68.object({ kind: z68.literal("new"), draftId: z68.string().min(1) })
41872
+ var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
41873
+ z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
41874
+ z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
41785
41875
  ]);
41786
- var appointmentSetupVenueChoiceSchema = z68.discriminatedUnion("kind", [
41787
- z68.object({ kind: z68.literal("none") }),
41788
- z68.object({ kind: z68.literal("existing"), venueId: z68.string().min(1) }),
41789
- z68.object({
41790
- kind: z68.literal("create"),
41791
- draftId: z68.string().min(1),
41792
- title: z68.string().trim().min(1),
41793
- description: z68.string().nullable(),
41794
- timezone: z68.string().trim().min(1).nullable(),
41795
- addressJson: z68.record(z68.string(), z68.unknown()),
41796
- locationJson: z68.object({ lat: z68.number(), lng: z68.number() }).nullable()
41876
+ var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
41877
+ z66.object({ kind: z66.literal("none") }),
41878
+ z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
41879
+ z66.object({
41880
+ kind: z66.literal("create"),
41881
+ draftId: z66.string().min(1),
41882
+ title: z66.string().trim().min(1),
41883
+ description: z66.string().nullable(),
41884
+ timezone: z66.string().trim().min(1).nullable(),
41885
+ addressJson: z66.record(z66.string(), z66.unknown()),
41886
+ locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
41797
41887
  })
41798
41888
  ]);
41799
- var appointmentSetupPaymentDraftSchema = z68.object({
41800
- priceType: z68.union([z68.literal("free"), z68.literal("paid")])
41801
- });
41802
- var appointmentSetupServiceAssignmentDraftSchema = z68.discriminatedUnion("kind", [
41803
- z68.object({ kind: z68.literal("all_practitioners") }),
41804
- z68.object({
41805
- kind: z68.literal("selected_practitioners"),
41806
- resourceRefs: z68.array(appointmentSetupRefSchema)
41889
+ var appointmentSetupPaymentDraftSchema = z66.object({
41890
+ priceType: z66.union([z66.literal("free"), z66.literal("paid")])
41891
+ });
41892
+ var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
41893
+ z66.object({ kind: z66.literal("all_practitioners") }),
41894
+ z66.object({
41895
+ kind: z66.literal("selected_practitioners"),
41896
+ resourceRefs: z66.array(appointmentSetupRefSchema)
41807
41897
  })
41808
41898
  ]);
41809
- var appointmentSetupServiceDraftSchema = z68.object({
41899
+ var appointmentSetupServiceDraftSchema = z66.object({
41810
41900
  ref: appointmentSetupRefSchema,
41811
- title: z68.string().trim().min(1),
41812
- description: z68.string().nullable(),
41813
- durationMinutes: z68.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
41814
- prepMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
41815
- cleanupMinutes: z68.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
41816
- priceAmount: z68.number().int().nonnegative().nullable(),
41817
- isActive: z68.boolean(),
41818
- locationType: z68.union([
41819
- z68.literal("virtual"),
41820
- z68.literal("in_person"),
41821
- z68.literal("hybrid")
41901
+ title: z66.string().trim().min(1),
41902
+ description: z66.string().nullable(),
41903
+ durationMinutes: z66.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
41904
+ prepMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
41905
+ cleanupMinutes: z66.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
41906
+ priceAmount: z66.number().int().nonnegative().nullable(),
41907
+ isActive: z66.boolean(),
41908
+ locationType: z66.union([
41909
+ z66.literal("virtual"),
41910
+ z66.literal("in_person"),
41911
+ z66.literal("hybrid")
41822
41912
  ]),
41823
41913
  venue: appointmentSetupVenueChoiceSchema,
41824
- timezone: z68.string().trim().min(1).nullable(),
41914
+ timezone: z66.string().trim().min(1).nullable(),
41825
41915
  payment: appointmentSetupPaymentDraftSchema,
41826
41916
  assignment: appointmentSetupServiceAssignmentDraftSchema
41827
41917
  }).superRefine((service, ctx) => {
@@ -41840,49 +41930,49 @@ var appointmentSetupServiceDraftSchema = z68.object({
41840
41930
  });
41841
41931
  }
41842
41932
  });
41843
- var appointmentSetupPractitionerDraftSchema = z68.object({
41933
+ var appointmentSetupPractitionerDraftSchema = z66.object({
41844
41934
  ref: appointmentSetupRefSchema,
41845
- displayName: z68.string().trim().min(1),
41846
- bio: z68.string().nullable(),
41847
- timezone: z68.string().trim().min(1),
41848
- colorHex: z68.string().nullable()
41849
- });
41850
- var appointmentSetupWeeklyWindowDraftSchema = z68.object({
41851
- weekday: z68.number().int().min(0).max(6),
41852
- startTime: z68.string(),
41853
- endTime: z68.string()
41854
- });
41855
- var appointmentSetupStartTimePolicyDraftSchema = z68.discriminatedUnion("kind", [
41856
- z68.object({ kind: z68.literal("automatic_spacing") }),
41857
- z68.object({
41858
- kind: z68.literal("regular_interval"),
41859
- intervalMinutes: z68.union([
41860
- z68.literal(10),
41861
- z68.literal(15),
41862
- z68.literal(20),
41863
- z68.literal(30),
41864
- z68.literal(45),
41865
- z68.literal(60)
41935
+ displayName: z66.string().trim().min(1),
41936
+ bio: z66.string().nullable(),
41937
+ timezone: z66.string().trim().min(1),
41938
+ colorHex: z66.string().nullable()
41939
+ });
41940
+ var appointmentSetupWeeklyWindowDraftSchema = z66.object({
41941
+ weekday: z66.number().int().min(0).max(6),
41942
+ startTime: z66.string(),
41943
+ endTime: z66.string()
41944
+ });
41945
+ var appointmentSetupStartTimePolicyDraftSchema = z66.discriminatedUnion("kind", [
41946
+ z66.object({ kind: z66.literal("automatic_spacing") }),
41947
+ z66.object({
41948
+ kind: z66.literal("regular_interval"),
41949
+ intervalMinutes: z66.union([
41950
+ z66.literal(10),
41951
+ z66.literal(15),
41952
+ z66.literal(20),
41953
+ z66.literal(30),
41954
+ z66.literal(45),
41955
+ z66.literal(60)
41866
41956
  ])
41867
41957
  })
41868
41958
  ]);
41869
- var appointmentSetupAvailabilityDraftSchema = z68.object({
41870
- kind: z68.literal("weekly_windows"),
41959
+ var appointmentSetupAvailabilityDraftSchema = z66.object({
41960
+ kind: z66.literal("weekly_windows"),
41871
41961
  resourceRef: appointmentSetupRefSchema,
41872
41962
  serviceRef: appointmentSetupRefSchema.nullable(),
41873
- windows: z68.array(appointmentSetupWeeklyWindowDraftSchema),
41963
+ windows: z66.array(appointmentSetupWeeklyWindowDraftSchema),
41874
41964
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
41875
41965
  });
41876
41966
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
41877
41967
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
41878
- var appointmentSetupBookingNoticeSchema = z68.object({
41879
- minLeadMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
41880
- maxBookingNoticeMinutes: z68.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
41881
- });
41882
- var applyAppointmentSetupRequestSchema = z68.object({
41883
- services: z68.array(appointmentSetupServiceDraftSchema),
41884
- practitioners: z68.array(appointmentSetupPractitionerDraftSchema),
41885
- availability: z68.array(appointmentSetupAvailabilityDraftSchema),
41968
+ var appointmentSetupBookingNoticeSchema = z66.object({
41969
+ minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
41970
+ maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
41971
+ });
41972
+ var applyAppointmentSetupRequestSchema = z66.object({
41973
+ services: z66.array(appointmentSetupServiceDraftSchema),
41974
+ practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
41975
+ availability: z66.array(appointmentSetupAvailabilityDraftSchema),
41886
41976
  bookingNotice: appointmentSetupBookingNoticeSchema
41887
41977
  });
41888
41978
 
@@ -41915,24 +42005,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
41915
42005
  ];
41916
42006
 
41917
42007
  // ../api/src/siteBanner.ts
41918
- import { z as z69 } from "zod";
42008
+ import { z as z67 } from "zod";
41919
42009
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
41920
42010
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
41921
42011
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
41922
42012
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
41923
- var siteBannerScopeSchema = z69.enum(SITE_BANNER_SCOPE_VALUES);
41924
- var siteBannerToneSchema = z69.enum(SITE_BANNER_TONE_VALUES);
41925
- var siteBannerBodySchema = z69.unknown().transform(unwrapRichTextValue);
41926
- var siteBannerCtaSchema = z69.object({
41927
- label: z69.string().trim().min(1),
42013
+ var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
42014
+ var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
42015
+ var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
42016
+ var siteBannerCtaSchema = z67.object({
42017
+ label: z67.string().trim().min(1),
41928
42018
  link: linkPayloadSchema
41929
42019
  });
41930
- var siteBannerSettingsSchema = z69.discriminatedUnion("enabled", [
41931
- z69.object({
41932
- enabled: z69.literal(false)
42020
+ var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
42021
+ z67.object({
42022
+ enabled: z67.literal(false)
41933
42023
  }),
41934
- z69.object({
41935
- enabled: z69.literal(true),
42024
+ z67.object({
42025
+ enabled: z67.literal(true),
41936
42026
  scope: siteBannerScopeSchema,
41937
42027
  tone: siteBannerToneSchema,
41938
42028
  body: siteBannerBodySchema,
@@ -41946,7 +42036,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
41946
42036
  const analysis = analyzeSiteBannerBody(value.body);
41947
42037
  for (const issue of analysis.issues) {
41948
42038
  ctx.addIssue({
41949
- code: z69.ZodIssueCode.custom,
42039
+ code: z67.ZodIssueCode.custom,
41950
42040
  path: ["body"],
41951
42041
  message: siteBannerBodyIssueMessage(issue)
41952
42042
  });
@@ -42173,71 +42263,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
42173
42263
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
42174
42264
 
42175
42265
  // ../api/src/aiPlayground.ts
42176
- import { z as z70 } from "zod";
42177
- var Rfc6902PatchOp = z70.discriminatedUnion("op", [
42266
+ import { z as z68 } from "zod";
42267
+ var Rfc6902PatchOp = z68.discriminatedUnion("op", [
42178
42268
  // Standard RFC-6902 operations
42179
- z70.object({
42180
- op: z70.literal("add"),
42181
- path: z70.string(),
42182
- value: z70.unknown()
42269
+ z68.object({
42270
+ op: z68.literal("add"),
42271
+ path: z68.string(),
42272
+ value: z68.unknown()
42183
42273
  }),
42184
- z70.object({
42185
- op: z70.literal("remove"),
42186
- path: z70.string()
42274
+ z68.object({
42275
+ op: z68.literal("remove"),
42276
+ path: z68.string()
42187
42277
  }),
42188
- z70.object({
42189
- op: z70.literal("replace"),
42190
- path: z70.string(),
42191
- value: z70.unknown()
42278
+ z68.object({
42279
+ op: z68.literal("replace"),
42280
+ path: z68.string(),
42281
+ value: z68.unknown()
42192
42282
  }),
42193
- z70.object({
42194
- op: z70.literal("move"),
42195
- from: z70.string(),
42196
- path: z70.string()
42283
+ z68.object({
42284
+ op: z68.literal("move"),
42285
+ from: z68.string(),
42286
+ path: z68.string()
42197
42287
  }),
42198
- z70.object({
42199
- op: z70.literal("copy"),
42200
- from: z70.string(),
42201
- path: z70.string()
42288
+ z68.object({
42289
+ op: z68.literal("copy"),
42290
+ from: z68.string(),
42291
+ path: z68.string()
42202
42292
  }),
42203
42293
  // Block-level operations (Phase 2)
42204
- z70.object({
42205
- op: z70.literal("add_block"),
42206
- blockKind: z70.string(),
42207
- afterBlockId: z70.string().nullable(),
42208
- content: z70.record(z70.string(), z70.unknown()),
42209
- rationale: z70.string()
42294
+ z68.object({
42295
+ op: z68.literal("add_block"),
42296
+ blockKind: z68.string(),
42297
+ afterBlockId: z68.string().nullable(),
42298
+ content: z68.record(z68.string(), z68.unknown()),
42299
+ rationale: z68.string()
42210
42300
  }),
42211
- z70.object({
42212
- op: z70.literal("delete_block"),
42213
- blockId: z70.string(),
42214
- rationale: z70.string()
42301
+ z68.object({
42302
+ op: z68.literal("delete_block"),
42303
+ blockId: z68.string(),
42304
+ rationale: z68.string()
42215
42305
  }),
42216
- z70.object({
42217
- op: z70.literal("reorder_block"),
42218
- blockId: z70.string(),
42219
- afterBlockId: z70.string().nullable(),
42220
- rationale: z70.string()
42306
+ z68.object({
42307
+ op: z68.literal("reorder_block"),
42308
+ blockId: z68.string(),
42309
+ afterBlockId: z68.string().nullable(),
42310
+ rationale: z68.string()
42221
42311
  })
42222
42312
  ]);
42223
- var PlaygroundProposeRequest = z70.object({
42224
- request: z70.string().min(1).max(2e3)
42313
+ var PlaygroundProposeRequest = z68.object({
42314
+ request: z68.string().min(1).max(2e3)
42225
42315
  });
42226
- var MultiPagePatchEnvelope = z70.object({
42227
- pageId: z70.string(),
42228
- blockId: z70.string().optional(),
42316
+ var MultiPagePatchEnvelope = z68.object({
42317
+ pageId: z68.string(),
42318
+ blockId: z68.string().optional(),
42229
42319
  // Not present for page-level ops
42230
- blockKind: z70.string().optional(),
42231
- blockPurpose: z70.string().optional().nullable(),
42232
- ops: z70.array(Rfc6902PatchOp),
42233
- rationale: z70.string(),
42234
- currentContent: z70.record(z70.string(), z70.unknown()).optional()
42235
- });
42236
- var MultiPageUpdateResponse = z70.object({
42237
- patches: z70.array(MultiPagePatchEnvelope),
42238
- assistantMessage: z70.string(),
42239
- pagesModified: z70.number(),
42240
- toolCallsUsed: z70.number()
42320
+ blockKind: z68.string().optional(),
42321
+ blockPurpose: z68.string().optional().nullable(),
42322
+ ops: z68.array(Rfc6902PatchOp),
42323
+ rationale: z68.string(),
42324
+ currentContent: z68.record(z68.string(), z68.unknown()).optional()
42325
+ });
42326
+ var MultiPageUpdateResponse = z68.object({
42327
+ patches: z68.array(MultiPagePatchEnvelope),
42328
+ assistantMessage: z68.string(),
42329
+ pagesModified: z68.number(),
42330
+ toolCallsUsed: z68.number()
42241
42331
  });
42242
42332
 
42243
42333
  // src/data/prefetchBlockData.ts