@riverbankcms/sdk 0.124.0 → 0.126.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 (130) hide show
  1. package/README.md +3 -1
  2. package/dist/{PreviewEditorSidebar-DBmAJJkQ.mjs → PreviewEditorSidebar-DcYJxTgc.mjs} +67 -266
  3. package/dist/{PreviewEditorUI-CfGaz9cY.mjs → PreviewEditorUI-Ctt1yTJr.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BH-3-jSj.mjs → PreviewQueryProvider-DgFDIwvK.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BW9Z8j8T.mjs → SdkPreviewModeRuntime-CvW1vdQ4.mjs} +38 -30
  6. package/dist/{SiteChromeCustomizeContext-2z8moxYf.mjs → SiteChromeCustomizeContext-C87qlKWw.mjs} +493 -1378
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1354 -202
  8. package/dist/_dts/api/src/accessAdmin.d.ts +2 -14
  9. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +0 -2
  11. package/dist/_dts/api/src/endpoints.d.ts +0 -7
  12. package/dist/_dts/api/src/sdk-event-upsert.d.ts +42 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +11 -9
  14. package/dist/_dts/api/src/siteAccessAdmin.d.ts +23 -0
  15. package/dist/_dts/api/src/siteOperations.d.ts +18 -1
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -14
  17. package/dist/_dts/billing/src/plans/types.d.ts +24 -5
  18. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  20. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  21. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +2 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +3 -1
  23. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +15 -2
  25. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +331 -19
  26. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +1 -2
  27. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -3
  28. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -2
  29. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -12
  30. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -13
  31. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -100
  32. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -4
  33. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -15
  34. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +11 -21
  35. package/dist/_dts/sdk/src/cli/commands/event.d.ts +2 -2
  36. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +12 -0
  37. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +6 -0
  38. package/dist/_dts/sdk/src/cli/commands/style.d.ts +1 -1
  39. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +5 -0
  40. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +17 -0
  41. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -10
  42. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +1 -1
  43. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +24 -0
  44. package/dist/_dts/sdk/src/client/management/http.d.ts +1 -1
  45. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -28
  46. package/dist/_dts/sdk/src/config/index.d.ts +1 -1
  47. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -20
  48. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  49. package/dist/_dts/sdk/src/version.d.ts +1 -1
  50. package/dist/_dts/site-commands/src/commandContract.d.ts +33 -5
  51. package/dist/_dts/site-commands/src/commandDomain.d.ts +2 -2
  52. package/dist/_dts/site-commands/src/commands.d.ts +38 -9
  53. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +28 -1
  54. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +4 -4
  55. package/dist/_dts/theme-core/src/palette/concretePalette.d.ts +20 -0
  56. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -17
  57. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -6
  58. package/dist/_dts/theme-core/src/palette/schema.d.ts +39 -0
  59. package/dist/_dts/theme-core/src/schema.d.ts +38 -26
  60. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -6
  61. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -6
  62. package/dist/cli/index.mjs +631 -525
  63. package/dist/cli/init-docs/content/cli-reference.md +6 -3
  64. package/dist/cli/init-docs/content/content-management.md +24 -13
  65. package/dist/client/{DiscountCodeDisclosure-DxvjKvck.mjs → DiscountCodeDisclosure-DS0AuFWW.mjs} +1 -1
  66. package/dist/client/{EventCombined.client-BydMGc4c.mjs → EventCombined.client-DtMxLr7q.mjs} +2 -2
  67. package/dist/client/{EventListing.client-vpzhhysN.mjs → EventListing.client-BdLSRNg1.mjs} +2 -2
  68. package/dist/client/{LeafletStaticMap-CB07rpf8.mjs → LeafletStaticMap-BrpC6vsT.mjs} +1 -1
  69. package/dist/client/{MagicLinkForm-BzyRJ8VF.mjs → MagicLinkForm-Bt3IuLMy.mjs} +1 -1
  70. package/dist/client/{StepIndicator-CTcGf8Be.mjs → StepIndicator-CBYPFVoy.mjs} +2 -2
  71. package/dist/client/{accordion-B-DUDLRD.mjs → accordion-BqqwPJWM.mjs} +1 -1
  72. package/dist/client/{bookingForm-DSbClLcZ.mjs → bookingForm-SneP3yxC.mjs} +5 -6
  73. package/dist/client/bookings.mjs +190 -24
  74. package/dist/client/{carousel-B6Ccdx8M.mjs → carousel-BTIR9L3I.mjs} +1 -1
  75. package/dist/client/{cart-BZh8G8wM.mjs → cart-bqiqd8SX.mjs} +3 -3
  76. package/dist/client/{checkout-o6zaC-kM.mjs → checkout-WbTFV5v4.mjs} +3 -3
  77. package/dist/client/client.mjs +175 -223
  78. package/dist/client/{courseRegistration-Cf11pNDs.mjs → courseRegistration-BcemLAdN.mjs} +6 -7
  79. package/dist/client/{eventCalendar-BeXrdsSE.mjs → eventCalendar-CsxIw0V_.mjs} +4 -4
  80. package/dist/client/{eventCombined-DA76PZgG.mjs → eventCombined-B6XMoHfa.mjs} +2 -2
  81. package/dist/client/{eventDetails-BLxg0rok.mjs → eventDetails-BJaoPPfo.mjs} +10 -5
  82. package/dist/client/{eventListing-tO9LheBX.mjs → eventListing-DgwdYHRT.mjs} +2 -2
  83. package/dist/client/{eventRegistration-Cnene9D9.mjs → eventRegistration-C0O3folu.mjs} +30 -22
  84. package/dist/client/{form-DZf72CHB.mjs → form-Bk9txGFt.mjs} +1 -1
  85. package/dist/client/{headerSection-Hioja5Cr.mjs → headerSection-yIBt0yTv.mjs} +2 -2
  86. package/dist/client/hooks.mjs +54 -102
  87. package/dist/client/{locationMap-DwhUXEix.mjs → locationMap-C-3KIpv-.mjs} +2 -2
  88. package/dist/client/{newsletterForm-C350bEQf.mjs → newsletterForm-CzB8g8h2.mjs} +1 -1
  89. package/dist/client/{pricing-BYWN_ATa.mjs → pricing-C1QeDes_.mjs} +1 -1
  90. package/dist/client/{productDetail-CCqCyXgU.mjs → productDetail-w7SBp5uc.mjs} +3 -3
  91. package/dist/client/{productList-BAiNJrOU.mjs → productList-D0tGKHGf.mjs} +3 -3
  92. package/dist/client/{propsDecoder-DeunRj6m.mjs → propsDecoder-Bcin2DB3.mjs} +172 -11
  93. package/dist/client/rendering/client.mjs +322 -363
  94. package/dist/client/rendering/islands.mjs +18 -18
  95. package/dist/client/rendering.mjs +231 -272
  96. package/dist/client/{useDiscountCodeUi-I-92-x2V.mjs → scrollToBlock-h-o_STf_.mjs} +18 -2
  97. package/dist/client/{shop-DUmCdBtw.mjs → shop-BGzmL8O_.mjs} +5 -6
  98. package/dist/client/{shop-commerce-CY27mEUr.mjs → shop-commerce-lX8QxjX-.mjs} +4 -4
  99. package/dist/client/{shop-commerce-store-ChXPbWfa.mjs → shop-commerce-store-CEurARtu.mjs} +1 -1
  100. package/dist/client/{shopShared-q0kin1cv.mjs → shopShared-DXxH8xxw.mjs} +2 -2
  101. package/dist/client/{useEventFilters-DlcVluZh.mjs → useEventFilters-B591g9vd.mjs} +2 -2
  102. package/dist/client/{usePolling-Bz7GFV_a.mjs → usePolling-BvnChV4m.mjs} +2 -2
  103. package/dist/preview-next/before-render.mjs +0 -7
  104. package/dist/preview-next/client/runtime.mjs +4 -4
  105. package/dist/preview-next/middleware.mjs +0 -7
  106. package/dist/{previewAuthStore-CJX21dGi.mjs → previewAuthStore-Dev9CdG9.mjs} +0 -7
  107. package/dist/{sdk-runtime-OnPM8Z69.mjs → sdk-runtime-M__i3Jce.mjs} +2 -2
  108. package/dist/{separator-CPtfzHqA.mjs → separator-VSlnI9bc.mjs} +1 -1
  109. package/dist/server/components.mjs +99 -141
  110. package/dist/server/config-validation.mjs +54 -102
  111. package/dist/server/config.mjs +54 -102
  112. package/dist/server/data.mjs +54 -102
  113. package/dist/server/index.mjs +1 -8
  114. package/dist/server/next.mjs +103 -152
  115. package/dist/server/page-converter.mjs +54 -102
  116. package/dist/server/prebuild.mjs +1 -1
  117. package/dist/server/rendering/server.mjs +62 -104
  118. package/dist/server/rendering.mjs +100 -142
  119. package/dist/server/routing.mjs +75 -147
  120. package/dist/server/server.mjs +55 -110
  121. package/dist/server/theme-bridge.mjs +172 -162
  122. package/dist/server/theme.mjs +167 -11
  123. package/package.json +1 -1
  124. package/dist/_dts/theme-core/src/palette/editorState.d.ts +0 -75
  125. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +0 -64
  126. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +0 -81
  127. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +0 -75
  128. package/dist/_dts/theme-core/src/palette/selection.d.ts +0 -74
  129. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +0 -34
  130. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
