@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
@@ -23922,19 +23922,205 @@ var init_gifting_interactive = __esm({
23922
23922
  }
23923
23923
  });
23924
23924
 
23925
+ // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
23926
+ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
23927
+ const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
23928
+ if (!needsPaymentStep) {
23929
+ return baseSteps;
23930
+ }
23931
+ return [...baseSteps, "select-payment"];
23932
+ }
23933
+ function getStepNumber(step, wizardSteps) {
23934
+ const index = wizardSteps.indexOf(step);
23935
+ return index >= 0 ? index + 1 : 1;
23936
+ }
23937
+ var WIZARD_STEPS;
23938
+ var init_wizardSteps = __esm({
23939
+ "../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts"() {
23940
+ "use strict";
23941
+ WIZARD_STEPS = [
23942
+ "select-event",
23943
+ "select-tickets",
23944
+ "enter-details",
23945
+ "select-payment"
23946
+ ];
23947
+ }
23948
+ });
23949
+
23950
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
23951
+ function eventMatchesOccurrenceId(event, occurrenceId) {
23952
+ return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
23953
+ }
23954
+ function findEventByOccurrenceId(events, occurrenceId) {
23955
+ return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
23956
+ }
23957
+ function findPreSelectedEvent(input) {
23958
+ const occurrenceContext = input.occurrenceContext;
23959
+ if (!occurrenceContext) {
23960
+ return null;
23961
+ }
23962
+ const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
23963
+ startsAt: occurrenceContext.startsAt,
23964
+ timeZone: occurrenceContext.timeZone
23965
+ }));
23966
+ return input.scopedEvents.find(
23967
+ (event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
23968
+ startsAt: event.startsAt,
23969
+ timeZone: event.timeZone
23970
+ })) === contextDate
23971
+ ) ?? null;
23972
+ }
23973
+ function resolveRegistrationTarget(input) {
23974
+ const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
23975
+ if (!occurrenceId) {
23976
+ return null;
23977
+ }
23978
+ return {
23979
+ occurrenceId,
23980
+ selectedEventId: input.selectedEvent?.publicEventId ?? null
23981
+ };
23982
+ }
23983
+ function resolveEventRequiresPayment(input) {
23984
+ if (input.eligibility) {
23985
+ return input.eligibility.requiresPayment;
23986
+ }
23987
+ if (input.selectedTicketType) {
23988
+ return input.selectedTicketType.priceAmount > 0;
23989
+ }
23990
+ if (!input.event) {
23991
+ return false;
23992
+ }
23993
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
23994
+ }
23995
+ function resolveDiscountContext(input) {
23996
+ const selection = input.paymentSelection.method ? input.paymentSelection : null;
23997
+ if (!input.event) {
23998
+ return null;
23999
+ }
24000
+ if (selection?.method === "pass_bundle" && selection.bundlePassId) {
24001
+ return { type: "pass", passId: selection.bundlePassId };
24002
+ }
24003
+ if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
24004
+ return { type: "membership", membershipId: selection.bundleMembershipId };
24005
+ }
24006
+ if (!input.eventRequiresPayment) {
24007
+ return null;
24008
+ }
24009
+ if (selection?.method && selection.method !== "stripe") {
24010
+ return null;
24011
+ }
24012
+ return {
24013
+ type: "event",
24014
+ eventSeriesId: input.event.seriesId,
24015
+ eventCategoryId: input.event.eventCategory?.id ?? null,
24016
+ ticketsCount: input.ticketsCount
24017
+ };
24018
+ }
24019
+ var init_registrationDerivations = __esm({
24020
+ "../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts"() {
24021
+ "use strict";
24022
+ init_src();
24023
+ init_pricing2();
24024
+ }
24025
+ });
24026
+
24027
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
24028
+ function toRegistrationEvent(event) {
24029
+ return {
24030
+ ...event,
24031
+ pricing: resolveRuntimeEventPricing(event),
24032
+ publicEventId: event.id,
24033
+ registrationOccurrenceId: event.occurrenceId
24034
+ };
24035
+ }
24036
+ function toRegistrationEvents(events) {
24037
+ return events.map(toRegistrationEvent);
24038
+ }
24039
+ var init_registrationEventAdapter = __esm({
24040
+ "../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts"() {
24041
+ "use strict";
24042
+ init_pricing2();
24043
+ }
24044
+ });
24045
+
23925
24046
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
23926
24047
  import { z as z40 } from "zod";
