@riverbankcms/sdk 0.84.0 → 0.84.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/{PreviewEditorSidebar-HML67UDA.mjs → PreviewEditorSidebar-X7RLMEI6.mjs} +2 -2
  2. package/dist/{PreviewEditorUI-I4BQUU6K.mjs → PreviewEditorUI-CT67N4O3.mjs} +2 -2
  3. package/dist/SdkPreviewModeRuntime-EIMQ3S2V.mjs +8 -0
  4. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  5. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  6. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  7. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
  8. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
  9. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
  10. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
  11. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
  12. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -303
  13. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -1
  14. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -6
  15. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +6 -4
  16. package/dist/_dts/sdk/src/version.d.ts +1 -1
  17. package/dist/{chunk-MSHZO4SL.mjs → chunk-O62NDCTI.mjs} +268 -186
  18. package/dist/{chunk-HFMGVJCE.mjs → chunk-QRKJDWT7.mjs} +5 -5
  19. package/dist/{chunk-6X2OVO3S.mjs → chunk-RCTJAZSK.mjs} +1 -1
  20. package/dist/{chunk-5E33VO6J.mjs → chunk-X5ZCSU6F.mjs} +1 -1
  21. package/dist/cli/index.mjs +323 -35
  22. package/dist/cli/init-docs/content/agents-section.md +5 -0
  23. package/dist/cli/init-docs/content/cli-reference.md +13 -0
  24. package/dist/cli/init-docs/content/content-management.md +31 -0
  25. package/dist/cli/init-docs/content/getting-started.md +12 -0
  26. package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
  27. package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
  28. package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
  29. package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
  30. package/dist/cli/init-docs/content/workflow-templates.md +14 -0
  31. package/dist/client/{accordion-ESY65T56.mjs → accordion-2UZPBMYM.mjs} +1 -1
  32. package/dist/client/{bookingForm-JRFNZUHD.mjs → bookingForm-DYXT6YB6.mjs} +3 -3
  33. package/dist/client/bookings.mjs +155 -134
  34. package/dist/client/{carousel-CPR5VWIP.mjs → carousel-QH77HR6X.mjs} +2 -2
  35. package/dist/client/{cart-ZUX5BA7O.mjs → cart-X4YK4FTW.mjs} +5 -5
  36. package/dist/client/{checkout-RULGBADZ.mjs → checkout-OM2BEPWD.mjs} +5 -5
  37. package/dist/client/{chunk-BT6AEIKN.mjs → chunk-3DTWLTXM.mjs} +1 -1
  38. package/dist/client/{chunk-JWEYB4V6.mjs → chunk-4OXKTA3D.mjs} +1 -1
  39. package/dist/client/{chunk-URQCZD5W.mjs → chunk-52CGCQ7B.mjs} +4 -4
  40. package/dist/client/{chunk-52I7BGEK.mjs → chunk-7UCLJ5SP.mjs} +1 -1
  41. package/dist/client/{chunk-Z5OBQ5I4.mjs → chunk-F5VRX5Y6.mjs} +1 -1
  42. package/dist/client/{chunk-RDJFCPY3.mjs → chunk-UHDWIXVR.mjs} +31 -115
  43. package/dist/client/{chunk-HXPWP5EN.mjs → chunk-VGDBVNOO.mjs} +175 -14
  44. package/dist/client/{chunk-5ZEAZ33K.mjs → chunk-ZKUO52W3.mjs} +1 -1
  45. package/dist/client/client.mjs +337 -217
  46. package/dist/client/{courseRegistration-QTUDC35T.mjs → courseRegistration-YBOGURTA.mjs} +3 -3
  47. package/dist/client/{eventCalendar-Q7NS4XLD.mjs → eventCalendar-K4QJVCMD.mjs} +5 -5
  48. package/dist/client/{eventCombined-QAO7VUO5.mjs → eventCombined-MTXGMTCZ.mjs} +5 -5
  49. package/dist/client/{eventDetails-WTNNU6Q3.mjs → eventDetails-3PC4NL3U.mjs} +5 -5
  50. package/dist/client/{eventListing-5TA2ELDT.mjs → eventListing-TFJET6DN.mjs} +5 -5
  51. package/dist/client/{eventRegistration-M6USZGRF.mjs → eventRegistration-QGPBGJTW.mjs} +5 -5
  52. package/dist/client/{form-DGVGXLMH.mjs → form-MDKR4FNB.mjs} +1 -1
  53. package/dist/client/{headerSection-O2AGMPCU.mjs → headerSection-Y5TMR3TW.mjs} +2 -2
  54. package/dist/client/hooks.mjs +315 -35
  55. package/dist/client/{locationMap-EJRNRIKJ.mjs → locationMap-RH2LG7FZ.mjs} +1 -1
  56. package/dist/client/{newsletterForm-7NTC2DTR.mjs → newsletterForm-ZR5UDGBT.mjs} +1 -1
  57. package/dist/client/{productDetail-HH4LP53D.mjs → productDetail-OIGDR4YE.mjs} +5 -5
  58. package/dist/client/{productList-YVHYM2AF.mjs → productList-4MA5S2CX.mjs} +5 -5
  59. package/dist/client/rendering/client.mjs +310 -190
  60. package/dist/client/rendering/islands.mjs +18 -18
  61. package/dist/client/rendering.mjs +310 -190
  62. package/dist/client/{shop-UIFX7XRK.mjs → shop-WXSYV5QO.mjs} +5 -5
  63. package/dist/preview-next/client/runtime.mjs +3 -3
  64. package/dist/{sdk-runtime-ZENAOYMN.mjs → sdk-runtime-7HJYPRWQ.mjs} +4 -4
  65. package/dist/server/components.mjs +188 -61
  66. package/dist/server/config-validation.mjs +313 -33
  67. package/dist/server/config.mjs +313 -33
  68. package/dist/server/data.mjs +315 -35
  69. package/dist/server/index.mjs +1 -1
  70. package/dist/server/next.mjs +189 -62
  71. package/dist/server/page-converter.mjs +315 -35
  72. package/dist/server/prebuild.mjs +1 -1
  73. package/dist/server/rendering/server.mjs +188 -61
  74. package/dist/server/rendering.mjs +188 -61
  75. package/dist/server/routing.mjs +334 -34
  76. package/dist/server/server.mjs +322 -42
  77. package/package.json +1 -1
  78. package/dist/SdkPreviewModeRuntime-MCKMVDTK.mjs +0 -8
