@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { ApiRequestError } from './chunk-
|
|
2
|
+
import { ApiRequestError } from './chunk-O4LVYUVH.mjs';
|
|
3
3
|
import { __commonJS, __export, __toESM } from './chunk-R7POPVJR.mjs';
|
|
4
4
|
import * as React61 from 'react';
|
|
5
5
|
import React61__default, { createContext, forwardRef, useContext, createElement, useRef, useMemo, useEffect, useState, useCallback, useImperativeHandle, useLayoutEffect, memo, createRef, Component as Component$1, useDebugValue, useId as useId$1, useSyncExternalStore, isValidElement, cloneElement, useReducer, startTransition } from 'react';
|
|
@@ -154,6 +154,48 @@ function subtractDaysFromIso(isoString, dayCount) {
|
|
|
154
154
|
return addDaysToIso(isoString, -dayCount);
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
+
// ../core/src/assert-never.ts
|
|
158
|
+
function assertNever(value, message2 = "Unexpected variant") {
|
|
159
|
+
throw new Error(`${message2}: ${String(value)}`);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// ../core/src/currency-format.ts
|
|
163
|
+
var CURRENCY_LOCALE_BY_CODE = {
|
|
164
|
+
USD: "en-US",
|
|
165
|
+
GBP: "en-GB",
|
|
166
|
+
EUR: "de-DE",
|
|
167
|
+
AUD: "en-AU",
|
|
168
|
+
CAD: "en-CA",
|
|
169
|
+
NZD: "en-NZ",
|
|
170
|
+
JPY: "ja-JP",
|
|
171
|
+
CNY: "zh-CN",
|
|
172
|
+
CHF: "de-CH"
|
|
173
|
+
};
|
|
174
|
+
function resolveCurrencyLocale(currencyCode, override) {
|
|
175
|
+
return override ?? CURRENCY_LOCALE_BY_CODE[currencyCode] ?? "en";
|
|
176
|
+
}
|
|
177
|
+
function formatCurrencyAmount(amountCents, currency, options) {
|
|
178
|
+
const currencyCode = currency.toUpperCase();
|
|
179
|
+
const locale = resolveCurrencyLocale(currencyCode, options?.locale);
|
|
180
|
+
try {
|
|
181
|
+
const exactFormatter = new Intl.NumberFormat(locale, {
|
|
182
|
+
style: "currency",
|
|
183
|
+
currency: currencyCode
|
|
184
|
+
});
|
|
185
|
+
const fractionDigits = options?.decimals === "auto" ? {
|
|
186
|
+
minimumFractionDigits: 0,
|
|
187
|
+
maximumFractionDigits: exactFormatter.resolvedOptions().maximumFractionDigits
|
|
188
|
+
} : {};
|
|
189
|
+
return new Intl.NumberFormat(locale, {
|
|
190
|
+
style: "currency",
|
|
191
|
+
currency: currencyCode,
|
|
192
|
+
...fractionDigits
|
|
193
|
+
}).format(amountCents / 100);
|
|
194
|
+
} catch {
|
|
195
|
+
return `${(amountCents / 100).toFixed(2)} ${currencyCode}`;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
157
199
|
// ../core/src/event-pricing.ts
|
|
158
200
|
function publicEventPricingDisplay(pricing) {
|
|
159
201
|
return pricing.display;
|
|
@@ -206,11 +248,48 @@ function isFreePublicEventPriceDisplay(display) {
|
|
|
206
248
|
return display.display.kind === "free";
|
|
207
249
|
case "exact":
|
|
208
250
|
case "from":
|
|
251
|
+
case "range":
|
|
209
252
|
case "mixed":
|
|
210
253
|
case "unavailable":
|
|
211
254
|
return false;
|
|
212
255
|
}
|
|
213
256
|
}
|
|
257
|
+
function formatCoursePriceDisplayLabel(display, options) {
|
|
258
|
+
switch (display.kind) {
|
|
259
|
+
case "free":
|
|
260
|
+
case "unavailable":
|
|
261
|
+
return "Course";
|
|
262
|
+
case "exact":
|
|
263
|
+
return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
|
|
264
|
+
case "from":
|
|
265
|
+
return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
|
|
266
|
+
default:
|
|
267
|
+
return assertNever(display);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
function formatBookingPriceDisplay(display, options = {}) {
|
|
271
|
+
switch (display.kind) {
|
|
272
|
+
case "free":
|
|
273
|
+
return "Free";
|
|
274
|
+
case "exact":
|
|
275
|
+
return formatCurrencyAmount(display.amount, display.currency, options);
|
|
276
|
+
case "from":
|
|
277
|
+
return `From ${formatCurrencyAmount(display.amount, display.currency, options)}`;
|
|
278
|
+
case "range":
|
|
279
|
+
return `${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)}`;
|
|
280
|
+
case "mixed":
|
|
281
|
+
return display.paidToAmount > display.paidFromAmount ? `Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)} - ${formatCurrencyAmount(display.paidToAmount, display.currency, options)}` : `Free / ${formatCurrencyAmount(display.paidFromAmount, display.currency, options)}`;
|
|
282
|
+
case "unavailable":
|
|
283
|
+
return "Pricing unavailable";
|
|
284
|
+
case "course":
|
|
285
|
+
return formatCoursePriceDisplayLabel(display.display, options);
|
|
286
|
+
default:
|
|
287
|
+
return assertNever(display);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
function formatEventPricing(pricing, options = {}) {
|
|
291
|
+
return formatBookingPriceDisplay(publicEventPricingDisplay(pricing), options);
|
|
292
|
+
}
|
|
214
293
|
|
|
215
294
|
// ../core/src/booking-flexible-balance.ts
|
|
216
295
|
function clampFlexibleBalanceConfiguredAmount(amountCents, totalAmountCents) {
|
|
@@ -232,10 +311,10 @@ function resolveFlexibleBalanceDueAt(input) {
|
|
|
232
311
|
case "fixed_calendar_date":
|
|
233
312
|
return input.dueDateRule.dueAt;
|
|
234
313
|
default:
|
|
235
|
-
return
|
|
314
|
+
return assertNever2(input.dueDateRule);
|
|
236
315
|
}
|
|
237
316
|
}
|
|
238
|
-
function
|
|
317
|
+
function assertNever2(value) {
|
|
239
318
|
throw new Error(`Unexpected value: ${String(value)}`);
|
|
240
319
|
}
|
|
241
320
|
|
|
@@ -248,7 +327,7 @@ function isDepositBearingBookingInstalmentPlan(plan) {
|
|
|
248
327
|
case "equal_scheduled_instalments":
|
|
249
328
|
return false;
|
|
250
329
|
default:
|
|
251
|
-
return
|
|
330
|
+
return assertNever3(plan);
|
|
252
331
|
}
|
|
253
332
|
}
|
|
254
333
|
function getBookingInstalmentDepositRefundability(plan) {
|
|
@@ -280,7 +359,7 @@ function addIntervalPreservingMonthAnchor(isoString, intervalCount, intervalUnit
|
|
|
280
359
|
case "month":
|
|
281
360
|
return addMonthsPreservingAnchorDay(date, intervalCount).toISOString();
|
|
282
361
|
default:
|
|
283
|
-
return
|
|
362
|
+
return assertNever3(intervalUnit);
|
|
284
363
|
}
|
|
285
364
|
}
|
|
286
365
|
function getBookingInstalmentPlanIntervalCount(plan) {
|
|
@@ -291,7 +370,7 @@ function getBookingInstalmentPlanIntervalCount(plan) {
|
|
|
291
370
|
case "equal_scheduled_instalments":
|
|
292
371
|
return plan.intervalCount;
|
|
293
372
|
default:
|
|
294
|
-
return
|
|
373
|
+
return assertNever3(plan);
|
|
295
374
|
}
|
|
296
375
|
}
|
|
297
376
|
function omitZeroAmountFutureRows(rows) {
|
|
@@ -326,7 +405,7 @@ function addMonthsPreservingAnchorDay(date, intervalCount) {
|
|
|
326
405
|
nextMonth.setUTCDate(Math.min(anchorDay, lastDayOfTargetMonth));
|
|
327
406
|
return nextMonth;
|
|
328
407
|
}
|
|
329
|
-
function
|
|
408
|
+
function assertNever3(value) {
|
|
330
409
|
throw new Error(`Unexpected value: ${String(value)}`);
|
|
331
410
|
}
|
|
332
411
|
|
|
@@ -623,11 +702,6 @@ function toLocationCoordinates(value) {
|
|
|
623
702
|
};
|
|
624
703
|
}
|
|
625
704
|
|
|
626
|
-
// ../core/src/assert-never.ts
|
|
627
|
-
function assertNever3(value, message2 = "Unexpected variant") {
|
|
628
|
-
throw new Error(`${message2}: ${String(value)}`);
|
|
629
|
-
}
|
|
630
|
-
|
|
631
705
|
// ../core/src/planner.ts
|
|
632
706
|
var systemPlanningClock = {
|
|
633
707
|
now: () => Date.now()
|
|
@@ -53538,15 +53612,53 @@ var newsletterFormFragment = defineFragment({
|
|
|
53538
53612
|
title: "Newsletter Form",
|
|
53539
53613
|
description: "Newsletter subscription form with preset field configurations.",
|
|
53540
53614
|
fields: [
|
|
53615
|
+
{
|
|
53616
|
+
id: "destinationProvider",
|
|
53617
|
+
type: "select",
|
|
53618
|
+
label: "Send signups to",
|
|
53619
|
+
description: "Choose where new subscribers from this form should go.",
|
|
53620
|
+
defaultValue: "riverbank",
|
|
53621
|
+
required: true,
|
|
53622
|
+
ui: { intent: "behavior" },
|
|
53623
|
+
options: [
|
|
53624
|
+
{ value: "riverbank", label: "Riverbank newsletter" }
|
|
53625
|
+
]
|
|
53626
|
+
},
|
|
53541
53627
|
{
|
|
53542
53628
|
id: "listId",
|
|
53543
53629
|
type: "reference",
|
|
53544
53630
|
label: "Newsletter list",
|
|
53545
53631
|
description: "Select the list new subscribers should be added to.",
|
|
53546
|
-
required:
|
|
53632
|
+
required: false,
|
|
53547
53633
|
referenceKind: "newsletterList",
|
|
53548
53634
|
allowManualEntry: false,
|
|
53549
|
-
ui: {
|
|
53635
|
+
ui: {
|
|
53636
|
+
intent: "behavior",
|
|
53637
|
+
visibleWhen: { field: "destinationProvider", equals: "riverbank" }
|
|
53638
|
+
}
|
|
53639
|
+
},
|
|
53640
|
+
{
|
|
53641
|
+
id: "mailchimpAudienceId",
|
|
53642
|
+
type: "reference",
|
|
53643
|
+
label: "Mailchimp audience",
|
|
53644
|
+
description: "Choose the Mailchimp audience for new subscribers.",
|
|
53645
|
+
required: false,
|
|
53646
|
+
referenceKind: "mailchimpAudience",
|
|
53647
|
+
allowManualEntry: false,
|
|
53648
|
+
ui: {
|
|
53649
|
+
intent: "behavior",
|
|
53650
|
+
visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
|
|
53651
|
+
}
|
|
53652
|
+
},
|
|
53653
|
+
{
|
|
53654
|
+
id: "mailchimpTags",
|
|
53655
|
+
type: "text",
|
|
53656
|
+
label: "Mailchimp tags",
|
|
53657
|
+
description: "Optional tags to apply in Mailchimp, separated by commas or semicolons.",
|
|
53658
|
+
ui: {
|
|
53659
|
+
intent: "behavior",
|
|
53660
|
+
visibleWhen: { field: "destinationProvider", equals: "mailchimp" }
|
|
53661
|
+
}
|
|
53550
53662
|
},
|
|
53551
53663
|
{
|
|
53552
53664
|
id: "preset",
|
|
@@ -53593,13 +53705,18 @@ var newsletterFormFragment = defineFragment({
|
|
|
53593
53705
|
id: "tags",
|
|
53594
53706
|
type: "text",
|
|
53595
53707
|
label: "Tags (optional)",
|
|
53596
|
-
description: "Optional tags to apply on subscribe (comma or semicolon separated)."
|
|
53708
|
+
description: "Optional tags to apply on subscribe (comma or semicolon separated).",
|
|
53709
|
+
ui: {
|
|
53710
|
+
intent: "behavior",
|
|
53711
|
+
visibleWhen: { field: "destinationProvider", equals: "riverbank" }
|
|
53712
|
+
}
|
|
53597
53713
|
}
|
|
53598
53714
|
],
|
|
53599
53715
|
layout: [
|
|
53600
53716
|
el(
|
|
53601
53717
|
"newsletter-form",
|
|
53602
53718
|
withApiBindings({
|
|
53719
|
+
destinationProvider: { $bind: { from: "destinationProvider" } },
|
|
53603
53720
|
listId: { $bind: { from: "listId" } },
|
|
53604
53721
|
preset: { $bind: { from: "preset" } },
|
|
53605
53722
|
includePhone: { $bind: { from: "includePhone" } },
|
|
@@ -59560,6 +59677,107 @@ var mediaSchema2 = z40.discriminatedUnion("type", [
|
|
|
59560
59677
|
spreadsheetMediaSchema,
|
|
59561
59678
|
archiveMediaSchema
|
|
59562
59679
|
]);
|
|
59680
|
+
var TipTapMarkSchema = z.object({
|
|
59681
|
+
type: z.string(),
|
|
59682
|
+
attrs: z.record(z.string(), z.unknown()).optional()
|
|
59683
|
+
});
|
|
59684
|
+
var TipTapNodeSchema = z.lazy(
|
|
59685
|
+
() => z.object({
|
|
59686
|
+
type: z.string(),
|
|
59687
|
+
content: z.array(TipTapNodeSchema).optional(),
|
|
59688
|
+
text: z.string().optional(),
|
|
59689
|
+
attrs: z.record(z.string(), z.unknown()).optional(),
|
|
59690
|
+
marks: z.array(TipTapMarkSchema).optional()
|
|
59691
|
+
})
|
|
59692
|
+
);
|
|
59693
|
+
var RichTextValueSchema = z.union([
|
|
59694
|
+
// Canonical: TipTap document directly
|
|
59695
|
+
TipTapNodeSchema,
|
|
59696
|
+
// Legacy (read-tolerance only): wrapped in { doc: {...} }
|
|
59697
|
+
z.object({
|
|
59698
|
+
doc: TipTapNodeSchema
|
|
59699
|
+
})
|
|
59700
|
+
]);
|
|
59701
|
+
var RichTextDocSchema = z.object({
|
|
59702
|
+
type: z.literal("doc"),
|
|
59703
|
+
content: z.array(TipTapNodeSchema)
|
|
59704
|
+
});
|
|
59705
|
+
function unwrapRichTextRoot(value) {
|
|
59706
|
+
if (!isRecord4(value)) return value;
|
|
59707
|
+
if (!("doc" in value)) return value;
|
|
59708
|
+
const inner = value.doc;
|
|
59709
|
+
if (isRecord4(inner) && inner.type === "doc") return inner;
|
|
59710
|
+
return value;
|
|
59711
|
+
}
|
|
59712
|
+
function createHardBreakNode() {
|
|
59713
|
+
return { type: "hardBreak" };
|
|
59714
|
+
}
|
|
59715
|
+
function parseRichTextInlineMarkdown(text2) {
|
|
59716
|
+
const out = [];
|
|
59717
|
+
const pushText = (value, marks) => {
|
|
59718
|
+
if (!value) return;
|
|
59719
|
+
out.push(
|
|
59720
|
+
marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
|
|
59721
|
+
);
|
|
59722
|
+
};
|
|
59723
|
+
let rest = text2;
|
|
59724
|
+
while (rest.length > 0) {
|
|
59725
|
+
const start = rest.indexOf("**");
|
|
59726
|
+
if (start === -1) {
|
|
59727
|
+
pushText(rest);
|
|
59728
|
+
break;
|
|
59729
|
+
}
|
|
59730
|
+
const end = rest.indexOf("**", start + 2);
|
|
59731
|
+
if (end === -1) {
|
|
59732
|
+
pushText(rest);
|
|
59733
|
+
break;
|
|
59734
|
+
}
|
|
59735
|
+
pushText(rest.slice(0, start));
|
|
59736
|
+
pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
|
|
59737
|
+
rest = rest.slice(end + 2);
|
|
59738
|
+
}
|
|
59739
|
+
return out;
|
|
59740
|
+
}
|
|
59741
|
+
function parseRichTextParagraphInlineMarkdown(text2) {
|
|
59742
|
+
return text2.split("\n").flatMap((line, index2) => {
|
|
59743
|
+
const lineNodes = parseRichTextInlineMarkdown(line.trim());
|
|
59744
|
+
return index2 === 0 ? lineNodes : [createHardBreakNode(), ...lineNodes];
|
|
59745
|
+
});
|
|
59746
|
+
}
|
|
59747
|
+
function createRichTextDocFromMarkdown(markdown) {
|
|
59748
|
+
const normalized = markdown.replace(/\r\n/g, "\n").trim();
|
|
59749
|
+
if (!normalized) return { type: "doc", content: [] };
|
|
59750
|
+
const paragraphs = normalized.split(/\n{2,}/).map((paragraph) => paragraph.trim()).filter(Boolean);
|
|
59751
|
+
return {
|
|
59752
|
+
type: "doc",
|
|
59753
|
+
content: paragraphs.map((paragraph) => {
|
|
59754
|
+
const inline4 = parseRichTextParagraphInlineMarkdown(paragraph);
|
|
59755
|
+
return inline4.length > 0 ? { type: "paragraph", content: inline4 } : { type: "paragraph" };
|
|
59756
|
+
})
|
|
59757
|
+
};
|
|
59758
|
+
}
|
|
59759
|
+
function buildRichTextSchema(options) {
|
|
59760
|
+
let schema = RichTextValueSchema;
|
|
59761
|
+
if (options?.required) {
|
|
59762
|
+
const label = options.label ?? "This field";
|
|
59763
|
+
schema = schema.refine(
|
|
59764
|
+
(val) => {
|
|
59765
|
+
const doc3 = isRecord4(val) && "doc" in val ? val.doc : val;
|
|
59766
|
+
const content = isRecord4(doc3) ? doc3.content : void 0;
|
|
59767
|
+
if (!Array.isArray(content) || content.length === 0) return false;
|
|
59768
|
+
const first2 = content[0];
|
|
59769
|
+
if (content.length === 1 && isRecord4(first2) && first2.type === "paragraph" && (!("content" in first2) || first2.content == null)) {
|
|
59770
|
+
return false;
|
|
59771
|
+
}
|
|
59772
|
+
return true;
|
|
59773
|
+
},
|
|
59774
|
+
{
|
|
59775
|
+
message: `${label} is required`
|
|
59776
|
+
}
|
|
59777
|
+
);
|
|
59778
|
+
}
|
|
59779
|
+
return schema;
|
|
59780
|
+
}
|
|
59563
59781
|
var bookingDepositRefundPolicySchema = z.enum([
|
|
59564
59782
|
"refundable",
|
|
59565
59783
|
"non_refundable"
|
|
@@ -59715,7 +59933,13 @@ z.discriminatedUnion("kind", [
|
|
|
59715
59933
|
z.object({ kind: z.literal("free"), currency: z.string() }),
|
|
59716
59934
|
z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
|
|
59717
59935
|
z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
|
|
59718
|
-
z.object({ kind: z.literal("
|
|
59936
|
+
z.object({ kind: z.literal("range"), minAmount: z.number(), maxAmount: z.number(), currency: z.string() }),
|
|
59937
|
+
z.object({
|
|
59938
|
+
kind: z.literal("mixed"),
|
|
59939
|
+
paidFromAmount: z.number(),
|
|
59940
|
+
paidToAmount: z.number(),
|
|
59941
|
+
currency: z.string()
|
|
59942
|
+
}),
|
|
59719
59943
|
z.object({ kind: z.literal("unavailable"), currency: z.string() }),
|
|
59720
59944
|
z.object({ kind: z.literal("course"), display: publicCoursePriceDisplaySchema })
|
|
59721
59945
|
]);
|
|
@@ -59723,7 +59947,13 @@ var publicEventTicketTypePriceDisplaySchema = z.union([
|
|
|
59723
59947
|
z.object({ kind: z.literal("free"), currency: z.string() }),
|
|
59724
59948
|
z.object({ kind: z.literal("exact"), amount: z.number(), currency: z.string() }),
|
|
59725
59949
|
z.object({ kind: z.literal("from"), amount: z.number(), currency: z.string() }),
|
|
59726
|
-
z.object({ kind: z.literal("
|
|
59950
|
+
z.object({ kind: z.literal("range"), minAmount: z.number(), maxAmount: z.number(), currency: z.string() }),
|
|
59951
|
+
z.object({
|
|
59952
|
+
kind: z.literal("mixed"),
|
|
59953
|
+
paidFromAmount: z.number(),
|
|
59954
|
+
paidToAmount: z.number(),
|
|
59955
|
+
currency: z.string()
|
|
59956
|
+
}),
|
|
59727
59957
|
z.object({ kind: z.literal("unavailable"), currency: z.string() })
|
|
59728
59958
|
]);
|
|
59729
59959
|
var publicEventAttendanceModeSchema = z.enum(["in_person", "online"]);
|
|
@@ -59808,6 +60038,9 @@ var publicEventSchema = z.object({
|
|
|
59808
60038
|
seriesId: z.string(),
|
|
59809
60039
|
title: z.string(),
|
|
59810
60040
|
description: z.string().nullable(),
|
|
60041
|
+
content: z.object({
|
|
60042
|
+
body: RichTextDocSchema.nullable().optional()
|
|
60043
|
+
}).optional(),
|
|
59811
60044
|
presentation: z.object({
|
|
59812
60045
|
cardTitleOverride: z.string().nullable().optional(),
|
|
59813
60046
|
summary: z.string().nullable().optional(),
|
|
@@ -60153,10 +60386,21 @@ function readLegacyPriceDisplay(value, currency) {
|
|
|
60153
60386
|
amount: readAmount(value.amount) ?? 0,
|
|
60154
60387
|
currency: displayCurrency
|
|
60155
60388
|
} : { kind: "unavailable", currency };
|
|
60389
|
+
case "range": {
|
|
60390
|
+
const minAmount = readAmount(value.minAmount);
|
|
60391
|
+
const maxAmount = readAmount(value.maxAmount);
|
|
60392
|
+
return minAmount !== null && maxAmount !== null ? {
|
|
60393
|
+
kind: "range",
|
|
60394
|
+
minAmount,
|
|
60395
|
+
maxAmount,
|
|
60396
|
+
currency: displayCurrency
|
|
60397
|
+
} : { kind: "unavailable", currency };
|
|
60398
|
+
}
|
|
60156
60399
|
case "mixed":
|
|
60157
60400
|
return readAmount(value.paidFromAmount) !== null ? {
|
|
60158
60401
|
kind: "mixed",
|
|
60159
60402
|
paidFromAmount: readAmount(value.paidFromAmount) ?? 0,
|
|
60403
|
+
paidToAmount: readAmount(value.paidToAmount) ?? readAmount(value.paidFromAmount) ?? 0,
|
|
60160
60404
|
currency: displayCurrency
|
|
60161
60405
|
} : { kind: "unavailable", currency };
|
|
60162
60406
|
case "unavailable":
|
|
@@ -60336,6 +60580,7 @@ var eventRegistrationSourceSchema = z.object({
|
|
|
60336
60580
|
successMessage: z.string().optional(),
|
|
60337
60581
|
waitlistMessage: z.string().optional(),
|
|
60338
60582
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
60583
|
+
overlayEnabled: z.boolean().optional(),
|
|
60339
60584
|
spamProtectionEnabled: z.boolean().optional(),
|
|
60340
60585
|
stage: previewStageSchema.optional(),
|
|
60341
60586
|
supportEmail: z.string().optional()
|
|
@@ -60359,6 +60604,7 @@ var eventRegistrationHydrationSchema = z.object({
|
|
|
60359
60604
|
successMessage: z.string().optional(),
|
|
60360
60605
|
waitlistMessage: z.string().optional(),
|
|
60361
60606
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
60607
|
+
overlayEnabled: z.boolean().optional(),
|
|
60362
60608
|
spamProtectionEnabled: z.boolean().optional(),
|
|
60363
60609
|
supportEmail: z.string().optional()
|
|
60364
60610
|
});
|
|
@@ -60467,6 +60713,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
60467
60713
|
successMessage: source.successMessage,
|
|
60468
60714
|
waitlistMessage: source.waitlistMessage,
|
|
60469
60715
|
buttonVariant: source.buttonVariant,
|
|
60716
|
+
overlayEnabled: source.overlayEnabled,
|
|
60470
60717
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
60471
60718
|
supportEmail: source.supportEmail
|
|
60472
60719
|
}
|
|
@@ -60643,6 +60890,12 @@ var eventRegistrationManifest = createBlockManifest({
|
|
|
60643
60890
|
buttonVariant: {
|
|
60644
60891
|
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
60645
60892
|
},
|
|
60893
|
+
overlayEnabled: {
|
|
60894
|
+
$bind: {
|
|
60895
|
+
from: "$root.eventRegistrationOverlayEnabled",
|
|
60896
|
+
fallback: false
|
|
60897
|
+
}
|
|
60898
|
+
},
|
|
60646
60899
|
// Event data from loader
|
|
60647
60900
|
events: { $bind: { from: "data.events" } },
|
|
60648
60901
|
// Stage for preview mode (allows registering for draft events)
|
|
@@ -60790,29 +61043,7 @@ function resolveCoursePricingState(course, selectedPricingOptionId, nowInput = {
|
|
|
60790
61043
|
}
|
|
60791
61044
|
}
|
|
60792
61045
|
function formatCoursePriceDisplay(display, locale) {
|
|
60793
|
-
|
|
60794
|
-
case "free":
|
|
60795
|
-
return "Free";
|
|
60796
|
-
case "unavailable":
|
|
60797
|
-
return "Pricing unavailable";
|
|
60798
|
-
case "exact":
|
|
60799
|
-
return formatCourseCurrencyAmount(display.amount, display.currency, { locale });
|
|
60800
|
-
case "from":
|
|
60801
|
-
return `From ${formatCourseCurrencyAmount(display.amount, display.currency, { locale })}`;
|
|
60802
|
-
}
|
|
60803
|
-
}
|
|
60804
|
-
function formatCourseCurrencyAmount(amount, currency, options) {
|
|
60805
|
-
const {
|
|
60806
|
-
locale = "en-US",
|
|
60807
|
-
minimumFractionDigits,
|
|
60808
|
-
maximumFractionDigits
|
|
60809
|
-
} = options ?? {};
|
|
60810
|
-
return new Intl.NumberFormat(locale, {
|
|
60811
|
-
style: "currency",
|
|
60812
|
-
currency: currency.toUpperCase(),
|
|
60813
|
-
...minimumFractionDigits === void 0 ? {} : { minimumFractionDigits },
|
|
60814
|
-
...maximumFractionDigits === void 0 ? {} : { maximumFractionDigits }
|
|
60815
|
-
}).format(amount / 100);
|
|
61046
|
+
return formatBookingPriceDisplay(display, { decimals: "exact", locale });
|
|
60816
61047
|
}
|
|
60817
61048
|
function formatCoursePriceAmount(amount, currency, locale) {
|
|
60818
61049
|
return formatCoursePriceDisplay(
|
|
@@ -61848,15 +62079,15 @@ function getLocalMinuteOfDay(isoTimestamp, timeZone) {
|
|
|
61848
62079
|
const date = new Date(isoTimestamp);
|
|
61849
62080
|
if (Number.isNaN(date.getTime())) return NaN;
|
|
61850
62081
|
if (!isValidTimeZone2(timeZone)) return NaN;
|
|
61851
|
-
const parts = new Intl.DateTimeFormat("en-
|
|
62082
|
+
const parts = new Intl.DateTimeFormat("en-GB", {
|
|
61852
62083
|
timeZone,
|
|
61853
62084
|
hour: "2-digit",
|
|
61854
62085
|
minute: "2-digit",
|
|
61855
|
-
hour12: false,
|
|
61856
62086
|
hourCycle: "h23"
|
|
61857
62087
|
}).formatToParts(date);
|
|
61858
|
-
const
|
|
62088
|
+
const hourPart = Number(parts.find((part) => part.type === "hour")?.value);
|
|
61859
62089
|
const minute = Number(parts.find((part) => part.type === "minute")?.value);
|
|
62090
|
+
const hour = hourPart === 24 ? 0 : hourPart;
|
|
61860
62091
|
if (Number.isNaN(hour) || Number.isNaN(minute)) return NaN;
|
|
61861
62092
|
return hour * MINUTES_PER_HOUR + minute;
|
|
61862
62093
|
}
|
|
@@ -62288,45 +62519,11 @@ function groupEventsByDate(events2) {
|
|
|
62288
62519
|
}
|
|
62289
62520
|
return map2;
|
|
62290
62521
|
}
|
|
62291
|
-
function formatCompactCurrencyAmount(amount, currency) {
|
|
62292
|
-
return formatCourseCurrencyAmount(amount, currency, {
|
|
62293
|
-
minimumFractionDigits: 0,
|
|
62294
|
-
maximumFractionDigits: 2
|
|
62295
|
-
});
|
|
62296
|
-
}
|
|
62297
|
-
function formatCourseEventPriceDisplay(display) {
|
|
62298
|
-
if (display.kind !== "course") {
|
|
62299
|
-
return "Course";
|
|
62300
|
-
}
|
|
62301
|
-
if (display.display.kind === "exact" || display.display.kind === "from") {
|
|
62302
|
-
const amountLabel = formatCompactCurrencyAmount(
|
|
62303
|
-
display.display.amount,
|
|
62304
|
-
display.display.currency
|
|
62305
|
-
);
|
|
62306
|
-
return display.display.kind === "from" ? `Course (From ${amountLabel})` : `Course (${amountLabel})`;
|
|
62307
|
-
}
|
|
62308
|
-
return "Course";
|
|
62309
|
-
}
|
|
62310
|
-
function formatPublicEventPriceDisplay(display) {
|
|
62311
|
-
switch (display.kind) {
|
|
62312
|
-
case "free":
|
|
62313
|
-
return "Free";
|
|
62314
|
-
case "exact":
|
|
62315
|
-
return formatCompactCurrencyAmount(display.amount, display.currency);
|
|
62316
|
-
case "from":
|
|
62317
|
-
return `From ${formatCompactCurrencyAmount(display.amount, display.currency)}`;
|
|
62318
|
-
case "mixed":
|
|
62319
|
-
return `Free / From ${formatCompactCurrencyAmount(display.paidFromAmount, display.currency)}`;
|
|
62320
|
-
case "unavailable":
|
|
62321
|
-
return "Pricing unavailable";
|
|
62322
|
-
case "course":
|
|
62323
|
-
return formatCourseEventPriceDisplay(display);
|
|
62324
|
-
}
|
|
62325
|
-
}
|
|
62326
62522
|
function formatEventPrice(event) {
|
|
62327
|
-
return
|
|
62328
|
-
|
|
62329
|
-
|
|
62523
|
+
return formatEventPricing(resolveRuntimeEventPricing(event), { decimals: "auto" });
|
|
62524
|
+
}
|
|
62525
|
+
function formatEventPriceDisplay(pricing) {
|
|
62526
|
+
return formatEventPricing(pricing, { decimals: "auto" });
|
|
62330
62527
|
}
|
|
62331
62528
|
function resolveEventCta(event, buttonText) {
|
|
62332
62529
|
const { isFull: isSoldOut } = getEventAvailability(event);
|
|
@@ -65522,12 +65719,12 @@ function preferredPathsForSource(source) {
|
|
|
65522
65719
|
case "performance":
|
|
65523
65720
|
return ["/performances", "/performance"];
|
|
65524
65721
|
default:
|
|
65525
|
-
return
|
|
65722
|
+
return assertNever(source.preset, "Unhandled offerings preview event preset");
|
|
65526
65723
|
}
|
|
65527
65724
|
case "course":
|
|
65528
65725
|
return ["/courses", "/course"];
|
|
65529
65726
|
default:
|
|
65530
|
-
return
|
|
65727
|
+
return assertNever(source, "Unhandled offerings preview source");
|
|
65531
65728
|
}
|
|
65532
65729
|
}
|
|
65533
65730
|
function normalizeRoutePath(value) {
|
|
@@ -67653,10 +67850,7 @@ function resolveSelectedProduct(products, contentEntry, productSlug) {
|
|
|
67653
67850
|
|
|
67654
67851
|
// ../blocks/src/system/runtime/nodes/commerce/shared/display.ts
|
|
67655
67852
|
function formatCommercePrice(cents, currency) {
|
|
67656
|
-
return
|
|
67657
|
-
style: "currency",
|
|
67658
|
-
currency: currency.toUpperCase()
|
|
67659
|
-
}).format(cents / 100);
|
|
67853
|
+
return formatCurrencyAmount(cents, currency);
|
|
67660
67854
|
}
|
|
67661
67855
|
function getPassesHeading(passes, explicitHeading) {
|
|
67662
67856
|
if (explicitHeading) return explicitHeading;
|
|
@@ -69130,6 +69324,60 @@ var giftingBlockDefinition = {
|
|
|
69130
69324
|
}
|
|
69131
69325
|
};
|
|
69132
69326
|
|
|
69327
|
+
// ../blocks/src/system/blocks/newsletter-signup-destination.ts
|
|
69328
|
+
function parseNewsletterSignupBlockId(value) {
|
|
69329
|
+
const trimmed = parseTrimmedString(value);
|
|
69330
|
+
return trimmed && BLOCK_ID_PATTERN.test(trimmed) ? trimmed : null;
|
|
69331
|
+
}
|
|
69332
|
+
function parseSignedNewsletterDestinationRef(value) {
|
|
69333
|
+
const trimmed = parseTrimmedString(value);
|
|
69334
|
+
return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
|
|
69335
|
+
}
|
|
69336
|
+
function parseNewsletterSignupDestinationProvider(value) {
|
|
69337
|
+
return value === "riverbank" || value === "mailchimp" ? value : null;
|
|
69338
|
+
}
|
|
69339
|
+
function buildNewsletterSignupBlockRef(blockId) {
|
|
69340
|
+
const parsed = parseNewsletterSignupBlockId(blockId);
|
|
69341
|
+
return parsed ? { tag: "block_ref", blockId: parsed } : null;
|
|
69342
|
+
}
|
|
69343
|
+
function normalizeNewsletterSignupEditorValuesForDestination(values) {
|
|
69344
|
+
const destinationProvider = parseNewsletterSignupDestinationProvider(values.destinationProvider) ?? "riverbank";
|
|
69345
|
+
if (destinationProvider === "mailchimp") {
|
|
69346
|
+
return {
|
|
69347
|
+
destinationProvider,
|
|
69348
|
+
mailchimpAudienceId: values.mailchimpAudienceId,
|
|
69349
|
+
mailchimpTags: values.mailchimpTags
|
|
69350
|
+
};
|
|
69351
|
+
}
|
|
69352
|
+
return {
|
|
69353
|
+
destinationProvider,
|
|
69354
|
+
listId: values.listId,
|
|
69355
|
+
tags: values.tags
|
|
69356
|
+
};
|
|
69357
|
+
}
|
|
69358
|
+
function deriveNewsletterSignupRuntimeSource(values) {
|
|
69359
|
+
const normalized = normalizeNewsletterSignupEditorValuesForDestination(values);
|
|
69360
|
+
if (normalized.destinationProvider === "mailchimp") {
|
|
69361
|
+
return {
|
|
69362
|
+
destinationProvider: "mailchimp",
|
|
69363
|
+
listId: null,
|
|
69364
|
+
tags: null
|
|
69365
|
+
};
|
|
69366
|
+
}
|
|
69367
|
+
return {
|
|
69368
|
+
destinationProvider: "riverbank",
|
|
69369
|
+
listId: parseTrimmedString(normalized.listId),
|
|
69370
|
+
tags: parseTrimmedString(normalized.tags)
|
|
69371
|
+
};
|
|
69372
|
+
}
|
|
69373
|
+
var BLOCK_ID_PATTERN = /^[A-Za-z0-9._:-]{1,200}$/;
|
|
69374
|
+
var SIGNED_DESTINATION_REF_PATTERN = /^[A-Za-z0-9._~-]{16,1000}$/;
|
|
69375
|
+
function parseTrimmedString(value) {
|
|
69376
|
+
if (typeof value !== "string") return null;
|
|
69377
|
+
const trimmed = value.trim();
|
|
69378
|
+
return trimmed.length > 0 ? trimmed : null;
|
|
69379
|
+
}
|
|
69380
|
+
|
|
69133
69381
|
// ../blocks/src/system/runtime/nodes/newsletter-form.types.ts
|
|
69134
69382
|
function getPresetFields(preset2, options) {
|
|
69135
69383
|
const includePhone = Boolean(options?.includePhone);
|
|
@@ -69182,6 +69430,7 @@ function withOptionalPhone(fields3, includePhone) {
|
|
|
69182
69430
|
|
|
69183
69431
|
// ../blocks/src/system/runtime/nodes/newsletter-form.interactive.ts
|
|
69184
69432
|
var newsletterPresetSchema = z.enum(["emailOnly", "emailName", "emailFirstLast", "emailNameCompany"]);
|
|
69433
|
+
var newsletterDestinationProviderSchema = z.enum(["riverbank", "mailchimp"]);
|
|
69185
69434
|
var newsletterFieldSchema = z.object({
|
|
69186
69435
|
id: z.string(),
|
|
69187
69436
|
type: z.enum(["email", "text"]),
|
|
@@ -69189,10 +69438,24 @@ var newsletterFieldSchema = z.object({
|
|
|
69189
69438
|
required: z.boolean(),
|
|
69190
69439
|
placeholder: z.string().optional()
|
|
69191
69440
|
});
|
|
69441
|
+
var newsletterSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
|
|
69442
|
+
var signedNewsletterDestinationRefSchema = z.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
|
|
69443
|
+
var newsletterPublicDestinationRefSchema = z.discriminatedUnion("tag", [
|
|
69444
|
+
z.object({
|
|
69445
|
+
tag: z.literal("block_ref"),
|
|
69446
|
+
blockId: newsletterSignupBlockIdSchema
|
|
69447
|
+
}),
|
|
69448
|
+
z.object({
|
|
69449
|
+
tag: z.literal("signed_destination_ref"),
|
|
69450
|
+
token: signedNewsletterDestinationRefSchema
|
|
69451
|
+
})
|
|
69452
|
+
]);
|
|
69192
69453
|
var newsletterSourceSchema = z.object({
|
|
69454
|
+
blockId: z.string().nullable().optional(),
|
|
69193
69455
|
siteId: z.string().optional(),
|
|
69194
69456
|
apiBaseUrl: z.string().optional(),
|
|
69195
69457
|
listId: z.string().nullable().optional(),
|
|
69458
|
+
destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
|
|
69196
69459
|
preset: newsletterPresetSchema.optional(),
|
|
69197
69460
|
includePhone: z.boolean().optional(),
|
|
69198
69461
|
buttonLabel: z.string().nullable().optional(),
|
|
@@ -69211,6 +69474,7 @@ var newsletterDisplaySchema = z.object({
|
|
|
69211
69474
|
fields: z.array(newsletterFieldSchema)
|
|
69212
69475
|
});
|
|
69213
69476
|
var newsletterHydrationSchema = z.object({
|
|
69477
|
+
destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
|
|
69214
69478
|
listId: z.string().nullable().optional(),
|
|
69215
69479
|
preset: newsletterPresetSchema,
|
|
69216
69480
|
includePhone: z.boolean(),
|
|
@@ -69243,16 +69507,20 @@ var newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
69243
69507
|
source: createZodCodec(newsletterSourceSchema),
|
|
69244
69508
|
render: createZodCodec(newsletterRenderSchema)
|
|
69245
69509
|
},
|
|
69246
|
-
buildRender: (source) =>
|
|
69247
|
-
|
|
69248
|
-
|
|
69249
|
-
|
|
69250
|
-
|
|
69251
|
-
|
|
69252
|
-
|
|
69253
|
-
|
|
69254
|
-
|
|
69255
|
-
|
|
69510
|
+
buildRender: (source) => {
|
|
69511
|
+
const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
|
|
69512
|
+
return {
|
|
69513
|
+
display: buildNewsletterDisplay(source),
|
|
69514
|
+
hydration: {
|
|
69515
|
+
destinationRef: buildNewsletterSignupBlockRef(source.blockId),
|
|
69516
|
+
listId: runtimeSource.listId,
|
|
69517
|
+
preset: source.preset ?? "emailOnly",
|
|
69518
|
+
includePhone: source.includePhone ?? false,
|
|
69519
|
+
tags: runtimeSource.tags,
|
|
69520
|
+
spamProtectionEnabled: source.spamProtectionEnabled
|
|
69521
|
+
}
|
|
69522
|
+
};
|
|
69523
|
+
}
|
|
69256
69524
|
});
|
|
69257
69525
|
function buildNewsletterFormInteractiveIslandProps(props2) {
|
|
69258
69526
|
return buildInteractiveIslandProps({
|
|
@@ -69265,6 +69533,20 @@ function buildNewsletterFormInteractiveIslandProps(props2) {
|
|
|
69265
69533
|
source: props2
|
|
69266
69534
|
});
|
|
69267
69535
|
}
|
|
69536
|
+
function parseRequiredNewsletterSignupBlockId(value) {
|
|
69537
|
+
const parsed = parseNewsletterSignupBlockId(value);
|
|
69538
|
+
if (!parsed) {
|
|
69539
|
+
throw new Error("Newsletter signup block destination ref requires blockId");
|
|
69540
|
+
}
|
|
69541
|
+
return parsed;
|
|
69542
|
+
}
|
|
69543
|
+
function parseRequiredSignedNewsletterDestinationRef(value) {
|
|
69544
|
+
const parsed = parseSignedNewsletterDestinationRef(value);
|
|
69545
|
+
if (!parsed) {
|
|
69546
|
+
throw new Error("Newsletter signup signed destination ref requires token");
|
|
69547
|
+
}
|
|
69548
|
+
return parsed;
|
|
69549
|
+
}
|
|
69268
69550
|
|
|
69269
69551
|
// ../blocks/src/system/blocks/newsletter-signup.ts
|
|
69270
69552
|
var stackedComposition = composeFragments([
|
|
@@ -71463,7 +71745,7 @@ function resolveLinkedContentEditSupport(contentType) {
|
|
|
71463
71745
|
case "unsupported-domain-backed":
|
|
71464
71746
|
return { kind: "unsupported-domain-backed", reason: metadata.reason };
|
|
71465
71747
|
default:
|
|
71466
|
-
return
|
|
71748
|
+
return assertNever(metadata);
|
|
71467
71749
|
}
|
|
71468
71750
|
}
|
|
71469
71751
|
function contentTypeKeyToLabel(key) {
|
|
@@ -71876,6 +72158,8 @@ function renderDoc(node, key, imageResolveContext) {
|
|
|
71876
72158
|
return /* @__PURE__ */ jsx("blockquote", { children }, key);
|
|
71877
72159
|
case "horizontalRule":
|
|
71878
72160
|
return /* @__PURE__ */ jsx("hr", {}, key);
|
|
72161
|
+
case "hardBreak":
|
|
72162
|
+
return /* @__PURE__ */ jsx("br", {}, key);
|
|
71879
72163
|
case "image": {
|
|
71880
72164
|
const attrs = node.attrs ?? {};
|
|
71881
72165
|
const src = typeof attrs.src === "string" ? attrs.src.trim() : "";
|
|
@@ -71928,104 +72212,12 @@ function Text({
|
|
|
71928
72212
|
const dataAttributes = path ? { "data-builder-text": path } : void 0;
|
|
71929
72213
|
return /* @__PURE__ */ jsx(Comp, { className, ...dataAttributes, children });
|
|
71930
72214
|
}
|
|
71931
|
-
var TipTapMarkSchema = z.object({
|
|
71932
|
-
type: z.string(),
|
|
71933
|
-
attrs: z.record(z.string(), z.unknown()).optional()
|
|
71934
|
-
});
|
|
71935
|
-
var TipTapNodeSchema = z.lazy(
|
|
71936
|
-
() => z.object({
|
|
71937
|
-
type: z.string(),
|
|
71938
|
-
content: z.array(TipTapNodeSchema).optional(),
|
|
71939
|
-
text: z.string().optional(),
|
|
71940
|
-
attrs: z.record(z.string(), z.unknown()).optional(),
|
|
71941
|
-
marks: z.array(TipTapMarkSchema).optional()
|
|
71942
|
-
})
|
|
71943
|
-
);
|
|
71944
|
-
var RichTextValueSchema = z.union([
|
|
71945
|
-
// Canonical: TipTap document directly
|
|
71946
|
-
TipTapNodeSchema,
|
|
71947
|
-
// Legacy (read-tolerance only): wrapped in { doc: {...} }
|
|
71948
|
-
z.object({
|
|
71949
|
-
doc: TipTapNodeSchema
|
|
71950
|
-
})
|
|
71951
|
-
]);
|
|
71952
|
-
z.object({
|
|
71953
|
-
type: z.literal("doc"),
|
|
71954
|
-
content: z.array(TipTapNodeSchema)
|
|
71955
|
-
});
|
|
71956
|
-
function unwrapRichTextRoot(value) {
|
|
71957
|
-
if (!isRecord4(value)) return value;
|
|
71958
|
-
if (!("doc" in value)) return value;
|
|
71959
|
-
const inner = value.doc;
|
|
71960
|
-
if (isRecord4(inner) && inner.type === "doc") return inner;
|
|
71961
|
-
return value;
|
|
71962
|
-
}
|
|
71963
|
-
function buildRichTextSchema(options) {
|
|
71964
|
-
let schema = RichTextValueSchema;
|
|
71965
|
-
if (options?.required) {
|
|
71966
|
-
const label = options.label ?? "This field";
|
|
71967
|
-
schema = schema.refine(
|
|
71968
|
-
(val) => {
|
|
71969
|
-
const doc3 = isRecord4(val) && "doc" in val ? val.doc : val;
|
|
71970
|
-
const content = isRecord4(doc3) ? doc3.content : void 0;
|
|
71971
|
-
if (!Array.isArray(content) || content.length === 0) return false;
|
|
71972
|
-
const first2 = content[0];
|
|
71973
|
-
if (content.length === 1 && isRecord4(first2) && first2.type === "paragraph" && (!("content" in first2) || first2.content == null)) {
|
|
71974
|
-
return false;
|
|
71975
|
-
}
|
|
71976
|
-
return true;
|
|
71977
|
-
},
|
|
71978
|
-
{
|
|
71979
|
-
message: `${label} is required`
|
|
71980
|
-
}
|
|
71981
|
-
);
|
|
71982
|
-
}
|
|
71983
|
-
return schema;
|
|
71984
|
-
}
|
|
71985
72215
|
|
|
71986
72216
|
// ../blocks/src/system/runtime/nodes/richText-coerce.ts
|
|
71987
|
-
function parseInlineMarkdown(text2) {
|
|
71988
|
-
const out = [];
|
|
71989
|
-
const pushText = (value, marks) => {
|
|
71990
|
-
if (!value) return;
|
|
71991
|
-
out.push(
|
|
71992
|
-
marks && marks.length > 0 ? { type: "text", text: value, marks } : { type: "text", text: value }
|
|
71993
|
-
);
|
|
71994
|
-
};
|
|
71995
|
-
let rest = text2;
|
|
71996
|
-
while (rest.length > 0) {
|
|
71997
|
-
const start = rest.indexOf("**");
|
|
71998
|
-
if (start === -1) {
|
|
71999
|
-
pushText(rest);
|
|
72000
|
-
break;
|
|
72001
|
-
}
|
|
72002
|
-
const end = rest.indexOf("**", start + 2);
|
|
72003
|
-
if (end === -1) {
|
|
72004
|
-
pushText(rest);
|
|
72005
|
-
break;
|
|
72006
|
-
}
|
|
72007
|
-
pushText(rest.slice(0, start));
|
|
72008
|
-
pushText(rest.slice(start + 2, end), [{ type: "bold" }]);
|
|
72009
|
-
rest = rest.slice(end + 2);
|
|
72010
|
-
}
|
|
72011
|
-
return out;
|
|
72012
|
-
}
|
|
72013
|
-
function markdownToTipTapDoc(markdown) {
|
|
72014
|
-
const normalized = markdown.replace(/\r\n/g, "\n").trim();
|
|
72015
|
-
if (!normalized) return { type: "doc", content: [] };
|
|
72016
|
-
const paragraphs = normalized.split(/\n{2,}/).map((p2) => p2.trim()).filter(Boolean);
|
|
72017
|
-
return {
|
|
72018
|
-
type: "doc",
|
|
72019
|
-
content: paragraphs.map((p2) => {
|
|
72020
|
-
const inline4 = parseInlineMarkdown(p2);
|
|
72021
|
-
return inline4.length > 0 ? { type: "paragraph", content: inline4 } : { type: "paragraph" };
|
|
72022
|
-
})
|
|
72023
|
-
};
|
|
72024
|
-
}
|
|
72025
72217
|
function coerceRichTextDoc(value) {
|
|
72026
72218
|
const raw = unwrapRichTextRoot(value);
|
|
72027
72219
|
if (typeof raw === "string") {
|
|
72028
|
-
return
|
|
72220
|
+
return createRichTextDocFromMarkdown(raw);
|
|
72029
72221
|
}
|
|
72030
72222
|
if (isRecord4(raw) && typeof raw.type === "string") {
|
|
72031
72223
|
return raw;
|
|
@@ -74022,6 +74214,32 @@ function TeamMemberName({
|
|
|
74022
74214
|
}) {
|
|
74023
74215
|
return profilePath ? /* @__PURE__ */ jsx("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx("strong", { children: name }) }) : /* @__PURE__ */ jsx("strong", { children: name });
|
|
74024
74216
|
}
|
|
74217
|
+
function formatTicketTypePrice(ticketType, currency) {
|
|
74218
|
+
return formatCurrencyAmount(ticketType.priceAmount, currency, { decimals: "auto" });
|
|
74219
|
+
}
|
|
74220
|
+
function getActiveTicketTypes(event) {
|
|
74221
|
+
return event.pricing.kind === "ticket_types" ? event.pricing.ticketTypes.filter((ticketType) => ticketType.isActive).sort((left, right) => left.sortOrder - right.sortOrder) : [];
|
|
74222
|
+
}
|
|
74223
|
+
function TicketTypePriceList({
|
|
74224
|
+
ticketTypes,
|
|
74225
|
+
currency
|
|
74226
|
+
}) {
|
|
74227
|
+
if (ticketTypes.length === 0) return null;
|
|
74228
|
+
return /* @__PURE__ */ jsx("div", { className: "rb-mt-3 rb-flex rb-flex-col rb-gap-2", children: ticketTypes.map((ticketType) => /* @__PURE__ */ jsxs(
|
|
74229
|
+
"div",
|
|
74230
|
+
{
|
|
74231
|
+
className: "rb-flex rb-items-start rb-justify-between rb-gap-4",
|
|
74232
|
+
children: [
|
|
74233
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
74234
|
+
/* @__PURE__ */ jsx("p", { children: ticketType.name }),
|
|
74235
|
+
ticketType.description ? /* @__PURE__ */ jsx("p", { className: "rb-caption status-muted", children: ticketType.description }) : null
|
|
74236
|
+
] }),
|
|
74237
|
+
/* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("strong", { children: formatTicketTypePrice(ticketType, currency) }) })
|
|
74238
|
+
]
|
|
74239
|
+
},
|
|
74240
|
+
ticketType.id
|
|
74241
|
+
)) });
|
|
74242
|
+
}
|
|
74025
74243
|
function EventDetailsView({
|
|
74026
74244
|
selection,
|
|
74027
74245
|
showVenue,
|
|
@@ -74056,6 +74274,7 @@ function EventDetailsView({
|
|
|
74056
74274
|
const shouldShowCoursePricing = showCost && !isDropIn && coursePricing !== null;
|
|
74057
74275
|
const shouldShowEventCost = showCost && isPaid && !isDropIn && coursePricing === null;
|
|
74058
74276
|
const eventCostLabel = shouldShowEventCost ? formatEventPrice(selected) : null;
|
|
74277
|
+
const ticketTypes = shouldShowEventCost ? getActiveTicketTypes(selected) : [];
|
|
74059
74278
|
const acceptedItems = [];
|
|
74060
74279
|
if (showAcceptedPasses) {
|
|
74061
74280
|
acceptedItems.push(...applicablePasses.map((p2) => p2.name));
|
|
@@ -74112,6 +74331,7 @@ function EventDetailsView({
|
|
|
74112
74331
|
/* @__PURE__ */ jsx("div", { className: "rb-label rb-mb-2", children: "Cost" }),
|
|
74113
74332
|
/* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("strong", { children: eventCostLabel }) }),
|
|
74114
74333
|
autoApplyDiscount ? /* @__PURE__ */ jsx("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, eventPricingCurrency) }) : null,
|
|
74334
|
+
/* @__PURE__ */ jsx(TicketTypePriceList, { ticketTypes, currency: eventPricingCurrency }),
|
|
74115
74335
|
hasAcceptedItems ? /* @__PURE__ */ jsxs("p", { className: "rb-caption rb-mt-1", children: [
|
|
74116
74336
|
"You can also attend with: ",
|
|
74117
74337
|
acceptedItems.join(", ")
|
|
@@ -76166,6 +76386,7 @@ function EventRegistrationSSR({
|
|
|
76166
76386
|
successMessage,
|
|
76167
76387
|
waitlistMessage,
|
|
76168
76388
|
buttonVariant,
|
|
76389
|
+
overlayEnabled,
|
|
76169
76390
|
spamProtectionEnabled,
|
|
76170
76391
|
stage,
|
|
76171
76392
|
supportEmail,
|
|
@@ -76187,6 +76408,7 @@ function EventRegistrationSSR({
|
|
|
76187
76408
|
successMessage,
|
|
76188
76409
|
waitlistMessage,
|
|
76189
76410
|
buttonVariant,
|
|
76411
|
+
overlayEnabled,
|
|
76190
76412
|
spamProtectionEnabled,
|
|
76191
76413
|
stage,
|
|
76192
76414
|
supportEmail
|
|
@@ -76442,6 +76664,7 @@ function NewsletterFormSSR({
|
|
|
76442
76664
|
siteId,
|
|
76443
76665
|
apiBaseUrl,
|
|
76444
76666
|
listId,
|
|
76667
|
+
destinationProvider,
|
|
76445
76668
|
preset: preset2 = "emailOnly",
|
|
76446
76669
|
includePhone,
|
|
76447
76670
|
buttonLabel = "Subscribe",
|
|
@@ -76452,9 +76675,11 @@ function NewsletterFormSSR({
|
|
|
76452
76675
|
className
|
|
76453
76676
|
}) {
|
|
76454
76677
|
const islandProps = buildNewsletterFormInteractiveIslandProps({
|
|
76678
|
+
blockId,
|
|
76455
76679
|
siteId,
|
|
76456
76680
|
apiBaseUrl,
|
|
76457
76681
|
listId,
|
|
76682
|
+
destinationProvider,
|
|
76458
76683
|
preset: preset2,
|
|
76459
76684
|
includePhone,
|
|
76460
76685
|
buttonLabel,
|
|
@@ -76909,7 +77134,7 @@ function previewEditableTargetToPath(target) {
|
|
|
76909
77134
|
case "read-only":
|
|
76910
77135
|
return void 0;
|
|
76911
77136
|
default:
|
|
76912
|
-
return
|
|
77137
|
+
return assertNever(target);
|
|
76913
77138
|
}
|
|
76914
77139
|
}
|
|
76915
77140
|
function previewEditableTargetFieldConstraints(target, context) {
|
|
@@ -77811,7 +78036,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
|
|
|
77811
78036
|
case "url":
|
|
77812
78037
|
return [];
|
|
77813
78038
|
default:
|
|
77814
|
-
return
|
|
78039
|
+
return assertNever(field);
|
|
77815
78040
|
}
|
|
77816
78041
|
}
|
|
77817
78042
|
function makeDefaultBlockComponent(args) {
|
|
@@ -81857,7 +82082,7 @@ function sourceLabel(source) {
|
|
|
81857
82082
|
case "sdk-config":
|
|
81858
82083
|
return "SDK config";
|
|
81859
82084
|
default:
|
|
81860
|
-
return
|
|
82085
|
+
return assertNever(source);
|
|
81861
82086
|
}
|
|
81862
82087
|
}
|
|
81863
82088
|
function mergeBlockDescriptorsWithRegistry(systemBlocks, registry, onConflict) {
|
|
@@ -82242,6 +82467,7 @@ var MemoBlockSection = React61.memo(
|
|
|
82242
82467
|
apiBaseUrl: dataContext?.apiBaseUrl ?? null,
|
|
82243
82468
|
portalToken: dataContext?.portalToken ?? null,
|
|
82244
82469
|
bookingOfferingPresets: dataContext?.bookingOfferingPresets ?? [],
|
|
82470
|
+
eventRegistrationOverlayEnabled: dataContext?.eventRegistrationOverlayEnabled ?? false,
|
|
82245
82471
|
...routes ? { routes } : {},
|
|
82246
82472
|
// Identifier maps for CTA link resolution at render time
|
|
82247
82473
|
...dataContext?.pagesByIdentifier ? { pagesByIdentifier: dataContext.pagesByIdentifier } : {},
|
|
@@ -82382,7 +82608,7 @@ function foldSubroute(ctx, fold) {
|
|
|
82382
82608
|
case "course-run":
|
|
82383
82609
|
return fold["course-run"](ctx.run);
|
|
82384
82610
|
default:
|
|
82385
|
-
return
|
|
82611
|
+
return assertNever(ctx, "Unhandled subroute kind");
|
|
82386
82612
|
}
|
|
82387
82613
|
}
|
|
82388
82614
|
|
|
@@ -85674,6 +85900,7 @@ var containerResponsiveThemeCss = `/*
|
|
|
85674
85900
|
*/
|
|
85675
85901
|
|
|
85676
85902
|
:where(.theme-scope) :where([data-block="event-registration"]) {
|
|
85903
|
+
--rb-modal-overlay-bg: rgb(var(--tb-text, 0 0 0) / 0.6);
|
|
85677
85904
|
--rb-event-tile-bg: var(--er-event-card-bg);
|
|
85678
85905
|
--rb-event-tile-border: var(--er-border);
|
|
85679
85906
|
--rb-event-tile-border-width: var(--er-event-card-border-width);
|
|
@@ -87343,6 +87570,239 @@ var containerResponsiveThemeCss = `/*
|
|
|
87343
87570
|
background: rgba(var(--tb-text), 0.05);
|
|
87344
87571
|
}
|
|
87345
87572
|
|
|
87573
|
+
/* In-flow booking teaser (sits at the block's position in the page) */
|
|
87574
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser {
|
|
87575
|
+
display: flex;
|
|
87576
|
+
flex-wrap: wrap;
|
|
87577
|
+
align-items: center;
|
|
87578
|
+
justify-content: space-between;
|
|
87579
|
+
gap: 1rem 1.5rem;
|
|
87580
|
+
padding: 1.25rem 1.5rem;
|
|
87581
|
+
border: 1px solid var(--er-border);
|
|
87582
|
+
border-radius: var(--rb-block-radius);
|
|
87583
|
+
background: var(--er-event-card-bg);
|
|
87584
|
+
color: var(--er-on-surface);
|
|
87585
|
+
}
|
|
87586
|
+
|
|
87587
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__info {
|
|
87588
|
+
display: flex;
|
|
87589
|
+
flex-direction: column;
|
|
87590
|
+
gap: 0.25rem;
|
|
87591
|
+
min-width: 0;
|
|
87592
|
+
}
|
|
87593
|
+
|
|
87594
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__title {
|
|
87595
|
+
font-size: 1.0625rem;
|
|
87596
|
+
font-weight: 700;
|
|
87597
|
+
line-height: 1.2;
|
|
87598
|
+
}
|
|
87599
|
+
|
|
87600
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__meta {
|
|
87601
|
+
font-size: 0.9375rem;
|
|
87602
|
+
line-height: 1.3;
|
|
87603
|
+
opacity: 0.75;
|
|
87604
|
+
}
|
|
87605
|
+
|
|
87606
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__tickets {
|
|
87607
|
+
display: flex;
|
|
87608
|
+
flex-direction: column;
|
|
87609
|
+
gap: 0.375rem;
|
|
87610
|
+
margin-top: 0.5rem;
|
|
87611
|
+
padding-top: 0.625rem;
|
|
87612
|
+
border-top: 1px solid var(--er-border);
|
|
87613
|
+
}
|
|
87614
|
+
|
|
87615
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__ticket {
|
|
87616
|
+
display: flex;
|
|
87617
|
+
align-items: baseline;
|
|
87618
|
+
justify-content: space-between;
|
|
87619
|
+
gap: 1rem;
|
|
87620
|
+
font-size: 0.9375rem;
|
|
87621
|
+
line-height: 1.35;
|
|
87622
|
+
}
|
|
87623
|
+
|
|
87624
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__ticket-name {
|
|
87625
|
+
min-width: 0;
|
|
87626
|
+
}
|
|
87627
|
+
|
|
87628
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-teaser__cta {
|
|
87629
|
+
flex: 0 0 auto;
|
|
87630
|
+
}
|
|
87631
|
+
|
|
87632
|
+
/* Fixed, full-width sticky booking bar (content-agnostic; sits above page flow) */
|
|
87633
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar {
|
|
87634
|
+
position: fixed;
|
|
87635
|
+
left: 0;
|
|
87636
|
+
right: 0;
|
|
87637
|
+
bottom: 0;
|
|
87638
|
+
z-index: 12000;
|
|
87639
|
+
padding: 0.75rem max(1rem, env(safe-area-inset-right)) max(0.75rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
|
|
87640
|
+
background: rgb(var(--tb-background));
|
|
87641
|
+
border-top: 1px solid var(--er-border);
|
|
87642
|
+
box-shadow: 0 -10px 30px rgba(var(--tb-shadow), 0.16);
|
|
87643
|
+
}
|
|
87644
|
+
|
|
87645
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__inner {
|
|
87646
|
+
display: flex;
|
|
87647
|
+
align-items: center;
|
|
87648
|
+
justify-content: space-between;
|
|
87649
|
+
gap: 1rem;
|
|
87650
|
+
width: 100%;
|
|
87651
|
+
max-width: 72rem;
|
|
87652
|
+
margin-inline: auto;
|
|
87653
|
+
}
|
|
87654
|
+
|
|
87655
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__info {
|
|
87656
|
+
display: flex;
|
|
87657
|
+
flex-direction: column;
|
|
87658
|
+
gap: 0.125rem;
|
|
87659
|
+
min-width: 0;
|
|
87660
|
+
}
|
|
87661
|
+
|
|
87662
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__title {
|
|
87663
|
+
font-size: 0.95rem;
|
|
87664
|
+
font-weight: 700;
|
|
87665
|
+
line-height: 1.2;
|
|
87666
|
+
white-space: nowrap;
|
|
87667
|
+
overflow: hidden;
|
|
87668
|
+
text-overflow: ellipsis;
|
|
87669
|
+
}
|
|
87670
|
+
|
|
87671
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__meta {
|
|
87672
|
+
font-size: 0.8125rem;
|
|
87673
|
+
line-height: 1.25;
|
|
87674
|
+
opacity: 0.75;
|
|
87675
|
+
white-space: nowrap;
|
|
87676
|
+
overflow: hidden;
|
|
87677
|
+
text-overflow: ellipsis;
|
|
87678
|
+
}
|
|
87679
|
+
|
|
87680
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-bar__cta {
|
|
87681
|
+
flex: 0 0 auto;
|
|
87682
|
+
}
|
|
87683
|
+
|
|
87684
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay {
|
|
87685
|
+
position: fixed;
|
|
87686
|
+
inset: 0;
|
|
87687
|
+
height: 100dvh;
|
|
87688
|
+
z-index: 14000;
|
|
87689
|
+
display: flex;
|
|
87690
|
+
align-items: stretch;
|
|
87691
|
+
justify-content: stretch;
|
|
87692
|
+
background: var(--rb-modal-overlay-bg);
|
|
87693
|
+
}
|
|
87694
|
+
|
|
87695
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__panel {
|
|
87696
|
+
position: relative;
|
|
87697
|
+
z-index: 1;
|
|
87698
|
+
display: flex;
|
|
87699
|
+
flex-direction: column;
|
|
87700
|
+
width: 100%;
|
|
87701
|
+
height: 100dvh;
|
|
87702
|
+
min-height: 0;
|
|
87703
|
+
overflow: hidden;
|
|
87704
|
+
background: rgb(var(--tb-background));
|
|
87705
|
+
color: var(--er-on-surface);
|
|
87706
|
+
}
|
|
87707
|
+
|
|
87708
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__header {
|
|
87709
|
+
flex: 0 0 auto;
|
|
87710
|
+
z-index: 2;
|
|
87711
|
+
display: flex;
|
|
87712
|
+
align-items: center;
|
|
87713
|
+
justify-content: space-between;
|
|
87714
|
+
gap: 1rem;
|
|
87715
|
+
padding: 1rem;
|
|
87716
|
+
background: rgb(var(--tb-background));
|
|
87717
|
+
border-bottom: 1px solid var(--er-border);
|
|
87718
|
+
}
|
|
87719
|
+
|
|
87720
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__title {
|
|
87721
|
+
margin: 0;
|
|
87722
|
+
font-size: 1rem;
|
|
87723
|
+
line-height: 1.25;
|
|
87724
|
+
font-weight: 700;
|
|
87725
|
+
}
|
|
87726
|
+
|
|
87727
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__close {
|
|
87728
|
+
width: 2rem;
|
|
87729
|
+
height: 2rem;
|
|
87730
|
+
display: inline-flex;
|
|
87731
|
+
align-items: center;
|
|
87732
|
+
justify-content: center;
|
|
87733
|
+
border: 1px solid var(--er-border);
|
|
87734
|
+
border-radius: 999px;
|
|
87735
|
+
background: transparent;
|
|
87736
|
+
color: rgb(var(--tb-text));
|
|
87737
|
+
font-size: 1.25rem;
|
|
87738
|
+
line-height: 1;
|
|
87739
|
+
cursor: pointer;
|
|
87740
|
+
}
|
|
87741
|
+
|
|
87742
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay {
|
|
87743
|
+
max-width: none;
|
|
87744
|
+
border: 0;
|
|
87745
|
+
border-radius: 0;
|
|
87746
|
+
padding: 0;
|
|
87747
|
+
background: transparent;
|
|
87748
|
+
display: flex;
|
|
87749
|
+
flex: 1 1 auto;
|
|
87750
|
+
min-height: 0;
|
|
87751
|
+
overflow: hidden;
|
|
87752
|
+
}
|
|
87753
|
+
|
|
87754
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout {
|
|
87755
|
+
flex: 1 1 auto;
|
|
87756
|
+
min-height: 0;
|
|
87757
|
+
height: 100%;
|
|
87758
|
+
gap: 0;
|
|
87759
|
+
grid-template-rows: minmax(0, 1fr) auto;
|
|
87760
|
+
grid-template-areas:
|
|
87761
|
+
"main"
|
|
87762
|
+
"footer";
|
|
87763
|
+
}
|
|
87764
|
+
|
|
87765
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-main {
|
|
87766
|
+
min-height: 0;
|
|
87767
|
+
overflow: auto;
|
|
87768
|
+
padding: 1rem;
|
|
87769
|
+
}
|
|
87770
|
+
|
|
87771
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-footer {
|
|
87772
|
+
position: relative;
|
|
87773
|
+
z-index: 3;
|
|
87774
|
+
padding: 0.875rem 1rem max(0.875rem, env(safe-area-inset-bottom));
|
|
87775
|
+
background: rgb(var(--tb-background));
|
|
87776
|
+
border-top: 1px solid var(--er-border);
|
|
87777
|
+
box-shadow: 0 -12px 26px rgba(var(--tb-shadow), 0.12);
|
|
87778
|
+
}
|
|
87779
|
+
|
|
87780
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-actions {
|
|
87781
|
+
margin-top: 0;
|
|
87782
|
+
}
|
|
87783
|
+
|
|
87784
|
+
@container rb-site (min-width: 768px) {
|
|
87785
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
87786
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay {
|
|
87787
|
+
justify-content: flex-end;
|
|
87788
|
+
}
|
|
87789
|
+
|
|
87790
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-booking-overlay__panel {
|
|
87791
|
+
width: min(32rem, 100vw);
|
|
87792
|
+
min-height: 100%;
|
|
87793
|
+
box-shadow: -16px 0 40px rgba(var(--tb-shadow), 0.22);
|
|
87794
|
+
}
|
|
87795
|
+
|
|
87796
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-main {
|
|
87797
|
+
padding: 1.25rem;
|
|
87798
|
+
}
|
|
87799
|
+
|
|
87800
|
+
:where(.theme-scope) :where([data-block="event-registration"]) .er-container--overlay .er-payment-layout-footer {
|
|
87801
|
+
padding: 0.875rem 1.25rem max(0.875rem, env(safe-area-inset-bottom));
|
|
87802
|
+
}
|
|
87803
|
+
}
|
|
87804
|
+
}
|
|
87805
|
+
|
|
87346
87806
|
/* Magic Link Form */
|
|
87347
87807
|
:where(.theme-scope) :where([data-block="event-registration"]) .er-magic-link-form {
|
|
87348
87808
|
display: flex;
|
|
@@ -125553,9 +126013,8 @@ function createBlockApi(config) {
|
|
|
125553
126013
|
name: data.name,
|
|
125554
126014
|
company: data.company,
|
|
125555
126015
|
phone: data.phone,
|
|
125556
|
-
|
|
126016
|
+
target: data.target,
|
|
125557
126017
|
tags: data.tags,
|
|
125558
|
-
blockId: data.blockId,
|
|
125559
126018
|
meta: data.meta
|
|
125560
126019
|
}
|
|
125561
126020
|
});
|
|
@@ -126399,10 +126858,7 @@ var DEFAULT_CURRENCY = "GBP";
|
|
|
126399
126858
|
|
|
126400
126859
|
// ../blocks/src/system/runtime/shared/utils/formatting.ts
|
|
126401
126860
|
function formatPrice(cents, currency = DEFAULT_CURRENCY, locale) {
|
|
126402
|
-
return
|
|
126403
|
-
style: "currency",
|
|
126404
|
-
currency: currency.toUpperCase()
|
|
126405
|
-
}).format(cents / 100);
|
|
126861
|
+
return formatCurrencyAmount(cents, currency, { locale });
|
|
126406
126862
|
}
|
|
126407
126863
|
|
|
126408
126864
|
// ../blocks/src/system/runtime/shared/bookingPaymentOptions.ts
|
|
@@ -129364,6 +129820,8 @@ function ModalShell({
|
|
|
129364
129820
|
children,
|
|
129365
129821
|
portalRoot,
|
|
129366
129822
|
portal = false,
|
|
129823
|
+
portalWrapperClassName,
|
|
129824
|
+
portalWrapperProps,
|
|
129367
129825
|
overlayClassName,
|
|
129368
129826
|
modalClassName,
|
|
129369
129827
|
renderSrOnlyTitle = false,
|
|
@@ -129446,7 +129904,8 @@ function ModalShell({
|
|
|
129446
129904
|
if (!portalRoot) {
|
|
129447
129905
|
return null;
|
|
129448
129906
|
}
|
|
129449
|
-
|
|
129907
|
+
const modalNode = portalWrapperClassName || portalWrapperProps ? /* @__PURE__ */ jsx("div", { ...portalWrapperProps, className: portalWrapperClassName, children: modal }) : modal;
|
|
129908
|
+
return createPortal(modalNode, portalRoot);
|
|
129450
129909
|
}
|
|
129451
129910
|
function clampIndex(idx, len) {
|
|
129452
129911
|
if (len <= 0) return 0;
|
|
@@ -132684,6 +133143,12 @@ function EventPortalAuthPrompt(props2) {
|
|
|
132684
133143
|
/* @__PURE__ */ jsx("button", { type: "button", className: "er-portal-auth-link", onClick: props2.onRequestLogin, children: props2.copy.buttonText })
|
|
132685
133144
|
] });
|
|
132686
133145
|
}
|
|
133146
|
+
function getActiveTicketTypes2(event) {
|
|
133147
|
+
return event?.pricing.kind === "ticket_types" ? event.pricing.ticketTypes.filter((ticketType) => ticketType.isActive).sort((left, right) => left.sortOrder - right.sortOrder) : [];
|
|
133148
|
+
}
|
|
133149
|
+
function formatTicketTypePrice2(ticketType, currency) {
|
|
133150
|
+
return formatCurrencyAmount(ticketType.priceAmount, currency, { decimals: "auto" });
|
|
133151
|
+
}
|
|
132687
133152
|
function EventRegistrationWizard(props2) {
|
|
132688
133153
|
const {
|
|
132689
133154
|
occurrenceContext,
|
|
@@ -132703,6 +133168,8 @@ function EventRegistrationWizard(props2) {
|
|
|
132703
133168
|
const maxTicketsNum = normalizeEventRegistrationMaxTickets(maxTickets);
|
|
132704
133169
|
const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
132705
133170
|
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
133171
|
+
const registrationRootClassName = `event-registration ${className || ""}`;
|
|
133172
|
+
const registrationRootRef = React61__default.useRef(null);
|
|
132706
133173
|
const wizard = useEventRegistrationWizard({
|
|
132707
133174
|
anchorId: EVENT_REGISTRATION_ANCHOR_ID,
|
|
132708
133175
|
occurrenceContext: occurrenceContext ?? null,
|
|
@@ -132710,13 +133177,44 @@ function EventRegistrationWizard(props2) {
|
|
|
132710
133177
|
events: events2 ?? [],
|
|
132711
133178
|
maxTicketsNum
|
|
132712
133179
|
});
|
|
133180
|
+
const [bookingOverlayOpen, setBookingOverlayOpen] = useState(false);
|
|
133181
|
+
const [floatingPortalRoot, setFloatingPortalRoot] = useState(null);
|
|
133182
|
+
useEffect(() => {
|
|
133183
|
+
const sourceEl = registrationRootRef.current;
|
|
133184
|
+
if (!sourceEl) return;
|
|
133185
|
+
const portal = createBodyThemePortalRoot(sourceEl);
|
|
133186
|
+
if (!portal) return;
|
|
133187
|
+
setFloatingPortalRoot(portal.root);
|
|
133188
|
+
return () => {
|
|
133189
|
+
setFloatingPortalRoot(null);
|
|
133190
|
+
portal.cleanup();
|
|
133191
|
+
};
|
|
133192
|
+
}, []);
|
|
132713
133193
|
if (wizard.scopedEvents.length === 0 && !wizard.occurrenceContext) {
|
|
132714
|
-
return /* @__PURE__ */ jsx(
|
|
133194
|
+
return /* @__PURE__ */ jsx(
|
|
133195
|
+
"div",
|
|
133196
|
+
{
|
|
133197
|
+
ref: registrationRootRef,
|
|
133198
|
+
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
133199
|
+
className: registrationRootClassName,
|
|
133200
|
+
"data-block": "event-registration",
|
|
133201
|
+
children: /* @__PURE__ */ jsx("div", { className: "er-empty", children: /* @__PURE__ */ jsx("p", { className: "er-empty__text", children: "No events available for registration." }) })
|
|
133202
|
+
}
|
|
133203
|
+
);
|
|
132715
133204
|
}
|
|
132716
133205
|
const allowedStatuses = getRegistrableStatuses(wizard.api.config.isPreview);
|
|
132717
133206
|
const hasRegistrableEvents = wizard.scopedEvents.some((event) => !event.status || allowedStatuses.includes(event.status));
|
|
132718
133207
|
if (!hasRegistrableEvents && !wizard.occurrenceContext) {
|
|
132719
|
-
return /* @__PURE__ */ jsx(
|
|
133208
|
+
return /* @__PURE__ */ jsx(
|
|
133209
|
+
"div",
|
|
133210
|
+
{
|
|
133211
|
+
ref: registrationRootRef,
|
|
133212
|
+
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
133213
|
+
className: registrationRootClassName,
|
|
133214
|
+
"data-block": "event-registration",
|
|
133215
|
+
children: /* @__PURE__ */ jsx("div", { className: "er-empty", children: /* @__PURE__ */ jsx("p", { className: "er-empty__text", children: "Registration is not currently available for this event." }) })
|
|
133216
|
+
}
|
|
133217
|
+
);
|
|
132720
133218
|
}
|
|
132721
133219
|
const isWizardStep = WIZARD_STEPS.includes(wizard.step);
|
|
132722
133220
|
const activeWizardSteps = useMemo(
|
|
@@ -132758,13 +133256,15 @@ function EventRegistrationWizard(props2) {
|
|
|
132758
133256
|
const currentStepNumber = getStepNumber(wizard.step, activeWizardSteps);
|
|
132759
133257
|
const summaryEvent = wizard.selectedEvent ?? wizard.preSelectedEvent;
|
|
132760
133258
|
const summaryEventPricingType = summaryEvent ? publicEventPricingType(summaryEvent.pricing) : "free";
|
|
133259
|
+
const summaryPriceLabel = summaryEvent ? formatEventPriceDisplay(summaryEvent.pricing) : null;
|
|
133260
|
+
const summaryAvailabilityLabel = summaryEvent?.availableSpots === null || summaryEvent?.availableSpots === void 0 ? null : summaryEvent.availableSpots > 0 ? `${summaryEvent.availableSpots} spots left` : summaryEvent.waitlistEnabled ? "Waitlist available" : "Fully booked";
|
|
132761
133261
|
const waitlistClaimRequiresPortalLogin = wizard.waitlistClaim.requiresPortalLogin && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking";
|
|
132762
133262
|
const portalAuthCopy = waitlistClaimRequiresPortalLogin ? {
|
|
132763
133263
|
...EVENT_PORTAL_AUTH_COPY["waitlist-claim"],
|
|
132764
133264
|
description: wizard.waitlistClaim.loginMessage ?? "Log in to continue with your waitlist claim."
|
|
132765
133265
|
} : EVENT_PORTAL_AUTH_COPY.membership;
|
|
132766
133266
|
const showPortalAuthPrompt = waitlistClaimRequiresPortalLogin || wizard.step === "select-tickets" && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && summaryEventPricingType !== "free";
|
|
132767
|
-
|
|
133267
|
+
const renderRegistrationSurface = (variant) => /* @__PURE__ */ jsxs("div", { className: `er-container${variant === "overlay" ? " er-container--overlay" : ""}`, children: [
|
|
132768
133268
|
isWizardStep && /* @__PURE__ */ jsxs("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
|
|
132769
133269
|
/* @__PURE__ */ jsxs("div", { className: "er-payment-layout-main", children: [
|
|
132770
133270
|
totalSteps > 1 && /* @__PURE__ */ jsx(StepIndicator2, { currentStep: currentStepNumber, totalSteps, stepLabels }),
|
|
@@ -132832,7 +133332,100 @@ function EventRegistrationWizard(props2) {
|
|
|
132832
133332
|
}
|
|
132833
133333
|
),
|
|
132834
133334
|
wizard.step === "error" && /* @__PURE__ */ jsx(ErrorStep, { message: wizard.errorMessage, onRetry: wizard.handleRetry })
|
|
132835
|
-
] })
|
|
133335
|
+
] });
|
|
133336
|
+
const isEmbedded = (className ?? "").includes("event-registration--embedded");
|
|
133337
|
+
const overlayEnabled = props2.overlayEnabled === true;
|
|
133338
|
+
if (isEmbedded || !overlayEnabled) {
|
|
133339
|
+
return /* @__PURE__ */ jsx(
|
|
133340
|
+
"div",
|
|
133341
|
+
{
|
|
133342
|
+
ref: registrationRootRef,
|
|
133343
|
+
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
133344
|
+
className: registrationRootClassName,
|
|
133345
|
+
"data-block": "event-registration",
|
|
133346
|
+
children: renderRegistrationSurface("inline")
|
|
133347
|
+
}
|
|
133348
|
+
);
|
|
133349
|
+
}
|
|
133350
|
+
const bookingSummaryMeta = [summaryPriceLabel, summaryAvailabilityLabel].filter(Boolean).join(" \xB7 ");
|
|
133351
|
+
const bookingTicketTypes = getActiveTicketTypes2(summaryEvent);
|
|
133352
|
+
const bookingTicketTypesCurrency = summaryEvent?.pricing.kind === "ticket_types" ? summaryEvent.pricing.currency : null;
|
|
133353
|
+
const renderBookingEntry = (base2) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
133354
|
+
/* @__PURE__ */ jsxs("div", { className: `${base2}__info`, children: [
|
|
133355
|
+
/* @__PURE__ */ jsx("span", { className: `${base2}__title`, children: "Book this event" }),
|
|
133356
|
+
bookingSummaryMeta && /* @__PURE__ */ jsx("span", { className: `${base2}__meta`, children: bookingSummaryMeta }),
|
|
133357
|
+
base2 === "er-booking-teaser" && bookingTicketTypesCurrency && bookingTicketTypes.length > 0 ? /* @__PURE__ */ jsx("div", { className: "er-booking-teaser__tickets", children: bookingTicketTypes.map((ticketType) => /* @__PURE__ */ jsxs("div", { className: "er-booking-teaser__ticket", children: [
|
|
133358
|
+
/* @__PURE__ */ jsx("span", { className: "er-booking-teaser__ticket-name", children: ticketType.name }),
|
|
133359
|
+
/* @__PURE__ */ jsx("strong", { children: formatTicketTypePrice2(ticketType, bookingTicketTypesCurrency) })
|
|
133360
|
+
] }, ticketType.id)) }) : null
|
|
133361
|
+
] }),
|
|
133362
|
+
/* @__PURE__ */ jsx(
|
|
133363
|
+
"button",
|
|
133364
|
+
{
|
|
133365
|
+
type: "button",
|
|
133366
|
+
className: `${base2}__cta ${buttonClass}`,
|
|
133367
|
+
onClick: () => setBookingOverlayOpen(true),
|
|
133368
|
+
children: "Book now"
|
|
133369
|
+
}
|
|
133370
|
+
)
|
|
133371
|
+
] });
|
|
133372
|
+
const floatingBookingUi = !bookingOverlayOpen && isWizardStep ? /* @__PURE__ */ jsx("div", { className: "er-booking-bar", children: /* @__PURE__ */ jsx("div", { className: "er-booking-bar__inner", children: renderBookingEntry("er-booking-bar") }) }) : null;
|
|
133373
|
+
const floatingBookingLayer = floatingPortalRoot ? createPortal(
|
|
133374
|
+
/* @__PURE__ */ jsx("div", { className: registrationRootClassName, "data-block": "event-registration", children: floatingBookingUi }),
|
|
133375
|
+
floatingPortalRoot
|
|
133376
|
+
) : floatingBookingUi;
|
|
133377
|
+
const bookingOverlayLayer = bookingOverlayOpen ? /* @__PURE__ */ jsx(
|
|
133378
|
+
ModalShell,
|
|
133379
|
+
{
|
|
133380
|
+
title: "Book this event",
|
|
133381
|
+
titleId: "event-registration-booking-title",
|
|
133382
|
+
onClose: () => setBookingOverlayOpen(false),
|
|
133383
|
+
portal: floatingPortalRoot != null,
|
|
133384
|
+
portalRoot: floatingPortalRoot,
|
|
133385
|
+
portalWrapperClassName: registrationRootClassName,
|
|
133386
|
+
portalWrapperProps: { "data-block": "event-registration" },
|
|
133387
|
+
overlayClassName: "er-booking-overlay",
|
|
133388
|
+
modalClassName: "er-booking-overlay__panel",
|
|
133389
|
+
renderHeader: ({ closeButtonRef, onClose, title, titleId }) => /* @__PURE__ */ jsxs("div", { className: "er-booking-overlay__header", children: [
|
|
133390
|
+
/* @__PURE__ */ jsx("h2", { className: "er-booking-overlay__title", id: titleId, children: title }),
|
|
133391
|
+
/* @__PURE__ */ jsx(
|
|
133392
|
+
"button",
|
|
133393
|
+
{
|
|
133394
|
+
ref: closeButtonRef,
|
|
133395
|
+
type: "button",
|
|
133396
|
+
className: "er-booking-overlay__close",
|
|
133397
|
+
onClick: onClose,
|
|
133398
|
+
"aria-label": "Close booking",
|
|
133399
|
+
children: "\xD7"
|
|
133400
|
+
}
|
|
133401
|
+
)
|
|
133402
|
+
] }),
|
|
133403
|
+
children: renderRegistrationSurface("overlay")
|
|
133404
|
+
}
|
|
133405
|
+
) : null;
|
|
133406
|
+
return /* @__PURE__ */ jsxs(
|
|
133407
|
+
"div",
|
|
133408
|
+
{
|
|
133409
|
+
ref: registrationRootRef,
|
|
133410
|
+
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
133411
|
+
className: registrationRootClassName,
|
|
133412
|
+
"data-block": "event-registration",
|
|
133413
|
+
children: [
|
|
133414
|
+
isWizardStep ? (
|
|
133415
|
+
// In-flow: a lightweight teaser at the block's position. The full wizard
|
|
133416
|
+
// lives in the sheet, so there is only ever one form surface mounted.
|
|
133417
|
+
/* @__PURE__ */ jsx("div", { className: "er-booking-teaser", children: renderBookingEntry("er-booking-teaser") })
|
|
133418
|
+
) : (
|
|
133419
|
+
// Terminal states (success, error, payment verification on redirect
|
|
133420
|
+
// return) render in the page where the visitor lands, unless the sheet is
|
|
133421
|
+
// open and already showing them.
|
|
133422
|
+
!bookingOverlayOpen && renderRegistrationSurface("inline")
|
|
133423
|
+
),
|
|
133424
|
+
floatingBookingLayer,
|
|
133425
|
+
bookingOverlayLayer
|
|
133426
|
+
]
|
|
133427
|
+
}
|
|
133428
|
+
);
|
|
132836
133429
|
}
|
|
132837
133430
|
function isPastOccurrence(startsAt) {
|
|
132838
133431
|
if (!startsAt) return false;
|
|
@@ -135542,7 +136135,7 @@ function PassesMembershipsController({ render }) {
|
|
|
135542
136135
|
window.location.href = result.checkoutUrl;
|
|
135543
136136
|
return;
|
|
135544
136137
|
default:
|
|
135545
|
-
return
|
|
136138
|
+
return assertNever(result);
|
|
135546
136139
|
}
|
|
135547
136140
|
} catch (submitError) {
|
|
135548
136141
|
dispatch({
|
|
@@ -136860,10 +137453,7 @@ function buildGiftingCheckoutInput(formData, input) {
|
|
|
136860
137453
|
};
|
|
136861
137454
|
}
|
|
136862
137455
|
function formatCurrency(amountCents, currency) {
|
|
136863
|
-
return
|
|
136864
|
-
style: "currency",
|
|
136865
|
-
currency
|
|
136866
|
-
}).format(amountCents / 100);
|
|
137456
|
+
return formatCurrencyAmount(amountCents, currency);
|
|
136867
137457
|
}
|
|
136868
137458
|
var sectionCardStyle = {
|
|
136869
137459
|
gap: "0.875rem",
|
|
@@ -140731,6 +141321,49 @@ function getNewsletterFieldError(error, fieldId) {
|
|
|
140731
141321
|
function getNewsletterFormError(error) {
|
|
140732
141322
|
return error?.kind === "form" ? error.message : null;
|
|
140733
141323
|
}
|
|
141324
|
+
|
|
141325
|
+
// ../blocks/src/system/runtime/nodes/newsletter-form.submission.ts
|
|
141326
|
+
function mapNewsletterFormFieldsToSubscriberInput(fields3) {
|
|
141327
|
+
return {
|
|
141328
|
+
email: readSubmittedText(fields3.email),
|
|
141329
|
+
firstName: readOptionalSubmittedText(fields3.firstName),
|
|
141330
|
+
lastName: readOptionalSubmittedText(fields3.lastName),
|
|
141331
|
+
name: readOptionalSubmittedText(fields3.name),
|
|
141332
|
+
company: readOptionalSubmittedText(fields3.company),
|
|
141333
|
+
phone: readOptionalSubmittedText(fields3.phone),
|
|
141334
|
+
honeypot: readSubmittedText(fields3.website)
|
|
141335
|
+
};
|
|
141336
|
+
}
|
|
141337
|
+
function resolveNewsletterSubmitTarget(input) {
|
|
141338
|
+
const listId = input.listId?.trim();
|
|
141339
|
+
if (input.destinationRef) {
|
|
141340
|
+
return {
|
|
141341
|
+
tag: "ready",
|
|
141342
|
+
target: {
|
|
141343
|
+
tag: "published_block_ref",
|
|
141344
|
+
destinationRef: input.destinationRef
|
|
141345
|
+
}
|
|
141346
|
+
};
|
|
141347
|
+
}
|
|
141348
|
+
if (!listId) {
|
|
141349
|
+
return { tag: "unavailable", reason: "missing_legacy_list" };
|
|
141350
|
+
}
|
|
141351
|
+
return {
|
|
141352
|
+
tag: "ready",
|
|
141353
|
+
target: {
|
|
141354
|
+
tag: "legacy_riverbank_list",
|
|
141355
|
+
listId,
|
|
141356
|
+
destinationRef: input.destinationRef ?? void 0
|
|
141357
|
+
}
|
|
141358
|
+
};
|
|
141359
|
+
}
|
|
141360
|
+
function readOptionalSubmittedText(value) {
|
|
141361
|
+
const text2 = readSubmittedText(value);
|
|
141362
|
+
return text2.length > 0 ? text2 : void 0;
|
|
141363
|
+
}
|
|
141364
|
+
function readSubmittedText(value) {
|
|
141365
|
+
return typeof value === "string" ? value.trim() : "";
|
|
141366
|
+
}
|
|
140734
141367
|
function NewsletterFormClient({
|
|
140735
141368
|
render
|
|
140736
141369
|
}) {
|
|
@@ -140746,39 +141379,44 @@ function NewsletterFormClient({
|
|
|
140746
141379
|
e3.preventDefault();
|
|
140747
141380
|
setError(null);
|
|
140748
141381
|
const formData = new FormData(e3.currentTarget);
|
|
140749
|
-
const
|
|
140750
|
-
|
|
141382
|
+
const submittedFields = mapNewsletterFormFieldsToSubscriberInput({
|
|
141383
|
+
email: formData.get("email"),
|
|
141384
|
+
firstName: formData.get("firstName"),
|
|
141385
|
+
lastName: formData.get("lastName"),
|
|
141386
|
+
name: formData.get("name"),
|
|
141387
|
+
company: formData.get("company"),
|
|
141388
|
+
phone: formData.get("phone"),
|
|
141389
|
+
website: formData.get("website")
|
|
141390
|
+
});
|
|
141391
|
+
if (submittedFields.honeypot) {
|
|
140751
141392
|
setIsSuccess(true);
|
|
140752
141393
|
return;
|
|
140753
141394
|
}
|
|
140754
|
-
|
|
140755
|
-
const firstName = formData.get("firstName")?.trim() || void 0;
|
|
140756
|
-
const lastName = formData.get("lastName")?.trim() || void 0;
|
|
140757
|
-
const name = formData.get("name")?.trim() || void 0;
|
|
140758
|
-
const company = formData.get("company")?.trim() || void 0;
|
|
140759
|
-
const phone = formData.get("phone")?.trim() || void 0;
|
|
140760
|
-
if (!email) {
|
|
141395
|
+
if (!submittedFields.email) {
|
|
140761
141396
|
setError(newsletterFieldError("email", "Email is required"));
|
|
140762
141397
|
return;
|
|
140763
141398
|
}
|
|
140764
|
-
|
|
141399
|
+
const submitTarget = resolveNewsletterSubmitTarget({
|
|
141400
|
+
listId: render.hydration.listId,
|
|
141401
|
+
destinationRef: render.hydration.destinationRef
|
|
141402
|
+
});
|
|
141403
|
+
if (submitTarget.tag === "unavailable") {
|
|
140765
141404
|
setError(newsletterFormError("Newsletter list is not configured"));
|
|
140766
141405
|
return;
|
|
140767
141406
|
}
|
|
140768
141407
|
setIsSubmitting(true);
|
|
140769
141408
|
try {
|
|
140770
141409
|
await api.subscribeNewsletter({
|
|
140771
|
-
email,
|
|
140772
|
-
firstName,
|
|
140773
|
-
lastName,
|
|
140774
|
-
name,
|
|
140775
|
-
company,
|
|
140776
|
-
phone,
|
|
140777
|
-
|
|
141410
|
+
email: submittedFields.email,
|
|
141411
|
+
firstName: submittedFields.firstName,
|
|
141412
|
+
lastName: submittedFields.lastName,
|
|
141413
|
+
name: submittedFields.name,
|
|
141414
|
+
company: submittedFields.company,
|
|
141415
|
+
phone: submittedFields.phone,
|
|
141416
|
+
target: submitTarget.target,
|
|
140778
141417
|
tags: parsedTags.length > 0 ? parsedTags : void 0,
|
|
140779
|
-
blockId: void 0,
|
|
140780
141418
|
meta: {
|
|
140781
|
-
honeypot,
|
|
141419
|
+
honeypot: submittedFields.honeypot,
|
|
140782
141420
|
altchaSolution
|
|
140783
141421
|
}
|
|
140784
141422
|
});
|
|
@@ -146646,8 +147284,8 @@ function deriveLaunchReadiness(input) {
|
|
|
146646
147284
|
priority: "optional",
|
|
146647
147285
|
state: input.customDomain.kind === "connected" ? "complete" : "pending",
|
|
146648
147286
|
owner: "admin",
|
|
146649
|
-
title: "Connect a
|
|
146650
|
-
description: input.customDomain.kind === "connected" ? "A
|
|
147287
|
+
title: "Connect a domain",
|
|
147288
|
+
description: input.customDomain.kind === "connected" ? "A domain is already connected." : "You can connect a domain later when you are ready to launch.",
|
|
146651
147289
|
action: openDashboardPathAction(
|
|
146652
147290
|
siteId,
|
|
146653
147291
|
"/settings/domains?setup=domain",
|
|
@@ -159882,7 +160520,7 @@ function findDiffEnd(a2, b2, posA, posB) {
|
|
|
159882
160520
|
posB -= size4;
|
|
159883
160521
|
}
|
|
159884
160522
|
}
|
|
159885
|
-
var
|
|
160523
|
+
var Fragment53 = class _Fragment {
|
|
159886
160524
|
/**
|
|
159887
160525
|
@internal
|
|
159888
160526
|
*/
|
|
@@ -160174,7 +160812,7 @@ var Fragment52 = class _Fragment {
|
|
|
160174
160812
|
throw new RangeError("Can not convert " + nodes + " to a Fragment" + (nodes.nodesBetween ? " (looks like multiple versions of prosemirror-model were loaded)" : ""));
|
|
160175
160813
|
}
|
|
160176
160814
|
};
|
|
160177
|
-
|
|
160815
|
+
Fragment53.empty = new Fragment53([], 0);
|
|
160178
160816
|
var found = { index: 0, offset: 0 };
|
|
160179
160817
|
function retIndex(index2, offset4) {
|
|
160180
160818
|
found.index = index2;
|
|
@@ -160399,7 +161037,7 @@ var Slice2 = class _Slice {
|
|
|
160399
161037
|
let openStart = json.openStart || 0, openEnd = json.openEnd || 0;
|
|
160400
161038
|
if (typeof openStart != "number" || typeof openEnd != "number")
|
|
160401
161039
|
throw new RangeError("Invalid input for Slice.fromJSON");
|
|
160402
|
-
return new _Slice(
|
|
161040
|
+
return new _Slice(Fragment53.fromJSON(schema, json.content), openStart, openEnd);
|
|
160403
161041
|
}
|
|
160404
161042
|
/**
|
|
160405
161043
|
Create a slice from a fragment by taking the maximum possible
|
|
@@ -160414,7 +161052,7 @@ var Slice2 = class _Slice {
|
|
|
160414
161052
|
return new _Slice(fragment, openStart, openEnd);
|
|
160415
161053
|
}
|
|
160416
161054
|
};
|
|
160417
|
-
Slice2.empty = new Slice2(
|
|
161055
|
+
Slice2.empty = new Slice2(Fragment53.empty, 0, 0);
|
|
160418
161056
|
function removeRange(content, from2, to) {
|
|
160419
161057
|
let { index: index2, offset: offset4 } = content.findIndex(from2), child = content.maybeChild(index2);
|
|
160420
161058
|
let { index: indexTo, offset: offsetTo } = content.findIndex(to);
|
|
@@ -160512,7 +161150,7 @@ function replaceThreeWay($from, $start, $end, $to, depth) {
|
|
|
160512
161150
|
addNode(close(openEnd, replaceTwoWay($end, $to, depth + 1)), content);
|
|
160513
161151
|
}
|
|
160514
161152
|
addRange($to, null, depth, content);
|
|
160515
|
-
return new
|
|
161153
|
+
return new Fragment53(content);
|
|
160516
161154
|
}
|
|
160517
161155
|
function replaceTwoWay($from, $to, depth) {
|
|
160518
161156
|
let content = [];
|
|
@@ -160522,13 +161160,13 @@ function replaceTwoWay($from, $to, depth) {
|
|
|
160522
161160
|
addNode(close(type, replaceTwoWay($from, $to, depth + 1)), content);
|
|
160523
161161
|
}
|
|
160524
161162
|
addRange($to, null, depth, content);
|
|
160525
|
-
return new
|
|
161163
|
+
return new Fragment53(content);
|
|
160526
161164
|
}
|
|
160527
161165
|
function prepareSliceForReplace(slice2, $along) {
|
|
160528
161166
|
let extra = $along.depth - slice2.openStart, parent = $along.node(extra);
|
|
160529
161167
|
let node = parent.copy(slice2.content);
|
|
160530
161168
|
for (let i2 = extra - 1; i2 >= 0; i2--)
|
|
160531
|
-
node = $along.node(i2).copy(
|
|
161169
|
+
node = $along.node(i2).copy(Fragment53.from(node));
|
|
160532
161170
|
return {
|
|
160533
161171
|
start: node.resolveNoCache(slice2.openStart + extra),
|
|
160534
161172
|
end: node.resolveNoCache(node.content.size - slice2.openEnd - extra)
|
|
@@ -160867,7 +161505,7 @@ var Node2 = class _Node {
|
|
|
160867
161505
|
this.type = type;
|
|
160868
161506
|
this.attrs = attrs;
|
|
160869
161507
|
this.marks = marks;
|
|
160870
|
-
this.content = content ||
|
|
161508
|
+
this.content = content || Fragment53.empty;
|
|
160871
161509
|
}
|
|
160872
161510
|
/**
|
|
160873
161511
|
The array of this node's child nodes.
|
|
@@ -161172,7 +161810,7 @@ var Node2 = class _Node {
|
|
|
161172
161810
|
can optionally pass `start` and `end` indices into the
|
|
161173
161811
|
replacement fragment.
|
|
161174
161812
|
*/
|
|
161175
|
-
canReplace(from2, to, replacement =
|
|
161813
|
+
canReplace(from2, to, replacement = Fragment53.empty, start = 0, end = replacement.childCount) {
|
|
161176
161814
|
let one = this.contentMatchAt(from2).matchFragment(replacement, start, end);
|
|
161177
161815
|
let two = one && one.matchFragment(this.content, to);
|
|
161178
161816
|
if (!two || !two.validEnd)
|
|
@@ -161254,7 +161892,7 @@ var Node2 = class _Node {
|
|
|
161254
161892
|
throw new RangeError("Invalid text node in JSON");
|
|
161255
161893
|
return schema.text(json.text, marks);
|
|
161256
161894
|
}
|
|
161257
|
-
let content =
|
|
161895
|
+
let content = Fragment53.fromJSON(schema, json.content);
|
|
161258
161896
|
let node = schema.nodeType(json.type).create(json.attrs, content, marks);
|
|
161259
161897
|
node.type.checkAttrs(node.attrs);
|
|
161260
161898
|
return node;
|
|
@@ -161396,7 +162034,7 @@ var ContentMatch = class _ContentMatch {
|
|
|
161396
162034
|
function search(match2, types) {
|
|
161397
162035
|
let finished = match2.matchFragment(after, startIndex);
|
|
161398
162036
|
if (finished && (!toEnd || finished.validEnd))
|
|
161399
|
-
return
|
|
162037
|
+
return Fragment53.from(types.map((tp) => tp.createAndFill()));
|
|
161400
162038
|
for (let i2 = 0; i2 < match2.next.length; i2++) {
|
|
161401
162039
|
let { type, next } = match2.next[i2];
|
|
161402
162040
|
if (!(type.isText || type.hasRequiredAttrs()) && seen.indexOf(next) == -1) {
|
|
@@ -161848,7 +162486,7 @@ var NodeType = class _NodeType {
|
|
|
161848
162486
|
create(attrs = null, content, marks) {
|
|
161849
162487
|
if (this.isText)
|
|
161850
162488
|
throw new Error("NodeType.create can't construct text nodes");
|
|
161851
|
-
return new Node2(this, this.computeAttrs(attrs),
|
|
162489
|
+
return new Node2(this, this.computeAttrs(attrs), Fragment53.from(content), Mark.setFrom(marks));
|
|
161852
162490
|
}
|
|
161853
162491
|
/**
|
|
161854
162492
|
Like [`create`](https://prosemirror.net/docs/ref/#model.NodeType.create), but check the given content
|
|
@@ -161856,7 +162494,7 @@ var NodeType = class _NodeType {
|
|
|
161856
162494
|
if it doesn't match.
|
|
161857
162495
|
*/
|
|
161858
162496
|
createChecked(attrs = null, content, marks) {
|
|
161859
|
-
content =
|
|
162497
|
+
content = Fragment53.from(content);
|
|
161860
162498
|
this.checkContent(content);
|
|
161861
162499
|
return new Node2(this, this.computeAttrs(attrs), content, Mark.setFrom(marks));
|
|
161862
162500
|
}
|
|
@@ -161870,7 +162508,7 @@ var NodeType = class _NodeType {
|
|
|
161870
162508
|
*/
|
|
161871
162509
|
createAndFill(attrs = null, content, marks) {
|
|
161872
162510
|
attrs = this.computeAttrs(attrs);
|
|
161873
|
-
content =
|
|
162511
|
+
content = Fragment53.from(content);
|
|
161874
162512
|
if (content.size) {
|
|
161875
162513
|
let before = this.contentMatch.fillBefore(content);
|
|
161876
162514
|
if (!before)
|
|
@@ -161878,7 +162516,7 @@ var NodeType = class _NodeType {
|
|
|
161878
162516
|
content = before.append(content);
|
|
161879
162517
|
}
|
|
161880
162518
|
let matched = this.contentMatch.matchFragment(content);
|
|
161881
|
-
let after = matched && matched.fillBefore(
|
|
162519
|
+
let after = matched && matched.fillBefore(Fragment53.empty, true);
|
|
161882
162520
|
if (!after)
|
|
161883
162521
|
return null;
|
|
161884
162522
|
return new Node2(this, attrs, content.append(after), Mark.setFrom(marks));
|
|
@@ -162342,7 +162980,7 @@ var NodeContext = class {
|
|
|
162342
162980
|
if (!this.match) {
|
|
162343
162981
|
if (!this.type)
|
|
162344
162982
|
return [];
|
|
162345
|
-
let fill = this.type.contentMatch.fillBefore(
|
|
162983
|
+
let fill = this.type.contentMatch.fillBefore(Fragment53.from(node));
|
|
162346
162984
|
if (fill) {
|
|
162347
162985
|
this.match = this.type.contentMatch.matchFragment(fill);
|
|
162348
162986
|
} else {
|
|
@@ -162368,9 +163006,9 @@ var NodeContext = class {
|
|
|
162368
163006
|
this.content[this.content.length - 1] = text2.withText(text2.text.slice(0, text2.text.length - m2[0].length));
|
|
162369
163007
|
}
|
|
162370
163008
|
}
|
|
162371
|
-
let content =
|
|
163009
|
+
let content = Fragment53.from(this.content);
|
|
162372
163010
|
if (!openEnd && this.match)
|
|
162373
|
-
content = content.append(this.match.fillBefore(
|
|
163011
|
+
content = content.append(this.match.fillBefore(Fragment53.empty, true));
|
|
162374
163012
|
return this.type ? this.type.create(this.attrs, content, this.marks) : content;
|
|
162375
163013
|
}
|
|
162376
163014
|
inlineContext(node) {
|
|
@@ -163386,7 +164024,7 @@ function mapFragment(fragment, f2, parent) {
|
|
|
163386
164024
|
child = f2(child, parent, i2);
|
|
163387
164025
|
mapped.push(child);
|
|
163388
164026
|
}
|
|
163389
|
-
return
|
|
164027
|
+
return Fragment53.fromArray(mapped);
|
|
163390
164028
|
}
|
|
163391
164029
|
var AddMarkStep = class _AddMarkStep extends Step {
|
|
163392
164030
|
/**
|
|
@@ -163503,7 +164141,7 @@ var AddNodeMarkStep = class _AddNodeMarkStep extends Step {
|
|
|
163503
164141
|
if (!node)
|
|
163504
164142
|
return StepResult.fail("No node at mark step's position");
|
|
163505
164143
|
let updated = node.type.create(node.attrs, null, this.mark.addToSet(node.marks));
|
|
163506
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(
|
|
164144
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(Fragment53.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
163507
164145
|
}
|
|
163508
164146
|
invert(doc3) {
|
|
163509
164147
|
let node = doc3.nodeAt(this.pos);
|
|
@@ -163549,7 +164187,7 @@ var RemoveNodeMarkStep = class _RemoveNodeMarkStep extends Step {
|
|
|
163549
164187
|
if (!node)
|
|
163550
164188
|
return StepResult.fail("No node at mark step's position");
|
|
163551
164189
|
let updated = node.type.create(node.attrs, null, this.mark.removeFromSet(node.marks));
|
|
163552
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(
|
|
164190
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(Fragment53.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
163553
164191
|
}
|
|
163554
164192
|
invert(doc3) {
|
|
163555
164193
|
let node = doc3.nodeAt(this.pos);
|
|
@@ -163814,7 +164452,7 @@ function clearIncompatible(tr2, pos, parentType, match2 = parentType.contentMatc
|
|
|
163814
164452
|
let m2, newline = /\r?\n|\r/g, slice2;
|
|
163815
164453
|
while (m2 = newline.exec(child.text)) {
|
|
163816
164454
|
if (!slice2)
|
|
163817
|
-
slice2 = new Slice2(
|
|
164455
|
+
slice2 = new Slice2(Fragment53.from(parentType.schema.text(" ", parentType.allowedMarks(child.marks))), 0, 0);
|
|
163818
164456
|
replSteps.push(new ReplaceStep(cur + m2.index, cur + m2.index + m2[0].length, slice2));
|
|
163819
164457
|
}
|
|
163820
164458
|
}
|
|
@@ -163822,7 +164460,7 @@ function clearIncompatible(tr2, pos, parentType, match2 = parentType.contentMatc
|
|
|
163822
164460
|
cur = end;
|
|
163823
164461
|
}
|
|
163824
164462
|
if (!match2.validEnd) {
|
|
163825
|
-
let fill = match2.fillBefore(
|
|
164463
|
+
let fill = match2.fillBefore(Fragment53.empty, true);
|
|
163826
164464
|
tr2.replace(cur, cur, new Slice2(fill, 0, 0));
|
|
163827
164465
|
}
|
|
163828
164466
|
for (let i2 = replSteps.length - 1; i2 >= 0; i2--)
|
|
@@ -163848,20 +164486,20 @@ function lift(tr2, range, target) {
|
|
|
163848
164486
|
let { $from, $to, depth } = range;
|
|
163849
164487
|
let gapStart = $from.before(depth + 1), gapEnd = $to.after(depth + 1);
|
|
163850
164488
|
let start = gapStart, end = gapEnd;
|
|
163851
|
-
let before =
|
|
164489
|
+
let before = Fragment53.empty, openStart = 0;
|
|
163852
164490
|
for (let d2 = depth, splitting = false; d2 > target; d2--)
|
|
163853
164491
|
if (splitting || $from.index(d2) > 0) {
|
|
163854
164492
|
splitting = true;
|
|
163855
|
-
before =
|
|
164493
|
+
before = Fragment53.from($from.node(d2).copy(before));
|
|
163856
164494
|
openStart++;
|
|
163857
164495
|
} else {
|
|
163858
164496
|
start--;
|
|
163859
164497
|
}
|
|
163860
|
-
let after =
|
|
164498
|
+
let after = Fragment53.empty, openEnd = 0;
|
|
163861
164499
|
for (let d2 = depth, splitting = false; d2 > target; d2--)
|
|
163862
164500
|
if (splitting || $to.after(d2 + 1) < $to.end(d2)) {
|
|
163863
164501
|
splitting = true;
|
|
163864
|
-
after =
|
|
164502
|
+
after = Fragment53.from($to.node(d2).copy(after));
|
|
163865
164503
|
openEnd++;
|
|
163866
164504
|
} else {
|
|
163867
164505
|
end++;
|
|
@@ -163901,14 +164539,14 @@ function findWrappingInside(range, type) {
|
|
|
163901
164539
|
return inside;
|
|
163902
164540
|
}
|
|
163903
164541
|
function wrap(tr2, range, wrappers) {
|
|
163904
|
-
let content =
|
|
164542
|
+
let content = Fragment53.empty;
|
|
163905
164543
|
for (let i2 = wrappers.length - 1; i2 >= 0; i2--) {
|
|
163906
164544
|
if (content.size) {
|
|
163907
164545
|
let match2 = wrappers[i2].type.contentMatch.matchFragment(content);
|
|
163908
164546
|
if (!match2 || !match2.validEnd)
|
|
163909
164547
|
throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper");
|
|
163910
164548
|
}
|
|
163911
|
-
content =
|
|
164549
|
+
content = Fragment53.from(wrappers[i2].type.create(wrappers[i2].attrs, content));
|
|
163912
164550
|
}
|
|
163913
164551
|
let start = range.start, end = range.end;
|
|
163914
164552
|
tr2.step(new ReplaceAroundStep(start, end, start, end, new Slice2(content, 0, 0), wrappers.length, true));
|
|
@@ -163933,7 +164571,7 @@ function setBlockType(tr2, from2, to, type, attrs) {
|
|
|
163933
164571
|
clearIncompatible(tr2, tr2.mapping.slice(mapFrom).map(pos, 1), type, void 0, convertNewlines === null);
|
|
163934
164572
|
let mapping = tr2.mapping.slice(mapFrom);
|
|
163935
164573
|
let startM = mapping.map(pos, 1), endM = mapping.map(pos + node.nodeSize, 1);
|
|
163936
|
-
tr2.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice2(
|
|
164574
|
+
tr2.step(new ReplaceAroundStep(startM, endM, startM + 1, endM - 1, new Slice2(Fragment53.from(type.create(attrsHere, null, node.marks)), 0, 0), 1, true));
|
|
163937
164575
|
if (convertNewlines === true)
|
|
163938
164576
|
replaceNewlines(tr2, node, pos, mapFrom);
|
|
163939
164577
|
return false;
|
|
@@ -163974,7 +164612,7 @@ function setNodeMarkup(tr2, pos, type, attrs, marks) {
|
|
|
163974
164612
|
return tr2.replaceWith(pos, pos + node.nodeSize, newNode);
|
|
163975
164613
|
if (!type.validContent(node.content))
|
|
163976
164614
|
throw new RangeError("Invalid content for node type " + type.name);
|
|
163977
|
-
tr2.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice2(
|
|
164615
|
+
tr2.step(new ReplaceAroundStep(pos, pos + node.nodeSize, pos + 1, pos + node.nodeSize - 1, new Slice2(Fragment53.from(newNode), 0, 0), 1, true));
|
|
163978
164616
|
}
|
|
163979
164617
|
function canSplit(doc3, pos, depth = 1, typesAfter) {
|
|
163980
164618
|
let $pos = doc3.resolve(pos), base2 = $pos.depth - depth;
|
|
@@ -163998,11 +164636,11 @@ function canSplit(doc3, pos, depth = 1, typesAfter) {
|
|
|
163998
164636
|
return $pos.node(base2).canReplaceWith(index2, index2, baseType ? baseType.type : $pos.node(base2 + 1).type);
|
|
163999
164637
|
}
|
|
164000
164638
|
function split(tr2, pos, depth = 1, typesAfter) {
|
|
164001
|
-
let $pos = tr2.doc.resolve(pos), before =
|
|
164639
|
+
let $pos = tr2.doc.resolve(pos), before = Fragment53.empty, after = Fragment53.empty;
|
|
164002
164640
|
for (let d2 = $pos.depth, e3 = $pos.depth - depth, i2 = depth - 1; d2 > e3; d2--, i2--) {
|
|
164003
|
-
before =
|
|
164641
|
+
before = Fragment53.from($pos.node(d2).copy(before));
|
|
164004
164642
|
let typeAfter = typesAfter && typesAfter[i2];
|
|
164005
|
-
after =
|
|
164643
|
+
after = Fragment53.from(typeAfter ? typeAfter.type.create(typeAfter.attrs, after) : $pos.node(d2).copy(after));
|
|
164006
164644
|
}
|
|
164007
164645
|
tr2.step(new ReplaceStep(pos, pos, new Slice2(before.append(after), depth, depth), true));
|
|
164008
164646
|
}
|
|
@@ -164141,7 +164779,7 @@ var Fitter = class {
|
|
|
164141
164779
|
this.$to = $to;
|
|
164142
164780
|
this.unplaced = unplaced;
|
|
164143
164781
|
this.frontier = [];
|
|
164144
|
-
this.placed =
|
|
164782
|
+
this.placed = Fragment53.empty;
|
|
164145
164783
|
for (let i2 = 0; i2 <= $from.depth; i2++) {
|
|
164146
164784
|
let node = $from.node(i2);
|
|
164147
164785
|
this.frontier.push({
|
|
@@ -164150,7 +164788,7 @@ var Fitter = class {
|
|
|
164150
164788
|
});
|
|
164151
164789
|
}
|
|
164152
164790
|
for (let i2 = $from.depth; i2 > 0; i2--)
|
|
164153
|
-
this.placed =
|
|
164791
|
+
this.placed = Fragment53.from($from.node(i2).copy(this.placed));
|
|
164154
164792
|
}
|
|
164155
164793
|
get depth() {
|
|
164156
164794
|
return this.frontier.length - 1;
|
|
@@ -164207,7 +164845,7 @@ var Fitter = class {
|
|
|
164207
164845
|
let first2 = fragment.firstChild;
|
|
164208
164846
|
for (let frontierDepth = this.depth; frontierDepth >= 0; frontierDepth--) {
|
|
164209
164847
|
let { type, match: match2 } = this.frontier[frontierDepth], wrap2, inject = null;
|
|
164210
|
-
if (pass == 1 && (first2 ? match2.matchType(first2.type) || (inject = match2.fillBefore(
|
|
164848
|
+
if (pass == 1 && (first2 ? match2.matchType(first2.type) || (inject = match2.fillBefore(Fragment53.from(first2), false)) : parent && type.compatibleContent(parent.type)))
|
|
164211
164849
|
return { sliceDepth, frontierDepth, parent, inject };
|
|
164212
164850
|
else if (pass == 2 && first2 && (wrap2 = match2.findWrapping(first2.type)))
|
|
164213
164851
|
return { sliceDepth, frontierDepth, parent, wrap: wrap2 };
|
|
@@ -164267,7 +164905,7 @@ var Fitter = class {
|
|
|
164267
164905
|
let toEnd = taken == fragment.childCount;
|
|
164268
164906
|
if (!toEnd)
|
|
164269
164907
|
openEndCount = -1;
|
|
164270
|
-
this.placed = addToFragment(this.placed, frontierDepth,
|
|
164908
|
+
this.placed = addToFragment(this.placed, frontierDepth, Fragment53.from(add2));
|
|
164271
164909
|
this.frontier[frontierDepth].match = match2;
|
|
164272
164910
|
if (toEnd && openEndCount < 0 && parent && parent.type == this.frontier[this.depth].type && this.frontier.length > 1)
|
|
164273
164911
|
this.closeFrontierNode();
|
|
@@ -164323,12 +164961,12 @@ var Fitter = class {
|
|
|
164323
164961
|
openFrontierNode(type, attrs = null, content) {
|
|
164324
164962
|
let top = this.frontier[this.depth];
|
|
164325
164963
|
top.match = top.match.matchType(type);
|
|
164326
|
-
this.placed = addToFragment(this.placed, this.depth,
|
|
164964
|
+
this.placed = addToFragment(this.placed, this.depth, Fragment53.from(type.create(attrs, content)));
|
|
164327
164965
|
this.frontier.push({ type, match: type.contentMatch });
|
|
164328
164966
|
}
|
|
164329
164967
|
closeFrontierNode() {
|
|
164330
164968
|
let open = this.frontier.pop();
|
|
164331
|
-
let add2 = open.match.fillBefore(
|
|
164969
|
+
let add2 = open.match.fillBefore(Fragment53.empty, true);
|
|
164332
164970
|
if (add2.childCount)
|
|
164333
164971
|
this.placed = addToFragment(this.placed, this.frontier.length, add2);
|
|
164334
164972
|
}
|
|
@@ -164357,7 +164995,7 @@ function closeNodeStart(node, openStart, openEnd) {
|
|
|
164357
164995
|
if (openStart > 0) {
|
|
164358
164996
|
frag = node.type.contentMatch.fillBefore(frag).append(frag);
|
|
164359
164997
|
if (openEnd <= 0)
|
|
164360
|
-
frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(
|
|
164998
|
+
frag = frag.append(node.type.contentMatch.matchFragment(frag).fillBefore(Fragment53.empty, true));
|
|
164361
164999
|
}
|
|
164362
165000
|
return node.copy(frag);
|
|
164363
165001
|
}
|
|
@@ -164449,7 +165087,7 @@ function closeFragment(fragment, depth, oldOpen, newOpen, parent) {
|
|
|
164449
165087
|
if (depth > newOpen) {
|
|
164450
165088
|
let match2 = parent.contentMatchAt(0);
|
|
164451
165089
|
let start = match2.fillBefore(fragment).append(fragment);
|
|
164452
|
-
fragment = start.append(match2.matchFragment(start).fillBefore(
|
|
165090
|
+
fragment = start.append(match2.matchFragment(start).fillBefore(Fragment53.empty, true));
|
|
164453
165091
|
}
|
|
164454
165092
|
return fragment;
|
|
164455
165093
|
}
|
|
@@ -164459,7 +165097,7 @@ function replaceRangeWith(tr2, from2, to, node) {
|
|
|
164459
165097
|
if (point != null)
|
|
164460
165098
|
from2 = to = point;
|
|
164461
165099
|
}
|
|
164462
|
-
tr2.replaceRange(from2, to, new Slice2(
|
|
165100
|
+
tr2.replaceRange(from2, to, new Slice2(Fragment53.from(node), 0, 0));
|
|
164463
165101
|
}
|
|
164464
165102
|
function deleteRange(tr2, from2, to) {
|
|
164465
165103
|
let $from = tr2.doc.resolve(from2), $to = tr2.doc.resolve(to);
|
|
@@ -164507,7 +165145,7 @@ var AttrStep = class _AttrStep extends Step {
|
|
|
164507
165145
|
attrs[name] = node.attrs[name];
|
|
164508
165146
|
attrs[this.attr] = this.value;
|
|
164509
165147
|
let updated = node.type.create(attrs, null, node.marks);
|
|
164510
|
-
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(
|
|
165148
|
+
return StepResult.fromReplace(doc3, this.pos, this.pos + 1, new Slice2(Fragment53.from(updated), 0, node.isLeaf ? 0 : 1));
|
|
164511
165149
|
}
|
|
164512
165150
|
getMap() {
|
|
164513
165151
|
return StepMap.empty;
|
|
@@ -164642,7 +165280,7 @@ var Transform = class {
|
|
|
164642
165280
|
fragment, node, or array of nodes.
|
|
164643
165281
|
*/
|
|
164644
165282
|
replaceWith(from2, to, content) {
|
|
164645
|
-
return this.replace(from2, to, new Slice2(
|
|
165283
|
+
return this.replace(from2, to, new Slice2(Fragment53.from(content), 0, 0));
|
|
164646
165284
|
}
|
|
164647
165285
|
/**
|
|
164648
165286
|
Delete the content between the given positions.
|
|
@@ -165144,7 +165782,7 @@ var NodeSelection = class _NodeSelection extends Selection {
|
|
|
165144
165782
|
return new _NodeSelection($pos);
|
|
165145
165783
|
}
|
|
165146
165784
|
content() {
|
|
165147
|
-
return new Slice2(
|
|
165785
|
+
return new Slice2(Fragment53.from(this.node), 0, 0);
|
|
165148
165786
|
}
|
|
165149
165787
|
eq(other) {
|
|
165150
165788
|
return other instanceof _NodeSelection && other.anchor == this.anchor;
|
|
@@ -166966,7 +167604,7 @@ var NodeViewDesc = class _NodeViewDesc extends ViewDesc {
|
|
|
166966
167604
|
}
|
|
166967
167605
|
}
|
|
166968
167606
|
if (!rule2.contentElement)
|
|
166969
|
-
rule2.getContent = () =>
|
|
167607
|
+
rule2.getContent = () => Fragment53.empty;
|
|
166970
167608
|
}
|
|
166971
167609
|
return rule2;
|
|
166972
167610
|
}
|
|
@@ -168278,7 +168916,7 @@ function parseFromClipboard(view, text2, html, plainText, $context) {
|
|
|
168278
168916
|
text2 = f2(text2, inCode || plainText, view);
|
|
168279
168917
|
});
|
|
168280
168918
|
if (inCode) {
|
|
168281
|
-
slice2 = new Slice2(
|
|
168919
|
+
slice2 = new Slice2(Fragment53.from(view.state.schema.text(text2.replace(/\r\n?/g, "\n"))), 0, 0);
|
|
168282
168920
|
view.someProp("transformPasted", (f2) => {
|
|
168283
168921
|
slice2 = f2(slice2, view, true);
|
|
168284
168922
|
});
|
|
@@ -168372,13 +169010,13 @@ function normalizeSiblings(fragment, $context) {
|
|
|
168372
169010
|
}
|
|
168373
169011
|
});
|
|
168374
169012
|
if (result)
|
|
168375
|
-
return
|
|
169013
|
+
return Fragment53.from(result);
|
|
168376
169014
|
}
|
|
168377
169015
|
return fragment;
|
|
168378
169016
|
}
|
|
168379
169017
|
function withWrappers(node, wrap2, from2 = 0) {
|
|
168380
169018
|
for (let i2 = wrap2.length - 1; i2 >= from2; i2--)
|
|
168381
|
-
node = wrap2[i2].create(null,
|
|
169019
|
+
node = wrap2[i2].create(null, Fragment53.from(node));
|
|
168382
169020
|
return node;
|
|
168383
169021
|
}
|
|
168384
169022
|
function addToSibling(wrap2, lastWrap, node, sibling, depth) {
|
|
@@ -168388,14 +169026,14 @@ function addToSibling(wrap2, lastWrap, node, sibling, depth) {
|
|
|
168388
169026
|
return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));
|
|
168389
169027
|
let match2 = sibling.contentMatchAt(sibling.childCount);
|
|
168390
169028
|
if (match2.matchType(depth == wrap2.length - 1 ? node.type : wrap2[depth + 1]))
|
|
168391
|
-
return sibling.copy(sibling.content.append(
|
|
169029
|
+
return sibling.copy(sibling.content.append(Fragment53.from(withWrappers(node, wrap2, depth + 1))));
|
|
168392
169030
|
}
|
|
168393
169031
|
}
|
|
168394
169032
|
function closeRight(node, depth) {
|
|
168395
169033
|
if (depth == 0)
|
|
168396
169034
|
return node;
|
|
168397
169035
|
let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));
|
|
168398
|
-
let fill = node.contentMatchAt(node.childCount).fillBefore(
|
|
169036
|
+
let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment53.empty, true);
|
|
168399
169037
|
return node.copy(fragment.append(fill));
|
|
168400
169038
|
}
|
|
168401
169039
|
function closeRange(fragment, side, from2, to, depth, openEnd) {
|
|
@@ -168405,7 +169043,7 @@ function closeRange(fragment, side, from2, to, depth, openEnd) {
|
|
|
168405
169043
|
if (depth < to - 1)
|
|
168406
169044
|
inner = closeRange(inner, side, from2, to, depth + 1, openEnd);
|
|
168407
169045
|
if (depth >= from2)
|
|
168408
|
-
inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner) : inner.append(node.contentMatchAt(node.childCount).fillBefore(
|
|
169046
|
+
inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner) : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment53.empty, true));
|
|
168409
169047
|
return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));
|
|
168410
169048
|
}
|
|
168411
169049
|
function closeSlice(slice2, openStart, openEnd) {
|
|
@@ -168475,7 +169113,7 @@ function addContext(slice2, context) {
|
|
|
168475
169113
|
let type = schema.nodes[array[i2]];
|
|
168476
169114
|
if (!type || type.hasRequiredAttrs())
|
|
168477
169115
|
break;
|
|
168478
|
-
content =
|
|
169116
|
+
content = Fragment53.from(type.create(array[i2 + 1], content));
|
|
168479
169117
|
openStart++;
|
|
168480
169118
|
openEnd++;
|
|
168481
169119
|
}
|
|
@@ -170334,7 +170972,7 @@ function isMarkChange(cur, prev) {
|
|
|
170334
170972
|
let updated = [];
|
|
170335
170973
|
for (let i2 = 0; i2 < prev.childCount; i2++)
|
|
170336
170974
|
updated.push(update(prev.child(i2)));
|
|
170337
|
-
if (
|
|
170975
|
+
if (Fragment53.from(updated).eq(cur))
|
|
170338
170976
|
return { mark, type };
|
|
170339
170977
|
}
|
|
170340
170978
|
function looksLikeBackspace(old, start, end, $newStart, $newEnd) {
|
|
@@ -171484,10 +172122,10 @@ function deleteBarrier(state, $cut, dispatch, dir) {
|
|
|
171484
172122
|
let canDelAfter = !isolated && $cut.parent.canReplace($cut.index(), $cut.index() + 1);
|
|
171485
172123
|
if (canDelAfter && (conn = (match2 = before.contentMatchAt(before.childCount)).findWrapping(after.type)) && match2.matchType(conn[0] || after.type).validEnd) {
|
|
171486
172124
|
if (dispatch) {
|
|
171487
|
-
let end = $cut.pos + after.nodeSize, wrap2 =
|
|
172125
|
+
let end = $cut.pos + after.nodeSize, wrap2 = Fragment53.empty;
|
|
171488
172126
|
for (let i2 = conn.length - 1; i2 >= 0; i2--)
|
|
171489
|
-
wrap2 =
|
|
171490
|
-
wrap2 =
|
|
172127
|
+
wrap2 = Fragment53.from(conn[i2].create(null, wrap2));
|
|
172128
|
+
wrap2 = Fragment53.from(before.copy(wrap2));
|
|
171491
172129
|
let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - 1, end, $cut.pos, end, new Slice2(wrap2, 1, 0), conn.length, true));
|
|
171492
172130
|
let $joinAt = tr2.doc.resolve(end + 2 * conn.length);
|
|
171493
172131
|
if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
|
|
@@ -171516,9 +172154,9 @@ function deleteBarrier(state, $cut, dispatch, dir) {
|
|
|
171516
172154
|
afterDepth++;
|
|
171517
172155
|
if (at.canReplace(at.childCount, at.childCount, afterText.content)) {
|
|
171518
172156
|
if (dispatch) {
|
|
171519
|
-
let end =
|
|
172157
|
+
let end = Fragment53.empty;
|
|
171520
172158
|
for (let i2 = wrap2.length - 1; i2 >= 0; i2--)
|
|
171521
|
-
end =
|
|
172159
|
+
end = Fragment53.from(wrap2[i2].copy(end));
|
|
171522
172160
|
let tr2 = state.tr.step(new ReplaceAroundStep($cut.pos - wrap2.length, $cut.pos + after.nodeSize, $cut.pos + afterDepth, $cut.pos + after.nodeSize - afterDepth, new Slice2(end, wrap2.length, 0), 0, true));
|
|
171523
172161
|
dispatch(tr2.scrollIntoView());
|
|
171524
172162
|
}
|
|
@@ -171635,9 +172273,9 @@ function wrapRangeInList(tr2, range, listType, attrs = null) {
|
|
|
171635
172273
|
return true;
|
|
171636
172274
|
}
|
|
171637
172275
|
function doWrapInList(tr2, range, wrappers, joinBefore, listType) {
|
|
171638
|
-
let content =
|
|
172276
|
+
let content = Fragment53.empty;
|
|
171639
172277
|
for (let i2 = wrappers.length - 1; i2 >= 0; i2--)
|
|
171640
|
-
content =
|
|
172278
|
+
content = Fragment53.from(wrappers[i2].type.create(wrappers[i2].attrs, content));
|
|
171641
172279
|
tr2.step(new ReplaceAroundStep(range.start - (joinBefore ? 2 : 0), range.end, range.start, range.end, new Slice2(content, 0, 0), wrappers.length, true));
|
|
171642
172280
|
let found2 = 0;
|
|
171643
172281
|
for (let i2 = 0; i2 < wrappers.length; i2++)
|
|
@@ -171671,7 +172309,7 @@ function liftListItem(itemType) {
|
|
|
171671
172309
|
function liftToOuterList(state, dispatch, itemType, range) {
|
|
171672
172310
|
let tr2 = state.tr, end = range.end, endOfList = range.$to.end(range.depth);
|
|
171673
172311
|
if (end < endOfList) {
|
|
171674
|
-
tr2.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice2(
|
|
172312
|
+
tr2.step(new ReplaceAroundStep(end - 1, endOfList, end, endOfList, new Slice2(Fragment53.from(itemType.create(null, range.parent.copy())), 1, 0), 1, true));
|
|
171675
172313
|
range = new NodeRange(tr2.doc.resolve(range.$from.pos), tr2.doc.resolve(endOfList), range.depth);
|
|
171676
172314
|
}
|
|
171677
172315
|
const target = liftTarget(range);
|
|
@@ -171695,10 +172333,10 @@ function liftOutOfList(state, dispatch, range) {
|
|
|
171695
172333
|
return false;
|
|
171696
172334
|
let atStart = range.startIndex == 0, atEnd = range.endIndex == list.childCount;
|
|
171697
172335
|
let parent = $start.node(-1), indexBefore = $start.index(-1);
|
|
171698
|
-
if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ?
|
|
172336
|
+
if (!parent.canReplace(indexBefore + (atStart ? 0 : 1), indexBefore + 1, item.content.append(atEnd ? Fragment53.empty : Fragment53.from(list))))
|
|
171699
172337
|
return false;
|
|
171700
172338
|
let start = $start.pos, end = start + item.nodeSize;
|
|
171701
|
-
tr2.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice2((atStart ?
|
|
172339
|
+
tr2.step(new ReplaceAroundStep(start - (atStart ? 1 : 0), end + (atEnd ? 1 : 0), start + 1, end - 1, new Slice2((atStart ? Fragment53.empty : Fragment53.from(list.copy(Fragment53.empty))).append(atEnd ? Fragment53.empty : Fragment53.from(list.copy(Fragment53.empty))), atStart ? 0 : 1, atEnd ? 0 : 1), atStart ? 0 : 1));
|
|
171702
172340
|
dispatch(tr2.scrollIntoView());
|
|
171703
172341
|
return true;
|
|
171704
172342
|
}
|
|
@@ -171716,8 +172354,8 @@ function sinkListItem(itemType) {
|
|
|
171716
172354
|
return false;
|
|
171717
172355
|
if (dispatch) {
|
|
171718
172356
|
let nestedBefore = nodeBefore.lastChild && nodeBefore.lastChild.type == parent.type;
|
|
171719
|
-
let inner =
|
|
171720
|
-
let slice2 = new Slice2(
|
|
172357
|
+
let inner = Fragment53.from(nestedBefore ? itemType.create() : null);
|
|
172358
|
+
let slice2 = new Slice2(Fragment53.from(itemType.create(null, Fragment53.from(parent.type.create(null, inner)))), nestedBefore ? 3 : 1, 0);
|
|
171721
172359
|
let before = range.start, after = range.end;
|
|
171722
172360
|
dispatch(state.tr.step(new ReplaceAroundStep(before - (nestedBefore ? 3 : 1), after, before, after, slice2, 1, true)).scrollIntoView());
|
|
171723
172361
|
}
|
|
@@ -172348,7 +172986,7 @@ function inputRulesPlugin(props2) {
|
|
|
172348
172986
|
if (typeof text2 === "string") {
|
|
172349
172987
|
text2 = text2;
|
|
172350
172988
|
} else {
|
|
172351
|
-
text2 = getHTMLFromFragment(
|
|
172989
|
+
text2 = getHTMLFromFragment(Fragment53.from(text2), state.schema);
|
|
172352
172990
|
}
|
|
172353
172991
|
const { from: from2 } = simulatedInputMeta;
|
|
172354
172992
|
const to = from2 + text2.length;
|
|
@@ -172707,7 +173345,7 @@ function pasteRulesPlugin(props2) {
|
|
|
172707
173345
|
if (typeof text2 === "string") {
|
|
172708
173346
|
text2 = text2;
|
|
172709
173347
|
} else {
|
|
172710
|
-
text2 = getHTMLFromFragment(
|
|
173348
|
+
text2 = getHTMLFromFragment(Fragment53.from(text2), state.schema);
|
|
172711
173349
|
}
|
|
172712
173350
|
const { from: from3 } = simulatedPasteMeta;
|
|
172713
173351
|
const to2 = from3 + text2.length;
|
|
@@ -173408,7 +174046,7 @@ function elementFromString(value) {
|
|
|
173408
174046
|
return removeWhitespaces(html);
|
|
173409
174047
|
}
|
|
173410
174048
|
function createNodeFromContent(content, schema, options) {
|
|
173411
|
-
if (content instanceof Node2 || content instanceof
|
|
174049
|
+
if (content instanceof Node2 || content instanceof Fragment53) {
|
|
173412
174050
|
return content;
|
|
173413
174051
|
}
|
|
173414
174052
|
options = {
|
|
@@ -173422,7 +174060,7 @@ function createNodeFromContent(content, schema, options) {
|
|
|
173422
174060
|
try {
|
|
173423
174061
|
const isArrayContent = Array.isArray(content) && content.length > 0;
|
|
173424
174062
|
if (isArrayContent) {
|
|
173425
|
-
return
|
|
174063
|
+
return Fragment53.fromArray(content.map((item) => schema.nodeFromJSON(item)));
|
|
173426
174064
|
}
|
|
173427
174065
|
const node = schema.nodeFromJSON(content);
|
|
173428
174066
|
if (options.errorOnInvalidContent) {
|
|
@@ -173567,7 +174205,7 @@ var insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, editor
|
|
|
173567
174205
|
if (isOnlyTextContent) {
|
|
173568
174206
|
if (Array.isArray(value)) {
|
|
173569
174207
|
newContent = value.map((v2) => v2.text || "").join("");
|
|
173570
|
-
} else if (value instanceof
|
|
174208
|
+
} else if (value instanceof Fragment53) {
|
|
173571
174209
|
let text2 = "";
|
|
173572
174210
|
value.forEach((node) => {
|
|
173573
174211
|
if (node.text) {
|
|
@@ -174366,10 +175004,10 @@ var splitListItem = (typeOrName, overrideAttrs = {}) => ({ tr: tr2, state, dispa
|
|
|
174366
175004
|
return false;
|
|
174367
175005
|
}
|
|
174368
175006
|
if (dispatch) {
|
|
174369
|
-
let wrap2 =
|
|
175007
|
+
let wrap2 = Fragment53.empty;
|
|
174370
175008
|
const depthBefore = $from.index(-1) ? 1 : $from.index(-2) ? 2 : 3;
|
|
174371
175009
|
for (let d2 = $from.depth - depthBefore; d2 >= $from.depth - 3; d2 -= 1) {
|
|
174372
|
-
wrap2 =
|
|
175010
|
+
wrap2 = Fragment53.from($from.node(d2).copy(wrap2));
|
|
174373
175011
|
}
|
|
174374
175012
|
const depthAfter = $from.indexAfter(-1) < $from.node(-2).childCount ? 1 : $from.indexAfter(-2) < $from.node(-3).childCount ? 2 : 3;
|
|
174375
175013
|
const newNextTypeAttributes2 = {
|
|
@@ -174377,7 +175015,7 @@ var splitListItem = (typeOrName, overrideAttrs = {}) => ({ tr: tr2, state, dispa
|
|
|
174377
175015
|
...overrideAttrs
|
|
174378
175016
|
};
|
|
174379
175017
|
const nextType2 = ((_a = type.contentMatch.defaultType) === null || _a === void 0 ? void 0 : _a.createAndFill(newNextTypeAttributes2)) || void 0;
|
|
174380
|
-
wrap2 = wrap2.append(
|
|
175018
|
+
wrap2 = wrap2.append(Fragment53.from(type.createAndFill(null, nextType2) || void 0));
|
|
174381
175019
|
const start = $from.before($from.depth - (depthBefore - 1));
|
|
174382
175020
|
tr2.replace(start, $from.after(-depthAfter), new Slice2(wrap2, 4 - depthBefore, 0));
|
|
174383
175021
|
let sel = -1;
|
|
@@ -176678,9 +177316,9 @@ function beforeinput(view, event) {
|
|
|
176678
177316
|
let insert2 = $from.parent.contentMatchAt($from.index()).findWrapping(view.state.schema.nodes.text);
|
|
176679
177317
|
if (!insert2)
|
|
176680
177318
|
return false;
|
|
176681
|
-
let frag =
|
|
177319
|
+
let frag = Fragment53.empty;
|
|
176682
177320
|
for (let i2 = insert2.length - 1; i2 >= 0; i2--)
|
|
176683
|
-
frag =
|
|
177321
|
+
frag = Fragment53.from(insert2[i2].createAndFill(null, frag));
|
|
176684
177322
|
let tr2 = view.state.tr.replace($from.pos, $from.pos, new Slice2(frag, 0, 0));
|
|
176685
177323
|
tr2.setSelection(TextSelection.near(tr2.doc.resolve($from.pos + 1)));
|
|
176686
177324
|
view.dispatch(tr2);
|
|
@@ -180314,7 +180952,7 @@ function requireUseSyncExternalStoreShim_development() {
|
|
|
180314
180952
|
return x === y2 && (x !== 0 || 1 / x === 1 / y2) || x !== x && y2 !== y2;
|
|
180315
180953
|
}
|
|
180316
180954
|
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
180317
|
-
var
|
|
180955
|
+
var useState99 = React$1.useState, useEffect100 = React$1.useEffect, useLayoutEffect11 = React$1.useLayoutEffect, useDebugValue2 = React$1.useDebugValue;
|
|
180318
180956
|
var didWarnOld18Alpha = false;
|
|
180319
180957
|
var didWarnUncachedGetSnapshot = false;
|
|
180320
180958
|
function useSyncExternalStore7(subscribe, getSnapshot, getServerSnapshot) {
|
|
@@ -180336,7 +180974,7 @@ function requireUseSyncExternalStoreShim_development() {
|
|
|
180336
180974
|
}
|
|
180337
180975
|
}
|
|
180338
180976
|
}
|
|
180339
|
-
var _useState =
|
|
180977
|
+
var _useState = useState99({
|
|
180340
180978
|
inst: {
|
|
180341
180979
|
value,
|
|
180342
180980
|
getSnapshot
|
|
@@ -180351,7 +180989,7 @@ function requireUseSyncExternalStoreShim_development() {
|
|
|
180351
180989
|
});
|
|
180352
180990
|
}
|
|
180353
180991
|
}, [subscribe, value, getSnapshot]);
|
|
180354
|
-
|
|
180992
|
+
useEffect100(function() {
|
|
180355
180993
|
if (checkIfSnapshotChanged(inst)) {
|
|
180356
180994
|
forceUpdate({
|
|
180357
180995
|
inst
|
|
@@ -180616,7 +181254,7 @@ function requireWithSelector_development() {
|
|
|
180616
181254
|
}
|
|
180617
181255
|
var objectIs = typeof Object.is === "function" ? Object.is : is;
|
|
180618
181256
|
var useSyncExternalStore7 = shim2.useSyncExternalStore;
|
|
180619
|
-
var useRef81 = React$1.useRef,
|
|
181257
|
+
var useRef81 = React$1.useRef, useEffect100 = React$1.useEffect, useMemo92 = React$1.useMemo, useDebugValue2 = React$1.useDebugValue;
|
|
180620
181258
|
function useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {
|
|
180621
181259
|
var instRef = useRef81(null);
|
|
180622
181260
|
var inst;
|
|
@@ -180673,7 +181311,7 @@ function requireWithSelector_development() {
|
|
|
180673
181311
|
return [getSnapshotWithSelector, getServerSnapshotWithSelector];
|
|
180674
181312
|
}, [getSnapshot, getServerSnapshot, selector, isEqual]), getSelection2 = _useMemo[0], getServerSelection = _useMemo[1];
|
|
180675
181313
|
var value = useSyncExternalStore7(subscribe, getSelection2, getServerSelection);
|
|
180676
|
-
|
|
181314
|
+
useEffect100(function() {
|
|
180677
181315
|
inst.hasValue = true;
|
|
180678
181316
|
inst.value = value;
|
|
180679
181317
|
}, [value]);
|
|
@@ -186543,4 +187181,4 @@ lucide-react/dist/esm/lucide-react.mjs:
|
|
|
186543
187181
|
*)
|
|
186544
187182
|
*/
|
|
186545
187183
|
|
|
186546
|
-
export { AMBIENT_BACKGROUND_ROLES2 as AMBIENT_BACKGROUND_ROLES, ArrowDown, ArrowUp, BackgroundColorField, BackgroundGradientField, Badge2 as Badge, BlockApiProvider, Box, Button, CSS2 as CSS, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardHeader, CardTitle, Check, ChevronDown, ChevronLeft, ChevronRight, Collapsible2 as Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, Combobox, CommandMultiSelect, Content, ContentFieldsForm, ContentSpinner, Copy, DEFAULT_LAUNCH_READINESS_INPUT, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter, DialogHeader, DialogTitle2 as DialogTitle, DndContext, DropdownMenu2 as DropdownMenu, DropdownMenuContent2 as DropdownMenuContent, DropdownMenuItem2 as DropdownMenuItem, DropdownMenuLabel2 as DropdownMenuLabel, DropdownMenuSeparator2 as DropdownMenuSeparator, DropdownMenuTrigger2 as DropdownMenuTrigger, EDITABLE_SURFACE_FORWARDING_PROP, EMPTY_DOC, EditableBlockProvider, EditorChrome, EditorProvider, EllipsisVertical, EmptyState2 as EmptyState, EntryControllerProvider, EyeOff, FieldFrame, FixedBottomSurface, FormRenderer, GRADIENT_PRESETS, GripVertical, Image, ImagePlus, Input, KeyboardCode, LINKED_CONTENT_ENTRY_META_KEY, Label4 as Label, List2 as List, LoaderCircle, ManifestForm, Maximize2, MediaEditor, MediaEditorProvider, MediaPickerDialog, MediaPickerMini, Monitor, PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, PUBLIC_FILE_FIELD_KINDS, PageRenderer, Palette, PaletteProvider, Pencil, Plus, PointerSensor, PreviewDesignCoordinatorProvider, PreviewDesignHistoryOrderProvider, PreviewRichTextEditor, PreviewTextEditor, PreviewThemeOverlayProvider, ResizableSplitPane, RichText2 as RichText, RichTextEditorSurface, Root2, RotateCcw, SECTION_BACKGROUND_MIN_SOURCE_HEIGHT, SECTION_BACKGROUND_MIN_SOURCE_WIDTH, SITE_CHROME_CLASS_NAMES, SITE_CHROME_VISIBLE_HEADER_SELECTOR, SUBROUTE_KINDS, ScrollableDialogContent, SdkConfigProvider, Search, Select2 as Select, SelectContent2 as SelectContent, SelectItem2 as SelectItem, SelectTrigger2 as SelectTrigger, SelectValue2 as SelectValue, Separator2 as Separator, Settings, SiteChromeCustomizeProvider, SiteDocumentLayout, Smartphone, Sparkles, Surface, Tablet, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Text2 as Text, Textarea, ThemeScope, Trash2, TriangleAlert, Trigger, Upload, X, applyBackgroundOverrideContentPatch, applyCompiledRuntimeFieldsToContent, applyFeatureCardIconSuggestions, applyPageDesignEditorAction, applyResolvedSelections, asDesignBlockId, asRecord,
|
|
187184
|
+
export { AMBIENT_BACKGROUND_ROLES2 as AMBIENT_BACKGROUND_ROLES, ArrowDown, ArrowUp, BackgroundColorField, BackgroundGradientField, Badge2 as Badge, BlockApiProvider, Box, Button, CSS2 as CSS, Callout, CalloutDescription, CalloutTitle, Card, CardContent, CardHeader, CardTitle, Check, ChevronDown, ChevronLeft, ChevronRight, Collapsible2 as Collapsible, CollapsibleContent2 as CollapsibleContent, CollapsibleTrigger2 as CollapsibleTrigger, ColorPicker, Combobox, CommandMultiSelect, Content, ContentFieldsForm, ContentSpinner, Copy, DEFAULT_LAUNCH_READINESS_INPUT, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter, DialogHeader, DialogTitle2 as DialogTitle, DndContext, DropdownMenu2 as DropdownMenu, DropdownMenuContent2 as DropdownMenuContent, DropdownMenuItem2 as DropdownMenuItem, DropdownMenuLabel2 as DropdownMenuLabel, DropdownMenuSeparator2 as DropdownMenuSeparator, DropdownMenuTrigger2 as DropdownMenuTrigger, EDITABLE_SURFACE_FORWARDING_PROP, EMPTY_DOC, EditableBlockProvider, EditorChrome, EditorProvider, EllipsisVertical, EmptyState2 as EmptyState, EntryControllerProvider, EyeOff, FieldFrame, FixedBottomSurface, FormRenderer, GRADIENT_PRESETS, GripVertical, Image, ImagePlus, Input, KeyboardCode, LINKED_CONTENT_ENTRY_META_KEY, Label4 as Label, List2 as List, LoaderCircle, ManifestForm, Maximize2, MediaEditor, MediaEditorProvider, MediaPickerDialog, MediaPickerMini, Monitor, PAGE_DESIGN_EDITOR_STATE_FETCH_ERROR_MESSAGE, PUBLIC_FILE_FIELD_KINDS, PageRenderer, Palette, PaletteProvider, Pencil, Plus, PointerSensor, PreviewDesignCoordinatorProvider, PreviewDesignHistoryOrderProvider, PreviewRichTextEditor, PreviewTextEditor, PreviewThemeOverlayProvider, ResizableSplitPane, RichText2 as RichText, RichTextEditorSurface, Root2, RotateCcw, SECTION_BACKGROUND_MIN_SOURCE_HEIGHT, SECTION_BACKGROUND_MIN_SOURCE_WIDTH, SITE_CHROME_CLASS_NAMES, SITE_CHROME_VISIBLE_HEADER_SELECTOR, SUBROUTE_KINDS, ScrollableDialogContent, SdkConfigProvider, Search, Select2 as Select, SelectContent2 as SelectContent, SelectItem2 as SelectItem, SelectTrigger2 as SelectTrigger, SelectValue2 as SelectValue, Separator2 as Separator, Settings, SiteChromeCustomizeProvider, SiteDocumentLayout, Smartphone, Sparkles, Surface, Tablet, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Text2 as Text, Textarea, ThemeScope, Trash2, TriangleAlert, Trigger, Upload, X, applyBackgroundOverrideContentPatch, applyCompiledRuntimeFieldsToContent, applyFeatureCardIconSuggestions, applyPageDesignEditorAction, applyResolvedSelections, asDesignBlockId, asRecord, assertNever, assertNever5 as assertNever2, attachRenderableMediaAssetFields, augmentManifestWithStyleGroups, backgroundColorTokens, backgroundOverrideEquals, beginAutosaveBatch, buildApplySiteStyleSelectionBody, buildEditorModelRuntimeFieldsByBlockId, buildSiteChromeLookModels, buildThemeRuntime, buttonPersonalities, canCycleBackgroundOverrideValue, canRedoHistory, canUndoHistory, cancelPreview, classifyHistoryShortcut, classifyKnownMimeType, clearTypographyFontOverrides, clientComponentRegistry, closestCenter, cn, confirmAutosaveBatch, createBlock, createCustomBlockRegistry, createEditorInsertBlockCommand, createEditorRemoveBlockCommand, createEditorReorderBlocksCommand, createEntrySlotBlock, createFeatureCardIconKey, createHistoryState, createManifestFormAdapter, createManifestValidation, createMicrobatcher, createOptimisticActionRunner, createRoutingHelpers, createSnapshotFromPageRecord, createStoreBackend, createStyleConfiguratorState, curatedSiteStyles, cycleSiteChromeLookId, cycleableSiteChromeOptions, decodePublicProductCategorySelectorQuery, defaultBackgroundOverrideForMode, defaultSectionTransitionVariantForFamily, deleteBlock, deleteEntrySlotBlock, deriveLaunchReadiness, deriveRouteMetadataPresentation, deriveStyleConfiguratorCapabilities, deriveTransactionCapabilities, designRuntimeRulesForTheme, dismissNotices, dismissWarnings, emitMediaCropDebug, enabledBackgroundModes, enqueueTransaction, evaluateTypographyFontSlot, evaluateVisibility, expectParsedBrandedId, findButtonPersonality, findFooterLook, findPaletteVariant, findTypographyPreset, foldSubroute, formatSiteChromeBackgroundTokenLabel, getBlockDefinition, getBlockIconSemanticFallbackId, getClientRect, getCuratedSiteStyle, getDirectImageUrlForMediaAsset, getFeatureCardIconCompletion, getFieldIntent, getFooterLayout, getGeneratedBlockIconStyleState, getHeaderLayout, getHeaderStyle, getIconComponent, getIconPickerOptionsForPreset, getLinkedContentEntryMeta, getModalConfig, getPageDesignEditorState, getRichTextImagePositionFromTarget, gradientToCss, idleEditorTransactionQueueState, imagePoolForOverride, inferLegacyOfferingsPreviewGroupOrder, insertOrReplaceRichTextImage, isHeaderField, isIconPickerPreset, isInternalResolvedLinkValue, isKeyboardEvent, isKnownIconName, isNonEmptyValue, isObjectRecord2 as isObjectRecord, isOfferingsPreviewSourceKey, isPreviewingChange, isSupportedLoaderEndpoint, isSvgMimeType, isThemeV2NormalEditorRawStyleFieldName, isThemeV2NormalEditorRawStylePath, listBlockDescriptors, listContentTypes, listEntryPageContentSlots, lucide_react_exports, markApplyFailed, markApplySaved, markApplySaving, mergeBlockDescriptorsWithRegistry, mergeManifestWithSdkOptions, mutateBlockContent, normalEditorCuratedPromotedFieldPaths, normalizeOfferingsPreviewGroupOrder, normalizePickerSearchThreshold, normalizePublicApiLoaderParams, openRow, paletteOverridesSchema, paletteVariants, parseAspectRatioValue, parseBackgroundOverrideFromContent, parseBlockIconValue, parseMediaAssetId, parseSiteIconStyleGuideVersionId, parseSiteId, planBackgroundOverride, planBackgroundTransition, planPageDesignLayoutLookCompatibility, planSiteChromeFooterLayoutSelection, planSiteChromeLookSelection, planSiteDocument, planSiteStylePreviewChange, prefetchBlockData, previewAssistantEnabled, previewButtonPersonality, previewDesignHistoryDomainForCommand, previewFooterLook, previewHeaderLayout, previewHeaderStyle, previewPaletteVariant, previewSiteStyle, previewTypographyPreset, pushHistoryEntry, rankBackgroundImagePoolItems, recoveryConflictCopy, redoHistory, rejectAutosaveBatch, renderBlock, reorderBlocks, reorderEntrySlotBlocks, requireEntriesForCuratedChoices, resolveBackgroundCapability, resolveBlockTitle, resolveContentTitle, resolveIconPickerPreset, resolveImageUrlWithContext, resolveMediaSlotContract, resolveOfferingsPreviewGroupOrderEntries, resolvePageRouteSlug, resolvePickerSelectionLabel, resolvePreviewSidebarTab, resolveStyleConfiguratorInitialSnapshot, resolveVideoSelectionIntentForMediaField, resolveVisiblePromotedFieldPathsForEditorBlock, sectionTransitionFamilies, sectionTransitionFamilyForBoundaryOptionId, sectionTransitionVariantForBoundaryOptionId, selectPreviewDesignHistoryDomain, selectionSnapshotFromApplySiteStyleSelectionResponse, setPaletteOverrides, setTypographyBodyFontOverride, setTypographyHeadingFontOverride, shouldShowPickerSearch, siteFooterManifest, siteHeaderManifest, siteOptionSources, stableSerialize, styleConfiguratorHistoryEntryForPersistedSelection, suggestFeatureCardSemanticIcons, suggestSemanticIconForFeatureCard, surfaceResolutionContextFromTheme, syncStyleConfiguratorState, systemCustomizeFacetAppliesToLayoutVariant, systemCustomizeFacetApplyContentPatch, systemCustomizeFacetCurrentValue, systemCustomizeFacetDefinitionForBlock, systemCustomizeFacetDefinitionsForBlock, systemCustomizeFacetLabelForValue, systemCustomizeFacetNextValue, systemCustomizeFacetRollbackContentPatch, toFeatureCardIconSuggestionInputs, toRoutableLinkPayload, toggleRow, typographyPresets, undoHistory, unfinishedBlockCopy, unsafeAsEditorBlockId, unsafeAsEditorBlockValues, unsafeAsLinkedContentEntryId, unwrapResponse, useAsyncPickerOptions, useBackendWatch, useBlockContext, useCombinedRefs, useDebouncedLatestSave, useDndContext, useDraggable, useDroppable, useEditor, useEditorUiStore, useEditorUiStoreInstance, useEntryController, useEntryEditorController, useField, useIsomorphicLayoutEffect3 as useIsomorphicLayoutEffect, useMediaEditor, useMediaEditorOptional, useMultiAutosave, useOptionalEditorUiStoreInstance, usePreviewDesignCoordinator, usePreviewDesignHistoryOrder, usePreviewThemeOverlay, useRichTextEditor, useSdkConfig, useSensor, useSensors, useSiteChromeCustomizeOptional, useUISelector, useUniqueId, validateBlockManifestIssues, visibleHeaderClearancePx };
|