@@ -159,7 +159,7 @@ function defineOwnDataProperty(target, key, value) {
159
159
  }
160
160
  //#endregion
161
161
  //#region src/data/dataLoaderContext.ts
162
- function assertNever$26(value) {
162
+ function assertNever$25(value) {
163
163
  throw new Error(`Unhandled data loader render target: ${String(value)}`);
164
164
  }
165
165
  function getDataLoaderOwnerPageId(target) {
@@ -167,7 +167,7 @@ function getDataLoaderOwnerPageId(target) {
167
167
  case "page": return target.pageId;
168
168
  case "entry-template":
169
169
  case "page-surface-template": return target.templateId;
170
- default: return assertNever$26(target);
170
+ default: return assertNever$25(target);
171
171
  }
172
172
  }
173
173
  function normalizeDataLoaderSearchParams(input) {
@@ -6764,13 +6764,6 @@ const API_ENDPOINTS$1 = {
6764
6764
  auth: "user",
6765
6765
  responseKind: "json"
6766
6766
  },
6767
- listSiteThemePalettes: {
6768
- path: "/sites/{siteId}/theme/palettes",
6769
- method: "GET",
6770
- auth: "user",
6771
- errors: [],
6772
- responseKind: "json"
6773
- },
6774
6767
  createSiteFontUploadUrl: {
6775
6768
  path: "/sites/{siteId}/fonts/upload-url",
6776
6769
  method: "POST",
@@ -8011,7 +8004,7 @@ const parseEventOfferingId = (value) => parseUuidBrand$1(value, unsafeAsEventOff
8011
8004
  const parseEventSeriesId = (value) => parseUuidBrand$1(value, unsafeAsEventSeriesId);
8012
8005
  //#endregion
8013
8006
  //#region ../core/src/assert-never.ts
8014
- function assertNever$25(value, message = "Unexpected variant") {
8007
+ function assertNever$24(value, message = "Unexpected variant") {
8015
8008
  throw new Error(`${message}: ${String(value)}`);
8016
8009
  }
8017
8010
  const CURRENCY_LOCALE_BY_CODE = {
@@ -8102,7 +8095,7 @@ function formatCoursePriceDisplayLabel(display, options) {
8102
8095
  case "exact": return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
8103
8096
  case "from": return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
8104
8097
  case "range": return `Course (${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)})`;
8105
- default: return assertNever$25(display);
8098
+ default: return assertNever$24(display);
8106
8099
  }
8107
8100
  }
8108
8101
  /**
@@ -8122,7 +8115,7 @@ function formatBookingPriceDisplay(display, options = {}) {
8122
8115
  case "unavailable": return "Pricing unavailable";
8123
8116
  case "external": return display.label;
8124
8117
  case "course": return formatCoursePriceDisplayLabel(display.display, options);
8125
- default: return assertNever$25(display);
8118
+ default: return assertNever$24(display);
8126
8119
  }
8127
8120
  }
8128
8121
  /** Render an event's price directly from its pricing value. */
@@ -8625,7 +8618,7 @@ function navigationAuthoringLinkToCommandLink(link) {
8625
8618
  badge: link.badge,
8626
8619
  label: link.label
8627
8620
  };
8628
- default: return assertNever$25(link);
8621
+ default: return assertNever$24(link);
8629
8622
  }
8630
8623
  }
8631
8624
  function portalLabelsForCommand(labels) {
@@ -8668,7 +8661,7 @@ function navigationReadLinkToLocalLink(item) {
8668
8661
  badge: link.badge,
8669
8662
  label: link.label
8670
8663
  };
8671
- default: return assertNever$25(link);
8664
+ default: return assertNever$24(link);
8672
8665
  }
8673
8666
  }
8674
8667
  function internalNavigationLinkToLocalLink(item) {
@@ -11789,7 +11782,7 @@ const ALLOWED_URL_PROTOCOLS = ["http:", "https:"];
11789
11782
  const DATE_PATTERN = /^(?<year>[1-9]\d{3})-(?<month>\d{2})-(?<day>\d{2})$/;
11790
11783
  const TIME_PATTERN = /^(?<hours>[01]\d|2[0-3]):(?<minutes>[0-5]\d)$/;
11791
11784
  const DATETIME_PATTERN = /^(?<date>[1-9]\d{3}-\d{2}-\d{2})T(?<time>(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d)(?:\.\d+)?(?<offset>Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
11792
- function assertNever$17(value) {
11785
+ function assertNever$16(value) {
11793
11786
  throw new Error(`Unhandled field validation variant: ${JSON.stringify(value)}`);
11794
11787
  }
11795
11788
  function validationContext(options = {}) {
@@ -11842,7 +11835,7 @@ function fieldIssueToMessage(issue) {
11842
11835
  case "invalidMedia": return `${issue.label} must be a media object with an identifier`;
11843
11836
  case "invalidLink": return `${issue.label} must be a valid link`;
11844
11837
  case "invalidReference": return `${issue.label} must reference a valid item`;
11845
- default: return assertNever$17(issue);
11838
+ default: return assertNever$16(issue);
11846
11839
  }
11847
11840
  }
11848
11841
  function pluralize(label, count) {
@@ -11962,7 +11955,7 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
11962
11955
  case "presetOrCustom":
11963
11956
  case "contentTypeSelect":
11964
11957
  case "entryPicker": return makePlan("passthrough", "unknown", field, path, false, []);
11965
- default: return assertNever$17(field);
11958
+ default: return assertNever$16(field);
11966
11959
  }
11967
11960
  }
11968
11961
  function deriveFieldValidationPlans(fields, parentPath = []) {
@@ -12037,7 +12030,7 @@ function resolveSelectConstraintSource(field) {
12037
12030
  kind: "runtime",
12038
12031
  source: source.kind
12039
12032
  };
12040
- default: return assertNever$17(source);
12033
+ default: return assertNever$16(source);
12041
12034
  }
12042
12035
  }
12043
12036
  function normalizeStoredContentValues(plans, content, options = {}) {
@@ -12056,7 +12049,7 @@ function allGroupChildPlans(plan) {
12056
12049
  switch (plan.childSelection.kind) {
12057
12050
  case "all": return plan.childSelection.fields;
12058
12051
  case "discriminatedTabs": return plan.childSelection.tabs.flatMap((tab) => tab.fields);
12059
- default: return assertNever$17(plan.childSelection);
12052
+ default: return assertNever$16(plan.childSelection);
12060
12053
  }
12061
12054
  }
12062
12055
  function selectedGroupChildPlans(plan, value) {
@@ -12089,7 +12082,7 @@ function canonicalizeFieldValueForWrite(plan, value) {
12089
12082
  case "link":
12090
12083
  case "select":
12091
12084
  case "passthrough": return value;
12092
- default: return assertNever$17(plan);
12085
+ default: return assertNever$16(plan);
12093
12086
  }
12094
12087
  }
12095
12088
  function canonicalizeObjectForWrite(plans, value) {
@@ -12115,7 +12108,7 @@ function normalizeStoredFieldValueWithContext(plan, value, ctx) {
12115
12108
  case "link":
12116
12109
  case "select":
12117
12110
  case "passthrough": return normalizeFieldValue(plan, value, ctx);
12118
- default: return assertNever$17(plan);
12111
+ default: return assertNever$16(plan);
12119
12112
  }
12120
12113
  }
12121
12114
  function normalizeStoredObjectChildren(children, value, ctx) {
@@ -12152,7 +12145,7 @@ function normalizeFieldValue(plan, value, ctx) {
12152
12145
  case "select":
12153
12146
  case "passthrough": return value;
12154
12147
  case "media": return value;
12155
- default: return assertNever$17(plan);
12148
+ default: return assertNever$16(plan);
12156
12149
  }
12157
12150
  }
12158
12151
  function normalizeObjectChildren(children, value, ctx) {
@@ -12211,7 +12204,7 @@ function validateNormalizedFieldValue(plan, value, ctx) {
12211
12204
  case "repeater": return validateRepeaterPlan(plan, value, ctx);
12212
12205
  case "group": return validateGroupPlan(plan, value, ctx);
12213
12206
  case "passthrough": return [];
12214
- default: return assertNever$17(plan);
12207
+ default: return assertNever$16(plan);
12215
12208
  }
12216
12209
  }
12217
12210
  function shouldRequireValue(plan, value, ctx) {
@@ -12253,7 +12246,7 @@ function validateStringConstraint(plan, constraint, value) {
12253
12246
  case "timeFormat": return typeof value === "string" && isValidTimeString(value) ? [] : [issue(plan, "invalidTime")];
12254
12247
  case "datetimeFormat": return typeof value === "string" && isValidDateTimeInstantString(value) ? [] : [issue(plan, "invalidDateTime")];
12255
12248
  case "slugFormat": return typeof value === "string" && SLUG_PATTERN.test(value) ? [] : [issue(plan, "invalidSlug")];
12256
- default: return assertNever$17(constraint);
12249
+ default: return assertNever$16(constraint);
12257
12250
  }
12258
12251
  }
12259
12252
  function isValidIconPickerValue(value) {
@@ -12272,7 +12265,7 @@ function validateNumberConstraint(plan, constraint, value) {
12272
12265
  case "numberType": return [];
12273
12266
  case "numberMin": return value < constraint.minimum ? [issue(plan, "tooSmall", { minimum: constraint.minimum })] : [];
12274
12267
  case "numberMax": return value > constraint.maximum ? [issue(plan, "tooLarge", { maximum: constraint.maximum })] : [];
12275
- default: return assertNever$17(constraint);
12268
+ default: return assertNever$16(constraint);
12276
12269
  }
12277
12270
  }
12278
12271
  function validateSelectPlan(plan, value) {
@@ -12294,7 +12287,7 @@ function validateRepeaterPlan(plan, value, ctx) {
12294
12287
  maximum: constraint.maximum,
12295
12288
  itemLabel: "item"
12296
12289
  })] : [];
12297
- default: return assertNever$17(constraint);
12290
+ default: return assertNever$16(constraint);
12298
12291
  }
12299
12292
  }), ...value.flatMap((item, index) => validateRepeaterItem(plan, item, index, ctx))];