@@ -6375,6 +6375,171 @@ var ENDPOINT_DEFINITIONS = {
6375
6375
  }
6376
6376
  };
6377
6377
 
6378
+ // ../core/src/result.ts
6379
+ function ok(value) {
6380
+ return { ok: true, value };
6381
+ }
6382
+ function err(error) {
6383
+ return { ok: false, error };
6384
+ }
6385
+
6386
+ // ../core/src/event-pricing.ts
6387
+ function publicEventPricingType(pricing) {
6388
+ switch (pricing.kind) {
6389
+ case "drop_in":
6390
+ case "free_registration":
6391
+ return "free";
6392
+ case "single_paid":
6393
+ case "ticket_types":
6394
+ case "course":
6395
+ return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
6396
+ }
6397
+ }
6398
+ function isFreePublicEventPriceDisplay(display) {
6399
+ switch (display.kind) {
6400
+ case "free":
6401
+ return true;
6402
+ case "course":
6403
+ return display.display.kind === "free";
6404
+ case "exact":
6405
+ case "from":
6406
+ case "mixed":
6407
+ case "unavailable":
6408
+ return false;
6409
+ }
6410
+ }
6411
+
6412
+ // ../core/src/booking-date-time.ts
6413
+ var DEFAULT_LOCALE = "en-US";
6414
+ var FALLBACK_TIMEZONE = "UTC";
6415
+ function isValidTimeZone(timeZone) {
6416
+ try {
6417
+ new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
6418
+ return true;
6419
+ } catch {
6420
+ return false;
6421
+ }
6422
+ }
6423
+ function getSafeTimeZone(timeZone) {
6424
+ const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
6425
+ return normalized && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
6426
+ }
6427
+ function parseStrictBookingTimeZone(timeZone) {
6428
+ const normalized = timeZone.trim();
6429
+ if (!normalized || !isValidTimeZone(normalized)) {
6430
+ return null;
6431
+ }
6432
+ return normalized;
6433
+ }
6434
+ function formatParseError(error) {
6435
+ switch (error.reason) {
6436
+ case "invalid_starts_at":
6437
+ return `Expected a valid UTC/offset-aware ISO datetime in startsAt, received "${error.value}"`;
6438
+ case "invalid_ends_at":
6439
+ return `Expected a valid UTC/offset-aware ISO datetime in endsAt, received "${error.value ?? ""}"`;
6440
+ case "invalid_time_zone":
6441
+ return `Expected a valid IANA timezone in timeZone, received "${error.value}"`;
6442
+ }
6443
+ }
6444
+ function formatToPartsLookup(date, locale, timeZone, format) {
6445
+ return new Map(
6446
+ new Intl.DateTimeFormat(locale, {
6447
+ ...format,
6448
+ timeZone
6449
+ }).formatToParts(date).map((part) => [part.type, part.value])
6450
+ );
6451
+ }
6452
+ function getZonedDateTimeParts(date, timeZone) {
6453
+ const parts = formatToPartsLookup(date, "en-GB", timeZone, {
6454
+ year: "numeric",
6455
+ month: "2-digit",
6456
+ day: "2-digit",
6457
+ hour: "2-digit",
6458
+ minute: "2-digit",
6459
+ second: "2-digit",
6460
+ hour12: false
6461
+ });
6462
+ const read = (type) => Number(parts.get(type) ?? "");
6463
+ return {
6464
+ year: read("year"),
6465
+ month: read("month"),
6466
+ day: read("day"),
6467
+ hour: read("hour"),
6468
+ minute: read("minute"),
6469
+ second: read("second")
6470
+ };
6471
+ }
6472
+ function formatDateKey(date) {
6473
+ const year = String(date.year).padStart(4, "0");
6474
+ const month = String(date.month).padStart(2, "0");
6475
+ const day = String(date.day).padStart(2, "0");
6476
+ return `${year}-${month}-${day}`;
6477
+ }
6478
+ function parseUtcIsoDateTimeString(value) {
6479
+ const normalized = value.trim();
6480
+ const hasUtcSuffix = normalized.endsWith("Z");
6481
+ const hasExplicitOffset = /[+-]\d{2}:\d{2}$/u.test(normalized);
6482
+ if (!hasUtcSuffix && !hasExplicitOffset) {
6483
+ return err("missing-timezone-offset");
6484
+ }
6485
+ const date = new Date(normalized);
6486
+ if (Number.isNaN(date.getTime())) {
6487
+ return err("invalid-date-time");
6488
+ }
6489
+ return ok(date.toISOString());
6490
+ }
6491
+ function toUtcIsoDateTimeString(value) {
6492
+ const parsed = parseUtcIsoDateTimeString(value);
6493
+ if (!parsed.ok) {
6494
+ const message = parsed.error === "missing-timezone-offset" ? `Expected an offset-aware ISO datetime, received "${value}"` : `Expected a valid ISO datetime, received "${value}"`;
6495
+ throw new Error(message);
6496
+ }
6497
+ return parsed.value;
6498
+ }
6499
+ function parseScheduledBookingDateTime(input) {
6500
+ try {
6501
+ const startsAt = toUtcIsoDateTimeString(input.startsAt);
6502
+ const timeZone = parseStrictBookingTimeZone(input.timeZone);
6503
+ if (!timeZone) {
6504
+ return {
6505
+ ok: false,
6506
+ field: "timeZone",
6507
+ reason: "invalid_time_zone",
6508
+ value: input.timeZone
6509
+ };
6510
+ }
6511
+ return {
6512
+ ok: true,
6513
+ value: {
6514
+ startsAt,
6515
+ timeZone,
6516
+ locale: input.locale
6517
+ }
6518
+ };
6519
+ } catch {
6520
+ return {
6521
+ ok: false,
6522
+ field: "startsAt",
6523
+ reason: "invalid_starts_at",
6524
+ value: input.startsAt
6525
+ };
6526
+ }
6527
+ }
6528
+ function toScheduledBookingDateTime(input) {
6529
+ const result = parseScheduledBookingDateTime(input);
6530
+ if (result.ok) {
6531
+ return result.value;
6532
+ }
6533
+ throw new Error(formatParseError(result));
6534
+ }
6535
+ function getBookingLocalDateKey(input) {
6536
+ return formatDateKey(getLocalScheduleDate(new Date(input.startsAt), input.timeZone));
6537
+ }
6538
+ function getLocalScheduleDate(date, timeZone) {
6539
+ const parts = getZonedDateTimeParts(date, getSafeTimeZone(timeZone));
6540
+ return { year: parts.year, month: parts.month, day: parts.day };
6541
+ }
6542
+
6378
6543
  // ../core/src/location.ts
