@riverbankcms/sdk 0.85.0 → 0.88.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-4PH35ZIE.mjs → PreviewEditorSidebar-EVRS3C7T.mjs} +3 -3
- package/dist/{PreviewEditorUI-WHMCRJGM.mjs → PreviewEditorUI-54WD4IGE.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-ZALZDJEK.mjs +8 -0
- package/dist/_dts/api/src/endpoints.d.ts +58 -14
- package/dist/_dts/api/src/index.d.ts +3 -0
- package/dist/_dts/api/src/launchReadiness.d.ts +3 -3
- package/dist/_dts/api/src/mailchimpIntegration.d.ts +215 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +35 -15
- package/dist/_dts/api/src/siteInfrastructure.d.ts +0 -14
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -13
- package/dist/_dts/api/src/types.d.ts +6 -3
- package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +42 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +42 -42
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +300 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +63 -3
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +53 -1
- package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +27 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -23
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/shared/utils/formatting.d.ts +1 -1
- package/dist/_dts/content-model/src/referenceFields.d.ts +1 -1
- package/dist/_dts/core/src/currency-format.d.ts +37 -2
- package/dist/_dts/core/src/event-pricing.d.ts +24 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +549 -18
- package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +3 -1
- package/dist/_dts/sdk/src/client/types.d.ts +9 -0
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -0
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +3 -9
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +7 -18
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -0
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +7 -3
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +4 -24
- package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +45 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +9 -9
- package/dist/_dts/theme-core/src/schema.d.ts +11 -11
- package/dist/{chunk-ZR2GQK2A.mjs → chunk-7KOO7RPP.mjs} +953 -315
- package/dist/{chunk-OCGTXHSO.mjs → chunk-ER4UIW4X.mjs} +7 -7
- package/dist/{chunk-WFPYN7KA.mjs → chunk-HVOBXA3Y.mjs} +2 -2
- package/dist/{chunk-NFWGLRZZ.mjs → chunk-K3JWH6HE.mjs} +37 -3
- package/dist/{chunk-4QNLOTES.mjs → chunk-O4LVYUVH.mjs} +58 -14
- package/dist/{chunk-PYDHOMEO.mjs → chunk-YDMBIIS5.mjs} +1 -1
- package/dist/cli/index.mjs +408 -109
- package/dist/client/{accordion-2UZPBMYM.mjs → accordion-PT5CGW5N.mjs} +2 -2
- package/dist/client/{bookingForm-36CWQUMV.mjs → bookingForm-2HLRTEYS.mjs} +7 -7
- package/dist/client/bookings.mjs +51 -6
- package/dist/client/{carousel-QH77HR6X.mjs → carousel-Z2LKYSWA.mjs} +3 -3
- package/dist/client/cart-ND5IK4A6.mjs +18 -0
- package/dist/client/checkout-EYUSGAY7.mjs +18 -0
- package/dist/client/{chunk-SYIJ5JO2.mjs → chunk-6DVPO44G.mjs} +1 -1
- package/dist/client/{chunk-3C2VTPWI.mjs → chunk-BAWHZ5GM.mjs} +176 -13
- package/dist/client/{chunk-52CGCQ7B.mjs → chunk-BL66UWGD.mjs} +10 -80
- package/dist/client/{chunk-VGDBVNOO.mjs → chunk-DIRW2LNG.mjs} +241 -210
- package/dist/client/{chunk-UDNSI5PY.mjs → chunk-GOFO7HRH.mjs} +1 -2
- package/dist/client/{chunk-ZKUO52W3.mjs → chunk-H4MHEXYS.mjs} +1 -1
- package/dist/client/{chunk-ZE5G642V.mjs → chunk-LI2C6M5O.mjs} +75 -1
- package/dist/client/{chunk-3DTWLTXM.mjs → chunk-MHBEWDT7.mjs} +117 -3
- package/dist/client/{chunk-4OXKTA3D.mjs → chunk-O5JNI3E4.mjs} +2 -2
- package/dist/client/{chunk-XSV6KW4D.mjs → chunk-S4G65LGR.mjs} +1 -1
- package/dist/client/{chunk-DVNUDUVT.mjs → chunk-WBQG7VJA.mjs} +4 -1
- package/dist/client/{chunk-F5VRX5Y6.mjs → chunk-WCVK4MBJ.mjs} +1 -1
- package/dist/client/{chunk-7UCLJ5SP.mjs → chunk-X7GVFB7Y.mjs} +4 -7
- package/dist/client/client.mjs +2125 -1403
- package/dist/client/{courseRegistration-TMKU6ABO.mjs → courseRegistration-H3AZBUEG.mjs} +7 -7
- package/dist/client/{eventCalendar-G6TI32X6.mjs → eventCalendar-FPKJGLGS.mjs} +10 -11
- package/dist/client/{eventCombined-SCKEMNAR.mjs → eventCombined-QCGIZBUY.mjs} +10 -11
- package/dist/client/{eventDetails-XPIFXXPK.mjs → eventDetails-HIT3BJWU.mjs} +10 -11
- package/dist/client/{eventListing-7QFMEMGT.mjs → eventListing-R4HNWJDN.mjs} +10 -11
- package/dist/client/{eventRegistration-TOODSZUI.mjs → eventRegistration-Q7BYY5HF.mjs} +10 -11
- package/dist/client/{form-MTCMVCZT.mjs → form-NI6YOG6S.mjs} +3 -3
- package/dist/client/{headerSection-Y5TMR3TW.mjs → headerSection-SDYGII36.mjs} +4 -4
- package/dist/client/hooks.mjs +1682 -1412
- package/dist/client/{locationMap-RH2LG7FZ.mjs → locationMap-BDETEUQD.mjs} +3 -4
- package/dist/client/{newsletterForm-PCAIPFMA.mjs → newsletterForm-EKYIU67X.mjs} +70 -22
- package/dist/client/{productDetail-OIGDR4YE.mjs → productDetail-5UTGNN76.mjs} +8 -9
- package/dist/client/{productList-4MA5S2CX.mjs → productList-7YA5KXZQ.mjs} +8 -9
- package/dist/client/rendering/client.mjs +753 -329
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3786 -3034
- package/dist/client/shop-AIMUMZYC.mjs +20 -0
- package/dist/preview-next/before-render.mjs +58 -14
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/editor-chrome.css +56 -9
- package/dist/preview-next/middleware.mjs +58 -14
- package/dist/{sdk-runtime-QLOCYKVU.mjs → sdk-runtime-NW472WNT.mjs} +6 -6
- package/dist/server/components.mjs +1518 -1015
- package/dist/server/config-validation.mjs +1719 -1461
- package/dist/server/config.mjs +1719 -1461
- package/dist/server/data.mjs +1683 -1413
- package/dist/server/index.mjs +79 -17
- package/dist/server/next.mjs +1902 -1311
- package/dist/server/page-converter.mjs +2193 -1169
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1709 -1209
- package/dist/server/rendering.mjs +1894 -1347
- package/dist/server/routing.mjs +1872 -1499
- package/dist/server/server.mjs +1571 -1264
- package/dist/server/theme-bridge.mjs +234 -0
- package/dist/styles/index.css +232 -0
- package/package.json +1 -1
- package/dist/SdkPreviewModeRuntime-4FGSVUYI.mjs +0 -8
- package/dist/client/cart-X4YK4FTW.mjs +0 -19
- package/dist/client/checkout-OM2BEPWD.mjs +0 -19
- package/dist/client/chunk-I2MMZO53.mjs +0 -6
- package/dist/client/shop-WXSYV5QO.mjs +0 -21
package/dist/cli/index.mjs
CHANGED
|
@@ -109,6 +109,57 @@ var init_collections = __esm({
|
|
|
109
109
|
}
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
+
// ../core/src/assert-never.ts
|
|
113
|
+
function assertNever(value, message = "Unexpected variant") {
|
|
114
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
115
|
+
}
|
|
116
|
+
var init_assert_never = __esm({
|
|
117
|
+
"../core/src/assert-never.ts"() {
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
// ../core/src/currency-format.ts
|
|
122
|
+
function resolveCurrencyLocale(currencyCode, override) {
|
|
123
|
+
return CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
|
|
124
|
+
}
|
|
125
|
+
function formatCurrencyAmount(amountCents, currency, options) {
|
|
126
|
+
const currencyCode = currency.toUpperCase();
|
|
127
|
+
const locale = resolveCurrencyLocale(currencyCode);
|
|
128
|
+
try {
|
|
129
|
+
const exactFormatter = new Intl.NumberFormat(locale, {
|
|
130
|
+
style: "currency",
|
|
131
|
+
currency: currencyCode
|
|
132
|
+
});
|
|
133
|
+
const fractionDigits = options?.decimals === "auto" ? {
|
|
134
|
+
minimumFractionDigits: 0,
|
|
135
|
+
maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
|
|
136
|
+
} : {};
|
|
137
|
+
return new Intl.NumberFormat(locale, {
|
|
138
|
+
style: "currency",
|
|
139
|
+
currency: currencyCode,
|
|
140
|
+
...fractionDigits
|
|
141
|
+
}).format(amountCents / 100);
|
|
142
|
+
} catch {
|
|
143
|
+
return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
var CURRENCY_LOCALE_BY_CODE;
|
|
147
|
+
var init_currency_format = __esm({
|
|
148
|
+
"../core/src/currency-format.ts"() {
|
|
149
|
+
CURRENCY_LOCALE_BY_CODE = {
|
|
150
|
+
USD: "en-US",
|
|
151
|
+
GBP: "en-GB",
|
|
152
|
+
EUR: "de-DE",
|
|
153
|
+
AUD: "en-AU",
|
|
154
|
+
CAD: "en-CA",
|
|
155
|
+
NZD: "en-NZ",
|
|
156
|
+
JPY: "ja-JP",
|
|
157
|
+
CNY: "zh-CN",
|
|
158
|
+
CHF: "de-CH"
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
|
|
112
163
|
// ../core/src/event-pricing.ts
|
|
113
164
|
function publicEventPricingType(pricing) {
|
|
114
165
|
switch (pricing.kind) {
|
|
@@ -129,6 +180,7 @@ function isFreePublicEventPriceDisplay(display) {
|
|
|
129
180
|
return display.display.kind === "free";
|
|
130
181
|
case "exact":
|
|
131
182
|
case "from":
|
|
183
|
+
case "range":
|
|
132
184
|
case "mixed":
|
|
133
185
|
case "unavailable":
|
|
134
186
|
return false;
|
|
@@ -343,15 +395,6 @@ var init_business_address = __esm({
|
|
|
343
395
|
}
|
|
344
396
|
});
|
|
345
397
|
|
|
346
|
-
// ../core/src/assert-never.ts
|
|
347
|
-
function assertNever(value, message = "Unexpected variant") {
|
|
348
|
-
throw new Error(`${message}: ${String(value)}`);
|
|
349
|
-
}
|
|
350
|
-
var init_assert_never = __esm({
|
|
351
|
-
"../core/src/assert-never.ts"() {
|
|
352
|
-
}
|
|
353
|
-
});
|
|
354
|
-
|
|
355
398
|
// ../core/src/narrow-result.ts
|
|
356
399
|
var init_narrow_result = __esm({
|
|
357
400
|
"../core/src/narrow-result.ts"() {
|
|
@@ -454,12 +497,6 @@ var init_csv_types = __esm({
|
|
|
454
497
|
}
|
|
455
498
|
});
|
|
456
499
|
|
|
457
|
-
// ../core/src/currency-format.ts
|
|
458
|
-
var init_currency_format = __esm({
|
|
459
|
-
"../core/src/currency-format.ts"() {
|
|
460
|
-
}
|
|
461
|
-
});
|
|
462
|
-
|
|
463
500
|
// ../core/src/email-format.ts
|
|
464
501
|
var init_email_format = __esm({
|
|
465
502
|
"../core/src/email-format.ts"() {
|
|
@@ -17955,15 +17992,53 @@ var init_newsletterForm = __esm({
|
|
|
17955
17992
|
title: "Newsletter Form",
|
|
17956
17993
|
description: "Newsletter subscription form with preset field configurations.",
|
|
17957
17994
|
fields: [
|
|
17995
|
+
{
|
|
17996
|
+
id: "destinationProvider",
|
|
17997
|
+
type: "select",
|
|
17998
|
+
label: "Send signups to",
|
|
17999
|
+
description: "Choose where new subscribers from this form should go.",
|
|
18000
|
+
defaultValue: "riverbank",
|
|
18001
|
+
required: true,
|
|
18002
|
+
ui: { intent: "behavior" },
|
|
18003
|
+
options: [
|
|
18004
|
+
{ value: "riverbank", label: "Riverbank newsletter" }
|
|
18005
|
+
]
|
|
18006
|
+
},
|
|
17958
18007
|
{
|
|
17959
18008
|
id: "listId",
|
|
17960
18009
|
type: "reference",
|
|
17961
18010
|
label: "Newsletter list",
|
|
17962
18011
|
description: "Select the list new subscribers should be added to.",
|
|
17963
|
-
required:
|
|
18012
|
+
required: false,
|
|
17964
18013
|
referenceKind: "newsletterList",
|
|
17965
18014
|
allowManualEntry: false,
|
|
17966
|
-
ui: {
|
|
18015
|
+
ui: {
|
|
18016
|
+
intent: "behavior",
|
|
18017
|
+
visibleWhen: { field: "destinationProvider", equals: "riverbank" }
|
|
18018
|
+
}
|
|
18019
|
+
},
|
|
18020
|
+
{
|
|
18021
|
+
id: "mailchimpAudienceId",
|
|
18022
|
+
type: "reference",
|
|
18023
|
+
label: "Mailchimp audience",
|
|
18024
|
+
description: "Choose the Mailchimp audience for new subscribers.",
|
|
18025
|
+
required: false,
|
|
18026
|
+
referenceKind: "mailchimpAudience",
|
|
18027
|
+
allowManualEntry: false,
|
|
18028
|
+
ui: {
|
|
18029
|
+
intent: "behavior",
|
|
18030
|
+
visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
|
|
18031
|
+
}
|
|
18032
|
+
},
|
|
18033
|
+
{
|
|
18034
|
+
id: "mailchimpTags",
|
|
18035
|
+
type: "text",
|
|
18036
|
+
label: "Mailchimp tags",
|
|
18037
|
+
description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
|
|
18038
|
+
ui: {
|
|
18039
|
+
intent: "behavior",
|
|
18040
|
+
visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
|
|
18041
|
+
}
|
|
17967
18042
|
},
|
|
17968
18043
|
{
|
|
17969
18044
|
id: "preset",
|
|
@@ -18010,13 +18085,18 @@ var init_newsletterForm = __esm({
|
|
|
18010
18085
|
id: "tags",
|
|
18011
18086
|
type: "text",
|
|
18012
18087
|
label: "Tags (optional)",
|
|
18013
|
-
description: "Optional tags to apply on subscribe (comma or semicolon separated)."
|
|
18088
|
+
description: "Optional tags to apply on subscribe (comma or semicolon separated).",
|
|
18089
|
+
ui: {
|
|
18090
|
+
intent: "behavior",
|
|
18091
|
+
visibleWhen: { field: "destinationProvider", equals: "riverbank" }
|
|
18092
|
+
}
|
|
18014
18093
|
}
|
|
18015
18094
|
],
|
|
18016
18095
|
layout: [
|
|
18017
18096
|
el(
|
|
18018
18097
|
"newsletter-form",
|
|
18019
18098
|
withApiBindings({
|
|
18099
|
+
destinationProvider: { $bind: { from: "destinationProvider" } },
|
|
18020
18100
|
listId: { $bind: { from: "listId" } },
|
|
18021
18101
|
preset: { $bind: { from: "preset" } },
|
|
18022
18102
|
includePhone: { $bind: { from: "includePhone" } },
|
|
@@ -18522,6 +18602,83 @@ var init_media2 = __esm({
|
|
|
18522
18602
|
]);
|
|
18523
18603
|
}
|
|
18524
18604
|
});
|
|
18605
|
+
function createHardBreakNode() {
|
|
18606
|
+
return { type: "hardBreak" };
|
|
18607
|
+
}
|
|
18608
|
+
function parseRichTextInlineMarkdown(text2) {
|
|
18609
|
+
const out = [];
|
|
18610
|
+
const pushText = (value, marks) => {
|
|
18611
|
+
if (!value) return;
|
|
18612
|
+
out.push(
|
|
18613
|
+
marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
|
|
18614
|
+
);
|
|
18615
|
+
};
|
|
18616
|
+
let rest = text2;
|
|
18617
|
+
while (rest.length > 0) {
|
|
18618
|
+
const start = rest.indexOf("**");
|
|
18619
|
+
if (start === -1) {
|
|
18620
|
+
pushText(rest);
|
|
18621
|
+
break;
|
|
18622
|
+
}
|
|
18623
|
+
const end = rest.indexOf("**", start + 2);
|
|
18624
|
+
if (end === -1) {
|
|
18625
|
+
pushText(rest);
|
|
18626
|
+
break;
|
|
18627
|
+
}
|
|
18628
|
+
pushText(rest.slice(0, start));
|
|
18629
|
+
pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
|
|
18630
|
+
rest = rest.slice(end + 2);
|
|
18631
|
+
}
|
|
18632
|
+
return out;
|
|
18633
|
+
}
|
|
18634
|
+
function parseRichTextParagraphInlineMarkdown(text2) {
|
|
18635
|
+
return text2.split("\n").flatMap((line, index) => {
|
|
18636
|
+
const lineNodes = parseRichTextInlineMarkdown(line.trim());
|
|
18637
|
+
return index === 0 ? lineNodes : [createHardBreakNode(), ...lineNodes];
|
|
18638
|
+
});
|
|
18639
|
+
}
|
|
18640
|
+
function createRichTextDocFromMarkdown(markdown) {
|
|
18641
|
+
const normalized = markdown.replace(/\r\n/g, "\n").trim();
|
|
18642
|
+
if (!normalized) return { type: "doc", content: [] };
|
|
18643
|
+
const paragraphs = normalized.split(/\n{2,}/).map((paragraph) => paragraph.trim()).filter(Boolean);
|
|
18644
|
+
return {
|
|
18645
|
+
type: "doc",
|
|
18646
|
+
content: paragraphs.map((paragraph) => {
|
|
18647
|
+
const inline2 = parseRichTextParagraphInlineMarkdown(paragraph);
|
|
18648
|
+
return inline2.length > 0 ? { type: "paragraph", content: inline2 } : { type: "paragraph" };
|
|
18649
|
+
})
|
|
18650
|
+
};
|
|
18651
|
+
}
|
|
18652
|
+
var TipTapMarkSchema, TipTapNodeSchema, RichTextDocSchema;
|
|
18653
|
+
var init_richTextSchema = __esm({
|
|
18654
|
+
"../blocks/src/system/manifest/richTextSchema.ts"() {
|
|
18655
|
+
TipTapMarkSchema = z.object({
|
|
18656
|
+
type: z.string(),
|
|
18657
|
+
attrs: z.record(z.string(), z.unknown()).optional()
|
|
18658
|
+
});
|
|
18659
|
+
TipTapNodeSchema = z.lazy(
|
|
18660
|
+
() => z.object({
|
|
18661
|
+
type: z.string(),
|
|
18662
|
+
content: z.array(TipTapNodeSchema).optional(),
|
|
18663
|
+
text: z.string().optional(),
|
|
18664
|
+
attrs: z.record(z.string(), z.unknown()).optional(),
|
|
18665
|
+
marks: z.array(TipTapMarkSchema).optional()
|
|
18666
|
+
})
|
|
18667
|
+
);
|
|
18668
|
+
z.union([
|
|
18669
|
+
// Canonical: TipTap document directly
|
|
18670
|
+
TipTapNodeSchema,
|
|
18671
|
+
// Legacy (read-tolerance only): wrapped in { doc: {...} }
|
|
18672
|
+
z.object({
|
|
18673
|
+
doc: TipTapNodeSchema
|
|
18674
|
+
})
|
|
18675
|
+
]);
|
|
18676
|
+
RichTextDocSchema = z.object({
|
|
18677
|
+
type: z.literal("doc"),
|
|
18678
|
+
content: z.array(TipTapNodeSchema)
|
|
18679
|
+
});
|
|
18680
|
+
}
|
|
18681
|
+
});
|
|
18525
18682
|
var bookingDepositRefundPolicySchema, bookingInstalmentPlanSchema, bookingFlexibleBalanceDueDateRuleSchema, bookingFlexibleBalanceConfigSchema, blockBookingPaymentCollectionOptionSchema, blockBookingPaymentTermsSchema;
|
|
18526
18683
|
var init_bookingPaymentTerms = __esm({
|
|
18527
18684
|
"../blocks/src/system/blocks/shared/bookingPaymentTerms.ts"() {
|
|
@@ -18660,6 +18817,7 @@ var eventPresetSchema, eventScheduleScopeSchema, eventDestinationModeSchema, eve
|
|
|
18660
18817
|
var init_schemas2 = __esm({
|
|
18661
18818
|
"../blocks/src/system/blocks/events/shared/schemas.ts"() {
|
|
18662
18819
|
init_media2();
|
|
18820
|
+
init_richTextSchema();
|
|
18663
18821
|
init_bookingPaymentTerms();
|
|
18664
18822
|
init_schemas();
|
|
18665
18823
|
eventPresetSchema = z.enum(["event", "class", "workshop", "retreat", "performance"]);
|
|
@@ -18692,7 +18850,13 @@ var init_schemas2 = __esm({
|
|
|
18692
18850
|
z.object({ kind: z.literal("free"), currency: z.string() }),
|
|
18693
18851
|
z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
|
|
18694
18852
|
z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
|
|
18695
|
-
z.object({ kind: z.literal("
|
|
18853
|
+
z.object({ kind: z.literal("range"), minAmount: z.number(), maxAmount: z.number(), currency: z.string() }),
|
|
18854
|
+
z.object({
|
|
18855
|
+
kind: z.literal("mixed"),
|
|
18856
|
+
paidFromAmount: z.number(),
|
|
18857
|
+
paidToAmount: z.number(),
|
|
18858
|
+
currency: z.string()
|
|
18859
|
+
}),
|
|
18696
18860
|
z.object({ kind: z.literal("unavailable"), currency: z.string() }),
|
|
18697
18861
|
z.object({ kind: z.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
18698
18862
|
]);
|
|
@@ -18700,7 +18864,13 @@ var init_schemas2 = __esm({
|
|
|
18700
18864
|
z.object({ kind: z.literal("free"), currency: z.string() }),
|
|
18701
18865
|
z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
|
|
18702
18866
|
z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
|
|
18703
|
-
z.object({ kind: z.literal("
|
|
18867
|
+
z.object({ kind: z.literal("range"), minAmount: z.number(), maxAmount: z.number(), currency: z.string() }),
|
|
18868
|
+
z.object({
|
|
18869
|
+
kind: z.literal("mixed"),
|
|
18870
|
+
paidFromAmount: z.number(),
|
|
18871
|
+
paidToAmount: z.number(),
|
|
18872
|
+
currency: z.string()
|
|
18873
|
+
}),
|
|
18704
18874
|
z.object({ kind: z.literal("unavailable"), currency: z.string() })
|
|
18705
18875
|
]);
|
|
18706
18876
|
publicEventAttendanceModeSchema = z.enum(["in_person", "online"]);
|
|
@@ -18785,6 +18955,9 @@ var init_schemas2 = __esm({
|
|
|
18785
18955
|
seriesId: z.string(),
|
|
18786
18956
|
title: z.string(),
|
|
18787
18957
|
description: z.string().nullable(),
|
|
18958
|
+
content: z.object({
|
|
18959
|
+
body: RichTextDocSchema.nullable().optional()
|
|
18960
|
+
}).optional(),
|
|
18788
18961
|
presentation: z.object({
|
|
18789
18962
|
cardTitleOverride: z.string().nullable().optional(),
|
|
18790
18963
|
summary: z.string().nullable().optional(),
|
|
@@ -19167,10 +19340,21 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
19167
19340
|
amount: readAmount(value.amount) ?? 0,
|
|
19168
19341
|
currency: displayCurrency
|
|
19169
19342
|
} : { kind: "unavailable", currency };
|
|
19343
|
+
case "range": {
|
|
19344
|
+
const minAmount = readAmount(value.minAmount);
|
|
19345
|
+
const maxAmount = readAmount(value.maxAmount);
|
|
19346
|
+
return minAmount !== null && maxAmount !== null ? {
|
|
19347
|
+
kind: "range",
|
|
19348
|
+
minAmount,
|
|
19349
|
+
maxAmount,
|
|
19350
|
+
currency: displayCurrency
|
|
19351
|
+
} : { kind: "unavailable", currency };
|
|
19352
|
+
}
|
|
19170
19353
|
case "mixed":
|
|
19171
19354
|
return readAmount(value.paidFromAmount) !== null ? {
|
|
19172
19355
|
kind: "mixed",
|
|
19173
19356
|
paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
|
|
19357
|
+
paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
|
|
19174
19358
|
currency: displayCurrency
|
|
19175
19359
|
} : { kind: "unavailable", currency };
|
|
19176
19360
|
case "unavailable":
|
|
@@ -19425,6 +19609,7 @@ var init_event_registration_interactive = __esm({
|
|
|
19425
19609
|
successMessage: z.string().optional(),
|
|
19426
19610
|
waitlistMessage: z.string().optional(),
|
|
19427
19611
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
19612
|
+
overlayEnabled: z.boolean().optional(),
|
|
19428
19613
|
spamProtectionEnabled: z.boolean().optional(),
|
|
19429
19614
|
stage: previewStageSchema.optional(),
|
|
19430
19615
|
supportEmail: z.string().optional()
|
|
@@ -19448,6 +19633,7 @@ var init_event_registration_interactive = __esm({
|
|
|
19448
19633
|
successMessage: z.string().optional(),
|
|
19449
19634
|
waitlistMessage: z.string().optional(),
|
|
19450
19635
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
19636
|
+
overlayEnabled: z.boolean().optional(),
|
|
19451
19637
|
spamProtectionEnabled: z.boolean().optional(),
|
|
19452
19638
|
supportEmail: z.string().optional()
|
|
19453
19639
|
});
|
|
@@ -19480,6 +19666,7 @@ var init_event_registration_interactive = __esm({
|
|
|
19480
19666
|
successMessage: source.successMessage,
|
|
19481
19667
|
waitlistMessage: source.waitlistMessage,
|
|
19482
19668
|
buttonVariant: source.buttonVariant,
|
|
19669
|
+
overlayEnabled: source.overlayEnabled,
|
|
19483
19670
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
19484
19671
|
supportEmail: source.supportEmail
|
|
19485
19672
|
}
|
|
@@ -20503,10 +20690,7 @@ var init_shop_commerce_shared = __esm({
|
|
|
20503
20690
|
|
|
20504
20691
|
// ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
|
|
20505
20692
|
function formatCommercePrice(cents, currency) {
|
|
20506
|
-
return
|
|
20507
|
-
style: "currency",
|
|
20508
|
-
currency: currency.toUpperCase()
|
|
20509
|
-
}).format(cents / 100);
|
|
20693
|
+
return formatCurrencyAmount(cents, currency);
|
|
20510
20694
|
}
|
|
20511
20695
|
function getPassesHeading(passes, explicitHeading) {
|
|
20512
20696
|
if (explicitHeading) return explicitHeading;
|
|
@@ -20700,6 +20884,7 @@ function formatValidity(days) {
|
|
|
20700
20884
|
}
|
|
20701
20885
|
var init_display = __esm({
|
|
20702
20886
|
"../blocks/src/system/runtime/nodes/commerce/shared/display.ts"() {
|
|
20887
|
+
init_src();
|
|
20703
20888
|
init_creditProducts();
|
|
20704
20889
|
init_shop_commerce_shared();
|
|
20705
20890
|
}
|
|
@@ -21162,6 +21347,65 @@ var init_gifting_interactive = __esm({
|
|
|
21162
21347
|
}
|
|
21163
21348
|
});
|
|
21164
21349
|
|
|
21350
|
+
// ../blocks/src/system/blocks/newsletter-signup-destination.ts
|
|
21351
|
+
function parseNewsletterSignupBlockId(value) {
|
|
21352
|
+
const trimmed = parseTrimmedString(value);
|
|
21353
|
+
return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
|
|
21354
|
+
}
|
|
21355
|
+
function parseSignedNewsletterDestinationRef(value) {
|
|
21356
|
+
const trimmed = parseTrimmedString(value);
|
|
21357
|
+
return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
|
|
21358
|
+
}
|
|
21359
|
+
function parseNewsletterSignupDestinationProvider(value) {
|
|
21360
|
+
return value === "riverbank" || value === "mailchimp" ? value : null;
|
|
21361
|
+
}
|
|
21362
|
+
function buildNewsletterSignupBlockRef(blockId) {
|
|
21363
|
+
const parsed = parseNewsletterSignupBlockId(blockId);
|
|
21364
|
+
return parsed ? { tag: "block_ref", blockId: parsed } : null;
|
|
21365
|
+
}
|
|
21366
|
+
function normalizeNewsletterSignupEditorValuesForDestination(values) {
|
|
21367
|
+
const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
|
|
21368
|
+
if (destinationProvider === "mailchimp") {
|
|
21369
|
+
return {
|
|
21370
|
+
destinationProvider,
|
|
21371
|
+
mailchimpAudienceId: values.mailchimpAudienceId,
|
|
21372
|
+
mailchimpTags: values.mailchimpTags
|
|
21373
|
+
};
|
|
21374
|
+
}
|
|
21375
|
+
return {
|
|
21376
|
+
destinationProvider,
|
|
21377
|
+
listId: values.listId,
|
|
21378
|
+
tags: values.tags
|
|
21379
|
+
};
|
|
21380
|
+
}
|
|
21381
|
+
function deriveNewsletterSignupRuntimeSource(values) {
|
|
21382
|
+
const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
|
|
21383
|
+
if (normalized.destinationProvider === "mailchimp") {
|
|
21384
|
+
return {
|
|
21385
|
+
destinationProvider: "mailchimp",
|
|
21386
|
+
listId: null,
|
|
21387
|
+
tags: null
|
|
21388
|
+
};
|
|
21389
|
+
}
|
|
21390
|
+
return {
|
|
21391
|
+
destinationProvider: "riverbank",
|
|
21392
|
+
listId: parseTrimmedString(normalized.listId),
|
|
21393
|
+
tags: parseTrimmedString(normalized.tags)
|
|
21394
|
+
};
|
|
21395
|
+
}
|
|
21396
|
+
function parseTrimmedString(value) {
|
|
21397
|
+
if (typeof value !== "string") return null;
|
|
21398
|
+
const trimmed = value.trim();
|
|
21399
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
21400
|
+
}
|
|
21401
|
+
var BLOCK_ID_PATTERN, SIGNED_DESTINATION_REF_PATTERN;
|
|
21402
|
+
var init_newsletter_signup_destination = __esm({
|
|
21403
|
+
"../blocks/src/system/blocks/newsletter-signup-destination.ts"() {
|
|
21404
|
+
BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
|
|
21405
|
+
SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
|
|
21406
|
+
}
|
|
21407
|
+
});
|
|
21408
|
+
|
|
21165
21409
|
// ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
|
|
21166
21410
|
function getPresetFields(preset2, options) {
|
|
21167
21411
|
const includePhone = Boolean(options?.includePhone);
|
|
@@ -21227,13 +21471,29 @@ function buildNewsletterDisplay(source) {
|
|
|
21227
21471
|
fields: getPresetFields(preset2, { includePhone })
|
|
21228
21472
|
};
|
|
21229
21473
|
}
|
|
21230
|
-
|
|
21474
|
+
function parseRequiredNewsletterSignupBlockId(value) {
|
|
21475
|
+
const parsed = parseNewsletterSignupBlockId(value);
|
|
21476
|
+
if (!parsed) {
|
|
21477
|
+
throw new Error("Newsletter signup block destination ref requires blockId");
|
|
21478
|
+
}
|
|
21479
|
+
return parsed;
|
|
21480
|
+
}
|
|
21481
|
+
function parseRequiredSignedNewsletterDestinationRef(value) {
|
|
21482
|
+
const parsed = parseSignedNewsletterDestinationRef(value);
|
|
21483
|
+
if (!parsed) {
|
|
21484
|
+
throw new Error("Newsletter signup signed destination ref requires token");
|
|
21485
|
+
}
|
|
21486
|
+
return parsed;
|
|
21487
|
+
}
|
|
21488
|
+
var newsletterPresetSchema, newsletterDestinationProviderSchema, newsletterFieldSchema, newsletterSignupBlockIdSchema, signedNewsletterDestinationRefSchema, newsletterPublicDestinationRefSchema, newsletterSourceSchema, newsletterDisplaySchema, newsletterHydrationSchema, newsletterRenderSchema, newsletterFormBlockRuntime;
|
|
21231
21489
|
var init_newsletter_form_interactive = __esm({
|
|
21232
21490
|
"../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts"() {
|
|
21233
21491
|
init_islands();
|
|
21234
21492
|
init_runtime();
|
|
21493
|
+
init_newsletter_signup_destination();
|
|
21235
21494
|
init_newsletter_form_types();
|
|
21236
21495
|
newsletterPresetSchema = z.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
|
|
21496
|
+
newsletterDestinationProviderSchema = z.enum(["riverbank", "mailchimp"]);
|
|
21237
21497
|
newsletterFieldSchema = z.object({
|
|
21238
21498
|
id: z.string(),
|
|
21239
21499
|
type: z.enum(["email", "text"]),
|
|
@@ -21241,10 +21501,24 @@ var init_newsletter_form_interactive = __esm({
|
|
|
21241
21501
|
required: z.boolean(),
|
|
21242
21502
|
placeholder: z.string().optional()
|
|
21243
21503
|
});
|
|
21504
|
+
newsletterSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
|
|
21505
|
+
signedNewsletterDestinationRefSchema = z.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
|
|
21506
|
+
newsletterPublicDestinationRefSchema = z.discriminatedUnion("tag", [
|
|
21507
|
+
z.object({
|
|
21508
|
+
tag: z.literal("block_ref"),
|
|
21509
|
+
blockId: newsletterSignupBlockIdSchema
|
|
21510
|
+
}),
|
|
21511
|
+
z.object({
|
|
21512
|
+
tag: z.literal("signed_destination_ref"),
|
|
21513
|
+
token: signedNewsletterDestinationRefSchema
|
|
21514
|
+
})
|
|
21515
|
+
]);
|
|
21244
21516
|
newsletterSourceSchema = z.object({
|
|
21517
|
+
blockId: z.string().nullable().optional(),
|
|
21245
21518
|
siteId: z.string().optional(),
|
|
21246
21519
|
apiBaseUrl: z.string().optional(),
|
|
21247
21520
|
listId: z.string().nullable().optional(),
|
|
21521
|
+
destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
|
|
21248
21522
|
preset: newsletterPresetSchema.optional(),
|
|
21249
21523
|
includePhone: z.boolean().optional(),
|
|
21250
21524
|
buttonLabel: z.string().nullable().optional(),
|
|
@@ -21263,6 +21537,7 @@ var init_newsletter_form_interactive = __esm({
|
|
|
21263
21537
|
fields: z.array(newsletterFieldSchema)
|
|
21264
21538
|
});
|
|
21265
21539
|
newsletterHydrationSchema = z.object({
|
|
21540
|
+
destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
|
|
21266
21541
|
listId: z.string().nullable().optional(),
|
|
21267
21542
|
preset: newsletterPresetSchema,
|
|
21268
21543
|
includePhone: z.boolean(),
|
|
@@ -21283,16 +21558,20 @@ var init_newsletter_form_interactive = __esm({
|
|
|
21283
21558
|
source: createZodCodec(newsletterSourceSchema),
|
|
21284
21559
|
render: createZodCodec(newsletterRenderSchema)
|
|
21285
21560
|
},
|
|
21286
|
-
buildRender: (source) =>
|
|
21287
|
-
|
|
21288
|
-
|
|
21289
|
-
|
|
21290
|
-
|
|
21291
|
-
|
|
21292
|
-
|
|
21293
|
-
|
|
21294
|
-
|
|
21295
|
-
|
|
21561
|
+
buildRender: (source) => {
|
|
21562
|
+
const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
|
|
21563
|
+
return {
|
|
21564
|
+
display: buildNewsletterDisplay(source),
|
|
21565
|
+
hydration: {
|
|
21566
|
+
destinationRef: buildNewsletterSignupBlockRef(source.blockId),
|
|
21567
|
+
listId: runtimeSource.listId,
|
|
21568
|
+
preset: source.preset ?? "emailOnly",
|
|
21569
|
+
includePhone: source.includePhone ?? false,
|
|
21570
|
+
tags: runtimeSource.tags,
|
|
21571
|
+
spamProtectionEnabled: source.spamProtectionEnabled
|
|
21572
|
+
}
|
|
21573
|
+
};
|
|
21574
|
+
}
|
|
21296
21575
|
});
|
|
21297
21576
|
}
|
|
21298
21577
|
});
|
|
@@ -22309,6 +22588,64 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
22309
22588
|
auth: "user",
|
|
22310
22589
|
responseKind: "json"
|
|
22311
22590
|
},
|
|
22591
|
+
listMailchimpAudiences: {
|
|
22592
|
+
path: "/sites/{siteId}/integrations/mailchimp/audiences",
|
|
22593
|
+
method: "GET",
|
|
22594
|
+
tags: [TAG_TEMPLATES.site],
|
|
22595
|
+
auth: "user",
|
|
22596
|
+
responseKind: "json",
|
|
22597
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
22598
|
+
},
|
|
22599
|
+
getMailchimpSignupSyncHealth: {
|
|
22600
|
+
path: "/sites/{siteId}/integrations/mailchimp/signup-sync-health",
|
|
22601
|
+
method: "GET",
|
|
22602
|
+
tags: [TAG_TEMPLATES.site],
|
|
22603
|
+
auth: "user",
|
|
22604
|
+
responseKind: "json",
|
|
22605
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
22606
|
+
},
|
|
22607
|
+
getMailchimpConnection: {
|
|
22608
|
+
path: "/sites/{siteId}/integrations/mailchimp/connection",
|
|
22609
|
+
method: "GET",
|
|
22610
|
+
tags: [TAG_TEMPLATES.site],
|
|
22611
|
+
auth: "user",
|
|
22612
|
+
responseKind: "json",
|
|
22613
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
22614
|
+
},
|
|
22615
|
+
startMailchimpOAuth: {
|
|
22616
|
+
path: "/sites/{siteId}/integrations/mailchimp/oauth/start",
|
|
22617
|
+
method: "POST",
|
|
22618
|
+
tags: [TAG_TEMPLATES.site],
|
|
22619
|
+
auth: "user",
|
|
22620
|
+
responseKind: "json",
|
|
22621
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
22622
|
+
errors: ["auth:forbidden", "validation:invalid_input", "server:internal_error"]
|
|
22623
|
+
},
|
|
22624
|
+
refreshMailchimpAudiences: {
|
|
22625
|
+
path: "/sites/{siteId}/integrations/mailchimp/audiences/refresh",
|
|
22626
|
+
method: "POST",
|
|
22627
|
+
tags: [TAG_TEMPLATES.site],
|
|
22628
|
+
auth: "user",
|
|
22629
|
+
responseKind: "json",
|
|
22630
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
22631
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
22632
|
+
},
|
|
22633
|
+
disconnectMailchimp: {
|
|
22634
|
+
path: "/sites/{siteId}/integrations/mailchimp/disconnect",
|
|
22635
|
+
method: "POST",
|
|
22636
|
+
tags: [TAG_TEMPLATES.site],
|
|
22637
|
+
auth: "user",
|
|
22638
|
+
responseKind: "json",
|
|
22639
|
+
demoMutation: DEMO_MUTATION_BLOCKED_DISABLED,
|
|
22640
|
+
errors: ["auth:forbidden", "server:internal_error"]
|
|
22641
|
+
},
|
|
22642
|
+
mailchimpOAuthCallback: {
|
|
22643
|
+
path: "/auth/mailchimp/callback",
|
|
22644
|
+
method: "GET",
|
|
22645
|
+
auth: "public",
|
|
22646
|
+
responseKind: "void",
|
|
22647
|
+
errors: []
|
|
22648
|
+
},
|
|
22312
22649
|
createNewsletterList: {
|
|
22313
22650
|
path: "/sites/{siteId}/newsletter/lists",
|
|
22314
22651
|
method: "POST",
|
|
@@ -24533,20 +24870,6 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
24533
24870
|
auth: "user",
|
|
24534
24871
|
responseKind: "json"
|
|
24535
24872
|
},
|
|
24536
|
-
instagramUploadZip: {
|
|
24537
|
-
path: "/instagram/upload-zip",
|
|
24538
|
-
method: "POST",
|
|
24539
|
-
tags: ["instagram-import"],
|
|
24540
|
-
auth: "user",
|
|
24541
|
-
responseKind: "json"
|
|
24542
|
-
},
|
|
24543
|
-
createInstagramZipUploadUrl: {
|
|
24544
|
-
path: "/instagram/upload-zip-url",
|
|
24545
|
-
method: "POST",
|
|
24546
|
-
tags: ["instagram-import"],
|
|
24547
|
-
auth: "user",
|
|
24548
|
-
responseKind: "json"
|
|
24549
|
-
},
|
|
24550
24873
|
getAnalyticsReport: {
|
|
24551
24874
|
path: "/sites/{siteId}/analytics/report",
|
|
24552
24875
|
method: "GET",
|
|
@@ -35102,6 +35425,12 @@ var eventRegistrationManifest = createBlockManifest({
|
|
|
35102
35425
|
buttonVariant: {
|
|
35103
35426
|
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
35104
35427
|
},
|
|
35428
|
+
overlayEnabled: {
|
|
35429
|
+
$bind: {
|
|
35430
|
+
from: "$root.eventRegistrationOverlayEnabled",
|
|
35431
|
+
fallback: false
|
|
35432
|
+
}
|
|
35433
|
+
},
|
|
35105
35434
|
// Event data from loader
|
|
35106
35435
|
events: { $bind: { from: "data.events" } },
|
|
35107
35436
|
// Stage for preview mode (allows registering for draft events)
|
|
@@ -41872,6 +42201,7 @@ var SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
41872
42201
|
];
|
|
41873
42202
|
|
|
41874
42203
|
// ../blocks/src/index.ts
|
|
42204
|
+
init_richTextSchema();
|
|
41875
42205
|
init_booking_form_reserved_fields();
|
|
41876
42206
|
init_colorStyles();
|
|
41877
42207
|
|
|
@@ -44125,21 +44455,6 @@ var titleSourceValueSchema = z.union([
|
|
|
44125
44455
|
z.array(z.string().min(1)).min(1)
|
|
44126
44456
|
]);
|
|
44127
44457
|
|
|
44128
|
-
// src/data/prefetchBlockData.ts
|
|
44129
|
-
var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
44130
|
-
"listPublishedEntries",
|
|
44131
|
-
"getPublishedEntryPreview",
|
|
44132
|
-
"listPublicEvents",
|
|
44133
|
-
"listPublicCourses",
|
|
44134
|
-
"listPublicTeamMembers",
|
|
44135
|
-
"listPublicProducts",
|
|
44136
|
-
"listPublicPasses",
|
|
44137
|
-
"listPublicMemberships",
|
|
44138
|
-
"getPublicFormById",
|
|
44139
|
-
"getPublicBookingServices",
|
|
44140
|
-
"getPublicEventDetails"
|
|
44141
|
-
];
|
|
44142
|
-
|
|
44143
44458
|
// src/config/validation.ts
|
|
44144
44459
|
var sdkThemePaletteSchema2 = z.record(z.string(), z.string());
|
|
44145
44460
|
var sdkThemeConfigSchema2 = z.object({
|
|
@@ -44188,7 +44503,7 @@ var siteStyleConfigSchema = z.object({
|
|
|
44188
44503
|
sectionOptions: sectionOptionsSchema,
|
|
44189
44504
|
containerOptions: containerOptionsSchema
|
|
44190
44505
|
}).optional();
|
|
44191
|
-
var sdkLoaderEndpointSchema2 = z.enum(
|
|
44506
|
+
var sdkLoaderEndpointSchema2 = z.enum(SUPPORTED_LOADER_ENDPOINTS);
|
|
44192
44507
|
var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
|
|
44193
44508
|
var loaderTransformStepSchema = z.object({
|
|
44194
44509
|
id: z.string().refine((id) => allowedTransformIds.has(id), {
|
|
@@ -64856,7 +65171,7 @@ var SimpleCache = class {
|
|
|
64856
65171
|
};
|
|
64857
65172
|
|
|
64858
65173
|
// src/version.ts
|
|
64859
|
-
var SDK_VERSION = "0.
|
|
65174
|
+
var SDK_VERSION = "0.88.0";
|
|
64860
65175
|
|
|
64861
65176
|
// src/client/error.ts
|
|
64862
65177
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -66010,10 +66325,16 @@ function createRiverbankClient(config2) {
|
|
|
66010
66325
|
limit,
|
|
66011
66326
|
from,
|
|
66012
66327
|
to,
|
|
66328
|
+
afterStartsAt,
|
|
66329
|
+
afterId,
|
|
66013
66330
|
stage,
|
|
66014
66331
|
categoryIds,
|
|
66015
66332
|
venueId,
|
|
66333
|
+
staffMemberId,
|
|
66016
66334
|
kind,
|
|
66335
|
+
eventSurface,
|
|
66336
|
+
eventPresets,
|
|
66337
|
+
scheduleScope,
|
|
66017
66338
|
entryId,
|
|
66018
66339
|
seriesId,
|
|
66019
66340
|
includeOccurrenceId,
|
|
@@ -66022,7 +66343,7 @@ function createRiverbankClient(config2) {
|
|
|
66022
66343
|
if (!siteId) {
|
|
66023
66344
|
throw new Error("listPublicEvents() requires siteId");
|
|
66024
66345
|
}
|
|
66025
|
-
const cacheKey = `public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${kind ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
66346
|
+
const cacheKey = `public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
66026
66347
|
return resilientFetchData(
|
|
66027
66348
|
cacheKey,
|
|
66028
66349
|
async (sig) => {
|
|
@@ -66031,10 +66352,16 @@ function createRiverbankClient(config2) {
|
|
|
66031
66352
|
...typeof limit === "number" && { limit: String(limit) },
|
|
66032
66353
|
...from && { from },
|
|
66033
66354
|
...to && { to },
|
|
66355
|
+
...afterStartsAt && { afterStartsAt },
|
|
66356
|
+
...afterId && { afterId },
|
|
66034
66357
|
...stage && { stage },
|
|
66035
66358
|
...categoryIds && { categoryIds },
|
|
66036
66359
|
...venueId && { venueId },
|
|
66360
|
+
...staffMemberId && { staffMemberId },
|
|
66037
66361
|
...kind && { kind },
|
|
66362
|
+
...eventSurface && { eventSurface },
|
|
66363
|
+
...eventPresets && { eventPresets },
|
|
66364
|
+
...scheduleScope && { scheduleScope },
|
|
66038
66365
|
...entryId && { entryId },
|
|
66039
66366
|
...seriesId && { seriesId },
|
|
66040
66367
|
...includeOccurrenceId && { includeOccurrenceId }
|
|
@@ -66061,6 +66388,9 @@ function createRiverbankClient(config2) {
|
|
|
66061
66388
|
venueId,
|
|
66062
66389
|
staffMemberId,
|
|
66063
66390
|
kind,
|
|
66391
|
+
eventSurface,
|
|
66392
|
+
eventPresets,
|
|
66393
|
+
scheduleScope,
|
|
66064
66394
|
entryId,
|
|
66065
66395
|
seriesId,
|
|
66066
66396
|
includeOccurrenceId,
|
|
@@ -66069,7 +66399,7 @@ function createRiverbankClient(config2) {
|
|
|
66069
66399
|
if (!siteId) {
|
|
66070
66400
|
throw new Error("getPublicEventDetails() requires siteId");
|
|
66071
66401
|
}
|
|
66072
|
-
const cacheKey = `public-event-details:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
66402
|
+
const cacheKey = `public-event-details:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${eventSurface ?? ""}:${eventPresets ?? ""}:${scheduleScope ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
66073
66403
|
return resilientFetchData(
|
|
66074
66404
|
cacheKey,
|
|
66075
66405
|
async (sig) => {
|
|
@@ -66092,6 +66422,9 @@ function createRiverbankClient(config2) {
|
|
|
66092
66422
|
...venueId && { venueId },
|
|
66093
66423
|
...staffMemberId && { staffMemberId },
|
|
66094
66424
|
...kind && { kind },
|
|
66425
|
+
...eventSurface && { eventSurface },
|
|
66426
|
+
...eventPresets && { eventPresets },
|
|
66427
|
+
...scheduleScope && { scheduleScope },
|
|
66095
66428
|
...entryId && { entryId },
|
|
66096
66429
|
...seriesId && { seriesId },
|
|
66097
66430
|
...includeOccurrenceId && { includeOccurrenceId }
|
|
@@ -69582,11 +69915,12 @@ Your task: Analyze the HTML/JSX markup and identify ALL pieces of content that s
|
|
|
69582
69915
|
|
|
69583
69916
|
1. **Use richText for formatted lists and multi-line content:**
|
|
69584
69917
|
- Opening hours \u2192 single richText with formatted list (not 6 separate text fields)
|
|
69585
|
-
- Address with line breaks \u2192 single richText (not address1, address2, city, postcode)
|
|
69918
|
+
- Address with line breaks \u2192 single richText with hard line breaks / Shift+Enter between lines (not address1, address2, city, postcode)
|
|
69586
69919
|
- Feature lists, specs, ingredients \u2192 richText with bullet list
|
|
69587
69920
|
|
|
69588
|
-
RichText supports: paragraphs, bold, italic, bullet lists, numbered lists, links.
|
|
69921
|
+
RichText supports: paragraphs, hard line breaks, bold, italic, bullet lists, numbered lists, links.
|
|
69589
69922
|
The CMS editor can format content naturally without rigid field structure.
|
|
69923
|
+
For line-oriented content like addresses, opening hours, and contact details, keep one logical paragraph and use hard line breaks between lines. In the CMS editor, authors create those line breaks with Shift+Enter; Enter creates a new paragraph.
|
|
69590
69924
|
|
|
69591
69925
|
2. **Use repeaters only when items need individual editing/reordering:**
|
|
69592
69926
|
- Testimonials with avatar + name + quote \u2192 repeater (each item is distinct)
|
|
@@ -69598,8 +69932,8 @@ Your task: Analyze the HTML/JSX markup and identify ALL pieces of content that s
|
|
|
69598
69932
|
\u274C socialInstagram, socialFacebook, socialTwitter (proliferating similar fields)
|
|
69599
69933
|
\u274C address1, address2, city, state, zip (5 fields for one address)
|
|
69600
69934
|
|
|
69601
|
-
\u2705 openingHours: single richText field with formatted content
|
|
69602
|
-
\u2705 address: single richText field with line breaks
|
|
69935
|
+
\u2705 openingHours: single richText field with formatted content / hard line breaks
|
|
69936
|
+
\u2705 address: single richText field with hard line breaks (Shift+Enter in the editor)
|
|
69603
69937
|
\u2705 socialLinks: repeater with { platform, url } IF user needs to add/remove links
|
|
69604
69938
|
|
|
69605
69939
|
## Field Type Rules
|
|
@@ -69629,7 +69963,7 @@ Your task: Analyze the HTML/JSX markup and identify ALL pieces of content that s
|
|
|
69629
69963
|
|
|
69630
69964
|
### When to use each type:
|
|
69631
69965
|
- Single value \u2192 simple field (text, richText, media, link)
|
|
69632
|
-
- Formatted list where structure is static \u2192 richText (opening hours, address)
|
|
69966
|
+
- Formatted list where structure is static \u2192 richText (opening hours, address; use hard line breaks / Shift+Enter for line-oriented text)
|
|
69633
69967
|
- List where items can be added/removed/reordered \u2192 repeater
|
|
69634
69968
|
- Related fields that belong together \u2192 group
|
|
69635
69969
|
|
|
@@ -70041,43 +70375,8 @@ Do NOT include [data-block=...] in selectors - we add that automatically.
|
|
|
70041
70375
|
var DEFAULT_MANIFEST_MODEL = process.env.RIVERBANK_MANIFEST_MODEL || "gpt-5-mini";
|
|
70042
70376
|
|
|
70043
70377
|
// src/manifest/three-pass-converter.ts
|
|
70044
|
-
function parseInlineMarkdown(text2) {
|
|
70045
|
-
const out = [];
|
|
70046
|
-
const pushText = (value, marks) => {
|
|
70047
|
-
if (!value) return;
|
|
70048
|
-
out.push(
|
|
70049
|
-
marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
|
|
70050
|
-
);
|
|
70051
|
-
};
|
|
70052
|
-
let rest = text2;
|
|
70053
|
-
while (rest.length > 0) {
|
|
70054
|
-
const start = rest.indexOf("**");
|
|
70055
|
-
if (start === -1) {
|
|
70056
|
-
pushText(rest);
|
|
70057
|
-
break;
|
|
70058
|
-
}
|
|
70059
|
-
const end = rest.indexOf("**", start + 2);
|
|
70060
|
-
if (end === -1) {
|
|
70061
|
-
pushText(rest);
|
|
70062
|
-
break;
|
|
70063
|
-
}
|
|
70064
|
-
pushText(rest.slice(0, start));
|
|
70065
|
-
pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
|
|
70066
|
-
rest = rest.slice(end + 2);
|
|
70067
|
-
}
|
|
70068
|
-
return out;
|
|
70069
|
-
}
|
|
70070
70378
|
function stringToTipTapDoc(text2) {
|
|
70071
|
-
|
|
70072
|
-
if (!normalized) return { type: "doc", content: [] };
|
|
70073
|
-
const paragraphs = normalized.split(/\n{2,}/).map((p) => p.trim()).filter(Boolean);
|
|
70074
|
-
return {
|
|
70075
|
-
type: "doc",
|
|
70076
|
-
content: paragraphs.map((p) => {
|
|
70077
|
-
const inline2 = parseInlineMarkdown(p);
|
|
70078
|
-
return inline2.length > 0 ? { type: "paragraph", content: inline2 } : { type: "paragraph" };
|
|
70079
|
-
})
|
|
70080
|
-
};
|
|
70379
|
+
return createRichTextDocFromMarkdown(text2);
|
|
70081
70380
|
}
|
|
70082
70381
|
function coerceRichTextDefaultValue(value) {
|
|
70083
70382
|
if (value === null || value === void 0) {
|