@riverbankcms/sdk 0.84.0 → 0.84.2
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.
- package/dist/{PreviewEditorSidebar-HML67UDA.mjs → PreviewEditorSidebar-4PH35ZIE.mjs} +3 -3
- package/dist/{PreviewEditorUI-I4BQUU6K.mjs → PreviewEditorUI-WHMCRJGM.mjs} +11 -6
- package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +8 -0
- package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
- package/dist/_dts/api/src/index.d.ts +2 -2
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +2 -1
- package/dist/_dts/api/src/sdk-event-payment-terms.d.ts +16 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +11 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +3 -0
- package/dist/_dts/api/src/types.d.ts +1 -0
- package/dist/_dts/api/src/url.d.ts +12 -4
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +0 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/constants.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +275 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +22 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +3 -303
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +8 -6
- package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +8 -0
- package/dist/_dts/editor-blocks/src/BlockForm.d.ts +6 -4
- package/dist/_dts/preview-next/src/client/preview/MaintenanceModeBadge.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorUI.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/{chunk-LBBPD2IW.mjs → chunk-4QNLOTES.mjs} +11 -16
- package/dist/{chunk-5E33VO6J.mjs → chunk-NFWGLRZZ.mjs} +1 -70
- package/dist/{chunk-HFMGVJCE.mjs → chunk-OCGTXHSO.mjs} +8 -7
- package/dist/{chunk-3LXFQS7T.mjs → chunk-PYDHOMEO.mjs} +1 -1
- package/dist/{chunk-6X2OVO3S.mjs → chunk-WFPYN7KA.mjs} +2 -2
- package/dist/{chunk-MSHZO4SL.mjs → chunk-ZR2GQK2A.mjs} +274 -223
- package/dist/cli/index.mjs +332 -45
- package/dist/cli/init-docs/content/agents-section.md +5 -0
- package/dist/cli/init-docs/content/cli-reference.md +13 -0
- package/dist/cli/init-docs/content/content-management.md +31 -0
- package/dist/cli/init-docs/content/getting-started.md +12 -0
- package/dist/cli/init-docs/content/workflow-add-block.md +3 -1
- package/dist/cli/init-docs/content/workflow-agent-safe-sync.md +81 -0
- package/dist/cli/init-docs/content/workflow-create-page.md +13 -3
- package/dist/cli/init-docs/content/workflow-custom-block.md +9 -0
- package/dist/cli/init-docs/content/workflow-templates.md +14 -0
- package/dist/client/{accordion-ESY65T56.mjs → accordion-2UZPBMYM.mjs} +1 -1
- package/dist/client/{bookingForm-JRFNZUHD.mjs → bookingForm-36CWQUMV.mjs} +4 -4
- package/dist/client/bookings.mjs +156 -138
- package/dist/client/{carousel-CPR5VWIP.mjs → carousel-QH77HR6X.mjs} +2 -2
- package/dist/client/{cart-ZUX5BA7O.mjs → cart-X4YK4FTW.mjs} +5 -5
- package/dist/client/{checkout-RULGBADZ.mjs → checkout-OM2BEPWD.mjs} +5 -5
- package/dist/client/{chunk-RDJFCPY3.mjs → chunk-3C2VTPWI.mjs} +34 -117
- package/dist/client/{chunk-BT6AEIKN.mjs → chunk-3DTWLTXM.mjs} +1 -1
- package/dist/client/{chunk-JWEYB4V6.mjs → chunk-4OXKTA3D.mjs} +1 -1
- package/dist/client/{chunk-URQCZD5W.mjs → chunk-52CGCQ7B.mjs} +4 -4
- package/dist/client/{chunk-52I7BGEK.mjs → chunk-7UCLJ5SP.mjs} +1 -1
- package/dist/client/{chunk-Z5OBQ5I4.mjs → chunk-F5VRX5Y6.mjs} +1 -1
- package/dist/client/{chunk-GFSQNTRW.mjs → chunk-SDIYSQAY.mjs} +0 -4
- package/dist/client/{chunk-HXPWP5EN.mjs → chunk-VGDBVNOO.mjs} +175 -14
- package/dist/client/{chunk-5ZEAZ33K.mjs → chunk-ZKUO52W3.mjs} +1 -1
- package/dist/client/client.mjs +348 -232
- package/dist/client/{courseRegistration-QTUDC35T.mjs → courseRegistration-TMKU6ABO.mjs} +4 -4
- package/dist/client/{eventCalendar-Q7NS4XLD.mjs → eventCalendar-G6TI32X6.mjs} +6 -6
- package/dist/client/{eventCombined-QAO7VUO5.mjs → eventCombined-SCKEMNAR.mjs} +6 -6
- package/dist/client/{eventDetails-WTNNU6Q3.mjs → eventDetails-XPIFXXPK.mjs} +6 -6
- package/dist/client/{eventListing-5TA2ELDT.mjs → eventListing-7QFMEMGT.mjs} +6 -6
- package/dist/client/{eventRegistration-M6USZGRF.mjs → eventRegistration-TOODSZUI.mjs} +6 -6
- package/dist/client/{form-DGVGXLMH.mjs → form-MTCMVCZT.mjs} +2 -2
- package/dist/client/{headerSection-O2AGMPCU.mjs → headerSection-Y5TMR3TW.mjs} +2 -2
- package/dist/client/hooks.mjs +315 -35
- package/dist/client/{locationMap-EJRNRIKJ.mjs → locationMap-RH2LG7FZ.mjs} +1 -1
- package/dist/client/{newsletterForm-7NTC2DTR.mjs → newsletterForm-PCAIPFMA.mjs} +2 -2
- package/dist/client/{productDetail-HH4LP53D.mjs → productDetail-OIGDR4YE.mjs} +5 -5
- package/dist/client/{productList-YVHYM2AF.mjs → productList-4MA5S2CX.mjs} +5 -5
- package/dist/client/rendering/client.mjs +312 -195
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +312 -195
- package/dist/client/{shop-UIFX7XRK.mjs → shop-WXSYV5QO.mjs} +5 -5
- package/dist/client/spam-protection.mjs +0 -4
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/{sdk-runtime-ZENAOYMN.mjs → sdk-runtime-QLOCYKVU.mjs} +6 -6
- package/dist/server/components.mjs +188 -61
- package/dist/server/config-validation.mjs +313 -33
- package/dist/server/config.mjs +313 -33
- package/dist/server/data.mjs +315 -35
- package/dist/server/index.mjs +10 -11
- package/dist/server/next.mjs +198 -72
- package/dist/server/page-converter.mjs +315 -35
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +188 -61
- package/dist/server/rendering.mjs +188 -61
- package/dist/server/routing.mjs +334 -34
- package/dist/server/server.mjs +331 -52
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-MCKMVDTK.mjs +0 -8
package/dist/server/server.mjs
CHANGED
|
@@ -6443,17 +6443,21 @@ function looksLikeLocalAuthority(authority) {
|
|
|
6443
6443
|
const normalized = authority.toLowerCase();
|
|
6444
6444
|
return normalized === "localhost" || normalized.startsWith("localhost:") || normalized.startsWith("127.") || normalized.startsWith("0.0.0.0") || normalized.includes(".localhost") || normalized.endsWith(".local") || normalized.endsWith(".test");
|
|
6445
6445
|
}
|
|
6446
|
-
function
|
|
6446
|
+
function normalizeDashboardOrigin(input) {
|
|
6447
6447
|
const trimmed = input.trim();
|
|
6448
6448
|
if (!trimmed) return "";
|
|
6449
6449
|
const withoutTrailingSlash = trimmed.replace(/\/+$/, "");
|
|
6450
6450
|
const withoutApiSuffix = withoutTrailingSlash.replace(/\/api\/?$/, "");
|
|
6451
6451
|
if (/^https?:\/\//i.test(withoutApiSuffix)) {
|
|
6452
|
-
return withoutApiSuffix;
|
|
6452
|
+
return new URL(withoutApiSuffix).origin;
|
|
6453
6453
|
}
|
|
6454
6454
|
const authority = withoutApiSuffix.replace(/^\/+/, "");
|
|
6455
6455
|
const protocol = looksLikeLocalAuthority(authority) ? "http" : "https";
|
|
6456
|
-
return `${protocol}://${authority}
|
|
6456
|
+
return new URL(`${protocol}://${authority}`).origin;
|
|
6457
|
+
}
|
|
6458
|
+
function deriveCmsApiUrlFromDashboardUrl(input) {
|
|
6459
|
+
const origin = normalizeDashboardOrigin(input);
|
|
6460
|
+
return origin ? `${origin}/api` : "";
|
|
6457
6461
|
}
|
|
6458
6462
|
function getCmsApiUrl() {
|
|
6459
6463
|
if (typeof window !== "undefined") {
|
|
@@ -6465,15 +6469,10 @@ function getCmsApiUrl() {
|
|
|
6465
6469
|
}
|
|
6466
6470
|
const dashboardUrl = process.env.NEXT_PUBLIC_DASHBOARD_URL;
|
|
6467
6471
|
if (dashboardUrl) {
|
|
6468
|
-
|
|
6469
|
-
return `${base}/api`;
|
|
6470
|
-
}
|
|
6471
|
-
const legacyApiUrl = process.env.NEXT_PUBLIC_CMS_API_URL;
|
|
6472
|
-
if (legacyApiUrl) {
|
|
6473
|
-
return legacyApiUrl.replace(/\/$/, "");
|
|
6472
|
+
return deriveCmsApiUrlFromDashboardUrl(dashboardUrl);
|
|
6474
6473
|
}
|
|
6475
6474
|
throw new Error(
|
|
6476
|
-
"NEXT_PUBLIC_DASHBOARD_URL is not configured. Set
|
|
6475
|
+
"CMS_API_URL or NEXT_PUBLIC_DASHBOARD_URL is not configured. Set NEXT_PUBLIC_DASHBOARD_URL to your dashboard URL (e.g., http://localhost:4000)"
|
|
6477
6476
|
);
|
|
6478
6477
|
}
|
|
6479
6478
|
function resolveApiBaseUrl() {
|
|
@@ -6999,7 +6998,7 @@ var SimpleCache = class {
|
|
|
6999
6998
|
};
|
|
7000
6999
|
|
|
7001
7000
|
// src/version.ts
|
|
7002
|
-
var SDK_VERSION = "0.84.
|
|
7001
|
+
var SDK_VERSION = "0.84.2";
|
|
7003
7002
|
|
|
7004
7003
|
// src/client/error.ts
|
|
7005
7004
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -8475,6 +8474,171 @@ function createRiverbankClient(config) {
|
|
|
8475
8474
|
};
|
|
8476
8475
|
}
|
|
8477
8476
|
|
|
8477
|
+
// ../core/src/result.ts
|
|
8478
|
+
function ok(value) {
|
|
8479
|
+
return { ok: true, value };
|
|
8480
|
+
}
|
|
8481
|
+
function err(error) {
|
|
8482
|
+
return { ok: false, error };
|
|
8483
|
+
}
|
|
8484
|
+
|
|
8485
|
+
// ../core/src/event-pricing.ts
|
|
8486
|
+
function publicEventPricingType(pricing) {
|
|
8487
|
+
switch (pricing.kind) {
|
|
8488
|
+
case "drop_in":
|
|
8489
|
+
case "free_registration":
|
|
8490
|
+
return "free";
|
|
8491
|
+
case "single_paid":
|
|
8492
|
+
case "ticket_types":
|
|
8493
|
+
case "course":
|
|
8494
|
+
return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
|
|
8495
|
+
}
|
|
8496
|
+
}
|
|
8497
|
+
function isFreePublicEventPriceDisplay(display) {
|
|
8498
|
+
switch (display.kind) {
|
|
8499
|
+
case "free":
|
|
8500
|
+
return true;
|
|
8501
|
+
case "course":
|
|
8502
|
+
return display.display.kind === "free";
|
|
8503
|
+
case "exact":
|
|
8504
|
+
case "from":
|
|
8505
|
+
case "mixed":
|
|
8506
|
+
case "unavailable":
|
|
8507
|
+
return false;
|
|
8508
|
+
}
|
|
8509
|
+
}
|
|
8510
|
+
|
|
8511
|
+
// ../core/src/booking-date-time.ts
|
|
8512
|
+
var DEFAULT_LOCALE = "en-US";
|
|
8513
|
+
var FALLBACK_TIMEZONE = "UTC";
|
|
8514
|
+
function isValidTimeZone(timeZone) {
|
|
8515
|
+
try {
|
|
8516
|
+
new Intl.DateTimeFormat(DEFAULT_LOCALE, { timeZone }).format(/* @__PURE__ */ new Date());
|
|
8517
|
+
return true;
|
|
8518
|
+
} catch {
|
|
8519
|
+
return false;
|
|
8520
|
+
}
|
|
8521
|
+
}
|
|
8522
|
+
function getSafeTimeZone(timeZone) {
|
|
8523
|
+
const normalized = typeof timeZone === "string" ? timeZone.trim() : "";
|
|
8524
|
+
return normalized && isValidTimeZone(normalized) ? normalized : FALLBACK_TIMEZONE;
|
|
8525
|
+
}
|
|
8526
|
+
function parseStrictBookingTimeZone(timeZone) {
|
|
8527
|
+
const normalized = timeZone.trim();
|
|
8528
|
+
if (!normalized || !isValidTimeZone(normalized)) {
|
|
8529
|
+
return null;
|
|
8530
|
+
}
|
|
8531
|
+
return normalized;
|
|
8532
|
+
}
|
|
8533
|
+
function formatParseError(error) {
|
|
8534
|
+
switch (error.reason) {
|
|
8535
|
+
case "invalid_starts_at":
|
|
8536
|
+
return `Expected a valid UTC/offset-aware ISO datetime in startsAt, received "${error.value}"`;
|
|
8537
|
+
case "invalid_ends_at":
|
|
8538
|
+
return `Expected a valid UTC/offset-aware ISO datetime in endsAt, received "${error.value ?? ""}"`;
|
|
8539
|
+
case "invalid_time_zone":
|
|
8540
|
+
return `Expected a valid IANA timezone in timeZone, received "${error.value}"`;
|
|
8541
|
+
}
|
|
8542
|
+
}
|
|
8543
|
+
function formatToPartsLookup(date, locale, timeZone, format) {
|
|
8544
|
+
return new Map(
|
|
8545
|
+
new Intl.DateTimeFormat(locale, {
|
|
8546
|
+
...format,
|
|
8547
|
+
timeZone
|
|
8548
|
+
}).formatToParts(date).map((part) => [part.type, part.value])
|
|
8549
|
+
);
|
|
8550
|
+
}
|
|
8551
|
+
function getZonedDateTimeParts(date, timeZone) {
|
|
8552
|
+
const parts = formatToPartsLookup(date, "en-GB", timeZone, {
|
|
8553
|
+
year: "numeric",
|
|
8554
|
+
month: "2-digit",
|
|
8555
|
+
day: "2-digit",
|
|
8556
|
+
hour: "2-digit",
|
|
8557
|
+
minute: "2-digit",
|
|
8558
|
+
second: "2-digit",
|
|
8559
|
+
hour12: false
|
|
8560
|
+
});
|
|
8561
|
+
const read = (type) => Number(parts.get(type) ?? "");
|
|
8562
|
+
return {
|
|
8563
|
+
year: read("year"),
|
|
8564
|
+
month: read("month"),
|
|
8565
|
+
day: read("day"),
|
|
8566
|
+
hour: read("hour"),
|
|
8567
|
+
minute: read("minute"),
|
|
8568
|
+
second: read("second")
|
|
8569
|
+
};
|
|
8570
|
+
}
|
|
8571
|
+
function formatDateKey(date) {
|
|
8572
|
+
const year = String(date.year).padStart(4, "0");
|
|
8573
|
+
const month = String(date.month).padStart(2, "0");
|
|
8574
|
+
const day = String(date.day).padStart(2, "0");
|
|
8575
|
+
return `${year}-${month}-${day}`;
|
|
8576
|
+
}
|
|
8577
|
+
function parseUtcIsoDateTimeString(value) {
|
|
8578
|
+
const normalized = value.trim();
|
|
8579
|
+
const hasUtcSuffix = normalized.endsWith("Z");
|
|
8580
|
+
const hasExplicitOffset = /[+-]\d{2}:\d{2}$/u.test(normalized);
|
|
8581
|
+
if (!hasUtcSuffix && !hasExplicitOffset) {
|
|
8582
|
+
return err("missing-timezone-offset");
|
|
8583
|
+
}
|
|
8584
|
+
const date = new Date(normalized);
|
|
8585
|
+
if (Number.isNaN(date.getTime())) {
|
|
8586
|
+
return err("invalid-date-time");
|
|
8587
|
+
}
|
|
8588
|
+
return ok(date.toISOString());
|
|
8589
|
+
}
|
|
8590
|
+
function toUtcIsoDateTimeString(value) {
|
|
8591
|
+
const parsed = parseUtcIsoDateTimeString(value);
|
|
8592
|
+
if (!parsed.ok) {
|
|
8593
|
+
const message = parsed.error === "missing-timezone-offset" ? `Expected an offset-aware ISO datetime, received "${value}"` : `Expected a valid ISO datetime, received "${value}"`;
|
|
8594
|
+
throw new Error(message);
|
|
8595
|
+
}
|
|
8596
|
+
return parsed.value;
|
|
8597
|
+
}
|
|
8598
|
+
function parseScheduledBookingDateTime(input) {
|
|
8599
|
+
try {
|
|
8600
|
+
const startsAt = toUtcIsoDateTimeString(input.startsAt);
|
|
8601
|
+
const timeZone = parseStrictBookingTimeZone(input.timeZone);
|
|
8602
|
+
if (!timeZone) {
|
|
8603
|
+
return {
|
|
8604
|
+
ok: false,
|
|
8605
|
+
field: "timeZone",
|
|
8606
|
+
reason: "invalid_time_zone",
|
|
8607
|
+
value: input.timeZone
|
|
8608
|
+
};
|
|
8609
|
+
}
|
|
8610
|
+
return {
|
|
8611
|
+
ok: true,
|
|
8612
|
+
value: {
|
|
8613
|
+
startsAt,
|
|
8614
|
+
timeZone,
|
|
8615
|
+
locale: input.locale
|
|
8616
|
+
}
|
|
8617
|
+
};
|
|
8618
|
+
} catch {
|
|
8619
|
+
return {
|
|
8620
|
+
ok: false,
|
|
8621
|
+
field: "startsAt",
|
|
8622
|
+
reason: "invalid_starts_at",
|
|
8623
|
+
value: input.startsAt
|
|
8624
|
+
};
|
|
8625
|
+
}
|
|
8626
|
+
}
|
|
8627
|
+
function toScheduledBookingDateTime(input) {
|
|
8628
|
+
const result = parseScheduledBookingDateTime(input);
|
|
8629
|
+
if (result.ok) {
|
|
8630
|
+
return result.value;
|
|
8631
|
+
}
|
|
8632
|
+
throw new Error(formatParseError(result));
|
|
8633
|
+
}
|
|
8634
|
+
function getBookingLocalDateKey(input) {
|
|
8635
|
+
return formatDateKey(getLocalScheduleDate(new Date(input.startsAt), input.timeZone));
|
|
8636
|
+
}
|
|
8637
|
+
function getLocalScheduleDate(date, timeZone) {
|
|
8638
|
+
const parts = getZonedDateTimeParts(date, getSafeTimeZone(timeZone));
|
|
8639
|
+
return { year: parts.year, month: parts.month, day: parts.day };
|
|
8640
|
+
}
|
|
8641
|
+
|
|
8478
8642
|
// ../core/src/location.ts
|
|
8479
8643
|
function normalizeLocationAddressText(value) {
|
|
8480
8644
|
if (typeof value !== "string") {
|
|
@@ -11328,9 +11492,9 @@ var _Vibrant = class _Vibrant2 {
|
|
|
11328
11492
|
}
|
|
11329
11493
|
image.remove();
|
|
11330
11494
|
return res;
|
|
11331
|
-
} catch (
|
|
11495
|
+
} catch (err3) {
|
|
11332
11496
|
image.remove();
|
|
11333
|
-
return Promise.reject(
|
|
11497
|
+
return Promise.reject(err3);
|
|
11334
11498
|
}
|
|
11335
11499
|
}
|
|
11336
11500
|
async getPalettes() {
|
|
@@ -11344,9 +11508,9 @@ var _Vibrant = class _Vibrant2 {
|
|
|
11344
11508
|
const res = result1.palettes;
|
|
11345
11509
|
image.remove();
|
|
11346
11510
|
return res;
|
|
11347
|
-
} catch (
|
|
11511
|
+
} catch (err3) {
|
|
11348
11512
|
image.remove();
|
|
11349
|
-
return Promise.reject(
|
|
11513
|
+
return Promise.reject(err3);
|
|
11350
11514
|
}
|
|
11351
11515
|
}
|
|
11352
11516
|
};
|
|
@@ -30235,6 +30399,26 @@ var occurrenceContextSchema = z43.object({
|
|
|
30235
30399
|
// ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
30236
30400
|
import { z as z45 } from "zod";
|
|
30237
30401
|
|
|
30402
|
+
// ../blocks/src/system/constants/events.ts
|
|
30403
|
+
var EVENT_CONTENT_TYPE_SLUGS = ["event", "events"];
|
|
30404
|
+
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
30405
|
+
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
30406
|
+
var eventCalendarListLayoutOptions = [
|
|
30407
|
+
{ id: "stack", label: "Stack" },
|
|
30408
|
+
{ id: "grid", label: "Grid" },
|
|
30409
|
+
{ id: "compact", label: "Compact" }
|
|
30410
|
+
];
|
|
30411
|
+
function isEventCalendarDisplayMode(value) {
|
|
30412
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
30413
|
+
}
|
|
30414
|
+
function isEventCalendarListLayout(value) {
|
|
30415
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
30416
|
+
}
|
|
30417
|
+
function isEventContentType(slug) {
|
|
30418
|
+
if (!slug) return false;
|
|
30419
|
+
return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
|
|
30420
|
+
}
|
|
30421
|
+
|
|
30238
30422
|
// ../blocks/src/system/runtime/nodes/events/shared/pricing.ts
|
|
30239
30423
|
var DEFAULT_EVENT_CURRENCY = "USD";
|
|
30240
30424
|
function resolveRuntimeEventPricing(event) {
|
|
@@ -30357,23 +30541,6 @@ function readAmount(value) {
|
|
|
30357
30541
|
|
|
30358
30542
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
30359
30543
|
import { z as z44 } from "zod";
|
|
30360
|
-
|
|
30361
|
-
// ../blocks/src/system/constants/events.ts
|
|
30362
|
-
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
30363
|
-
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
30364
|
-
var eventCalendarListLayoutOptions = [
|
|
30365
|
-
{ id: "stack", label: "Stack" },
|
|
30366
|
-
{ id: "grid", label: "Grid" },
|
|
30367
|
-
{ id: "compact", label: "Compact" }
|
|
30368
|
-
];
|
|
30369
|
-
function isEventCalendarDisplayMode(value) {
|
|
30370
|
-
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
30371
|
-
}
|
|
30372
|
-
function isEventCalendarListLayout(value) {
|
|
30373
|
-
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
30374
|
-
}
|
|
30375
|
-
|
|
30376
|
-
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
30377
30544
|
var previewStageSchema = z44.enum(["preview", "published"]);
|
|
30378
30545
|
var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
|
|
30379
30546
|
var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
|
|
@@ -30384,13 +30551,64 @@ var weekStartSchema = z44.enum(["sunday", "monday"]);
|
|
|
30384
30551
|
var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
|
|
30385
30552
|
var calendarTabViewsSchema = z44.enum(["both", "month", "week"]);
|
|
30386
30553
|
|
|
30554
|
+
// ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
30555
|
+
function getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep) {
|
|
30556
|
+
const baseSteps = hasPreSelectedContext ? ["select-tickets", "enter-details"] : ["select-event", "select-tickets", "enter-details"];
|
|
30557
|
+
if (!needsPaymentStep) {
|
|
30558
|
+
return baseSteps;
|
|
30559
|
+
}
|
|
30560
|
+
return [...baseSteps, "select-payment"];
|
|
30561
|
+
}
|
|
30562
|
+
|
|
30563
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
30564
|
+
function eventMatchesOccurrenceId(event, occurrenceId) {
|
|
30565
|
+
return event.registrationOccurrenceId === occurrenceId || event.publicEventId === occurrenceId;
|
|
30566
|
+
}
|
|
30567
|
+
function findPreSelectedEvent(input) {
|
|
30568
|
+
const occurrenceContext = input.occurrenceContext;
|
|
30569
|
+
if (!occurrenceContext) {
|
|
30570
|
+
return null;
|
|
30571
|
+
}
|
|
30572
|
+
const contextDate = getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
30573
|
+
startsAt: occurrenceContext.startsAt,
|
|
30574
|
+
timeZone: occurrenceContext.timeZone
|
|
30575
|
+
}));
|
|
30576
|
+
return input.scopedEvents.find(
|
|
30577
|
+
(event) => eventMatchesOccurrenceId(event, occurrenceContext.id) || getBookingLocalDateKey(toScheduledBookingDateTime({
|
|
30578
|
+
startsAt: event.startsAt,
|
|
30579
|
+
timeZone: event.timeZone
|
|
30580
|
+
})) === contextDate
|
|
30581
|
+
) ?? null;
|
|
30582
|
+
}
|
|
30583
|
+
function resolveEventRequiresPayment(input) {
|
|
30584
|
+
if (input.eligibility) {
|
|
30585
|
+
return input.eligibility.requiresPayment;
|
|
30586
|
+
}
|
|
30587
|
+
if (input.selectedTicketType) {
|
|
30588
|
+
return input.selectedTicketType.priceAmount > 0;
|
|
30589
|
+
}
|
|
30590
|
+
if (!input.event) {
|
|
30591
|
+
return false;
|
|
30592
|
+
}
|
|
30593
|
+
return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
|
|
30594
|
+
}
|
|
30595
|
+
|
|
30596
|
+
// ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
|
|
30597
|
+
function toRegistrationEvent(event) {
|
|
30598
|
+
return {
|
|
30599
|
+
...event,
|
|
30600
|
+
pricing: resolveRuntimeEventPricing(event),
|
|
30601
|
+
publicEventId: event.id,
|
|
30602
|
+
registrationOccurrenceId: event.occurrenceId
|
|
30603
|
+
};
|
|
30604
|
+
}
|
|
30605
|
+
function toRegistrationEvents(events) {
|
|
30606
|
+
return events.map(toRegistrationEvent);
|
|
30607
|
+
}
|
|
30608
|
+
|
|
30387
30609
|
// ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
30388
30610
|
var EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = ["Date", "Tickets", "Details"];
|
|
30389
|
-
var [
|
|
30390
|
-
eventRegistrationGenericDateStepLabel,
|
|
30391
|
-
eventRegistrationGenericTicketsStepLabel,
|
|
30392
|
-
eventRegistrationGenericDetailsStepLabel
|
|
30393
|
-
] = EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
30611
|
+
var EVENT_REGISTRATION_SHELL_STEP_LABELS = ["Event", "Date", "Tickets", "Details", "Payment"];
|
|
30394
30612
|
var contentEntrySchema = z45.object({
|
|
30395
30613
|
id: z45.string(),
|
|
30396
30614
|
slug: z45.string(),
|
|
@@ -30426,11 +30644,7 @@ var eventRegistrationDisplaySchema = z45.object({
|
|
|
30426
30644
|
className: z45.string().nullable(),
|
|
30427
30645
|
titleText: z45.string(),
|
|
30428
30646
|
bodyText: z45.string(),
|
|
30429
|
-
stepLabels: z45.
|
|
30430
|
-
z45.literal(eventRegistrationGenericDateStepLabel),
|
|
30431
|
-
z45.literal(eventRegistrationGenericTicketsStepLabel),
|
|
30432
|
-
z45.literal(eventRegistrationGenericDetailsStepLabel)
|
|
30433
|
-
]),
|
|
30647
|
+
stepLabels: z45.array(z45.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
|
|
30434
30648
|
summaryButtonText: z45.string()
|
|
30435
30649
|
});
|
|
30436
30650
|
var eventRegistrationHydrationSchema = z45.object({
|
|
@@ -30465,16 +30679,81 @@ var eventRegistrationIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
30465
30679
|
"stage"
|
|
30466
30680
|
);
|
|
30467
30681
|
function buildEventRegistrationDisplay(source) {
|
|
30682
|
+
const stepLabels = buildEventRegistrationShellStepLabels(source);
|
|
30468
30683
|
return {
|
|
30469
30684
|
kind: "event-registration",
|
|
30470
30685
|
state: "generic-shell",
|
|
30471
30686
|
className: source.className ?? null,
|
|
30472
30687
|
titleText: "Event registration",
|
|
30473
|
-
bodyText:
|
|
30474
|
-
stepLabels
|
|
30688
|
+
bodyText: buildEventRegistrationShellBodyText(stepLabels),
|
|
30689
|
+
stepLabels,
|
|
30475
30690
|
summaryButtonText: source.buttonText?.trim() || "Register"
|
|
30476
30691
|
};
|
|
30477
30692
|
}
|
|
30693
|
+
function buildEventRegistrationShellStepLabels(source) {
|
|
30694
|
+
const scopedEvents = scopeEventRegistrationEvents(source);
|
|
30695
|
+
if (scopedEvents.length === 0) {
|
|
30696
|
+
return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
30697
|
+
}
|
|
30698
|
+
const preSelectedEvent = findPreSelectedEvent({
|
|
30699
|
+
scopedEvents,
|
|
30700
|
+
occurrenceContext: source.occurrenceContext
|
|
30701
|
+
});
|
|
30702
|
+
const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
|
|
30703
|
+
const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
|
|
30704
|
+
eligibility: null,
|
|
30705
|
+
selectedTicketType: null,
|
|
30706
|
+
event: preSelectedEvent
|
|
30707
|
+
}) : false;
|
|
30708
|
+
return getWizardStepsForContext(hasPreSelectedContext, needsPaymentStep).map((step) => shellLabelForRegistrationStep(step, scopedEvents));
|
|
30709
|
+
}
|
|
30710
|
+
function scopeEventRegistrationEvents(source) {
|
|
30711
|
+
const events = toRegistrationEvents(source.events ?? []);
|
|
30712
|
+
if (source.occurrenceContext?.seriesId) {
|
|
30713
|
+
return events.filter((event) => event.seriesId === source.occurrenceContext?.seriesId);
|
|
30714
|
+
}
|
|
30715
|
+
const entrySlug = source.contentEntry?.slug;
|
|
30716
|
+
const entryContentType = source.contentEntry?.contentTypeSlug;
|
|
30717
|
+
if (entrySlug && entryContentType && isEventContentType(entryContentType)) {
|
|
30718
|
+
return events.filter((event) => event.slug === entrySlug);
|
|
30719
|
+
}
|
|
30720
|
+
return events;
|
|
30721
|
+
}
|
|
30722
|
+
function shellLabelForRegistrationStep(step, events) {
|
|
30723
|
+
switch (step) {
|
|
30724
|
+
case "select-event":
|
|
30725
|
+
return isDateSelection(events) ? "Date" : "Event";
|
|
30726
|
+
case "select-tickets":
|
|
30727
|
+
return "Tickets";
|
|
30728
|
+
case "enter-details":
|
|
30729
|
+
return "Details";
|
|
30730
|
+
case "select-payment":
|
|
30731
|
+
return "Payment";
|
|
30732
|
+
case "error":
|
|
30733
|
+
case "success":
|
|
30734
|
+
case "submitting":
|
|
30735
|
+
case "redirecting":
|
|
30736
|
+
case "verifying-payment":
|
|
30737
|
+
case "verifying-timeout":
|
|
30738
|
+
case "payment-failed":
|
|
30739
|
+
return "Details";
|
|
30740
|
+
}
|
|
30741
|
+
}
|
|
30742
|
+
function isDateSelection(events) {
|
|
30743
|
+
const firstSeriesId = events[0]?.seriesId;
|
|
30744
|
+
return Boolean(
|
|
30745
|
+
events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)
|
|
30746
|
+
);
|
|
30747
|
+
}
|
|
30748
|
+
function buildEventRegistrationShellBodyText(stepLabels) {
|
|
30749
|
+
if (stepLabels.includes("Payment")) {
|
|
30750
|
+
return "Preparing tickets, details, and payment options.";
|
|
30751
|
+
}
|
|
30752
|
+
if (stepLabels[0] === "Tickets") {
|
|
30753
|
+
return "Preparing tickets and booking details.";
|
|
30754
|
+
}
|
|
30755
|
+
return "Preparing dates, tickets, and booking details.";
|
|
30756
|
+
}
|
|
30478
30757
|
var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
30479
30758
|
kind: "client-owned",
|
|
30480
30759
|
contracts: {
|
|
@@ -39634,11 +39913,11 @@ function resolveParamsBindings(input, vm, meta) {
|
|
|
39634
39913
|
return binding.fallback;
|
|
39635
39914
|
}
|
|
39636
39915
|
return resolved;
|
|
39637
|
-
} catch (
|
|
39916
|
+
} catch (err3) {
|
|
39638
39917
|
if (shouldLogWarnings) {
|
|
39639
39918
|
console.warn(
|
|
39640
39919
|
`bindings: failed to parse loader param binding for block "${meta?.blockKind ?? "unknown"}"`,
|
|
39641
|
-
|
|
39920
|
+
err3
|
|
39642
39921
|
);
|
|
39643
39922
|
}
|
|
39644
39923
|
return void 0;
|
|
@@ -41691,10 +41970,10 @@ var normalizeBindingOutput2 = normalizeBindingOutput;
|
|
|
41691
41970
|
var applyBindingsToContent2 = applyBindingsToContent;
|
|
41692
41971
|
|
|
41693
41972
|
// ../content-model/src/entry-slots/types.ts
|
|
41694
|
-
function
|
|
41973
|
+
function ok2(value) {
|
|
41695
41974
|
return { ok: true, value };
|
|
41696
41975
|
}
|
|
41697
|
-
function
|
|
41976
|
+
function err2(error) {
|
|
41698
41977
|
return { ok: false, error };
|
|
41699
41978
|
}
|
|
41700
41979
|
var SLOT_KEY_PATTERN = /^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/;
|
|
@@ -41702,13 +41981,13 @@ function unsafeAsSlotKey(value) {
|
|
|
41702
41981
|
return value;
|
|
41703
41982
|
}
|
|
41704
41983
|
function parseSlotKey(value) {
|
|
41705
|
-
if (typeof value !== "string") return
|
|
41984
|
+
if (typeof value !== "string") return err2({ kind: "not-string" });
|
|
41706
41985
|
const normalized = value.trim();
|
|
41707
|
-
if (!normalized) return
|
|
41986
|
+
if (!normalized) return err2({ kind: "empty" });
|
|
41708
41987
|
if (!SLOT_KEY_PATTERN.test(normalized)) {
|
|
41709
|
-
return
|
|
41988
|
+
return err2({ kind: "invalid-format", value: normalized });
|
|
41710
41989
|
}
|
|
41711
|
-
return
|
|
41990
|
+
return ok2(unsafeAsSlotKey(normalized));
|
|
41712
41991
|
}
|
|
41713
41992
|
var SYSTEM_ENTRY_SLOT_BLOCK_KIND = "system.entry-slot";
|
|
41714
41993
|
function selectBlocksForDeclaredEntrySlot(input) {
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
export { SdkPreviewModeRuntime } from './chunk-HFMGVJCE.mjs';
|
|
3
|
-
import './chunk-3LXFQS7T.mjs';
|
|
4
|
-
import './chunk-5E33VO6J.mjs';
|
|
5
|
-
import './chunk-6X2OVO3S.mjs';
|
|
6
|
-
import './chunk-MSHZO4SL.mjs';
|
|
7
|
-
import './chunk-LBBPD2IW.mjs';
|
|
8
|
-
import './chunk-R7POPVJR.mjs';
|