12300
12293
  }
@@ -12385,7 +12378,7 @@ function rebaseFieldPlanPath(plan, fromPrefix, toPrefix) {
12385
12378
  ...plan,
12386
12379
  path
12387
12380
  };
12388
- default: return assertNever$17(plan);
12381
+ default: return assertNever$16(plan);
12389
12382
  }
12390
12383
  }
12391
12384
  function validateInlineTextPlan(plan, value) {
@@ -12432,7 +12425,7 @@ function fieldPlanToObjectPropertyZod(plan, options = {}) {
12432
12425
  switch (presence.kind) {
12433
12426
  case "required": return schema;
12434
12427
  case "optional": return schema.optional();
12435
- default: return assertNever$17(presence);
12428
+ default: return assertNever$16(presence);
12436
12429
  }
12437
12430
  }
12438
12431
  function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
@@ -12502,7 +12495,7 @@ function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
12502
12495
  message
12503
12496
  });
12504
12497
  return;
12505
- default: assertNever$17(validationIssue);
12498
+ default: assertNever$16(validationIssue);
12506
12499
  }
12507
12500
  }
12508
12501
  function relativeZodIssuePath(path, rootPath) {
@@ -12533,7 +12526,7 @@ function findNestedFieldValidationPlan(plan, path) {
12533
12526
  case "link":
12534
12527
  case "select":
12535
12528
  case "passthrough": return null;
12536
- default: return assertNever$17(plan);
12529
+ default: return assertNever$16(plan);
12537
12530
  }
12538
12531
  }
