@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
@@ -28767,19 +28767,205 @@ var init_EventCombined_interactive = __esm({
28767
28767
  }
28768
28768
  });
28769
28769
 
28770
+ // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
28771
+ function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
28772
+ const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
28773
+ if (!needsPaymentStep) {
28774
+ return baseSteps;
28775
+ }
28776
+ return [...baseSteps, "select-payment"];
28777
+ }
28778
+ function getStepNumber(step, wizardSteps) {
28779
+ const index = wizardSteps.indexOf(step);
28780
+ return index >= 0 ? index + 1 : 1;
28781
+ }
28782
+ var WIZARD_STEPS;
28783
+ var init_wizardSteps = __esm({
28784
+ "../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts"() {
28785
+ "use strict";
28786
+ WIZARD_STEPS = [
28787
+ "select-event",
28788
+ "select-tickets",
28789
+ "enter-details",
28790
+ "select-payment"
28791
+ ];
28792
+ }
28793
+ });
28794
+
28795
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
28796
+ function eventMatchesOccurrenceId(event, occurrenceId) {
28797
+ return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
28798
+ }
28799
+ function findEventByOccurrenceId(events, occurrenceId) {
28800
+ return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
28801
+ }
28802
+ function findPreSelectedEvent(input) {
28803
+ const occurrenceContext = input.occurrenceContext;
28804
+ if (!occurrenceContext) {
28805
+ return null;
28806
+ }
28807
+ const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
28808
+ startsAt: occurrenceContext.startsAt,
28809
+ timeZone: occurrenceContext.timeZone
28810
+ }));
28811
+ return input.scopedEvents.find(
28812
+ (event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
28813
+ startsAt: event.startsAt,
28814
+ timeZone: event.timeZone
28815
+ })) === contextDate
28816
+ ) ?? null;
28817
+ }
28818
+ function resolveRegistrationTarget(input) {
28819
+ const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
28820
+ if (!occurrenceId) {
28821
+ return null;
28822
+ }
28823
+ return {
28824
+ occurrenceId,
28825
+ selectedEventId: input.selectedEvent?.publicEventId ?? null
28826
+ };
28827
+ }
28828
+ function resolveEventRequiresPayment(input) {
28829
+ if (input.eligibility) {
28830
+ return input.eligibility.requiresPayment;
28831
+ }
28832
+ if (input.selectedTicketType) {
28833
+ return input.selectedTicketType.priceAmount > 0;
28834
+ }
28835
+ if (!input.event) {
28836
+ return false;
28837
+ }
28838
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
28839
+ }
28840
+ function resolveDiscountContext(input) {
28841
+ const selection = input.paymentSelection.method ? input.paymentSelection : null;
28842
+ if (!input.event) {
28843
+ return null;
28844
+ }
28845
+ if (selection?.method === "pass_bundle" && selection.bundlePassId) {
28846
+ return { type: "pass", passId: selection.bundlePassId };
28847
+ }
28848
+ if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
28849
+ return { type: "membership", membershipId: selection.bundleMembershipId };
28850
+ }
28851
+ if (!input.eventRequiresPayment) {
28852
+ return null;
28853
+ }
28854
+ if (selection?.method && selection.method !== "stripe") {
28855
+ return null;
28856
+ }
28857
+ return {
28858
+ type: "event",
28859
+ eventSeriesId: input.event.seriesId,
28860
+ eventCategoryId: input.event.eventCategory?.id ?? null,
28861
+ ticketsCount: input.ticketsCount
28862
+ };
28863
+ }
28864
+ var init_registrationDerivations = __esm({
28865
+ "../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts"() {
28866
+ "use strict";
28867
+ init_src();
28868
+ init_pricing2();
28869
+ }
28870
+ });
28871
+
28872
+ // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
28873
+ function toRegistrationEvent(event) {
28874
+ return {
28875
+ ...event,
28876
+ pricing: resolveRuntimeEventPricing(event),
28877
+ publicEventId: event.id,
28878
+ registrationOccurrenceId: event.occurrenceId
28879
+ };
28880
+ }
28881
+ function toRegistrationEvents(events) {
28882
+ return events.map(toRegistrationEvent);
28883
+ }
28884
+ var init_registrationEventAdapter = __esm({
28885
+ "../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts"() {
28886
+ "use strict";
28887
+ init_pricing2();
28888
+ }
28889
+ });
28890
+
28770
28891
  // ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