6379
6544
  function normalizeLocationAddressText(value) {
6380
6545
  if (typeof value !== "string") {
@@ -9228,9 +9393,9 @@ var _Vibrant = class _Vibrant2 {
9228
9393
  }
9229
9394
  image.remove();
9230
9395
  return res;
9231
- } catch (err) {
9396
+ } catch (err2) {
9232
9397
  image.remove();
9233
- return Promise.reject(err);
9398
+ return Promise.reject(err2);
9234
9399
  }
9235
9400
  }
9236
9401
  async getPalettes() {
@@ -9244,9 +9409,9 @@ var _Vibrant = class _Vibrant2 {
9244
9409
  const res = result1.palettes;
9245
9410
  image.remove();
9246
9411
  return res;
9247
- } catch (err) {
9412
+ } catch (err2) {
9248
9413
  image.remove();
9249
- return Promise.reject(err);
9414
+ return Promise.reject(err2);
9250
9415
  }
9251
9416
  }
9252
9417
  };
@@ -28135,6 +28300,26 @@ var occurrenceContextSchema = z43.object({
28135
28300
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28136
28301
  import { z as z45 } from "zod";
28137
28302
 
28303
+ // ../blocks/src/system/constants/events.ts
28304
+ var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
28305
+ var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28306
+ var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28307
+ var eventCalendarListLayoutOptions = [
28308
+ { id: "stack", label: "Stack" },
28309
+ { id: "grid", label: "Grid" },
28310
+ { id: "compact", label: "Compact" }
28311
+ ];
28312
+ function isEventCalendarDisplayMode(value) {
28313
+ return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28314
+ }
28315
+ function isEventCalendarListLayout(value) {
28316
+ return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28317
+ }
28318
+ function isEventContentType(slug) {
28319
+ if (!slug) return false;
28320
+ return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
28321
+ }
28322
+
28138
28323
  // ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
28139
28324
  var DEFAULT_EVENT_CURRENCY = "USD";
28140
28325
  function resolveRuntimeEventPricing(event) {
@@ -28257,23 +28442,6 @@ function readAmount(value) {
28257
28442
 
28258
28443
  // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28259
28444
  import { z as z44 } from "zod";
28260
-
28261
- // ../blocks/src/system/constants/events.ts
28262
- var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
28263
- var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
28264
- var eventCalendarListLayoutOptions = [
28265
- { id: "stack", label: "Stack" },
28266
- { id: "grid", label: "Grid" },
28267
- { id: "compact", label: "Compact" }
28268
- ];
28269
- function isEventCalendarDisplayMode(value) {
28270
- return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
28271
- }
28272
- function isEventCalendarListLayout(value) {
28273
- return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
28274
- }
28275
-
28276
- // ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
28277
28445
  var previewStageSchema = z44.enum(["preview", "published"]);
28278
28446
  var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
28279
28447
  var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
@@ -28284,13 +28452,64 @@ var weekStartSchema = z44.enum(["sunday", "monday"]);
28284
28452
  var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
28285
28453
  var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
28286
28454
 
28455
+ // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28456
+ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
28457
+ const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
28458
+ if (!needsPaymentStep) {
28459
+ return baseSteps;
28460
+ }
28461
+ return [...baseSteps, "select-payment"];
28462
+ }
28463
+
28464
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
28465
+ function eventMatchesOccurrenceId(event, occurrenceId) {
28466
+ return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
28467
+ }
28468
+ function findPreSelectedEvent(input) {
28469
+ const occurrenceContext = input.occurrenceContext;
28470
+ if (!occurrenceContext) {
28471
+ return null;
28472
+ }
28473
+ const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28474
+ startsAt: occurrenceContext.startsAt,
28475
+ timeZone: occurrenceContext.timeZone
28476
+ }));
28477
+ return input.scopedEvents.find(
28478
+ (event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
28479
+ startsAt: event.startsAt,
28480
+ timeZone: event.timeZone
28481
+ })) === contextDate
28482
+ ) ?? null;
28483
+ }
28484
+ function resolveEventRequiresPayment(input) {
28485
+ if (input.eligibility) {
28486
+ return input.eligibility.requiresPayment;
28487
+ }
28488
+ if (input.selectedTicketType) {
28489
+ return input.selectedTicketType.priceAmount > 0;
28490
+ }
28491
+ if (!input.event) {
28492
+ return false;
28493
+ }
28494
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
28495
+ }
28496
+
28497
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
28498
+ function toRegistrationEvent(event) {
28499
+ return {
28500
+ ...event,
28501
+ pricing: resolveRuntimeEventPricing(event),
28502
+ publicEventId: event.id,
28503
+ registrationOccurrenceId: event.occurrenceId
28504
+ };
28505
+ }
28506
+ function toRegistrationEvents(events) {
28507
+ return events.map(toRegistrationEvent);
28508
+ }
28509
+
28287
28510
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28288
28511
  var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28289