12539
12532
  function sameFieldPath(left, right) {
@@ -12557,7 +12550,7 @@ function validateExplicitNullForPushPlan(plan, value, ctx) {
12557
12550
  case "link":
12558
12551
  case "select":
12559
12552
  case "passthrough": return [];
12560
- default: return assertNever$17(plan);
12553
+ default: return assertNever$16(plan);
12561
12554
  }
12562
12555
  }
12563
12556
  function validateExplicitNullsForPushRepeater(plan, value, ctx) {
@@ -12977,7 +12970,7 @@ function asDesignSystemTemplateId(value) {
12977
12970
  function makeBoundaryId(previousBlockId, nextBlockId) {
12978
12971
  return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
12979
12972
  }
12980
- function assertNever$16(value, message = "Unhandled Theme V2 variant") {
12973
+ function assertNever$15(value, message = "Unhandled Theme V2 variant") {
12981
12974
  throw new Error(`${message}: ${String(value)}`);
12982
12975
  }
12983
12976
  function brandNonEmptyString(value, label) {
@@ -15239,6 +15232,21 @@ const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isTh
15239
15232
  //#region ../theme-core/src/palette/colors.ts
15240
15233
  const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
15241
15234
  const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
15235
+ const THEME_PALETTE_COLOR_ORDER = [
15236
+ "primary",
15237
+ "secondary",
15238
+ "accent",
15239
+ "success",
15240
+ "warning",
15241
+ "destructive",
15242
+ "background",
15243
+ "surface",
15244
+ "surfaceAlt",
15245
+ "muted",
15246
+ "text",
15247
+ "primaryForeground",
15248
+ "border"
15249
+ ];
15242
15250
  const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
15243
15251
  const paletteModeSchema = z$1.enum(["light", "dark"]);
15244
15252
  const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -15316,6 +15324,12 @@ function requirePaletteColorsFromEntries(entries) {
15316
15324
  if (result.ok) return result.colors;
15317
15325
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
15318
15326
  }
15327
+ function paletteColorEntries(colors) {
15328
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
15329
+ name,
15330
+ hex: colors[name]
15331
+ }));
15332
+ }
15319
15333
  function paletteColorFingerprint(colors) {
15320
15334
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
15321
15335
  }
@@ -16649,13 +16663,6 @@ const warmDarkKirtanGold = defineCuratedPalette({
16649
16663
  });
16650
16664
  //#endregion
16651
16665
  //#region ../theme-core/src/palette/curated/index.ts
16652
- /**
16653
- * Curated palette library.
16654
- *
16655
- * Authoring keys are readable source aliases. Value keys are derived from the
16656
- * complete mode and semantic colours and are the only curated identity used at
16657
- * persistence and runtime boundaries.
16658
- */
16659
16666
  function admitCuratedPaletteDefinition(definition) {
16660
16667
  return {
16661
16668
  ...definition,
@@ -16682,11 +16689,8 @@ const curatedPalettes = [
16682
16689
  admitCuratedPaletteDefinition(warmDarkEmber),
16683
16690
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
16684
16691
  ];
16685
- const curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
16692
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
16686
16693
  const curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
16687
- function findCuratedPalette(valueKey) {
16688
- return curatedPalettesByValueKey.get(valueKey);
16689
- }
16690
16694
  function findCuratedPaletteByAuthoringKey(authoringKey) {
16691
16695
  return curatedPalettesByAuthoringKey.get(authoringKey);
16692
16696
  }
@@ -16695,87 +16699,6 @@ function requireCuratedPaletteValueKey(authoringKey) {
16695
16699
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
16696
16700
  return palette.valueKey;
16697
16701
  }
16698
- /** Parses a raw persisted key into catalogue-proven curated membership. */
16699
- const knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
16700
- const valueKey = parsePaletteValueKey(value);
16701
- if (!valueKey) {
16702
- ctx.addIssue({
16703
- code: "custom",
16704
- message: "Invalid canonical palette value key"
16705
- });
16706
- return z$1.NEVER;
16707
- }
16708
- const palette = findCuratedPalette(valueKey);
16709
- if (!palette) {
16710
- ctx.addIssue({
16711
- code: "custom",
16712
- message: "Unknown curated palette value key"
16713
- });
16714
- return z$1.NEVER;
16715
- }
16716
- return palette.valueKey;
16717
- });
16718
- //#endregion
16719
- //#region ../theme-core/src/palette/selection.ts
16720
- const sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
16721
- const sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
16722
- const paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
16723
- kind: z$1.literal("curated"),
16724
- valueKey: knownCuratedPaletteValueKeySchema
16725
- }), z$1.object({
16726
- kind: z$1.literal("site"),
16727
- paletteId: sitePaletteIdSchema
16728
- })]);
16729
- const onboardingPaletteOriginSchema = z$1.object({
16730
- kind: z$1.literal("onboarding"),
16731
- sourceKey: z$1.string().min(1).nullable()
16732
- });
16733
- const curatedForkPaletteOriginSchema = z$1.object({
16734
- kind: z$1.literal("curated-fork"),
16735
- sourceValueKey: paletteValueKeySchema
16736
- });
16737
- const manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
16738
- const legacyCustomizedPaletteOriginSchema = z$1.object({
16739
- kind: z$1.literal("legacy-customized"),
16740
- sourceKey: z$1.string().min(1).nullable()
16741
- });
16742
- const sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
16743
- onboardingPaletteOriginSchema,
16744
- curatedForkPaletteOriginSchema,
16745
- manualPaletteOriginSchema,
16746
- legacyCustomizedPaletteOriginSchema
16747
- ]);
16748
- const editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
16749
- kind: z$1.literal("curated-fork"),
16750
- sourceValueKey: knownCuratedPaletteValueKeySchema
16751
- }), manualPaletteOriginSchema]);
16752
- z$1.object({
16753
- id: sitePaletteIdSchema,
16754
- colors: paletteColorsSchema,
16755
- mode: paletteModeSchema,
16756
- origin: sitePaletteOriginSchema,
16757
- version: sitePaletteVersionSchema
16758
- });
16759
- z$1.discriminatedUnion("kind", [
16760
- z$1.object({ kind: z$1.literal("preserve") }),
16761
- z$1.object({
16762
- kind: z$1.literal("select"),
16763
- selection: paletteSelectionSchema
16764
- }),
16765
- z$1.object({
16766
- kind: z$1.literal("create-site"),
16767
- colors: paletteColorsSchema,
16768
- mode: paletteModeSchema,
16769
- origin: editorSitePaletteOriginSchema
16770
- }),
16771
- z$1.object({
16772
- kind: z$1.literal("update-site"),
16773
- paletteId: sitePaletteIdSchema,
16774
- expectedVersion: sitePaletteVersionSchema,
16775
- colors: paletteColorsSchema,
16776
- mode: paletteModeSchema
16777
- })
16778
- ]);
16779
16702
  const defaultThemeTokens = {
16780
16703
  color: {
16781
16704
  "background/base": "#ffffff",
@@ -17639,7 +17562,7 @@ function applyNavTypography(style, typography) {
17639
17562
  textSize: "sm",
17640
17563
  letterSpacing: "wider"
17641
17564
  };
17642
- default: return assertNever$16(typography, "Unhandled header nav typography");
17565
+ default: return assertNever$15(typography, "Unhandled header nav typography");
17643
17566
  }
17644
17567
  }