28771
28892
  import { z as z43 } from "zod";
28772
28893
  function buildEventRegistrationDisplay(source) {
28894
+ const stepLabels = buildEventRegistrationShellStepLabels(source);
28773
28895
  return {
28774
28896
  kind: "event-registration",
28775
28897
  state: "generic-shell",
28776
28898
  className: source.className ?? null,
28777
28899
  titleText: "Event registration",
28778
- bodyText: "Preparing dates, tickets, and booking details.",
28779
- stepLabels: EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS,
28900
+ bodyText: buildEventRegistrationShellBodyText(stepLabels),
28901
+ stepLabels,
28780
28902
  summaryButtonText: source.buttonText?.trim() || "Register"
28781
28903
  };
28782
28904
  }
28905
+ function buildEventRegistrationShellStepLabels(source) {
28906
+ const scopedEvents = scopeEventRegistrationEvents(source);
28907
+ if (scopedEvents.length === 0) {
28908
+ return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
28909
+ }
28910
+ const preSelectedEvent = findPreSelectedEvent({
28911
+ scopedEvents,
28912
+ occurrenceContext: source.occurrenceContext
28913
+ });
28914
+ const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
28915
+ const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
28916
+ eligibility: null,
28917
+ selectedTicketType: null,
28918
+ event: preSelectedEvent
28919
+ }) : false;
28920
+ return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
28921
+ }
28922
+ function scopeEventRegistrationEvents(source) {
28923
+ const events = toRegistrationEvents(source.events ?? []);
28924
+ if (source.occurrenceContext?.seriesId) {
28925
+ return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
28926
+ }
28927
+ const entrySlug = source.contentEntry?.slug;
28928
+ const entryContentType = source.contentEntry?.contentTypeSlug;
28929
+ if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
28930
+ return events.filter((event) => event.slug === entrySlug);
28931
+ }
28932
+ return events;
28933
+ }
28934
+ function shellLabelForRegistrationStep(step, events) {
28935
+ switch (step) {
28936
+ case "select-event":
28937
+ return isDateSelection(events) ? "Date" : "Event";
28938
+ case "select-tickets":
28939
+ return "Tickets";
28940
+ case "enter-details":
28941
+ return "Details";
28942
+ case "select-payment":
28943
+ return "Payment";
28944
+ case "error":
28945
+ case "success":
28946
+ case "submitting":
28947
+ case "redirecting":
28948
+ case "verifying-payment":
28949
+ case "verifying-timeout":
28950
+ case "payment-failed":
28951
+ return "Details";
28952
+ }
28953
+ }
28954
+ function isDateSelection(events) {
28955
+ const firstSeriesId = events[0]?.seriesId;
28956
+ return Boolean(
28957
+ events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
28958
+ );
28959
+ }
28960
+ function buildEventRegistrationShellBodyText(stepLabels) {
28961
+ if (stepLabels.includes("Payment")) {
28962
+ return "Preparing tickets, details, and payment options.";
28963
+ }
28964
+ if (stepLabels[0] === "Tickets") {
28965
+ return "Preparing tickets and booking details.";
28966
+ }
28967
+ return "Preparing dates, tickets, and booking details.";
28968
+ }
28783
28969
  function normalizeEventRegistrationEventInput(value) {
28784
28970
  if (!isRecord5(value)) {
28785
28971
  return value;
@@ -28806,22 +28992,22 @@ function buildEventRegistrationInteractiveIslandProps(props2) {
28806
28992
  source: props2
28807
28993
  });
28808
28994
  }