23927
24048
  function buildEventRegistrationDisplay(source) {
24049
+ const stepLabels = buildEventRegistrationShellStepLabels(source);
23928
24050
  return {
23929
24051
  kind: "event-registration",
23930
24052
  state: "generic-shell",
23931
24053
  className: source.className ?? null,
23932
24054
  titleText: "Event registration",
23933
- bodyText: "Preparing dates, tickets, and booking details.",
23934
- stepLabels: EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS,
24055
+ bodyText: buildEventRegistrationShellBodyText(stepLabels),
24056
+ stepLabels,
23935
24057
  summaryButtonText: source.buttonText?.trim() || "Register"
23936
24058
  };
23937
24059
  }
24060
+ function buildEventRegistrationShellStepLabels(source) {
24061
+ const scopedEvents = scopeEventRegistrationEvents(source);
24062
+ if (scopedEvents.length === 0) {
24063
+ return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
24064
+ }
24065
+ const preSelectedEvent = findPreSelectedEvent({
24066
+ scopedEvents,
24067
+ occurrenceContext: source.occurrenceContext
24068
+ });
24069
+ const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
24070
+ const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
24071
+ eligibility: null,
24072
+ selectedTicketType: null,
24073
+ event: preSelectedEvent
24074
+ }) : false;
24075
+ return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
24076
+ }
24077
+ function scopeEventRegistrationEvents(source) {
24078
+ const events = toRegistrationEvents(source.events ?? []);
24079
+ if (source.occurrenceContext?.seriesId) {
24080
+ return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
24081
+ }
24082
+ const entrySlug = source.contentEntry?.slug;
24083
+ const entryContentType = source.contentEntry?.contentTypeSlug;
24084
+ if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
24085
+ return events.filter((event) => event.slug === entrySlug);
24086
+ }
24087
+ return events;
24088
+ }
24089
+ function shellLabelForRegistrationStep(step, events) {
24090
+ switch (step) {
24091
+ case "select-event":
24092
+ return isDateSelection(events) ? "Date" : "Event";
24093
+ case "select-tickets":
24094
+ return "Tickets";
24095
+ case "enter-details":
24096
+ return "Details";
24097
+ case "select-payment":
24098
+ return "Payment";
24099
+ case "error":
24100
+ case "success":
24101
+ case "submitting":
24102
+ case "redirecting":
24103
+ case "verifying-payment":
24104
+ case "verifying-timeout":
24105
+ case "payment-failed":
24106
+ return "Details";
24107
+ }
24108
+ }
24109
+ function isDateSelection(events) {
24110
+ const firstSeriesId = events[0]?.seriesId;
24111
+ return Boolean(
24112
+ events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
24113
+ );
24114
+ }
24115
+ function buildEventRegistrationShellBodyText(stepLabels) {
24116
+ if (stepLabels.includes("Payment")) {
24117
+ return "Preparing tickets, details, and payment options.";
24118
+ }
24119
+ if (stepLabels[0] === "Tickets") {
24120
+ return "Preparing tickets and booking details.";
24121
+ }
24122
+ return "Preparing dates, tickets, and booking details.";
24123
+ }
23938
24124
  function normalizeEventRegistrationEventInput(value) {
23939
24125
  if (!isRecord7(value)) {
23940
24126
  return value;
@@ -23961,22 +24147,22 @@ function buildEventRegistrationInteractiveIslandProps(props2) {
23961
24147
  source: props2
23962
24148
  });
23963
24149
  }