17645
17568
  function underlineNavLinkStyle(colorToken, underlineColorToken, typography = "plain") {
@@ -17668,7 +17591,7 @@ function themedHeaderShadow(theme) {
17668
17591
  case "low": return { elevation: "sm" };
17669
17592
  case "medium": return { elevation: "md" };
17670
17593
  case "high": return { elevation: "lg" };
17671
- default: return assertNever$16(theme.shadow.elevation, "Unhandled theme shadow elevation");
17594
+ default: return assertNever$15(theme.shadow.elevation, "Unhandled theme shadow elevation");
17672
17595
  }
17673
17596
  }
17674
17597
  function solidBrandHeader(theme) {
@@ -21544,6 +21467,34 @@ const mediaSchema$1 = z.object({
21544
21467
  transform: transformSchema$1.optional()
21545
21468
  });
21546
21469
  //#endregion
21470
+ //#region ../theme-core/src/palette/schema.ts
21471
+ const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
21472
+ const paletteColorSchema = z$1.object({
21473
+ name: z$1.string().min(1),
21474
+ hex: colourHexString
21475
+ });
21476
+ const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
21477
+ const paletteSchema = z$1.object({
21478
+ colors: z$1.array(paletteColorSchema),
21479
+ meta: paletteMetaSchema
21480
+ }).transform((palette, ctx) => {
21481
+ const colors = paletteColorsFromEntries(palette.colors);
21482
+ if (!colors.ok) {
21483
+ ctx.addIssue({
21484
+ code: "custom",
21485
+ message: `Invalid complete palette: ${colors.error.kind}`
21486
+ });
21487
+ return z$1.NEVER;
21488
+ }
21489
+ return {
21490
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
21491
+ name: String(name),
21492
+ hex: String(hex)
21493
+ })),
21494
+ meta: palette.meta
21495
+ };
21496
+ });
21497
+ //#endregion
21547
21498
  //#region ../theme-core/src/surfaces/foregroundRoles.ts