28809
- var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, eventRegistrationGenericDateStepLabel, eventRegistrationGenericTicketsStepLabel, eventRegistrationGenericDetailsStepLabel, contentEntrySchema2, eventRegistrationPublicEventSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationIslandMetaCodec, eventRegistrationIslandMetaKeys, eventRegistrationBlockRuntime, eventRegistrationInteractiveIslandPropsCodec;
28995
+ var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS, EVENT_REGISTRATION_SHELL_STEP_LABELS, contentEntrySchema2, eventRegistrationPublicEventSchema, eventRegistrationSourceSchema, eventRegistrationDisplaySchema, eventRegistrationHydrationSchema, eventRegistrationRenderSchema, eventRegistrationIslandMetaCodec, eventRegistrationIslandMetaKeys, eventRegistrationBlockRuntime, eventRegistrationInteractiveIslandPropsCodec;
28810
28996
  var init_event_registration_interactive = __esm({
28811
28997
  "../blocks/src/system/runtime/nodes/event-registration.interactive.ts"() {
28812
28998
  "use strict";
28813
28999
  init_schemas2();
28814
29000
  init_event_registration_shared();
29001
+ init_events();
28815
29002
  init_pricing2();
28816
29003
  init_islands();
28817
29004
  init_runtime();
28818
29005
  init_contract_schemas();
29006
+ init_wizardSteps();
29007
+ init_registrationDerivations();
29008
+ init_registrationEventAdapter();
28819
29009
  EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
28820
- [
28821
- eventRegistrationGenericDateStepLabel,
28822
- eventRegistrationGenericTicketsStepLabel,
28823
- eventRegistrationGenericDetailsStepLabel
28824
- ] = EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
29010
+ EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
28825
29011
  contentEntrySchema2 = z43.object({
28826
29012
  id: z43.string(),
28827
29013
  slug: z43.string(),
@@ -28857,11 +29043,7 @@ var init_event_registration_interactive = __esm({
28857
29043
  className: z43.string().nullable(),
28858
29044
  titleText: z43.string(),
28859
29045
  bodyText: z43.string(),
28860
- stepLabels: z43.tuple([
28861
- z43.literal(eventRegistrationGenericDateStepLabel),
28862
- z43.literal(eventRegistrationGenericTicketsStepLabel),
28863
- z43.literal(eventRegistrationGenericDetailsStepLabel)
28864
- ]),
29046
+ stepLabels: z43.array(z43.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
28865
29047
  summaryButtonText: z43.string()
28866
29048
  });
28867
29049
  eventRegistrationHydrationSchema = z43.object({
@@ -42241,11 +42423,11 @@ var init_validation2 = __esm({
42241
42423
  });
42242
42424
 
42243
42425
  // ../blocks/src/system/runtime/shared/utils/wizardSteps.ts
42244
- function getStepNumber(step, wizardSteps) {
42426
+ function getStepNumber2(step, wizardSteps) {
42245
42427
  const index = wizardSteps.indexOf(step);
42246
42428
  return index >= 0 ? index + 1 : 1;
42247
42429
  }
42248
- var init_wizardSteps = __esm({
42430
+ var init_wizardSteps2 = __esm({
42249
42431
  "../blocks/src/system/runtime/shared/utils/wizardSteps.ts"() {
42250
42432
  "use strict";
42251
42433
  }
@@ -42261,7 +42443,7 @@ var init_utils4 = __esm({
42261
42443
  init_themePortalRoot();
42262
42444
  init_urlParams();
42263
42445
  init_validation2();
42264
- init_wizardSteps();
42446
+ init_wizardSteps2();
42265
42447
  }
42266
42448
  });
42267
42449
 
@@ -42907,31 +43089,6 @@ var init_StepIndicator2 = __esm({
42907
43089
  }
42908
43090
  });
42909
43091
 
42910
- // ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
42911
- function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
42912
- const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
42913
- if (!needsPaymentStep) {
42914
- return baseSteps;
42915
- }
42916
- return [...baseSteps, "select-payment"];
42917
- }
42918
- function getStepNumber2(step, wizardSteps) {
42919
- const index = wizardSteps.indexOf(step);
42920
- return index >= 0 ? index + 1 : 1;
42921
- }
42922
- var WIZARD_STEPS;
42923
- var init_wizardSteps2 = __esm({
42924
- "../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts"() {
42925
- "use strict";
42926
- WIZARD_STEPS = [
42927
- "select-event",
42928
- "select-tickets",
42929
- "enter-details",
42930
- "select-payment"
42931
- ];
42932
- }
42933
- });
42934
-
42935
43092
  // ../blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.ts
42936
43093
  function createInitialRegistrationFlowState(hasPreSelectedContext) {
42937
43094
  return {
@@ -43090,7 +43247,23 @@ var init_registrationStateMachine = __esm({
43090
43247
  }
43091
43248
  });
43092
43249
 
43093
- // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts
43250
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.ts
43251
+ var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
43252
+ var init_event_registration_headless_contract = __esm({
43253
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.ts"() {
43254
+ "use strict";
43255
+ DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
43256
+ }
43257
+ });
43258
+
43259
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts
43260
+ var init_event_registration_headless_override = __esm({
43261
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts"() {
43262
+ "use strict";
43263
+ }
43264
+ });
43265
+
43266
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.ts
43094
43267
  function getRegistrableStatuses(isPreview) {
43095
43268
  return isPreview ? ["active", "draft"] : ["active"];
43096
43269
  }
@@ -43163,11 +43336,20 @@ function missingPaymentSelection() {
43163
43336
  message: "Select a payment option to continue."
43164
43337
  };
43165
43338
  }
43166
- var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
43339
+ var init_event_registration_headless_planning = __esm({
43340
+ "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.ts"() {
43341
+ "use strict";
43342
+ init_event_registration_headless_contract();
43343
+ }
43344
+ });
43345
+
43346
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts
43167
43347
  var init_event_registration_headless_state = __esm({
43168
43348
  "../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts"() {
43169
43349
  "use strict";
43170
- DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
43350
+ init_event_registration_headless_contract();
43351
+ init_event_registration_headless_override();
43352
+ init_event_registration_headless_planning();
43171
43353
  }
43172
43354
  });
43173
43355
 
@@ -43714,9 +43896,9 @@ var init_EventSelectionStep = __esm({
43714
43896
  showCapacity
43715
43897
  }) => {
43716
43898
  const selectionMode = getEventSelectionMode(events);
43717
- const isDateSelection = selectionMode === "date";
43899
+ const isDateSelection2 = selectionMode === "date";
43718
43900
  return /* @__PURE__ */ jsxs26("div", { className: "er-stack", children: [
43719
- /* @__PURE__ */ jsx41("h3", { className: "er-title", children: isDateSelection ? "Choose a date" : "Select an event" }),
43901
+ /* @__PURE__ */ jsx41("h3", { className: "er-title", children: isDateSelection2 ? "Choose a date" : "Select an event" }),
43720
43902
  /* @__PURE__ */ jsx41("div", { className: "er-event-grid", children: events.map((event) => {
43721
43903
  const isSelected = selectedEvent?.publicEventId === event.publicEventId;
43722
43904
  const isSoldOut = event.capacity !== null && event.availableSpots === 0;
@@ -43744,9 +43926,9 @@ var init_EventSelectionStep = __esm({
43744
43926
  className: cardClasses,
43745
43927
  children: /* @__PURE__ */ jsxs26("div", { className: "er-event-option", children: [
43746
43928
  /* @__PURE__ */ jsxs26("div", { className: "er-event-option-main", children: [
43747
- /* @__PURE__ */ jsx41("h4", { className: "er-event-title", children: isDateSelection ? formatDate3(event.startsAt, { timeZone }) : event.title }),
43929
+ /* @__PURE__ */ jsx41("h4", { className: "er-event-title", children: isDateSelection2 ? formatDate3(event.startsAt, { timeZone }) : event.title }),
43748
43930
  /* @__PURE__ */ jsxs26("p", { className: "er-text er-text--muted", children: [
43749
- isDateSelection ? formatTime3(event.startsAt, { timeZone }) : `${formatDate3(event.startsAt, { timeZone })} at ${formatTime3(event.startsAt, { timeZone })}`,
43931
+ isDateSelection2 ? formatTime3(event.startsAt, { timeZone }) : `${formatDate3(event.startsAt, { timeZone })} at ${formatTime3(event.startsAt, { timeZone })}`,
43750
43932
  showVenue && event.venue && /* @__PURE__ */ jsxs26(Fragment6, { children: [
43751
43933
  /* @__PURE__ */ jsx41("span", { "aria-hidden": "true", children: " \xB7 " }),
43752
43934
  event.venue.name
@@ -44773,7 +44955,7 @@ var init_event_registration = __esm({
44773
44955
  init_utils5();
44774
44956
  init_hooks();
44775
44957
  init_sessionStorage();
44776
- init_wizardSteps2();
44958
+ init_wizardSteps();
44777
44959
  init_EventSelectionStep();
44778
44960
  init_TicketSelectionStep();
44779
44961
  init_AttendeeDetailsStep();
@@ -45538,102 +45720,6 @@ var init_useEventRegistrationSubmit = __esm({
45538
45720
  }
45539
45721
  });
45540
45722
 
45541
- // ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
45542
- function eventMatchesOccurrenceId(event, occurrenceId) {
45543
- return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
45544
- }
45545
- function findEventByOccurrenceId(events, occurrenceId) {
45546
- return events.find((event) => eventMatchesOccurrenceId(event, occurrenceId)) ?? null;
45547
- }
45548
- function findPreSelectedEvent(input) {
45549
- const occurrenceContext = input.occurrenceContext;
45550
- if (!occurrenceContext) {
45551
- return null;
45552
- }
45553
- const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
45554
- startsAt: occurrenceContext.startsAt,
45555
- timeZone: occurrenceContext.timeZone
45556
- }));
45557
- return input.scopedEvents.find(
45558
- (event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
45559
- startsAt: event.startsAt,
45560
- timeZone: event.timeZone
45561
- })) === contextDate
45562
- ) ?? null;
45563
- }
45564
- function resolveRegistrationTarget(input) {
45565
- const occurrenceId = input.occurrenceContext?.id ?? input.selectedEvent?.registrationOccurrenceId ?? null;
45566
- if (!occurrenceId) {
45567
- return null;
45568
- }
45569
- return {
45570
- occurrenceId,
45571
- selectedEventId: input.selectedEvent?.publicEventId ?? null
45572
- };
45573
- }
45574
- function resolveEventRequiresPayment(input) {
45575
- if (input.eligibility) {
45576
- return input.eligibility.requiresPayment;
45577
- }
45578
- if (input.selectedTicketType) {
45579
- return input.selectedTicketType.priceAmount > 0;
45580
- }
45581
- if (!input.event) {
45582
- return false;
45583
- }
45584
- return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
45585
- }
45586
- function resolveDiscountContext(input) {
45587
- const selection = input.paymentSelection.method ? input.paymentSelection : null;
45588
- if (!input.event) {
45589
- return null;
45590
- }
45591
- if (selection?.method === "pass_bundle" && selection.bundlePassId) {
45592
- return { type: "pass", passId: selection.bundlePassId };
45593
- }
45594
- if (selection?.method === "membership_bundle" && selection.bundleMembershipId) {
45595
- return { type: "membership", membershipId: selection.bundleMembershipId };
45596
- }
45597
- if (!input.eventRequiresPayment) {
45598
- return null;
45599
- }
45600
- if (selection?.method && selection.method !== "stripe") {
45601
- return null;
45602
- }
45603
- return {
45604
- type: "event",
45605
- eventSeriesId: input.event.seriesId,
45606
- eventCategoryId: input.event.eventCategory?.id ?? null,
45607
- ticketsCount: input.ticketsCount
45608
- };
45609
- }
45610
- var init_registrationDerivations = __esm({
45611
- "../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts"() {
45612
- "use strict";
45613
- init_src();
45614
- init_pricing2();
45615
- }
45616
- });
45617
-
45618
- // ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
45619
- function toRegistrationEvent(event) {
45620
- return {
45621
- ...event,
45622
- pricing: resolveRuntimeEventPricing(event),
45623
- publicEventId: event.id,
45624
- registrationOccurrenceId: event.occurrenceId
45625
- };
45626
- }
45627
- function toRegistrationEvents(events) {
45628
- return events.map(toRegistrationEvent);
45629
- }
45630
- var init_registrationEventAdapter = __esm({
45631
- "../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts"() {
45632
- "use strict";
45633
- init_pricing2();
45634
- }
45635
- });
45636
-
45637
45723
  // ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.ts
45638
45724
  import { useCallback as useCallback8, useEffect as useEffect15, useMemo as useMemo10, useReducer as useReducer6, useState as useState11 } from "react";
45639
45725
  function useEventRegistrationWizard(options) {
@@ -45928,23 +46014,29 @@ function useEventRegistrationWizard(options) {
45928
46014
  );
45929
46015
  const handleDetailsComplete = async () => {
45930
46016
  if (ticketTypeSelectionRequired && !hasValidSelectedTicketType) {
45931
- setErrorMessage("Select a ticket type to continue.");
46017
+ const message = "Select a ticket type to continue.";
46018
+ setErrorMessage(message);
45932
46019
  setStep("error");
45933
- return;
46020
+ return { ok: false, reason: "blocked", message };
45934
46021
  }
45935
46022
  if (!validateForm()) {
45936
46023
  setGuestSectionShake(true);
45937
- return;
46024
+ return {
46025
+ ok: false,
46026
+ reason: "validation-failed",
46027
+ message: "Check the highlighted fields and try again."
46028
+ };
45938
46029
  }
45939
46030
  if (waitlistClaim.claim === null && eligibility?.isFull && !eligibility.canJoinWaitlist) {
45940
- setErrorMessage("This event is sold out.");
46031
+ const message = "This event is sold out.";
46032
+ setErrorMessage(message);
45941
46033
  setStep("error");
45942
- return;
46034
+ return { ok: false, reason: "blocked", message };
45943
46035
  }
45944
46036
  const shouldCollectPayment = !eligibility?.canJoinWaitlist && requiresPaymentStep({ eventRequiresPayment, paymentSelection });
45945
46037
  if (shouldCollectPayment) {
45946
46038
  setStep("select-payment");
45947
- return;
46039
+ return { ok: true, outcome: "payment-step" };
45948
46040
  }
45949
46041
  const submitPlan = resolveEventRegistrationSubmitPlan({
45950
46042
  paymentSelection,
@@ -45954,14 +46046,22 @@ function useEventRegistrationWizard(options) {
45954
46046
  if (!submitPlan.ok) {
45955
46047
  setErrorMessage(submitPlan.message);
45956
46048
  setStep("error");
45957
- return;
46049
+ return { ok: false, reason: "blocked", message: submitPlan.message };
45958
46050
  }
45959
- await handleSubmit(
46051
+ const submitResult = await handleSubmit(
45960
46052
  submitPlan.args.method,
45961
46053
  submitPlan.args.passId,
45962
46054
  submitPlan.args.membershipId,
45963
46055
  submitPlan.args.selection
45964
46056
  );
46057
+ if (!submitResult.ok) {
46058
+ return {
46059
+ ok: false,
46060
+ reason: submitResult.reason === "submission-failed" ? "submission-failed" : "blocked",
46061
+ message: submitResult.message
46062
+ };
46063
+ }
46064
+ return { ok: true, outcome: "submitted" };
45965
46065
  };
45966
46066
  const handlePaymentSelect = async () => {
45967
46067
  const submitPlan = resolveEventRegistrationSubmitPlan({
@@ -46248,6 +46348,15 @@ var init_MagicLinkForm = __esm({
46248
46348
  }
46249
46349
  });
46250
46350
 
46351
+ // ../blocks/src/system/runtime/nodes/event-registration/constants.ts
46352
+ var EVENT_REGISTRATION_ANCHOR_ID;
46353
+ var init_constants3 = __esm({
46354
+ "../blocks/src/system/runtime/nodes/event-registration/constants.ts"() {
46355
+ "use strict";
46356
+ EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
46357
+ }
46358
+ });
46359
+
46251
46360
  // ../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.tsx
46252
46361
  import { useMemo as useMemo11 } from "react";
46253
46362
  import { jsx as jsx57, jsxs as jsxs40 } from "react/jsx-runtime";
@@ -46329,7 +46438,7 @@ function EventRegistrationWizard(props2) {
46329
46438
  return "";
46330
46439
  }
46331
46440
  });
46332
- const currentStepNumber = getStepNumber2(wizard.step, activeWizardSteps);
46441
+ const currentStepNumber = getStepNumber(wizard.step, activeWizardSteps);
46333
46442
  const summaryEvent = wizard.selectedEvent ?? wizard.preSelectedEvent;
46334
46443
  const summaryEventPricingType = summaryEvent ? publicEventPricingType(summaryEvent.pricing) : "free";
46335
46444
  const waitlistClaimRequiresPortalLogin = wizard.waitlistClaim.requiresPortalLogin && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking";
@@ -46408,7 +46517,7 @@ function EventRegistrationWizard(props2) {
46408
46517
  wizard.step === "error" && /* @__PURE__ */ jsx57(ErrorStep, { message: wizard.errorMessage, onRetry: wizard.handleRetry })
46409
46518
  ] }) });
46410
46519
  }
46411
- var EVENT_REGISTRATION_ANCHOR_ID, EVENT_PORTAL_AUTH_COPY;
46520
+ var EVENT_PORTAL_AUTH_COPY;
46412
46521
  var init_EventRegistrationWizard = __esm({
46413
46522
  "../blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.tsx"() {
46414
46523
  "use strict";
@@ -46416,7 +46525,7 @@ var init_EventRegistrationWizard = __esm({
46416
46525
  init_src();
46417
46526
  init_client2();
46418
46527
  init_StepIndicator2();
46419
- init_wizardSteps2();
46528
+ init_wizardSteps();
46420
46529
  init_registrationStateMachine();
46421
46530
  init_event_registration_headless_state();
46422
46531
  init_EventRegistrationWizardContent();
@@ -46427,8 +46536,8 @@ var init_EventRegistrationWizard = __esm({
46427
46536
  init_MagicLinkForm();
46428
46537
  init_spinner2();
46429
46538
  init_buttons();
46539
+ init_constants3();
46430
46540
  init_event_registration();
46431
- EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
46432
46541
  EVENT_PORTAL_AUTH_COPY = {
46433
46542
  membership: {
46434
46543
  title: "Have a pass or membership?",
@@ -46502,6 +46611,7 @@ var init_event_registration_client = __esm({
46502
46611
  "use strict";
46503
46612
  "use client";
46504
46613
  init_EventRegistrationWizard();
46614
+ init_constants3();
46505
46615
  init_PastOccurrenceNotice();
46506
46616
  EventRegistrationClient = (clientProps) => {
46507
46617
  const isPast = isPastOccurrence(clientProps.occurrenceContext?.startsAt);
@@ -51386,7 +51496,7 @@ function useCourseRegistrationWizard(props2) {
51386
51496
  ),
51387
51497
  [hasPreSelectedCourse, hasCoursePayment, canUseMembership, bookingMode, isMembershipFastTrack]
51388
51498
  );
51389
- const currentStepNumber = getStepNumber(step, wizardSteps);
51499
+ const currentStepNumber = getStepNumber2(step, wizardSteps);
51390
51500
  const totalSteps = wizardSteps.length;
51391
51501
  const stepLabels = getStepLabels(wizardSteps);
51392
51502
  const canShowPortalAuthSidebarOnCurrentStep = step !== "success" && step !== "waitlist" && step !== "error";
@@ -71547,6 +71657,7 @@ var EventListingSSR = (props2) => {
71547
71657
 
71548
71658
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
71549
71659
  init_event_registration_interactive();
71660
+ init_constants3();
71550
71661
  import { jsx as jsx145, jsxs as jsxs91 } from "react/jsx-runtime";
71551
71662
  function cx(...classes) {
71552
71663
  return classes.filter((className) => Boolean(className)).join(" ");
@@ -71614,42 +71725,51 @@ function EventRegistrationSSR({
71614
71725
  function EventRegistrationShell({
71615
71726
  display
71616
71727
  }) {
71617
- return /* @__PURE__ */ jsx145("div", { className: "er-container er-registration-shell", "aria-busy": "true", role: "status", children: /* @__PURE__ */ jsxs91("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
71618
- /* @__PURE__ */ jsxs91("div", { className: "er-payment-layout-main", children: [
71619
- /* @__PURE__ */ jsx145("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx145("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
71620
- const isActive = index === 0;
71621
- return /* @__PURE__ */ jsxs91("li", { className: "er-step", children: [
71622
- /* @__PURE__ */ jsx145("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
71623
- /* @__PURE__ */ jsx145("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
71624
- index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx145("span", { className: "er-step-connector" }) : null
71625
- ] }, label);
71626
- }) }) }),
71627
- /* @__PURE__ */ jsxs91("div", { className: "er-stack", children: [
71628
- /* @__PURE__ */ jsxs91("div", { children: [
71629
- /* @__PURE__ */ jsx145("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
71630
- /* @__PURE__ */ jsx145("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
71631
- /* @__PURE__ */ jsx145("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
71728
+ return /* @__PURE__ */ jsx145(
71729
+ "div",
71730
+ {
71731
+ id: EVENT_REGISTRATION_ANCHOR_ID,
71732
+ className: "er-container er-registration-shell",
71733
+ "aria-busy": "true",
71734
+ role: "status",
71735
+ children: /* @__PURE__ */ jsxs91("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
71736
+ /* @__PURE__ */ jsxs91("div", { className: "er-payment-layout-main", children: [
71737
+ /* @__PURE__ */ jsx145("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx145("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
71738
+ const isActive = index === 0;
71739
+ return /* @__PURE__ */ jsxs91("li", { className: "er-step", children: [
71740
+ /* @__PURE__ */ jsx145("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
71741
+ /* @__PURE__ */ jsx145("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
71742
+ index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx145("span", { className: "er-step-connector" }) : null
71743
+ ] }, label);
71744
+ }) }) }),
71745
+ /* @__PURE__ */ jsxs91("div", { className: "er-stack", children: [
71746
+ /* @__PURE__ */ jsxs91("div", { children: [
71747
+ /* @__PURE__ */ jsx145("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
71748
+ /* @__PURE__ */ jsx145("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
71749
+ /* @__PURE__ */ jsx145("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
71750
+ ] }),
71751
+ /* @__PURE__ */ jsxs91("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
71752
+ /* @__PURE__ */ jsxs91("div", { className: "er-event-card er-registration-shell__card", children: [
71753
+ /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
71754
+ /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
71755
+ ] }),
71756
+ /* @__PURE__ */ jsxs91("div", { className: "er-event-card er-registration-shell__card", children: [
71757
+ /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
71758
+ /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
71759
+ ] })
71760
+ ] })
71761
+ ] })
71632
71762
  ] }),
71633
- /* @__PURE__ */ jsxs91("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
71634
- /* @__PURE__ */ jsxs91("div", { className: "er-event-card er-registration-shell__card", children: [
71635
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
71636
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
71637
- ] }),
71638
- /* @__PURE__ */ jsxs91("div", { className: "er-event-card er-registration-shell__card", children: [
71763
+ /* @__PURE__ */ jsx145("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs91("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
71764
+ /* @__PURE__ */ jsxs91("div", { className: "er-summary-bar-info", children: [
71639
71765
  /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
71640
71766
  /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
71641
- ] })
71642
- ] })
71767
+ ] }),
71768
+ /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
71769
+ ] }) })
71643
71770
  ] })
71644
- ] }),
71645
- /* @__PURE__ */ jsx145("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs91("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
71646
- /* @__PURE__ */ jsxs91("div", { className: "er-summary-bar-info", children: [
71647
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
71648
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
71649
- ] }),
71650
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
71651
- ] }) })
71652
- ] }) });
71771
+ }
71772
+ );
71653
71773
  }
71654
71774
  var event_registration_server_default = EventRegistrationSSR;
71655
71775