- var [
28290
- eventRegistrationGenericDateStepLabel,
28291
- eventRegistrationGenericTicketsStepLabel,
28292
- eventRegistrationGenericDetailsStepLabel
28293
- ] = EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
28512
+ var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28294
28513
  var contentEntrySchema = z45.object({
28295
28514
  id: z45.string(),
28296
28515
  slug: z45.string(),
@@ -28326,11 +28545,7 @@ var eventRegistrationDisplaySchema = z45.object({
28326
28545
  className: z45.string().nullable(),
28327
28546
  titleText: z45.string(),
28328
28547
  bodyText: z45.string(),
28329
- stepLabels: z45.tuple([
28330
- z45.literal(eventRegistrationGenericDateStepLabel),
28331
- z45.literal(eventRegistrationGenericTicketsStepLabel),
28332
- z45.literal(eventRegistrationGenericDetailsStepLabel)
28333
- ]),
28548
+ stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28334
28549
  summaryButtonText: z45.string()
28335
28550
  });
28336
28551
  var eventRegistrationHydrationSchema = z45.object({
@@ -28365,16 +28580,81 @@ var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
28365
28580
  "stage"
28366
28581
  );
28367
28582
  function buildEventRegistrationDisplay(source) {
28583
+ const stepLabels = buildEventRegistrationShellStepLabels(source);
28368
28584
  return {
28369
28585
  kind: "event-registration",
28370
28586
  state: "generic-shell",
28371
28587
  className: source.className ?? null,
28372
28588
  titleText: "Event registration",
28373
- bodyText: "Preparing dates, tickets, and booking details.",
28374
- stepLabels: EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS,
28589
+ bodyText: buildEventRegistrationShellBodyText(stepLabels),
28590
+ stepLabels,
28375
28591
  summaryButtonText: source.buttonText?.trim() || "Register"
28376
28592
  };
28377
28593
  }
28594
+ function buildEventRegistrationShellStepLabels(source) {
28595
+ const scopedEvents = scopeEventRegistrationEvents(source);
28596
+ if (scopedEvents.length === 0) {
28597
+ return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
28598
+ }
28599
+ const preSelectedEvent = findPreSelectedEvent({
28600
+ scopedEvents,
28601
+ occurrenceContext: source.occurrenceContext
28602
+ });
28603
+ const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
28604
+ const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
28605
+ eligibility: null,
28606
+ selectedTicketType: null,
28607
+ event: preSelectedEvent
28608
+ }) : false;
28609
+ return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
28610
+ }
28611
+ function scopeEventRegistrationEvents(source) {
28612
+ const events = toRegistrationEvents(source.events ?? []);
28613
+ if (source.occurrenceContext?.seriesId) {
28614
+ return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
28615
+ }
28616
+ const entrySlug = source.contentEntry?.slug;
28617
+ const entryContentType = source.contentEntry?.contentTypeSlug;
28618
+ if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
28619
+ return events.filter((event) => event.slug === entrySlug);
28620
+ }
28621
+ return events;
28622
+ }
28623
+ function shellLabelForRegistrationStep(step, events) {
28624
+ switch (step) {
28625
+ case "select-event":
28626
+ return isDateSelection(events) ? "Date" : "Event";
28627
+ case "select-tickets":
28628
+ return "Tickets";
28629
+ case "enter-details":
28630
+ return "Details";
28631
+ case "select-payment":
28632
+ return "Payment";
28633
+ case "error":
28634
+ case "success":
28635
+ case "submitting":
28636
+ case "redirecting":
28637
+ case "verifying-payment":
28638
+ case "verifying-timeout":
28639
+ case "payment-failed":
28640
+ return "Details";
28641
+ }
28642
+ }
28643
+ function isDateSelection(events) {
28644
+ const firstSeriesId = events[0]?.seriesId;
28645
+ return Boolean(
28646
+ events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
28647
+ );
28648
+ }
28649
+ function buildEventRegistrationShellBodyText(stepLabels) {
28650
+ if (stepLabels.includes("Payment")) {
28651
+ return "Preparing tickets, details, and payment options.";
28652
+ }
28653
+ if (stepLabels[0] === "Tickets") {
28654
+ return "Preparing tickets and booking details.";
28655
+ }
28656
+ return "Preparing dates, tickets, and booking details.";
28657
+ }
28378
28658
  var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
28379
28659
  kind: "client-owned",
28380
28660
  contracts: {
@@ -37499,11 +37779,11 @@ function resolveParamsBindings(input, vm, meta) {
37499
37779
  return binding.fallback;
37500
37780
  }
37501
37781
  return resolved;
37502
- } catch (err) {
37782
+ } catch (err2) {
37503
37783
  if (shouldLogWarnings) {
37504
37784
  console.warn(
37505
37785
  `bindings: failed to parse loader param binding for block "${meta?.blockKind ?? "unknown"}"`,
37506
- err
37786
+ err2
37507
37787
  );
37508
37788
  }
37509
37789
  return void 0;
@@ -6966,7 +6966,7 @@ var SimpleCache = class {
6966
6966
  };
6967
6967
 
6968
6968
  // src/version.ts
6969
- var SDK_VERSION = "0.84.0";
6969
+ var SDK_VERSION = "0.84.1";
6970
6970
 
6971
6971
  // src/client/error.ts
6972
6972
  var RiverbankApiError = class _RiverbankApiError extends Error {