21548
21499
  const SURFACE_FOREGROUND_ROLES = [
21549
21500
  "text",
@@ -25634,16 +25585,6 @@ const axesSchema = z$1.object({
25634
25585
  "expressive"
25635
25586
  ])
25636
25587
  });
25637
- const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
25638
- const paletteColorSchema = z$1.object({
25639
- name: z$1.string().min(1),
25640
- hex: colourHexString
25641
- });
25642
- const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
25643
- const paletteSchema = z$1.object({
25644
- colors: z$1.array(paletteColorSchema),
25645
- meta: paletteMetaSchema
25646
- });
25647
25588
  const typographyStyleSchema = z$1.object({
25648
25589
  family: z$1.string().min(1),
25649
25590
  weight: z$1.enum([
@@ -36410,7 +36351,7 @@ function planSiteChromePlacement(positioning) {
36410
36351
  headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
36411
36352
  standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
36412
36353
  };
36413
- default: return assertNever$16(positioning);
36354
+ default: return assertNever$15(positioning);
36414
36355
  }
36415
36356
  }
36416
36357
  function splitSiteChromePlacementClasses(className) {
@@ -41583,6 +41524,10 @@ const eventDetailsManifest = createBlockManifest({
41583
41524
  from: "$root.occurrenceContext",
41584
41525
  fallback: null
41585
41526
  } },
41527
+ subject: { $bind: {
41528
+ from: "$root.subject",
41529
+ fallback: null
41530
+ } },
41586
41531
  events: { $bind: { from: "data.eventDetailsData.events" } },
41587
41532
  showVenue: { $bind: { from: "content.showVenue" } },
41588
41533
  showMap: { $bind: { from: "content.showMap" } },
@@ -46747,10 +46692,10 @@ function preferredPathsForSource(source) {
46747
46692
  case "workshop": return ["/workshops", "/workshop"];
46748
46693
  case "retreat": return ["/retreats", "/retreat"];
46749
46694
  case "performance": return ["/performances", "/performance"];
46750
- default: return assertNever$25(source.preset, "Unhandled offerings preview event preset");
46695
+ default: return assertNever$24(source.preset, "Unhandled offerings preview event preset");
46751
46696
  }
46752
46697
  case "course": return ["/courses", "/course"];
46753
- default: return assertNever$25(source, "Unhandled offerings preview source");
46698
+ default: return assertNever$24(source, "Unhandled offerings preview source");
46754
46699
  }
46755
46700
  }
46756
46701
  function normalizeRoutePath(value) {
@@ -52897,7 +52842,7 @@ function resolveLinkedContentEditSupport(contentType) {
52897
52842
  kind: "unsupported-domain-backed",
52898
52843
  reason: metadata.reason
52899
52844
  };
52900
- default: return assertNever$25(metadata);
52845
+ default: return assertNever$24(metadata);
52901
52846
  }
52902
52847
  }
