@riverbankcms/sdk 0.60.9 → 0.60.12
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/_dts/api/src/accessAdmin.d.ts +102 -0
- package/dist/_dts/api/src/common/envelope.d.ts +1 -1
- package/dist/_dts/api/src/domains.d.ts +14 -13
- package/dist/_dts/api/src/endpoints.d.ts +32 -0
- package/dist/_dts/api/src/index.d.ts +4 -3
- package/dist/_dts/api/src/navigation/linkValue.d.ts +15 -2
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +15 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/node/fragments/ctaButton.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/types/link.d.ts +7 -1
- package/dist/_dts/core/src/participant-identity.d.ts +72 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +96 -60
- package/dist/_dts/db/src/schemas/forms.d.ts +135 -24
- package/dist/_dts/sdk/src/contracts/content.d.ts +7 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/classNames.d.ts +21 -0
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -0
- package/dist/cli/index.mjs +188 -9
- package/dist/client/bookings.mjs +808 -149
- package/dist/client/client.mjs +553 -130
- package/dist/client/hooks.mjs +119 -0
- package/dist/client/rendering/client.mjs +412 -113
- package/dist/client/rendering/islands.mjs +4605 -4361
- package/dist/client/rendering.mjs +580 -157
- package/dist/preview-next/before-render.mjs +57 -0
- package/dist/preview-next/client/runtime.mjs +580 -151
- package/dist/preview-next/middleware.mjs +57 -0
- package/dist/server/components.mjs +293 -45
- package/dist/server/config-validation.mjs +119 -0
- package/dist/server/config.mjs +119 -0
- package/dist/server/data.mjs +119 -0
- package/dist/server/index.mjs +120 -1
- package/dist/server/next.mjs +300 -52
- package/dist/server/page-converter.mjs +62 -0
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +293 -45
- package/dist/server/rendering.mjs +293 -45
- package/dist/server/routing.mjs +159 -29
- package/dist/server/server.mjs +120 -1
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/shared/themedButtonClass.d.ts +0 -11
|
@@ -466,6 +466,92 @@ function encodePublicProductCategorySelector(selector) {
|
|
|
466
466
|
};
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
+
function isRecord(value) {
|
|
470
|
+
return typeof value === "object" && value !== null;
|
|
471
|
+
}
|
|
472
|
+
function isJsonResponseContentType(contentType) {
|
|
473
|
+
if (!contentType) return false;
|
|
474
|
+
const mimeType = contentType.split(";", 1)[0]?.trim().toLowerCase() ?? "";
|
|
475
|
+
return mimeType === "application/json" || mimeType.endsWith("+json");
|
|
476
|
+
}
|
|
477
|
+
function getResponseContentType(response) {
|
|
478
|
+
return response.headers.get("content-type");
|
|
479
|
+
}
|
|
480
|
+
async function parseJsonBody(response) {
|
|
481
|
+
const rawText = await response.text();
|
|
482
|
+
if (rawText.trim().length === 0) {
|
|
483
|
+
return { kind: "empty-body" };
|
|
484
|
+
}
|
|
485
|
+
try {
|
|
486
|
+
return { kind: "success", value: JSON.parse(rawText) };
|
|
487
|
+
} catch {
|
|
488
|
+
return { kind: "invalid-json" };
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
function getBlockApiErrorDetails(data) {
|
|
492
|
+
if (!isRecord(data)) {
|
|
493
|
+
return {};
|
|
494
|
+
}
|
|
495
|
+
const nestedError = isRecord(data.error) ? data.error : void 0;
|
|
496
|
+
const message = typeof nestedError?.message === "string" ? nestedError.message : typeof data.message === "string" ? data.message : void 0;
|
|
497
|
+
const code = typeof nestedError?.code === "string" ? nestedError.code : typeof data.code === "string" ? data.code : void 0;
|
|
498
|
+
return { message, code };
|
|
499
|
+
}
|
|
500
|
+
function buildUnexpectedJsonResponseMessage(parseResult) {
|
|
501
|
+
switch (parseResult.kind) {
|
|
502
|
+
case "empty-body":
|
|
503
|
+
return "Expected JSON response body but received an empty response";
|
|
504
|
+
case "invalid-json":
|
|
505
|
+
return "Expected JSON response but received invalid JSON";
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
async function extractErrorDetails(response) {
|
|
509
|
+
const contentType = getResponseContentType(response);
|
|
510
|
+
const fallbackMessage = `Request failed: ${response.statusText}`;
|
|
511
|
+
if (!isJsonResponseContentType(contentType)) {
|
|
512
|
+
return {
|
|
513
|
+
message: `${fallbackMessage} (received ${contentType ?? "unknown content type"})`
|
|
514
|
+
};
|
|
515
|
+
}
|
|
516
|
+
const parseResult = await parseJsonBody(response);
|
|
517
|
+
switch (parseResult.kind) {
|
|
518
|
+
case "success": {
|
|
519
|
+
const details = getBlockApiErrorDetails(parseResult.value);
|
|
520
|
+
return {
|
|
521
|
+
message: details.message ?? fallbackMessage,
|
|
522
|
+
code: details.code
|
|
523
|
+
};
|
|
524
|
+
}
|
|
525
|
+
case "invalid-json":
|
|
526
|
+
return {
|
|
527
|
+
message: `${fallbackMessage} (received invalid JSON)`
|
|
528
|
+
};
|
|
529
|
+
case "empty-body":
|
|
530
|
+
return {
|
|
531
|
+
message: `${fallbackMessage} (received an empty response)`
|
|
532
|
+
};
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
async function parseJsonApiResponse(response) {
|
|
536
|
+
if (response.status === 204 || response.status === 205) {
|
|
537
|
+
return void 0;
|
|
538
|
+
}
|
|
539
|
+
const contentType = getResponseContentType(response);
|
|
540
|
+
if (!isJsonResponseContentType(contentType)) {
|
|
541
|
+
throw new BlockApiError(
|
|
542
|
+
`Expected JSON response but received ${contentType ?? "unknown content type"}`,
|
|
543
|
+
response.status
|
|
544
|
+
);
|
|
545
|
+
}
|
|
546
|
+
const parseResult = await parseJsonBody(response);
|
|
547
|
+
if (parseResult.kind !== "success") {
|
|
548
|
+
throw new BlockApiError(
|
|
549
|
+
buildUnexpectedJsonResponseMessage(parseResult),
|
|
550
|
+
response.status
|
|
551
|
+
);
|
|
552
|
+
}
|
|
553
|
+
return parseResult.value;
|
|
554
|
+
}
|
|
469
555
|
function getAuthHeaders(auth) {
|
|
470
556
|
switch (auth.type) {
|
|
471
557
|
case "api-key":
|
|
@@ -522,21 +608,10 @@ function createBlockApi(config) {
|
|
|
522
608
|
const doFetch = async () => {
|
|
523
609
|
const response = await fetch(url, fetchOptions);
|
|
524
610
|
if (!response.ok) {
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
try {
|
|
528
|
-
const errorData = await response.json();
|
|
529
|
-
if (typeof errorData.error?.message === "string") {
|
|
530
|
-
errorMessage = errorData.error.message;
|
|
531
|
-
} else if (typeof errorData.message === "string") {
|
|
532
|
-
errorMessage = errorData.message;
|
|
533
|
-
}
|
|
534
|
-
errorCode = errorData.error?.code || errorData.code;
|
|
535
|
-
} catch {
|
|
536
|
-
}
|
|
537
|
-
throw new BlockApiError(errorMessage, response.status, errorCode);
|
|
611
|
+
const details = await extractErrorDetails(response);
|
|
612
|
+
throw new BlockApiError(details.message, response.status, details.code);
|
|
538
613
|
}
|
|
539
|
-
const json = await response
|
|
614
|
+
const json = await parseJsonApiResponse(response);
|
|
540
615
|
if (isApiSuccessResponse(json)) {
|
|
541
616
|
return json.data;
|
|
542
617
|
}
|
|
@@ -1521,6 +1596,15 @@ var init_layout = __esm({
|
|
|
1521
1596
|
|
|
1522
1597
|
// ../theme-core/src/buttons/types.ts
|
|
1523
1598
|
import { z } from "zod";
|
|
1599
|
+
function isVariantRole(value) {
|
|
1600
|
+
return VARIANT_ROLES.includes(value);
|
|
1601
|
+
}
|
|
1602
|
+
function asSpecialVariantId(value) {
|
|
1603
|
+
if (value.length === 0) {
|
|
1604
|
+
throw new Error("SpecialVariantId must be a non-empty string");
|
|
1605
|
+
}
|
|
1606
|
+
return value;
|
|
1607
|
+
}
|
|
1524
1608
|
var VARIANT_ROLES, DEFAULT_VARIANT_ALIAS_ID, cornerStyleSchema, shadowSizeSchema, textTransformSchema, fontWeightSchema, buttonTypographySchema, letterSpacingSchema, hoverTransformSchema, hoverColorSchema, buttonPaddingPresetSchema, gradientStyleSchema, gradientSharpnessSchema, prioritySchema, variantRoleSchema, buttonSizeNameSchema, PADDING_TOKEN_PATTERN, paddingShorthandSchema, buttonSizeConfigSchema, buttonSizesSchema, buttonGlobalSettingsSchema, gradientDirectionSchema, buttonBackgroundSchema, effectApplicationSchema, buttonBorderSchema, variantShadowSchema, variantEffectsSchema, variantSizeOverridesSchema, buttonVariantSchema, buttonSystemSchema;
|
|
1525
1609
|
var init_types = __esm({
|
|
1526
1610
|
"../theme-core/src/buttons/types.ts"() {
|
|
@@ -1673,6 +1757,41 @@ var init_types = __esm({
|
|
|
1673
1757
|
}
|
|
1674
1758
|
});
|
|
1675
1759
|
|
|
1760
|
+
// ../theme-core/src/buttons/classNames.ts
|
|
1761
|
+
function parseThemeButtonVariantId(value) {
|
|
1762
|
+
const normalized = value?.trim() ?? "";
|
|
1763
|
+
if (normalized.length === 0) {
|
|
1764
|
+
return null;
|
|
1765
|
+
}
|
|
1766
|
+
if (normalized === DEFAULT_VARIANT_ALIAS_ID) {
|
|
1767
|
+
return DEFAULT_VARIANT_ALIAS_ID;
|
|
1768
|
+
}
|
|
1769
|
+
return isVariantRole(normalized) ? normalized : asSpecialVariantId(normalized);
|
|
1770
|
+
}
|
|
1771
|
+
function themeButtonVariantClassNames(variant) {
|
|
1772
|
+
if (variant === DEFAULT_VARIANT_ALIAS_ID) {
|
|
1773
|
+
return [variant];
|
|
1774
|
+
}
|
|
1775
|
+
return [variant, `button-${variant}`];
|
|
1776
|
+
}
|
|
1777
|
+
function themeButtonSizeClassName(size) {
|
|
1778
|
+
return `btn-${size}`;
|
|
1779
|
+
}
|
|
1780
|
+
function themeButtonClassName(spec) {
|
|
1781
|
+
const classes = [
|
|
1782
|
+
...themeButtonVariantClassNames(spec.variant),
|
|
1783
|
+
themeButtonSizeClassName(spec.size),
|
|
1784
|
+
spec.extraClassName
|
|
1785
|
+
];
|
|
1786
|
+
return classes.filter(Boolean).join(" ");
|
|
1787
|
+
}
|
|
1788
|
+
var init_classNames = __esm({
|
|
1789
|
+
"../theme-core/src/buttons/classNames.ts"() {
|
|
1790
|
+
"use strict";
|
|
1791
|
+
init_types();
|
|
1792
|
+
}
|
|
1793
|
+
});
|
|
1794
|
+
|
|
1676
1795
|
// ../theme-core/src/tokens/resolver.ts
|
|
1677
1796
|
var init_resolver = __esm({
|
|
1678
1797
|
"../theme-core/src/tokens/resolver.ts"() {
|
|
@@ -1812,6 +1931,7 @@ var init_generateButtonCss = __esm({
|
|
|
1812
1931
|
"../theme-core/src/buttons/generateButtonCss.ts"() {
|
|
1813
1932
|
"use strict";
|
|
1814
1933
|
init_types();
|
|
1934
|
+
init_classNames();
|
|
1815
1935
|
init_resolver();
|
|
1816
1936
|
init_generateEffectsCSS();
|
|
1817
1937
|
init_constants();
|
|
@@ -2480,6 +2600,7 @@ var init_buttons = __esm({
|
|
|
2480
2600
|
"../theme-core/src/buttons/index.ts"() {
|
|
2481
2601
|
"use strict";
|
|
2482
2602
|
init_types();
|
|
2603
|
+
init_classNames();
|
|
2483
2604
|
init_generateButtonCss();
|
|
2484
2605
|
init_generateDefaultButtonSystem();
|
|
2485
2606
|
init_constants();
|
|
@@ -3129,10 +3250,71 @@ var init_participants = __esm({
|
|
|
3129
3250
|
});
|
|
3130
3251
|
|
|
3131
3252
|
// ../core/src/participant-identity.ts
|
|
3253
|
+
var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD, PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS;
|
|
3132
3254
|
var init_participant_identity = __esm({
|
|
3133
3255
|
"../core/src/participant-identity.ts"() {
|
|
3134
3256
|
"use strict";
|
|
3135
3257
|
init_assertNever();
|
|
3258
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD = {
|
|
3259
|
+
participant_id: {
|
|
3260
|
+
field: "participant_id",
|
|
3261
|
+
role: "canonical_link",
|
|
3262
|
+
canonicalSource: "booking_participants.id",
|
|
3263
|
+
contractAction: "tighten_in_839",
|
|
3264
|
+
notes: "Canonical person-subject link for a participation. #839 should enforce this once preflight is clean."
|
|
3265
|
+
},
|
|
3266
|
+
display_name: {
|
|
3267
|
+
field: "display_name",
|
|
3268
|
+
role: "contextual_snapshot",
|
|
3269
|
+
canonicalSource: "booking_participants.display_name for live identity",
|
|
3270
|
+
contractAction: "retain_as_snapshot",
|
|
3271
|
+
notes: "Participation-time display context. Readers must not treat it as mutable live participant identity."
|
|
3272
|
+
},
|
|
3273
|
+
email: {
|
|
3274
|
+
field: "email",
|
|
3275
|
+
role: "contextual_snapshot",
|
|
3276
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
3277
|
+
contractAction: "retain_as_snapshot",
|
|
3278
|
+
notes: "Participation-time contact snapshot used for notifications/context. Live identity belongs to the participant row."
|
|
3279
|
+
},
|
|
3280
|
+
email_normalized: {
|
|
3281
|
+
field: "email_normalized",
|
|
3282
|
+
role: "contextual_snapshot",
|
|
3283
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
3284
|
+
contractAction: "retain_as_snapshot",
|
|
3285
|
+
notes: "Normalized snapshot/dedupe helper for the participation slot, not live person authority."
|
|
3286
|
+
},
|
|
3287
|
+
phone: {
|
|
3288
|
+
field: "phone",
|
|
3289
|
+
role: "contextual_snapshot",
|
|
3290
|
+
canonicalSource: "booking_participants.phone for live phone identity",
|
|
3291
|
+
contractAction: "retain_as_snapshot",
|
|
3292
|
+
notes: "Participation-time phone context. Live identity belongs to the participant row."
|
|
3293
|
+
},
|
|
3294
|
+
identity_state: {
|
|
3295
|
+
field: "identity_state",
|
|
3296
|
+
role: "materialization_state",
|
|
3297
|
+
canonicalSource: "booking_participants.identity_state for subject state",
|
|
3298
|
+
contractAction: "review_for_later_contract_cleanup",
|
|
3299
|
+
notes: "Slot materialization state: booker_supplied, contactable, portal_claimed, or staff_verified."
|
|
3300
|
+
},
|
|
3301
|
+
event_attendee_guest_id: {
|
|
3302
|
+
field: "event_attendee_guest_id",
|
|
3303
|
+
role: "compatibility_projection",
|
|
3304
|
+
canonicalSource: "canonical participant slot plus #838 event guest compatibility projection",
|
|
3305
|
+
contractAction: "retain_as_projection",
|
|
3306
|
+
notes: "Compatibility FK for event guest read models. It is not person identity authority."
|
|
3307
|
+
}
|
|
3308
|
+
};
|
|
3309
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS = [
|
|
3310
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.participant_id,
|
|
3311
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.display_name,
|
|
3312
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email,
|
|
3313
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email_normalized,
|
|
3314
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.phone,
|
|
3315
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.identity_state,
|
|
3316
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.event_attendee_guest_id
|
|
3317
|
+
];
|
|
3136
3318
|
}
|
|
3137
3319
|
});
|
|
3138
3320
|
|
|
@@ -3268,11 +3450,11 @@ var init_fileAssetLegacyProjection = __esm({
|
|
|
3268
3450
|
});
|
|
3269
3451
|
|
|
3270
3452
|
// ../media-core/src/typeGuards.ts
|
|
3271
|
-
function
|
|
3453
|
+
function isRecord2(value) {
|
|
3272
3454
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
3273
3455
|
}
|
|
3274
3456
|
function asRecord(value) {
|
|
3275
|
-
return
|
|
3457
|
+
return isRecord2(value) ? value : void 0;
|
|
3276
3458
|
}
|
|
3277
3459
|
var init_typeGuards = __esm({
|
|
3278
3460
|
"../media-core/src/typeGuards.ts"() {
|
|
@@ -5013,7 +5195,7 @@ var init_Text = __esm({
|
|
|
5013
5195
|
});
|
|
5014
5196
|
|
|
5015
5197
|
// ../blocks/src/lib/typeGuards.ts
|
|
5016
|
-
function
|
|
5198
|
+
function isRecord3(value) {
|
|
5017
5199
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5018
5200
|
}
|
|
5019
5201
|
var init_typeGuards2 = __esm({
|
|
@@ -5062,11 +5244,11 @@ function markdownToTipTapDoc(markdown) {
|
|
|
5062
5244
|
};
|
|
5063
5245
|
}
|
|
5064
5246
|
function coerceRichTextDoc(value) {
|
|
5065
|
-
const raw =
|
|
5247
|
+
const raw = isRecord3(value) && "doc" in value ? value.doc : value;
|
|
5066
5248
|
if (typeof raw === "string") {
|
|
5067
5249
|
return markdownToTipTapDoc(raw);
|
|
5068
5250
|
}
|
|
5069
|
-
if (
|
|
5251
|
+
if (isRecord3(raw) && typeof raw.type === "string") {
|
|
5070
5252
|
return raw;
|
|
5071
5253
|
}
|
|
5072
5254
|
return null;
|
|
@@ -5126,11 +5308,12 @@ var init_basic = __esm({
|
|
|
5126
5308
|
}
|
|
5127
5309
|
return null;
|
|
5128
5310
|
}
|
|
5129
|
-
const resolvedVariantId =
|
|
5130
|
-
const
|
|
5131
|
-
|
|
5132
|
-
|
|
5133
|
-
|
|
5311
|
+
const resolvedVariantId = parseThemeButtonVariantId(variantId);
|
|
5312
|
+
const combinedClassName = resolvedVariantId ? themeButtonClassName({
|
|
5313
|
+
variant: resolvedVariantId,
|
|
5314
|
+
size,
|
|
5315
|
+
extraClassName: className
|
|
5316
|
+
}) : className;
|
|
5134
5317
|
if (resolvedHref) {
|
|
5135
5318
|
return /* @__PURE__ */ jsx10(
|
|
5136
5319
|
"a",
|
|
@@ -6135,19 +6318,6 @@ var init_media2 = __esm({
|
|
|
6135
6318
|
}
|
|
6136
6319
|
});
|
|
6137
6320
|
|
|
6138
|
-
// ../blocks/src/system/runtime/shared/themedButtonClass.ts
|
|
6139
|
-
function themedButtonClass(spec) {
|
|
6140
|
-
const { variant, size, extraClassName } = spec;
|
|
6141
|
-
const normalizedVariant = variant.trim();
|
|
6142
|
-
const variantClasses = normalizedVariant ? [normalizedVariant, `button-${normalizedVariant}`] : [];
|
|
6143
|
-
return [...variantClasses, `btn-${size}`, extraClassName].filter(Boolean).join(" ");
|
|
6144
|
-
}
|
|
6145
|
-
var init_themedButtonClass = __esm({
|
|
6146
|
-
"../blocks/src/system/runtime/shared/themedButtonClass.ts"() {
|
|
6147
|
-
"use strict";
|
|
6148
|
-
}
|
|
6149
|
-
});
|
|
6150
|
-
|
|
6151
6321
|
// ../blocks/src/system/runtime/nodes/file-download.tsx
|
|
6152
6322
|
import { jsx as jsx13, jsxs } from "react/jsx-runtime";
|
|
6153
6323
|
function isDownloadableMediaType(type) {
|
|
@@ -6221,7 +6391,7 @@ function FileDownloadNode({
|
|
|
6221
6391
|
{
|
|
6222
6392
|
href,
|
|
6223
6393
|
download: filename,
|
|
6224
|
-
className:
|
|
6394
|
+
className: themeButtonClassName({
|
|
6225
6395
|
variant,
|
|
6226
6396
|
size: "md",
|
|
6227
6397
|
extraClassName: "rb-inline-flex rb-shrink-0 rb-items-center rb-justify-center rb-gap-2"
|
|
@@ -6241,7 +6411,7 @@ var init_file_download = __esm({
|
|
|
6241
6411
|
init_lucide_react();
|
|
6242
6412
|
init_colorStyles();
|
|
6243
6413
|
init_media2();
|
|
6244
|
-
|
|
6414
|
+
init_buttons();
|
|
6245
6415
|
init_media();
|
|
6246
6416
|
FILE_DOWNLOAD_BUTTON_VARIANTS = ["primary", "secondary", "outline", "link"];
|
|
6247
6417
|
}
|
|
@@ -9717,7 +9887,7 @@ var init_EventCard = __esm({
|
|
|
9717
9887
|
init_EventCardIcons();
|
|
9718
9888
|
init_eventCapacity();
|
|
9719
9889
|
init_utils();
|
|
9720
|
-
|
|
9890
|
+
init_buttons();
|
|
9721
9891
|
EventCard = ({
|
|
9722
9892
|
event,
|
|
9723
9893
|
cardVariant = "default",
|
|
@@ -9743,7 +9913,7 @@ var init_EventCard = __esm({
|
|
|
9743
9913
|
const isSoldOut = cta.hidden;
|
|
9744
9914
|
const { available: spotsLeft } = getEventAvailability(event);
|
|
9745
9915
|
const cardClass = `card-${cardVariant}`;
|
|
9746
|
-
const buttonClass =
|
|
9916
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
9747
9917
|
const title = event.title;
|
|
9748
9918
|
const summary = event.presentation?.summary ?? event.description;
|
|
9749
9919
|
const image = event.presentation?.image ?? null;
|
|
@@ -9825,7 +9995,7 @@ var init_EventCompactRow = __esm({
|
|
|
9825
9995
|
"use strict";
|
|
9826
9996
|
init_utils();
|
|
9827
9997
|
init_EventCardIcons();
|
|
9828
|
-
|
|
9998
|
+
init_buttons();
|
|
9829
9999
|
EventCompactRow = ({
|
|
9830
10000
|
event,
|
|
9831
10001
|
buttonVariant = "primary",
|
|
@@ -9837,7 +10007,7 @@ var init_EventCompactRow = __esm({
|
|
|
9837
10007
|
const price = formatEventPrice(event);
|
|
9838
10008
|
const teacherLine = formatEventTeacherLine(event);
|
|
9839
10009
|
const cta = resolveEventCta(event, buttonText);
|
|
9840
|
-
const buttonClass =
|
|
10010
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
|
|
9841
10011
|
return /* @__PURE__ */ jsxs17("div", { className: "event-compact-row", children: [
|
|
9842
10012
|
/* @__PURE__ */ jsxs17("div", { className: "event-compact-row-content", children: [
|
|
9843
10013
|
/* @__PURE__ */ jsxs17("div", { className: "event-compact-row-top", children: [
|
|
@@ -9909,7 +10079,7 @@ var init_EventSpotlight = __esm({
|
|
|
9909
10079
|
"../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx"() {
|
|
9910
10080
|
"use strict";
|
|
9911
10081
|
init_shared3();
|
|
9912
|
-
|
|
10082
|
+
init_buttons();
|
|
9913
10083
|
EventSpotlight = ({
|
|
9914
10084
|
events,
|
|
9915
10085
|
layout = "grid",
|
|
@@ -9931,7 +10101,7 @@ var init_EventSpotlight = __esm({
|
|
|
9931
10101
|
}
|
|
9932
10102
|
const containerClass = getContainerClass(layout, columns);
|
|
9933
10103
|
const cardOrientation = getCardOrientation(layout);
|
|
9934
|
-
const buttonClass =
|
|
10104
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
9935
10105
|
return /* @__PURE__ */ jsxs19("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
|
|
9936
10106
|
/* @__PURE__ */ jsx33("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx33(
|
|
9937
10107
|
EventCard,
|
|
@@ -20312,7 +20482,16 @@ var init_view3 = __esm({
|
|
|
20312
20482
|
import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
20313
20483
|
function renderServerPendingAction(label, soldOut) {
|
|
20314
20484
|
return /* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
20315
|
-
/* @__PURE__ */ jsx37(
|
|
20485
|
+
/* @__PURE__ */ jsx37(
|
|
20486
|
+
"button",
|
|
20487
|
+
{
|
|
20488
|
+
type: "button",
|
|
20489
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
20490
|
+
disabled: true,
|
|
20491
|
+
"aria-disabled": "true",
|
|
20492
|
+
children: soldOut ? "Sold out" : label
|
|
20493
|
+
}
|
|
20494
|
+
),
|
|
20316
20495
|
!soldOut ? /* @__PURE__ */ jsx37("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
|
|
20317
20496
|
] });
|
|
20318
20497
|
}
|
|
@@ -20332,7 +20511,14 @@ function ProductListServerContent(props2) {
|
|
|
20332
20511
|
),
|
|
20333
20512
|
actions: /* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
20334
20513
|
renderServerPendingAction(card.actionLabel, card.soldOut),
|
|
20335
|
-
card.path ? /* @__PURE__ */ jsx37(
|
|
20514
|
+
card.path ? /* @__PURE__ */ jsx37(
|
|
20515
|
+
"a",
|
|
20516
|
+
{
|
|
20517
|
+
href: card.path,
|
|
20518
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
20519
|
+
children: "View details"
|
|
20520
|
+
}
|
|
20521
|
+
) : null
|
|
20336
20522
|
] })
|
|
20337
20523
|
},
|
|
20338
20524
|
card.productId
|
|
@@ -20375,6 +20561,7 @@ function CheckoutServerContent(props2) {
|
|
|
20375
20561
|
var init_shop_commerce_server = __esm({
|
|
20376
20562
|
"../blocks/src/system/runtime/nodes/shop-commerce.server.tsx"() {
|
|
20377
20563
|
"use strict";
|
|
20564
|
+
init_buttons();
|
|
20378
20565
|
init_RichText();
|
|
20379
20566
|
init_carousel_server();
|
|
20380
20567
|
init_richText_coerce();
|
|
@@ -20923,7 +21110,7 @@ function renderCalendarGrid(display) {
|
|
|
20923
21110
|
"button",
|
|
20924
21111
|
{
|
|
20925
21112
|
type: "button",
|
|
20926
|
-
className:
|
|
21113
|
+
className: themeButtonClassName({
|
|
20927
21114
|
variant: display.buttonVariant,
|
|
20928
21115
|
size: "sm"
|
|
20929
21116
|
}),
|
|
@@ -21009,7 +21196,7 @@ function renderTimetableSsr(display) {
|
|
|
21009
21196
|
"button",
|
|
21010
21197
|
{
|
|
21011
21198
|
type: "button",
|
|
21012
|
-
className:
|
|
21199
|
+
className: themeButtonClassName({
|
|
21013
21200
|
variant: display.buttonVariant,
|
|
21014
21201
|
size: "sm"
|
|
21015
21202
|
}),
|
|
@@ -21137,7 +21324,7 @@ var init_EventCalendar_server = __esm({
|
|
|
21137
21324
|
init_renderEventListItem();
|
|
21138
21325
|
init_utils();
|
|
21139
21326
|
init_timetableModel();
|
|
21140
|
-
|
|
21327
|
+
init_buttons();
|
|
21141
21328
|
EventCalendarSSR = (props2) => {
|
|
21142
21329
|
const islandProps = buildEventCalendarInteractiveIslandProps(props2);
|
|
21143
21330
|
const display = islandProps.render.display;
|
|
@@ -21268,7 +21455,7 @@ var init_form_server = __esm({
|
|
|
21268
21455
|
"use strict";
|
|
21269
21456
|
init_clsx();
|
|
21270
21457
|
init_ssr();
|
|
21271
|
-
|
|
21458
|
+
init_buttons();
|
|
21272
21459
|
init_form_interactive();
|
|
21273
21460
|
FormNodeSSR = ({
|
|
21274
21461
|
blockId,
|
|
@@ -21406,7 +21593,7 @@ var init_form_server = __esm({
|
|
|
21406
21593
|
"button",
|
|
21407
21594
|
{
|
|
21408
21595
|
type: "submit",
|
|
21409
|
-
className:
|
|
21596
|
+
className: themeButtonClassName({
|
|
21410
21597
|
variant: "primary",
|
|
21411
21598
|
size: "md",
|
|
21412
21599
|
extraClassName: "rb-w-full rb-sm-w-auto"
|
|
@@ -21499,7 +21686,7 @@ function NewsletterFormSSR({
|
|
|
21499
21686
|
"button",
|
|
21500
21687
|
{
|
|
21501
21688
|
type: "submit",
|
|
21502
|
-
className:
|
|
21689
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
21503
21690
|
children: display.buttonLabel
|
|
21504
21691
|
}
|
|
21505
21692
|
) })
|
|
@@ -21516,7 +21703,7 @@ var init_newsletter_form_server = __esm({
|
|
|
21516
21703
|
"use strict";
|
|
21517
21704
|
init_clsx();
|
|
21518
21705
|
init_ssr();
|
|
21519
|
-
|
|
21706
|
+
init_buttons();
|
|
21520
21707
|
init_newsletter_form_interactive();
|
|
21521
21708
|
newsletter_form_server_default = NewsletterFormSSR;
|
|
21522
21709
|
}
|
|
@@ -21647,7 +21834,16 @@ function ShopSSR({
|
|
|
21647
21834
|
PassCardView,
|
|
21648
21835
|
{
|
|
21649
21836
|
display: pass,
|
|
21650
|
-
action: /* @__PURE__ */ jsx50(
|
|
21837
|
+
action: /* @__PURE__ */ jsx50(
|
|
21838
|
+
"button",
|
|
21839
|
+
{
|
|
21840
|
+
type: "button",
|
|
21841
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
21842
|
+
disabled: true,
|
|
21843
|
+
"aria-disabled": "true",
|
|
21844
|
+
children: pass.actionLabel
|
|
21845
|
+
}
|
|
21846
|
+
)
|
|
21651
21847
|
},
|
|
21652
21848
|
pass.id
|
|
21653
21849
|
)),
|
|
@@ -21655,7 +21851,16 @@ function ShopSSR({
|
|
|
21655
21851
|
MembershipCardView,
|
|
21656
21852
|
{
|
|
21657
21853
|
display: membership,
|
|
21658
|
-
action: /* @__PURE__ */ jsx50(
|
|
21854
|
+
action: /* @__PURE__ */ jsx50(
|
|
21855
|
+
"button",
|
|
21856
|
+
{
|
|
21857
|
+
type: "button",
|
|
21858
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
21859
|
+
disabled: true,
|
|
21860
|
+
"aria-disabled": "true",
|
|
21861
|
+
children: membership.actionLabel
|
|
21862
|
+
}
|
|
21863
|
+
)
|
|
21659
21864
|
},
|
|
21660
21865
|
membership.id
|
|
21661
21866
|
))
|
|
@@ -21670,6 +21875,7 @@ var shop_server_default;
|
|
|
21670
21875
|
var init_shop_server = __esm({
|
|
21671
21876
|
"../blocks/src/system/runtime/nodes/shop.server.tsx"() {
|
|
21672
21877
|
"use strict";
|
|
21878
|
+
init_buttons();
|
|
21673
21879
|
init_ssr();
|
|
21674
21880
|
init_view3();
|
|
21675
21881
|
init_shop_interactive();
|
|
@@ -25110,7 +25316,7 @@ function MultiStepForm({
|
|
|
25110
25316
|
type: "button",
|
|
25111
25317
|
onClick: goToPrevious,
|
|
25112
25318
|
disabled: !canGoBack,
|
|
25113
|
-
className: "outline
|
|
25319
|
+
className: themeButtonClassName({ variant: "outline", size: "md" }),
|
|
25114
25320
|
children: backButtonLabel
|
|
25115
25321
|
}
|
|
25116
25322
|
),
|
|
@@ -25120,7 +25326,11 @@ function MultiStepForm({
|
|
|
25120
25326
|
type: "button",
|
|
25121
25327
|
onClick: goToNext,
|
|
25122
25328
|
disabled: !canGoNext,
|
|
25123
|
-
className:
|
|
25329
|
+
className: themeButtonClassName({
|
|
25330
|
+
variant: "primary",
|
|
25331
|
+
size: "md",
|
|
25332
|
+
extraClassName: "rb-flex-1"
|
|
25333
|
+
}),
|
|
25124
25334
|
children: [
|
|
25125
25335
|
(isValidating || isSubmitting) && /* @__PURE__ */ jsx52(
|
|
25126
25336
|
SpinnerNode,
|
|
@@ -25236,6 +25446,7 @@ var init_MultiStepForm = __esm({
|
|
|
25236
25446
|
"../blocks/src/system/runtime/components/multi-step/MultiStepForm.tsx"() {
|
|
25237
25447
|
"use strict";
|
|
25238
25448
|
"use client";
|
|
25449
|
+
init_buttons();
|
|
25239
25450
|
init_MultiStepContext();
|
|
25240
25451
|
init_useMultiStep();
|
|
25241
25452
|
init_spinner();
|
|
@@ -26498,7 +26709,10 @@ function PaymentOptionSelectionStep({
|
|
|
26498
26709
|
"button",
|
|
26499
26710
|
{
|
|
26500
26711
|
type: "button",
|
|
26501
|
-
className:
|
|
26712
|
+
className: themeButtonClassName({
|
|
26713
|
+
variant: isSelected ? "primary" : "outline",
|
|
26714
|
+
size: "md"
|
|
26715
|
+
}),
|
|
26502
26716
|
style: paymentOptionLayoutStyle,
|
|
26503
26717
|
onClick: () => updateData({
|
|
26504
26718
|
selectedAppointmentPackageId: appointmentPackage.customerPassId,
|
|
@@ -26547,7 +26761,10 @@ function PaymentOptionSelectionStep({
|
|
|
26547
26761
|
"button",
|
|
26548
26762
|
{
|
|
26549
26763
|
type: "button",
|
|
26550
|
-
className:
|
|
26764
|
+
className: themeButtonClassName({
|
|
26765
|
+
variant: isSelected ? "primary" : "outline",
|
|
26766
|
+
size: "md"
|
|
26767
|
+
}),
|
|
26551
26768
|
style: paymentOptionLayoutStyle,
|
|
26552
26769
|
onClick: () => updateData({
|
|
26553
26770
|
selectedAppointmentPackageId: void 0,
|
|
@@ -26576,6 +26793,7 @@ var init_PaymentOptionSelectionStep = __esm({
|
|
|
26576
26793
|
"../blocks/src/system/runtime/components/booking/PaymentOptionSelectionStep.tsx"() {
|
|
26577
26794
|
"use strict";
|
|
26578
26795
|
"use client";
|
|
26796
|
+
init_buttons();
|
|
26579
26797
|
init_api();
|
|
26580
26798
|
init_MultiStepContext();
|
|
26581
26799
|
init_booking_form_state();
|
|
@@ -28211,6 +28429,7 @@ var init_booking_form_client = __esm({
|
|
|
28211
28429
|
init_noop();
|
|
28212
28430
|
init_client2();
|
|
28213
28431
|
init_src3();
|
|
28432
|
+
init_buttons();
|
|
28214
28433
|
init_api();
|
|
28215
28434
|
init_MultiStepForm();
|
|
28216
28435
|
init_SuccessMessage();
|
|
@@ -28448,7 +28667,7 @@ var init_booking_form_client = __esm({
|
|
|
28448
28667
|
"button",
|
|
28449
28668
|
{
|
|
28450
28669
|
type: "button",
|
|
28451
|
-
className: "secondary
|
|
28670
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
28452
28671
|
onClick: clearFeedback,
|
|
28453
28672
|
children: "Dismiss"
|
|
28454
28673
|
}
|
|
@@ -29824,7 +30043,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
29824
30043
|
init_lucide_react();
|
|
29825
30044
|
init_utils3();
|
|
29826
30045
|
init_spinner();
|
|
29827
|
-
|
|
30046
|
+
init_buttons();
|
|
29828
30047
|
init_CheckIcon2();
|
|
29829
30048
|
init_SelectableOptionCard();
|
|
29830
30049
|
PaymentSelectionStep = ({
|
|
@@ -29925,7 +30144,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
29925
30144
|
"button",
|
|
29926
30145
|
{
|
|
29927
30146
|
type: "button",
|
|
29928
|
-
className:
|
|
30147
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
29929
30148
|
disabled: !email.trim(),
|
|
29930
30149
|
onClick: onRequestLogin,
|
|
29931
30150
|
children: "Email me a login link"
|
|
@@ -31585,7 +31804,7 @@ function MagicLinkForm({
|
|
|
31585
31804
|
"button",
|
|
31586
31805
|
{
|
|
31587
31806
|
type: "button",
|
|
31588
|
-
className: classPrefix === "cp" ? "secondary" : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
|
|
31807
|
+
className: classPrefix === "cp" ? themeButtonClassName({ variant: "secondary", size: "md" }) : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
|
|
31589
31808
|
onClick: handleReset,
|
|
31590
31809
|
children: "Try a different email"
|
|
31591
31810
|
}
|
|
@@ -31613,7 +31832,7 @@ function MagicLinkForm({
|
|
|
31613
31832
|
"button",
|
|
31614
31833
|
{
|
|
31615
31834
|
type: "submit",
|
|
31616
|
-
className: classPrefix === "cp" ? "primary" : `${classPrefix}-modal-btn`,
|
|
31835
|
+
className: classPrefix === "cp" ? themeButtonClassName({ variant: "primary", size: "md" }) : `${classPrefix}-modal-btn`,
|
|
31617
31836
|
disabled: !email.trim() || loading,
|
|
31618
31837
|
children: loading ? "Sending..." : buttonText
|
|
31619
31838
|
}
|
|
@@ -31624,6 +31843,7 @@ var init_MagicLinkForm = __esm({
|
|
|
31624
31843
|
"../blocks/src/system/runtime/nodes/shared/MagicLinkForm.tsx"() {
|
|
31625
31844
|
"use strict";
|
|
31626
31845
|
"use client";
|
|
31846
|
+
init_buttons();
|
|
31627
31847
|
init_api();
|
|
31628
31848
|
}
|
|
31629
31849
|
});
|
|
@@ -31649,7 +31869,7 @@ function EventRegistrationWizard(props2) {
|
|
|
31649
31869
|
} = props2;
|
|
31650
31870
|
const maxTicketsNum = parseInt(maxTickets, 10) || 5;
|
|
31651
31871
|
const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
31652
|
-
const buttonClass =
|
|
31872
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
31653
31873
|
const wizard = useEventRegistrationWizard({
|
|
31654
31874
|
anchorId: EVENT_REGISTRATION_ANCHOR_ID,
|
|
31655
31875
|
occurrenceContext: occurrenceContext ?? null,
|
|
@@ -31786,7 +32006,7 @@ var init_EventRegistrationWizard = __esm({
|
|
|
31786
32006
|
init_useEventRegistrationWizard();
|
|
31787
32007
|
init_MagicLinkForm();
|
|
31788
32008
|
init_spinner();
|
|
31789
|
-
|
|
32009
|
+
init_buttons();
|
|
31790
32010
|
init_event_registration2();
|
|
31791
32011
|
EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
|
|
31792
32012
|
EVENT_PORTAL_AUTH_COPY = {
|
|
@@ -32232,7 +32452,7 @@ function ErrorStep2({
|
|
|
32232
32452
|
buttonVariant = "primary",
|
|
32233
32453
|
onRetry
|
|
32234
32454
|
}) {
|
|
32235
|
-
const buttonClass =
|
|
32455
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
32236
32456
|
return /* @__PURE__ */ jsxs73("div", { className: "cr-error", role: "alert", children: [
|
|
32237
32457
|
/* @__PURE__ */ jsx100(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx100(CrossIcon, {}) }),
|
|
32238
32458
|
/* @__PURE__ */ jsx100("h3", { className: "cr-error__title", children: "Enrollment Failed" }),
|
|
@@ -32244,7 +32464,7 @@ var init_ErrorStep2 = __esm({
|
|
|
32244
32464
|
"../blocks/src/system/runtime/nodes/course-registration/ErrorStep.tsx"() {
|
|
32245
32465
|
"use strict";
|
|
32246
32466
|
init_shared6();
|
|
32247
|
-
|
|
32467
|
+
init_buttons();
|
|
32248
32468
|
}
|
|
32249
32469
|
});
|
|
32250
32470
|
|
|
@@ -32256,7 +32476,7 @@ function VerifyingTimeoutStep2({
|
|
|
32256
32476
|
onCheckAgain,
|
|
32257
32477
|
supportEmail
|
|
32258
32478
|
}) {
|
|
32259
|
-
const buttonClass =
|
|
32479
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
32260
32480
|
return /* @__PURE__ */ jsxs74("div", { className: "cr-error", role: "alert", children: [
|
|
32261
32481
|
/* @__PURE__ */ jsx101(StateIcon, { variant: "warning", children: /* @__PURE__ */ jsx101(ClockIcon, {}) }),
|
|
32262
32482
|
/* @__PURE__ */ jsx101("h3", { className: "cr-error__title", children: "Payment Verification Taking Longer" }),
|
|
@@ -32273,7 +32493,7 @@ var init_VerifyingTimeoutStep2 = __esm({
|
|
|
32273
32493
|
"../blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.tsx"() {
|
|
32274
32494
|
"use strict";
|
|
32275
32495
|
init_shared6();
|
|
32276
|
-
|
|
32496
|
+
init_buttons();
|
|
32277
32497
|
}
|
|
32278
32498
|
});
|
|
32279
32499
|
|
|
@@ -32285,7 +32505,7 @@ function PaymentFailedStep2({
|
|
|
32285
32505
|
buttonVariant = "primary",
|
|
32286
32506
|
onRetry
|
|
32287
32507
|
}) {
|
|
32288
|
-
const buttonClass =
|
|
32508
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
32289
32509
|
return /* @__PURE__ */ jsxs75("div", { className: "cr-payment-failed", role: "alert", children: [
|
|
32290
32510
|
/* @__PURE__ */ jsx102(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx102(CrossIcon, {}) }),
|
|
32291
32511
|
/* @__PURE__ */ jsx102("h3", { className: "cr-payment-failed__title", children: "Payment Failed" }),
|
|
@@ -32297,7 +32517,7 @@ var init_PaymentFailedStep2 = __esm({
|
|
|
32297
32517
|
"../blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.tsx"() {
|
|
32298
32518
|
"use strict";
|
|
32299
32519
|
init_shared6();
|
|
32300
|
-
|
|
32520
|
+
init_buttons();
|
|
32301
32521
|
}
|
|
32302
32522
|
});
|
|
32303
32523
|
|
|
@@ -33299,7 +33519,7 @@ function CourseRegistrationWizard(props2) {
|
|
|
33299
33519
|
handleRetry,
|
|
33300
33520
|
handleBookingModeChange
|
|
33301
33521
|
} = useCourseRegistrationWizard(props2);
|
|
33302
|
-
const buttonClass =
|
|
33522
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
33303
33523
|
if (scopedCourses.length === 0) {
|
|
33304
33524
|
return /* @__PURE__ */ jsx106(
|
|
33305
33525
|
"div",
|
|
@@ -33709,7 +33929,7 @@ var init_CourseRegistrationWizard = __esm({
|
|
|
33709
33929
|
init_PaymentFailedStep2();
|
|
33710
33930
|
init_VerifyingTimeoutStep2();
|
|
33711
33931
|
init_spinner();
|
|
33712
|
-
|
|
33932
|
+
init_buttons();
|
|
33713
33933
|
}
|
|
33714
33934
|
});
|
|
33715
33935
|
|
|
@@ -33741,7 +33961,7 @@ var init_course_registration_client = __esm({
|
|
|
33741
33961
|
import { useEffect as useEffect19, useRef as useRef10, useState as useState15 } from "react";
|
|
33742
33962
|
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
33743
33963
|
function isLeafletApi(value) {
|
|
33744
|
-
if (!
|
|
33964
|
+
if (!isRecord3(value)) return false;
|
|
33745
33965
|
return typeof value.map === "function" && typeof value.tileLayer === "function" && typeof value.marker === "function";
|
|
33746
33966
|
}
|
|
33747
33967
|
function loadLeaflet() {
|
|
@@ -34443,7 +34663,11 @@ function PassesMembershipsController({ render }) {
|
|
|
34443
34663
|
"button",
|
|
34444
34664
|
{
|
|
34445
34665
|
type: "button",
|
|
34446
|
-
className:
|
|
34666
|
+
className: themeButtonClassName({
|
|
34667
|
+
variant: "secondary",
|
|
34668
|
+
size: "sm",
|
|
34669
|
+
extraClassName: "shop__return-dismiss"
|
|
34670
|
+
}),
|
|
34447
34671
|
onClick: () => dispatch({ type: "clearReturnNotice" }),
|
|
34448
34672
|
children: "Dismiss"
|
|
34449
34673
|
}
|
|
@@ -34460,7 +34684,11 @@ function PassesMembershipsController({ render }) {
|
|
|
34460
34684
|
"button",
|
|
34461
34685
|
{
|
|
34462
34686
|
type: "button",
|
|
34463
|
-
className:
|
|
34687
|
+
className: themeButtonClassName({
|
|
34688
|
+
variant: "default",
|
|
34689
|
+
size: "md",
|
|
34690
|
+
extraClassName: "shop__cta"
|
|
34691
|
+
}),
|
|
34464
34692
|
onClick: () => handleBuyPass(pass),
|
|
34465
34693
|
children: passDisplay.actionLabel
|
|
34466
34694
|
}
|
|
@@ -34487,7 +34715,11 @@ function PassesMembershipsController({ render }) {
|
|
|
34487
34715
|
"button",
|
|
34488
34716
|
{
|
|
34489
34717
|
type: "button",
|
|
34490
|
-
className:
|
|
34718
|
+
className: themeButtonClassName({
|
|
34719
|
+
variant: "default",
|
|
34720
|
+
size: "md",
|
|
34721
|
+
extraClassName: "shop__cta"
|
|
34722
|
+
}),
|
|
34491
34723
|
onClick: () => handleSubscribe(membership),
|
|
34492
34724
|
children: membershipDisplay.actionLabel
|
|
34493
34725
|
}
|
|
@@ -34531,12 +34763,20 @@ function PassesMembershipsController({ render }) {
|
|
|
34531
34763
|
] }) : null
|
|
34532
34764
|
] }),
|
|
34533
34765
|
/* @__PURE__ */ jsxs83(ActionRow, { className: "shop__modal-warning-actions", children: [
|
|
34534
|
-
/* @__PURE__ */ jsx112("button", { type: "button", className: "secondary", onClick: closeCheckout, children: "Cancel" }),
|
|
34535
34766
|
/* @__PURE__ */ jsx112(
|
|
34536
34767
|
"button",
|
|
34537
34768
|
{
|
|
34538
34769
|
type: "button",
|
|
34539
|
-
className: "
|
|
34770
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
34771
|
+
onClick: closeCheckout,
|
|
34772
|
+
children: "Cancel"
|
|
34773
|
+
}
|
|
34774
|
+
),
|
|
34775
|
+
/* @__PURE__ */ jsx112(
|
|
34776
|
+
"button",
|
|
34777
|
+
{
|
|
34778
|
+
type: "button",
|
|
34779
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
34540
34780
|
onClick: handleConfirmDuplicate,
|
|
34541
34781
|
disabled: checkout2.submitting,
|
|
34542
34782
|
children: checkout2.submitting ? "Processing..." : "Subscribe Anyway"
|
|
@@ -34579,8 +34819,25 @@ function PassesMembershipsController({ render }) {
|
|
|
34579
34819
|
] }),
|
|
34580
34820
|
checkout2.formError ? /* @__PURE__ */ jsx112("p", { className: "shop__modal-error", role: "alert", children: checkout2.formError }) : null,
|
|
34581
34821
|
/* @__PURE__ */ jsxs83(ActionRow, { className: "shop__modal-actions", children: [
|
|
34582
|
-
/* @__PURE__ */ jsx112(
|
|
34583
|
-
|
|
34822
|
+
/* @__PURE__ */ jsx112(
|
|
34823
|
+
"button",
|
|
34824
|
+
{
|
|
34825
|
+
type: "button",
|
|
34826
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
34827
|
+
onClick: closeCheckout,
|
|
34828
|
+
disabled: checkout2.submitting,
|
|
34829
|
+
children: "Cancel"
|
|
34830
|
+
}
|
|
34831
|
+
),
|
|
34832
|
+
/* @__PURE__ */ jsx112(
|
|
34833
|
+
"button",
|
|
34834
|
+
{
|
|
34835
|
+
type: "submit",
|
|
34836
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
34837
|
+
disabled: checkout2.submitting,
|
|
34838
|
+
children: checkout2.submitting ? "Processing..." : "Continue to Payment"
|
|
34839
|
+
}
|
|
34840
|
+
)
|
|
34584
34841
|
] })
|
|
34585
34842
|
] })
|
|
34586
34843
|
] })
|
|
@@ -34593,6 +34850,7 @@ var init_shop_client = __esm({
|
|
|
34593
34850
|
"../blocks/src/system/runtime/nodes/shop.client.tsx"() {
|
|
34594
34851
|
"use strict";
|
|
34595
34852
|
"use client";
|
|
34853
|
+
init_buttons();
|
|
34596
34854
|
init_api();
|
|
34597
34855
|
init_ModalShell();
|
|
34598
34856
|
init_shared6();
|
|
@@ -34807,7 +35065,7 @@ var init_embla_carousel_autoplay_esm = __esm({
|
|
|
34807
35065
|
function isObject(subject) {
|
|
34808
35066
|
return Object.prototype.toString.call(subject) === "[object Object]";
|
|
34809
35067
|
}
|
|
34810
|
-
function
|
|
35068
|
+
function isRecord4(subject) {
|
|
34811
35069
|
return isObject(subject) || Array.isArray(subject);
|
|
34812
35070
|
}
|
|
34813
35071
|
function canUseDOM() {
|
|
@@ -34824,7 +35082,7 @@ function areOptionsEqual(optionsA, optionsB) {
|
|
|
34824
35082
|
const valueA = optionsA[key];
|
|
34825
35083
|
const valueB = optionsB[key];
|
|
34826
35084
|
if (typeof valueA === "function") return `${valueA}` === `${valueB}`;
|
|
34827
|
-
if (!
|
|
35085
|
+
if (!isRecord4(valueA) || !isRecord4(valueB)) return valueA === valueB;
|
|
34828
35086
|
return areOptionsEqual(valueA, valueB);
|
|
34829
35087
|
});
|
|
34830
35088
|
}
|
|
@@ -36918,7 +37176,7 @@ function ProductListController(props2) {
|
|
|
36918
37176
|
"button",
|
|
36919
37177
|
{
|
|
36920
37178
|
type: "button",
|
|
36921
|
-
className: "default",
|
|
37179
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
36922
37180
|
onClick: () => {
|
|
36923
37181
|
const product = props2.render.hydration.products.find((candidate) => candidate.id === card.productId);
|
|
36924
37182
|
if (!product) return;
|
|
@@ -36934,7 +37192,14 @@ function ProductListController(props2) {
|
|
|
36934
37192
|
children: card.soldOut ? "Sold out" : card.actionLabel
|
|
36935
37193
|
}
|
|
36936
37194
|
),
|
|
36937
|
-
card.path ? /* @__PURE__ */ jsx114(
|
|
37195
|
+
card.path ? /* @__PURE__ */ jsx114(
|
|
37196
|
+
"a",
|
|
37197
|
+
{
|
|
37198
|
+
href: card.path,
|
|
37199
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
37200
|
+
children: "View details"
|
|
37201
|
+
}
|
|
37202
|
+
) : null
|
|
36938
37203
|
] }),
|
|
36939
37204
|
feedback: /* @__PURE__ */ jsx114(
|
|
36940
37205
|
ShopAddFeedback,
|
|
@@ -37000,7 +37265,7 @@ function ProductDetailController(props2) {
|
|
|
37000
37265
|
"button",
|
|
37001
37266
|
{
|
|
37002
37267
|
type: "button",
|
|
37003
|
-
className: "default",
|
|
37268
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
37004
37269
|
disabled: display.soldOut,
|
|
37005
37270
|
onClick: () => {
|
|
37006
37271
|
if (!selectedProduct) return;
|
|
@@ -37050,15 +37315,31 @@ function CartController(props2) {
|
|
|
37050
37315
|
onChange: item.quantityEditable ? (event) => cart2.updateQuantity(item.key, Number(event.target.value)) : void 0
|
|
37051
37316
|
}
|
|
37052
37317
|
),
|
|
37053
|
-
/* @__PURE__ */ jsx114(
|
|
37318
|
+
/* @__PURE__ */ jsx114(
|
|
37319
|
+
"button",
|
|
37320
|
+
{
|
|
37321
|
+
type: "button",
|
|
37322
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
37323
|
+
onClick: () => cart2.removeItem(item.key),
|
|
37324
|
+
children: "Remove"
|
|
37325
|
+
}
|
|
37326
|
+
)
|
|
37054
37327
|
] }),
|
|
37055
37328
|
footerActions: /* @__PURE__ */ jsxs85(Fragment19, { children: [
|
|
37056
|
-
/* @__PURE__ */ jsx114("button", { type: "button", className: "secondary btn-sm", onClick: () => cart2.clear(), children: display.clearButtonText }),
|
|
37057
37329
|
/* @__PURE__ */ jsx114(
|
|
37058
37330
|
"button",
|
|
37059
37331
|
{
|
|
37060
37332
|
type: "button",
|
|
37061
|
-
className: "
|
|
37333
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
37334
|
+
onClick: () => cart2.clear(),
|
|
37335
|
+
children: display.clearButtonText
|
|
37336
|
+
}
|
|
37337
|
+
),
|
|
37338
|
+
/* @__PURE__ */ jsx114(
|
|
37339
|
+
"button",
|
|
37340
|
+
{
|
|
37341
|
+
type: "button",
|
|
37342
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
37062
37343
|
onClick: () => {
|
|
37063
37344
|
window.location.href = resolveDedicatedCheckoutPath(window.location.pathname);
|
|
37064
37345
|
},
|
|
@@ -37164,7 +37445,15 @@ function CheckoutController(props2) {
|
|
|
37164
37445
|
)
|
|
37165
37446
|
] }),
|
|
37166
37447
|
state.feedback.tag === "error" ? /* @__PURE__ */ jsx114("p", { className: "rb-caption status-muted", children: state.feedback.message }) : null,
|
|
37167
|
-
/* @__PURE__ */ jsx114(
|
|
37448
|
+
/* @__PURE__ */ jsx114(
|
|
37449
|
+
"button",
|
|
37450
|
+
{
|
|
37451
|
+
type: "submit",
|
|
37452
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
37453
|
+
disabled: state.submission === "submitting",
|
|
37454
|
+
children: state.submission === "submitting" ? "Loading\u2026" : display.submitButtonText
|
|
37455
|
+
}
|
|
37456
|
+
)
|
|
37168
37457
|
] })
|
|
37169
37458
|
}
|
|
37170
37459
|
);
|
|
@@ -37174,6 +37463,7 @@ var init_shop_commerce = __esm({
|
|
|
37174
37463
|
"../blocks/src/system/runtime/nodes/shop-commerce.tsx"() {
|
|
37175
37464
|
"use strict";
|
|
37176
37465
|
"use client";
|
|
37466
|
+
init_buttons();
|
|
37177
37467
|
init_api();
|
|
37178
37468
|
init_RichText();
|
|
37179
37469
|
init_carousel_client();
|
|
@@ -38870,7 +39160,7 @@ function HeaderCartDrawerItems(props2) {
|
|
|
38870
39160
|
"button",
|
|
38871
39161
|
{
|
|
38872
39162
|
type: "button",
|
|
38873
|
-
className: "secondary
|
|
39163
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
38874
39164
|
onClick: () => props2.cart.removeItem(item.key),
|
|
38875
39165
|
children: "Remove"
|
|
38876
39166
|
}
|
|
@@ -38963,7 +39253,7 @@ function HeaderCartDrawer(props2) {
|
|
|
38963
39253
|
"button",
|
|
38964
39254
|
{
|
|
38965
39255
|
type: "button",
|
|
38966
|
-
className: "secondary",
|
|
39256
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
38967
39257
|
onClick: () => props2.cart.clear(),
|
|
38968
39258
|
disabled: display.state === "empty",
|
|
38969
39259
|
children: display.clearButtonText
|
|
@@ -38972,12 +39262,20 @@ function HeaderCartDrawer(props2) {
|
|
|
38972
39262
|
props2.checkoutHref && display.state === "ready" ? /* @__PURE__ */ jsx129(
|
|
38973
39263
|
"a",
|
|
38974
39264
|
{
|
|
38975
|
-
className: "default",
|
|
39265
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
38976
39266
|
href: props2.checkoutHref,
|
|
38977
39267
|
onClick: props2.onClose,
|
|
38978
39268
|
children: display.checkoutButtonText
|
|
38979
39269
|
}
|
|
38980
|
-
) : /* @__PURE__ */ jsx129(
|
|
39270
|
+
) : /* @__PURE__ */ jsx129(
|
|
39271
|
+
"button",
|
|
39272
|
+
{
|
|
39273
|
+
type: "button",
|
|
39274
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
39275
|
+
disabled: true,
|
|
39276
|
+
children: display.checkoutButtonText
|
|
39277
|
+
}
|
|
39278
|
+
)
|
|
38981
39279
|
] })
|
|
38982
39280
|
]
|
|
38983
39281
|
}
|
|
@@ -38990,6 +39288,7 @@ var init_HeaderCartDrawer = __esm({
|
|
|
38990
39288
|
"../blocks/src/system/runtime/header/HeaderCartDrawer.tsx"() {
|
|
38991
39289
|
"use strict";
|
|
38992
39290
|
"use client";
|
|
39291
|
+
init_buttons();
|
|
38993
39292
|
init_display();
|
|
38994
39293
|
init_ModalShell();
|
|
38995
39294
|
}
|
|
@@ -39763,7 +40062,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
39763
40062
|
init_EventCompactRow();
|
|
39764
40063
|
init_EmptyState();
|
|
39765
40064
|
init_EventListing_view();
|
|
39766
|
-
|
|
40065
|
+
init_buttons();
|
|
39767
40066
|
EventPaginatedListView = ({
|
|
39768
40067
|
filters,
|
|
39769
40068
|
display,
|
|
@@ -39806,7 +40105,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
39806
40105
|
{
|
|
39807
40106
|
type: "button",
|
|
39808
40107
|
onClick: loadMore,
|
|
39809
|
-
className:
|
|
40108
|
+
className: themeButtonClassName({
|
|
39810
40109
|
variant: display.buttonVariant,
|
|
39811
40110
|
size: "md"
|
|
39812
40111
|
}),
|
|
@@ -39820,7 +40119,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
39820
40119
|
type: "button",
|
|
39821
40120
|
onClick: loadMore,
|
|
39822
40121
|
disabled: loading,
|
|
39823
|
-
className:
|
|
40122
|
+
className: themeButtonClassName({
|
|
39824
40123
|
variant: display.buttonVariant,
|
|
39825
40124
|
size: "md",
|
|
39826
40125
|
extraClassName: loading ? "rb-opacity-50 rb-cursor-wait" : null
|
|
@@ -39832,7 +40131,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
39832
40131
|
"a",
|
|
39833
40132
|
{
|
|
39834
40133
|
href: seeAllUrl,
|
|
39835
|
-
className:
|
|
40134
|
+
className: themeButtonClassName({
|
|
39836
40135
|
variant: display.buttonVariant,
|
|
39837
40136
|
size: "md"
|
|
39838
40137
|
}),
|
|
@@ -41182,7 +41481,7 @@ var init_EventCombined_client = __esm({
|
|
|
41182
41481
|
init_EventModalContext();
|
|
41183
41482
|
init_EventModals();
|
|
41184
41483
|
init_utils();
|
|
41185
|
-
|
|
41484
|
+
init_buttons();
|
|
41186
41485
|
EventCombinedClient = ({
|
|
41187
41486
|
events: initialEvents,
|
|
41188
41487
|
siteId,
|
|
@@ -41508,7 +41807,7 @@ var init_EventCombined_client = __esm({
|
|
|
41508
41807
|
{
|
|
41509
41808
|
type: "button",
|
|
41510
41809
|
onClick: goToToday,
|
|
41511
|
-
className:
|
|
41810
|
+
className: themeButtonClassName({ variant: buttonVariant, size: "sm" }),
|
|
41512
41811
|
children: "Today"
|
|
41513
41812
|
}
|
|
41514
41813
|
)
|
|
@@ -41825,7 +42124,7 @@ var init_EventCalendar_client = __esm({
|
|
|
41825
42124
|
init_EventModalContext();
|
|
41826
42125
|
init_EventModals();
|
|
41827
42126
|
init_WeekTimetableView();
|
|
41828
|
-
|
|
42127
|
+
init_buttons();
|
|
41829
42128
|
EventCalendarClient = ({
|
|
41830
42129
|
render
|
|
41831
42130
|
}) => {
|
|
@@ -42114,7 +42413,7 @@ var init_EventCalendar_client = __esm({
|
|
|
42114
42413
|
{
|
|
42115
42414
|
type: "button",
|
|
42116
42415
|
onClick: onToday,
|
|
42117
|
-
className:
|
|
42416
|
+
className: themeButtonClassName({
|
|
42118
42417
|
variant: display.buttonVariant,
|
|
42119
42418
|
size: "sm"
|
|
42120
42419
|
}),
|
|
@@ -42130,7 +42429,7 @@ var init_EventCalendar_client = __esm({
|
|
|
42130
42429
|
{
|
|
42131
42430
|
type: "button",
|
|
42132
42431
|
onClick: onToday,
|
|
42133
|
-
className:
|
|
42432
|
+
className: themeButtonClassName({
|
|
42134
42433
|
variant: display.buttonVariant,
|
|
42135
42434
|
size: "sm"
|
|
42136
42435
|
}),
|
|
@@ -42228,7 +42527,7 @@ var init_form_client = __esm({
|
|
|
42228
42527
|
init_client2();
|
|
42229
42528
|
init_src3();
|
|
42230
42529
|
init_useFormSubmission();
|
|
42231
|
-
|
|
42530
|
+
init_buttons();
|
|
42232
42531
|
FormNodeClient = ({
|
|
42233
42532
|
render
|
|
42234
42533
|
}) => {
|
|
@@ -42370,7 +42669,7 @@ var init_form_client = __esm({
|
|
|
42370
42669
|
"button",
|
|
42371
42670
|
{
|
|
42372
42671
|
type: "submit",
|
|
42373
|
-
className:
|
|
42672
|
+
className: themeButtonClassName({
|
|
42374
42673
|
variant: "primary",
|
|
42375
42674
|
size: "md",
|
|
42376
42675
|
extraClassName: "rb-w-full rb-sm-w-auto"
|
|
@@ -42597,7 +42896,7 @@ function NewsletterFormClient({
|
|
|
42597
42896
|
"button",
|
|
42598
42897
|
{
|
|
42599
42898
|
type: "submit",
|
|
42600
|
-
className:
|
|
42899
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
42601
42900
|
disabled: isSubmitting,
|
|
42602
42901
|
children: isSubmitting ? "Subscribing..." : render.display.buttonLabel
|
|
42603
42902
|
}
|
|
@@ -42616,14 +42915,14 @@ var init_newsletter_form_client = __esm({
|
|
|
42616
42915
|
init_client2();
|
|
42617
42916
|
init_src3();
|
|
42618
42917
|
init_api();
|
|
42619
|
-
|
|
42918
|
+
init_buttons();
|
|
42620
42919
|
newsletter_form_client_default = NewsletterFormClient;
|
|
42621
42920
|
}
|
|
42622
42921
|
});
|
|
42623
42922
|
|
|
42624
42923
|
// ../blocks/src/system/runtime/components/registry.client.tsx
|
|
42625
42924
|
import React53 from "react";
|
|
42626
|
-
function
|
|
42925
|
+
function isRecord5(value) {
|
|
42627
42926
|
return typeof value === "object" && value !== null;
|
|
42628
42927
|
}
|
|
42629
42928
|
function buildRenderFromLooseProps(runtime, mode, props2) {
|
|
@@ -42642,14 +42941,14 @@ function withRuntimeBackedEnvelope(source, runtime, render) {
|
|
|
42642
42941
|
function normalizeLegacyInteractiveRenderProps(runtime, mode, props2) {
|
|
42643
42942
|
const source = props2;
|
|
42644
42943
|
const render = props2["render"];
|
|
42645
|
-
if (!
|
|
42944
|
+
if (!isRecord5(render)) {
|
|
42646
42945
|
return withRuntimeBackedEnvelope(
|
|
42647
42946
|
source,
|
|
42648
42947
|
runtime,
|
|
42649
42948
|
buildRenderFromLooseProps(runtime, mode, props2)
|
|
42650
42949
|
);
|
|
42651
42950
|
}
|
|
42652
|
-
if (
|
|
42951
|
+
if (isRecord5(render["hydration"])) {
|
|
42653
42952
|
return withRuntimeBackedEnvelope(
|
|
42654
42953
|
source,
|
|
42655
42954
|
runtime,
|
|
@@ -42659,7 +42958,7 @@ function normalizeLegacyInteractiveRenderProps(runtime, mode, props2) {
|
|
|
42659
42958
|
}
|
|
42660
42959
|
);
|
|
42661
42960
|
}
|
|
42662
|
-
if (!
|
|
42961
|
+
if (!isRecord5(render["display"])) {
|
|
42663
42962
|
return withRuntimeBackedEnvelope(
|
|
42664
42963
|
source,
|
|
42665
42964
|
runtime,
|