@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
|
@@ -465,6 +465,92 @@ function encodePublicProductCategorySelector(selector) {
|
|
|
465
465
|
};
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
|
+
function isRecord(value) {
|
|
469
|
+
return typeof value === "object" && value !== null;
|
|
470
|
+
}
|
|
471
|
+
function isJsonResponseContentType(contentType) {
|
|
472
|
+
if (!contentType) return false;
|
|
473
|
+
const mimeType = contentType.split(";", 1)[0]?.trim().toLowerCase() ?? "";
|
|
474
|
+
return mimeType === "application/json" || mimeType.endsWith("+json");
|
|
475
|
+
}
|
|
476
|
+
function getResponseContentType(response) {
|
|
477
|
+
return response.headers.get("content-type");
|
|
478
|
+
}
|
|
479
|
+
async function parseJsonBody(response) {
|
|
480
|
+
const rawText = await response.text();
|
|
481
|
+
if (rawText.trim().length === 0) {
|
|
482
|
+
return { kind: "empty-body" };
|
|
483
|
+
}
|
|
484
|
+
try {
|
|
485
|
+
return { kind: "success", value: JSON.parse(rawText) };
|
|
486
|
+
} catch {
|
|
487
|
+
return { kind: "invalid-json" };
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
function getBlockApiErrorDetails(data) {
|
|
491
|
+
if (!isRecord(data)) {
|
|
492
|
+
return {};
|
|
493
|
+
}
|
|
494
|
+
const nestedError = isRecord(data.error) ? data.error : void 0;
|
|
495
|
+
const message = typeof nestedError?.message === "string" ? nestedError.message : typeof data.message === "string" ? data.message : void 0;
|
|
496
|
+
const code = typeof nestedError?.code === "string" ? nestedError.code : typeof data.code === "string" ? data.code : void 0;
|
|
497
|
+
return { message, code };
|
|
498
|
+
}
|
|
499
|
+
function buildUnexpectedJsonResponseMessage(parseResult) {
|
|
500
|
+
switch (parseResult.kind) {
|
|
501
|
+
case "empty-body":
|
|
502
|
+
return "Expected JSON response body but received an empty response";
|
|
503
|
+
case "invalid-json":
|
|
504
|
+
return "Expected JSON response but received invalid JSON";
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
async function extractErrorDetails(response) {
|
|
508
|
+
const contentType = getResponseContentType(response);
|
|
509
|
+
const fallbackMessage = `Request failed: ${response.statusText}`;
|
|
510
|
+
if (!isJsonResponseContentType(contentType)) {
|
|
511
|
+
return {
|
|
512
|
+
message: `${fallbackMessage} (received ${contentType ?? "unknown content type"})`
|
|
513
|
+
};
|
|
514
|
+
}
|
|
515
|
+
const parseResult = await parseJsonBody(response);
|
|
516
|
+
switch (parseResult.kind) {
|
|
517
|
+
case "success": {
|
|
518
|
+
const details = getBlockApiErrorDetails(parseResult.value);
|
|
519
|
+
return {
|
|
520
|
+
message: details.message ?? fallbackMessage,
|
|
521
|
+
code: details.code
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
case "invalid-json":
|
|
525
|
+
return {
|
|
526
|
+
message: `${fallbackMessage} (received invalid JSON)`
|
|
527
|
+
};
|
|
528
|
+
case "empty-body":
|
|
529
|
+
return {
|
|
530
|
+
message: `${fallbackMessage} (received an empty response)`
|
|
531
|
+
};
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
async function parseJsonApiResponse(response) {
|
|
535
|
+
if (response.status === 204 || response.status === 205) {
|
|
536
|
+
return void 0;
|
|
537
|
+
}
|
|
538
|
+
const contentType = getResponseContentType(response);
|
|
539
|
+
if (!isJsonResponseContentType(contentType)) {
|
|
540
|
+
throw new BlockApiError(
|
|
541
|
+
`Expected JSON response but received ${contentType ?? "unknown content type"}`,
|
|
542
|
+
response.status
|
|
543
|
+
);
|
|
544
|
+
}
|
|
545
|
+
const parseResult = await parseJsonBody(response);
|
|
546
|
+
if (parseResult.kind !== "success") {
|
|
547
|
+
throw new BlockApiError(
|
|
548
|
+
buildUnexpectedJsonResponseMessage(parseResult),
|
|
549
|
+
response.status
|
|
550
|
+
);
|
|
551
|
+
}
|
|
552
|
+
return parseResult.value;
|
|
553
|
+
}
|
|
468
554
|
function getAuthHeaders(auth) {
|
|
469
555
|
switch (auth.type) {
|
|
470
556
|
case "api-key":
|
|
@@ -521,21 +607,10 @@ function createBlockApi(config) {
|
|
|
521
607
|
const doFetch = async () => {
|
|
522
608
|
const response = await fetch(url, fetchOptions);
|
|
523
609
|
if (!response.ok) {
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
try {
|
|
527
|
-
const errorData = await response.json();
|
|
528
|
-
if (typeof errorData.error?.message === "string") {
|
|
529
|
-
errorMessage = errorData.error.message;
|
|
530
|
-
} else if (typeof errorData.message === "string") {
|
|
531
|
-
errorMessage = errorData.message;
|
|
532
|
-
}
|
|
533
|
-
errorCode = errorData.error?.code || errorData.code;
|
|
534
|
-
} catch {
|
|
535
|
-
}
|
|
536
|
-
throw new BlockApiError(errorMessage, response.status, errorCode);
|
|
610
|
+
const details = await extractErrorDetails(response);
|
|
611
|
+
throw new BlockApiError(details.message, response.status, details.code);
|
|
537
612
|
}
|
|
538
|
-
const json = await response
|
|
613
|
+
const json = await parseJsonApiResponse(response);
|
|
539
614
|
if (isApiSuccessResponse(json)) {
|
|
540
615
|
return json.data;
|
|
541
616
|
}
|
|
@@ -1520,6 +1595,15 @@ var init_layout = __esm({
|
|
|
1520
1595
|
|
|
1521
1596
|
// ../theme-core/src/buttons/types.ts
|
|
1522
1597
|
import { z } from "zod";
|
|
1598
|
+
function isVariantRole(value) {
|
|
1599
|
+
return VARIANT_ROLES.includes(value);
|
|
1600
|
+
}
|
|
1601
|
+
function asSpecialVariantId(value) {
|
|
1602
|
+
if (value.length === 0) {
|
|
1603
|
+
throw new Error("SpecialVariantId must be a non-empty string");
|
|
1604
|
+
}
|
|
1605
|
+
return value;
|
|
1606
|
+
}
|
|
1523
1607
|
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;
|
|
1524
1608
|
var init_types = __esm({
|
|
1525
1609
|
"../theme-core/src/buttons/types.ts"() {
|
|
@@ -1672,6 +1756,48 @@ var init_types = __esm({
|
|
|
1672
1756
|
}
|
|
1673
1757
|
});
|
|
1674
1758
|
|
|
1759
|
+
// ../theme-core/src/buttons/classNames.ts
|
|
1760
|
+
function parseThemeButtonVariantId(value) {
|
|
1761
|
+
const normalized = value?.trim() ?? "";
|
|
1762
|
+
if (normalized.length === 0) {
|
|
1763
|
+
return null;
|
|
1764
|
+
}
|
|
1765
|
+
if (normalized === DEFAULT_VARIANT_ALIAS_ID) {
|
|
1766
|
+
return DEFAULT_VARIANT_ALIAS_ID;
|
|
1767
|
+
}
|
|
1768
|
+
return isVariantRole(normalized) ? normalized : asSpecialVariantId(normalized);
|
|
1769
|
+
}
|
|
1770
|
+
function themeButtonVariantClassNames(variant) {
|
|
1771
|
+
if (variant === DEFAULT_VARIANT_ALIAS_ID) {
|
|
1772
|
+
return [variant];
|
|
1773
|
+
}
|
|
1774
|
+
return [variant, `button-${variant}`];
|
|
1775
|
+
}
|
|
1776
|
+
function themeButtonSizeClassName(size) {
|
|
1777
|
+
return `btn-${size}`;
|
|
1778
|
+
}
|
|
1779
|
+
function themeButtonSelector(variant, size) {
|
|
1780
|
+
const baseSelector = `.${variant}`;
|
|
1781
|
+
if (!size) {
|
|
1782
|
+
return baseSelector;
|
|
1783
|
+
}
|
|
1784
|
+
return `${baseSelector}.${themeButtonSizeClassName(size)}`;
|
|
1785
|
+
}
|
|
1786
|
+
function themeButtonClassName(spec) {
|
|
1787
|
+
const classes = [
|
|
1788
|
+
...themeButtonVariantClassNames(spec.variant),
|
|
1789
|
+
themeButtonSizeClassName(spec.size),
|
|
1790
|
+
spec.extraClassName
|
|
1791
|
+
];
|
|
1792
|
+
return classes.filter(Boolean).join(" ");
|
|
1793
|
+
}
|
|
1794
|
+
var init_classNames = __esm({
|
|
1795
|
+
"../theme-core/src/buttons/classNames.ts"() {
|
|
1796
|
+
"use strict";
|
|
1797
|
+
init_types();
|
|
1798
|
+
}
|
|
1799
|
+
});
|
|
1800
|
+
|
|
1675
1801
|
// ../theme-core/src/tokens/resolver.ts
|
|
1676
1802
|
var TokenResolver;
|
|
1677
1803
|
var init_resolver = __esm({
|
|
@@ -3345,17 +3471,25 @@ function resolveAliasSource(enabled) {
|
|
|
3345
3471
|
}
|
|
3346
3472
|
function variantChunks(variant, global, themeSizes, themeId, tokens, theme) {
|
|
3347
3473
|
const out = [];
|
|
3348
|
-
|
|
3349
|
-
|
|
3474
|
+
const variantId = parseButtonVariantIdForCss(variant.id);
|
|
3475
|
+
out.push(variantBaseRule(variant, variantId, global, themeId, tokens, theme));
|
|
3476
|
+
const hoverBg = variantHoverBackgroundRule(variant, variantId, global, themeId, tokens);
|
|
3350
3477
|
if (hoverBg) out.push(hoverBg);
|
|
3351
3478
|
const effects = variantEffectsCss(variant, themeId, tokens, theme);
|
|
3352
3479
|
if (effects) out.push({ raw: effects });
|
|
3353
|
-
out.push(...variantDisabledRules(
|
|
3354
|
-
out.push(...variantSizeRules(variant, themeSizes, themeId));
|
|
3480
|
+
out.push(...variantDisabledRules(variantId, themeId));
|
|
3481
|
+
out.push(...variantSizeRules(variant, variantId, themeSizes, themeId));
|
|
3355
3482
|
return out;
|
|
3356
3483
|
}
|
|
3357
|
-
function
|
|
3358
|
-
const
|
|
3484
|
+
function parseButtonVariantIdForCss(value) {
|
|
3485
|
+
const variantId = parseThemeButtonVariantId(value);
|
|
3486
|
+
if (!variantId) {
|
|
3487
|
+
throw new Error("Button variant id must be a non-empty string");
|
|
3488
|
+
}
|
|
3489
|
+
return variantId;
|
|
3490
|
+
}
|
|
3491
|
+
function variantBaseRule(variant, variantId, global, themeId, tokens, theme) {
|
|
3492
|
+
const selector = `:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId)}`;
|
|
3359
3493
|
const decls = [];
|
|
3360
3494
|
decls.push(["font-weight", String(global.fontWeight)]);
|
|
3361
3495
|
decls.push(["font-family", resolveFontFamily(global)]);
|
|
@@ -3388,13 +3522,13 @@ function variantBaseRule(variant, global, themeId, tokens, theme) {
|
|
|
3388
3522
|
}
|
|
3389
3523
|
return rule(selector, decls);
|
|
3390
3524
|
}
|
|
3391
|
-
function variantHoverBackgroundRule(variant, global, themeId, tokens) {
|
|
3525
|
+
function variantHoverBackgroundRule(variant, variantId, global, themeId, tokens) {
|
|
3392
3526
|
let hoverToken = variant.hoverBackgroundToken;
|
|
3393
3527
|
if (!hoverToken && global.hoverColor === "token" && global.hoverColorToken) {
|
|
3394
3528
|
hoverToken = global.hoverColorToken;
|
|
3395
3529
|
}
|
|
3396
3530
|
if (!hoverToken) return null;
|
|
3397
|
-
return rule(`:where([data-theme-scope="${themeId}"])
|
|
3531
|
+
return rule(`:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId)}:hover`, [
|
|
3398
3532
|
["background-color", tokens.getColor(hoverToken)]
|
|
3399
3533
|
]);
|
|
3400
3534
|
}
|
|
@@ -3414,8 +3548,8 @@ function variantEffectsCss(variant, themeId, tokens, theme) {
|
|
|
3414
3548
|
theme
|
|
3415
3549
|
});
|
|
3416
3550
|
}
|
|
3417
|
-
function variantDisabledRules(
|
|
3418
|
-
const base = `:where([data-theme-scope="${themeId}"])
|
|
3551
|
+
function variantDisabledRules(variantId, themeId) {
|
|
3552
|
+
const base = `:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId)}:disabled`;
|
|
3419
3553
|
const disabledSelectors = [base, `${base}:hover`, `${base}:active`, `${base}:focus`];
|
|
3420
3554
|
const pseudoSelectors = [`${base}::before`, `${base}::after`];
|
|
3421
3555
|
return [
|
|
@@ -3433,12 +3567,12 @@ function variantDisabledRules(variant, themeId) {
|
|
|
3433
3567
|
])
|
|
3434
3568
|
];
|
|
3435
3569
|
}
|
|
3436
|
-
function variantSizeRules(variant, themeSizes, themeId) {
|
|
3570
|
+
function variantSizeRules(variant, variantId, themeSizes, themeId) {
|
|
3437
3571
|
const borderWidth = variant.border ? BORDER_WIDTH_MAP[variant.border.widthClass] || "1px" : "0px";
|
|
3438
3572
|
const rules = [];
|
|
3439
3573
|
for (const sizeName of BUTTON_SIZE_NAMES) {
|
|
3440
3574
|
const config = resolveSizeConfig(variant, sizeName, themeSizes);
|
|
3441
|
-
const selector = `:where([data-theme-scope="${themeId}"])
|
|
3575
|
+
const selector = `:where([data-theme-scope="${themeId}"]) ${themeButtonSelector(variantId, sizeName)}`;
|
|
3442
3576
|
const decls = [];
|
|
3443
3577
|
for (const decl of paddingDeclarations(config.padding, borderWidth)) decls.push(decl);
|
|
3444
3578
|
if (config.fontSize) {
|
|
@@ -3501,6 +3635,7 @@ var init_generateButtonCss = __esm({
|
|
|
3501
3635
|
"../theme-core/src/buttons/generateButtonCss.ts"() {
|
|
3502
3636
|
"use strict";
|
|
3503
3637
|
init_types();
|
|
3638
|
+
init_classNames();
|
|
3504
3639
|
init_resolver();
|
|
3505
3640
|
init_generateEffectsCSS();
|
|
3506
3641
|
init_constants();
|
|
@@ -4181,6 +4316,7 @@ var init_buttons = __esm({
|
|
|
4181
4316
|
"../theme-core/src/buttons/index.ts"() {
|
|
4182
4317
|
"use strict";
|
|
4183
4318
|
init_types();
|
|
4319
|
+
init_classNames();
|
|
4184
4320
|
init_generateButtonCss();
|
|
4185
4321
|
init_generateDefaultButtonSystem();
|
|
4186
4322
|
init_constants();
|
|
@@ -4830,10 +4966,71 @@ var init_participants = __esm({
|
|
|
4830
4966
|
});
|
|
4831
4967
|
|
|
4832
4968
|
// ../core/src/participant-identity.ts
|
|
4969
|
+
var PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD, PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS;
|
|
4833
4970
|
var init_participant_identity = __esm({
|
|
4834
4971
|
"../core/src/participant-identity.ts"() {
|
|
4835
4972
|
"use strict";
|
|
4836
4973
|
init_assertNever();
|
|
4974
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD = {
|
|
4975
|
+
participant_id: {
|
|
4976
|
+
field: "participant_id",
|
|
4977
|
+
role: "canonical_link",
|
|
4978
|
+
canonicalSource: "booking_participants.id",
|
|
4979
|
+
contractAction: "tighten_in_839",
|
|
4980
|
+
notes: "Canonical person-subject link for a participation. #839 should enforce this once preflight is clean."
|
|
4981
|
+
},
|
|
4982
|
+
display_name: {
|
|
4983
|
+
field: "display_name",
|
|
4984
|
+
role: "contextual_snapshot",
|
|
4985
|
+
canonicalSource: "booking_participants.display_name for live identity",
|
|
4986
|
+
contractAction: "retain_as_snapshot",
|
|
4987
|
+
notes: "Participation-time display context. Readers must not treat it as mutable live participant identity."
|
|
4988
|
+
},
|
|
4989
|
+
email: {
|
|
4990
|
+
field: "email",
|
|
4991
|
+
role: "contextual_snapshot",
|
|
4992
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
4993
|
+
contractAction: "retain_as_snapshot",
|
|
4994
|
+
notes: "Participation-time contact snapshot used for notifications/context. Live identity belongs to the participant row."
|
|
4995
|
+
},
|
|
4996
|
+
email_normalized: {
|
|
4997
|
+
field: "email_normalized",
|
|
4998
|
+
role: "contextual_snapshot",
|
|
4999
|
+
canonicalSource: "booking_participants.email_normalized for live email identity",
|
|
5000
|
+
contractAction: "retain_as_snapshot",
|
|
5001
|
+
notes: "Normalized snapshot/dedupe helper for the participation slot, not live person authority."
|
|
5002
|
+
},
|
|
5003
|
+
phone: {
|
|
5004
|
+
field: "phone",
|
|
5005
|
+
role: "contextual_snapshot",
|
|
5006
|
+
canonicalSource: "booking_participants.phone for live phone identity",
|
|
5007
|
+
contractAction: "retain_as_snapshot",
|
|
5008
|
+
notes: "Participation-time phone context. Live identity belongs to the participant row."
|
|
5009
|
+
},
|
|
5010
|
+
identity_state: {
|
|
5011
|
+
field: "identity_state",
|
|
5012
|
+
role: "materialization_state",
|
|
5013
|
+
canonicalSource: "booking_participants.identity_state for subject state",
|
|
5014
|
+
contractAction: "review_for_later_contract_cleanup",
|
|
5015
|
+
notes: "Slot materialization state: booker_supplied, contactable, portal_claimed, or staff_verified."
|
|
5016
|
+
},
|
|
5017
|
+
event_attendee_guest_id: {
|
|
5018
|
+
field: "event_attendee_guest_id",
|
|
5019
|
+
role: "compatibility_projection",
|
|
5020
|
+
canonicalSource: "canonical participant slot plus #838 event guest compatibility projection",
|
|
5021
|
+
contractAction: "retain_as_projection",
|
|
5022
|
+
notes: "Compatibility FK for event guest read models. It is not person identity authority."
|
|
5023
|
+
}
|
|
5024
|
+
};
|
|
5025
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATIONS = [
|
|
5026
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.participant_id,
|
|
5027
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.display_name,
|
|
5028
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email,
|
|
5029
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.email_normalized,
|
|
5030
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.phone,
|
|
5031
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.identity_state,
|
|
5032
|
+
PARTICIPANT_PARTICIPATION_IDENTITY_FIELD_CLASSIFICATION_BY_FIELD.event_attendee_guest_id
|
|
5033
|
+
];
|
|
4837
5034
|
}
|
|
4838
5035
|
});
|
|
4839
5036
|
|
|
@@ -4969,11 +5166,11 @@ var init_fileAssetLegacyProjection = __esm({
|
|
|
4969
5166
|
});
|
|
4970
5167
|
|
|
4971
5168
|
// ../media-core/src/typeGuards.ts
|
|
4972
|
-
function
|
|
5169
|
+
function isRecord2(value) {
|
|
4973
5170
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
4974
5171
|
}
|
|
4975
5172
|
function asRecord(value) {
|
|
4976
|
-
return
|
|
5173
|
+
return isRecord2(value) ? value : void 0;
|
|
4977
5174
|
}
|
|
4978
5175
|
var init_typeGuards = __esm({
|
|
4979
5176
|
"../media-core/src/typeGuards.ts"() {
|
|
@@ -6717,7 +6914,7 @@ var init_Text = __esm({
|
|
|
6717
6914
|
});
|
|
6718
6915
|
|
|
6719
6916
|
// ../blocks/src/lib/typeGuards.ts
|
|
6720
|
-
function
|
|
6917
|
+
function isRecord3(value) {
|
|
6721
6918
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
6722
6919
|
}
|
|
6723
6920
|
function isObjectRecord(value) {
|
|
@@ -6769,11 +6966,11 @@ function markdownToTipTapDoc(markdown) {
|
|
|
6769
6966
|
};
|
|
6770
6967
|
}
|
|
6771
6968
|
function coerceRichTextDoc(value) {
|
|
6772
|
-
const raw =
|
|
6969
|
+
const raw = isRecord3(value) && "doc" in value ? value.doc : value;
|
|
6773
6970
|
if (typeof raw === "string") {
|
|
6774
6971
|
return markdownToTipTapDoc(raw);
|
|
6775
6972
|
}
|
|
6776
|
-
if (
|
|
6973
|
+
if (isRecord3(raw) && typeof raw.type === "string") {
|
|
6777
6974
|
return raw;
|
|
6778
6975
|
}
|
|
6779
6976
|
return null;
|
|
@@ -6833,11 +7030,12 @@ var init_basic = __esm({
|
|
|
6833
7030
|
}
|
|
6834
7031
|
return null;
|
|
6835
7032
|
}
|
|
6836
|
-
const resolvedVariantId =
|
|
6837
|
-
const
|
|
6838
|
-
|
|
6839
|
-
|
|
6840
|
-
|
|
7033
|
+
const resolvedVariantId = parseThemeButtonVariantId(variantId);
|
|
7034
|
+
const combinedClassName = resolvedVariantId ? themeButtonClassName({
|
|
7035
|
+
variant: resolvedVariantId,
|
|
7036
|
+
size,
|
|
7037
|
+
extraClassName: className
|
|
7038
|
+
}) : className;
|
|
6841
7039
|
if (resolvedHref) {
|
|
6842
7040
|
return /* @__PURE__ */ jsx10(
|
|
6843
7041
|
"a",
|
|
@@ -7842,19 +8040,6 @@ var init_media2 = __esm({
|
|
|
7842
8040
|
}
|
|
7843
8041
|
});
|
|
7844
8042
|
|
|
7845
|
-
// ../blocks/src/system/runtime/shared/themedButtonClass.ts
|
|
7846
|
-
function themedButtonClass(spec) {
|
|
7847
|
-
const { variant, size, extraClassName } = spec;
|
|
7848
|
-
const normalizedVariant = variant.trim();
|
|
7849
|
-
const variantClasses = normalizedVariant ? [normalizedVariant, `button-${normalizedVariant}`] : [];
|
|
7850
|
-
return [...variantClasses, `btn-${size}`, extraClassName].filter(Boolean).join(" ");
|
|
7851
|
-
}
|
|
7852
|
-
var init_themedButtonClass = __esm({
|
|
7853
|
-
"../blocks/src/system/runtime/shared/themedButtonClass.ts"() {
|
|
7854
|
-
"use strict";
|
|
7855
|
-
}
|
|
7856
|
-
});
|
|
7857
|
-
|
|
7858
8043
|
// ../blocks/src/system/runtime/nodes/file-download.tsx
|
|
7859
8044
|
import { jsx as jsx13, jsxs } from "react/jsx-runtime";
|
|
7860
8045
|
function isDownloadableMediaType(type) {
|
|
@@ -7928,7 +8113,7 @@ function FileDownloadNode({
|
|
|
7928
8113
|
{
|
|
7929
8114
|
href,
|
|
7930
8115
|
download: filename,
|
|
7931
|
-
className:
|
|
8116
|
+
className: themeButtonClassName({
|
|
7932
8117
|
variant,
|
|
7933
8118
|
size: "md",
|
|
7934
8119
|
extraClassName: "rb-inline-flex rb-shrink-0 rb-items-center rb-justify-center rb-gap-2"
|
|
@@ -7948,7 +8133,7 @@ var init_file_download = __esm({
|
|
|
7948
8133
|
init_lucide_react();
|
|
7949
8134
|
init_colorStyles();
|
|
7950
8135
|
init_media2();
|
|
7951
|
-
|
|
8136
|
+
init_buttons();
|
|
7952
8137
|
init_media();
|
|
7953
8138
|
FILE_DOWNLOAD_BUTTON_VARIANTS = ["primary", "secondary", "outline", "link"];
|
|
7954
8139
|
}
|
|
@@ -11560,7 +11745,7 @@ var init_EventCard = __esm({
|
|
|
11560
11745
|
init_EventCardIcons();
|
|
11561
11746
|
init_eventCapacity();
|
|
11562
11747
|
init_utils();
|
|
11563
|
-
|
|
11748
|
+
init_buttons();
|
|
11564
11749
|
EventCard = ({
|
|
11565
11750
|
event,
|
|
11566
11751
|
cardVariant = "default",
|
|
@@ -11586,7 +11771,7 @@ var init_EventCard = __esm({
|
|
|
11586
11771
|
const isSoldOut = cta.hidden;
|
|
11587
11772
|
const { available: spotsLeft } = getEventAvailability(event);
|
|
11588
11773
|
const cardClass = `card-${cardVariant}`;
|
|
11589
|
-
const buttonClass =
|
|
11774
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
11590
11775
|
const title = event.title;
|
|
11591
11776
|
const summary = event.presentation?.summary ?? event.description;
|
|
11592
11777
|
const image = event.presentation?.image ?? null;
|
|
@@ -11668,7 +11853,7 @@ var init_EventCompactRow = __esm({
|
|
|
11668
11853
|
"use strict";
|
|
11669
11854
|
init_utils();
|
|
11670
11855
|
init_EventCardIcons();
|
|
11671
|
-
|
|
11856
|
+
init_buttons();
|
|
11672
11857
|
EventCompactRow = ({
|
|
11673
11858
|
event,
|
|
11674
11859
|
buttonVariant = "primary",
|
|
@@ -11680,7 +11865,7 @@ var init_EventCompactRow = __esm({
|
|
|
11680
11865
|
const price = formatEventPrice(event);
|
|
11681
11866
|
const teacherLine = formatEventTeacherLine(event);
|
|
11682
11867
|
const cta = resolveEventCta(event, buttonText);
|
|
11683
|
-
const buttonClass =
|
|
11868
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
|
|
11684
11869
|
return /* @__PURE__ */ jsxs17("div", { className: "event-compact-row", children: [
|
|
11685
11870
|
/* @__PURE__ */ jsxs17("div", { className: "event-compact-row-content", children: [
|
|
11686
11871
|
/* @__PURE__ */ jsxs17("div", { className: "event-compact-row-top", children: [
|
|
@@ -11752,7 +11937,7 @@ var init_EventSpotlight = __esm({
|
|
|
11752
11937
|
"../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx"() {
|
|
11753
11938
|
"use strict";
|
|
11754
11939
|
init_shared3();
|
|
11755
|
-
|
|
11940
|
+
init_buttons();
|
|
11756
11941
|
EventSpotlight = ({
|
|
11757
11942
|
events,
|
|
11758
11943
|
layout = "grid",
|
|
@@ -11774,7 +11959,7 @@ var init_EventSpotlight = __esm({
|
|
|
11774
11959
|
}
|
|
11775
11960
|
const containerClass = getContainerClass(layout, columns);
|
|
11776
11961
|
const cardOrientation = getCardOrientation(layout);
|
|
11777
|
-
const buttonClass =
|
|
11962
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
11778
11963
|
return /* @__PURE__ */ jsxs19("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
|
|
11779
11964
|
/* @__PURE__ */ jsx33("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx33(
|
|
11780
11965
|
EventCard,
|
|
@@ -23488,7 +23673,16 @@ var init_view3 = __esm({
|
|
|
23488
23673
|
import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
23489
23674
|
function renderServerPendingAction(label, soldOut) {
|
|
23490
23675
|
return /* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
23491
|
-
/* @__PURE__ */ jsx37(
|
|
23676
|
+
/* @__PURE__ */ jsx37(
|
|
23677
|
+
"button",
|
|
23678
|
+
{
|
|
23679
|
+
type: "button",
|
|
23680
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
23681
|
+
disabled: true,
|
|
23682
|
+
"aria-disabled": "true",
|
|
23683
|
+
children: soldOut ? "Sold out" : label
|
|
23684
|
+
}
|
|
23685
|
+
),
|
|
23492
23686
|
!soldOut ? /* @__PURE__ */ jsx37("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
|
|
23493
23687
|
] });
|
|
23494
23688
|
}
|
|
@@ -23508,7 +23702,14 @@ function ProductListServerContent(props2) {
|
|
|
23508
23702
|
),
|
|
23509
23703
|
actions: /* @__PURE__ */ jsxs22(Fragment5, { children: [
|
|
23510
23704
|
renderServerPendingAction(card.actionLabel, card.soldOut),
|
|
23511
|
-
card.path ? /* @__PURE__ */ jsx37(
|
|
23705
|
+
card.path ? /* @__PURE__ */ jsx37(
|
|
23706
|
+
"a",
|
|
23707
|
+
{
|
|
23708
|
+
href: card.path,
|
|
23709
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
23710
|
+
children: "View details"
|
|
23711
|
+
}
|
|
23712
|
+
) : null
|
|
23512
23713
|
] })
|
|
23513
23714
|
},
|
|
23514
23715
|
card.productId
|
|
@@ -23551,6 +23752,7 @@ function CheckoutServerContent(props2) {
|
|
|
23551
23752
|
var init_shop_commerce_server = __esm({
|
|
23552
23753
|
"../blocks/src/system/runtime/nodes/shop-commerce.server.tsx"() {
|
|
23553
23754
|
"use strict";
|
|
23755
|
+
init_buttons();
|
|
23554
23756
|
init_RichText();
|
|
23555
23757
|
init_carousel_server();
|
|
23556
23758
|
init_richText_coerce();
|
|
@@ -24099,7 +24301,7 @@ function renderCalendarGrid(display) {
|
|
|
24099
24301
|
"button",
|
|
24100
24302
|
{
|
|
24101
24303
|
type: "button",
|
|
24102
|
-
className:
|
|
24304
|
+
className: themeButtonClassName({
|
|
24103
24305
|
variant: display.buttonVariant,
|
|
24104
24306
|
size: "sm"
|
|
24105
24307
|
}),
|
|
@@ -24185,7 +24387,7 @@ function renderTimetableSsr(display) {
|
|
|
24185
24387
|
"button",
|
|
24186
24388
|
{
|
|
24187
24389
|
type: "button",
|
|
24188
|
-
className:
|
|
24390
|
+
className: themeButtonClassName({
|
|
24189
24391
|
variant: display.buttonVariant,
|
|
24190
24392
|
size: "sm"
|
|
24191
24393
|
}),
|
|
@@ -24313,7 +24515,7 @@ var init_EventCalendar_server = __esm({
|
|
|
24313
24515
|
init_renderEventListItem();
|
|
24314
24516
|
init_utils();
|
|
24315
24517
|
init_timetableModel();
|
|
24316
|
-
|
|
24518
|
+
init_buttons();
|
|
24317
24519
|
EventCalendarSSR = (props2) => {
|
|
24318
24520
|
const islandProps = buildEventCalendarInteractiveIslandProps(props2);
|
|
24319
24521
|
const display = islandProps.render.display;
|
|
@@ -24444,7 +24646,7 @@ var init_form_server = __esm({
|
|
|
24444
24646
|
"use strict";
|
|
24445
24647
|
init_clsx();
|
|
24446
24648
|
init_ssr();
|
|
24447
|
-
|
|
24649
|
+
init_buttons();
|
|
24448
24650
|
init_form_interactive();
|
|
24449
24651
|
FormNodeSSR = ({
|
|
24450
24652
|
blockId,
|
|
@@ -24582,7 +24784,7 @@ var init_form_server = __esm({
|
|
|
24582
24784
|
"button",
|
|
24583
24785
|
{
|
|
24584
24786
|
type: "submit",
|
|
24585
|
-
className:
|
|
24787
|
+
className: themeButtonClassName({
|
|
24586
24788
|
variant: "primary",
|
|
24587
24789
|
size: "md",
|
|
24588
24790
|
extraClassName: "rb-w-full rb-sm-w-auto"
|
|
@@ -24675,7 +24877,7 @@ function NewsletterFormSSR({
|
|
|
24675
24877
|
"button",
|
|
24676
24878
|
{
|
|
24677
24879
|
type: "submit",
|
|
24678
|
-
className:
|
|
24880
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
24679
24881
|
children: display.buttonLabel
|
|
24680
24882
|
}
|
|
24681
24883
|
) })
|
|
@@ -24692,7 +24894,7 @@ var init_newsletter_form_server = __esm({
|
|
|
24692
24894
|
"use strict";
|
|
24693
24895
|
init_clsx();
|
|
24694
24896
|
init_ssr();
|
|
24695
|
-
|
|
24897
|
+
init_buttons();
|
|
24696
24898
|
init_newsletter_form_interactive();
|
|
24697
24899
|
newsletter_form_server_default = NewsletterFormSSR;
|
|
24698
24900
|
}
|
|
@@ -24823,7 +25025,16 @@ function ShopSSR({
|
|
|
24823
25025
|
PassCardView,
|
|
24824
25026
|
{
|
|
24825
25027
|
display: pass,
|
|
24826
|
-
action: /* @__PURE__ */ jsx50(
|
|
25028
|
+
action: /* @__PURE__ */ jsx50(
|
|
25029
|
+
"button",
|
|
25030
|
+
{
|
|
25031
|
+
type: "button",
|
|
25032
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
25033
|
+
disabled: true,
|
|
25034
|
+
"aria-disabled": "true",
|
|
25035
|
+
children: pass.actionLabel
|
|
25036
|
+
}
|
|
25037
|
+
)
|
|
24827
25038
|
},
|
|
24828
25039
|
pass.id
|
|
24829
25040
|
)),
|
|
@@ -24831,7 +25042,16 @@ function ShopSSR({
|
|
|
24831
25042
|
MembershipCardView,
|
|
24832
25043
|
{
|
|
24833
25044
|
display: membership,
|
|
24834
|
-
action: /* @__PURE__ */ jsx50(
|
|
25045
|
+
action: /* @__PURE__ */ jsx50(
|
|
25046
|
+
"button",
|
|
25047
|
+
{
|
|
25048
|
+
type: "button",
|
|
25049
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
25050
|
+
disabled: true,
|
|
25051
|
+
"aria-disabled": "true",
|
|
25052
|
+
children: membership.actionLabel
|
|
25053
|
+
}
|
|
25054
|
+
)
|
|
24835
25055
|
},
|
|
24836
25056
|
membership.id
|
|
24837
25057
|
))
|
|
@@ -24846,6 +25066,7 @@ var shop_server_default;
|
|
|
24846
25066
|
var init_shop_server = __esm({
|
|
24847
25067
|
"../blocks/src/system/runtime/nodes/shop.server.tsx"() {
|
|
24848
25068
|
"use strict";
|
|
25069
|
+
init_buttons();
|
|
24849
25070
|
init_ssr();
|
|
24850
25071
|
init_view3();
|
|
24851
25072
|
init_shop_interactive();
|
|
@@ -28272,7 +28493,7 @@ function MultiStepForm({
|
|
|
28272
28493
|
type: "button",
|
|
28273
28494
|
onClick: goToPrevious,
|
|
28274
28495
|
disabled: !canGoBack,
|
|
28275
|
-
className: "outline
|
|
28496
|
+
className: themeButtonClassName({ variant: "outline", size: "md" }),
|
|
28276
28497
|
children: backButtonLabel
|
|
28277
28498
|
}
|
|
28278
28499
|
),
|
|
@@ -28282,7 +28503,11 @@ function MultiStepForm({
|
|
|
28282
28503
|
type: "button",
|
|
28283
28504
|
onClick: goToNext,
|
|
28284
28505
|
disabled: !canGoNext,
|
|
28285
|
-
className:
|
|
28506
|
+
className: themeButtonClassName({
|
|
28507
|
+
variant: "primary",
|
|
28508
|
+
size: "md",
|
|
28509
|
+
extraClassName: "rb-flex-1"
|
|
28510
|
+
}),
|
|
28286
28511
|
children: [
|
|
28287
28512
|
(isValidating || isSubmitting) && /* @__PURE__ */ jsx52(
|
|
28288
28513
|
SpinnerNode,
|
|
@@ -28398,6 +28623,7 @@ var init_MultiStepForm = __esm({
|
|
|
28398
28623
|
"../blocks/src/system/runtime/components/multi-step/MultiStepForm.tsx"() {
|
|
28399
28624
|
"use strict";
|
|
28400
28625
|
"use client";
|
|
28626
|
+
init_buttons();
|
|
28401
28627
|
init_MultiStepContext();
|
|
28402
28628
|
init_useMultiStep();
|
|
28403
28629
|
init_spinner();
|
|
@@ -29660,7 +29886,10 @@ function PaymentOptionSelectionStep({
|
|
|
29660
29886
|
"button",
|
|
29661
29887
|
{
|
|
29662
29888
|
type: "button",
|
|
29663
|
-
className:
|
|
29889
|
+
className: themeButtonClassName({
|
|
29890
|
+
variant: isSelected ? "primary" : "outline",
|
|
29891
|
+
size: "md"
|
|
29892
|
+
}),
|
|
29664
29893
|
style: paymentOptionLayoutStyle,
|
|
29665
29894
|
onClick: () => updateData({
|
|
29666
29895
|
selectedAppointmentPackageId: appointmentPackage.customerPassId,
|
|
@@ -29709,7 +29938,10 @@ function PaymentOptionSelectionStep({
|
|
|
29709
29938
|
"button",
|
|
29710
29939
|
{
|
|
29711
29940
|
type: "button",
|
|
29712
|
-
className:
|
|
29941
|
+
className: themeButtonClassName({
|
|
29942
|
+
variant: isSelected ? "primary" : "outline",
|
|
29943
|
+
size: "md"
|
|
29944
|
+
}),
|
|
29713
29945
|
style: paymentOptionLayoutStyle,
|
|
29714
29946
|
onClick: () => updateData({
|
|
29715
29947
|
selectedAppointmentPackageId: void 0,
|
|
@@ -29738,6 +29970,7 @@ var init_PaymentOptionSelectionStep = __esm({
|
|
|
29738
29970
|
"../blocks/src/system/runtime/components/booking/PaymentOptionSelectionStep.tsx"() {
|
|
29739
29971
|
"use strict";
|
|
29740
29972
|
"use client";
|
|
29973
|
+
init_buttons();
|
|
29741
29974
|
init_api();
|
|
29742
29975
|
init_MultiStepContext();
|
|
29743
29976
|
init_booking_form_state();
|
|
@@ -31370,6 +31603,7 @@ var init_booking_form_client = __esm({
|
|
|
31370
31603
|
init_noop();
|
|
31371
31604
|
init_client2();
|
|
31372
31605
|
init_src3();
|
|
31606
|
+
init_buttons();
|
|
31373
31607
|
init_api();
|
|
31374
31608
|
init_MultiStepForm();
|
|
31375
31609
|
init_SuccessMessage();
|
|
@@ -31606,7 +31840,7 @@ var init_booking_form_client = __esm({
|
|
|
31606
31840
|
"button",
|
|
31607
31841
|
{
|
|
31608
31842
|
type: "button",
|
|
31609
|
-
className: "secondary
|
|
31843
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
31610
31844
|
onClick: clearFeedback,
|
|
31611
31845
|
children: "Dismiss"
|
|
31612
31846
|
}
|
|
@@ -32981,7 +33215,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
32981
33215
|
init_lucide_react();
|
|
32982
33216
|
init_utils3();
|
|
32983
33217
|
init_spinner();
|
|
32984
|
-
|
|
33218
|
+
init_buttons();
|
|
32985
33219
|
init_CheckIcon2();
|
|
32986
33220
|
init_SelectableOptionCard();
|
|
32987
33221
|
PaymentSelectionStep = ({
|
|
@@ -33082,7 +33316,7 @@ var init_PaymentSelectionStep = __esm({
|
|
|
33082
33316
|
"button",
|
|
33083
33317
|
{
|
|
33084
33318
|
type: "button",
|
|
33085
|
-
className:
|
|
33319
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
33086
33320
|
disabled: !email.trim(),
|
|
33087
33321
|
onClick: onRequestLogin,
|
|
33088
33322
|
children: "Email me a login link"
|
|
@@ -34742,7 +34976,7 @@ function MagicLinkForm({
|
|
|
34742
34976
|
"button",
|
|
34743
34977
|
{
|
|
34744
34978
|
type: "button",
|
|
34745
|
-
className: classPrefix === "cp" ? "secondary" : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
|
|
34979
|
+
className: classPrefix === "cp" ? themeButtonClassName({ variant: "secondary", size: "md" }) : `${classPrefix}-modal-btn ${classPrefix}-modal-btn--secondary`,
|
|
34746
34980
|
onClick: handleReset,
|
|
34747
34981
|
children: "Try a different email"
|
|
34748
34982
|
}
|
|
@@ -34770,7 +35004,7 @@ function MagicLinkForm({
|
|
|
34770
35004
|
"button",
|
|
34771
35005
|
{
|
|
34772
35006
|
type: "submit",
|
|
34773
|
-
className: classPrefix === "cp" ? "primary" : `${classPrefix}-modal-btn`,
|
|
35007
|
+
className: classPrefix === "cp" ? themeButtonClassName({ variant: "primary", size: "md" }) : `${classPrefix}-modal-btn`,
|
|
34774
35008
|
disabled: !email.trim() || loading,
|
|
34775
35009
|
children: loading ? "Sending..." : buttonText
|
|
34776
35010
|
}
|
|
@@ -34781,6 +35015,7 @@ var init_MagicLinkForm = __esm({
|
|
|
34781
35015
|
"../blocks/src/system/runtime/nodes/shared/MagicLinkForm.tsx"() {
|
|
34782
35016
|
"use strict";
|
|
34783
35017
|
"use client";
|
|
35018
|
+
init_buttons();
|
|
34784
35019
|
init_api();
|
|
34785
35020
|
}
|
|
34786
35021
|
});
|
|
@@ -34806,7 +35041,7 @@ function EventRegistrationWizard(props2) {
|
|
|
34806
35041
|
} = props2;
|
|
34807
35042
|
const maxTicketsNum = parseInt(maxTickets, 10) || 5;
|
|
34808
35043
|
const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
|
|
34809
|
-
const buttonClass =
|
|
35044
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
34810
35045
|
const wizard = useEventRegistrationWizard({
|
|
34811
35046
|
anchorId: EVENT_REGISTRATION_ANCHOR_ID,
|
|
34812
35047
|
occurrenceContext: occurrenceContext ?? null,
|
|
@@ -34943,7 +35178,7 @@ var init_EventRegistrationWizard = __esm({
|
|
|
34943
35178
|
init_useEventRegistrationWizard();
|
|
34944
35179
|
init_MagicLinkForm();
|
|
34945
35180
|
init_spinner();
|
|
34946
|
-
|
|
35181
|
+
init_buttons();
|
|
34947
35182
|
init_event_registration2();
|
|
34948
35183
|
EVENT_REGISTRATION_ANCHOR_ID = "event-registration";
|
|
34949
35184
|
EVENT_PORTAL_AUTH_COPY = {
|
|
@@ -35389,7 +35624,7 @@ function ErrorStep2({
|
|
|
35389
35624
|
buttonVariant = "primary",
|
|
35390
35625
|
onRetry
|
|
35391
35626
|
}) {
|
|
35392
|
-
const buttonClass =
|
|
35627
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
35393
35628
|
return /* @__PURE__ */ jsxs73("div", { className: "cr-error", role: "alert", children: [
|
|
35394
35629
|
/* @__PURE__ */ jsx100(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx100(CrossIcon, {}) }),
|
|
35395
35630
|
/* @__PURE__ */ jsx100("h3", { className: "cr-error__title", children: "Enrollment Failed" }),
|
|
@@ -35401,7 +35636,7 @@ var init_ErrorStep2 = __esm({
|
|
|
35401
35636
|
"../blocks/src/system/runtime/nodes/course-registration/ErrorStep.tsx"() {
|
|
35402
35637
|
"use strict";
|
|
35403
35638
|
init_shared6();
|
|
35404
|
-
|
|
35639
|
+
init_buttons();
|
|
35405
35640
|
}
|
|
35406
35641
|
});
|
|
35407
35642
|
|
|
@@ -35413,7 +35648,7 @@ function VerifyingTimeoutStep2({
|
|
|
35413
35648
|
onCheckAgain,
|
|
35414
35649
|
supportEmail
|
|
35415
35650
|
}) {
|
|
35416
|
-
const buttonClass =
|
|
35651
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
35417
35652
|
return /* @__PURE__ */ jsxs74("div", { className: "cr-error", role: "alert", children: [
|
|
35418
35653
|
/* @__PURE__ */ jsx101(StateIcon, { variant: "warning", children: /* @__PURE__ */ jsx101(ClockIcon, {}) }),
|
|
35419
35654
|
/* @__PURE__ */ jsx101("h3", { className: "cr-error__title", children: "Payment Verification Taking Longer" }),
|
|
@@ -35430,7 +35665,7 @@ var init_VerifyingTimeoutStep2 = __esm({
|
|
|
35430
35665
|
"../blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.tsx"() {
|
|
35431
35666
|
"use strict";
|
|
35432
35667
|
init_shared6();
|
|
35433
|
-
|
|
35668
|
+
init_buttons();
|
|
35434
35669
|
}
|
|
35435
35670
|
});
|
|
35436
35671
|
|
|
@@ -35442,7 +35677,7 @@ function PaymentFailedStep2({
|
|
|
35442
35677
|
buttonVariant = "primary",
|
|
35443
35678
|
onRetry
|
|
35444
35679
|
}) {
|
|
35445
|
-
const buttonClass =
|
|
35680
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
35446
35681
|
return /* @__PURE__ */ jsxs75("div", { className: "cr-payment-failed", role: "alert", children: [
|
|
35447
35682
|
/* @__PURE__ */ jsx102(StateIcon, { variant: "error", children: /* @__PURE__ */ jsx102(CrossIcon, {}) }),
|
|
35448
35683
|
/* @__PURE__ */ jsx102("h3", { className: "cr-payment-failed__title", children: "Payment Failed" }),
|
|
@@ -35454,7 +35689,7 @@ var init_PaymentFailedStep2 = __esm({
|
|
|
35454
35689
|
"../blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.tsx"() {
|
|
35455
35690
|
"use strict";
|
|
35456
35691
|
init_shared6();
|
|
35457
|
-
|
|
35692
|
+
init_buttons();
|
|
35458
35693
|
}
|
|
35459
35694
|
});
|
|
35460
35695
|
|
|
@@ -36456,7 +36691,7 @@ function CourseRegistrationWizard(props2) {
|
|
|
36456
36691
|
handleRetry,
|
|
36457
36692
|
handleBookingModeChange
|
|
36458
36693
|
} = useCourseRegistrationWizard(props2);
|
|
36459
|
-
const buttonClass =
|
|
36694
|
+
const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
|
|
36460
36695
|
if (scopedCourses.length === 0) {
|
|
36461
36696
|
return /* @__PURE__ */ jsx106(
|
|
36462
36697
|
"div",
|
|
@@ -36866,7 +37101,7 @@ var init_CourseRegistrationWizard = __esm({
|
|
|
36866
37101
|
init_PaymentFailedStep2();
|
|
36867
37102
|
init_VerifyingTimeoutStep2();
|
|
36868
37103
|
init_spinner();
|
|
36869
|
-
|
|
37104
|
+
init_buttons();
|
|
36870
37105
|
}
|
|
36871
37106
|
});
|
|
36872
37107
|
|
|
@@ -36898,7 +37133,7 @@ var init_course_registration_client = __esm({
|
|
|
36898
37133
|
import { useEffect as useEffect19, useRef as useRef10, useState as useState15 } from "react";
|
|
36899
37134
|
import { jsx as jsx108 } from "react/jsx-runtime";
|
|
36900
37135
|
function isLeafletApi(value) {
|
|
36901
|
-
if (!
|
|
37136
|
+
if (!isRecord3(value)) return false;
|
|
36902
37137
|
return typeof value.map === "function" && typeof value.tileLayer === "function" && typeof value.marker === "function";
|
|
36903
37138
|
}
|
|
36904
37139
|
function loadLeaflet() {
|
|
@@ -37600,7 +37835,11 @@ function PassesMembershipsController({ render }) {
|
|
|
37600
37835
|
"button",
|
|
37601
37836
|
{
|
|
37602
37837
|
type: "button",
|
|
37603
|
-
className:
|
|
37838
|
+
className: themeButtonClassName({
|
|
37839
|
+
variant: "secondary",
|
|
37840
|
+
size: "sm",
|
|
37841
|
+
extraClassName: "shop__return-dismiss"
|
|
37842
|
+
}),
|
|
37604
37843
|
onClick: () => dispatch({ type: "clearReturnNotice" }),
|
|
37605
37844
|
children: "Dismiss"
|
|
37606
37845
|
}
|
|
@@ -37617,7 +37856,11 @@ function PassesMembershipsController({ render }) {
|
|
|
37617
37856
|
"button",
|
|
37618
37857
|
{
|
|
37619
37858
|
type: "button",
|
|
37620
|
-
className:
|
|
37859
|
+
className: themeButtonClassName({
|
|
37860
|
+
variant: "default",
|
|
37861
|
+
size: "md",
|
|
37862
|
+
extraClassName: "shop__cta"
|
|
37863
|
+
}),
|
|
37621
37864
|
onClick: () => handleBuyPass(pass),
|
|
37622
37865
|
children: passDisplay.actionLabel
|
|
37623
37866
|
}
|
|
@@ -37644,7 +37887,11 @@ function PassesMembershipsController({ render }) {
|
|
|
37644
37887
|
"button",
|
|
37645
37888
|
{
|
|
37646
37889
|
type: "button",
|
|
37647
|
-
className:
|
|
37890
|
+
className: themeButtonClassName({
|
|
37891
|
+
variant: "default",
|
|
37892
|
+
size: "md",
|
|
37893
|
+
extraClassName: "shop__cta"
|
|
37894
|
+
}),
|
|
37648
37895
|
onClick: () => handleSubscribe(membership),
|
|
37649
37896
|
children: membershipDisplay.actionLabel
|
|
37650
37897
|
}
|
|
@@ -37688,12 +37935,20 @@ function PassesMembershipsController({ render }) {
|
|
|
37688
37935
|
] }) : null
|
|
37689
37936
|
] }),
|
|
37690
37937
|
/* @__PURE__ */ jsxs83(ActionRow, { className: "shop__modal-warning-actions", children: [
|
|
37691
|
-
/* @__PURE__ */ jsx112("button", { type: "button", className: "secondary", onClick: closeCheckout, children: "Cancel" }),
|
|
37692
37938
|
/* @__PURE__ */ jsx112(
|
|
37693
37939
|
"button",
|
|
37694
37940
|
{
|
|
37695
37941
|
type: "button",
|
|
37696
|
-
className: "
|
|
37942
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
37943
|
+
onClick: closeCheckout,
|
|
37944
|
+
children: "Cancel"
|
|
37945
|
+
}
|
|
37946
|
+
),
|
|
37947
|
+
/* @__PURE__ */ jsx112(
|
|
37948
|
+
"button",
|
|
37949
|
+
{
|
|
37950
|
+
type: "button",
|
|
37951
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
37697
37952
|
onClick: handleConfirmDuplicate,
|
|
37698
37953
|
disabled: checkout2.submitting,
|
|
37699
37954
|
children: checkout2.submitting ? "Processing..." : "Subscribe Anyway"
|
|
@@ -37736,8 +37991,25 @@ function PassesMembershipsController({ render }) {
|
|
|
37736
37991
|
] }),
|
|
37737
37992
|
checkout2.formError ? /* @__PURE__ */ jsx112("p", { className: "shop__modal-error", role: "alert", children: checkout2.formError }) : null,
|
|
37738
37993
|
/* @__PURE__ */ jsxs83(ActionRow, { className: "shop__modal-actions", children: [
|
|
37739
|
-
/* @__PURE__ */ jsx112(
|
|
37740
|
-
|
|
37994
|
+
/* @__PURE__ */ jsx112(
|
|
37995
|
+
"button",
|
|
37996
|
+
{
|
|
37997
|
+
type: "button",
|
|
37998
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
37999
|
+
onClick: closeCheckout,
|
|
38000
|
+
disabled: checkout2.submitting,
|
|
38001
|
+
children: "Cancel"
|
|
38002
|
+
}
|
|
38003
|
+
),
|
|
38004
|
+
/* @__PURE__ */ jsx112(
|
|
38005
|
+
"button",
|
|
38006
|
+
{
|
|
38007
|
+
type: "submit",
|
|
38008
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
38009
|
+
disabled: checkout2.submitting,
|
|
38010
|
+
children: checkout2.submitting ? "Processing..." : "Continue to Payment"
|
|
38011
|
+
}
|
|
38012
|
+
)
|
|
37741
38013
|
] })
|
|
37742
38014
|
] })
|
|
37743
38015
|
] })
|
|
@@ -37750,6 +38022,7 @@ var init_shop_client = __esm({
|
|
|
37750
38022
|
"../blocks/src/system/runtime/nodes/shop.client.tsx"() {
|
|
37751
38023
|
"use strict";
|
|
37752
38024
|
"use client";
|
|
38025
|
+
init_buttons();
|
|
37753
38026
|
init_api();
|
|
37754
38027
|
init_ModalShell();
|
|
37755
38028
|
init_shared6();
|
|
@@ -37964,7 +38237,7 @@ var init_embla_carousel_autoplay_esm = __esm({
|
|
|
37964
38237
|
function isObject(subject) {
|
|
37965
38238
|
return Object.prototype.toString.call(subject) === "[object Object]";
|
|
37966
38239
|
}
|
|
37967
|
-
function
|
|
38240
|
+
function isRecord4(subject) {
|
|
37968
38241
|
return isObject(subject) || Array.isArray(subject);
|
|
37969
38242
|
}
|
|
37970
38243
|
function canUseDOM() {
|
|
@@ -37981,7 +38254,7 @@ function areOptionsEqual(optionsA, optionsB) {
|
|
|
37981
38254
|
const valueA = optionsA[key];
|
|
37982
38255
|
const valueB = optionsB[key];
|
|
37983
38256
|
if (typeof valueA === "function") return `${valueA}` === `${valueB}`;
|
|
37984
|
-
if (!
|
|
38257
|
+
if (!isRecord4(valueA) || !isRecord4(valueB)) return valueA === valueB;
|
|
37985
38258
|
return areOptionsEqual(valueA, valueB);
|
|
37986
38259
|
});
|
|
37987
38260
|
}
|
|
@@ -40075,7 +40348,7 @@ function ProductListController(props2) {
|
|
|
40075
40348
|
"button",
|
|
40076
40349
|
{
|
|
40077
40350
|
type: "button",
|
|
40078
|
-
className: "default",
|
|
40351
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40079
40352
|
onClick: () => {
|
|
40080
40353
|
const product = props2.render.hydration.products.find((candidate) => candidate.id === card.productId);
|
|
40081
40354
|
if (!product) return;
|
|
@@ -40091,7 +40364,14 @@ function ProductListController(props2) {
|
|
|
40091
40364
|
children: card.soldOut ? "Sold out" : card.actionLabel
|
|
40092
40365
|
}
|
|
40093
40366
|
),
|
|
40094
|
-
card.path ? /* @__PURE__ */ jsx114(
|
|
40367
|
+
card.path ? /* @__PURE__ */ jsx114(
|
|
40368
|
+
"a",
|
|
40369
|
+
{
|
|
40370
|
+
href: card.path,
|
|
40371
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
40372
|
+
children: "View details"
|
|
40373
|
+
}
|
|
40374
|
+
) : null
|
|
40095
40375
|
] }),
|
|
40096
40376
|
feedback: /* @__PURE__ */ jsx114(
|
|
40097
40377
|
ShopAddFeedback,
|
|
@@ -40157,7 +40437,7 @@ function ProductDetailController(props2) {
|
|
|
40157
40437
|
"button",
|
|
40158
40438
|
{
|
|
40159
40439
|
type: "button",
|
|
40160
|
-
className: "default",
|
|
40440
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40161
40441
|
disabled: display.soldOut,
|
|
40162
40442
|
onClick: () => {
|
|
40163
40443
|
if (!selectedProduct) return;
|
|
@@ -40207,15 +40487,31 @@ function CartController(props2) {
|
|
|
40207
40487
|
onChange: item.quantityEditable ? (event) => cart2.updateQuantity(item.key, Number(event.target.value)) : void 0
|
|
40208
40488
|
}
|
|
40209
40489
|
),
|
|
40210
|
-
/* @__PURE__ */ jsx114(
|
|
40490
|
+
/* @__PURE__ */ jsx114(
|
|
40491
|
+
"button",
|
|
40492
|
+
{
|
|
40493
|
+
type: "button",
|
|
40494
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
40495
|
+
onClick: () => cart2.removeItem(item.key),
|
|
40496
|
+
children: "Remove"
|
|
40497
|
+
}
|
|
40498
|
+
)
|
|
40211
40499
|
] }),
|
|
40212
40500
|
footerActions: /* @__PURE__ */ jsxs85(Fragment19, { children: [
|
|
40213
|
-
/* @__PURE__ */ jsx114("button", { type: "button", className: "secondary btn-sm", onClick: () => cart2.clear(), children: display.clearButtonText }),
|
|
40214
40501
|
/* @__PURE__ */ jsx114(
|
|
40215
40502
|
"button",
|
|
40216
40503
|
{
|
|
40217
40504
|
type: "button",
|
|
40218
|
-
className: "
|
|
40505
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
40506
|
+
onClick: () => cart2.clear(),
|
|
40507
|
+
children: display.clearButtonText
|
|
40508
|
+
}
|
|
40509
|
+
),
|
|
40510
|
+
/* @__PURE__ */ jsx114(
|
|
40511
|
+
"button",
|
|
40512
|
+
{
|
|
40513
|
+
type: "button",
|
|
40514
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40219
40515
|
onClick: () => {
|
|
40220
40516
|
window.location.href = resolveDedicatedCheckoutPath(window.location.pathname);
|
|
40221
40517
|
},
|
|
@@ -40321,7 +40617,15 @@ function CheckoutController(props2) {
|
|
|
40321
40617
|
)
|
|
40322
40618
|
] }),
|
|
40323
40619
|
state.feedback.tag === "error" ? /* @__PURE__ */ jsx114("p", { className: "rb-caption status-muted", children: state.feedback.message }) : null,
|
|
40324
|
-
/* @__PURE__ */ jsx114(
|
|
40620
|
+
/* @__PURE__ */ jsx114(
|
|
40621
|
+
"button",
|
|
40622
|
+
{
|
|
40623
|
+
type: "submit",
|
|
40624
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40625
|
+
disabled: state.submission === "submitting",
|
|
40626
|
+
children: state.submission === "submitting" ? "Loading\u2026" : display.submitButtonText
|
|
40627
|
+
}
|
|
40628
|
+
)
|
|
40325
40629
|
] })
|
|
40326
40630
|
}
|
|
40327
40631
|
);
|
|
@@ -40331,6 +40635,7 @@ var init_shop_commerce = __esm({
|
|
|
40331
40635
|
"../blocks/src/system/runtime/nodes/shop-commerce.tsx"() {
|
|
40332
40636
|
"use strict";
|
|
40333
40637
|
"use client";
|
|
40638
|
+
init_buttons();
|
|
40334
40639
|
init_api();
|
|
40335
40640
|
init_RichText();
|
|
40336
40641
|
init_carousel_client();
|
|
@@ -40441,7 +40746,7 @@ function HeaderCartDrawerItems(props2) {
|
|
|
40441
40746
|
"button",
|
|
40442
40747
|
{
|
|
40443
40748
|
type: "button",
|
|
40444
|
-
className: "secondary
|
|
40749
|
+
className: themeButtonClassName({ variant: "secondary", size: "sm" }),
|
|
40445
40750
|
onClick: () => props2.cart.removeItem(item.key),
|
|
40446
40751
|
children: "Remove"
|
|
40447
40752
|
}
|
|
@@ -40534,7 +40839,7 @@ function HeaderCartDrawer(props2) {
|
|
|
40534
40839
|
"button",
|
|
40535
40840
|
{
|
|
40536
40841
|
type: "button",
|
|
40537
|
-
className: "secondary",
|
|
40842
|
+
className: themeButtonClassName({ variant: "secondary", size: "md" }),
|
|
40538
40843
|
onClick: () => props2.cart.clear(),
|
|
40539
40844
|
disabled: display.state === "empty",
|
|
40540
40845
|
children: display.clearButtonText
|
|
@@ -40543,12 +40848,20 @@ function HeaderCartDrawer(props2) {
|
|
|
40543
40848
|
props2.checkoutHref && display.state === "ready" ? /* @__PURE__ */ jsx119(
|
|
40544
40849
|
"a",
|
|
40545
40850
|
{
|
|
40546
|
-
className: "default",
|
|
40851
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40547
40852
|
href: props2.checkoutHref,
|
|
40548
40853
|
onClick: props2.onClose,
|
|
40549
40854
|
children: display.checkoutButtonText
|
|
40550
40855
|
}
|
|
40551
|
-
) : /* @__PURE__ */ jsx119(
|
|
40856
|
+
) : /* @__PURE__ */ jsx119(
|
|
40857
|
+
"button",
|
|
40858
|
+
{
|
|
40859
|
+
type: "button",
|
|
40860
|
+
className: themeButtonClassName({ variant: "default", size: "md" }),
|
|
40861
|
+
disabled: true,
|
|
40862
|
+
children: display.checkoutButtonText
|
|
40863
|
+
}
|
|
40864
|
+
)
|
|
40552
40865
|
] })
|
|
40553
40866
|
]
|
|
40554
40867
|
}
|
|
@@ -40561,6 +40874,7 @@ var init_HeaderCartDrawer = __esm({
|
|
|
40561
40874
|
"../blocks/src/system/runtime/header/HeaderCartDrawer.tsx"() {
|
|
40562
40875
|
"use strict";
|
|
40563
40876
|
"use client";
|
|
40877
|
+
init_buttons();
|
|
40564
40878
|
init_display();
|
|
40565
40879
|
init_ModalShell();
|
|
40566
40880
|
}
|
|
@@ -41256,7 +41570,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
41256
41570
|
init_EventCompactRow();
|
|
41257
41571
|
init_EmptyState();
|
|
41258
41572
|
init_EventListing_view();
|
|
41259
|
-
|
|
41573
|
+
init_buttons();
|
|
41260
41574
|
EventPaginatedListView = ({
|
|
41261
41575
|
filters,
|
|
41262
41576
|
display,
|
|
@@ -41299,7 +41613,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
41299
41613
|
{
|
|
41300
41614
|
type: "button",
|
|
41301
41615
|
onClick: loadMore,
|
|
41302
|
-
className:
|
|
41616
|
+
className: themeButtonClassName({
|
|
41303
41617
|
variant: display.buttonVariant,
|
|
41304
41618
|
size: "md"
|
|
41305
41619
|
}),
|
|
@@ -41313,7 +41627,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
41313
41627
|
type: "button",
|
|
41314
41628
|
onClick: loadMore,
|
|
41315
41629
|
disabled: loading,
|
|
41316
|
-
className:
|
|
41630
|
+
className: themeButtonClassName({
|
|
41317
41631
|
variant: display.buttonVariant,
|
|
41318
41632
|
size: "md",
|
|
41319
41633
|
extraClassName: loading ? "rb-opacity-50 rb-cursor-wait" : null
|
|
@@ -41325,7 +41639,7 @@ var init_EventPaginatedListView_client = __esm({
|
|
|
41325
41639
|
"a",
|
|
41326
41640
|
{
|
|
41327
41641
|
href: seeAllUrl,
|
|
41328
|
-
className:
|
|
41642
|
+
className: themeButtonClassName({
|
|
41329
41643
|
variant: display.buttonVariant,
|
|
41330
41644
|
size: "md"
|
|
41331
41645
|
}),
|
|
@@ -42675,7 +42989,7 @@ var init_EventCombined_client = __esm({
|
|
|
42675
42989
|
init_EventModalContext();
|
|
42676
42990
|
init_EventModals();
|
|
42677
42991
|
init_utils();
|
|
42678
|
-
|
|
42992
|
+
init_buttons();
|
|
42679
42993
|
EventCombinedClient = ({
|
|
42680
42994
|
events: initialEvents,
|
|
42681
42995
|
siteId,
|
|
@@ -43001,7 +43315,7 @@ var init_EventCombined_client = __esm({
|
|
|
43001
43315
|
{
|
|
43002
43316
|
type: "button",
|
|
43003
43317
|
onClick: goToToday,
|
|
43004
|
-
className:
|
|
43318
|
+
className: themeButtonClassName({ variant: buttonVariant, size: "sm" }),
|
|
43005
43319
|
children: "Today"
|
|
43006
43320
|
}
|
|
43007
43321
|
)
|
|
@@ -43318,7 +43632,7 @@ var init_EventCalendar_client = __esm({
|
|
|
43318
43632
|
init_EventModalContext();
|
|
43319
43633
|
init_EventModals();
|
|
43320
43634
|
init_WeekTimetableView();
|
|
43321
|
-
|
|
43635
|
+
init_buttons();
|
|
43322
43636
|
EventCalendarClient = ({
|
|
43323
43637
|
render
|
|
43324
43638
|
}) => {
|
|
@@ -43607,7 +43921,7 @@ var init_EventCalendar_client = __esm({
|
|
|
43607
43921
|
{
|
|
43608
43922
|
type: "button",
|
|
43609
43923
|
onClick: onToday,
|
|
43610
|
-
className:
|
|
43924
|
+
className: themeButtonClassName({
|
|
43611
43925
|
variant: display.buttonVariant,
|
|
43612
43926
|
size: "sm"
|
|
43613
43927
|
}),
|
|
@@ -43623,7 +43937,7 @@ var init_EventCalendar_client = __esm({
|
|
|
43623
43937
|
{
|
|
43624
43938
|
type: "button",
|
|
43625
43939
|
onClick: onToday,
|
|
43626
|
-
className:
|
|
43940
|
+
className: themeButtonClassName({
|
|
43627
43941
|
variant: display.buttonVariant,
|
|
43628
43942
|
size: "sm"
|
|
43629
43943
|
}),
|
|
@@ -43721,7 +44035,7 @@ var init_form_client = __esm({
|
|
|
43721
44035
|
init_client2();
|
|
43722
44036
|
init_src3();
|
|
43723
44037
|
init_useFormSubmission();
|
|
43724
|
-
|
|
44038
|
+
init_buttons();
|
|
43725
44039
|
FormNodeClient = ({
|
|
43726
44040
|
render
|
|
43727
44041
|
}) => {
|
|
@@ -43863,7 +44177,7 @@ var init_form_client = __esm({
|
|
|
43863
44177
|
"button",
|
|
43864
44178
|
{
|
|
43865
44179
|
type: "submit",
|
|
43866
|
-
className:
|
|
44180
|
+
className: themeButtonClassName({
|
|
43867
44181
|
variant: "primary",
|
|
43868
44182
|
size: "md",
|
|
43869
44183
|
extraClassName: "rb-w-full rb-sm-w-auto"
|
|
@@ -43990,7 +44304,7 @@ function NewsletterFormClient({
|
|
|
43990
44304
|
"button",
|
|
43991
44305
|
{
|
|
43992
44306
|
type: "submit",
|
|
43993
|
-
className:
|
|
44307
|
+
className: themeButtonClassName({ variant: "primary", size: "md" }),
|
|
43994
44308
|
disabled: isSubmitting,
|
|
43995
44309
|
children: isSubmitting ? "Subscribing..." : render.display.buttonLabel
|
|
43996
44310
|
}
|
|
@@ -44008,7 +44322,7 @@ var init_newsletter_form_client = __esm({
|
|
|
44008
44322
|
init_client2();
|
|
44009
44323
|
init_src3();
|
|
44010
44324
|
init_api();
|
|
44011
|
-
|
|
44325
|
+
init_buttons();
|
|
44012
44326
|
}
|
|
44013
44327
|
});
|
|
44014
44328
|
|
|
@@ -58847,6 +59161,9 @@ function validationContext(options = {}) {
|
|
|
58847
59161
|
allowIncomplete: isDraft || (options.allowIncomplete ?? false)
|
|
58848
59162
|
};
|
|
58849
59163
|
}
|
|
59164
|
+
function formatFieldPath(path) {
|
|
59165
|
+
return path.map((segment) => String(segment)).join(".");
|
|
59166
|
+
}
|
|
58850
59167
|
function fieldIssueToMessage(issue2) {
|
|
58851
59168
|
switch (issue2.kind) {
|
|
58852
59169
|
case "required":
|
|
@@ -59070,7 +59387,7 @@ function normalizeRepeaterItems(plan, value, ctx) {
|
|
|
59070
59387
|
return normalizeObjectChildren(fields3, itemRecord, ctx);
|
|
59071
59388
|
});
|
|
59072
59389
|
}
|
|
59073
|
-
function normalizeNumberInput(value,
|
|
59390
|
+
function normalizeNumberInput(value, _allowNull) {
|
|
59074
59391
|
if (value === "") return void 0;
|
|
59075
59392
|
if (typeof value === "string" && value.trim() !== "") return Number(value);
|
|
59076
59393
|
return value;
|
|
@@ -59202,7 +59519,7 @@ function validateRepeaterItem(plan, item, index, ctx) {
|
|
|
59202
59519
|
const fields3 = plan.repeatedItemVariants ? plan.repeatedItemVariants.find((variant) => variant.typeId === itemType)?.fields : plan.repeatedItemPlan;
|
|
59203
59520
|
if (!fields3) return [];
|
|
59204
59521
|
return fields3.flatMap((childPlan) => {
|
|
59205
|
-
const indexedPlan =
|
|
59522
|
+
const indexedPlan = materializeRepeaterItemPlan(childPlan, plan.path, index);
|
|
59206
59523
|
return validateNormalizedFieldValue(indexedPlan, item[childPlan.fieldId], ctx);
|
|
59207
59524
|
});
|
|
59208
59525
|
}
|
|
@@ -59214,12 +59531,58 @@ function validateGroupPlan(plan, value, ctx) {
|
|
|
59214
59531
|
function childValidationContext(plan, ctx) {
|
|
59215
59532
|
return plan.allowNullChildren ? { ...ctx, allowNull: true } : ctx;
|
|
59216
59533
|
}
|
|
59217
|
-
function
|
|
59218
|
-
|
|
59219
|
-
|
|
59220
|
-
|
|
59221
|
-
|
|
59222
|
-
|
|
59534
|
+
function materializeRepeaterItemPlan(plan, parentPath, index) {
|
|
59535
|
+
return rebaseFieldPlanPath(plan, [...parentPath, 0], [...parentPath, index]);
|
|
59536
|
+
}
|
|
59537
|
+
function rebaseFieldPlanPath(plan, fromPrefix, toPrefix) {
|
|
59538
|
+
const path = rebaseFieldPath(plan.path, fromPrefix, toPrefix);
|
|
59539
|
+
switch (plan.kind) {
|
|
59540
|
+
case "group":
|
|
59541
|
+
return {
|
|
59542
|
+
...plan,
|
|
59543
|
+
path,
|
|
59544
|
+
children: plan.children.map((childPlan) => rebaseFieldPlanPath(childPlan, fromPrefix, toPrefix))
|
|
59545
|
+
};
|
|
59546
|
+
case "repeater":
|
|
59547
|
+
return {
|
|
59548
|
+
...plan,
|
|
59549
|
+
path,
|
|
59550
|
+
...plan.repeatedItemVariants ? {
|
|
59551
|
+
repeatedItemVariants: plan.repeatedItemVariants.map((variant) => ({
|
|
59552
|
+
...variant,
|
|
59553
|
+
fields: variant.fields.map((fieldPlan) => rebaseFieldPlanPath(fieldPlan, fromPrefix, toPrefix))
|
|
59554
|
+
}))
|
|
59555
|
+
} : {},
|
|
59556
|
+
...plan.repeatedItemPlan ? {
|
|
59557
|
+
repeatedItemPlan: plan.repeatedItemPlan.map(
|
|
59558
|
+
(fieldPlan) => rebaseFieldPlanPath(fieldPlan, fromPrefix, toPrefix)
|
|
59559
|
+
)
|
|
59560
|
+
} : {}
|
|
59561
|
+
};
|
|
59562
|
+
case "string":
|
|
59563
|
+
case "number":
|
|
59564
|
+
case "boolean":
|
|
59565
|
+
case "richText":
|
|
59566
|
+
case "media":
|
|
59567
|
+
case "link":
|
|
59568
|
+
case "select":
|
|
59569
|
+
case "passthrough":
|
|
59570
|
+
return {
|
|
59571
|
+
...plan,
|
|
59572
|
+
path
|
|
59573
|
+
};
|
|
59574
|
+
default:
|
|
59575
|
+
return assertNever6(plan);
|
|
59576
|
+
}
|
|
59577
|
+
}
|
|
59578
|
+
function rebaseFieldPath(path, fromPrefix, toPrefix) {
|
|
59579
|
+
if (!startsWithFieldPath(path, fromPrefix)) {
|
|
59580
|
+
throw new Error(`Cannot rebase field path ${formatFieldPath(path)} from ${formatFieldPath(fromPrefix)}`);
|
|
59581
|
+
}
|
|
59582
|
+
return [...toPrefix, ...path.slice(fromPrefix.length)];
|
|
59583
|
+
}
|
|
59584
|
+
function startsWithFieldPath(path, prefix) {
|
|
59585
|
+
return prefix.every((segment, index) => path[index] === segment);
|
|
59223
59586
|
}
|
|
59224
59587
|
function issue(plan, kind, extra) {
|
|
59225
59588
|
return {
|
|
@@ -63583,16 +63946,16 @@ var interpolateRichTextTokensOptionsSchema = z58.object({
|
|
|
63583
63946
|
var richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
|
|
63584
63947
|
function getSiteName(context) {
|
|
63585
63948
|
const viewModel = context.viewModel;
|
|
63586
|
-
if (!
|
|
63949
|
+
if (!isRecord3(viewModel)) return null;
|
|
63587
63950
|
const site = viewModel.site;
|
|
63588
|
-
if (
|
|
63951
|
+
if (isRecord3(site) && typeof site.title === "string") {
|
|
63589
63952
|
const title = site.title.trim();
|
|
63590
63953
|
return title.length > 0 ? title : null;
|
|
63591
63954
|
}
|
|
63592
63955
|
const root = viewModel.$root;
|
|
63593
|
-
if (
|
|
63956
|
+
if (isRecord3(root)) {
|
|
63594
63957
|
const rootSite = root.site;
|
|
63595
|
-
if (
|
|
63958
|
+
if (isRecord3(rootSite) && typeof rootSite.title === "string") {
|
|
63596
63959
|
const title = rootSite.title.trim();
|
|
63597
63960
|
if (title.length > 0) return title;
|
|
63598
63961
|
}
|
|
@@ -63614,7 +63977,7 @@ function replaceTokenText(input, allowedTokens, tokenValues) {
|
|
|
63614
63977
|
});
|
|
63615
63978
|
}
|
|
63616
63979
|
function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
63617
|
-
if (!
|
|
63980
|
+
if (!isRecord3(node)) return node;
|
|
63618
63981
|
let changed = false;
|
|
63619
63982
|
const nextNode = { ...node };
|
|
63620
63983
|
if (nextNode.type === "text" && typeof nextNode.text === "string") {
|
|
@@ -63640,13 +64003,13 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
|
|
|
63640
64003
|
return changed ? nextNode : node;
|
|
63641
64004
|
}
|
|
63642
64005
|
function interpolateRichTextTokens(value, options, context) {
|
|
63643
|
-
if (!
|
|
64006
|
+
if (!isRecord3(value)) return value;
|
|
63644
64007
|
const allowedTokens = new Set(options.tokens);
|
|
63645
64008
|
const tokenValues = {
|
|
63646
64009
|
year: String((/* @__PURE__ */ new Date()).getFullYear()),
|
|
63647
64010
|
site_name: getSiteName(context)
|
|
63648
64011
|
};
|
|
63649
|
-
if (
|
|
64012
|
+
if (isRecord3(value.doc)) {
|
|
63650
64013
|
const nextDoc = visitRichTextNode(value.doc, allowedTokens, tokenValues);
|
|
63651
64014
|
if (nextDoc === value.doc) return value;
|
|
63652
64015
|
return { ...value, doc: nextDoc };
|
|
@@ -69671,7 +70034,7 @@ function hydrateValue(value, context) {
|
|
|
69671
70034
|
const isUnchanged = resolvedItems.every((item, index) => item === value[index]);
|
|
69672
70035
|
return isUnchanged ? value : resolvedItems;
|
|
69673
70036
|
}
|
|
69674
|
-
if (
|
|
70037
|
+
if (isRecord3(value)) {
|
|
69675
70038
|
if (isInternalLink(value)) {
|
|
69676
70039
|
return hydrateInternalLink(value, context.routes);
|
|
69677
70040
|
}
|
|
@@ -74833,6 +75196,63 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
74833
75196
|
auth: "user",
|
|
74834
75197
|
responseKind: "json"
|
|
74835
75198
|
},
|
|
75199
|
+
updateRegisteredDomainContact: {
|
|
75200
|
+
path: "/domains/{domainId}/registrar/contact",
|
|
75201
|
+
method: "POST",
|
|
75202
|
+
errors: [
|
|
75203
|
+
"validation:invalid_input",
|
|
75204
|
+
"resource:not_found",
|
|
75205
|
+
"auth:forbidden",
|
|
75206
|
+
"external:service_error",
|
|
75207
|
+
"external:registrar_orphaned_contact_profile",
|
|
75208
|
+
"server:internal_error"
|
|
75209
|
+
],
|
|
75210
|
+
tags: ["domains", "domain-{domainId}", "domain-registrar"],
|
|
75211
|
+
auth: "user",
|
|
75212
|
+
responseKind: "json"
|
|
75213
|
+
},
|
|
75214
|
+
setRegisteredDomainPrivacy: {
|
|
75215
|
+
path: "/domains/{domainId}/registrar/privacy",
|
|
75216
|
+
method: "POST",
|
|
75217
|
+
errors: [
|
|
75218
|
+
"validation:invalid_input",
|
|
75219
|
+
"resource:not_found",
|
|
75220
|
+
"auth:forbidden",
|
|
75221
|
+
"external:service_error",
|
|
75222
|
+
"server:internal_error"
|
|
75223
|
+
],
|
|
75224
|
+
tags: ["domains", "domain-{domainId}", "domain-registrar"],
|
|
75225
|
+
auth: "user",
|
|
75226
|
+
responseKind: "json"
|
|
75227
|
+
},
|
|
75228
|
+
setRegisteredDomainAutoRenew: {
|
|
75229
|
+
path: "/domains/{domainId}/registrar/auto-renew",
|
|
75230
|
+
method: "POST",
|
|
75231
|
+
errors: [
|
|
75232
|
+
"validation:invalid_input",
|
|
75233
|
+
"resource:not_found",
|
|
75234
|
+
"auth:forbidden",
|
|
75235
|
+
"external:service_error",
|
|
75236
|
+
"server:internal_error"
|
|
75237
|
+
],
|
|
75238
|
+
tags: ["domains", "domain-{domainId}", "domain-registrar"],
|
|
75239
|
+
auth: "user",
|
|
75240
|
+
responseKind: "json"
|
|
75241
|
+
},
|
|
75242
|
+
getRegisteredDomainRenewalPosture: {
|
|
75243
|
+
path: "/domains/{domainId}/registrar/renewal",
|
|
75244
|
+
method: "GET",
|
|
75245
|
+
errors: [
|
|
75246
|
+
"validation:invalid_input",
|
|
75247
|
+
"resource:not_found",
|
|
75248
|
+
"auth:forbidden",
|
|
75249
|
+
"external:service_error",
|
|
75250
|
+
"server:internal_error"
|
|
75251
|
+
],
|
|
75252
|
+
tags: ["domains", "domain-{domainId}", "domain-registrar"],
|
|
75253
|
+
auth: "user",
|
|
75254
|
+
responseKind: "json"
|
|
75255
|
+
},
|
|
74836
75256
|
retryDomainVercel: {
|
|
74837
75257
|
path: "/domains/{domainId}/vercel",
|
|
74838
75258
|
method: "POST",
|
|
@@ -78971,7 +79391,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
|
|
|
78971
79391
|
}
|
|
78972
79392
|
|
|
78973
79393
|
// ../api/src/utils/isRecord.ts
|
|
78974
|
-
function
|
|
79394
|
+
function isRecord5(value) {
|
|
78975
79395
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
78976
79396
|
}
|
|
78977
79397
|
|
|
@@ -79231,7 +79651,7 @@ function sanitizeMarks(marks) {
|
|
|
79231
79651
|
if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
|
|
79232
79652
|
return [{ type: mark.type }];
|
|
79233
79653
|
}
|
|
79234
|
-
if (mark.type === "link" &&
|
|
79654
|
+
if (mark.type === "link" && isRecord5(mark.attrs) && typeof mark.attrs.href === "string") {
|
|
79235
79655
|
const attrs = { href: mark.attrs.href };
|
|
79236
79656
|
if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
|
|
79237
79657
|
attrs.target = mark.attrs.target;
|
|
@@ -79246,10 +79666,10 @@ function sanitizeMarks(marks) {
|
|
|
79246
79666
|
return sanitized.length > 0 ? sanitized : void 0;
|
|
79247
79667
|
}
|
|
79248
79668
|
function unwrapRichTextValue(value) {
|
|
79249
|
-
if (
|
|
79669
|
+
if (isRecord5(value) && isRecord5(value.doc)) {
|
|
79250
79670
|
return unwrapRichTextValue(value.doc);
|
|
79251
79671
|
}
|
|
79252
|
-
if (
|
|
79672
|
+
if (isRecord5(value) && value.type === "doc") {
|
|
79253
79673
|
return {
|
|
79254
79674
|
type: "doc",
|
|
79255
79675
|
content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
|
|
@@ -79258,7 +79678,7 @@ function unwrapRichTextValue(value) {
|
|
|
79258
79678
|
return EMPTY_SITE_BANNER_BODY;
|
|
79259
79679
|
}
|
|
79260
79680
|
function isTipTapNodeLike(value) {
|
|
79261
|
-
return
|
|
79681
|
+
return isRecord5(value) && typeof value.type === "string";
|
|
79262
79682
|
}
|
|
79263
79683
|
function coerceTipTapNode(value) {
|
|
79264
79684
|
return {
|
|
@@ -79266,9 +79686,9 @@ function coerceTipTapNode(value) {
|
|
|
79266
79686
|
...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
|
|
79267
79687
|
...typeof value.text === "string" ? { text: value.text } : {},
|
|
79268
79688
|
...Array.isArray(value.marks) ? {
|
|
79269
|
-
marks: value.marks.filter((mark) =>
|
|
79689
|
+
marks: value.marks.filter((mark) => isRecord5(mark) && typeof mark.type === "string").map((mark) => ({
|
|
79270
79690
|
type: mark.type,
|
|
79271
|
-
...
|
|
79691
|
+
...isRecord5(mark.attrs) ? { attrs: mark.attrs } : {}
|
|
79272
79692
|
}))
|
|
79273
79693
|
} : {}
|
|
79274
79694
|
};
|
|
@@ -79321,6 +79741,9 @@ function parsePublicProductCategorySelector(value) {
|
|
|
79321
79741
|
return void 0;
|
|
79322
79742
|
}
|
|
79323
79743
|
|
|
79744
|
+
// ../api/src/navigation/linkValue.ts
|
|
79745
|
+
init_src();
|
|
79746
|
+
|
|
79324
79747
|
// ../api/src/aiPlayground.ts
|
|
79325
79748
|
import { z as z68 } from "zod";
|
|
79326
79749
|
var Rfc6902PatchOp = z68.discriminatedUnion("op", [
|
|
@@ -79975,7 +80398,7 @@ function applyBindings(bindings, context) {
|
|
|
79975
80398
|
}
|
|
79976
80399
|
continue;
|
|
79977
80400
|
}
|
|
79978
|
-
if (
|
|
80401
|
+
if (isRecord3(bindingSpec)) {
|
|
79979
80402
|
const nested = applyBindings(bindingSpec, context);
|
|
79980
80403
|
if (Object.keys(nested).length > 0) {
|
|
79981
80404
|
setBindingValue(result, key, nested);
|
|
@@ -80005,7 +80428,7 @@ function setBindingValue(target, path, value) {
|
|
|
80005
80428
|
current[Number(segment)] = value;
|
|
80006
80429
|
return;
|
|
80007
80430
|
}
|
|
80008
|
-
if (
|
|
80431
|
+
if (isRecord3(current)) {
|
|
80009
80432
|
current[segment] = value;
|
|
80010
80433
|
}
|
|
80011
80434
|
return;
|
|
@@ -80017,17 +80440,17 @@ function setBindingValue(target, path, value) {
|
|
|
80017
80440
|
if (nextWantsArray) {
|
|
80018
80441
|
if (!Array.isArray(existing)) current[index] = [];
|
|
80019
80442
|
} else {
|
|
80020
|
-
if (!
|
|
80443
|
+
if (!isRecord3(existing)) current[index] = {};
|
|
80021
80444
|
}
|
|
80022
80445
|
current = current[index];
|
|
80023
80446
|
continue;
|
|
80024
80447
|
}
|
|
80025
|
-
if (
|
|
80448
|
+
if (isRecord3(current)) {
|
|
80026
80449
|
const existing = current[segment];
|
|
80027
80450
|
if (nextWantsArray) {
|
|
80028
80451
|
if (!Array.isArray(existing)) current[segment] = [];
|
|
80029
80452
|
} else {
|
|
80030
|
-
if (!
|
|
80453
|
+
if (!isRecord3(existing)) current[segment] = {};
|
|
80031
80454
|
}
|
|
80032
80455
|
current = current[segment];
|
|
80033
80456
|
continue;
|
|
@@ -80067,7 +80490,7 @@ function getPath(source, path) {
|
|
|
80067
80490
|
const segments = path.split(".").map((segment) => segment.trim()).filter(Boolean);
|
|
80068
80491
|
let current = source;
|
|
80069
80492
|
for (const segment of segments) {
|
|
80070
|
-
if (!
|
|
80493
|
+
if (!isRecord3(current)) return void 0;
|
|
80071
80494
|
current = current[segment];
|
|
80072
80495
|
}
|
|
80073
80496
|
return current;
|
|
@@ -80086,13 +80509,13 @@ function applyTransform(name, value) {
|
|
|
80086
80509
|
}
|
|
80087
80510
|
}
|
|
80088
80511
|
function extractFirstParagraph(value) {
|
|
80089
|
-
if (!
|
|
80512
|
+
if (!isRecord3(value)) return null;
|
|
80090
80513
|
const doc = value;
|
|
80091
80514
|
if (!Array.isArray(doc.content)) return null;
|
|
80092
80515
|
for (const node of doc.content) {
|
|
80093
|
-
if (!
|
|
80516
|
+
if (!isRecord3(node)) continue;
|
|
80094
80517
|
if (node.type !== "paragraph" || !Array.isArray(node.content)) continue;
|
|
80095
|
-
const text2 = node.content.filter((item) =>
|
|
80518
|
+
const text2 = node.content.filter((item) => isRecord3(item) && item.type === "text").map((item) => typeof item.text === "string" ? item.text : "").join("").trim();
|
|
80096
80519
|
if (text2.length > 0) {
|
|
80097
80520
|
return text2;
|
|
80098
80521
|
}
|
|
@@ -80106,7 +80529,7 @@ function formatDate5(value, options) {
|
|
|
80106
80529
|
return new Intl.DateTimeFormat(void 0, options).format(date);
|
|
80107
80530
|
}
|
|
80108
80531
|
function isBindingDescriptor(value) {
|
|
80109
|
-
if (!
|
|
80532
|
+
if (!isRecord3(value) || typeof value.source !== "string") {
|
|
80110
80533
|
return false;
|
|
80111
80534
|
}
|
|
80112
80535
|
if (!BINDING_SOURCES.includes(value.source)) {
|
|
@@ -80127,7 +80550,7 @@ function isBindingDescriptor(value) {
|
|
|
80127
80550
|
}
|
|
80128
80551
|
}
|
|
80129
80552
|
function isBindingDescriptorLike(value) {
|
|
80130
|
-
return isBindingDescriptor(value) || typeof value === "string" ||
|
|
80553
|
+
return isBindingDescriptor(value) || typeof value === "string" || isRecord3(value) && typeof value.source === "string" && typeof value.path === "string";
|
|
80131
80554
|
}
|
|
80132
80555
|
function normalizeBindingInput(value) {
|
|
80133
80556
|
if (isBindingDescriptor(value)) return value;
|
|
@@ -80143,7 +80566,7 @@ function normalizeValue(value) {
|
|
|
80143
80566
|
if (Array.isArray(value)) {
|
|
80144
80567
|
return value.map((item) => normalizeValue(item));
|
|
80145
80568
|
}
|
|
80146
|
-
if (!
|
|
80569
|
+
if (!isRecord3(value)) {
|
|
80147
80570
|
return value;
|
|
80148
80571
|
}
|
|
80149
80572
|
if (isDocWrapper(value)) {
|
|
@@ -80157,7 +80580,7 @@ function isDocWrapper(value) {
|
|
|
80157
80580
|
const keys = Object.keys(value);
|
|
80158
80581
|
if (keys.length !== 1) return false;
|
|
80159
80582
|
const doc = value.doc;
|
|
80160
|
-
return
|
|
80583
|
+
return isRecord3(doc) && typeof doc.type === "string" && doc.type === "doc";
|
|
80161
80584
|
}
|
|
80162
80585
|
|
|
80163
80586
|
// src/rendering/helpers/bindings.ts
|