52903
52848
  function contentTypeKeyToLabel(key) {
@@ -54986,7 +54931,10 @@ function uniqByOccurrenceId(events) {
54986
54931
  return out;
54987
54932
  }
54988
54933
  function selectEventDetails(args) {
54989
- const all = uniqByOccurrenceId((args.events ?? []).filter(Boolean));
54934
+ const all = uniqByOccurrenceId(resolveEventRegistrationScopedEvents((args.events ?? []).filter(Boolean), {
54935
+ occurrenceContext: args.occurrenceContext,
54936
+ subject: args.subject
54937
+ }));
54990
54938
  const occurrenceContext = args.occurrenceContext ?? null;
54991
54939
  const otherLimit = parseLimit$1(args.otherDatesLimit, 5);
54992
54940
  const selectedFromContext = (() => {
@@ -55252,11 +55200,13 @@ function EventDetailsView({ selection, showVenue, showMap, showOtherDates, showC
55252
55200
  }
55253
55201
  //#endregion
55254
55202
  //#region ../blocks/src/system/runtime/nodes/event-details.server.tsx
55255
- function EventDetailsSSR({ blockId, occurrenceContext, events, showVenue = true, showMap = true, showOtherDates = true, otherDatesLimit, showCost = true, showAcceptedPasses = true, showAcceptedMemberships = true, sitePasses, siteMemberships, autoApplyDiscount, className, children }) {
55203
+ function EventDetailsSSR({ blockId, occurrenceContext, subject, events, showVenue = true, showMap = true, showOtherDates = true, otherDatesLimit, showCost = true, showAcceptedPasses = true, showAcceptedMemberships = true, sitePasses, siteMemberships, autoApplyDiscount, className, children }) {
55256
55204
  const nowIso = (/* @__PURE__ */ new Date()).toISOString();
55205
+ const normalizedSubject = normalizeEventRegistrationPageSurfaceSubject(subject);
55257
55206
  const selection = selectEventDetails({
55258
55207
  events: events ?? null,
55259
55208
  occurrenceContext: occurrenceContext ?? null,
55209
+ subject: normalizedSubject,
55260
55210
  nowIso,
55261
55211
  otherDatesLimit
55262
55212
  });
@@ -55271,6 +55221,7 @@ function EventDetailsSSR({ blockId, occurrenceContext, events, showVenue = true,
55271
55221
  children: [
55272
55222
  /* @__PURE__ */ jsx(IslandPropsScript, { value: {
55273
55223
  occurrenceContext,
55224
+ subject: normalizedSubject,
55274
55225
  events,
55275
55226
  showVenue,
55276
55227
  showMap,
@@ -55418,7 +55369,7 @@ function eventSeriesIdsForSubject(subject) {
55418
55369
  switch (subject.kind) {
55419
55370
  case "eventSeries": return [subject.eventSeriesId];
55420
55371
  case "eventOffering": return subject.availableEventSeriesIds;
55421
- default: return assertNever$25(subject);
55372
+ default: return assertNever$24(subject);
55422
55373
  }
55423
55374
  }
55424
55375
  //#endregion
@@ -56135,7 +56086,7 @@ function renderOfferingGroupItems(presentation, items, options) {
56135
56086
  children: items.map((item) => renderOfferingCompactItem(item, options))
56136
56087
  })
56137
56088
  });
56138
- default: return assertNever$25(presentation, "Unhandled offerings preview presentation");
56089
+ default: return assertNever$24(presentation, "Unhandled offerings preview presentation");
56139
56090
  }
56140
56091
  }
56141
56092
  function compareCoursesByNextSession(left, right) {
@@ -56180,7 +56131,7 @@ function featuredSummaryDetails(item) {
56180
56131
  const summary = deriveCourseScheduleSummary(item.course);
56181
56132
  return summary ? formatFeaturedSummary(summary, item.course.venue?.name ?? null) : null;
56182
56133
  }
56183
- default: return assertNever$25(item, "Unhandled offerings preview item");
56134
+ default: return assertNever$24(item, "Unhandled offerings preview item");
56184
56135
  }
56185
56136
  }
56186
56137
  function formatFeaturedSummary(summary, venue) {
@@ -56189,7 +56140,7 @@ function formatFeaturedSummary(summary, venue) {
56189
56140
  case "multi-day-span": return detailsFromOccurrences(summary.occurrence, summary.occurrence, venue, null, null, true);
56190
56141
  case "fixed-recurring-run": return detailsFromOccurrences(summary.first, summary.last, venue, summary.recurrenceLabel, null);
56191
56142
  case "irregular-multi-session-run": return detailsFromOccurrences(summary.first, summary.last, venue, null, `${summary.sessionCount} dates`);
56192
- default: return assertNever$25(summary, "Unhandled offerings preview schedule summary");
56143
+ default: return assertNever$24(summary, "Unhandled offerings preview schedule summary");
56193
56144
  }
56194
56145
  }
56195
56146
  function detailsFromOccurrences(first, last, venue, recurrence, sessionCount, spanUsesEndDate = false) {
@@ -56586,7 +56537,7 @@ function bookingActionContent(input) {
56586
56537
  children: input.buttonText
56587
56538
  });
56588
56539
  case "unavailable": return null;
56589
- default: return assertNever$25(input.booking);
56540
+ default: return assertNever$24(input.booking);
56590
56541
  }
56591
56542
  }
56592
56543
  function RecurringSchedule({ schedule, buttonText = "Book", buttonVariant = "primary", showVenue = true, emptyMessage = "Regular schedule details will be added shortly." }) {
@@ -58764,7 +58715,7 @@ function previewEditableTargetToPath(target) {
58764
58715
  case "current-entry-field":
58765
58716
  case "current-entry-metadata": return target.path;
58766
58717
  case "read-only": return;
58767
- default: return assertNever$25(target);
58718
+ default: return assertNever$24(target);
58768
58719
  }
58769
58720
  }
58770
58721
  function previewEditableTargetToFieldKey(target) {
@@ -59839,7 +59790,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
59839
59790
  case "text":
59840
59791
  case "time":
59841
59792
  case "url": return [];
59842
- default: return assertNever$25(field);
59793
+ default: return assertNever$24(field);
59843
59794
  }
59844
59795
  }
59845
59796
  function makeDefaultBlockComponent(args) {
@@ -63955,7 +63906,7 @@ function sourceLabel(source) {
63955
63906
  case "managed-database": return "DB";
63956
63907
  case "sdk-synced": return "SDK-synced DB";
63957
63908
  case "sdk-config": return "SDK config";
63958
- default: return assertNever$25(source);
63909
+ default: return assertNever$24(source);
63959
63910
  }
63960
63911
  }
63961
63912
  //#endregion
@@ -82993,7 +82944,7 @@ function renderWithSdkThemeRuntime({ themeRuntime, theme, children }) {
82993
82944
  children
82994
82945
  });
82995
82946
  case "none": return /* @__PURE__ */ jsx(Fragment, { children });
82996
- default: return assertNever$25(themeRuntime);
82947
+ default: return assertNever$24(themeRuntime);
82997
82948
  }
82998
82949
  }
82999
82950
  //#endregion
@@ -84221,7 +84172,7 @@ var CircuitOpenError = class extends Error {
84221
84172
  * 1. This constant
84222
84173
  * 2. The "version" field in package.json
84223
84174
  */
84224
- const SDK_VERSION = "0.124.0";
84175
+ const SDK_VERSION = "0.126.0";
84225
84176
  //#endregion
84226
84177
  //#region src/next/content-load-failure.ts
84227
84178
  const SdkContentLoadError = RiverbankContentLoadError;