23964
- var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, eventRegistrationGenericDateStepLabel, eventRegistrationGenericTicketsStepLabel, eventRegistrationGenericDetailsStepLabel, contentEntrySchema3, eventRegistrationPublicEventSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationIslandMetaCodec, eventRegistrationIslandMetaKeys, eventRegistrationBlockRuntime, eventRegistrationInteractiveIslandPropsCodec;
24150
+ var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, contentEntrySchema3, eventRegistrationPublicEventSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationIslandMetaCodec, eventRegistrationIslandMetaKeys, eventRegistrationBlockRuntime, eventRegistrationInteractiveIslandPropsCodec;
23965
24151
  var init_event_registration_interactive = __esm({
23966
24152
  "../blocks/src/system/runtime/nodes/event-registration.interactive.ts"() {
23967
24153
  "use strict";
23968
24154
  init_schemas2();
23969
24155
  init_event_registration_shared();
24156
+ init_events();
23970
24157
  init_pricing2();
23971
24158
  init_islands();
23972
24159
  init_runtime();
23973
24160
  init_contract_schemas();
24161
+ init_wizardSteps();
24162
+ init_registrationDerivations();
24163
+ init_registrationEventAdapter();
23974
24164
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
23975
- [
23976
- eventRegistrationGenericDateStepLabel,
23977
- eventRegistrationGenericTicketsStepLabel,
23978
- eventRegistrationGenericDetailsStepLabel
23979
- ] = EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
24165
+ EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
23980
24166
  contentEntrySchema3 = z40.object({
23981
24167
  id: z40.string(),
23982
24168
  slug: z40.string(),
@@ -24012,11 +24198,7 @@ var init_event_registration_interactive = __esm({
24012
24198
  className: z40.string().nullable(),
24013
24199
  titleText: z40.string(),
24014
24200
  bodyText: z40.string(),
24015
- stepLabels: z40.tuple([
24016
- z40.literal(eventRegistrationGenericDateStepLabel),
24017
- z40.literal(eventRegistrationGenericTicketsStepLabel),
24018
- z40.literal(eventRegistrationGenericDetailsStepLabel)
24019
- ]),
24201
+ stepLabels: z40.array(z40.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
24020
24202
  summaryButtonText: z40.string()
24021
24203
  });
24022
24204
  eventRegistrationHydrationSchema = z40.object({
@@ -25145,6 +25327,15 @@ var init_timetableModel = __esm({
25145
25327
  }
25146
25328
  });
25147
25329
 
25330
+ // ../blocks/src/system/runtime/nodes/event-registration/constants.ts
25331
+ var EVENT_REGISTRATION_ANCHOR_ID;
25332
+ var init_constants3 = __esm({
25333
+ "../blocks/src/system/runtime/nodes/event-registration/constants.ts"() {
25334
+ "use strict";
25335
+ EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
25336
+ }
25337
+ });
25338
+
25148
25339
  // ../blocks/src/system/runtime/shared/components/FeedbackMessage.tsx
25149
25340
  import { jsx as jsx48, jsxs as jsxs33 } from "react/jsx-runtime";
25150
25341
  function joinClasses4(...parts) {
@@ -31664,11 +31855,11 @@ var init_validation2 = __esm({
31664
31855
  });
31665
31856
 
31666
31857
  // ../blocks/src/system/runtime/shared/utils/wizardSteps.ts
31667
- function getStepNumber(step, wizardSteps) {
31858
+ function getStepNumber2(step, wizardSteps) {
31668
31859
  const index = wizardSteps.indexOf(step);
31669
31860
  return index >= 0 ? index + 1 : 1;
31670
31861
  }
31671
- var init_wizardSteps = __esm({
31862
+ var init_wizardSteps2 = __esm({
31672
31863
  "../blocks/src/system/runtime/shared/utils/wizardSteps.ts"() {
31673
31864
  "use strict";
31674
31865
  }
@@ -31684,7 +31875,7 @@ var init_utils2 = __esm({
31684
31875
  init_themePortalRoot();
31685
31876
  init_urlParams();
31686
31877
  init_validation2();
31687
- init_wizardSteps();
31878
+ init_wizardSteps2();
31688
31879
  }
31689
31880
  });
31690
31881
 
@@ -32385,31 +32576,6 @@ var init_StepIndicator2 = __esm({
32385
32576
  }
32386
32577
  });
32387
32578
 
32388
- // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
32389
- function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
32390
- const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
32391
- if (!needsPaymentStep) {
32392
- return baseSteps;
32393
- }
32394
- return [...baseSteps, "select-payment"];
32395
- }
32396
- function getStepNumber2(step, wizardSteps) {
32397
- const index = wizardSteps.indexOf(step);
32398
- return index >= 0 ? index + 1 : 1;
32399
- }
32400
- var WIZARD_STEPS;
32401
- var init_wizardSteps2 = __esm({
32402
- "../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts"() {
32403
- "use strict";
32404
- WIZARD_STEPS = [
32405
- "select-event",
32406
- "select-tickets",
32407
- "enter-details",
32408
- "select-payment"
32409
- ];
32410
- }
32411
- });
32412
-
32413
32579
  // ../blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.ts
32414
32580
  function createInitialRegistrationFlowState(hasPreSelectedContext) {
32415
32581
  return {
@@ -32568,7 +32734,23 @@ var init_registrationStateMachine = __esm({
32568
32734
  }
32569
32735
  });
32570
32736
 
32571
- // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts
32737
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.ts
32738
+ var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
32739
+ var init_event_registration_headless_contract = __esm({
32740
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.ts"() {
32741
+ "use strict";
32742
+ DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
32743
+ }
32744
+ });
32745
+
32746
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts
32747
+ var init_event_registration_headless_override = __esm({
32748
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts"() {
32749
+ "use strict";
32750
+ }
32751
+ });
32752
+
32753
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.ts
32572
32754
  function getRegistrableStatuses(isPreview) {
32573
32755
  return isPreview ? ["active", "draft"] : ["active"];
32574
32756
  }
@@ -32641,11 +32823,20 @@ function missingPaymentSelection() {
32641
32823
  message: "Select a payment option to continue."
32642
32824
  };
32643
32825
  }
32644
- var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
32826
+ var init_event_registration_headless_planning = __esm({
32827
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.ts"() {
32828
+ "use strict";
32829
+ init_event_registration_headless_contract();
32830
+ }
32831
+ });
32832
+
32833
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts
32645
32834
  var init_event_registration_headless_state = __esm({
32646
32835
  "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts"() {
32647
32836
  "use strict";
32648
- DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
32837
+ init_event_registration_headless_contract();
32838
+ init_event_registration_headless_override();
32839
+ init_event_registration_headless_planning();
32649
32840
  }
32650
32841
  });
32651
32842
 
@@ -33192,9 +33383,9 @@ var init_EventSelectionStep = __esm({
33192
33383
  showCapacity
33193
33384
  }) => {
33194
33385
  const selectionMode = getEventSelectionMode(events);
33195
- const isDateSelection = selectionMode === "date";
33386
+ const isDateSelection2 = selectionMode === "date";
33196
33387
  return /* @__PURE__ */ jsxs50("div", { className: "er-stack", children: [
33197
- /* @__PURE__ */ jsx74("h3", { className: "er-title", children: isDateSelection ? "Choose a date" : "Select an event" }),
33388
+ /* @__PURE__ */ jsx74("h3", { className: "er-title", children: isDateSelection2 ? "Choose a date" : "Select an event" }),
33198
33389
  /* @__PURE__ */ jsx74("div", { className: "er-event-grid", children: events.map((event) => {
33199
33390
  const isSelected = selectedEvent?.publicEventId === event.publicEventId;
33200
33391
  const isSoldOut = event.capacity !== null && event.availableSpots === 0;
@@ -33222,9 +33413,9 @@ var init_EventSelectionStep = __esm({
33222
33413
  className: cardClasses,
33223
33414
  children: /* @__PURE__ */ jsxs50("div", { className: "er-event-option", children: [
33224
33415
  /* @__PURE__ */ jsxs50("div", { className: "er-event-option-main", children: [
33225
- /* @__PURE__ */ jsx74("h4", { className: "er-event-title", children: isDateSelection ? formatDate3(event.startsAt, { timeZone }) : event.title }),
33416
+ /* @__PURE__ */ jsx74("h4", { className: "er-event-title", children: isDateSelection2 ? formatDate3(event.startsAt, { timeZone }) : event.title }),
33226
33417
  /* @__PURE__ */ jsxs50("p", { className: "er-text er-text--muted", children: [
33227
- isDateSelection ? formatTime3(event.startsAt, { timeZone }) : `${formatDate3(event.startsAt, { timeZone })} at ${formatTime3(event.startsAt, { timeZone })}`,
33418
+ isDateSelection2 ? formatTime3(event.startsAt, { timeZone }) : `${formatDate3(event.startsAt, { timeZone })} at ${formatTime3(event.startsAt, { timeZone })}`,
33228
33419
  showVenue && event.venue && /* @__PURE__ */ jsxs50(Fragment9, { children: [
33229
33420
  /* @__PURE__ */ jsx74("span", { "aria-hidden": "true", children: " \xB7 " }),
33230
33421
  event.venue.name
@@ -34251,7 +34442,7 @@ var init_event_registration = __esm({
34251
34442
  init_utils3();
34252
34443
  init_hooks();
34253
34444
  init_sessionStorage();
34254
- init_wizardSteps2();
34445
+ init_wizardSteps();
34255
34446
  init_EventSelectionStep();
34256
34447
  init_TicketSelectionStep();
34257
34448
  init_AttendeeDetailsStep();
@@ -35016,102 +35207,6 @@ var init_useEventRegistrationSubmit = __esm({
35016
35207
  }
35017
35208
  });
35018
35209
 
35019
- // ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
35020
- function eventMatchesOccurrenceId(event, occurrenceId) {
35021
- return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
35022
- }
35023
- function findEventByOccurrenceId(events, occurrenceId) {
35024
- return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
35025
- }
35026
- function findPreSelectedEvent(input) {
35027
- const occurrenceContext = input.occurrenceContext;
35028
- if (!occurrenceContext) {
35029
- return null;
35030
- }
35031
- const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
35032
- startsAt: occurrenceContext.startsAt,
35033
- timeZone: occurrenceContext.timeZone
35034
- }));
35035
- return input.scopedEvents.find(
35036
- (event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
35037
- startsAt: event.startsAt,
35038
- timeZone: event.timeZone
35039
- })) === contextDate
35040
- ) ?? null;
35041
- }
35042
- function resolveRegistrationTarget(input) {
35043
- const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
35044
- if (!occurrenceId) {
35045
- return null;
35046
- }
35047
- return {
35048
- occurrenceId,
35049
- selectedEventId: input.selectedEvent?.publicEventId ?? null
35050
- };
35051
- }
35052
- function resolveEventRequiresPayment(input) {
35053
- if (input.eligibility) {
35054
- return input.eligibility.requiresPayment;
35055
- }
35056
- if (input.selectedTicketType) {
35057
- return input.selectedTicketType.priceAmount > 0;
35058
- }
35059
- if (!input.event) {
35060
- return false;
35061
- }
35062
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
35063
- }
35064
- function resolveDiscountContext(input) {
35065
- const selection = input.paymentSelection.method ? input.paymentSelection : null;
35066
- if (!input.event) {
35067
- return null;
35068
- }
35069
- if (selection?.method === "pass_bundle" && selection.bundlePassId) {
35070
- return { type: "pass", passId: selection.bundlePassId };
35071
- }
35072
- if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
35073
- return { type: "membership", membershipId: selection.bundleMembershipId };
35074
- }
35075
- if (!input.eventRequiresPayment) {
35076
- return null;
35077
- }
35078
- if (selection?.method && selection.method !== "stripe") {
35079
- return null;
35080
- }
35081
- return {
35082
- type: "event",
35083
- eventSeriesId: input.event.seriesId,
35084
- eventCategoryId: input.event.eventCategory?.id ?? null,
35085
- ticketsCount: input.ticketsCount
35086
- };
35087
- }
35088
- var init_registrationDerivations = __esm({
35089
- "../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts"() {
35090
- "use strict";
35091
- init_src();
35092
- init_pricing2();
35093
- }
35094
- });
35095
-
35096
- // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
35097
- function toRegistrationEvent(event) {
35098
- return {
35099
- ...event,
35100
- pricing: resolveRuntimeEventPricing(event),
35101
- publicEventId: event.id,
35102
- registrationOccurrenceId: event.occurrenceId
35103
- };
35104
- }
35105
- function toRegistrationEvents(events) {
35106
- return events.map(toRegistrationEvent);
35107
- }
35108
- var init_registrationEventAdapter = __esm({
35109
- "../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts"() {
35110
- "use strict";
35111
- init_pricing2();
35112
- }
35113
- });
35114
-
35115
35210
  // ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.ts
35116
35211
  import { useCallback as useCallback7, useEffect as useEffect14, useMemo as useMemo7, useReducer as useReducer5, useState as useState8 } from "react";
35117
35212
  function useEventRegistrationWizard(options) {
@@ -35406,23 +35501,29 @@ function useEventRegistrationWizard(options) {
35406
35501
  );
35407
35502
  const handleDetailsComplete = async () => {
35408
35503
  if (ticketTypeSelectionRequired && !hasValidSelectedTicketType) {
35409
- setErrorMessage("Select a ticket type to continue.");
35504
+ const message = "Select a ticket type to continue.";
35505
+ setErrorMessage(message);
35410
35506
  setStep("error");
35411
- return;
35507
+ return { ok: false, reason: "blocked", message };
35412
35508
  }
35413
35509
  if (!validateForm()) {
35414
35510
  setGuestSectionShake(true);
35415
- return;
35511
+ return {
35512
+ ok: false,
35513
+ reason: "validation-failed",
35514
+ message: "Check the highlighted fields and try again."
35515
+ };
35416
35516
  }
35417
35517
  if (waitlistClaim.claim === null && eligibility?.isFull && !eligibility.canJoinWaitlist) {
35418
- setErrorMessage("This event is sold out.");
35518
+ const message = "This event is sold out.";
35519
+ setErrorMessage(message);
35419
35520
  setStep("error");
35420
- return;
35521
+ return { ok: false, reason: "blocked", message };
35421
35522
  }
35422
35523
  const shouldCollectPayment = !eligibility?.canJoinWaitlist && requiresPaymentStep({ eventRequiresPayment, paymentSelection });
35423
35524
  if (shouldCollectPayment) {
35424
35525
  setStep("select-payment");
35425
- return;
35526
+ return { ok: true, outcome: "payment-step" };
35426
35527
  }
35427
35528
  const submitPlan = resolveEventRegistrationSubmitPlan({
35428
35529
  paymentSelection,
@@ -35432,14 +35533,22 @@ function useEventRegistrationWizard(options) {
35432
35533
  if (!submitPlan.ok) {
35433
35534
  setErrorMessage(submitPlan.message);
35434
35535
  setStep("error");
35435
- return;
35536
+ return { ok: false, reason: "blocked", message: submitPlan.message };
35436
35537
  }
35437
- await handleSubmit(
35538
+ const submitResult = await handleSubmit(
35438
35539
  submitPlan.args.method,
35439
35540
  submitPlan.args.passId,
35440
35541
  submitPlan.args.membershipId,
35441
35542
  submitPlan.args.selection
35442
35543
  );
35544
+ if (!submitResult.ok) {
35545
+ return {
35546
+ ok: false,
35547
+ reason: submitResult.reason === "submission-failed" ? "submission-failed" : "blocked",
35548
+ message: submitResult.message
35549
+ };
35550
+ }
35551
+ return { ok: true, outcome: "submitted" };
35443
35552
  };
35444
35553
  const handlePaymentSelect = async () => {
35445
35554
  const submitPlan = resolveEventRegistrationSubmitPlan({
@@ -35807,7 +35916,7 @@ function EventRegistrationWizard(props2) {
35807
35916
  return "";
35808
35917
  }
35809
35918
  });
35810
- const currentStepNumber = getStepNumber2(wizard.step, activeWizardSteps);
35919
+ const currentStepNumber = getStepNumber(wizard.step, activeWizardSteps);
35811
35920
  const summaryEvent = wizard.selectedEvent ?? wizard.preSelectedEvent;
35812
35921
  const summaryEventPricingType = summaryEvent ? publicEventPricingType(summaryEvent.pricing) : "free";
35813
35922
  const waitlistClaimRequiresPortalLogin = wizard.waitlistClaim.requiresPortalLogin && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking";
@@ -35886,7 +35995,7 @@ function EventRegistrationWizard(props2) {
35886
35995
  wizard.step === "error" && /* @__PURE__ */ jsx90(ErrorStep, { message: wizard.errorMessage, onRetry: wizard.handleRetry })
35887
35996
  ] }) });
35888
35997
  }
35889
- var EVENT_REGISTRATION_ANCHOR_ID, EVENT_PORTAL_AUTH_COPY;
35998
+ var EVENT_PORTAL_AUTH_COPY;
35890
35999
  var init_EventRegistrationWizard = __esm({
35891
36000
  "../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.tsx"() {
35892
36001
  "use strict";
@@ -35894,7 +36003,7 @@ var init_EventRegistrationWizard = __esm({
35894
36003
  init_src();
35895
36004
  init_client2();
35896
36005
  init_StepIndicator2();
35897
- init_wizardSteps2();
36006
+ init_wizardSteps();
35898
36007
  init_registrationStateMachine();
35899
36008
  init_event_registration_headless_state();
35900
36009
  init_EventRegistrationWizardContent();
@@ -35905,8 +36014,8 @@ var init_EventRegistrationWizard = __esm({
35905
36014
  init_MagicLinkForm();
35906
36015
  init_spinner();
35907
36016
  init_buttons();
36017
+ init_constants3();
35908
36018
  init_event_registration();
35909
- EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
35910
36019
  EVENT_PORTAL_AUTH_COPY = {
35911
36020
  membership: {
35912
36021
  title: "Have a pass or membership?",
@@ -35980,6 +36089,7 @@ var init_event_registration_client = __esm({
35980
36089
  "use strict";
35981
36090
  "use client";
35982
36091
  init_EventRegistrationWizard();
36092
+ init_constants3();
35983
36093
  init_PastOccurrenceNotice();
35984
36094
  EventRegistrationClient = (clientProps) => {
35985
36095
  const isPast = isPastOccurrence(clientProps.occurrenceContext?.startsAt);
@@ -37326,7 +37436,7 @@ function useCourseRegistrationWizard(props2) {
37326
37436
  ),
37327
37437
  [hasPreSelectedCourse, hasCoursePayment, canUseMembership, bookingMode, isMembershipFastTrack]
37328
37438
  );
37329
- const currentStepNumber = getStepNumber(step, wizardSteps);
37439
+ const currentStepNumber = getStepNumber2(step, wizardSteps);
37330
37440
  const totalSteps = wizardSteps.length;
37331
37441
  const stepLabels = getStepLabels(wizardSteps);
37332
37442
  const canShowPortalAuthSidebarOnCurrentStep = step !== "success" && step !== "waitlist" && step !== "error";
@@ -53217,6 +53327,7 @@ var EventListingSSR = (props2) => {
53217
53327
 
53218
53328
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
53219
53329
  init_event_registration_interactive();
53330
+ init_constants3();
53220
53331
  import { jsx as jsx47, jsxs as jsxs32 } from "react/jsx-runtime";
53221
53332
  function cx(...classes) {
53222
53333
  return classes.filter((className) => Boolean(className)).join(" ");
@@ -53284,42 +53395,51 @@ function EventRegistrationSSR({
53284
53395
  function EventRegistrationShell({
53285
53396
  display
53286
53397
  }) {
53287
- return /* @__PURE__ */ jsx47("div", { className: "er-container er-registration-shell", "aria-busy": "true", role: "status", children: /* @__PURE__ */ jsxs32("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
53288
- /* @__PURE__ */ jsxs32("div", { className: "er-payment-layout-main", children: [
53289
- /* @__PURE__ */ jsx47("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx47("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
53290
- const isActive = index === 0;
53291
- return /* @__PURE__ */ jsxs32("li", { className: "er-step", children: [
53292
- /* @__PURE__ */ jsx47("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
53293
- /* @__PURE__ */ jsx47("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
53294
- index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx47("span", { className: "er-step-connector" }) : null
53295
- ] }, label);
53296
- }) }) }),
53297
- /* @__PURE__ */ jsxs32("div", { className: "er-stack", children: [
53298
- /* @__PURE__ */ jsxs32("div", { children: [
53299
- /* @__PURE__ */ jsx47("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
53300
- /* @__PURE__ */ jsx47("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
53301
- /* @__PURE__ */ jsx47("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
53398
+ return /* @__PURE__ */ jsx47(
53399
+ "div",
53400
+ {
53401
+ id: EVENT_REGISTRATION_ANCHOR_ID,
53402
+ className: "er-container er-registration-shell",
53403
+ "aria-busy": "true",
53404
+ role: "status",
53405
+ children: /* @__PURE__ */ jsxs32("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
53406
+ /* @__PURE__ */ jsxs32("div", { className: "er-payment-layout-main", children: [
53407
+ /* @__PURE__ */ jsx47("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx47("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
53408
+ const isActive = index === 0;
53409
+ return /* @__PURE__ */ jsxs32("li", { className: "er-step", children: [
53410
+ /* @__PURE__ */ jsx47("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
53411
+ /* @__PURE__ */ jsx47("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
53412
+ index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx47("span", { className: "er-step-connector" }) : null
53413
+ ] }, label);
53414
+ }) }) }),
53415
+ /* @__PURE__ */ jsxs32("div", { className: "er-stack", children: [
53416
+ /* @__PURE__ */ jsxs32("div", { children: [
53417
+ /* @__PURE__ */ jsx47("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
53418
+ /* @__PURE__ */ jsx47("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
53419
+ /* @__PURE__ */ jsx47("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
53420
+ ] }),
53421
+ /* @__PURE__ */ jsxs32("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
53422
+ /* @__PURE__ */ jsxs32("div", { className: "er-event-card er-registration-shell__card", children: [
53423
+ /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
53424
+ /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
53425
+ ] }),
53426
+ /* @__PURE__ */ jsxs32("div", { className: "er-event-card er-registration-shell__card", children: [
53427
+ /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
53428
+ /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
53429
+ ] })
53430
+ ] })
53431
+ ] })
53302
53432
  ] }),
53303
- /* @__PURE__ */ jsxs32("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
53304
- /* @__PURE__ */ jsxs32("div", { className: "er-event-card er-registration-shell__card", children: [
53305
- /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
53306
- /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
53307
- ] }),
53308
- /* @__PURE__ */ jsxs32("div", { className: "er-event-card er-registration-shell__card", children: [
53433
+ /* @__PURE__ */ jsx47("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs32("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
53434
+ /* @__PURE__ */ jsxs32("div", { className: "er-summary-bar-info", children: [
53309
53435
  /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
53310
53436
  /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
53311
- ] })
53312
- ] })
53437
+ ] }),
53438
+ /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
53439
+ ] }) })
53313
53440
  ] })
53314
- ] }),
53315
- /* @__PURE__ */ jsx47("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs32("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
53316
- /* @__PURE__ */ jsxs32("div", { className: "er-summary-bar-info", children: [
53317
- /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
53318
- /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
53319
- ] }),
53320
- /* @__PURE__ */ jsx47("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
53321
- ] }) })
53322
- ] }) });
53441
+ }
53442
+ );
53323
53443
  }
53324
53444
  var event_registration_server_default = EventRegistrationSSR;
53325
53445