@riverbankcms/sdk 0.60.6 → 0.60.9
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/appointmentSetup.d.ts +2 -2
- package/dist/_dts/api/src/bookingConfig.d.ts +6 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +45 -3
- package/dist/_dts/api/src/bookingOperations.d.ts +40 -3
- package/dist/_dts/api/src/courses.d.ts +1 -5
- package/dist/_dts/api/src/endpoints.d.ts +80 -1
- package/dist/_dts/api/src/index.d.ts +3 -2
- package/dist/_dts/api/src/navigation/contracts.d.ts +9 -9
- package/dist/_dts/api/src/navigation/linkValue.d.ts +1 -1
- package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -1
- package/dist/_dts/api/src/resources.d.ts +1 -1
- package/dist/_dts/api/src/siteBanner.d.ts +8 -8
- package/dist/_dts/api/src/siteOnboarding.d.ts +1 -0
- package/dist/_dts/api/src/teamMembers.d.ts +27 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +35 -29
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -5
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +40 -34
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -5
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
- package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +24 -0
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +18 -8
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +185 -0
- package/dist/_dts/blocks/src/system/manifest/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +201 -201
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -84
- package/dist/_dts/blocks/src/system/node/schema.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +4 -4
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +3 -3
- package/dist/_dts/blocks/src/system/types/link.d.ts +93 -1
- package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
- package/dist/_dts/content-model/src/metadataConfig.d.ts +1 -0
- package/dist/_dts/core/src/branded.d.ts +2 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +124 -8
- package/dist/_dts/db/src/schemas/forms.d.ts +85 -64
- package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +1 -1
- package/dist/_dts/sdk/src/client/types.d.ts +9 -2
- package/dist/_dts/sdk/src/config/typed-entries.d.ts +36 -1
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +40 -37
- package/dist/_dts/sdk/src/contracts/content.d.ts +6 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +18 -8
- package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +19 -19
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +87 -69
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -5
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +11 -11
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +10 -10
- package/dist/_dts/theme-core/src/buttons/types.d.ts +27 -27
- package/dist/_dts/theme-core/src/cards/types.d.ts +17 -17
- package/dist/_dts/theme-core/src/inputs/types.d.ts +14 -14
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +2 -2
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +438 -438
- package/dist/_dts/theme-core/src/navigation/types.d.ts +16 -16
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +15 -15
- package/dist/_dts/theme-core/src/schema.d.ts +662 -662
- package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +15 -15
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +7 -7
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +5 -5
- package/dist/_dts/ui/src/badge.d.ts +1 -1
- package/dist/_dts/ui/src/button-group.d.ts +1 -1
- package/dist/_dts/ui/src/button.d.ts +2 -2
- package/dist/_dts/ui/src/callout.d.ts +1 -1
- package/dist/_dts/ui/src/card.d.ts +1 -1
- package/dist/_dts/ui/src/surface.d.ts +2 -2
- package/dist/_dts/ui/src/toggle.d.ts +4 -4
- package/dist/cli/index.mjs +951 -451
- package/dist/client/client.mjs +39490 -38952
- package/dist/client/hooks.mjs +1992 -1741
- package/dist/client/rendering/client.mjs +179 -130
- package/dist/client/rendering/islands.mjs +68 -43
- package/dist/client/rendering.mjs +1812 -1292
- package/dist/preview-next/before-render.mjs +147 -1
- package/dist/preview-next/client/runtime.mjs +1377 -829
- package/dist/preview-next/middleware.mjs +147 -1
- package/dist/server/components.mjs +3246 -2751
- package/dist/server/config-validation.mjs +2198 -1962
- package/dist/server/config.mjs +2198 -1962
- package/dist/server/data.mjs +1992 -1741
- package/dist/server/index.mjs +168 -2
- package/dist/server/next.mjs +3230 -2701
- package/dist/server/page-converter.mjs +345 -259
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +3274 -2763
- package/dist/server/rendering.mjs +3274 -2763
- package/dist/server/routing.mjs +530 -309
- package/dist/server/server.mjs +2011 -1742
- package/package.json +1 -1
|
@@ -8788,9 +8788,9 @@ function createZodCodec(schema) {
|
|
|
8788
8788
|
return decodeSuccess(parsed.data);
|
|
8789
8789
|
}
|
|
8790
8790
|
return decodeFailure(
|
|
8791
|
-
parsed.error.issues.map((
|
|
8792
|
-
path: zodIssuePath(
|
|
8793
|
-
message:
|
|
8791
|
+
parsed.error.issues.map((issue2) => ({
|
|
8792
|
+
path: zodIssuePath(issue2.path),
|
|
8793
|
+
message: issue2.message
|
|
8794
8794
|
}))
|
|
8795
8795
|
);
|
|
8796
8796
|
}
|
|
@@ -8822,9 +8822,9 @@ function expectEncodedRecord(value, label) {
|
|
|
8822
8822
|
throw new Error(`Expected ${label} codec to encode an object`);
|
|
8823
8823
|
}
|
|
8824
8824
|
function prefixIssues(prefix, issues) {
|
|
8825
|
-
return issues.map((
|
|
8826
|
-
path: [...prefix, ...
|
|
8827
|
-
message:
|
|
8825
|
+
return issues.map((issue2) => ({
|
|
8826
|
+
path: [...prefix, ...issue2.path],
|
|
8827
|
+
message: issue2.message
|
|
8828
8828
|
}));
|
|
8829
8829
|
}
|
|
8830
8830
|
function defineInteractiveIslandMetaKeys(...keys) {
|
|
@@ -9871,7 +9871,9 @@ var init_schemas = __esm({
|
|
|
9871
9871
|
courseTeamMemberSummarySchema = z8.object({
|
|
9872
9872
|
id: z8.string(),
|
|
9873
9873
|
name: z8.string(),
|
|
9874
|
-
|
|
9874
|
+
roleLabel: z8.string().nullable(),
|
|
9875
|
+
summary: z8.string().nullable(),
|
|
9876
|
+
profilePath: z8.string().nullable()
|
|
9875
9877
|
});
|
|
9876
9878
|
coursePricingOptionSchema = z8.object({
|
|
9877
9879
|
id: z8.string(),
|
|
@@ -10394,6 +10396,12 @@ var init_CoursePricingDisplay = __esm({
|
|
|
10394
10396
|
|
|
10395
10397
|
// ../blocks/src/system/runtime/nodes/event-details/view.tsx
|
|
10396
10398
|
import { Fragment as Fragment3, jsx as jsx23, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
10399
|
+
function TeamMemberName({
|
|
10400
|
+
name,
|
|
10401
|
+
profilePath
|
|
10402
|
+
}) {
|
|
10403
|
+
return profilePath ? /* @__PURE__ */ jsx23("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx23("strong", { children: name }) }) : /* @__PURE__ */ jsx23("strong", { children: name });
|
|
10404
|
+
}
|
|
10397
10405
|
function EventDetailsView({
|
|
10398
10406
|
selection,
|
|
10399
10407
|
showVenue,
|
|
@@ -10457,7 +10465,13 @@ function EventDetailsView({
|
|
|
10457
10465
|
teamMembers.length > 0 ? /* @__PURE__ */ jsxs9("div", { className: "rb-mt-6", children: [
|
|
10458
10466
|
/* @__PURE__ */ jsx23("div", { className: "rb-label rb-mb-2", children: "Team members" }),
|
|
10459
10467
|
/* @__PURE__ */ jsx23("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs9("div", { children: [
|
|
10460
|
-
/* @__PURE__ */ jsx23("p", { children: /* @__PURE__ */ jsx23(
|
|
10468
|
+
/* @__PURE__ */ jsx23("p", { children: /* @__PURE__ */ jsx23(
|
|
10469
|
+
TeamMemberName,
|
|
10470
|
+
{
|
|
10471
|
+
name: teamMember.name,
|
|
10472
|
+
profilePath: teamMember.profilePath
|
|
10473
|
+
}
|
|
10474
|
+
) }),
|
|
10461
10475
|
teamMember.summary ? /* @__PURE__ */ jsx23("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
|
|
10462
10476
|
] }, teamMember.id)) })
|
|
10463
10477
|
] }) : null,
|
|
@@ -11007,6 +11021,12 @@ var init_runs = __esm({
|
|
|
11007
11021
|
|
|
11008
11022
|
// ../blocks/src/system/runtime/nodes/course-details/view.tsx
|
|
11009
11023
|
import { jsx as jsx27, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
11024
|
+
function TeamMemberName2({
|
|
11025
|
+
name,
|
|
11026
|
+
profilePath
|
|
11027
|
+
}) {
|
|
11028
|
+
return profilePath ? /* @__PURE__ */ jsx27("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx27("strong", { children: name }) }) : /* @__PURE__ */ jsx27("strong", { children: name });
|
|
11029
|
+
}
|
|
11010
11030
|
function parseLimit2(value, fallback2) {
|
|
11011
11031
|
if (value === "all") return "all";
|
|
11012
11032
|
const n = typeof value === "string" ? Number.parseInt(value, 10) : typeof value === "number" ? value : NaN;
|
|
@@ -11064,7 +11084,13 @@ function CourseDetailsView(props2) {
|
|
|
11064
11084
|
teamMembers.length > 0 && /* @__PURE__ */ jsxs13("div", { children: [
|
|
11065
11085
|
/* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Team members" }),
|
|
11066
11086
|
/* @__PURE__ */ jsx27("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs13("div", { children: [
|
|
11067
|
-
/* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27(
|
|
11087
|
+
/* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27(
|
|
11088
|
+
TeamMemberName2,
|
|
11089
|
+
{
|
|
11090
|
+
name: teamMember.name,
|
|
11091
|
+
profilePath: teamMember.profilePath
|
|
11092
|
+
}
|
|
11093
|
+
) }),
|
|
11068
11094
|
teamMember.summary && /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: teamMember.summary })
|
|
11069
11095
|
] }, teamMember.id)) })
|
|
11070
11096
|
] })
|
|
@@ -11838,7 +11864,9 @@ var init_schemas2 = __esm({
|
|
|
11838
11864
|
publicTeamMemberSummarySchema = z9.object({
|
|
11839
11865
|
id: z9.string(),
|
|
11840
11866
|
name: z9.string(),
|
|
11841
|
-
|
|
11867
|
+
roleLabel: z9.string().nullable(),
|
|
11868
|
+
summary: z9.string().nullable(),
|
|
11869
|
+
profilePath: z9.string().nullable()
|
|
11842
11870
|
});
|
|
11843
11871
|
publicEventSchema = z9.object({
|
|
11844
11872
|
kind: z9.enum(["event", "course_session"]).optional(),
|
|
@@ -18706,7 +18734,19 @@ var init_teamMember = __esm({
|
|
|
18706
18734
|
bind("photo")
|
|
18707
18735
|
)
|
|
18708
18736
|
]),
|
|
18709
|
-
|
|
18737
|
+
link(
|
|
18738
|
+
{
|
|
18739
|
+
href: { $bind: { from: "profilePath" } },
|
|
18740
|
+
className: "rb-team-member-name-link"
|
|
18741
|
+
},
|
|
18742
|
+
[text({ as: "h3" }, bind("name"))],
|
|
18743
|
+
when("profilePath")
|
|
18744
|
+
),
|
|
18745
|
+
text(
|
|
18746
|
+
{ as: "h3" },
|
|
18747
|
+
when("profilePath", { not: true }),
|
|
18748
|
+
bind("name")
|
|
18749
|
+
),
|
|
18710
18750
|
text({ as: "p", className: "rb-team-member-role" }, when("role"), bind("role")),
|
|
18711
18751
|
richText(
|
|
18712
18752
|
{ className: "rb-prose rb-max-w-none" },
|
|
@@ -28837,7 +28877,7 @@ var init_DatePicker = __esm({
|
|
|
28837
28877
|
dateOptions,
|
|
28838
28878
|
required = true,
|
|
28839
28879
|
isLoading = false,
|
|
28840
|
-
isEmpty
|
|
28880
|
+
isEmpty = false,
|
|
28841
28881
|
hasMore = false,
|
|
28842
28882
|
onLoadMore
|
|
28843
28883
|
}) => {
|
|
@@ -28851,7 +28891,7 @@ var init_DatePicker = __esm({
|
|
|
28851
28891
|
/* @__PURE__ */ jsx57("p", { className: "ab-text ab-text--muted ab-text--sm", children: "Loading available dates..." })
|
|
28852
28892
|
] });
|
|
28853
28893
|
}
|
|
28854
|
-
if (
|
|
28894
|
+
if (isEmpty) {
|
|
28855
28895
|
return /* @__PURE__ */ jsxs40("div", { className: "ab-stack--sm", children: [
|
|
28856
28896
|
/* @__PURE__ */ jsxs40("label", { className: "ab-label", children: [
|
|
28857
28897
|
"Select Date",
|
|
@@ -35488,7 +35528,16 @@ var init_CourseRegistrationErrorBoundary = __esm({
|
|
|
35488
35528
|
});
|
|
35489
35529
|
|
|
35490
35530
|
// ../blocks/src/system/runtime/nodes/course-registration/components.tsx
|
|
35531
|
+
import React19 from "react";
|
|
35491
35532
|
import { Fragment as Fragment15, jsx as jsx105, jsxs as jsxs78 } from "react/jsx-runtime";
|
|
35533
|
+
function TeamMemberInlineList({
|
|
35534
|
+
teamMembers
|
|
35535
|
+
}) {
|
|
35536
|
+
return /* @__PURE__ */ jsx105(Fragment15, { children: teamMembers.map((teamMember, index) => /* @__PURE__ */ jsxs78(React19.Fragment, { children: [
|
|
35537
|
+
index > 0 ? ", " : "",
|
|
35538
|
+
teamMember.profilePath ? /* @__PURE__ */ jsx105("a", { href: teamMember.profilePath, children: teamMember.name }) : teamMember.name
|
|
35539
|
+
] }, teamMember.id)) });
|
|
35540
|
+
}
|
|
35492
35541
|
function CourseCard({
|
|
35493
35542
|
course,
|
|
35494
35543
|
isSelected,
|
|
@@ -35569,7 +35618,7 @@ function CourseSummary({
|
|
|
35569
35618
|
teamMembers.length > 0 && /* @__PURE__ */ jsxs78("div", { className: "cr-summary__venue", children: [
|
|
35570
35619
|
/* @__PURE__ */ jsx105("strong", { children: "Team:" }),
|
|
35571
35620
|
" ",
|
|
35572
|
-
|
|
35621
|
+
/* @__PURE__ */ jsx105(TeamMemberInlineList, { teamMembers })
|
|
35573
35622
|
] }),
|
|
35574
35623
|
showPrice && pricing.display.kind !== "unavailable" && /* @__PURE__ */ jsxs78("p", { className: "cr-summary__price", children: [
|
|
35575
35624
|
/* @__PURE__ */ jsx105("strong", { children: pricing.selectableOptions.length > 0 ? "Pricing:" : "Price:" }),
|
|
@@ -37127,7 +37176,7 @@ var init_location_map_client = __esm({
|
|
|
37127
37176
|
});
|
|
37128
37177
|
|
|
37129
37178
|
// ../blocks/src/system/runtime/nodes/shop-commerce-store.ts
|
|
37130
|
-
import * as
|
|
37179
|
+
import * as React21 from "react";
|
|
37131
37180
|
function storageKey(siteId) {
|
|
37132
37181
|
return `riverbank:shop-cart:${siteId}`;
|
|
37133
37182
|
}
|
|
@@ -37143,8 +37192,8 @@ function addPassToCommerceCart(siteId, input) {
|
|
|
37143
37192
|
}
|
|
37144
37193
|
function useCommerceCart(siteId) {
|
|
37145
37194
|
const effectiveSiteId = siteId ?? "unknown";
|
|
37146
|
-
const store =
|
|
37147
|
-
const state =
|
|
37195
|
+
const store = React21.useMemo(() => getStore(effectiveSiteId), [effectiveSiteId]);
|
|
37196
|
+
const state = React21.useSyncExternalStore(
|
|
37148
37197
|
(listener) => store.subscribe(listener),
|
|
37149
37198
|
() => store.getSnapshot(),
|
|
37150
37199
|
() => EMPTY_STATE
|
|
@@ -37239,11 +37288,11 @@ var init_shop_commerce_store = __esm({
|
|
|
37239
37288
|
});
|
|
37240
37289
|
|
|
37241
37290
|
// ../blocks/src/system/runtime/nodes/shop-add-feedback.tsx
|
|
37242
|
-
import * as
|
|
37291
|
+
import * as React22 from "react";
|
|
37243
37292
|
import { jsx as jsx111, jsxs as jsxs82 } from "react/jsx-runtime";
|
|
37244
37293
|
function useTransientShopAddFeedback(timeoutMs = DEFAULT_TIMEOUT_MS) {
|
|
37245
|
-
const [activeKey, setActiveKey] =
|
|
37246
|
-
|
|
37294
|
+
const [activeKey, setActiveKey] = React22.useState(null);
|
|
37295
|
+
React22.useEffect(() => {
|
|
37247
37296
|
if (!activeKey) return;
|
|
37248
37297
|
const timeoutId = window.setTimeout(() => {
|
|
37249
37298
|
setActiveKey((current) => current === activeKey ? null : current);
|
|
@@ -37400,7 +37449,7 @@ var init_shop_state = __esm({
|
|
|
37400
37449
|
});
|
|
37401
37450
|
|
|
37402
37451
|
// ../blocks/src/system/runtime/nodes/shop.client.tsx
|
|
37403
|
-
import
|
|
37452
|
+
import React23, { useCallback as useCallback10, useEffect as useEffect21, useRef as useRef11, useState as useState17 } from "react";
|
|
37404
37453
|
import { Fragment as Fragment17, jsx as jsx112, jsxs as jsxs83 } from "react/jsx-runtime";
|
|
37405
37454
|
function ShopClient(props2) {
|
|
37406
37455
|
return /* @__PURE__ */ jsx112(PassesMembershipsController, { render: props2.render });
|
|
@@ -37412,7 +37461,7 @@ function getCheckoutModalTitle(checkout2) {
|
|
|
37412
37461
|
}
|
|
37413
37462
|
function PassesMembershipsController({ render }) {
|
|
37414
37463
|
const api = useBlockApi();
|
|
37415
|
-
const [state, dispatch] =
|
|
37464
|
+
const [state, dispatch] = React23.useReducer(
|
|
37416
37465
|
shopPassesMembershipsReducer,
|
|
37417
37466
|
initialShopPassesMembershipsState
|
|
37418
37467
|
);
|
|
@@ -39630,7 +39679,7 @@ var init_embla_carousel_react_esm = __esm({
|
|
|
39630
39679
|
});
|
|
39631
39680
|
|
|
39632
39681
|
// ../blocks/src/system/runtime/nodes/carousel.client.tsx
|
|
39633
|
-
import
|
|
39682
|
+
import React24 from "react";
|
|
39634
39683
|
import { Fragment as Fragment18, jsx as jsx113, jsxs as jsxs84 } from "react/jsx-runtime";
|
|
39635
39684
|
function normalizeCarouselProps(input) {
|
|
39636
39685
|
const transition = input.transition === "fade" ? "fade" : "slide";
|
|
@@ -39685,8 +39734,8 @@ var init_carousel_client = __esm({
|
|
|
39685
39734
|
autoplayDelay,
|
|
39686
39735
|
loop
|
|
39687
39736
|
}) => {
|
|
39688
|
-
const slides =
|
|
39689
|
-
const normalized =
|
|
39737
|
+
const slides = React24.Children.toArray(children).filter(Boolean);
|
|
39738
|
+
const normalized = React24.useMemo(
|
|
39690
39739
|
() => normalizeCarouselProps({
|
|
39691
39740
|
slidesToShow,
|
|
39692
39741
|
transition,
|
|
@@ -39709,11 +39758,11 @@ var init_carousel_client = __esm({
|
|
|
39709
39758
|
]
|
|
39710
39759
|
);
|
|
39711
39760
|
const resolvedSlides = resolveSlidesToShowMobile(normalized.slidesToShow);
|
|
39712
|
-
const cssVars =
|
|
39761
|
+
const cssVars = React24.useMemo(
|
|
39713
39762
|
() => getCarouselSlidesToShowCssVars(normalized.slidesToShow),
|
|
39714
39763
|
[normalized.slidesToShow]
|
|
39715
39764
|
);
|
|
39716
|
-
const plugins =
|
|
39765
|
+
const plugins = React24.useMemo(() => {
|
|
39717
39766
|
if (!normalized.autoplay) return void 0;
|
|
39718
39767
|
return [
|
|
39719
39768
|
Autoplay({
|
|
@@ -39735,11 +39784,11 @@ var init_carousel_client = __esm({
|
|
|
39735
39784
|
},
|
|
39736
39785
|
plugins
|
|
39737
39786
|
);
|
|
39738
|
-
const [selectedIndex, setSelectedIndex] =
|
|
39739
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
39740
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
39741
|
-
const [canScrollNext, setCanScrollNext] =
|
|
39742
|
-
|
|
39787
|
+
const [selectedIndex, setSelectedIndex] = React24.useState(0);
|
|
39788
|
+
const [scrollSnaps, setScrollSnaps] = React24.useState([]);
|
|
39789
|
+
const [canScrollPrev, setCanScrollPrev] = React24.useState(false);
|
|
39790
|
+
const [canScrollNext, setCanScrollNext] = React24.useState(false);
|
|
39791
|
+
React24.useEffect(() => {
|
|
39743
39792
|
if (!api) return;
|
|
39744
39793
|
const onInit = () => {
|
|
39745
39794
|
setScrollSnaps(api.scrollSnapList());
|
|
@@ -39762,7 +39811,7 @@ var init_carousel_client = __esm({
|
|
|
39762
39811
|
api.off("reInit", onSelect);
|
|
39763
39812
|
};
|
|
39764
39813
|
}, [api]);
|
|
39765
|
-
|
|
39814
|
+
React24.useEffect(() => {
|
|
39766
39815
|
if (!api || !normalized.autoplay) return;
|
|
39767
39816
|
const autoplayPlugin = api.plugins()?.autoplay;
|
|
39768
39817
|
if (!autoplayPlugin) return;
|
|
@@ -39973,16 +40022,16 @@ var init_shop_checkout_state = __esm({
|
|
|
39973
40022
|
});
|
|
39974
40023
|
|
|
39975
40024
|
// ../blocks/src/system/runtime/nodes/shop-commerce.tsx
|
|
39976
|
-
import * as
|
|
40025
|
+
import * as React25 from "react";
|
|
39977
40026
|
import { Fragment as Fragment19, jsx as jsx114, jsxs as jsxs85 } from "react/jsx-runtime";
|
|
39978
40027
|
function ProductListController(props2) {
|
|
39979
40028
|
const api = useBlockApi();
|
|
39980
40029
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
39981
40030
|
const addFeedback = useTransientShopAddFeedback();
|
|
39982
|
-
const [variantSelection, setVariantSelection] =
|
|
40031
|
+
const [variantSelection, setVariantSelection] = React25.useState(
|
|
39983
40032
|
() => Object.fromEntries(props2.render.display.cards.map((card) => [card.productId, card.selectedVariantId]))
|
|
39984
40033
|
);
|
|
39985
|
-
const cards =
|
|
40034
|
+
const cards = React25.useMemo(
|
|
39986
40035
|
() => props2.render.hydration.products.map(
|
|
39987
40036
|
(product) => buildProductCardDisplay(
|
|
39988
40037
|
product,
|
|
@@ -39997,7 +40046,7 @@ function ProductListController(props2) {
|
|
|
39997
40046
|
),
|
|
39998
40047
|
[props2.render.hydration, variantSelection]
|
|
39999
40048
|
);
|
|
40000
|
-
const display =
|
|
40049
|
+
const display = React25.useMemo(
|
|
40001
40050
|
() => ({
|
|
40002
40051
|
...props2.render.display,
|
|
40003
40052
|
state: cards.length === 0 ? "empty" : "ready",
|
|
@@ -40059,17 +40108,17 @@ function ProductDetailController(props2) {
|
|
|
40059
40108
|
const api = useBlockApi();
|
|
40060
40109
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
40061
40110
|
const addFeedback = useTransientShopAddFeedback();
|
|
40062
|
-
const selectedProduct =
|
|
40111
|
+
const selectedProduct = React25.useMemo(
|
|
40063
40112
|
() => props2.render.hydration.products.find((product) => product.id === props2.render.hydration.productId) ?? null,
|
|
40064
40113
|
[props2.render.hydration.productId, props2.render.hydration.products]
|
|
40065
40114
|
);
|
|
40066
|
-
const [variantId, setVariantId] =
|
|
40115
|
+
const [variantId, setVariantId] = React25.useState(
|
|
40067
40116
|
props2.render.display.state === "ready" ? props2.render.display.selectedVariantId : null
|
|
40068
40117
|
);
|
|
40069
|
-
|
|
40118
|
+
React25.useEffect(() => {
|
|
40070
40119
|
setVariantId(props2.render.display.state === "ready" ? props2.render.display.selectedVariantId : null);
|
|
40071
40120
|
}, [props2.render.display]);
|
|
40072
|
-
const display =
|
|
40121
|
+
const display = React25.useMemo(
|
|
40073
40122
|
() => buildProductDetailDisplay(
|
|
40074
40123
|
selectedProduct,
|
|
40075
40124
|
{
|
|
@@ -40137,7 +40186,7 @@ function ProductDetailController(props2) {
|
|
|
40137
40186
|
function CartController(props2) {
|
|
40138
40187
|
const api = useBlockApi();
|
|
40139
40188
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
40140
|
-
const display =
|
|
40189
|
+
const display = React25.useMemo(
|
|
40141
40190
|
() => getShopDisplayForItems(props2.render, cart2.items),
|
|
40142
40191
|
[cart2.items, props2.render]
|
|
40143
40192
|
);
|
|
@@ -40180,11 +40229,11 @@ function CartController(props2) {
|
|
|
40180
40229
|
function CheckoutController(props2) {
|
|
40181
40230
|
const api = useBlockApi();
|
|
40182
40231
|
const cart2 = useCommerceCart(api.config.siteId);
|
|
40183
|
-
const [state, dispatch] =
|
|
40232
|
+
const [state, dispatch] = React25.useReducer(
|
|
40184
40233
|
shopCheckoutReducer,
|
|
40185
40234
|
initialShopCheckoutState
|
|
40186
40235
|
);
|
|
40187
|
-
|
|
40236
|
+
React25.useEffect(() => {
|
|
40188
40237
|
const checkout2 = consumeSearchParam("checkout");
|
|
40189
40238
|
if (checkout2 === "success") {
|
|
40190
40239
|
cart2.clear();
|
|
@@ -40193,7 +40242,7 @@ function CheckoutController(props2) {
|
|
|
40193
40242
|
dispatch({ type: "setNotice", notice: "cancelled" });
|
|
40194
40243
|
}
|
|
40195
40244
|
}, [cart2]);
|
|
40196
|
-
const display =
|
|
40245
|
+
const display = React25.useMemo(
|
|
40197
40246
|
() => getShopDisplayForItems(props2.render, cart2.items),
|
|
40198
40247
|
[cart2.items, props2.render]
|
|
40199
40248
|
);
|
|
@@ -40353,7 +40402,7 @@ var init_checkout_client = __esm({
|
|
|
40353
40402
|
});
|
|
40354
40403
|
|
|
40355
40404
|
// ../blocks/src/system/runtime/header/HeaderCartDrawer.tsx
|
|
40356
|
-
import * as
|
|
40405
|
+
import * as React26 from "react";
|
|
40357
40406
|
import { jsx as jsx119, jsxs as jsxs86 } from "react/jsx-runtime";
|
|
40358
40407
|
function normalizeQuantityInput(value) {
|
|
40359
40408
|
const parsed = Number(value);
|
|
@@ -40403,8 +40452,8 @@ function HeaderCartDrawerItems(props2) {
|
|
|
40403
40452
|
)) });
|
|
40404
40453
|
}
|
|
40405
40454
|
function HeaderCartDrawer(props2) {
|
|
40406
|
-
const titleId =
|
|
40407
|
-
const display =
|
|
40455
|
+
const titleId = React26.useId();
|
|
40456
|
+
const display = React26.useMemo(
|
|
40408
40457
|
() => buildCartDisplay(props2.cart.items, {
|
|
40409
40458
|
heading: "Cart",
|
|
40410
40459
|
emptyMessage: "Your cart is empty.",
|
|
@@ -40618,15 +40667,15 @@ var init_HeaderCartTrigger = __esm({
|
|
|
40618
40667
|
});
|
|
40619
40668
|
|
|
40620
40669
|
// ../blocks/src/system/runtime/header/headerCartRuntime.tsx
|
|
40621
|
-
import * as
|
|
40670
|
+
import * as React27 from "react";
|
|
40622
40671
|
import { createPortal as createPortal2 } from "react-dom";
|
|
40623
40672
|
import { createRoot } from "react-dom/client";
|
|
40624
40673
|
import { Fragment as Fragment20, jsx as jsx121, jsxs as jsxs88 } from "react/jsx-runtime";
|
|
40625
40674
|
function HeaderCartRuntime(props2) {
|
|
40626
40675
|
const cart2 = useCommerceCart(props2.siteId);
|
|
40627
|
-
const itemCount =
|
|
40628
|
-
const [open, setOpen] =
|
|
40629
|
-
const checkoutHref =
|
|
40676
|
+
const itemCount = React27.useMemo(() => getCartItemCount(cart2.items), [cart2.items]);
|
|
40677
|
+
const [open, setOpen] = React27.useState(false);
|
|
40678
|
+
const checkoutHref = React27.useMemo(
|
|
40630
40679
|
() => resolveHeaderCartCheckoutHref(
|
|
40631
40680
|
props2.mounts,
|
|
40632
40681
|
typeof window === "undefined" ? null : window.location.pathname
|
|
@@ -58560,7 +58609,7 @@ var DEFAULT_REQUIRED_ERROR_MESSAGE = "This section failed to load. Please refres
|
|
|
58560
58609
|
var IslandPropsDecodeError = class extends Error {
|
|
58561
58610
|
constructor(kind, issues) {
|
|
58562
58611
|
super(
|
|
58563
|
-
`[sdk:islands] Invalid props for island kind="${kind}": ${issues.map((
|
|
58612
|
+
`[sdk:islands] Invalid props for island kind="${kind}": ${issues.map((issue2) => `${issue2.path.join(".") || "<root>"}: ${issue2.message}`).join("; ")}`
|
|
58564
58613
|
);
|
|
58565
58614
|
this.name = "IslandPropsDecodeError";
|
|
58566
58615
|
this.issues = issues;
|
|
@@ -58722,382 +58771,619 @@ function hydrateBlocksIslands(options = {}) {
|
|
|
58722
58771
|
}
|
|
58723
58772
|
|
|
58724
58773
|
// ../blocks/src/PageRenderer.tsx
|
|
58725
|
-
import * as
|
|
58726
|
-
|
|
58727
|
-
// ../blocks/src/system/manifest/registry.ts
|
|
58728
|
-
var REGISTRY_SYMBOL = /* @__PURE__ */ Symbol.for("@riverbankcms/blocks/manifest-registry");
|
|
58729
|
-
var isVitest = typeof process !== "undefined" && typeof process.env !== "undefined" && process.env.VITEST === "true";
|
|
58730
|
-
var globalScope = globalThis;
|
|
58731
|
-
var manifestStore = isVitest ? /* @__PURE__ */ new Map() : globalScope[REGISTRY_SYMBOL] ?? (globalScope[REGISTRY_SYMBOL] = /* @__PURE__ */ new Map());
|
|
58732
|
-
function registerManifest(manifest) {
|
|
58733
|
-
manifestStore.set(manifest.name, manifest);
|
|
58734
|
-
return manifest;
|
|
58735
|
-
}
|
|
58774
|
+
import * as React38 from "react";
|
|
58736
58775
|
|
|
58737
|
-
// ../blocks/src/system/manifest/
|
|
58738
|
-
init_schema2();
|
|
58776
|
+
// ../blocks/src/system/manifest/fieldValidation/index.ts
|
|
58739
58777
|
import { z as z40 } from "zod";
|
|
58740
58778
|
|
|
58741
|
-
// ../blocks/src/system/
|
|
58742
|
-
init_typeGuards2();
|
|
58779
|
+
// ../blocks/src/system/types/link.ts
|
|
58743
58780
|
import { z as z39 } from "zod";
|
|
58744
|
-
var
|
|
58745
|
-
|
|
58746
|
-
|
|
58747
|
-
|
|
58748
|
-
|
|
58749
|
-
|
|
58750
|
-
|
|
58751
|
-
|
|
58752
|
-
|
|
58753
|
-
|
|
58754
|
-
|
|
58755
|
-
})
|
|
58756
|
-
);
|
|
58757
|
-
var
|
|
58758
|
-
|
|
58759
|
-
|
|
58760
|
-
|
|
58761
|
-
z39.
|
|
58762
|
-
|
|
58763
|
-
|
|
58781
|
+
var nullableString = z39.union([z39.string().min(1), z39.null()]);
|
|
58782
|
+
var resolvedInternalLinkKeys = ["entityId", "entityType", "href", "title", "typeLabel"];
|
|
58783
|
+
var internalRouteOnlyLinkSchema = z39.object({
|
|
58784
|
+
kind: z39.literal("internal"),
|
|
58785
|
+
routeId: z39.string().min(1)
|
|
58786
|
+
}).passthrough().superRefine((value, ctx) => {
|
|
58787
|
+
const hasResolvedMetadata = resolvedInternalLinkKeys.some((key) => value[key] != null);
|
|
58788
|
+
if (!hasResolvedMetadata) return;
|
|
58789
|
+
ctx.addIssue({
|
|
58790
|
+
code: "custom",
|
|
58791
|
+
message: "Internal links with resolved metadata must include entityId, entityType, href, title, and typeLabel"
|
|
58792
|
+
});
|
|
58793
|
+
});
|
|
58794
|
+
var internalResolvedLinkSchema = z39.object({
|
|
58795
|
+
kind: z39.literal("internal"),
|
|
58796
|
+
routeId: z39.string().min(1),
|
|
58797
|
+
entityId: z39.string().min(1),
|
|
58798
|
+
entityType: z39.enum(["page", "content"]),
|
|
58799
|
+
href: z39.string().min(1),
|
|
58800
|
+
title: z39.string().min(1),
|
|
58801
|
+
typeLabel: z39.string().min(1),
|
|
58802
|
+
contentTypeKey: nullableString.optional(),
|
|
58803
|
+
contentTypeName: nullableString.optional(),
|
|
58804
|
+
updatedAt: nullableString.optional()
|
|
58805
|
+
}).passthrough();
|
|
58806
|
+
var internalLinkSchema = z39.union([
|
|
58807
|
+
internalResolvedLinkSchema,
|
|
58808
|
+
internalRouteOnlyLinkSchema
|
|
58809
|
+
]);
|
|
58810
|
+
var externalLinkSchema = z39.object({
|
|
58811
|
+
kind: z39.literal("external"),
|
|
58812
|
+
href: z39.string().min(1)
|
|
58813
|
+
}).passthrough();
|
|
58814
|
+
var customLinkSchema = z39.object({
|
|
58815
|
+
kind: z39.literal("url"),
|
|
58816
|
+
href: z39.string().min(1)
|
|
58817
|
+
}).passthrough();
|
|
58818
|
+
var pageLinkSchema = z39.object({
|
|
58819
|
+
kind: z39.literal("page"),
|
|
58820
|
+
identifier: z39.string().min(1)
|
|
58821
|
+
}).passthrough();
|
|
58822
|
+
var entryLinkSchema = z39.object({
|
|
58823
|
+
kind: z39.literal("entry"),
|
|
58824
|
+
contentType: z39.string().min(1),
|
|
58825
|
+
identifier: z39.string().min(1)
|
|
58826
|
+
}).passthrough();
|
|
58827
|
+
var linkSchema = z39.union([
|
|
58828
|
+
internalLinkSchema,
|
|
58829
|
+
externalLinkSchema,
|
|
58830
|
+
customLinkSchema,
|
|
58831
|
+
pageLinkSchema,
|
|
58832
|
+
entryLinkSchema
|
|
58764
58833
|
]);
|
|
58765
|
-
function buildRichTextSchema(options) {
|
|
58766
|
-
let schema = RichTextValueSchema;
|
|
58767
|
-
if (options?.required) {
|
|
58768
|
-
const label = options.label ?? "This field";
|
|
58769
|
-
schema = schema.refine(
|
|
58770
|
-
(val) => {
|
|
58771
|
-
const doc = isRecord2(val) && "doc" in val ? val.doc : val;
|
|
58772
|
-
const content = isRecord2(doc) ? doc.content : void 0;
|
|
58773
|
-
if (!Array.isArray(content) || content.length === 0) return false;
|
|
58774
|
-
const first = content[0];
|
|
58775
|
-
if (content.length === 1 && isRecord2(first) && first.type === "paragraph" && (!("content" in first) || first.content == null)) {
|
|
58776
|
-
return false;
|
|
58777
|
-
}
|
|
58778
|
-
return true;
|
|
58779
|
-
},
|
|
58780
|
-
{
|
|
58781
|
-
message: `${label} is required`
|
|
58782
|
-
}
|
|
58783
|
-
);
|
|
58784
|
-
}
|
|
58785
|
-
return schema;
|
|
58786
|
-
}
|
|
58787
58834
|
|
|
58788
|
-
// ../blocks/src/system/manifest/
|
|
58789
|
-
|
|
58790
|
-
|
|
58791
|
-
|
|
58792
|
-
|
|
58793
|
-
|
|
58794
|
-
|
|
58835
|
+
// ../blocks/src/system/manifest/fieldValidation/index.ts
|
|
58836
|
+
init_schema2();
|
|
58837
|
+
var TEL_RE = /^[+()0-9\s-]{3,}$/;
|
|
58838
|
+
var SLUG_PATTERN = /^(?:[a-z0-9]+(?:-[a-z0-9]+)*)(?:\/(?:[a-z0-9]+(?:-[a-z0-9]+)*))*$/;
|
|
58839
|
+
var ALLOWED_URL_PROTOCOLS = ["http:", "https:"];
|
|
58840
|
+
function assertNever6(value) {
|
|
58841
|
+
throw new Error(`Unhandled field validation variant: ${JSON.stringify(value)}`);
|
|
58795
58842
|
}
|
|
58796
|
-
function
|
|
58797
|
-
|
|
58798
|
-
|
|
58799
|
-
|
|
58800
|
-
|
|
58801
|
-
|
|
58802
|
-
if (docObj.type !== "doc") return false;
|
|
58803
|
-
const content = docObj.content;
|
|
58804
|
-
if (!Array.isArray(content) || content.length === 0) return true;
|
|
58805
|
-
if (content.length === 1) {
|
|
58806
|
-
const first = content[0];
|
|
58807
|
-
if (first.type === "paragraph" && (!first.content || first.content.length === 0)) {
|
|
58808
|
-
return true;
|
|
58809
|
-
}
|
|
58810
|
-
}
|
|
58811
|
-
return false;
|
|
58843
|
+
function validationContext(options = {}) {
|
|
58844
|
+
const isDraft = options.mode === "draft";
|
|
58845
|
+
return {
|
|
58846
|
+
allowNull: options.allowNull ?? true,
|
|
58847
|
+
allowIncomplete: isDraft || (options.allowIncomplete ?? false)
|
|
58848
|
+
};
|
|
58812
58849
|
}
|
|
58813
|
-
function
|
|
58814
|
-
|
|
58815
|
-
|
|
58816
|
-
|
|
58817
|
-
|
|
58818
|
-
|
|
58819
|
-
|
|
58850
|
+
function fieldIssueToMessage(issue2) {
|
|
58851
|
+
switch (issue2.kind) {
|
|
58852
|
+
case "required":
|
|
58853
|
+
return "This field is required";
|
|
58854
|
+
case "wrongType":
|
|
58855
|
+
return `${issue2.label} needs ${issue2.expected}`;
|
|
58856
|
+
case "tooLong":
|
|
58857
|
+
return `Use ${issue2.maximum} characters or fewer`;
|
|
58858
|
+
case "invalidEmail":
|
|
58859
|
+
return "Enter a valid email address";
|
|
58860
|
+
case "invalidPhone":
|
|
58861
|
+
return "Enter a valid phone number";
|
|
58862
|
+
case "invalidPattern":
|
|
58863
|
+
return "Check the format and try again";
|
|
58864
|
+
case "invalidUrl":
|
|
58865
|
+
return "Enter a valid web address";
|
|
58866
|
+
case "invalidNumber":
|
|
58867
|
+
return `${issue2.label} needs a number`;
|
|
58868
|
+
case "tooSmall":
|
|
58869
|
+
return `${issue2.label} must be ${issue2.minimum} or more`;
|
|
58870
|
+
case "tooLarge":
|
|
58871
|
+
return `${issue2.label} must be ${issue2.maximum} or less`;
|
|
58872
|
+
case "invalidSlug":
|
|
58873
|
+
return `${issue2.label} can only use lowercase letters, numbers, and dashes`;
|
|
58874
|
+
case "invalidOption":
|
|
58875
|
+
return `Choose one of the available options for ${issue2.label}`;
|
|
58876
|
+
case "tooFewItems":
|
|
58877
|
+
return `${issue2.label} must have at least ${issue2.minimum} ${pluralize(issue2.itemLabel, issue2.minimum)}`;
|
|
58878
|
+
case "tooManyItems":
|
|
58879
|
+
return `${issue2.label} must have at most ${issue2.maximum} ${pluralize(issue2.itemLabel, issue2.maximum)}`;
|
|
58880
|
+
case "invalidRichText":
|
|
58881
|
+
return `${issue2.label} must be valid rich text`;
|
|
58882
|
+
case "invalidMedia":
|
|
58883
|
+
return `${issue2.label} must be a valid media item`;
|
|
58884
|
+
case "invalidLink":
|
|
58885
|
+
return `${issue2.label} must be a valid link`;
|
|
58886
|
+
case "invalidReference":
|
|
58887
|
+
return `${issue2.label} must reference a valid item`;
|
|
58888
|
+
default:
|
|
58889
|
+
return assertNever6(issue2);
|
|
58820
58890
|
}
|
|
58821
|
-
return result;
|
|
58822
58891
|
}
|
|
58823
|
-
function
|
|
58824
|
-
|
|
58825
|
-
|
|
58826
|
-
const allowIncomplete = isDraft || (options.allowIncomplete ?? false);
|
|
58827
|
-
const shape = {};
|
|
58828
|
-
const fields3 = Array.isArray(manifestOrFields) ? manifestOrFields : manifestOrFields.fields ?? [];
|
|
58829
|
-
for (const field of fields3) {
|
|
58830
|
-
shape[field.id] = buildFieldSchema(field, allowNull, allowIncomplete);
|
|
58831
|
-
}
|
|
58832
|
-
const baseSchema = z40.object(shape).catchall(z40.unknown()).passthrough();
|
|
58833
|
-
if (isDraft) {
|
|
58834
|
-
return z40.preprocess(preprocessEmptyValues, baseSchema);
|
|
58835
|
-
}
|
|
58836
|
-
return baseSchema;
|
|
58892
|
+
function pluralize(label, count) {
|
|
58893
|
+
if (count === 1) return label;
|
|
58894
|
+
return label.endsWith("s") ? label : `${label}s`;
|
|
58837
58895
|
}
|
|
58838
|
-
function
|
|
58896
|
+
function deriveFieldValidationPlan(field, path = [field.id]) {
|
|
58839
58897
|
const required = Boolean(field.required);
|
|
58840
|
-
let schema;
|
|
58841
58898
|
switch (field.type) {
|
|
58842
|
-
case "text":
|
|
58843
|
-
|
|
58844
|
-
|
|
58845
|
-
|
|
58846
|
-
|
|
58847
|
-
|
|
58848
|
-
|
|
58849
|
-
|
|
58850
|
-
const
|
|
58851
|
-
|
|
58852
|
-
|
|
58899
|
+
case "text": {
|
|
58900
|
+
const inputType = field.ui?.inputType;
|
|
58901
|
+
if (inputType === "number") {
|
|
58902
|
+
const constraints2 = commonConstraints(required, { kind: "numberType" });
|
|
58903
|
+
if (typeof field.ui?.min === "number") constraints2.push({ kind: "numberMin", minimum: field.ui.min });
|
|
58904
|
+
if (typeof field.ui?.max === "number") constraints2.push({ kind: "numberMax", maximum: field.ui.max });
|
|
58905
|
+
return makePlan("number", "number", field, path, required, constraints2);
|
|
58906
|
+
}
|
|
58907
|
+
const constraints = commonConstraints(required, { kind: "textType" });
|
|
58908
|
+
if (inputType === "email") constraints.push({ kind: "emailFormat" });
|
|
58909
|
+
if (inputType === "tel") constraints.push({ kind: "phoneFormat" });
|
|
58910
|
+
if (field.ui?.pattern) constraints.push({ kind: "patternFormat", pattern: field.ui.pattern });
|
|
58911
|
+
if (typeof field.maxLength === "number") constraints.push({ kind: "maxLength", maximum: field.maxLength });
|
|
58912
|
+
return makePlan("string", "string", field, path, required, constraints);
|
|
58913
|
+
}
|
|
58914
|
+
case "number": {
|
|
58915
|
+
const constraints = commonConstraints(required, { kind: "numberType" });
|
|
58916
|
+
if (typeof field.min === "number") constraints.push({ kind: "numberMin", minimum: field.min });
|
|
58917
|
+
if (typeof field.max === "number") constraints.push({ kind: "numberMax", maximum: field.max });
|
|
58918
|
+
return makePlan("number", "number", field, path, required, constraints);
|
|
58919
|
+
}
|
|
58920
|
+
case "slug": {
|
|
58921
|
+
const constraints = commonConstraints(required, { kind: "textType" }, { kind: "slugFormat" });
|
|
58922
|
+
if (typeof field.maxLength === "number") constraints.push({ kind: "maxLength", maximum: field.maxLength });
|
|
58923
|
+
return makePlan("string", "string", field, path, required, constraints);
|
|
58853
58924
|
}
|
|
58854
|
-
case "boolean":
|
|
58855
|
-
schema = z40.boolean();
|
|
58856
|
-
break;
|
|
58857
|
-
case "slug":
|
|
58858
|
-
schema = buildSlugSchema(field);
|
|
58859
|
-
break;
|
|
58860
58925
|
case "url":
|
|
58861
|
-
|
|
58862
|
-
|
|
58863
|
-
|
|
58864
|
-
|
|
58865
|
-
|
|
58866
|
-
case "select":
|
|
58867
|
-
schema = buildSelectSchema(field);
|
|
58868
|
-
break;
|
|
58926
|
+
return makePlan("string", "string", field, path, required, commonConstraints(
|
|
58927
|
+
required,
|
|
58928
|
+
{ kind: "textType" },
|
|
58929
|
+
{ kind: "urlFormat", allowRelative: Boolean(field.allowRelative) }
|
|
58930
|
+
));
|
|
58869
58931
|
case "reference":
|
|
58870
|
-
|
|
58871
|
-
|
|
58932
|
+
return makePlan("string", "string", field, path, required, commonConstraints(required, { kind: "referenceText" }));
|
|
58933
|
+
case "date":
|
|
58934
|
+
case "time":
|
|
58935
|
+
case "datetime":
|
|
58936
|
+
return makePlan("string", "string", field, path, required, commonConstraints(required, { kind: "textType" }));
|
|
58937
|
+
case "select":
|
|
58938
|
+
return makePlan("select", "select", field, path, required, commonConstraints(required, {
|
|
58939
|
+
kind: "selectOption",
|
|
58940
|
+
source: resolveSelectConstraintSource(field),
|
|
58941
|
+
multiple: Boolean(field.multiple)
|
|
58942
|
+
}));
|
|
58943
|
+
case "richText":
|
|
58944
|
+
return makePlan("richText", "object", field, path, required, commonConstraints(required, { kind: "richTextDoc" }));
|
|
58945
|
+
case "media":
|
|
58946
|
+
return makePlan("media", "object", field, path, required, commonConstraints(required, { kind: "mediaObject" }));
|
|
58947
|
+
case "link":
|
|
58948
|
+
return makePlan("link", "object", field, path, required, commonConstraints(required, { kind: "linkObject" }));
|
|
58949
|
+
case "boolean":
|
|
58950
|
+
return makePlan("boolean", "boolean", field, path, required, requiredConstraints(required));
|
|
58872
58951
|
case "repeater":
|
|
58873
|
-
|
|
58874
|
-
|
|
58952
|
+
return {
|
|
58953
|
+
...makePlan("repeater", "array", field, path, required, commonConstraints(required, { kind: "arrayType" })),
|
|
58954
|
+
...field.polymorphic && field.itemTypes ? { repeatedItemVariants: deriveRepeatedItemVariants(field, [...path, 0]) } : { repeatedItemPlan: deriveNestedFieldPlans(getRepeaterFields(field), [...path, 0]) },
|
|
58955
|
+
constraints: withRepeaterItemConstraints(field, commonConstraints(required, { kind: "arrayType" }))
|
|
58956
|
+
};
|
|
58875
58957
|
case "group":
|
|
58876
|
-
|
|
58877
|
-
|
|
58958
|
+
case "modal":
|
|
58959
|
+
return {
|
|
58960
|
+
...makePlan("group", "object", field, path, required, requiredConstraints(required)),
|
|
58961
|
+
children: deriveNestedFieldPlans(field.schema?.fields ?? [], path),
|
|
58962
|
+
allowNullChildren: field.type === "group" && field.ui?.widget === "locationPicker"
|
|
58963
|
+
};
|
|
58964
|
+
case "tabGroup":
|
|
58965
|
+
return {
|
|
58966
|
+
...makePlan("group", "object", field, path, required, requiredConstraints(required)),
|
|
58967
|
+
children: field.tabs.flatMap((tab) => deriveNestedFieldPlans(tab.fields, path))
|
|
58968
|
+
};
|
|
58969
|
+
case "presetOrCustom":
|
|
58970
|
+
case "contentTypeSelect":
|
|
58971
|
+
case "entryPicker":
|
|
58972
|
+
return makePlan("passthrough", "unknown", field, path, false, []);
|
|
58878
58973
|
default:
|
|
58879
|
-
|
|
58880
|
-
break;
|
|
58974
|
+
return assertNever6(field);
|
|
58881
58975
|
}
|
|
58882
|
-
return finalizeSchema(schema, required, allowNull, allowIncomplete);
|
|
58883
58976
|
}
|
|
58884
|
-
function
|
|
58885
|
-
return
|
|
58886
|
-
error: (issue) => issue.input === void 0 || issue.input === null ? "This field is required" : `${field.label} needs text`
|
|
58887
|
-
});
|
|
58977
|
+
function commonConstraints(required, ...specific) {
|
|
58978
|
+
return required ? [{ kind: "required" }, ...specific] : [...specific];
|
|
58888
58979
|
}
|
|
58889
|
-
function
|
|
58890
|
-
|
|
58891
|
-
|
|
58892
|
-
|
|
58893
|
-
|
|
58894
|
-
|
|
58895
|
-
|
|
58896
|
-
|
|
58897
|
-
|
|
58898
|
-
|
|
58899
|
-
|
|
58900
|
-
|
|
58901
|
-
|
|
58902
|
-
|
|
58903
|
-
|
|
58904
|
-
|
|
58905
|
-
|
|
58906
|
-
|
|
58907
|
-
|
|
58908
|
-
|
|
58909
|
-
|
|
58910
|
-
|
|
58911
|
-
|
|
58912
|
-
|
|
58913
|
-
|
|
58914
|
-
|
|
58915
|
-
|
|
58916
|
-
|
|
58917
|
-
|
|
58918
|
-
|
|
58919
|
-
|
|
58920
|
-
|
|
58921
|
-
|
|
58922
|
-
|
|
58923
|
-
|
|
58924
|
-
|
|
58925
|
-
|
|
58926
|
-
|
|
58927
|
-
);
|
|
58928
|
-
} catch {
|
|
58929
|
-
}
|
|
58930
|
-
}
|
|
58931
|
-
if (field.maxLength) {
|
|
58932
|
-
schema = schema.max(
|
|
58933
|
-
field.maxLength,
|
|
58934
|
-
`${field.label} must be ${field.maxLength} characters or less`
|
|
58935
|
-
);
|
|
58936
|
-
}
|
|
58937
|
-
if (field.required) {
|
|
58938
|
-
schema = schema.min(1, { message: `${field.label} is required` }).refine((v) => v.trim().length > 0, { message: `${field.label} is required` });
|
|
58980
|
+
function requiredConstraints(required) {
|
|
58981
|
+
return required ? [{ kind: "required" }] : [];
|
|
58982
|
+
}
|
|
58983
|
+
function makePlan(kind, valueKind, field, path, required, constraints) {
|
|
58984
|
+
return {
|
|
58985
|
+
kind,
|
|
58986
|
+
valueKind,
|
|
58987
|
+
fieldId: field.id,
|
|
58988
|
+
label: field.label,
|
|
58989
|
+
fieldType: field.type,
|
|
58990
|
+
path,
|
|
58991
|
+
required,
|
|
58992
|
+
constraints
|
|
58993
|
+
};
|
|
58994
|
+
}
|
|
58995
|
+
function withRepeaterItemConstraints(field, constraints) {
|
|
58996
|
+
const next = [...constraints];
|
|
58997
|
+
if (typeof field.minItems === "number") next.push({ kind: "minItems", minimum: field.minItems });
|
|
58998
|
+
if (typeof field.maxItems === "number") next.push({ kind: "maxItems", maximum: field.maxItems });
|
|
58999
|
+
return next;
|
|
59000
|
+
}
|
|
59001
|
+
function deriveRepeatedItemVariants(field, parentPath) {
|
|
59002
|
+
return Object.entries(field.itemTypes ?? {}).map(([typeId, itemType]) => ({
|
|
59003
|
+
typeId,
|
|
59004
|
+
fields: deriveNestedFieldPlans(getFlattenedRepeaterFields(itemType.fields), parentPath)
|
|
59005
|
+
}));
|
|
59006
|
+
}
|
|
59007
|
+
function deriveNestedFieldPlans(fields3, parentPath) {
|
|
59008
|
+
return fields3.map((field) => deriveFieldValidationPlan(field, [...parentPath, field.id]));
|
|
59009
|
+
}
|
|
59010
|
+
function getRepeaterFields(field) {
|
|
59011
|
+
const fields3 = field.polymorphic && field.itemTypes ? Object.values(field.itemTypes).flatMap((itemType) => itemType.fields) : field.schema?.fields ?? [];
|
|
59012
|
+
return getFlattenedRepeaterFields(fields3);
|
|
59013
|
+
}
|
|
59014
|
+
function getFlattenedRepeaterFields(fields3) {
|
|
59015
|
+
return fields3.flatMap((child) => {
|
|
59016
|
+
if (child.type === "group" && child.ui?.flattenInRepeater) {
|
|
59017
|
+
return child.schema?.fields ?? [];
|
|
58939
59018
|
}
|
|
59019
|
+
return child;
|
|
59020
|
+
});
|
|
59021
|
+
}
|
|
59022
|
+
function resolveSelectConstraintSource(field) {
|
|
59023
|
+
const source = normalizeSelectSource(field);
|
|
59024
|
+
switch (source.kind) {
|
|
59025
|
+
case "static":
|
|
59026
|
+
return { kind: "static", values: field.options.map((option) => option.value) };
|
|
59027
|
+
case "site":
|
|
59028
|
+
case "sdk":
|
|
59029
|
+
return { kind: "runtime", source: source.kind };
|
|
59030
|
+
default:
|
|
59031
|
+
return assertNever6(source);
|
|
59032
|
+
}
|
|
59033
|
+
}
|
|
59034
|
+
function normalizeFieldValue(plan, value, ctx) {
|
|
59035
|
+
switch (plan.kind) {
|
|
59036
|
+
case "number":
|
|
59037
|
+
return normalizeNumberInput(value, ctx.allowNull);
|
|
59038
|
+
case "string":
|
|
59039
|
+
return acceptsOptionalBlankAsMissing(plan, value) ? void 0 : value;
|
|
59040
|
+
case "group":
|
|
59041
|
+
return normalizeObjectChildren(plan.children, value, childValidationContext(plan, ctx));
|
|
59042
|
+
case "repeater":
|
|
59043
|
+
return normalizeRepeaterItems(plan, value, ctx);
|
|
59044
|
+
case "boolean":
|
|
59045
|
+
case "richText":
|
|
59046
|
+
case "media":
|
|
59047
|
+
case "link":
|
|
59048
|
+
case "select":
|
|
59049
|
+
case "passthrough":
|
|
59050
|
+
return value;
|
|
59051
|
+
default:
|
|
59052
|
+
return assertNever6(plan);
|
|
58940
59053
|
}
|
|
58941
|
-
return schema;
|
|
58942
59054
|
}
|
|
58943
|
-
function
|
|
58944
|
-
|
|
59055
|
+
function normalizeObjectChildren(children, value, ctx) {
|
|
59056
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) return value;
|
|
59057
|
+
const normalized = { ...value };
|
|
59058
|
+
for (const child of children) {
|
|
59059
|
+
normalized[child.fieldId] = normalizeFieldValue(child, normalized[child.fieldId], ctx);
|
|
59060
|
+
}
|
|
59061
|
+
return normalized;
|
|
58945
59062
|
}
|
|
58946
|
-
|
|
58947
|
-
|
|
58948
|
-
|
|
58949
|
-
|
|
58950
|
-
|
|
58951
|
-
|
|
58952
|
-
|
|
58953
|
-
|
|
58954
|
-
|
|
59063
|
+
function normalizeRepeaterItems(plan, value, ctx) {
|
|
59064
|
+
if (!Array.isArray(value)) return value;
|
|
59065
|
+
return value.map((item) => {
|
|
59066
|
+
if (!item || typeof item !== "object" || Array.isArray(item)) return item;
|
|
59067
|
+
const itemRecord = item;
|
|
59068
|
+
const fields3 = plan.repeatedItemVariants ? plan.repeatedItemVariants.find((variant) => variant.typeId === itemRecord._type)?.fields : plan.repeatedItemPlan;
|
|
59069
|
+
if (!fields3) return item;
|
|
59070
|
+
return normalizeObjectChildren(fields3, itemRecord, ctx);
|
|
59071
|
+
});
|
|
59072
|
+
}
|
|
59073
|
+
function normalizeNumberInput(value, allowNull) {
|
|
59074
|
+
if (value === "") return void 0;
|
|
59075
|
+
if (typeof value === "string" && value.trim() !== "") return Number(value);
|
|
59076
|
+
return value;
|
|
59077
|
+
}
|
|
59078
|
+
function acceptsOptionalBlankAsMissing(plan, value) {
|
|
59079
|
+
if (plan.required || typeof value !== "string" || value.trim() !== "") return false;
|
|
59080
|
+
return plan.constraints.some(
|
|
59081
|
+
(constraint) => constraint.kind === "urlFormat" || constraint.kind === "slugFormat" || constraint.kind === "emailFormat" || constraint.kind === "phoneFormat" || constraint.kind === "patternFormat"
|
|
59082
|
+
);
|
|
59083
|
+
}
|
|
59084
|
+
function validateNormalizedFieldValue(plan, value, ctx) {
|
|
59085
|
+
if (value === null && (ctx.allowNull || acceptsOptionalNullValue(plan))) return [];
|
|
59086
|
+
if (isMissingForPlan(plan, value)) {
|
|
59087
|
+
return shouldRequireValue(plan, value, ctx) ? [requiredIssue(plan, value)] : [];
|
|
58955
59088
|
}
|
|
58956
|
-
|
|
58957
|
-
|
|
59089
|
+
switch (plan.kind) {
|
|
59090
|
+
case "string":
|
|
59091
|
+
return validateStringPlan(plan, value);
|
|
59092
|
+
case "number":
|
|
59093
|
+
return validateNumberPlan(plan, value);
|
|
59094
|
+
case "boolean":
|
|
59095
|
+
return typeof value === "boolean" ? [] : [issue(plan, "wrongType", { expected: "a true/false value" })];
|
|
59096
|
+
case "select":
|
|
59097
|
+
return validateSelectPlan(plan, value);
|
|
59098
|
+
case "richText":
|
|
59099
|
+
return isValidRichTextDoc(value) ? [] : [issue(plan, "invalidRichText")];
|
|
59100
|
+
case "media":
|
|
59101
|
+
return isPlainObject2(value) ? [] : [issue(plan, "invalidMedia")];
|
|
59102
|
+
case "link":
|
|
59103
|
+
return linkSchema.safeParse(value).success ? [] : [issue(plan, "invalidLink")];
|
|
59104
|
+
case "repeater":
|
|
59105
|
+
return validateRepeaterPlan(plan, value, ctx);
|
|
59106
|
+
case "group":
|
|
59107
|
+
return validateGroupPlan(plan, value, ctx);
|
|
59108
|
+
case "passthrough":
|
|
59109
|
+
return [];
|
|
59110
|
+
default:
|
|
59111
|
+
return assertNever6(plan);
|
|
58958
59112
|
}
|
|
58959
|
-
return schema;
|
|
58960
59113
|
}
|
|
58961
|
-
|
|
58962
|
-
|
|
58963
|
-
|
|
58964
|
-
|
|
58965
|
-
|
|
58966
|
-
|
|
58967
|
-
|
|
58968
|
-
|
|
58969
|
-
|
|
58970
|
-
|
|
58971
|
-
|
|
58972
|
-
|
|
58973
|
-
|
|
58974
|
-
|
|
58975
|
-
|
|
58976
|
-
|
|
58977
|
-
|
|
58978
|
-
|
|
58979
|
-
|
|
58980
|
-
|
|
58981
|
-
|
|
58982
|
-
|
|
59114
|
+
function shouldRequireValue(plan, value, ctx) {
|
|
59115
|
+
if (!plan.required || ctx.allowIncomplete) return false;
|
|
59116
|
+
if (value === null && ctx.allowNull) return false;
|
|
59117
|
+
return true;
|
|
59118
|
+
}
|
|
59119
|
+
function acceptsOptionalNullValue(plan) {
|
|
59120
|
+
return !plan.required && (plan.kind === "media" || plan.kind === "number");
|
|
59121
|
+
}
|
|
59122
|
+
function isMissingForPlan(plan, value) {
|
|
59123
|
+
if (value === void 0) return true;
|
|
59124
|
+
if (value === null) return plan.required;
|
|
59125
|
+
if (typeof value === "string" && value.trim() === "") return true;
|
|
59126
|
+
if (Array.isArray(value) && value.length === 0) return true;
|
|
59127
|
+
return false;
|
|
59128
|
+
}
|
|
59129
|
+
function validateStringPlan(plan, value) {
|
|
59130
|
+
if (typeof value !== "string") return [issue(plan, "wrongType", { expected: "text" })];
|
|
59131
|
+
return plan.constraints.flatMap((constraint) => validateStringConstraint(plan, constraint, value));
|
|
59132
|
+
}
|
|
59133
|
+
function validateStringConstraint(plan, constraint, value) {
|
|
59134
|
+
switch (constraint.kind) {
|
|
59135
|
+
case "required":
|
|
59136
|
+
case "textType":
|
|
59137
|
+
case "referenceText":
|
|
59138
|
+
return [];
|
|
59139
|
+
case "maxLength":
|
|
59140
|
+
return value.length > constraint.maximum ? [issue(plan, "tooLong", { maximum: constraint.maximum })] : [];
|
|
59141
|
+
case "emailFormat":
|
|
59142
|
+
return z40.email().safeParse(value).success ? [] : [issue(plan, "invalidEmail")];
|
|
59143
|
+
case "phoneFormat":
|
|
59144
|
+
return TEL_RE.test(value) ? [] : [issue(plan, "invalidPhone")];
|
|
59145
|
+
case "patternFormat": {
|
|
59146
|
+
const re = compilePattern(constraint.pattern);
|
|
59147
|
+
return re && !re.test(value) ? [issue(plan, "invalidPattern")] : [];
|
|
59148
|
+
}
|
|
59149
|
+
case "urlFormat":
|
|
59150
|
+
return isValidUrl(value, constraint.allowRelative) ? [] : [issue(plan, "invalidUrl")];
|
|
59151
|
+
case "slugFormat":
|
|
59152
|
+
return SLUG_PATTERN.test(value) ? [] : [issue(plan, "invalidSlug")];
|
|
59153
|
+
default:
|
|
59154
|
+
return assertNever6(constraint);
|
|
58983
59155
|
}
|
|
58984
|
-
return schema;
|
|
58985
59156
|
}
|
|
58986
|
-
|
|
58987
|
-
|
|
58988
|
-
|
|
58989
|
-
routeId: z40.string().min(1),
|
|
58990
|
-
entityId: z40.string().min(1).optional(),
|
|
58991
|
-
entityType: z40.enum(["page", "content"]).optional(),
|
|
58992
|
-
href: nullableString.optional(),
|
|
58993
|
-
title: nullableString.optional(),
|
|
58994
|
-
typeLabel: nullableString.optional(),
|
|
58995
|
-
contentTypeKey: nullableString.optional(),
|
|
58996
|
-
contentTypeName: nullableString.optional(),
|
|
58997
|
-
updatedAt: nullableString.optional()
|
|
58998
|
-
}).passthrough();
|
|
58999
|
-
var externalLinkSchema = z40.object({
|
|
59000
|
-
kind: z40.literal("external"),
|
|
59001
|
-
href: z40.string().min(1)
|
|
59002
|
-
}).passthrough();
|
|
59003
|
-
var customLinkSchema = z40.object({
|
|
59004
|
-
kind: z40.literal("url"),
|
|
59005
|
-
href: z40.string().min(1)
|
|
59006
|
-
}).passthrough();
|
|
59007
|
-
var pageLinkSchema = z40.object({
|
|
59008
|
-
kind: z40.literal("page"),
|
|
59009
|
-
identifier: z40.string().min(1)
|
|
59010
|
-
}).passthrough();
|
|
59011
|
-
var entryLinkSchema = z40.object({
|
|
59012
|
-
kind: z40.literal("entry"),
|
|
59013
|
-
contentType: z40.string().min(1),
|
|
59014
|
-
identifier: z40.string().min(1)
|
|
59015
|
-
}).passthrough();
|
|
59016
|
-
var linkSchema = z40.union([
|
|
59017
|
-
internalLinkSchema,
|
|
59018
|
-
externalLinkSchema,
|
|
59019
|
-
customLinkSchema,
|
|
59020
|
-
pageLinkSchema,
|
|
59021
|
-
entryLinkSchema
|
|
59022
|
-
]);
|
|
59023
|
-
function buildLinkSchema() {
|
|
59024
|
-
return linkSchema;
|
|
59157
|
+
function validateNumberPlan(plan, value) {
|
|
59158
|
+
if (!isValidNumber(value)) return [issue(plan, "invalidNumber")];
|
|
59159
|
+
return plan.constraints.flatMap((constraint) => validateNumberConstraint(plan, constraint, Number(value)));
|
|
59025
59160
|
}
|
|
59026
|
-
function
|
|
59027
|
-
|
|
59161
|
+
function validateNumberConstraint(plan, constraint, value) {
|
|
59162
|
+
switch (constraint.kind) {
|
|
59163
|
+
case "required":
|
|
59164
|
+
case "numberType":
|
|
59165
|
+
return [];
|
|
59166
|
+
case "numberMin":
|
|
59167
|
+
return value < constraint.minimum ? [issue(plan, "tooSmall", { minimum: constraint.minimum })] : [];
|
|
59168
|
+
case "numberMax":
|
|
59169
|
+
return value > constraint.maximum ? [issue(plan, "tooLarge", { maximum: constraint.maximum })] : [];
|
|
59170
|
+
default:
|
|
59171
|
+
return assertNever6(constraint);
|
|
59172
|
+
}
|
|
59028
59173
|
}
|
|
59029
|
-
function
|
|
59030
|
-
const
|
|
59031
|
-
|
|
59032
|
-
|
|
59033
|
-
|
|
59034
|
-
|
|
59035
|
-
|
|
59036
|
-
|
|
59037
|
-
|
|
59038
|
-
|
|
59039
|
-
|
|
59040
|
-
|
|
59041
|
-
|
|
59042
|
-
|
|
59174
|
+
function validateSelectPlan(plan, value) {
|
|
59175
|
+
const constraint = plan.constraints.find((candidate) => candidate.kind === "selectOption");
|
|
59176
|
+
if (!constraint || constraint.source.kind === "runtime") return [];
|
|
59177
|
+
return isValidSelectValue(value, constraint.source.values, constraint.multiple) ? [] : [issue(plan, "invalidOption")];
|
|
59178
|
+
}
|
|
59179
|
+
function validateRepeaterPlan(plan, value, ctx) {
|
|
59180
|
+
if (!Array.isArray(value)) return [issue(plan, "wrongType", { expected: "a list" })];
|
|
59181
|
+
const constraintIssues = plan.constraints.flatMap((constraint) => {
|
|
59182
|
+
switch (constraint.kind) {
|
|
59183
|
+
case "required":
|
|
59184
|
+
case "arrayType":
|
|
59185
|
+
return [];
|
|
59186
|
+
case "minItems":
|
|
59187
|
+
return value.length < constraint.minimum ? [issue(plan, "tooFewItems", { minimum: constraint.minimum, itemLabel: "item" })] : [];
|
|
59188
|
+
case "maxItems":
|
|
59189
|
+
return value.length > constraint.maximum ? [issue(plan, "tooManyItems", { maximum: constraint.maximum, itemLabel: "item" })] : [];
|
|
59043
59190
|
default:
|
|
59044
|
-
return
|
|
59191
|
+
return assertNever6(constraint);
|
|
59045
59192
|
}
|
|
59046
|
-
})
|
|
59047
|
-
|
|
59048
|
-
|
|
59049
|
-
|
|
59050
|
-
|
|
59051
|
-
return field.required ? singleValueSchema : singleValueSchema.nullable();
|
|
59193
|
+
});
|
|
59194
|
+
return [
|
|
59195
|
+
...constraintIssues,
|
|
59196
|
+
...value.flatMap((item, index) => validateRepeaterItem(plan, item, index, ctx))
|
|
59197
|
+
];
|
|
59052
59198
|
}
|
|
59053
|
-
function
|
|
59054
|
-
|
|
59055
|
-
|
|
59199
|
+
function validateRepeaterItem(plan, item, index, ctx) {
|
|
59200
|
+
if (!isPlainObject2(item)) return [];
|
|
59201
|
+
const itemType = item._type;
|
|
59202
|
+
const fields3 = plan.repeatedItemVariants ? plan.repeatedItemVariants.find((variant) => variant.typeId === itemType)?.fields : plan.repeatedItemPlan;
|
|
59203
|
+
if (!fields3) return [];
|
|
59204
|
+
return fields3.flatMap((childPlan) => {
|
|
59205
|
+
const indexedPlan = withIndexedPath(childPlan, plan.path, index);
|
|
59206
|
+
return validateNormalizedFieldValue(indexedPlan, item[childPlan.fieldId], ctx);
|
|
59056
59207
|
});
|
|
59057
|
-
if (field.required) {
|
|
59058
|
-
schema = schema.min(1, { message: `${field.label} is required` });
|
|
59059
|
-
}
|
|
59060
|
-
return schema;
|
|
59061
59208
|
}
|
|
59062
|
-
function
|
|
59063
|
-
|
|
59064
|
-
const
|
|
59065
|
-
|
|
59066
|
-
|
|
59067
|
-
|
|
59068
|
-
|
|
59069
|
-
|
|
59070
|
-
|
|
59071
|
-
|
|
59072
|
-
|
|
59209
|
+
function validateGroupPlan(plan, value, ctx) {
|
|
59210
|
+
if (!isPlainObject2(value)) return [issue(plan, "wrongType", { expected: "an object" })];
|
|
59211
|
+
const childCtx = childValidationContext(plan, ctx);
|
|
59212
|
+
return plan.children.flatMap((childPlan) => validateNormalizedFieldValue(childPlan, value[childPlan.fieldId], childCtx));
|
|
59213
|
+
}
|
|
59214
|
+
function childValidationContext(plan, ctx) {
|
|
59215
|
+
return plan.allowNullChildren ? { ...ctx, allowNull: true } : ctx;
|
|
59216
|
+
}
|
|
59217
|
+
function withIndexedPath(plan, parentPath, index) {
|
|
59218
|
+
const suffix = plan.path.slice(parentPath.length + 1);
|
|
59219
|
+
return {
|
|
59220
|
+
...plan,
|
|
59221
|
+
path: [...parentPath, index, plan.fieldId, ...suffix]
|
|
59222
|
+
};
|
|
59223
|
+
}
|
|
59224
|
+
function issue(plan, kind, extra) {
|
|
59225
|
+
return {
|
|
59226
|
+
kind,
|
|
59227
|
+
path: plan.path,
|
|
59228
|
+
fieldId: plan.fieldId,
|
|
59229
|
+
label: plan.label,
|
|
59230
|
+
...extra ?? {}
|
|
59231
|
+
};
|
|
59232
|
+
}
|
|
59233
|
+
function requiredIssue(plan, value) {
|
|
59234
|
+
if (typeof value === "string") return issue(plan, "required", { emptyOrigin: "string" });
|
|
59235
|
+
if (Array.isArray(value)) return issue(plan, "required", { emptyOrigin: "array" });
|
|
59236
|
+
return issue(plan, "required");
|
|
59237
|
+
}
|
|
59238
|
+
function fieldPlanToZod(plan, options = {}) {
|
|
59239
|
+
const ctx = validationContext(options);
|
|
59240
|
+
return z40.any().transform((value) => normalizeFieldValue(plan, value, ctx)).superRefine((value, zodCtx) => {
|
|
59241
|
+
for (const validationIssue of validateNormalizedFieldValue(plan, value, ctx)) {
|
|
59242
|
+
addFieldIssueToZodContext(zodCtx, validationIssue);
|
|
59073
59243
|
}
|
|
59244
|
+
});
|
|
59245
|
+
}
|
|
59246
|
+
function addFieldIssueToZodContext(zodCtx, validationIssue) {
|
|
59247
|
+
const message = fieldIssueToMessage(validationIssue);
|
|
59248
|
+
switch (validationIssue.kind) {
|
|
59249
|
+
case "required":
|
|
59250
|
+
if (validationIssue.emptyOrigin) {
|
|
59251
|
+
zodCtx.addIssue({
|
|
59252
|
+
code: "too_small",
|
|
59253
|
+
origin: validationIssue.emptyOrigin,
|
|
59254
|
+
minimum: 1,
|
|
59255
|
+
inclusive: true,
|
|
59256
|
+
message
|
|
59257
|
+
});
|
|
59258
|
+
return;
|
|
59259
|
+
}
|
|
59260
|
+
zodCtx.addIssue({ code: "invalid_type", expected: "nonoptional", message });
|
|
59261
|
+
return;
|
|
59262
|
+
case "tooLong":
|
|
59263
|
+
zodCtx.addIssue({
|
|
59264
|
+
code: "too_big",
|
|
59265
|
+
origin: "string",
|
|
59266
|
+
maximum: validationIssue.maximum,
|
|
59267
|
+
inclusive: true,
|
|
59268
|
+
message
|
|
59269
|
+
});
|
|
59270
|
+
return;
|
|
59271
|
+
case "invalidOption":
|
|
59272
|
+
zodCtx.addIssue({ code: "invalid_value", values: [], message });
|
|
59273
|
+
return;
|
|
59274
|
+
case "wrongType":
|
|
59275
|
+
case "invalidEmail":
|
|
59276
|
+
case "invalidPhone":
|
|
59277
|
+
case "invalidPattern":
|
|
59278
|
+
case "invalidUrl":
|
|
59279
|
+
case "invalidNumber":
|
|
59280
|
+
case "tooSmall":
|
|
59281
|
+
case "tooLarge":
|
|
59282
|
+
case "invalidSlug":
|
|
59283
|
+
case "tooFewItems":
|
|
59284
|
+
case "tooManyItems":
|
|
59285
|
+
case "invalidRichText":
|
|
59286
|
+
case "invalidMedia":
|
|
59287
|
+
case "invalidLink":
|
|
59288
|
+
case "invalidReference":
|
|
59289
|
+
zodCtx.addIssue({ code: "custom", message });
|
|
59290
|
+
return;
|
|
59291
|
+
default:
|
|
59292
|
+
assertNever6(validationIssue);
|
|
59074
59293
|
}
|
|
59075
|
-
|
|
59076
|
-
|
|
59077
|
-
|
|
59078
|
-
|
|
59294
|
+
}
|
|
59295
|
+
function compilePattern(pattern) {
|
|
59296
|
+
try {
|
|
59297
|
+
return new RegExp(pattern);
|
|
59298
|
+
} catch {
|
|
59299
|
+
return null;
|
|
59079
59300
|
}
|
|
59080
|
-
|
|
59081
|
-
|
|
59301
|
+
}
|
|
59302
|
+
function isValidNumber(value) {
|
|
59303
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
59304
|
+
}
|
|
59305
|
+
function isValidUrl(value, allowRelative) {
|
|
59306
|
+
if (!value) return false;
|
|
59307
|
+
if (allowRelative && value.startsWith("/")) return true;
|
|
59308
|
+
try {
|
|
59309
|
+
const parsed = new URL(value);
|
|
59310
|
+
return ALLOWED_URL_PROTOCOLS.includes(parsed.protocol);
|
|
59311
|
+
} catch {
|
|
59312
|
+
return false;
|
|
59082
59313
|
}
|
|
59083
|
-
return arraySchema;
|
|
59084
59314
|
}
|
|
59085
|
-
function
|
|
59086
|
-
|
|
59087
|
-
|
|
59088
|
-
for (const child of parsed) {
|
|
59089
|
-
childShape[child.id] = buildFieldSchema(child, allowNull, allowIncomplete);
|
|
59315
|
+
function isValidSelectValue(value, values, multiple) {
|
|
59316
|
+
if (multiple) {
|
|
59317
|
+
return Array.isArray(value) && value.every((item) => typeof item === "string" && values.includes(item));
|
|
59090
59318
|
}
|
|
59091
|
-
return
|
|
59319
|
+
return typeof value === "string" && values.includes(value);
|
|
59092
59320
|
}
|
|
59093
|
-
function
|
|
59094
|
-
if (
|
|
59095
|
-
|
|
59096
|
-
|
|
59097
|
-
|
|
59098
|
-
|
|
59321
|
+
function isEmptyValue(value) {
|
|
59322
|
+
if (value === null || value === void 0) return true;
|
|
59323
|
+
if (typeof value === "string" && value.trim() === "") return true;
|
|
59324
|
+
if (Array.isArray(value) && value.length === 0) return true;
|
|
59325
|
+
if (isEmptyRichTextDoc(value)) return true;
|
|
59326
|
+
return false;
|
|
59327
|
+
}
|
|
59328
|
+
function isPlainObject2(value) {
|
|
59329
|
+
return Boolean(value && typeof value === "object" && !Array.isArray(value));
|
|
59330
|
+
}
|
|
59331
|
+
function isValidRichTextDoc(value) {
|
|
59332
|
+
const doc = richTextDoc(value);
|
|
59333
|
+
return Boolean(isPlainObject2(doc) && doc.type === "doc");
|
|
59334
|
+
}
|
|
59335
|
+
function isEmptyRichTextDoc(value) {
|
|
59336
|
+
const doc = richTextDoc(value);
|
|
59337
|
+
if (!isPlainObject2(doc)) return false;
|
|
59338
|
+
if (doc.type !== "doc") return false;
|
|
59339
|
+
const content = doc.content;
|
|
59340
|
+
if (!Array.isArray(content) || content.length === 0) return true;
|
|
59341
|
+
if (content.length !== 1) return false;
|
|
59342
|
+
const first = content[0];
|
|
59343
|
+
return first?.type === "paragraph" && (!Array.isArray(first.content) || first.content.length === 0);
|
|
59344
|
+
}
|
|
59345
|
+
function richTextDoc(value) {
|
|
59346
|
+
if (!isPlainObject2(value)) return value;
|
|
59347
|
+
return isPlainObject2(value.doc) ? value.doc : value;
|
|
59348
|
+
}
|
|
59349
|
+
|
|
59350
|
+
// ../blocks/src/system/manifest/registry.ts
|
|
59351
|
+
var REGISTRY_SYMBOL = /* @__PURE__ */ Symbol.for("@riverbankcms/blocks/manifest-registry");
|
|
59352
|
+
var isVitest = typeof process !== "undefined" && typeof process.env !== "undefined" && process.env.VITEST === "true";
|
|
59353
|
+
var globalScope = globalThis;
|
|
59354
|
+
var manifestStore = isVitest ? /* @__PURE__ */ new Map() : globalScope[REGISTRY_SYMBOL] ?? (globalScope[REGISTRY_SYMBOL] = /* @__PURE__ */ new Map());
|
|
59355
|
+
function registerManifest(manifest) {
|
|
59356
|
+
manifestStore.set(manifest.name, manifest);
|
|
59357
|
+
return manifest;
|
|
59358
|
+
}
|
|
59359
|
+
|
|
59360
|
+
// ../blocks/src/system/manifest/validation.ts
|
|
59361
|
+
import { z as z41 } from "zod";
|
|
59362
|
+
function preprocessEmptyValues(content) {
|
|
59363
|
+
if (!content || typeof content !== "object" || Array.isArray(content)) {
|
|
59364
|
+
return {};
|
|
59099
59365
|
}
|
|
59100
|
-
|
|
59366
|
+
const result = {};
|
|
59367
|
+
for (const [key, value] of Object.entries(content)) {
|
|
59368
|
+
result[key] = isEmptyValue(value) ? void 0 : value;
|
|
59369
|
+
}
|
|
59370
|
+
return result;
|
|
59371
|
+
}
|
|
59372
|
+
function createManifestValidator(manifestOrFields, options = {}) {
|
|
59373
|
+
const isDraft = options.mode === "draft";
|
|
59374
|
+
const shape = {};
|
|
59375
|
+
const fields3 = Array.isArray(manifestOrFields) ? manifestOrFields : manifestOrFields.fields ?? [];
|
|
59376
|
+
for (const field of fields3) {
|
|
59377
|
+
shape[field.id] = buildFieldSchema(field, options);
|
|
59378
|
+
}
|
|
59379
|
+
const baseSchema = z41.object(shape).catchall(z41.unknown()).passthrough();
|
|
59380
|
+
if (isDraft) {
|
|
59381
|
+
return z41.preprocess(preprocessEmptyValues, baseSchema);
|
|
59382
|
+
}
|
|
59383
|
+
return baseSchema;
|
|
59384
|
+
}
|
|
59385
|
+
function buildFieldSchema(field, options) {
|
|
59386
|
+
return fieldPlanToZod(deriveFieldValidationPlan(field), options);
|
|
59101
59387
|
}
|
|
59102
59388
|
|
|
59103
59389
|
// ../blocks/src/system/manifest/variantKey.ts
|
|
@@ -59435,51 +59721,51 @@ init_personalities();
|
|
|
59435
59721
|
|
|
59436
59722
|
// ../theme-core/src/palette/variants/types.ts
|
|
59437
59723
|
init_styleTags();
|
|
59438
|
-
import { z as
|
|
59724
|
+
import { z as z46 } from "zod";
|
|
59439
59725
|
|
|
59440
59726
|
// ../theme-core/src/schema.ts
|
|
59441
|
-
import { z as
|
|
59727
|
+
import { z as z45 } from "zod";
|
|
59442
59728
|
|
|
59443
59729
|
// ../theme-core/src/lib/media.ts
|
|
59444
|
-
import
|
|
59445
|
-
var hotspotSchema2 =
|
|
59446
|
-
x:
|
|
59447
|
-
y:
|
|
59448
|
-
radius:
|
|
59449
|
-
});
|
|
59450
|
-
var rotationSchema2 =
|
|
59451
|
-
var rectSchema2 =
|
|
59452
|
-
var aspectCropSchema2 =
|
|
59453
|
-
aspect:
|
|
59454
|
-
rect:
|
|
59455
|
-
hotspot:
|
|
59456
|
-
rotation:
|
|
59457
|
-
});
|
|
59458
|
-
var transformSchema2 =
|
|
59459
|
-
aspectCrops:
|
|
59730
|
+
import z42 from "zod";
|
|
59731
|
+
var hotspotSchema2 = z42.object({
|
|
59732
|
+
x: z42.number().min(0).max(1),
|
|
59733
|
+
y: z42.number().min(0).max(1),
|
|
59734
|
+
radius: z42.number().optional()
|
|
59735
|
+
});
|
|
59736
|
+
var rotationSchema2 = z42.union([z42.literal(0), z42.literal(90), z42.literal(180), z42.literal(270)]);
|
|
59737
|
+
var rectSchema2 = z42.tuple([z42.number(), z42.number(), z42.number(), z42.number()]);
|
|
59738
|
+
var aspectCropSchema2 = z42.object({
|
|
59739
|
+
aspect: z42.preprocess((value) => value == null ? void 0 : value, z42.string().optional()),
|
|
59740
|
+
rect: z42.preprocess((value) => value == null ? void 0 : value, rectSchema2.optional()),
|
|
59741
|
+
hotspot: z42.preprocess((value) => value == null ? void 0 : value, hotspotSchema2.optional()),
|
|
59742
|
+
rotation: z42.preprocess((value) => value == null ? void 0 : value, rotationSchema2.optional())
|
|
59743
|
+
});
|
|
59744
|
+
var transformSchema2 = z42.object({
|
|
59745
|
+
aspectCrops: z42.preprocess((value) => {
|
|
59460
59746
|
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
59461
59747
|
return void 0;
|
|
59462
59748
|
}
|
|
59463
59749
|
return value;
|
|
59464
|
-
},
|
|
59750
|
+
}, z42.record(z42.string(), aspectCropSchema2.catch({}))).optional(),
|
|
59465
59751
|
rect: rectSchema2.optional(),
|
|
59466
59752
|
hotspot: hotspotSchema2.optional(),
|
|
59467
59753
|
rotation: rotationSchema2.optional()
|
|
59468
59754
|
});
|
|
59469
|
-
var mediaSchema2 =
|
|
59470
|
-
type:
|
|
59471
|
-
purpose:
|
|
59472
|
-
placeholder:
|
|
59473
|
-
assetId:
|
|
59474
|
-
identifier:
|
|
59475
|
-
src:
|
|
59476
|
-
alt:
|
|
59477
|
-
filename:
|
|
59478
|
-
mimeType:
|
|
59479
|
-
width:
|
|
59480
|
-
height:
|
|
59481
|
-
storageBucket:
|
|
59482
|
-
storagePath:
|
|
59755
|
+
var mediaSchema2 = z42.object({
|
|
59756
|
+
type: z42.enum(["image", "video", "audio", "document", "spreadsheet", "archive"]),
|
|
59757
|
+
purpose: z42.string().optional(),
|
|
59758
|
+
placeholder: z42.boolean().default(true).optional(),
|
|
59759
|
+
assetId: z42.string().optional(),
|
|
59760
|
+
identifier: z42.string().optional(),
|
|
59761
|
+
src: z42.string().optional(),
|
|
59762
|
+
alt: z42.string().optional(),
|
|
59763
|
+
filename: z42.string().optional(),
|
|
59764
|
+
mimeType: z42.string().optional(),
|
|
59765
|
+
width: z42.number().optional(),
|
|
59766
|
+
height: z42.number().optional(),
|
|
59767
|
+
storageBucket: z42.string().optional(),
|
|
59768
|
+
storagePath: z42.string().optional(),
|
|
59483
59769
|
transform: transformSchema2.optional()
|
|
59484
59770
|
});
|
|
59485
59771
|
|
|
@@ -59487,43 +59773,43 @@ var mediaSchema2 = z41.object({
|
|
|
59487
59773
|
init_buttons();
|
|
59488
59774
|
|
|
59489
59775
|
// ../theme-core/src/cards/types.ts
|
|
59490
|
-
import { z as
|
|
59491
|
-
var cardSpacingSchema =
|
|
59492
|
-
var gradientDirectionSchema2 =
|
|
59493
|
-
var cardBackgroundSchema =
|
|
59494
|
-
|
|
59495
|
-
|
|
59496
|
-
type:
|
|
59497
|
-
fromToken:
|
|
59498
|
-
toToken:
|
|
59776
|
+
import { z as z43 } from "zod";
|
|
59777
|
+
var cardSpacingSchema = z43.enum(["none", "compact", "cozy", "medium", "comfortable", "spacious"]);
|
|
59778
|
+
var gradientDirectionSchema2 = z43.enum(["to-r", "to-l", "to-t", "to-b", "to-tr", "to-tl", "to-br", "to-bl"]);
|
|
59779
|
+
var cardBackgroundSchema = z43.discriminatedUnion("type", [
|
|
59780
|
+
z43.object({ type: z43.literal("solid"), colorToken: z43.string() }),
|
|
59781
|
+
z43.object({
|
|
59782
|
+
type: z43.literal("gradient"),
|
|
59783
|
+
fromToken: z43.string(),
|
|
59784
|
+
toToken: z43.string(),
|
|
59499
59785
|
direction: gradientDirectionSchema2
|
|
59500
59786
|
}),
|
|
59501
|
-
|
|
59787
|
+
z43.object({ type: z43.literal("transparent") })
|
|
59502
59788
|
]);
|
|
59503
|
-
var cardBorderSchema =
|
|
59504
|
-
widthClass:
|
|
59505
|
-
colorToken:
|
|
59506
|
-
});
|
|
59507
|
-
var cardVariantSchema2 =
|
|
59508
|
-
id:
|
|
59509
|
-
name:
|
|
59510
|
-
enabled:
|
|
59511
|
-
priority:
|
|
59789
|
+
var cardBorderSchema = z43.object({
|
|
59790
|
+
widthClass: z43.string(),
|
|
59791
|
+
colorToken: z43.string()
|
|
59792
|
+
});
|
|
59793
|
+
var cardVariantSchema2 = z43.object({
|
|
59794
|
+
id: z43.string(),
|
|
59795
|
+
name: z43.string().min(1).max(20),
|
|
59796
|
+
enabled: z43.boolean(),
|
|
59797
|
+
priority: z43.union([z43.literal(1), z43.literal(2), z43.literal(3)]),
|
|
59512
59798
|
// Appearance (token-based)
|
|
59513
59799
|
background: cardBackgroundSchema,
|
|
59514
59800
|
spacing: cardSpacingSchema,
|
|
59515
59801
|
// Optional overrides (uses theme defaults if not specified)
|
|
59516
|
-
shadow:
|
|
59517
|
-
elevation:
|
|
59518
|
-
softness:
|
|
59519
|
-
position:
|
|
59802
|
+
shadow: z43.object({
|
|
59803
|
+
elevation: z43.enum(["none", "low", "medium", "high"]),
|
|
59804
|
+
softness: z43.enum(["crisp", "soft", "hard"]).nullable(),
|
|
59805
|
+
position: z43.enum(["bottom", "bottom-right"]).default("bottom")
|
|
59520
59806
|
}).optional(),
|
|
59521
|
-
corners:
|
|
59807
|
+
corners: z43.enum(["square", "soft", "rounded", "pill"]).optional(),
|
|
59522
59808
|
// Border (optional)
|
|
59523
59809
|
border: cardBorderSchema.optional()
|
|
59524
59810
|
});
|
|
59525
|
-
var cardSystemSchema =
|
|
59526
|
-
variants:
|
|
59811
|
+
var cardSystemSchema = z43.object({
|
|
59812
|
+
variants: z43.array(cardVariantSchema2).min(1).max(3)
|
|
59527
59813
|
});
|
|
59528
59814
|
|
|
59529
59815
|
// ../theme-core/src/cards/index.ts
|
|
@@ -59536,20 +59822,20 @@ init_types5();
|
|
|
59536
59822
|
init_types12();
|
|
59537
59823
|
|
|
59538
59824
|
// ../theme-core/src/gradients/types.ts
|
|
59539
|
-
import { z as
|
|
59540
|
-
var gradientStopSchema =
|
|
59541
|
-
color:
|
|
59825
|
+
import { z as z44 } from "zod";
|
|
59826
|
+
var gradientStopSchema = z44.object({
|
|
59827
|
+
color: z44.string(),
|
|
59542
59828
|
// Theme color token name (e.g., 'primary-500')
|
|
59543
|
-
position:
|
|
59829
|
+
position: z44.number().min(0).max(100)
|
|
59544
59830
|
// Percentage 0-100
|
|
59545
59831
|
});
|
|
59546
|
-
var gradientConfigSchema =
|
|
59547
|
-
type:
|
|
59548
|
-
angle:
|
|
59832
|
+
var gradientConfigSchema = z44.object({
|
|
59833
|
+
type: z44.enum(["linear", "radial"]),
|
|
59834
|
+
angle: z44.number().min(0).max(360).optional(),
|
|
59549
59835
|
// For linear gradients (degrees)
|
|
59550
|
-
position:
|
|
59836
|
+
position: z44.string().optional(),
|
|
59551
59837
|
// For radial gradients ('center', 'top left', etc.)
|
|
59552
|
-
stops:
|
|
59838
|
+
stops: z44.array(gradientStopSchema).min(2)
|
|
59553
59839
|
});
|
|
59554
59840
|
|
|
59555
59841
|
// ../theme-core/src/schema.ts
|
|
@@ -59557,65 +59843,65 @@ init_types13();
|
|
|
59557
59843
|
init_validation3();
|
|
59558
59844
|
init_atRuleValidation();
|
|
59559
59845
|
init_shared7();
|
|
59560
|
-
var axesSchema =
|
|
59561
|
-
tone:
|
|
59562
|
-
energy:
|
|
59563
|
-
density:
|
|
59564
|
-
mediaBias:
|
|
59565
|
-
conversionBias:
|
|
59566
|
-
motion:
|
|
59567
|
-
});
|
|
59568
|
-
var colourHexString =
|
|
59569
|
-
var paletteColorSchema =
|
|
59570
|
-
name:
|
|
59846
|
+
var axesSchema = z45.object({
|
|
59847
|
+
tone: z45.enum(["minimal", "classic", "bold"]),
|
|
59848
|
+
energy: z45.enum(["calm", "vibrant"]),
|
|
59849
|
+
density: z45.enum(["airy", "regular", "compact"]),
|
|
59850
|
+
mediaBias: z45.enum(["text", "media", "mixed"]),
|
|
59851
|
+
conversionBias: z45.enum(["low", "med", "high"]),
|
|
59852
|
+
motion: z45.enum(["subtle", "standard", "expressive"])
|
|
59853
|
+
});
|
|
59854
|
+
var colourHexString = z45.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
|
|
59855
|
+
var paletteColorSchema = z45.object({
|
|
59856
|
+
name: z45.string().min(1),
|
|
59571
59857
|
hex: colourHexString
|
|
59572
59858
|
});
|
|
59573
|
-
var paletteMetaSchema =
|
|
59574
|
-
mode:
|
|
59859
|
+
var paletteMetaSchema = z45.object({
|
|
59860
|
+
mode: z45.enum(["light", "dark"])
|
|
59575
59861
|
});
|
|
59576
|
-
var paletteSchema =
|
|
59577
|
-
colors:
|
|
59862
|
+
var paletteSchema = z45.object({
|
|
59863
|
+
colors: z45.array(paletteColorSchema),
|
|
59578
59864
|
meta: paletteMetaSchema
|
|
59579
59865
|
});
|
|
59580
|
-
var typographyStyleSchema =
|
|
59581
|
-
family:
|
|
59582
|
-
weight:
|
|
59583
|
-
letterSpacing:
|
|
59584
|
-
lineHeight:
|
|
59866
|
+
var typographyStyleSchema = z45.object({
|
|
59867
|
+
family: z45.string().min(1),
|
|
59868
|
+
weight: z45.enum(["light", "regular", "medium", "semibold", "bold"]),
|
|
59869
|
+
letterSpacing: z45.enum(["tight", "normal", "loose"]),
|
|
59870
|
+
lineHeight: z45.enum(["normal", "relaxed", "loose"])
|
|
59585
59871
|
});
|
|
59586
59872
|
var bodyTypographyStyleSchema = typographyStyleSchema.extend({
|
|
59587
|
-
size:
|
|
59873
|
+
size: z45.enum(["md", "lg", "xl"])
|
|
59588
59874
|
});
|
|
59589
|
-
var headingSizeSchema =
|
|
59590
|
-
var headingTypographyOverridesSchema =
|
|
59591
|
-
weight:
|
|
59592
|
-
letterSpacing:
|
|
59875
|
+
var headingSizeSchema = z45.enum(["xs", "sm", "md", "lg", "xl", "2xl"]);
|
|
59876
|
+
var headingTypographyOverridesSchema = z45.object({
|
|
59877
|
+
weight: z45.enum(["light", "regular", "medium", "semibold", "bold"]).nullable().optional(),
|
|
59878
|
+
letterSpacing: z45.enum(["tight", "normal", "loose"]).nullable().optional(),
|
|
59593
59879
|
size: headingSizeSchema.nullable().optional(),
|
|
59594
|
-
lineHeight:
|
|
59595
|
-
italic:
|
|
59596
|
-
colorToken:
|
|
59880
|
+
lineHeight: z45.enum(["normal", "relaxed", "loose"]).nullable().optional(),
|
|
59881
|
+
italic: z45.boolean().nullable().optional(),
|
|
59882
|
+
colorToken: z45.string().min(1).nullable().optional()
|
|
59597
59883
|
// Palette token name for heading color
|
|
59598
59884
|
});
|
|
59599
59885
|
var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
59600
|
-
case:
|
|
59601
|
-
italic:
|
|
59602
|
-
colorToken:
|
|
59886
|
+
case: z45.enum(["uppercase", "normal", "smallCaps"]).nullable(),
|
|
59887
|
+
italic: z45.boolean().nullable(),
|
|
59888
|
+
colorToken: z45.string().min(1).nullable().optional()
|
|
59603
59889
|
// Palette token name for heading color
|
|
59604
59890
|
});
|
|
59605
|
-
var proseLinkUnderlineStyleSchema =
|
|
59606
|
-
var proseLinkUnderlineThicknessSchema =
|
|
59607
|
-
var proseLinkUnderlineOffsetSchema =
|
|
59608
|
-
var proseLinkStyleSchema =
|
|
59609
|
-
colorToken:
|
|
59610
|
-
hoverColorToken:
|
|
59611
|
-
underline:
|
|
59612
|
-
decorationColorToken:
|
|
59613
|
-
hoverDecorationColorToken:
|
|
59891
|
+
var proseLinkUnderlineStyleSchema = z45.enum(["solid", "dotted", "dashed"]);
|
|
59892
|
+
var proseLinkUnderlineThicknessSchema = z45.enum(["auto", "fromFont", "thin", "medium", "thick"]);
|
|
59893
|
+
var proseLinkUnderlineOffsetSchema = z45.enum(["auto", "tight", "normal", "loose"]);
|
|
59894
|
+
var proseLinkStyleSchema = z45.object({
|
|
59895
|
+
colorToken: z45.string().min(1).optional(),
|
|
59896
|
+
hoverColorToken: z45.string().min(1).optional(),
|
|
59897
|
+
underline: z45.boolean().optional(),
|
|
59898
|
+
decorationColorToken: z45.string().min(1).optional(),
|
|
59899
|
+
hoverDecorationColorToken: z45.string().min(1).optional(),
|
|
59614
59900
|
underlineStyle: proseLinkUnderlineStyleSchema.optional(),
|
|
59615
59901
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
59616
59902
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
59617
59903
|
});
|
|
59618
|
-
var semanticSpacingSchema =
|
|
59904
|
+
var semanticSpacingSchema = z45.enum([
|
|
59619
59905
|
"none",
|
|
59620
59906
|
"compact",
|
|
59621
59907
|
"cozy",
|
|
@@ -59623,62 +59909,62 @@ var semanticSpacingSchema = z44.enum([
|
|
|
59623
59909
|
"comfortable",
|
|
59624
59910
|
"spacious"
|
|
59625
59911
|
]);
|
|
59626
|
-
var boxRoundedSchema =
|
|
59627
|
-
var boxBackgroundOverlaySchema =
|
|
59628
|
-
type:
|
|
59629
|
-
color:
|
|
59630
|
-
gradient:
|
|
59631
|
-
opacity:
|
|
59632
|
-
});
|
|
59633
|
-
var boxBackgroundSchema =
|
|
59634
|
-
type:
|
|
59635
|
-
color:
|
|
59636
|
-
gradient:
|
|
59912
|
+
var boxRoundedSchema = z45.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
59913
|
+
var boxBackgroundOverlaySchema = z45.object({
|
|
59914
|
+
type: z45.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
59915
|
+
color: z45.string().nullable().optional(),
|
|
59916
|
+
gradient: z45.string().nullable().optional(),
|
|
59917
|
+
opacity: z45.number().min(0).max(1).nullable().optional()
|
|
59918
|
+
});
|
|
59919
|
+
var boxBackgroundSchema = z45.object({
|
|
59920
|
+
type: z45.enum(["color", "gradient", "image"]).optional(),
|
|
59921
|
+
color: z45.string().nullable().optional(),
|
|
59922
|
+
gradient: z45.string().nullable().optional(),
|
|
59637
59923
|
image: mediaSchema2.nullable().optional(),
|
|
59638
|
-
objectFit:
|
|
59639
|
-
scale:
|
|
59640
|
-
position:
|
|
59641
|
-
opacity:
|
|
59924
|
+
objectFit: z45.enum(["fill", "fit", "original", "custom"]).nullable().optional(),
|
|
59925
|
+
scale: z45.string().nullable().optional(),
|
|
59926
|
+
position: z45.string().nullable().optional(),
|
|
59927
|
+
opacity: z45.number().min(0).max(1).nullable().optional(),
|
|
59642
59928
|
overlay: boxBackgroundOverlaySchema.nullable().optional(),
|
|
59643
|
-
textColor:
|
|
59644
|
-
headingColor:
|
|
59929
|
+
textColor: z45.string().nullable().optional(),
|
|
59930
|
+
headingColor: z45.string().nullable().optional()
|
|
59645
59931
|
});
|
|
59646
|
-
var sectionStylesOverrideSchema =
|
|
59932
|
+
var sectionStylesOverrideSchema = z45.object({
|
|
59647
59933
|
background: boxBackgroundSchema.nullable().optional(),
|
|
59648
59934
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
59649
|
-
minHeight:
|
|
59935
|
+
minHeight: z45.enum(["none", "hero", "immersive"]).nullable().optional()
|
|
59650
59936
|
});
|
|
59651
|
-
var containerStylesOverrideSchema =
|
|
59937
|
+
var containerStylesOverrideSchema = z45.object({
|
|
59652
59938
|
background: boxBackgroundSchema.nullable().optional(),
|
|
59653
59939
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
59654
|
-
raised:
|
|
59940
|
+
raised: z45.boolean().nullable().optional(),
|
|
59655
59941
|
rounded: boxRoundedSchema.nullable().optional(),
|
|
59656
|
-
fullWidth:
|
|
59942
|
+
fullWidth: z45.boolean().nullable().optional()
|
|
59657
59943
|
});
|
|
59658
|
-
var cardBorderOverrideSchema =
|
|
59659
|
-
enabled:
|
|
59660
|
-
width:
|
|
59661
|
-
colorToken:
|
|
59944
|
+
var cardBorderOverrideSchema = z45.object({
|
|
59945
|
+
enabled: z45.boolean().nullable().optional(),
|
|
59946
|
+
width: z45.enum(["none", "1", "2", "3"]).nullable().optional(),
|
|
59947
|
+
colorToken: z45.string().nullable().optional()
|
|
59662
59948
|
});
|
|
59663
|
-
var cardStylesOverrideSchema =
|
|
59949
|
+
var cardStylesOverrideSchema = z45.object({
|
|
59664
59950
|
background: boxBackgroundSchema.nullable().optional(),
|
|
59665
59951
|
border: cardBorderOverrideSchema.nullable().optional(),
|
|
59666
59952
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
59667
|
-
raised:
|
|
59953
|
+
raised: z45.boolean().nullable().optional(),
|
|
59668
59954
|
rounded: boxRoundedSchema.nullable().optional()
|
|
59669
59955
|
});
|
|
59670
|
-
var blockStyleOverridesSchema =
|
|
59956
|
+
var blockStyleOverridesSchema = z45.object({
|
|
59671
59957
|
sectionStyles: sectionStylesOverrideSchema.nullable().optional(),
|
|
59672
59958
|
containerStyles: containerStylesOverrideSchema.nullable().optional(),
|
|
59673
59959
|
cardStyles: cardStylesOverrideSchema.nullable().optional()
|
|
59674
59960
|
});
|
|
59675
|
-
var blockThemeOverrideSchema =
|
|
59676
|
-
typography:
|
|
59961
|
+
var blockThemeOverrideSchema = z45.object({
|
|
59962
|
+
typography: z45.object({
|
|
59677
59963
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
59678
59964
|
}).optional(),
|
|
59679
59965
|
styles: blockStyleOverridesSchema.optional()
|
|
59680
59966
|
});
|
|
59681
|
-
var typographyScaleSchema =
|
|
59967
|
+
var typographyScaleSchema = z45.enum([
|
|
59682
59968
|
// New intuitive names
|
|
59683
59969
|
"compact",
|
|
59684
59970
|
// ratio 1.2 (was minorThird)
|
|
@@ -59691,9 +59977,9 @@ var typographyScaleSchema = z44.enum([
|
|
|
59691
59977
|
"majorThird",
|
|
59692
59978
|
"perfectFourth"
|
|
59693
59979
|
]);
|
|
59694
|
-
var typographySchema =
|
|
59980
|
+
var typographySchema = z45.object({
|
|
59695
59981
|
body: bodyTypographyStyleSchema,
|
|
59696
|
-
headings:
|
|
59982
|
+
headings: z45.object({
|
|
59697
59983
|
default: headingTypographyStyleSchema,
|
|
59698
59984
|
h1: headingTypographyOverridesSchema,
|
|
59699
59985
|
h2: headingTypographyOverridesSchema,
|
|
@@ -59706,41 +59992,41 @@ var typographySchema = z44.object({
|
|
|
59706
59992
|
scale: typographyScaleSchema,
|
|
59707
59993
|
proseLinkStyle: proseLinkStyleSchema.optional()
|
|
59708
59994
|
});
|
|
59709
|
-
var spaceSchema =
|
|
59710
|
-
var corners =
|
|
59711
|
-
var shadow =
|
|
59712
|
-
elevation:
|
|
59713
|
-
softness:
|
|
59714
|
-
position:
|
|
59995
|
+
var spaceSchema = z45.enum(["comfortable", "standard", "dense"]);
|
|
59996
|
+
var corners = z45.enum(["square", "soft", "rounded", "pill"]);
|
|
59997
|
+
var shadow = z45.object({
|
|
59998
|
+
elevation: z45.enum(["none", "low", "medium", "high"]),
|
|
59999
|
+
softness: z45.enum(["crisp", "soft", "hard"]).nullable(),
|
|
60000
|
+
position: z45.enum(["bottom", "bottom-right"]).default("bottom")
|
|
59715
60001
|
});
|
|
59716
|
-
var border =
|
|
59717
|
-
width:
|
|
59718
|
-
style:
|
|
60002
|
+
var border = z45.object({
|
|
60003
|
+
width: z45.enum(["none", "hairline", "thin", "thick"]),
|
|
60004
|
+
style: z45.enum(["solid", "dashed"])
|
|
59719
60005
|
});
|
|
59720
|
-
var motion =
|
|
59721
|
-
level:
|
|
59722
|
-
easing:
|
|
60006
|
+
var motion = z45.object({
|
|
60007
|
+
level: z45.enum(["off", "low", "medium", "high"]),
|
|
60008
|
+
easing: z45.enum(["standard", "snappy", "gentle"]).nullable()
|
|
59723
60009
|
});
|
|
59724
|
-
var buttonStyle =
|
|
60010
|
+
var buttonStyle = z45.object({
|
|
59725
60011
|
shape: corners
|
|
59726
60012
|
// Used for --radius-control CSS variable
|
|
59727
60013
|
});
|
|
59728
|
-
var cardStyle =
|
|
59729
|
-
elevation:
|
|
59730
|
-
border:
|
|
60014
|
+
var cardStyle = z45.object({
|
|
60015
|
+
elevation: z45.enum(["none", "low", "medium", "high"]),
|
|
60016
|
+
border: z45.enum(["none", "subtle", "defined"]),
|
|
59731
60017
|
shape: corners,
|
|
59732
|
-
headerStyle:
|
|
59733
|
-
mediaTreatment:
|
|
60018
|
+
headerStyle: z45.enum(["plain", "accentBar", "subtleBg"]).nullable(),
|
|
60019
|
+
mediaTreatment: z45.enum(["square", "rounded", "bleed"]).nullable()
|
|
59734
60020
|
});
|
|
59735
|
-
var inputStyle =
|
|
60021
|
+
var inputStyle = z45.object({
|
|
59736
60022
|
shape: corners,
|
|
59737
|
-
border:
|
|
59738
|
-
focus:
|
|
59739
|
-
label:
|
|
60023
|
+
border: z45.enum(["subtle", "defined", "underline"]),
|
|
60024
|
+
focus: z45.enum(["glow", "ring", "underline"]),
|
|
60025
|
+
label: z45.enum(["inside", "above"])
|
|
59740
60026
|
});
|
|
59741
|
-
var headerVariant =
|
|
59742
|
-
var headerPositioning =
|
|
59743
|
-
var headerNavStyle =
|
|
60027
|
+
var headerVariant = z45.enum(["classic", "centered", "transparent", "floating", "editorial"]);
|
|
60028
|
+
var headerPositioning = z45.enum(["static", "sticky", "fixed"]);
|
|
60029
|
+
var headerNavStyle = z45.enum([
|
|
59744
60030
|
"minimal",
|
|
59745
60031
|
"underline",
|
|
59746
60032
|
"underline-grow",
|
|
@@ -59749,82 +60035,82 @@ var headerNavStyle = z44.enum([
|
|
|
59749
60035
|
"frosted",
|
|
59750
60036
|
"solid"
|
|
59751
60037
|
]);
|
|
59752
|
-
var navFontWeight =
|
|
59753
|
-
var headerMaxWidth =
|
|
59754
|
-
var headerContainerSchema =
|
|
59755
|
-
rounded:
|
|
59756
|
-
border:
|
|
59757
|
-
shadow:
|
|
59758
|
-
padding:
|
|
59759
|
-
tint:
|
|
59760
|
-
opacity:
|
|
60038
|
+
var navFontWeight = z45.enum(["regular", "medium", "semibold", "bold"]);
|
|
60039
|
+
var headerMaxWidth = z45.enum(["container", "full"]);
|
|
60040
|
+
var headerContainerSchema = z45.object({
|
|
60041
|
+
rounded: z45.enum(["none", "sm", "md", "lg", "xl", "2xl"]).default("xl"),
|
|
60042
|
+
border: z45.boolean().default(true),
|
|
60043
|
+
shadow: z45.boolean().default(true),
|
|
60044
|
+
padding: z45.enum(["sm", "md", "lg"]).default("md"),
|
|
60045
|
+
tint: z45.string().nullable().optional(),
|
|
60046
|
+
opacity: z45.number().min(0).max(1).default(0.12)
|
|
59761
60047
|
}).optional();
|
|
59762
60048
|
var headerBorderSchema = componentBorderSchema.extend({
|
|
59763
|
-
position:
|
|
60049
|
+
position: z45.enum(["bottom", "top", "both", "none"]).default("bottom")
|
|
59764
60050
|
}).optional();
|
|
59765
|
-
var logoStyleSchema =
|
|
59766
|
-
fontFamily:
|
|
59767
|
-
letterSpacing:
|
|
59768
|
-
gradient:
|
|
60051
|
+
var logoStyleSchema = z45.object({
|
|
60052
|
+
fontFamily: z45.enum(["heading", "body"]).default("heading"),
|
|
60053
|
+
letterSpacing: z45.enum(["normal", "wide", "wider", "widest"]).default("normal"),
|
|
60054
|
+
gradient: z45.boolean().default(false)
|
|
59769
60055
|
}).optional();
|
|
59770
|
-
var headerLogoTextSchema =
|
|
59771
|
-
mobileWrapLines:
|
|
59772
|
-
mobileMaxWidth:
|
|
59773
|
-
hideOnShrink:
|
|
60056
|
+
var headerLogoTextSchema = z45.object({
|
|
60057
|
+
mobileWrapLines: z45.union([z45.literal(1), z45.literal(2)]).optional(),
|
|
60058
|
+
mobileMaxWidth: z45.enum(["xs", "sm", "md"]).optional(),
|
|
60059
|
+
hideOnShrink: z45.boolean().optional()
|
|
59774
60060
|
}).optional();
|
|
59775
|
-
var navEffectsSchema =
|
|
59776
|
-
underlineGradient:
|
|
59777
|
-
glow:
|
|
59778
|
-
glowColor:
|
|
59779
|
-
neumorphic:
|
|
60061
|
+
var navEffectsSchema = z45.object({
|
|
60062
|
+
underlineGradient: z45.boolean().default(false),
|
|
60063
|
+
glow: z45.boolean().default(false),
|
|
60064
|
+
glowColor: z45.string().optional(),
|
|
60065
|
+
neumorphic: z45.boolean().default(false)
|
|
59780
60066
|
}).optional();
|
|
59781
|
-
var dropdownStyleSchema =
|
|
60067
|
+
var dropdownStyleSchema = z45.object({
|
|
59782
60068
|
// Container styling
|
|
59783
|
-
background:
|
|
60069
|
+
background: z45.string().default("surface"),
|
|
59784
60070
|
// color token
|
|
59785
|
-
textColor:
|
|
60071
|
+
textColor: z45.string().default("text"),
|
|
59786
60072
|
// color token
|
|
59787
|
-
borderColor:
|
|
60073
|
+
borderColor: z45.string().nullable().default("border"),
|
|
59788
60074
|
// null = no border
|
|
59789
|
-
shadow:
|
|
59790
|
-
borderRadius:
|
|
60075
|
+
shadow: z45.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
60076
|
+
borderRadius: z45.enum(["none", "sm", "md", "lg"]).default("md"),
|
|
59791
60077
|
// Link hover states (explicit control)
|
|
59792
|
-
hoverBackground:
|
|
60078
|
+
hoverBackground: z45.string().nullable().optional(),
|
|
59793
60079
|
// color token, null = transparent
|
|
59794
|
-
hoverTextColor:
|
|
60080
|
+
hoverTextColor: z45.string().nullable().optional(),
|
|
59795
60081
|
// color token, null = inherit
|
|
59796
60082
|
// Typography
|
|
59797
|
-
textTransform:
|
|
59798
|
-
letterSpacing:
|
|
59799
|
-
fontWeight:
|
|
60083
|
+
textTransform: z45.enum(["none", "uppercase", "capitalize"]).default("none"),
|
|
60084
|
+
letterSpacing: z45.enum(["normal", "wide", "wider"]).default("normal"),
|
|
60085
|
+
fontWeight: z45.enum(["regular", "medium", "semibold", "bold"]).optional(),
|
|
59800
60086
|
// optional = inherit from navWeight
|
|
59801
|
-
textSize:
|
|
60087
|
+
textSize: z45.enum(["xs", "sm", "base", "lg"]).optional()
|
|
59802
60088
|
// optional = no override (browser default)
|
|
59803
60089
|
}).optional();
|
|
59804
|
-
var headerCtaGapSchema =
|
|
59805
|
-
var navContainerSchema =
|
|
59806
|
-
type:
|
|
59807
|
-
tint:
|
|
59808
|
-
opacity:
|
|
60090
|
+
var headerCtaGapSchema = z45.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
60091
|
+
var navContainerSchema = z45.object({
|
|
60092
|
+
type: z45.enum(["none", "pill", "glass"]).default("none"),
|
|
60093
|
+
tint: z45.string().nullable().optional(),
|
|
60094
|
+
opacity: z45.number().min(0).max(1).default(0.15)
|
|
59809
60095
|
}).default({ type: "none", tint: null, opacity: 0.15 });
|
|
59810
|
-
var headerBackgroundSchema =
|
|
59811
|
-
type:
|
|
59812
|
-
color:
|
|
60096
|
+
var headerBackgroundSchema = z45.object({
|
|
60097
|
+
type: z45.enum(["color", "gradient", "image"]),
|
|
60098
|
+
color: z45.string().nullable().optional(),
|
|
59813
60099
|
gradient: gradientConfigSchema.nullable().optional(),
|
|
59814
60100
|
image: mediaSchema2.nullable().optional(),
|
|
59815
|
-
textColor:
|
|
60101
|
+
textColor: z45.string().nullable().optional()
|
|
59816
60102
|
});
|
|
59817
|
-
var headerSchema =
|
|
60103
|
+
var headerSchema = z45.object({
|
|
59818
60104
|
variant: headerVariant,
|
|
59819
60105
|
positioning: headerPositioning,
|
|
59820
|
-
shrinkOnScroll:
|
|
60106
|
+
shrinkOnScroll: z45.boolean(),
|
|
59821
60107
|
maxWidth: headerMaxWidth,
|
|
59822
60108
|
logoOverride: mediaSchema2.nullable().optional(),
|
|
59823
60109
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
59824
|
-
textColor:
|
|
60110
|
+
textColor: z45.string().nullable().optional(),
|
|
59825
60111
|
// Site title and general header text
|
|
59826
60112
|
navStyle: headerNavStyle,
|
|
59827
|
-
navColor:
|
|
60113
|
+
navColor: z45.string().nullable().optional(),
|
|
59828
60114
|
// Nav links (inherits textColor if not set)
|
|
59829
60115
|
navWeight: navFontWeight.default("medium"),
|
|
59830
60116
|
// New fields for header system enhancement
|
|
@@ -59843,50 +60129,50 @@ var headerSchema = z44.object({
|
|
|
59843
60129
|
// Dropdown menu styling (nav dropdowns and mobile drawer)
|
|
59844
60130
|
dropdownStyle: dropdownStyleSchema
|
|
59845
60131
|
});
|
|
59846
|
-
var footerVariant =
|
|
59847
|
-
var footerMaxWidth =
|
|
59848
|
-
var footerMode =
|
|
59849
|
-
var footerNavLayoutMode =
|
|
59850
|
-
var footerNavLayoutAlign =
|
|
59851
|
-
var footerSpacing =
|
|
59852
|
-
var footerLogoPlacement =
|
|
59853
|
-
var footerLogoSize =
|
|
59854
|
-
var footerLogoMaxHeight =
|
|
59855
|
-
var footerBottomTextLinkStyleSchema =
|
|
59856
|
-
colorToken:
|
|
59857
|
-
hoverColorToken:
|
|
59858
|
-
decorationColorToken:
|
|
59859
|
-
underline:
|
|
59860
|
-
});
|
|
59861
|
-
var footerBottomBarSchema =
|
|
59862
|
-
enabled:
|
|
59863
|
-
fullBleed:
|
|
60132
|
+
var footerVariant = z45.enum(["simple", "columns", "split"]);
|
|
60133
|
+
var footerMaxWidth = z45.enum(["container", "full"]);
|
|
60134
|
+
var footerMode = z45.enum(["default", "blocks", "default+blocks", "none"]);
|
|
60135
|
+
var footerNavLayoutMode = z45.enum(["stack", "inline", "inline-wrap"]);
|
|
60136
|
+
var footerNavLayoutAlign = z45.enum(["start", "center", "end", "space-between"]);
|
|
60137
|
+
var footerSpacing = z45.enum(["none", "tight", "compact", "default", "relaxed", "spacious"]);
|
|
60138
|
+
var footerLogoPlacement = z45.enum(["left", "right", "above", "below"]);
|
|
60139
|
+
var footerLogoSize = z45.enum(["sm", "md", "lg", "xl"]);
|
|
60140
|
+
var footerLogoMaxHeight = z45.enum(["sm", "md", "lg", "xl"]);
|
|
60141
|
+
var footerBottomTextLinkStyleSchema = z45.object({
|
|
60142
|
+
colorToken: z45.string().optional(),
|
|
60143
|
+
hoverColorToken: z45.string().nullable().optional(),
|
|
60144
|
+
decorationColorToken: z45.string().nullable().optional(),
|
|
60145
|
+
underline: z45.boolean().optional()
|
|
60146
|
+
});
|
|
60147
|
+
var footerBottomBarSchema = z45.object({
|
|
60148
|
+
enabled: z45.boolean().optional(),
|
|
60149
|
+
fullBleed: z45.boolean().optional(),
|
|
59864
60150
|
background: headerBackgroundSchema.optional(),
|
|
59865
|
-
textColor:
|
|
59866
|
-
textAlign:
|
|
60151
|
+
textColor: z45.string().nullable().optional(),
|
|
60152
|
+
textAlign: z45.enum(["left", "center", "right"]).optional(),
|
|
59867
60153
|
paddingY: footerSpacing.optional(),
|
|
59868
60154
|
paddingX: footerSpacing.optional(),
|
|
59869
|
-
borderTop:
|
|
59870
|
-
colorToken:
|
|
59871
|
-
width:
|
|
60155
|
+
borderTop: z45.object({
|
|
60156
|
+
colorToken: z45.string().nullable().optional(),
|
|
60157
|
+
width: z45.enum(["none", "thin", "medium", "thick"]).optional()
|
|
59872
60158
|
}).optional()
|
|
59873
60159
|
});
|
|
59874
|
-
var footerNavLayoutSchema =
|
|
60160
|
+
var footerNavLayoutSchema = z45.object({
|
|
59875
60161
|
layout: footerNavLayoutMode.optional(),
|
|
59876
60162
|
align: footerNavLayoutAlign.optional(),
|
|
59877
60163
|
gapX: footerSpacing.optional(),
|
|
59878
60164
|
gapY: footerSpacing.optional(),
|
|
59879
|
-
columns:
|
|
60165
|
+
columns: z45.number().int().min(1).max(6).optional()
|
|
59880
60166
|
});
|
|
59881
|
-
var footerLogoSchema =
|
|
59882
|
-
showLogo:
|
|
59883
|
-
showLogoText:
|
|
60167
|
+
var footerLogoSchema = z45.object({
|
|
60168
|
+
showLogo: z45.boolean().default(true),
|
|
60169
|
+
showLogoText: z45.boolean().optional(),
|
|
59884
60170
|
placement: footerLogoPlacement.optional(),
|
|
59885
60171
|
size: footerLogoSize.optional(),
|
|
59886
60172
|
maxHeight: footerLogoMaxHeight.optional(),
|
|
59887
|
-
align:
|
|
60173
|
+
align: z45.enum(["start", "center", "end"]).optional()
|
|
59888
60174
|
});
|
|
59889
|
-
var footerSchema =
|
|
60175
|
+
var footerSchema = z45.object({
|
|
59890
60176
|
/**
|
|
59891
60177
|
* SDK-only footer rendering mode.
|
|
59892
60178
|
*
|
|
@@ -59895,11 +60181,11 @@ var footerSchema = z44.object({
|
|
|
59895
60181
|
mode: footerMode.optional(),
|
|
59896
60182
|
variant: footerVariant,
|
|
59897
60183
|
maxWidth: footerMaxWidth,
|
|
59898
|
-
showLogoText:
|
|
60184
|
+
showLogoText: z45.boolean().optional(),
|
|
59899
60185
|
background: headerBackgroundSchema.default({ type: "color", color: "surface" }),
|
|
59900
60186
|
// Footer nav styling (independent from header)
|
|
59901
60187
|
navStyle: headerNavStyle.default("minimal"),
|
|
59902
|
-
navColor:
|
|
60188
|
+
navColor: z45.string().nullable().optional(),
|
|
59903
60189
|
navWeight: navFontWeight.default("medium"),
|
|
59904
60190
|
// Full nav link customization (overrides navStyle if set)
|
|
59905
60191
|
navLinkStyle: navLinkStyleSchema.optional(),
|
|
@@ -59910,15 +60196,15 @@ var footerSchema = z44.object({
|
|
|
59910
60196
|
logo: footerLogoSchema.optional(),
|
|
59911
60197
|
bottomBar: footerBottomBarSchema.optional()
|
|
59912
60198
|
});
|
|
59913
|
-
var containerPaddingPresetSchema =
|
|
59914
|
-
var layoutSchema =
|
|
59915
|
-
containerPadding:
|
|
60199
|
+
var containerPaddingPresetSchema = z45.enum(["tight", "compact", "default", "relaxed"]);
|
|
60200
|
+
var layoutSchema = z45.object({
|
|
60201
|
+
containerPadding: z45.object({
|
|
59916
60202
|
mobile: containerPaddingPresetSchema.optional(),
|
|
59917
60203
|
tablet: containerPaddingPresetSchema.optional(),
|
|
59918
60204
|
desktop: containerPaddingPresetSchema.optional()
|
|
59919
60205
|
}).optional()
|
|
59920
60206
|
}).optional();
|
|
59921
|
-
var heroTypographySizeSchema =
|
|
60207
|
+
var heroTypographySizeSchema = z45.enum([
|
|
59922
60208
|
"sm",
|
|
59923
60209
|
"base",
|
|
59924
60210
|
"lg",
|
|
@@ -59929,14 +60215,14 @@ var heroTypographySizeSchema = z44.enum([
|
|
|
59929
60215
|
"5xl",
|
|
59930
60216
|
"6xl"
|
|
59931
60217
|
]);
|
|
59932
|
-
var heroTypographyLineHeightSchema =
|
|
59933
|
-
var heroResponsiveTypographySchema =
|
|
60218
|
+
var heroTypographyLineHeightSchema = z45.enum(["tight", "snug", "normal", "relaxed"]);
|
|
60219
|
+
var heroResponsiveTypographySchema = z45.object({
|
|
59934
60220
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
59935
60221
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
59936
60222
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
59937
60223
|
subheadlineLineHeight: heroTypographyLineHeightSchema.optional()
|
|
59938
60224
|
});
|
|
59939
|
-
var heroTypographySchema =
|
|
60225
|
+
var heroTypographySchema = z45.object({
|
|
59940
60226
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
59941
60227
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
59942
60228
|
subheadlineSize: heroTypographySizeSchema.optional(),
|
|
@@ -59945,24 +60231,24 @@ var heroTypographySchema = z44.object({
|
|
|
59945
60231
|
microHeadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
59946
60232
|
microSubheadlineSize: heroTypographySizeSchema.optional(),
|
|
59947
60233
|
microSubheadlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
59948
|
-
responsive:
|
|
60234
|
+
responsive: z45.object({
|
|
59949
60235
|
tablet: heroResponsiveTypographySchema.optional(),
|
|
59950
60236
|
mobile: heroResponsiveTypographySchema.optional()
|
|
59951
60237
|
}).optional()
|
|
59952
60238
|
});
|
|
59953
|
-
var heroSchema =
|
|
60239
|
+
var heroSchema = z45.object({
|
|
59954
60240
|
typography: heroTypographySchema.optional()
|
|
59955
60241
|
}).optional();
|
|
59956
|
-
var gradientsSchema =
|
|
59957
|
-
button:
|
|
59958
|
-
hero:
|
|
59959
|
-
background:
|
|
59960
|
-
});
|
|
59961
|
-
var themeSchema =
|
|
59962
|
-
name:
|
|
59963
|
-
description:
|
|
59964
|
-
rationale:
|
|
59965
|
-
siteStyleId:
|
|
60242
|
+
var gradientsSchema = z45.object({
|
|
60243
|
+
button: z45.string().min(1).nullable().optional(),
|
|
60244
|
+
hero: z45.string().min(1).nullable().optional(),
|
|
60245
|
+
background: z45.string().min(1).nullable().optional()
|
|
60246
|
+
});
|
|
60247
|
+
var themeSchema = z45.object({
|
|
60248
|
+
name: z45.string().min(1).max(30),
|
|
60249
|
+
description: z45.string().min(1).max(400),
|
|
60250
|
+
rationale: z45.string().min(1).max(400),
|
|
60251
|
+
siteStyleId: z45.string().min(1).transform((value) => asSiteStyleId(value)).optional(),
|
|
59966
60252
|
axes: axesSchema,
|
|
59967
60253
|
palette: paletteSchema,
|
|
59968
60254
|
typography: typographySchema,
|
|
@@ -59989,16 +60275,16 @@ var themeSchema = z44.object({
|
|
|
59989
60275
|
// Block-specific customization (Tier 3)
|
|
59990
60276
|
// blockCustomVars: Per-block CSS variable overrides as bare values
|
|
59991
60277
|
// Example: { "event-registration": { "--step-color": "#6d28d9" } }
|
|
59992
|
-
blockCustomVars:
|
|
59993
|
-
|
|
60278
|
+
blockCustomVars: z45.record(
|
|
60279
|
+
z45.string(),
|
|
59994
60280
|
// block kind (matches data-block attribute)
|
|
59995
|
-
|
|
60281
|
+
z45.record(z45.string(), z45.string())
|
|
59996
60282
|
// { '--var-name': 'value' }
|
|
59997
60283
|
).optional(),
|
|
59998
60284
|
// Structured block-kind theme overrides (v1: typography prose-link style only)
|
|
59999
60285
|
// Keyed by block kind (usually data-block value like "hero"; "block.hero" also accepted)
|
|
60000
|
-
blockOverrides:
|
|
60001
|
-
|
|
60286
|
+
blockOverrides: z45.record(
|
|
60287
|
+
z45.string(),
|
|
60002
60288
|
blockThemeOverrideSchema
|
|
60003
60289
|
).optional(),
|
|
60004
60290
|
// Structured custom CSS rules
|
|
@@ -60034,11 +60320,11 @@ var themeSchema = z44.object({
|
|
|
60034
60320
|
* }
|
|
60035
60321
|
* ```
|
|
60036
60322
|
*/
|
|
60037
|
-
styleGroups:
|
|
60323
|
+
styleGroups: z45.record(z45.string(), z45.array(z45.string())).optional()
|
|
60038
60324
|
});
|
|
60039
|
-
var themesTurnSchema =
|
|
60040
|
-
message:
|
|
60041
|
-
themes:
|
|
60325
|
+
var themesTurnSchema = z45.object({
|
|
60326
|
+
message: z45.string().min(1),
|
|
60327
|
+
themes: z45.array(themeSchema).length(3)
|
|
60042
60328
|
});
|
|
60043
60329
|
|
|
60044
60330
|
// ../theme-core/src/palette/variants/types.ts
|
|
@@ -60048,7 +60334,7 @@ function asPaletteVariantId(value) {
|
|
|
60048
60334
|
}
|
|
60049
60335
|
return value;
|
|
60050
60336
|
}
|
|
60051
|
-
var paletteVariantIdSchema =
|
|
60337
|
+
var paletteVariantIdSchema = z46.string().min(1).transform((value) => asPaletteVariantId(value));
|
|
60052
60338
|
var PALETTE_TOKEN_NAMES = [
|
|
60053
60339
|
"primary",
|
|
60054
60340
|
"primaryForeground",
|
|
@@ -60064,19 +60350,19 @@ var PALETTE_TOKEN_NAMES = [
|
|
|
60064
60350
|
"text",
|
|
60065
60351
|
"border"
|
|
60066
60352
|
];
|
|
60067
|
-
var paletteTokenNameSchema =
|
|
60353
|
+
var paletteTokenNameSchema = z46.enum(PALETTE_TOKEN_NAMES);
|
|
60068
60354
|
var HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
|
|
60069
|
-
var hexColorSchema =
|
|
60355
|
+
var hexColorSchema = z46.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
|
|
60070
60356
|
var variantPaletteColorSchema = paletteColorSchema.extend({
|
|
60071
60357
|
name: paletteTokenNameSchema
|
|
60072
60358
|
});
|
|
60073
|
-
var paletteVariantSchema =
|
|
60359
|
+
var paletteVariantSchema = z46.object({
|
|
60074
60360
|
id: paletteVariantIdSchema,
|
|
60075
|
-
name:
|
|
60076
|
-
description:
|
|
60361
|
+
name: z46.string().min(1),
|
|
60362
|
+
description: z46.string().min(1),
|
|
60077
60363
|
tags: styleTagsSchema,
|
|
60078
|
-
mode:
|
|
60079
|
-
colors:
|
|
60364
|
+
mode: z46.enum(["light", "dark"]),
|
|
60365
|
+
colors: z46.array(variantPaletteColorSchema).min(1)
|
|
60080
60366
|
});
|
|
60081
60367
|
function definePaletteVariant(input) {
|
|
60082
60368
|
return {
|
|
@@ -60088,7 +60374,7 @@ function definePaletteVariant(input) {
|
|
|
60088
60374
|
colors: input.colors
|
|
60089
60375
|
};
|
|
60090
60376
|
}
|
|
60091
|
-
var paletteOverridesSchema =
|
|
60377
|
+
var paletteOverridesSchema = z46.object({
|
|
60092
60378
|
primary: hexColorSchema.optional(),
|
|
60093
60379
|
primaryForeground: hexColorSchema.optional(),
|
|
60094
60380
|
secondary: hexColorSchema.optional(),
|
|
@@ -60765,7 +61051,7 @@ var curatedSiteStylesById = new Map(
|
|
|
60765
61051
|
);
|
|
60766
61052
|
|
|
60767
61053
|
// ../theme-core/src/site-styles/designState.ts
|
|
60768
|
-
import { z as
|
|
61054
|
+
import { z as z47 } from "zod";
|
|
60769
61055
|
|
|
60770
61056
|
// ../theme-core/src/site-styles/rawStyleFields.ts
|
|
60771
61057
|
var themeV2RuntimeStyleFieldNames = [
|
|
@@ -60791,13 +61077,13 @@ var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
|
60791
61077
|
|
|
60792
61078
|
// ../theme-core/src/site-styles/designState.ts
|
|
60793
61079
|
var themeV2DesignStateSchemaVersion = 1;
|
|
60794
|
-
var designResolutionPolicySchema =
|
|
60795
|
-
var runtimeStyleFieldNameSchema =
|
|
60796
|
-
var nonEmptyRuntimeStyleFieldNamesSchema =
|
|
61080
|
+
var designResolutionPolicySchema = z47.enum(["generated", "user", "admin", "sdk"]);
|
|
61081
|
+
var runtimeStyleFieldNameSchema = z47.enum(themeV2RuntimeStyleFieldNames);
|
|
61082
|
+
var nonEmptyRuntimeStyleFieldNamesSchema = z47.array(runtimeStyleFieldNameSchema).min(1).transform((fields3) => [
|
|
60797
61083
|
fields3[0],
|
|
60798
61084
|
...fields3.slice(1)
|
|
60799
61085
|
]);
|
|
60800
|
-
var heroLegibilityStrategySchema =
|
|
61086
|
+
var heroLegibilityStrategySchema = z47.enum([
|
|
60801
61087
|
"none",
|
|
60802
61088
|
"scrim-gradient",
|
|
60803
61089
|
"solid-panel"
|
|
@@ -60819,66 +61105,66 @@ var userFlushTreatments = uniqueNonEmpty(
|
|
|
60819
61105
|
var userFlushBleeds = uniqueNonEmpty(
|
|
60820
61106
|
userDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
60821
61107
|
);
|
|
60822
|
-
var contentFrameIntentSchema =
|
|
60823
|
-
|
|
60824
|
-
|
|
60825
|
-
kind:
|
|
60826
|
-
treatment:
|
|
61108
|
+
var contentFrameIntentSchema = z47.discriminatedUnion("kind", [
|
|
61109
|
+
z47.object({ kind: z47.literal("plain") }).strict(),
|
|
61110
|
+
z47.object({
|
|
61111
|
+
kind: z47.literal("panel"),
|
|
61112
|
+
treatment: z47.enum(userPanelTreatments)
|
|
60827
61113
|
}).strict(),
|
|
60828
|
-
|
|
60829
|
-
kind:
|
|
60830
|
-
treatment:
|
|
60831
|
-
bleed:
|
|
61114
|
+
z47.object({
|
|
61115
|
+
kind: z47.literal("flush-panel"),
|
|
61116
|
+
treatment: z47.enum(userFlushTreatments),
|
|
61117
|
+
bleed: z47.enum(userFlushBleeds)
|
|
60832
61118
|
}).strict()
|
|
60833
61119
|
]);
|
|
60834
|
-
var blockDesignPlanSchema =
|
|
60835
|
-
blockId:
|
|
60836
|
-
blockKind:
|
|
60837
|
-
purpose:
|
|
60838
|
-
sectionSurface:
|
|
61120
|
+
var blockDesignPlanSchema = z47.object({
|
|
61121
|
+
blockId: z47.string().min(1).transform(asDesignBlockId),
|
|
61122
|
+
blockKind: z47.string().min(1),
|
|
61123
|
+
purpose: z47.string().min(1),
|
|
61124
|
+
sectionSurface: z47.enum(userDesignOptionCatalog.sectionSurfaces),
|
|
60839
61125
|
contentFrame: contentFrameIntentSchema,
|
|
60840
|
-
itemSurface:
|
|
60841
|
-
transitionAfter:
|
|
60842
|
-
emphasis:
|
|
61126
|
+
itemSurface: z47.enum(userDesignOptionCatalog.itemSurfaces),
|
|
61127
|
+
transitionAfter: z47.enum(userDesignOptionCatalog.transitions),
|
|
61128
|
+
emphasis: z47.enum(userDesignOptionCatalog.emphases),
|
|
60843
61129
|
heroLegibility: heroLegibilityStrategySchema.optional()
|
|
60844
61130
|
}).strict();
|
|
60845
|
-
var styleAuthoritySchema =
|
|
60846
|
-
|
|
60847
|
-
kind:
|
|
61131
|
+
var styleAuthoritySchema = z47.discriminatedUnion("kind", [
|
|
61132
|
+
z47.object({
|
|
61133
|
+
kind: z47.literal("theme-v2"),
|
|
60848
61134
|
source: designResolutionPolicySchema,
|
|
60849
|
-
siteStyleId:
|
|
60850
|
-
templateId:
|
|
60851
|
-
templateVersion:
|
|
60852
|
-
resolverVersion:
|
|
61135
|
+
siteStyleId: z47.string().min(1).transform(asSiteStyleId),
|
|
61136
|
+
templateId: z47.string().min(1).transform(asDesignSystemTemplateId),
|
|
61137
|
+
templateVersion: z47.number().int().nonnegative(),
|
|
61138
|
+
resolverVersion: z47.number().int().nonnegative()
|
|
60853
61139
|
}).strict(),
|
|
60854
|
-
|
|
60855
|
-
kind:
|
|
60856
|
-
reason:
|
|
61140
|
+
z47.object({
|
|
61141
|
+
kind: z47.literal("legacy-raw"),
|
|
61142
|
+
reason: z47.enum(["pre-theme-v2", "manual-runtime-fields"])
|
|
60857
61143
|
}).strict(),
|
|
60858
|
-
|
|
60859
|
-
kind:
|
|
60860
|
-
reason:
|
|
61144
|
+
z47.object({
|
|
61145
|
+
kind: z47.literal("advanced-detached"),
|
|
61146
|
+
reason: z47.literal("detached-custom-runtime-fields")
|
|
60861
61147
|
}).strict()
|
|
60862
61148
|
]);
|
|
60863
|
-
var blockRuntimeStyleAuthoritySchema =
|
|
60864
|
-
unit:
|
|
60865
|
-
blockId:
|
|
61149
|
+
var blockRuntimeStyleAuthoritySchema = z47.object({
|
|
61150
|
+
unit: z47.literal("block-runtime-fields"),
|
|
61151
|
+
blockId: z47.string().min(1).transform(asDesignBlockId),
|
|
60866
61152
|
fields: nonEmptyRuntimeStyleFieldNamesSchema,
|
|
60867
61153
|
authority: styleAuthoritySchema
|
|
60868
61154
|
}).strict();
|
|
60869
|
-
var persistedPageDesignStateV1Schema =
|
|
60870
|
-
schemaVersion:
|
|
60871
|
-
siteStyleId:
|
|
60872
|
-
templateId:
|
|
60873
|
-
templateVersion:
|
|
60874
|
-
resolverVersion:
|
|
60875
|
-
rhythmPresetId:
|
|
60876
|
-
blocks:
|
|
60877
|
-
styleAuthorities:
|
|
61155
|
+
var persistedPageDesignStateV1Schema = z47.object({
|
|
61156
|
+
schemaVersion: z47.literal(themeV2DesignStateSchemaVersion),
|
|
61157
|
+
siteStyleId: z47.string().min(1).transform(asSiteStyleId),
|
|
61158
|
+
templateId: z47.string().min(1).transform(asDesignSystemTemplateId),
|
|
61159
|
+
templateVersion: z47.number().int().nonnegative(),
|
|
61160
|
+
resolverVersion: z47.number().int().nonnegative(),
|
|
61161
|
+
rhythmPresetId: z47.string().min(1),
|
|
61162
|
+
blocks: z47.array(blockDesignPlanSchema),
|
|
61163
|
+
styleAuthorities: z47.array(blockRuntimeStyleAuthoritySchema)
|
|
60878
61164
|
}).strict();
|
|
60879
61165
|
|
|
60880
61166
|
// ../theme-core/src/site-styles/generatedSchemas.ts
|
|
60881
|
-
import { z as
|
|
61167
|
+
import { z as z48 } from "zod";
|
|
60882
61168
|
function uniqueNonEmpty2(values) {
|
|
60883
61169
|
const uniqueValues = [...new Set(values)];
|
|
60884
61170
|
const firstValue = uniqueValues[0];
|
|
@@ -60896,105 +61182,105 @@ var generatedFlushTreatments = uniqueNonEmpty2(
|
|
|
60896
61182
|
var generatedFlushBleeds = uniqueNonEmpty2(
|
|
60897
61183
|
generatedDesignOptionCatalog.contentFrames.filter((frame) => frame.kind === "flush-panel").map((frame) => frame.bleed)
|
|
60898
61184
|
);
|
|
60899
|
-
var generatedPanelFrameSchema =
|
|
60900
|
-
kind:
|
|
60901
|
-
treatment:
|
|
61185
|
+
var generatedPanelFrameSchema = z48.object({
|
|
61186
|
+
kind: z48.literal("panel"),
|
|
61187
|
+
treatment: z48.enum(generatedPanelTreatments)
|
|
60902
61188
|
}).strict();
|
|
60903
|
-
var generatedFlushPanelFrameSchema =
|
|
60904
|
-
kind:
|
|
60905
|
-
treatment:
|
|
60906
|
-
bleed:
|
|
61189
|
+
var generatedFlushPanelFrameSchema = z48.object({
|
|
61190
|
+
kind: z48.literal("flush-panel"),
|
|
61191
|
+
treatment: z48.enum(generatedFlushTreatments),
|
|
61192
|
+
bleed: z48.enum(generatedFlushBleeds)
|
|
60907
61193
|
}).strict();
|
|
60908
|
-
var generatedContentFrameIntentSchema =
|
|
60909
|
-
|
|
61194
|
+
var generatedContentFrameIntentSchema = z48.discriminatedUnion("kind", [
|
|
61195
|
+
z48.object({ kind: z48.literal("plain") }).strict(),
|
|
60910
61196
|
generatedPanelFrameSchema,
|
|
60911
61197
|
generatedFlushPanelFrameSchema
|
|
60912
61198
|
]);
|
|
60913
|
-
var generatedSiteStyleIdSchema =
|
|
61199
|
+
var generatedSiteStyleIdSchema = z48.enum(curatedSiteStyleIdValues).transform(asSiteStyleId);
|
|
60914
61200
|
function generatedChoiceSchema(valueSchema) {
|
|
60915
|
-
return
|
|
60916
|
-
|
|
60917
|
-
source:
|
|
60918
|
-
kind:
|
|
61201
|
+
return z48.discriminatedUnion("kind", [
|
|
61202
|
+
z48.object({
|
|
61203
|
+
source: z48.literal("generated"),
|
|
61204
|
+
kind: z48.literal("auto")
|
|
60919
61205
|
}).strict(),
|
|
60920
|
-
|
|
60921
|
-
source:
|
|
60922
|
-
kind:
|
|
61206
|
+
z48.object({
|
|
61207
|
+
source: z48.literal("generated"),
|
|
61208
|
+
kind: z48.literal("explicit"),
|
|
60923
61209
|
value: valueSchema
|
|
60924
61210
|
}).strict()
|
|
60925
61211
|
]);
|
|
60926
61212
|
}
|
|
60927
|
-
var generatedBlockDesignIntentSchema =
|
|
61213
|
+
var generatedBlockDesignIntentSchema = z48.object({
|
|
60928
61214
|
sectionSurface: generatedChoiceSchema(
|
|
60929
|
-
|
|
61215
|
+
z48.enum(generatedDesignOptionCatalog.sectionSurfaces)
|
|
60930
61216
|
),
|
|
60931
61217
|
contentFrame: generatedChoiceSchema(generatedContentFrameIntentSchema),
|
|
60932
61218
|
itemSurface: generatedChoiceSchema(
|
|
60933
|
-
|
|
61219
|
+
z48.enum(generatedDesignOptionCatalog.itemSurfaces)
|
|
60934
61220
|
),
|
|
60935
61221
|
transitionAfter: generatedChoiceSchema(
|
|
60936
|
-
|
|
61222
|
+
z48.enum(generatedDesignOptionCatalog.transitions)
|
|
60937
61223
|
),
|
|
60938
61224
|
emphasis: generatedChoiceSchema(
|
|
60939
|
-
|
|
61225
|
+
z48.enum(generatedDesignOptionCatalog.emphases)
|
|
60940
61226
|
)
|
|
60941
61227
|
}).strict();
|
|
60942
|
-
var generatedMediaCompositionIntentSchema =
|
|
61228
|
+
var generatedMediaCompositionIntentSchema = z48.enum([
|
|
60943
61229
|
"none",
|
|
60944
61230
|
"supporting",
|
|
60945
61231
|
"dominant"
|
|
60946
61232
|
]);
|
|
60947
|
-
var generatedDecorativeCompositionIntentSchema =
|
|
61233
|
+
var generatedDecorativeCompositionIntentSchema = z48.enum([
|
|
60948
61234
|
"none",
|
|
60949
61235
|
"supporting"
|
|
60950
61236
|
]);
|
|
60951
|
-
var generatedHeroLegibilityStrategySchema =
|
|
61237
|
+
var generatedHeroLegibilityStrategySchema = z48.enum([
|
|
60952
61238
|
"none",
|
|
60953
61239
|
"scrim-gradient"
|
|
60954
61240
|
]);
|
|
60955
|
-
var generatedBlockMediaIntentSchema =
|
|
61241
|
+
var generatedBlockMediaIntentSchema = z48.object({
|
|
60956
61242
|
media: generatedMediaCompositionIntentSchema,
|
|
60957
61243
|
decorative: generatedDecorativeCompositionIntentSchema,
|
|
60958
61244
|
heroLegibility: generatedChoiceSchema(generatedHeroLegibilityStrategySchema)
|
|
60959
61245
|
}).strict();
|
|
60960
|
-
var generatedBoundaryIntentSchema =
|
|
61246
|
+
var generatedBoundaryIntentSchema = z48.object({
|
|
60961
61247
|
transitionAfter: generatedChoiceSchema(
|
|
60962
|
-
|
|
61248
|
+
z48.enum(generatedDesignOptionCatalog.transitions)
|
|
60963
61249
|
)
|
|
60964
61250
|
}).strict();
|
|
60965
|
-
var generatedPageDesignBlockIntentSchema =
|
|
60966
|
-
blockId:
|
|
60967
|
-
blockKind:
|
|
60968
|
-
purpose:
|
|
61251
|
+
var generatedPageDesignBlockIntentSchema = z48.object({
|
|
61252
|
+
blockId: z48.string().min(1),
|
|
61253
|
+
blockKind: z48.string().min(1),
|
|
61254
|
+
purpose: z48.string().min(1),
|
|
60969
61255
|
design: generatedBlockDesignIntentSchema,
|
|
60970
61256
|
mediaIntent: generatedBlockMediaIntentSchema,
|
|
60971
61257
|
boundaryIntent: generatedBoundaryIntentSchema
|
|
60972
61258
|
}).strict();
|
|
60973
|
-
var generatedPageDesignIntentSchema =
|
|
61259
|
+
var generatedPageDesignIntentSchema = z48.object({
|
|
60974
61260
|
siteStyleId: generatedSiteStyleIdSchema,
|
|
60975
|
-
blocks:
|
|
61261
|
+
blocks: z48.array(generatedPageDesignBlockIntentSchema)
|
|
60976
61262
|
}).strict();
|
|
60977
61263
|
|
|
60978
61264
|
// ../theme-core/src/site-styles/pageDesignIntent.ts
|
|
60979
|
-
import { z as
|
|
61265
|
+
import { z as z49 } from "zod";
|
|
60980
61266
|
var pageDesignIntentSchemaVersion = 1;
|
|
60981
|
-
var pageDesignUserPinnedAppearanceChoiceSchema =
|
|
60982
|
-
kind:
|
|
60983
|
-
value:
|
|
61267
|
+
var pageDesignUserPinnedAppearanceChoiceSchema = z49.object({
|
|
61268
|
+
kind: z49.literal("user-pinned"),
|
|
61269
|
+
value: z49.string().min(1).transform(asAppearancePresetId)
|
|
60984
61270
|
}).strict();
|
|
60985
|
-
var pageDesignUserPinnedBoundaryChoiceSchema =
|
|
60986
|
-
kind:
|
|
60987
|
-
value:
|
|
61271
|
+
var pageDesignUserPinnedBoundaryChoiceSchema = z49.object({
|
|
61272
|
+
kind: z49.literal("user-pinned"),
|
|
61273
|
+
value: z49.string().min(1).transform(asBoundaryOptionId)
|
|
60988
61274
|
}).strict();
|
|
60989
|
-
var pageDesignBlockLookPinSchema =
|
|
60990
|
-
blockId:
|
|
60991
|
-
blockKind:
|
|
61275
|
+
var pageDesignBlockLookPinSchema = z49.object({
|
|
61276
|
+
blockId: z49.string().min(1).transform(asDesignBlockId),
|
|
61277
|
+
blockKind: z49.string().min(1),
|
|
60992
61278
|
choice: pageDesignUserPinnedAppearanceChoiceSchema
|
|
60993
61279
|
}).strict();
|
|
60994
|
-
var pageDesignBoundaryPinSchema =
|
|
60995
|
-
boundaryId:
|
|
60996
|
-
previousBlockId:
|
|
60997
|
-
nextBlockId:
|
|
61280
|
+
var pageDesignBoundaryPinSchema = z49.object({
|
|
61281
|
+
boundaryId: z49.string().min(1).transform(asDesignBoundaryId),
|
|
61282
|
+
previousBlockId: z49.string().min(1).transform(asDesignBlockId),
|
|
61283
|
+
nextBlockId: z49.string().min(1).transform(asDesignBlockId),
|
|
60998
61284
|
choice: pageDesignUserPinnedBoundaryChoiceSchema
|
|
60999
61285
|
}).strict().superRefine((pin, ctx) => {
|
|
61000
61286
|
const expectedBoundaryId = makeBoundaryId(
|
|
@@ -61003,18 +61289,18 @@ var pageDesignBoundaryPinSchema = z48.object({
|
|
|
61003
61289
|
);
|
|
61004
61290
|
if (pin.boundaryId !== expectedBoundaryId) {
|
|
61005
61291
|
ctx.addIssue({
|
|
61006
|
-
code:
|
|
61292
|
+
code: z49.ZodIssueCode.custom,
|
|
61007
61293
|
path: ["boundaryId"],
|
|
61008
61294
|
message: `Boundary id must match previousBlockId and nextBlockId. Expected ${expectedBoundaryId}.`
|
|
61009
61295
|
});
|
|
61010
61296
|
}
|
|
61011
61297
|
});
|
|
61012
|
-
var pageDesignIntentV1Schema =
|
|
61013
|
-
schemaVersion:
|
|
61014
|
-
siteStyleId:
|
|
61015
|
-
pageFlowPresetId:
|
|
61016
|
-
blockLookPins:
|
|
61017
|
-
boundaryPins:
|
|
61298
|
+
var pageDesignIntentV1Schema = z49.object({
|
|
61299
|
+
schemaVersion: z49.literal(pageDesignIntentSchemaVersion),
|
|
61300
|
+
siteStyleId: z49.string().min(1).transform(asSiteStyleId),
|
|
61301
|
+
pageFlowPresetId: z49.string().min(1).transform(asPageFlowPresetId),
|
|
61302
|
+
blockLookPins: z49.array(pageDesignBlockLookPinSchema),
|
|
61303
|
+
boundaryPins: z49.array(pageDesignBoundaryPinSchema)
|
|
61018
61304
|
}).strict().superRefine((intent, ctx) => {
|
|
61019
61305
|
addDuplicateStringIssues(ctx, {
|
|
61020
61306
|
values: intent.blockLookPins.map((pin) => pin.blockId),
|
|
@@ -61040,7 +61326,7 @@ function addDuplicateStringIssues(ctx, input) {
|
|
|
61040
61326
|
}
|
|
61041
61327
|
for (const duplicate of duplicates) {
|
|
61042
61328
|
ctx.addIssue({
|
|
61043
|
-
code:
|
|
61329
|
+
code: z49.ZodIssueCode.custom,
|
|
61044
61330
|
path: [...input.path],
|
|
61045
61331
|
message: `Duplicate ${input.label}: ${duplicate}.`
|
|
61046
61332
|
});
|
|
@@ -61297,81 +61583,81 @@ var defaultComponentRuntimeRules = defineComponentRuntimeRules({
|
|
|
61297
61583
|
});
|
|
61298
61584
|
|
|
61299
61585
|
// ../theme-core/src/site-styles/pageDesignAuthority.ts
|
|
61300
|
-
import { z as
|
|
61301
|
-
var nonEmptyStringSchema =
|
|
61586
|
+
import { z as z50 } from "zod";
|
|
61587
|
+
var nonEmptyStringSchema = z50.string().min(1);
|
|
61302
61588
|
var blockContentVersionIdSchema = nonEmptyStringSchema.transform(asBlockContentVersionId);
|
|
61303
61589
|
var designBlockIdSchema = nonEmptyStringSchema.transform(asDesignBlockId);
|
|
61304
61590
|
var designPageIdSchema = nonEmptyStringSchema.transform(asDesignPageId);
|
|
61305
61591
|
var designEntryIdSchema = nonEmptyStringSchema.transform(asDesignEntryId);
|
|
61306
|
-
var blockOrderIndexSchema =
|
|
61307
|
-
var publishedPageBlockSnapshotSchema =
|
|
61308
|
-
kind:
|
|
61592
|
+
var blockOrderIndexSchema = z50.number().int().nonnegative().transform(asBlockOrderIndex);
|
|
61593
|
+
var publishedPageBlockSnapshotSchema = z50.object({
|
|
61594
|
+
kind: z50.literal("published-block-content"),
|
|
61309
61595
|
blockId: designBlockIdSchema,
|
|
61310
61596
|
contentVersionId: blockContentVersionIdSchema,
|
|
61311
|
-
identifier:
|
|
61597
|
+
identifier: z50.string().nullable(),
|
|
61312
61598
|
blockKind: nonEmptyStringSchema,
|
|
61313
61599
|
orderIndex: blockOrderIndexSchema
|
|
61314
61600
|
}).strict();
|
|
61315
|
-
var draftPageBlockSnapshotSchema =
|
|
61316
|
-
kind:
|
|
61601
|
+
var draftPageBlockSnapshotSchema = z50.object({
|
|
61602
|
+
kind: z50.literal("draft-block-content"),
|
|
61317
61603
|
blockId: designBlockIdSchema,
|
|
61318
61604
|
contentVersionId: blockContentVersionIdSchema.nullable(),
|
|
61319
|
-
identifier:
|
|
61605
|
+
identifier: z50.string().nullable(),
|
|
61320
61606
|
blockKind: nonEmptyStringSchema,
|
|
61321
61607
|
orderIndex: blockOrderIndexSchema
|
|
61322
61608
|
}).strict();
|
|
61323
|
-
var missingPageBlockSnapshotSchema =
|
|
61324
|
-
kind:
|
|
61609
|
+
var missingPageBlockSnapshotSchema = z50.object({
|
|
61610
|
+
kind: z50.literal("missing-block-content"),
|
|
61325
61611
|
blockId: designBlockIdSchema,
|
|
61326
|
-
identifier:
|
|
61612
|
+
identifier: z50.string().nullable(),
|
|
61327
61613
|
blockKind: nonEmptyStringSchema,
|
|
61328
61614
|
orderIndex: blockOrderIndexSchema,
|
|
61329
|
-
reason:
|
|
61615
|
+
reason: z50.enum([
|
|
61330
61616
|
"new-block",
|
|
61331
61617
|
"deleted-content-version",
|
|
61332
61618
|
"unpublished-block"
|
|
61333
61619
|
])
|
|
61334
61620
|
}).strict();
|
|
61335
|
-
var pageBlockSnapshotSchema =
|
|
61621
|
+
var pageBlockSnapshotSchema = z50.discriminatedUnion("kind", [
|
|
61336
61622
|
publishedPageBlockSnapshotSchema,
|
|
61337
61623
|
draftPageBlockSnapshotSchema,
|
|
61338
61624
|
missingPageBlockSnapshotSchema
|
|
61339
61625
|
]);
|
|
61340
|
-
var publishedPageBlockSequenceSchema =
|
|
61341
|
-
var draftPageBlockSequenceSchema =
|
|
61342
|
-
var publishedPageDesignVersionDataV1Schema =
|
|
61343
|
-
schemaVersion:
|
|
61344
|
-
stage:
|
|
61626
|
+
var publishedPageBlockSequenceSchema = z50.array(publishedPageBlockSnapshotSchema).superRefine(validateBlockSequence);
|
|
61627
|
+
var draftPageBlockSequenceSchema = z50.array(pageBlockSnapshotSchema).superRefine(validateBlockSequence);
|
|
61628
|
+
var publishedPageDesignVersionDataV1Schema = z50.object({
|
|
61629
|
+
schemaVersion: z50.literal(1),
|
|
61630
|
+
stage: z50.literal("published"),
|
|
61345
61631
|
pageId: designPageIdSchema,
|
|
61346
61632
|
blockSequence: publishedPageBlockSequenceSchema
|
|
61347
61633
|
}).strict();
|
|
61348
|
-
var draftPageDesignVersionDataV1Schema =
|
|
61349
|
-
schemaVersion:
|
|
61350
|
-
stage:
|
|
61634
|
+
var draftPageDesignVersionDataV1Schema = z50.object({
|
|
61635
|
+
schemaVersion: z50.literal(1),
|
|
61636
|
+
stage: z50.literal("draft"),
|
|
61351
61637
|
pageId: designPageIdSchema,
|
|
61352
61638
|
blockSequence: draftPageBlockSequenceSchema
|
|
61353
61639
|
}).strict();
|
|
61354
|
-
var pageDesignVersionDataV1Schema =
|
|
61640
|
+
var pageDesignVersionDataV1Schema = z50.discriminatedUnion("stage", [
|
|
61355
61641
|
publishedPageDesignVersionDataV1Schema,
|
|
61356
61642
|
draftPageDesignVersionDataV1Schema
|
|
61357
61643
|
]);
|
|
61358
|
-
var contentVersionOwnerSchema =
|
|
61359
|
-
|
|
61360
|
-
kind:
|
|
61644
|
+
var contentVersionOwnerSchema = z50.discriminatedUnion("kind", [
|
|
61645
|
+
z50.object({
|
|
61646
|
+
kind: z50.literal("block"),
|
|
61361
61647
|
blockId: designBlockIdSchema
|
|
61362
61648
|
}).strict(),
|
|
61363
|
-
|
|
61364
|
-
kind:
|
|
61649
|
+
z50.object({
|
|
61650
|
+
kind: z50.literal("entry"),
|
|
61365
61651
|
entryId: designEntryIdSchema
|
|
61366
61652
|
}).strict(),
|
|
61367
|
-
|
|
61368
|
-
kind:
|
|
61653
|
+
z50.object({
|
|
61654
|
+
kind: z50.literal("page"),
|
|
61369
61655
|
pageId: designPageIdSchema
|
|
61370
61656
|
}).strict()
|
|
61371
61657
|
]);
|
|
61372
61658
|
function validateBlockSequence(snapshots, ctx) {
|
|
61373
|
-
for (const
|
|
61374
|
-
ctx.addIssue(
|
|
61659
|
+
for (const issue2 of collectBlockSequenceIssues(snapshots)) {
|
|
61660
|
+
ctx.addIssue(issue2);
|
|
61375
61661
|
}
|
|
61376
61662
|
}
|
|
61377
61663
|
function collectBlockSequenceIssues(snapshots) {
|
|
@@ -61382,7 +61668,7 @@ function collectBlockSequenceIssues(snapshots) {
|
|
|
61382
61668
|
snapshots.forEach((snapshot, index) => {
|
|
61383
61669
|
if (seenBlockIds.has(snapshot.blockId)) {
|
|
61384
61670
|
issues.push({
|
|
61385
|
-
code:
|
|
61671
|
+
code: z50.ZodIssueCode.custom,
|
|
61386
61672
|
message: `Duplicate blockId in page design blockSequence: ${snapshot.blockId}`,
|
|
61387
61673
|
path: [index, "blockId"]
|
|
61388
61674
|
});
|
|
@@ -61391,7 +61677,7 @@ function collectBlockSequenceIssues(snapshots) {
|
|
|
61391
61677
|
const orderIndex = snapshot.orderIndex;
|
|
61392
61678
|
if (seenOrderIndexes.has(orderIndex)) {
|
|
61393
61679
|
issues.push({
|
|
61394
|
-
code:
|
|
61680
|
+
code: z50.ZodIssueCode.custom,
|
|
61395
61681
|
message: `Duplicate orderIndex in page design blockSequence: ${String(orderIndex)}`,
|
|
61396
61682
|
path: [index, "orderIndex"]
|
|
61397
61683
|
});
|
|
@@ -61399,7 +61685,7 @@ function collectBlockSequenceIssues(snapshots) {
|
|
|
61399
61685
|
seenOrderIndexes.add(orderIndex);
|
|
61400
61686
|
if (previousOrderIndex !== null && orderIndex <= previousOrderIndex) {
|
|
61401
61687
|
issues.push({
|
|
61402
|
-
code:
|
|
61688
|
+
code: z50.ZodIssueCode.custom,
|
|
61403
61689
|
message: `Expected orderIndex greater than ${String(previousOrderIndex)} for blockSequence position ${String(index)}; received ${String(orderIndex)}.`,
|
|
61404
61690
|
path: [index, "orderIndex"]
|
|
61405
61691
|
});
|
|
@@ -61455,7 +61741,7 @@ var pageFlowPresets = [
|
|
|
61455
61741
|
init_styleTags();
|
|
61456
61742
|
|
|
61457
61743
|
// ../theme-core/src/site-styles/tokenRecipes.ts
|
|
61458
|
-
import { z as
|
|
61744
|
+
import { z as z51 } from "zod";
|
|
61459
61745
|
var themeTokenRecipeOptions = {
|
|
61460
61746
|
palette: ["brand-led", "warm-neutral", "high-contrast", "soft-natural"],
|
|
61461
61747
|
contrast: ["standard", "strong", "maximum"],
|
|
@@ -61470,14 +61756,14 @@ var themeTokenRecipeOptions = {
|
|
|
61470
61756
|
spacing: ["compact", "regular", "airy"],
|
|
61471
61757
|
motion: ["none", "subtle", "expressive"]
|
|
61472
61758
|
};
|
|
61473
|
-
var themeTokenRecipesSchema =
|
|
61474
|
-
palette:
|
|
61475
|
-
contrast:
|
|
61476
|
-
radius:
|
|
61477
|
-
shadow:
|
|
61478
|
-
typography:
|
|
61479
|
-
spacing:
|
|
61480
|
-
motion:
|
|
61759
|
+
var themeTokenRecipesSchema = z51.object({
|
|
61760
|
+
palette: z51.enum(themeTokenRecipeOptions.palette),
|
|
61761
|
+
contrast: z51.enum(themeTokenRecipeOptions.contrast),
|
|
61762
|
+
radius: z51.enum(themeTokenRecipeOptions.radius),
|
|
61763
|
+
shadow: z51.enum(themeTokenRecipeOptions.shadow),
|
|
61764
|
+
typography: z51.enum(themeTokenRecipeOptions.typography),
|
|
61765
|
+
spacing: z51.enum(themeTokenRecipeOptions.spacing),
|
|
61766
|
+
motion: z51.enum(themeTokenRecipeOptions.motion)
|
|
61481
61767
|
});
|
|
61482
61768
|
|
|
61483
61769
|
// ../blocks/src/system/designCapabilities.ts
|
|
@@ -61729,7 +62015,7 @@ var bodyTextBlockDefinition = {
|
|
|
61729
62015
|
init_builder();
|
|
61730
62016
|
init_fragments2();
|
|
61731
62017
|
init_defineBlock();
|
|
61732
|
-
import { z as
|
|
62018
|
+
import { z as z52 } from "zod";
|
|
61733
62019
|
var composition = composeFragments([{ fragment: blogFeaturedPostFragment }]);
|
|
61734
62020
|
var blogPostLayout = section(
|
|
61735
62021
|
{ background: "background", className: "rb-px-6 rb-py-12" },
|
|
@@ -61758,17 +62044,17 @@ var blogPostManifest = createBlockManifest({
|
|
|
61758
62044
|
additionalFields: composition.fields,
|
|
61759
62045
|
layout: blogPostLayout
|
|
61760
62046
|
});
|
|
61761
|
-
var blogPostDataSchema =
|
|
61762
|
-
id:
|
|
61763
|
-
title:
|
|
61764
|
-
slug:
|
|
61765
|
-
path:
|
|
61766
|
-
excerpt:
|
|
61767
|
-
image:
|
|
61768
|
-
url:
|
|
61769
|
-
alt:
|
|
62047
|
+
var blogPostDataSchema = z52.object({
|
|
62048
|
+
id: z52.string(),
|
|
62049
|
+
title: z52.string(),
|
|
62050
|
+
slug: z52.string(),
|
|
62051
|
+
path: z52.string(),
|
|
62052
|
+
excerpt: z52.string().nullable().optional(),
|
|
62053
|
+
image: z52.object({
|
|
62054
|
+
url: z52.string().optional().nullable(),
|
|
62055
|
+
alt: z52.string().optional().nullable()
|
|
61770
62056
|
}).nullable().optional(),
|
|
61771
|
-
publishedAt:
|
|
62057
|
+
publishedAt: z52.string().nullable().optional()
|
|
61772
62058
|
});
|
|
61773
62059
|
var blogPostBlockDefinition = {
|
|
61774
62060
|
manifest: blogPostManifest,
|
|
@@ -61783,7 +62069,7 @@ init_schema2();
|
|
|
61783
62069
|
init_builder();
|
|
61784
62070
|
init_fragments();
|
|
61785
62071
|
init_colorStyles();
|
|
61786
|
-
import { z as
|
|
62072
|
+
import { z as z53 } from "zod";
|
|
61787
62073
|
var blogListingDataLoader = {
|
|
61788
62074
|
endpoint: "listPublishedEntries",
|
|
61789
62075
|
params: {
|
|
@@ -62101,24 +62387,24 @@ var blogListingManifest = createBlockManifest({
|
|
|
62101
62387
|
spacing: "lg"
|
|
62102
62388
|
}
|
|
62103
62389
|
});
|
|
62104
|
-
var blogPostListEntrySchema =
|
|
62105
|
-
id:
|
|
62106
|
-
slug:
|
|
62107
|
-
path:
|
|
62108
|
-
title:
|
|
62109
|
-
excerpt:
|
|
62110
|
-
publishedAt:
|
|
62111
|
-
updatedAt:
|
|
62112
|
-
status:
|
|
62113
|
-
image:
|
|
62114
|
-
url:
|
|
62115
|
-
alt:
|
|
62390
|
+
var blogPostListEntrySchema = z53.object({
|
|
62391
|
+
id: z53.string(),
|
|
62392
|
+
slug: z53.string(),
|
|
62393
|
+
path: z53.string(),
|
|
62394
|
+
title: z53.string(),
|
|
62395
|
+
excerpt: z53.string().nullable().optional(),
|
|
62396
|
+
publishedAt: z53.string().nullable().optional(),
|
|
62397
|
+
updatedAt: z53.string(),
|
|
62398
|
+
status: z53.string(),
|
|
62399
|
+
image: z53.object({
|
|
62400
|
+
url: z53.string(),
|
|
62401
|
+
alt: z53.string().nullable().optional()
|
|
62116
62402
|
}).nullable().optional()
|
|
62117
62403
|
});
|
|
62118
62404
|
var blogListingBlockDefinition = {
|
|
62119
62405
|
manifest: blogListingManifest,
|
|
62120
62406
|
dataSchemas: {
|
|
62121
|
-
posts:
|
|
62407
|
+
posts: z53.array(blogPostListEntrySchema).optional()
|
|
62122
62408
|
},
|
|
62123
62409
|
dataLoaders: {
|
|
62124
62410
|
posts: blogListingDataLoader
|
|
@@ -62239,7 +62525,7 @@ init_builder();
|
|
|
62239
62525
|
init_fragments();
|
|
62240
62526
|
|
|
62241
62527
|
// ../blocks/src/system/transforms/registry/formatting.ts
|
|
62242
|
-
import { z as
|
|
62528
|
+
import { z as z54 } from "zod";
|
|
62243
62529
|
var uppercaseTransform = {
|
|
62244
62530
|
id: "string.uppercase",
|
|
62245
62531
|
kind: "string",
|
|
@@ -62250,7 +62536,7 @@ var fallbackTransform = {
|
|
|
62250
62536
|
id: "value.fallback",
|
|
62251
62537
|
kind: "formatter",
|
|
62252
62538
|
summary: "Provide fallback when value is null or undefined",
|
|
62253
|
-
schema:
|
|
62539
|
+
schema: z54.object({ fallback: z54.unknown() }),
|
|
62254
62540
|
run: (value, options) => value === null || value === void 0 || value === "" ? options.fallback : value
|
|
62255
62541
|
};
|
|
62256
62542
|
var dateFormatShort = {
|
|
@@ -62297,8 +62583,8 @@ var jsonArrayTransform = {
|
|
|
62297
62583
|
return "";
|
|
62298
62584
|
}
|
|
62299
62585
|
};
|
|
62300
|
-
var marqueeLoopOptionsSchema =
|
|
62301
|
-
minItems:
|
|
62586
|
+
var marqueeLoopOptionsSchema = z54.object({
|
|
62587
|
+
minItems: z54.number().int().min(1).default(10)
|
|
62302
62588
|
});
|
|
62303
62589
|
var marqueeLoopTransform = {
|
|
62304
62590
|
id: "array.marqueeLoop",
|
|
@@ -62330,7 +62616,7 @@ init_core2();
|
|
|
62330
62616
|
init_colorStyles();
|
|
62331
62617
|
init_blockColorTokens();
|
|
62332
62618
|
init_sectionState_shared();
|
|
62333
|
-
import { z as
|
|
62619
|
+
import { z as z55 } from "zod";
|
|
62334
62620
|
var joinClasses6 = (parts) => parts.filter(
|
|
62335
62621
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
62336
62622
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -62390,8 +62676,8 @@ function getNavStyleClasses(navStyle) {
|
|
|
62390
62676
|
return baseClasses;
|
|
62391
62677
|
}
|
|
62392
62678
|
}
|
|
62393
|
-
var headerNavClassOptionsSchema =
|
|
62394
|
-
base:
|
|
62679
|
+
var headerNavClassOptionsSchema = z55.object({
|
|
62680
|
+
base: z55.string().optional()
|
|
62395
62681
|
});
|
|
62396
62682
|
var headerNavLinkClassTransform = {
|
|
62397
62683
|
id: "ui.headerNavLinkClass",
|
|
@@ -62437,7 +62723,7 @@ var sectionStateToneTransform = {
|
|
|
62437
62723
|
summary: "Map semantic section-state kind to feedback tone",
|
|
62438
62724
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
62439
62725
|
};
|
|
62440
|
-
function
|
|
62726
|
+
function isPlainObject3(value) {
|
|
62441
62727
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
62442
62728
|
}
|
|
62443
62729
|
function readString(obj, key) {
|
|
@@ -62474,8 +62760,8 @@ function resolveHeroContentMaxWidth(content) {
|
|
|
62474
62760
|
return raw;
|
|
62475
62761
|
return "default";
|
|
62476
62762
|
}
|
|
62477
|
-
var heroContentWrapperClassSchema =
|
|
62478
|
-
base:
|
|
62763
|
+
var heroContentWrapperClassSchema = z55.object({
|
|
62764
|
+
base: z55.string().optional()
|
|
62479
62765
|
});
|
|
62480
62766
|
var heroContentWrapperClassTransform = {
|
|
62481
62767
|
id: "ui.heroContentWrapperClass",
|
|
@@ -62483,7 +62769,7 @@ var heroContentWrapperClassTransform = {
|
|
|
62483
62769
|
summary: "Resolve hero content wrapper className from alignment + max width controls",
|
|
62484
62770
|
schema: heroContentWrapperClassSchema,
|
|
62485
62771
|
run: (value, options, context) => {
|
|
62486
|
-
const content =
|
|
62772
|
+
const content = isPlainObject3(value) ? value : isPlainObject3(context.data) ? context.data : {};
|
|
62487
62773
|
const alignment = resolveHeroContentAlignment(content);
|
|
62488
62774
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
62489
62775
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
@@ -62502,7 +62788,7 @@ var heroCtaJustifyTransform = {
|
|
|
62502
62788
|
kind: "string",
|
|
62503
62789
|
summary: "Map hero contentAlignment to CTA row justify value",
|
|
62504
62790
|
run: (value, _options, context) => {
|
|
62505
|
-
const content =
|
|
62791
|
+
const content = isPlainObject3(value) ? value : isPlainObject3(context.data) ? context.data : {};
|
|
62506
62792
|
const alignment = resolveHeroContentAlignment(content);
|
|
62507
62793
|
return alignment === "left" ? "start" : alignment === "right" ? "end" : "center";
|
|
62508
62794
|
}
|
|
@@ -62512,13 +62798,13 @@ var heroStackJustifyFromVerticalAlignmentTransform = {
|
|
|
62512
62798
|
kind: "string",
|
|
62513
62799
|
summary: "Map hero verticalAlignment to stack justify value",
|
|
62514
62800
|
run: (value, _options, context) => {
|
|
62515
|
-
const content =
|
|
62801
|
+
const content = isPlainObject3(value) ? value : isPlainObject3(context.data) ? context.data : {};
|
|
62516
62802
|
const vertical = resolveHeroVerticalAlignment(content);
|
|
62517
62803
|
return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
|
|
62518
62804
|
}
|
|
62519
62805
|
};
|
|
62520
|
-
var heroGridClassFromVerticalAlignmentSchema =
|
|
62521
|
-
base:
|
|
62806
|
+
var heroGridClassFromVerticalAlignmentSchema = z55.object({
|
|
62807
|
+
base: z55.string()
|
|
62522
62808
|
});
|
|
62523
62809
|
var heroGridClassFromVerticalAlignmentTransform = {
|
|
62524
62810
|
id: "ui.heroGridClassFromVerticalAlignment",
|
|
@@ -62526,16 +62812,16 @@ var heroGridClassFromVerticalAlignmentTransform = {
|
|
|
62526
62812
|
summary: "Append align-items class for hero split layouts based on verticalAlignment",
|
|
62527
62813
|
schema: heroGridClassFromVerticalAlignmentSchema,
|
|
62528
62814
|
run: (value, options, context) => {
|
|
62529
|
-
const content =
|
|
62815
|
+
const content = isPlainObject3(value) ? value : isPlainObject3(context.data) ? context.data : {};
|
|
62530
62816
|
const vertical = resolveHeroVerticalAlignment(content);
|
|
62531
62817
|
const itemsClass = vertical === "top" ? "rb-items-start" : vertical === "bottom" ? "rb-items-end" : "rb-items-center";
|
|
62532
62818
|
return joinClasses6([options.base, itemsClass]);
|
|
62533
62819
|
}
|
|
62534
62820
|
};
|
|
62535
|
-
var imageFragmentClassOptionsSchema =
|
|
62536
|
-
base:
|
|
62537
|
-
whenAuto:
|
|
62538
|
-
whenFixed:
|
|
62821
|
+
var imageFragmentClassOptionsSchema = z55.object({
|
|
62822
|
+
base: z55.string(),
|
|
62823
|
+
whenAuto: z55.string(),
|
|
62824
|
+
whenFixed: z55.string()
|
|
62539
62825
|
});
|
|
62540
62826
|
var imageFragmentClassTransform = {
|
|
62541
62827
|
id: "ui.imageFragmentClass",
|
|
@@ -62551,9 +62837,9 @@ var imageFragmentClassTransform = {
|
|
|
62551
62837
|
]);
|
|
62552
62838
|
}
|
|
62553
62839
|
};
|
|
62554
|
-
var imageFragmentSizeOptionsSchema =
|
|
62555
|
-
max:
|
|
62556
|
-
quality:
|
|
62840
|
+
var imageFragmentSizeOptionsSchema = z55.object({
|
|
62841
|
+
max: z55.number().int().positive().default(1920),
|
|
62842
|
+
quality: z55.number().int().min(1).max(100).default(85)
|
|
62557
62843
|
});
|
|
62558
62844
|
var imageFragmentSizeTransform = {
|
|
62559
62845
|
id: "ui.imageFragmentSize",
|
|
@@ -62573,9 +62859,9 @@ var imageFragmentSizeTransform = {
|
|
|
62573
62859
|
return { width, height, quality, resize: "cover" };
|
|
62574
62860
|
}
|
|
62575
62861
|
};
|
|
62576
|
-
var conditionalClassOptionsSchema =
|
|
62577
|
-
whenTrue:
|
|
62578
|
-
whenFalse:
|
|
62862
|
+
var conditionalClassOptionsSchema = z55.object({
|
|
62863
|
+
whenTrue: z55.string(),
|
|
62864
|
+
whenFalse: z55.string()
|
|
62579
62865
|
});
|
|
62580
62866
|
var conditionalClassTransform = {
|
|
62581
62867
|
id: "ui.conditionalClass",
|
|
@@ -62587,9 +62873,9 @@ var conditionalClassTransform = {
|
|
|
62587
62873
|
return isTrue ? options.whenTrue : options.whenFalse;
|
|
62588
62874
|
}
|
|
62589
62875
|
};
|
|
62590
|
-
var twoColumnContainerClassOptionsSchema =
|
|
62591
|
-
base:
|
|
62592
|
-
reverseClass:
|
|
62876
|
+
var twoColumnContainerClassOptionsSchema = z55.object({
|
|
62877
|
+
base: z55.string(),
|
|
62878
|
+
reverseClass: z55.string()
|
|
62593
62879
|
});
|
|
62594
62880
|
var twoColumnContainerClassTransform = {
|
|
62595
62881
|
id: "ui.twoColumnContainerClass",
|
|
@@ -62604,8 +62890,8 @@ var twoColumnContainerClassTransform = {
|
|
|
62604
62890
|
]);
|
|
62605
62891
|
}
|
|
62606
62892
|
};
|
|
62607
|
-
var twoColumnFlexBasisOptionsSchema =
|
|
62608
|
-
side:
|
|
62893
|
+
var twoColumnFlexBasisOptionsSchema = z55.object({
|
|
62894
|
+
side: z55.enum(["image", "text"])
|
|
62609
62895
|
});
|
|
62610
62896
|
var twoColumnFlexBasisTransform = {
|
|
62611
62897
|
id: "ui.twoColumnFlexBasis",
|
|
@@ -62619,8 +62905,8 @@ var twoColumnFlexBasisTransform = {
|
|
|
62619
62905
|
return `${percent}%`;
|
|
62620
62906
|
}
|
|
62621
62907
|
};
|
|
62622
|
-
var columnsDesktopSpanClassOptionsSchema =
|
|
62623
|
-
base:
|
|
62908
|
+
var columnsDesktopSpanClassOptionsSchema = z55.object({
|
|
62909
|
+
base: z55.string().optional()
|
|
62624
62910
|
});
|
|
62625
62911
|
var columnsDesktopSpanClassTransform = {
|
|
62626
62912
|
id: "ui.columnsDesktopSpanClass",
|
|
@@ -62662,8 +62948,8 @@ var columnsColsAtTransform = {
|
|
|
62662
62948
|
id: "ui.columnsColsAt",
|
|
62663
62949
|
kind: "formatter",
|
|
62664
62950
|
summary: "Resolve columns count for a specific breakpoint",
|
|
62665
|
-
schema:
|
|
62666
|
-
breakpoint:
|
|
62951
|
+
schema: z55.object({
|
|
62952
|
+
breakpoint: z55.enum(["mobile", "md", "lg", "xl"])
|
|
62667
62953
|
}),
|
|
62668
62954
|
run: (value, options) => {
|
|
62669
62955
|
const content = asPartialObject(value) ?? {};
|
|
@@ -62790,14 +63076,14 @@ var uiTransforms = [
|
|
|
62790
63076
|
init_colorConversion();
|
|
62791
63077
|
init_core2();
|
|
62792
63078
|
init_colorStyles();
|
|
62793
|
-
import { z as
|
|
63079
|
+
import { z as z56 } from "zod";
|
|
62794
63080
|
var joinClasses7 = (parts) => parts.filter(
|
|
62795
63081
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
62796
63082
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
62797
|
-
var maxWidthClassSchema =
|
|
62798
|
-
base:
|
|
62799
|
-
container:
|
|
62800
|
-
full:
|
|
63083
|
+
var maxWidthClassSchema = z56.object({
|
|
63084
|
+
base: z56.string().optional(),
|
|
63085
|
+
container: z56.string().optional(),
|
|
63086
|
+
full: z56.string().optional()
|
|
62801
63087
|
});
|
|
62802
63088
|
var maxWidthClassTransform = {
|
|
62803
63089
|
id: "layout.maxWidthClass",
|
|
@@ -62813,11 +63099,11 @@ var maxWidthClassTransform = {
|
|
|
62813
63099
|
return joinClasses7([base, chosen]);
|
|
62814
63100
|
}
|
|
62815
63101
|
};
|
|
62816
|
-
var headerRootClassSchema =
|
|
62817
|
-
base:
|
|
62818
|
-
sticky:
|
|
62819
|
-
stickyTransparent:
|
|
62820
|
-
invert:
|
|
63102
|
+
var headerRootClassSchema = z56.object({
|
|
63103
|
+
base: z56.string().optional(),
|
|
63104
|
+
sticky: z56.string().optional(),
|
|
63105
|
+
stickyTransparent: z56.string().optional(),
|
|
63106
|
+
invert: z56.string().optional()
|
|
62821
63107
|
});
|
|
62822
63108
|
function resolveBackgroundVisualStyles(backgroundColor, tokens, defaultToken = "surface") {
|
|
62823
63109
|
const backgroundToken = typeof backgroundColor === "string" && backgroundColor.trim().length > 0 ? backgroundColor : defaultToken;
|
|
@@ -62938,11 +63224,11 @@ var headerRootClassTransform = {
|
|
|
62938
63224
|
return joinClasses7(classes);
|
|
62939
63225
|
}
|
|
62940
63226
|
};
|
|
62941
|
-
var footerRootClassSchema =
|
|
62942
|
-
base:
|
|
62943
|
-
surface:
|
|
62944
|
-
tokenPrefix:
|
|
62945
|
-
transparent:
|
|
63227
|
+
var footerRootClassSchema = z56.object({
|
|
63228
|
+
base: z56.string().optional(),
|
|
63229
|
+
surface: z56.string().optional(),
|
|
63230
|
+
tokenPrefix: z56.string().optional(),
|
|
63231
|
+
transparent: z56.string().optional()
|
|
62946
63232
|
});
|
|
62947
63233
|
var footerRootClassTransform = {
|
|
62948
63234
|
id: "layout.footerRootClass",
|
|
@@ -63046,8 +63332,8 @@ var footerAlignClassMap = {
|
|
|
63046
63332
|
end: "rb-justify-end",
|
|
63047
63333
|
"space-between": "rb-justify-between"
|
|
63048
63334
|
};
|
|
63049
|
-
var footerBottomBarClassSchema =
|
|
63050
|
-
base:
|
|
63335
|
+
var footerBottomBarClassSchema = z56.object({
|
|
63336
|
+
base: z56.string().optional()
|
|
63051
63337
|
});
|
|
63052
63338
|
var footerBottomBarClassTransform = {
|
|
63053
63339
|
id: "layout.footerBottomBarClass",
|
|
@@ -63069,10 +63355,10 @@ var footerBottomBarClassTransform = {
|
|
|
63069
63355
|
]);
|
|
63070
63356
|
}
|
|
63071
63357
|
};
|
|
63072
|
-
var footerBottomBarContainerClassSchema =
|
|
63073
|
-
base:
|
|
63074
|
-
fullBleed:
|
|
63075
|
-
contained:
|
|
63358
|
+
var footerBottomBarContainerClassSchema = z56.object({
|
|
63359
|
+
base: z56.string().optional(),
|
|
63360
|
+
fullBleed: z56.string().optional(),
|
|
63361
|
+
contained: z56.string().optional()
|
|
63076
63362
|
});
|
|
63077
63363
|
var footerBottomBarContainerClassTransform = {
|
|
63078
63364
|
id: "layout.footerBottomBarContainerClass",
|
|
@@ -63157,8 +63443,8 @@ var footerSplitNavSingleClassTransform = {
|
|
|
63157
63443
|
]);
|
|
63158
63444
|
}
|
|
63159
63445
|
};
|
|
63160
|
-
var footerLogoClassSchema =
|
|
63161
|
-
base:
|
|
63446
|
+
var footerLogoClassSchema = z56.object({
|
|
63447
|
+
base: z56.string().optional()
|
|
63162
63448
|
});
|
|
63163
63449
|
var footerLogoClassTransform = {
|
|
63164
63450
|
id: "layout.footerLogoClass",
|
|
@@ -63180,8 +63466,8 @@ var footerLogoClassTransform = {
|
|
|
63180
63466
|
]);
|
|
63181
63467
|
}
|
|
63182
63468
|
};
|
|
63183
|
-
var footerLogoMediaClassSchema =
|
|
63184
|
-
base:
|
|
63469
|
+
var footerLogoMediaClassSchema = z56.object({
|
|
63470
|
+
base: z56.string().optional()
|
|
63185
63471
|
});
|
|
63186
63472
|
var footerLogoMediaClassTransform = {
|
|
63187
63473
|
id: "layout.footerLogoMediaClass",
|
|
@@ -63235,12 +63521,12 @@ var layoutTransforms = [
|
|
|
63235
63521
|
];
|
|
63236
63522
|
|
|
63237
63523
|
// ../blocks/src/system/transforms/registry/media.ts
|
|
63238
|
-
import { z as
|
|
63239
|
-
var mediaFromUrlOptionsSchema =
|
|
63240
|
-
width:
|
|
63241
|
-
height:
|
|
63242
|
-
quality:
|
|
63243
|
-
resize:
|
|
63524
|
+
import { z as z57 } from "zod";
|
|
63525
|
+
var mediaFromUrlOptionsSchema = z57.object({
|
|
63526
|
+
width: z57.number().int().positive().optional(),
|
|
63527
|
+
height: z57.number().int().positive().optional(),
|
|
63528
|
+
quality: z57.number().int().min(1).max(100).optional(),
|
|
63529
|
+
resize: z57.enum(["cover", "contain", "fill"]).optional()
|
|
63244
63530
|
});
|
|
63245
63531
|
function maybeBuildSupabaseTransformUrl(inputUrl, options) {
|
|
63246
63532
|
const width = options.width;
|
|
@@ -63289,10 +63575,10 @@ var mediaTransforms = [mediaFromUrl];
|
|
|
63289
63575
|
|
|
63290
63576
|
// ../blocks/src/system/transforms/registry/content.ts
|
|
63291
63577
|
init_typeGuards2();
|
|
63292
|
-
import { z as
|
|
63293
|
-
var supportedRichTextTokenSchema =
|
|
63294
|
-
var interpolateRichTextTokensOptionsSchema =
|
|
63295
|
-
tokens:
|
|
63578
|
+
import { z as z58 } from "zod";
|
|
63579
|
+
var supportedRichTextTokenSchema = z58.enum(["year", "site_name"]);
|
|
63580
|
+
var interpolateRichTextTokensOptionsSchema = z58.object({
|
|
63581
|
+
tokens: z58.array(supportedRichTextTokenSchema).default(["year", "site_name"])
|
|
63296
63582
|
});
|
|
63297
63583
|
var richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
|
|
63298
63584
|
function getSiteName(context) {
|
|
@@ -65127,7 +65413,7 @@ init_fragments();
|
|
|
65127
65413
|
init_boxStyles2();
|
|
65128
65414
|
init_defineBlock();
|
|
65129
65415
|
init_api_bindings();
|
|
65130
|
-
import { z as
|
|
65416
|
+
import { z as z59 } from "zod";
|
|
65131
65417
|
var appointmentBookingManifest = createBlockManifest({
|
|
65132
65418
|
id: "block.appointment-booking",
|
|
65133
65419
|
version: "2.0.0",
|
|
@@ -65203,11 +65489,11 @@ var appointmentBookingManifest = createBlockManifest({
|
|
|
65203
65489
|
})
|
|
65204
65490
|
]
|
|
65205
65491
|
});
|
|
65206
|
-
var availabilityDataSchema =
|
|
65207
|
-
slots:
|
|
65208
|
-
startAt:
|
|
65209
|
-
endAt:
|
|
65210
|
-
resourceId:
|
|
65492
|
+
var availabilityDataSchema = z59.object({
|
|
65493
|
+
slots: z59.array(z59.object({
|
|
65494
|
+
startAt: z59.string(),
|
|
65495
|
+
endAt: z59.string(),
|
|
65496
|
+
resourceId: z59.string()
|
|
65211
65497
|
}))
|
|
65212
65498
|
});
|
|
65213
65499
|
var appointmentBookingBlockDefinition = {
|
|
@@ -65243,7 +65529,7 @@ init_fragments();
|
|
|
65243
65529
|
init_shared4();
|
|
65244
65530
|
init_shop_shared();
|
|
65245
65531
|
init_defineBlock();
|
|
65246
|
-
import { z as
|
|
65532
|
+
import { z as z60 } from "zod";
|
|
65247
65533
|
var eventDetailsManifest = createBlockManifest({
|
|
65248
65534
|
id: "block.event-details",
|
|
65249
65535
|
version: "1.0.0",
|
|
@@ -65372,22 +65658,22 @@ var eventDetailsManifest = createBlockManifest({
|
|
|
65372
65658
|
})
|
|
65373
65659
|
]
|
|
65374
65660
|
});
|
|
65375
|
-
var occurrenceContextSchema2 =
|
|
65376
|
-
id:
|
|
65377
|
-
seriesId:
|
|
65378
|
-
startsAt:
|
|
65379
|
-
endsAt:
|
|
65380
|
-
timeZone:
|
|
65381
|
-
capacityOverride:
|
|
65382
|
-
overrides:
|
|
65661
|
+
var occurrenceContextSchema2 = z60.object({
|
|
65662
|
+
id: z60.string(),
|
|
65663
|
+
seriesId: z60.string(),
|
|
65664
|
+
startsAt: z60.string(),
|
|
65665
|
+
endsAt: z60.string(),
|
|
65666
|
+
timeZone: z60.string(),
|
|
65667
|
+
capacityOverride: z60.number().nullable().optional(),
|
|
65668
|
+
overrides: z60.record(z60.string(), z60.unknown()).nullable().optional()
|
|
65383
65669
|
}).nullable();
|
|
65384
65670
|
var eventDetailsBlockDefinition = {
|
|
65385
65671
|
manifest: eventDetailsManifest,
|
|
65386
65672
|
dataSchemas: {
|
|
65387
|
-
eventDetailsData:
|
|
65673
|
+
eventDetailsData: z60.object({
|
|
65388
65674
|
events: publicEventsArraySchema,
|
|
65389
|
-
sitePasses:
|
|
65390
|
-
siteMemberships:
|
|
65675
|
+
sitePasses: z60.object({ passes: z60.array(publicPassProductSchema) }),
|
|
65676
|
+
siteMemberships: z60.object({ memberships: z60.array(publicMembershipProductSchema) })
|
|
65391
65677
|
}).optional(),
|
|
65392
65678
|
occurrenceContext: occurrenceContextSchema2.optional()
|
|
65393
65679
|
},
|
|
@@ -65730,7 +66016,7 @@ init_builder();
|
|
|
65730
66016
|
init_fragments();
|
|
65731
66017
|
init_defineBlock();
|
|
65732
66018
|
init_colorStyles();
|
|
65733
|
-
import { z as
|
|
66019
|
+
import { z as z61 } from "zod";
|
|
65734
66020
|
var embedFields = [
|
|
65735
66021
|
// Section heading
|
|
65736
66022
|
parseFieldDefinition({
|
|
@@ -65961,18 +66247,18 @@ var embedManifest = createBlockManifest({
|
|
|
65961
66247
|
spacing: "lg"
|
|
65962
66248
|
}
|
|
65963
66249
|
});
|
|
65964
|
-
var embedEntrySchema =
|
|
65965
|
-
id:
|
|
65966
|
-
identifier:
|
|
65967
|
-
title:
|
|
65968
|
-
slug:
|
|
65969
|
-
content:
|
|
65970
|
-
publishedAt:
|
|
66250
|
+
var embedEntrySchema = z61.object({
|
|
66251
|
+
id: z61.string(),
|
|
66252
|
+
identifier: z61.string(),
|
|
66253
|
+
title: z61.string(),
|
|
66254
|
+
slug: z61.string().nullable().optional(),
|
|
66255
|
+
content: z61.record(z61.string(), z61.unknown()).optional(),
|
|
66256
|
+
publishedAt: z61.string().nullable().optional()
|
|
65971
66257
|
});
|
|
65972
66258
|
var embedBlockDefinition = {
|
|
65973
66259
|
manifest: embedManifest,
|
|
65974
66260
|
dataSchemas: {
|
|
65975
|
-
entries:
|
|
66261
|
+
entries: z61.array(embedEntrySchema).optional()
|
|
65976
66262
|
},
|
|
65977
66263
|
dataLoaders: {
|
|
65978
66264
|
entries: {
|
|
@@ -67181,7 +67467,26 @@ init_schema2();
|
|
|
67181
67467
|
init_defineBlock();
|
|
67182
67468
|
init_builder();
|
|
67183
67469
|
init_fragments();
|
|
67470
|
+
import { z as z62 } from "zod";
|
|
67471
|
+
init_media2();
|
|
67184
67472
|
var ITEM_NAME2 = "member";
|
|
67473
|
+
var teamMemberPhotoSchema = mediaSchema.refine((media2) => media2.type === "image", {
|
|
67474
|
+
message: "Team member photos must be image media"
|
|
67475
|
+
}).nullable();
|
|
67476
|
+
var teamMemberDataSchema = z62.object({
|
|
67477
|
+
_type: z62.literal("teamMember"),
|
|
67478
|
+
id: z62.string(),
|
|
67479
|
+
name: z62.string(),
|
|
67480
|
+
role: z62.string().nullable(),
|
|
67481
|
+
roleLabel: z62.string().nullable(),
|
|
67482
|
+
bio: z62.string().nullable(),
|
|
67483
|
+
summary: z62.string().nullable(),
|
|
67484
|
+
photo: teamMemberPhotoSchema,
|
|
67485
|
+
profilePath: z62.string().nullable()
|
|
67486
|
+
});
|
|
67487
|
+
var teamMembersDataSchema = z62.array(teamMemberDataSchema);
|
|
67488
|
+
var dynamicSourceWhen = { equals: "site_staff" };
|
|
67489
|
+
var manualSourceWhen = { equals: "site_staff", not: true };
|
|
67185
67490
|
var headingNode = text(
|
|
67186
67491
|
{ as: "h2" },
|
|
67187
67492
|
bind("content.heading"),
|
|
@@ -67271,7 +67576,15 @@ var teamMemberStackLayout = el(
|
|
|
67271
67576
|
]
|
|
67272
67577
|
),
|
|
67273
67578
|
stack({ gap: "sm", className: "rb-team-member-body rb-flex-1 rb-min-w-0" }, [
|
|
67274
|
-
|
|
67579
|
+
link(
|
|
67580
|
+
{
|
|
67581
|
+
href: { $bind: { from: "profilePath" } },
|
|
67582
|
+
className: "rb-team-member-name-link"
|
|
67583
|
+
},
|
|
67584
|
+
[text({ as: "h3" }, bind("name"))],
|
|
67585
|
+
when("profilePath")
|
|
67586
|
+
),
|
|
67587
|
+
text({ as: "h3" }, when("profilePath", { not: true }), bind("name")),
|
|
67275
67588
|
text(
|
|
67276
67589
|
{ as: "p", className: "rb-team-member-role" },
|
|
67277
67590
|
when("role"),
|
|
@@ -67285,12 +67598,18 @@ var teamMemberStackLayout = el(
|
|
|
67285
67598
|
])
|
|
67286
67599
|
]
|
|
67287
67600
|
);
|
|
67288
|
-
var
|
|
67601
|
+
var manualGridMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
|
|
67289
67602
|
collectionPath: "content.members",
|
|
67290
67603
|
itemName: ITEM_NAME2,
|
|
67291
67604
|
fragments: { teamMember: teamMemberFragment },
|
|
67292
67605
|
itemGap: "sm"
|
|
67293
|
-
});
|
|
67606
|
+
}));
|
|
67607
|
+
var dynamicGridMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
|
|
67608
|
+
collectionPath: "data.members",
|
|
67609
|
+
itemName: ITEM_NAME2,
|
|
67610
|
+
fragments: { teamMember: teamMemberFragment },
|
|
67611
|
+
itemGap: "sm"
|
|
67612
|
+
}));
|
|
67294
67613
|
var gridVariant = wrapVariant3(
|
|
67295
67614
|
el(
|
|
67296
67615
|
"grid",
|
|
@@ -67304,22 +67623,29 @@ var gridVariant = wrapVariant3(
|
|
|
67304
67623
|
},
|
|
67305
67624
|
gap: { $bind: { from: "content.gap", fallback: "medium" } }
|
|
67306
67625
|
},
|
|
67307
|
-
[
|
|
67626
|
+
[manualGridMembersNode, dynamicGridMembersNode]
|
|
67308
67627
|
)
|
|
67309
67628
|
);
|
|
67310
|
-
var
|
|
67629
|
+
var manualStackMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
|
|
67311
67630
|
collectionPath: "content.members",
|
|
67312
67631
|
itemName: ITEM_NAME2,
|
|
67313
67632
|
fragments: { teamMember: teamMemberFragment },
|
|
67314
67633
|
layoutOverrides: { teamMember: teamMemberStackLayout },
|
|
67315
67634
|
itemGap: "sm"
|
|
67316
|
-
});
|
|
67635
|
+
}));
|
|
67636
|
+
var dynamicStackMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
|
|
67637
|
+
collectionPath: "data.members",
|
|
67638
|
+
itemName: ITEM_NAME2,
|
|
67639
|
+
fragments: { teamMember: teamMemberFragment },
|
|
67640
|
+
layoutOverrides: { teamMember: teamMemberStackLayout },
|
|
67641
|
+
itemGap: "sm"
|
|
67642
|
+
}));
|
|
67317
67643
|
var stackVariant = wrapVariant3({
|
|
67318
67644
|
type: "stack",
|
|
67319
67645
|
props: {
|
|
67320
67646
|
gap: { $bind: { from: "content.gap", fallback: "medium" } }
|
|
67321
67647
|
},
|
|
67322
|
-
children: [
|
|
67648
|
+
children: [manualStackMembersNode, dynamicStackMembersNode]
|
|
67323
67649
|
});
|
|
67324
67650
|
var teamMembersManifest = createBlockManifest({
|
|
67325
67651
|
id: "block.team-members",
|
|
@@ -67334,6 +67660,18 @@ var teamMembersManifest = createBlockManifest({
|
|
|
67334
67660
|
required: false,
|
|
67335
67661
|
maxLength: 120
|
|
67336
67662
|
}),
|
|
67663
|
+
parseFieldDefinition({
|
|
67664
|
+
id: "source",
|
|
67665
|
+
type: "select",
|
|
67666
|
+
label: "Team members",
|
|
67667
|
+
description: "Choose whether to use the site-wide team or a hand-picked list.",
|
|
67668
|
+
defaultValue: "manual",
|
|
67669
|
+
options: [
|
|
67670
|
+
{ value: "manual", label: "Choose manually" },
|
|
67671
|
+
{ value: "site_staff", label: "Use all site team members" }
|
|
67672
|
+
],
|
|
67673
|
+
ui: { intent: "behavior" }
|
|
67674
|
+
}),
|
|
67337
67675
|
parseFieldDefinition({
|
|
67338
67676
|
id: "layoutAlign",
|
|
67339
67677
|
type: "select",
|
|
@@ -67436,18 +67774,24 @@ var teamMembersManifest = createBlockManifest({
|
|
|
67436
67774
|
],
|
|
67437
67775
|
ui: { intent: "display" }
|
|
67438
67776
|
}),
|
|
67439
|
-
|
|
67440
|
-
|
|
67441
|
-
|
|
67442
|
-
|
|
67443
|
-
|
|
67444
|
-
|
|
67445
|
-
|
|
67446
|
-
|
|
67447
|
-
|
|
67448
|
-
|
|
67777
|
+
{
|
|
67778
|
+
...fragmentsToRepeaterField(
|
|
67779
|
+
"members",
|
|
67780
|
+
"Team members",
|
|
67781
|
+
{ teamMember: teamMemberFragment },
|
|
67782
|
+
{
|
|
67783
|
+
minItems: 0,
|
|
67784
|
+
maxItems: 50,
|
|
67785
|
+
itemLabel: "Team member",
|
|
67786
|
+
itemLabelSource: "name",
|
|
67787
|
+
description: "Add people to this section."
|
|
67788
|
+
}
|
|
67789
|
+
),
|
|
67790
|
+
ui: {
|
|
67791
|
+
intent: "content",
|
|
67792
|
+
visibleWhen: { field: "source", equals: "manual" }
|
|
67449
67793
|
}
|
|
67450
|
-
|
|
67794
|
+
}
|
|
67451
67795
|
],
|
|
67452
67796
|
layout: gridVariant,
|
|
67453
67797
|
variants: {
|
|
@@ -67473,7 +67817,20 @@ var teamMembersManifest = createBlockManifest({
|
|
|
67473
67817
|
styleTokens: { spacing: "lg" }
|
|
67474
67818
|
});
|
|
67475
67819
|
var teamMembersBlockDefinition = {
|
|
67476
|
-
manifest: teamMembersManifest
|
|
67820
|
+
manifest: teamMembersManifest,
|
|
67821
|
+
dataSchemas: {
|
|
67822
|
+
members: teamMembersDataSchema
|
|
67823
|
+
},
|
|
67824
|
+
dataLoaders: {
|
|
67825
|
+
members: {
|
|
67826
|
+
endpoint: "listPublicTeamMembers",
|
|
67827
|
+
params: {
|
|
67828
|
+
siteId: { $bind: { from: "$root.siteId" } },
|
|
67829
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } }
|
|
67830
|
+
},
|
|
67831
|
+
mode: "server"
|
|
67832
|
+
}
|
|
67833
|
+
}
|
|
67477
67834
|
};
|
|
67478
67835
|
|
|
67479
67836
|
// ../blocks/src/system/blocks/location-map.ts
|
|
@@ -68586,7 +68943,7 @@ var defaultTransforms = createTransformRegistry(builtinTransformDefinitions);
|
|
|
68586
68943
|
|
|
68587
68944
|
// ../blocks/src/system/runtime/resolver.ts
|
|
68588
68945
|
init_node();
|
|
68589
|
-
import
|
|
68946
|
+
import React36 from "react";
|
|
68590
68947
|
init_registry_server();
|
|
68591
68948
|
init_layout();
|
|
68592
68949
|
var META_PATH_TO_STORE_KEY = {
|
|
@@ -68659,7 +69016,7 @@ function readFromSource(source, segments) {
|
|
|
68659
69016
|
return void 0;
|
|
68660
69017
|
}, source);
|
|
68661
69018
|
}
|
|
68662
|
-
function
|
|
69019
|
+
function isPlainObject4(value) {
|
|
68663
69020
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
68664
69021
|
}
|
|
68665
69022
|
function parseRouteEntry(routeId, value) {
|
|
@@ -68669,35 +69026,35 @@ function parseRouteEntry(routeId, value) {
|
|
|
68669
69026
|
if (typeof value === "string") {
|
|
68670
69027
|
return [routeId, value];
|
|
68671
69028
|
}
|
|
68672
|
-
if (
|
|
69029
|
+
if (isPlainObject4(value)) {
|
|
68673
69030
|
return [routeId, value];
|
|
68674
69031
|
}
|
|
68675
69032
|
return null;
|
|
68676
69033
|
}
|
|
68677
69034
|
function extractRouteMapFromViewModel(viewModel) {
|
|
68678
|
-
if (!
|
|
69035
|
+
if (!isPlainObject4(viewModel)) return void 0;
|
|
68679
69036
|
const root = viewModel.$root;
|
|
68680
|
-
if (!
|
|
69037
|
+
if (!isPlainObject4(root)) return void 0;
|
|
68681
69038
|
const routes = root.routes;
|
|
68682
|
-
if (!
|
|
69039
|
+
if (!isPlainObject4(routes)) return void 0;
|
|
68683
69040
|
const entries = Object.entries(routes).map(([routeId, value]) => parseRouteEntry(routeId, value)).filter((entry) => entry !== null);
|
|
68684
69041
|
if (entries.length === 0) return void 0;
|
|
68685
69042
|
return Object.fromEntries(entries);
|
|
68686
69043
|
}
|
|
68687
69044
|
function extractPagesByIdentifierFromViewModel(viewModel) {
|
|
68688
|
-
if (!
|
|
69045
|
+
if (!isPlainObject4(viewModel)) return void 0;
|
|
68689
69046
|
const root = viewModel.$root;
|
|
68690
|
-
if (!
|
|
69047
|
+
if (!isPlainObject4(root)) return void 0;
|
|
68691
69048
|
const pagesByIdentifier = root.pagesByIdentifier;
|
|
68692
|
-
if (!
|
|
69049
|
+
if (!isPlainObject4(pagesByIdentifier)) return void 0;
|
|
68693
69050
|
return pagesByIdentifier;
|
|
68694
69051
|
}
|
|
68695
69052
|
function extractEntriesByIdentifierFromViewModel(viewModel) {
|
|
68696
|
-
if (!
|
|
69053
|
+
if (!isPlainObject4(viewModel)) return void 0;
|
|
68697
69054
|
const root = viewModel.$root;
|
|
68698
|
-
if (!
|
|
69055
|
+
if (!isPlainObject4(root)) return void 0;
|
|
68699
69056
|
const entriesByIdentifier = root.entriesByIdentifier;
|
|
68700
|
-
if (!
|
|
69057
|
+
if (!isPlainObject4(entriesByIdentifier)) return void 0;
|
|
68701
69058
|
return entriesByIdentifier;
|
|
68702
69059
|
}
|
|
68703
69060
|
function parseBinding(raw, origin) {
|
|
@@ -68713,7 +69070,7 @@ function applyTransformsAndFallback(value, binding, context) {
|
|
|
68713
69070
|
const routeMap = context.routes ?? extractRouteMapFromViewModel(context.viewModel);
|
|
68714
69071
|
const pagesByIdentifier = context.pagesByIdentifier ?? extractPagesByIdentifierFromViewModel(context.viewModel);
|
|
68715
69072
|
const entriesByIdentifier = context.entriesByIdentifier ?? extractEntriesByIdentifierFromViewModel(context.viewModel);
|
|
68716
|
-
const root =
|
|
69073
|
+
const root = isPlainObject4(context.viewModel.$root) ? context.viewModel.$root : null;
|
|
68717
69074
|
const stage = root?.previewStage === "preview" ? "preview" : "published";
|
|
68718
69075
|
const transformed = runTransforms(
|
|
68719
69076
|
value,
|
|
@@ -68750,21 +69107,21 @@ function resolveTransformData(context, bindingPath) {
|
|
|
68750
69107
|
const [first] = segments;
|
|
68751
69108
|
if (typeof first === "string" && first !== "$root") {
|
|
68752
69109
|
const namedScope = context.scopes.find((entry) => entry.name === first);
|
|
68753
|
-
if (namedScope &&
|
|
69110
|
+
if (namedScope && isPlainObject4(namedScope.value)) {
|
|
68754
69111
|
return namedScope.value;
|
|
68755
69112
|
}
|
|
68756
69113
|
}
|
|
68757
69114
|
for (let i = context.scopes.length - 1; i >= 0; i -= 1) {
|
|
68758
69115
|
const scope = context.scopes[i];
|
|
68759
|
-
if (scope &&
|
|
69116
|
+
if (scope && isPlainObject4(scope.value)) {
|
|
68760
69117
|
return scope.value;
|
|
68761
69118
|
}
|
|
68762
69119
|
}
|
|
68763
69120
|
const content = context.viewModel.content;
|
|
68764
|
-
if (
|
|
69121
|
+
if (isPlainObject4(content)) {
|
|
68765
69122
|
return content;
|
|
68766
69123
|
}
|
|
68767
|
-
if (
|
|
69124
|
+
if (isPlainObject4(context.viewModel)) {
|
|
68768
69125
|
return context.viewModel;
|
|
68769
69126
|
}
|
|
68770
69127
|
return void 0;
|
|
@@ -68899,7 +69256,7 @@ function getNestedBinding(bindings, path) {
|
|
|
68899
69256
|
const segments = path.split(".");
|
|
68900
69257
|
let current = bindings;
|
|
68901
69258
|
for (const segment of segments) {
|
|
68902
|
-
if (!
|
|
69259
|
+
if (!isPlainObject4(current)) return void 0;
|
|
68903
69260
|
current = current[segment];
|
|
68904
69261
|
}
|
|
68905
69262
|
return current;
|
|
@@ -68913,7 +69270,7 @@ function resolveBindingToEditorPath(fieldName, bindings, editableRouteMetadataFi
|
|
|
68913
69270
|
};
|
|
68914
69271
|
const binding = bindings[fieldName] ?? getNestedBinding(bindings, fieldName);
|
|
68915
69272
|
if (!binding) return null;
|
|
68916
|
-
if (
|
|
69273
|
+
if (isPlainObject4(binding) && "source" in binding) {
|
|
68917
69274
|
const source = binding.source;
|
|
68918
69275
|
if (source === "field" && "path" in binding) {
|
|
68919
69276
|
const path = binding.path;
|
|
@@ -68932,7 +69289,7 @@ function resolveBindingToEditorPath(fieldName, bindings, editableRouteMetadataFi
|
|
|
68932
69289
|
if (typeof option === "string") {
|
|
68933
69290
|
return `content.${option}`;
|
|
68934
69291
|
}
|
|
68935
|
-
if (
|
|
69292
|
+
if (isPlainObject4(option) && "source" in option) {
|
|
68936
69293
|
const optSource = option.source;
|
|
68937
69294
|
if (optSource === "field" && "path" in option) {
|
|
68938
69295
|
const path = option.path;
|
|
@@ -68977,7 +69334,7 @@ function injectEditorPath(props2, node, parsedBinding, context) {
|
|
|
68977
69334
|
}
|
|
68978
69335
|
}
|
|
68979
69336
|
const root = context.viewModel?.$root;
|
|
68980
|
-
const isEntryTemplatePage =
|
|
69337
|
+
const isEntryTemplatePage = isPlainObject4(root) && root.contentEntry != null;
|
|
68981
69338
|
if (isEntryTemplatePage && context.pathBase) return props2;
|
|
68982
69339
|
const prefix = context.pathBase ?? "";
|
|
68983
69340
|
const injectedPath = `${prefix}${fieldPath}`;
|
|
@@ -69006,7 +69363,7 @@ function injectMediaSlotPath(props2, node, parsedBinding, context) {
|
|
|
69006
69363
|
if (entryPath) return props2;
|
|
69007
69364
|
}
|
|
69008
69365
|
const root = context.viewModel?.$root;
|
|
69009
|
-
const isEntryTemplatePage =
|
|
69366
|
+
const isEntryTemplatePage = isPlainObject4(root) && root.contentEntry != null;
|
|
69010
69367
|
if (isEntryTemplatePage && context.pathBase) return props2;
|
|
69011
69368
|
return {
|
|
69012
69369
|
...props2,
|
|
@@ -69059,7 +69416,7 @@ function resolveNode2(node, context, indexFallback) {
|
|
|
69059
69416
|
blockContent: context.blockContent,
|
|
69060
69417
|
fragmentRegistry: context.fragmentRegistry
|
|
69061
69418
|
};
|
|
69062
|
-
return
|
|
69419
|
+
return React36.createElement(component, elementProps, ...children);
|
|
69063
69420
|
}
|
|
69064
69421
|
function resolveValue(value, context) {
|
|
69065
69422
|
if (value && typeof value === "object" && "$bind" in value) {
|
|
@@ -69110,7 +69467,7 @@ function getNodeProps(node) {
|
|
|
69110
69467
|
if (key.startsWith("$")) continue;
|
|
69111
69468
|
legacy[key] = value;
|
|
69112
69469
|
}
|
|
69113
|
-
const props2 =
|
|
69470
|
+
const props2 = isPlainObject4(node.props) ? node.props : {};
|
|
69114
69471
|
return { ...legacy, ...props2 };
|
|
69115
69472
|
}
|
|
69116
69473
|
function resolveTree(node, options) {
|
|
@@ -69146,7 +69503,7 @@ function getDefaultComponentRegistry() {
|
|
|
69146
69503
|
var defaultComponentRegistry = getDefaultComponentRegistry();
|
|
69147
69504
|
|
|
69148
69505
|
// ../blocks/src/system/componentFactory.ts
|
|
69149
|
-
import
|
|
69506
|
+
import React37 from "react";
|
|
69150
69507
|
init_blockOverrides();
|
|
69151
69508
|
function resolveBlockVariantKey(manifest, content) {
|
|
69152
69509
|
return resolveVariantKey(manifest, content);
|
|
@@ -69265,7 +69622,7 @@ function renderBlock(manifest, content, options = {}) {
|
|
|
69265
69622
|
const resolvedRegistry = options.registry ?? getDefaultComponentRegistry();
|
|
69266
69623
|
const resolvedTheme = options.theme ?? defaultThemeTokens;
|
|
69267
69624
|
const cleanKind = manifest.name.replace(/^block\./, "");
|
|
69268
|
-
const componentElement =
|
|
69625
|
+
const componentElement = React37.createElement(Component2, {
|
|
69269
69626
|
content,
|
|
69270
69627
|
data: options.data,
|
|
69271
69628
|
registry: resolvedRegistry,
|
|
@@ -69281,7 +69638,7 @@ function renderBlock(manifest, content, options = {}) {
|
|
|
69281
69638
|
return componentElement;
|
|
69282
69639
|
}
|
|
69283
69640
|
const styleGroup = typeof content.styleGroup === "string" ? content.styleGroup : void 0;
|
|
69284
|
-
return
|
|
69641
|
+
return React37.createElement(
|
|
69285
69642
|
"div",
|
|
69286
69643
|
{
|
|
69287
69644
|
className: `block-${cleanKind}`,
|
|
@@ -69464,7 +69821,7 @@ function PageRenderer({
|
|
|
69464
69821
|
customBlocks,
|
|
69465
69822
|
isEditingMode = false
|
|
69466
69823
|
}) {
|
|
69467
|
-
const imageResolveContext =
|
|
69824
|
+
const imageResolveContext = React38.useMemo(
|
|
69468
69825
|
() => resolvePageRendererImageResolveContext(dataContext),
|
|
69469
69826
|
[
|
|
69470
69827
|
dataContext?.imageResolveContext,
|
|
@@ -69575,7 +69932,7 @@ function getCachedManifestValidator(manifest, options = {}) {
|
|
|
69575
69932
|
manifestValidatorCache.set(manifest, { ...cacheEntry, [mode]: created });
|
|
69576
69933
|
return created;
|
|
69577
69934
|
}
|
|
69578
|
-
var MemoBlockSection =
|
|
69935
|
+
var MemoBlockSection = React38.memo(
|
|
69579
69936
|
function MemoBlockSection2({
|
|
69580
69937
|
themeTokens,
|
|
69581
69938
|
themeConfig,
|
|
@@ -71226,7 +71583,7 @@ function ThemeScope({
|
|
|
71226
71583
|
}
|
|
71227
71584
|
|
|
71228
71585
|
// ../theme-core/src/ThemeFontLoader.tsx
|
|
71229
|
-
import * as
|
|
71586
|
+
import * as React39 from "react";
|
|
71230
71587
|
init_selectorUtils();
|
|
71231
71588
|
import { Fragment as Fragment24, jsx as jsx157, jsxs as jsxs103 } from "react/jsx-runtime";
|
|
71232
71589
|
|
|
@@ -71245,35 +71602,35 @@ init_blocks();
|
|
|
71245
71602
|
// ../blocks/src/system/runtime/bindings.ts
|
|
71246
71603
|
init_node();
|
|
71247
71604
|
var shouldLogWarnings = isNonProductionEnv();
|
|
71248
|
-
function
|
|
71605
|
+
function isPlainObject5(value) {
|
|
71249
71606
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
71250
71607
|
}
|
|
71251
71608
|
function isRouteMapEntry(value) {
|
|
71252
71609
|
if (typeof value === "string") return true;
|
|
71253
|
-
return
|
|
71610
|
+
return isPlainObject5(value);
|
|
71254
71611
|
}
|
|
71255
71612
|
function isRouteMap(value) {
|
|
71256
|
-
if (!
|
|
71613
|
+
if (!isPlainObject5(value)) return false;
|
|
71257
71614
|
return Object.values(value).every(isRouteMapEntry);
|
|
71258
71615
|
}
|
|
71259
71616
|
function isPageIdentifierMap(value) {
|
|
71260
|
-
if (!
|
|
71617
|
+
if (!isPlainObject5(value)) return false;
|
|
71261
71618
|
return Object.values(value).every((v) => typeof v === "string");
|
|
71262
71619
|
}
|
|
71263
71620
|
function isEntryIdentifierMap(value) {
|
|
71264
|
-
if (!
|
|
71621
|
+
if (!isPlainObject5(value)) return false;
|
|
71265
71622
|
for (const v of Object.values(value)) {
|
|
71266
|
-
if (!
|
|
71623
|
+
if (!isPlainObject5(v)) return false;
|
|
71267
71624
|
if (!Object.values(v).every((inner) => typeof inner === "string")) return false;
|
|
71268
71625
|
}
|
|
71269
71626
|
return true;
|
|
71270
71627
|
}
|
|
71271
71628
|
function buildTransformContext(vm) {
|
|
71272
71629
|
const root = vm.$root;
|
|
71273
|
-
const stage = root &&
|
|
71274
|
-
const routes = root &&
|
|
71275
|
-
const pagesByIdentifier = root &&
|
|
71276
|
-
const entriesByIdentifier = root &&
|
|
71630
|
+
const stage = root && isPlainObject5(root) && root.previewStage === "preview" ? "preview" : "published";
|
|
71631
|
+
const routes = root && isPlainObject5(root) && isRouteMap(root.routes) ? root.routes : void 0;
|
|
71632
|
+
const pagesByIdentifier = root && isPlainObject5(root) && isPageIdentifierMap(root.pagesByIdentifier) ? root.pagesByIdentifier : void 0;
|
|
71633
|
+
const entriesByIdentifier = root && isPlainObject5(root) && isEntryIdentifierMap(root.entriesByIdentifier) ? root.entriesByIdentifier : void 0;
|
|
71277
71634
|
return {
|
|
71278
71635
|
theme: defaultThemeTokens,
|
|
71279
71636
|
stage,
|
|
@@ -71444,6 +71801,7 @@ function coercePayload(payload) {
|
|
|
71444
71801
|
if ("form" in record && typeof record.form !== "function") return record.form;
|
|
71445
71802
|
if ("entries" in record && typeof record.entries !== "function") return record.entries;
|
|
71446
71803
|
if ("services" in record && typeof record.services !== "function") return record.services;
|
|
71804
|
+
if ("teamMembers" in record && typeof record.teamMembers !== "function") return record.teamMembers;
|
|
71447
71805
|
}
|
|
71448
71806
|
return payload;
|
|
71449
71807
|
}
|
|
@@ -71524,6 +71882,7 @@ var SUPPORTED_LOADER_ENDPOINTS = [
|
|
|
71524
71882
|
"listPublicEvents",
|
|
71525
71883
|
"getPublicEventDetails",
|
|
71526
71884
|
"listPublicCourses",
|
|
71885
|
+
"listPublicTeamMembers",
|
|
71527
71886
|
"listPublicProducts",
|
|
71528
71887
|
"listPublicPasses",
|
|
71529
71888
|
"listPublicMemberships",
|
|
@@ -71580,6 +71939,10 @@ function normalizeLoaderParams(endpoint, params, context) {
|
|
|
71580
71939
|
ensureSiteId(out, context);
|
|
71581
71940
|
return out;
|
|
71582
71941
|
}
|
|
71942
|
+
if (endpoint === "listPublicTeamMembers") {
|
|
71943
|
+
ensureSiteId(out, context);
|
|
71944
|
+
return out;
|
|
71945
|
+
}
|
|
71583
71946
|
if (endpoint === "getPublishedEntryPreview") {
|
|
71584
71947
|
ensureSiteId(out, context);
|
|
71585
71948
|
return out;
|
|
@@ -71631,7 +71994,7 @@ function BlocksIslandsHydrator(props2 = {}) {
|
|
|
71631
71994
|
}
|
|
71632
71995
|
|
|
71633
71996
|
// src/rendering/blocks-page-renderer.ts
|
|
71634
|
-
import * as
|
|
71997
|
+
import * as React40 from "react";
|
|
71635
71998
|
|
|
71636
71999
|
// ../blocks/src/rendering/server.ts
|
|
71637
72000
|
init_schema2();
|
|
@@ -71711,7 +72074,7 @@ function toBlocksBlockOverrides(overrides) {
|
|
|
71711
72074
|
for (const [key, OverrideComponent] of Object.entries(overrides)) {
|
|
71712
72075
|
result[key] = function BlocksOverrideAdapter(props2) {
|
|
71713
72076
|
const sdkOverride = OverrideComponent;
|
|
71714
|
-
return
|
|
72077
|
+
return React40.createElement(sdkOverride, props2);
|
|
71715
72078
|
};
|
|
71716
72079
|
}
|
|
71717
72080
|
return result;
|
|
@@ -71726,15 +72089,15 @@ function PageRenderer2(props2) {
|
|
|
71726
72089
|
sdkConfig: blocksSdkConfig,
|
|
71727
72090
|
customBlocks: normalizeSdkCustomBlocks(props2.customBlocks)
|
|
71728
72091
|
};
|
|
71729
|
-
return
|
|
72092
|
+
return React40.createElement(PageRenderer, blocksProps);
|
|
71730
72093
|
}
|
|
71731
72094
|
|
|
71732
72095
|
// src/rendering/blocks-theme-scope.ts
|
|
71733
|
-
import * as
|
|
72096
|
+
import * as React41 from "react";
|
|
71734
72097
|
function ThemeScope2(props2) {
|
|
71735
72098
|
const { theme, children, ...rest } = props2;
|
|
71736
72099
|
const blocksTheme = parseBlocksTheme(theme);
|
|
71737
|
-
return
|
|
72100
|
+
return React41.createElement(ThemeScope, {
|
|
71738
72101
|
...rest,
|
|
71739
72102
|
theme: blocksTheme,
|
|
71740
72103
|
children: children ?? null
|
|
@@ -73258,13 +73621,150 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
73258
73621
|
"server:internal_error"
|
|
73259
73622
|
]
|
|
73260
73623
|
},
|
|
73261
|
-
|
|
73624
|
+
removeAppointmentResource: {
|
|
73262
73625
|
path: "/sites/{siteId}/bookings/resources/{resourceId}",
|
|
73263
73626
|
method: "DELETE",
|
|
73264
73627
|
auth: "user",
|
|
73265
73628
|
responseKind: "json",
|
|
73266
73629
|
errors: ["resource:not_found", "server:internal_error"]
|
|
73267
73630
|
},
|
|
73631
|
+
createTeamMemberProfile: {
|
|
73632
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
|
|
73633
|
+
method: "POST",
|
|
73634
|
+
auth: "user",
|
|
73635
|
+
responseKind: "json",
|
|
73636
|
+
errors: [
|
|
73637
|
+
"validation:invalid_input",
|
|
73638
|
+
"resource:not_found",
|
|
73639
|
+
"resource:conflict",
|
|
73640
|
+
"server:internal_error"
|
|
73641
|
+
]
|
|
73642
|
+
},
|
|
73643
|
+
updateTeamMemberProfilePolicy: {
|
|
73644
|
+
path: "/sites/{siteId}/bookings/resources/profile-policy",
|
|
73645
|
+
method: "PUT",
|
|
73646
|
+
auth: "user",
|
|
73647
|
+
responseKind: "json",
|
|
73648
|
+
errors: ["validation:invalid_input", "server:internal_error"]
|
|
73649
|
+
},
|
|
73650
|
+
updateTeamMemberProfileContent: {
|
|
73651
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
|
|
73652
|
+
method: "PUT",
|
|
73653
|
+
tags: [
|
|
73654
|
+
"site-{siteId}",
|
|
73655
|
+
"content-{siteId}-team-member",
|
|
73656
|
+
"content-entry-{entryId}"
|
|
73657
|
+
],
|
|
73658
|
+
auth: "user",
|
|
73659
|
+
responseKind: "json",
|
|
73660
|
+
errors: [
|
|
73661
|
+
"validation:invalid_input",
|
|
73662
|
+
"resource:not_found",
|
|
73663
|
+
"resource:conflict",
|
|
73664
|
+
"server:internal_error"
|
|
73665
|
+
]
|
|
73666
|
+
},
|
|
73667
|
+
publishTeamMemberProfile: {
|
|
73668
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
|
|
73669
|
+
method: "POST",
|
|
73670
|
+
tags: [
|
|
73671
|
+
"site-{siteId}",
|
|
73672
|
+
"content-{siteId}-team-member",
|
|
73673
|
+
"content-entry-{entryId}"
|
|
73674
|
+
],
|
|
73675
|
+
auth: "user",
|
|
73676
|
+
responseKind: "json",
|
|
73677
|
+
errors: [
|
|
73678
|
+
"validation:invalid_input",
|
|
73679
|
+
"resource:not_found",
|
|
73680
|
+
"server:internal_error"
|
|
73681
|
+
]
|
|
73682
|
+
},
|
|
73683
|
+
discardTeamMemberProfileDraft: {
|
|
73684
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
|
|
73685
|
+
method: "POST",
|
|
73686
|
+
tags: [
|
|
73687
|
+
"site-{siteId}",
|
|
73688
|
+
"content-{siteId}-team-member",
|
|
73689
|
+
"content-entry-{entryId}"
|
|
73690
|
+
],
|
|
73691
|
+
auth: "user",
|
|
73692
|
+
responseKind: "json",
|
|
73693
|
+
errors: [
|
|
73694
|
+
"validation:invalid_input",
|
|
73695
|
+
"resource:not_found",
|
|
73696
|
+
"resource:conflict",
|
|
73697
|
+
"server:internal_error"
|
|
73698
|
+
]
|
|
73699
|
+
},
|
|
73700
|
+
unpublishTeamMemberProfile: {
|
|
73701
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
|
|
73702
|
+
method: "POST",
|
|
73703
|
+
tags: [
|
|
73704
|
+
"site-{siteId}",
|
|
73705
|
+
"content-{siteId}-team-member",
|
|
73706
|
+
"content-entry-{entryId}"
|
|
73707
|
+
],
|
|
73708
|
+
auth: "user",
|
|
73709
|
+
responseKind: "json",
|
|
73710
|
+
errors: [
|
|
73711
|
+
"validation:invalid_input",
|
|
73712
|
+
"resource:not_found",
|
|
73713
|
+
"resource:conflict",
|
|
73714
|
+
"server:internal_error"
|
|
73715
|
+
]
|
|
73716
|
+
},
|
|
73717
|
+
scheduleTeamMemberProfile: {
|
|
73718
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
|
|
73719
|
+
method: "POST",
|
|
73720
|
+
tags: [
|
|
73721
|
+
"site-{siteId}",
|
|
73722
|
+
"content-{siteId}-team-member",
|
|
73723
|
+
"content-entry-{entryId}"
|
|
73724
|
+
],
|
|
73725
|
+
auth: "user",
|
|
73726
|
+
responseKind: "json",
|
|
73727
|
+
errors: [
|
|
73728
|
+
"validation:invalid_input",
|
|
73729
|
+
"resource:not_found",
|
|
73730
|
+
"resource:conflict",
|
|
73731
|
+
"server:internal_error"
|
|
73732
|
+
]
|
|
73733
|
+
},
|
|
73734
|
+
cancelScheduledTeamMemberProfile: {
|
|
73735
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
|
|
73736
|
+
method: "DELETE",
|
|
73737
|
+
tags: [
|
|
73738
|
+
"site-{siteId}",
|
|
73739
|
+
"content-{siteId}-team-member",
|
|
73740
|
+
"content-entry-{entryId}"
|
|
73741
|
+
],
|
|
73742
|
+
auth: "user",
|
|
73743
|
+
responseKind: "json",
|
|
73744
|
+
errors: [
|
|
73745
|
+
"validation:invalid_input",
|
|
73746
|
+
"resource:not_found",
|
|
73747
|
+
"resource:conflict",
|
|
73748
|
+
"server:internal_error"
|
|
73749
|
+
]
|
|
73750
|
+
},
|
|
73751
|
+
updateTeamMemberProfileRouteMetadata: {
|
|
73752
|
+
path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
|
|
73753
|
+
method: "PATCH",
|
|
73754
|
+
tags: [
|
|
73755
|
+
TAG_TEMPLATES.siteCollection,
|
|
73756
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
73757
|
+
TAG_TEMPLATES.routeById
|
|
73758
|
+
],
|
|
73759
|
+
auth: "user",
|
|
73760
|
+
responseKind: "json",
|
|
73761
|
+
errors: [
|
|
73762
|
+
"validation:invalid_input",
|
|
73763
|
+
"resource:not_found",
|
|
73764
|
+
"resource:conflict",
|
|
73765
|
+
"server:internal_error"
|
|
73766
|
+
]
|
|
73767
|
+
},
|
|
73268
73768
|
listAppointmentServices: {
|
|
73269
73769
|
path: "/sites/{siteId}/bookings/services",
|
|
73270
73770
|
method: "GET",
|
|
@@ -75638,6 +76138,15 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
75638
76138
|
auth: "public",
|
|
75639
76139
|
responseKind: "json"
|
|
75640
76140
|
},
|
|
76141
|
+
listPublicTeamMembers: {
|
|
76142
|
+
path: "/public/sites/{siteId}/team-members",
|
|
76143
|
+
method: "GET",
|
|
76144
|
+
revalidate: 60,
|
|
76145
|
+
tags: ["public-team-members-{siteId}"],
|
|
76146
|
+
errors: [],
|
|
76147
|
+
auth: "public",
|
|
76148
|
+
responseKind: "json"
|
|
76149
|
+
},
|
|
75641
76150
|
getPublicCourse: {
|
|
75642
76151
|
path: "/public/sites/{siteId}/courses/{courseId}",
|
|
75643
76152
|
method: "GET",
|
|
@@ -77929,60 +78438,60 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
77929
78438
|
};
|
|
77930
78439
|
|
|
77931
78440
|
// ../api/src/navigation/contracts.ts
|
|
77932
|
-
import { z as
|
|
77933
|
-
var portalLinkPayloadSchema =
|
|
77934
|
-
kind:
|
|
77935
|
-
path:
|
|
77936
|
-
labels:
|
|
77937
|
-
loggedOut:
|
|
77938
|
-
loggedIn:
|
|
78441
|
+
import { z as z63 } from "zod";
|
|
78442
|
+
var portalLinkPayloadSchema = z63.object({
|
|
78443
|
+
kind: z63.literal("portal"),
|
|
78444
|
+
path: z63.string().trim().startsWith("/").optional(),
|
|
78445
|
+
labels: z63.object({
|
|
78446
|
+
loggedOut: z63.string().trim().min(1).optional(),
|
|
78447
|
+
loggedIn: z63.string().trim().min(1).optional()
|
|
77939
78448
|
}).optional()
|
|
77940
78449
|
});
|
|
77941
|
-
var cartLinkLabelConfigSchema =
|
|
77942
|
-
|
|
77943
|
-
kind:
|
|
78450
|
+
var cartLinkLabelConfigSchema = z63.discriminatedUnion("kind", [
|
|
78451
|
+
z63.object({
|
|
78452
|
+
kind: z63.literal("icon-only")
|
|
77944
78453
|
}),
|
|
77945
|
-
|
|
77946
|
-
kind:
|
|
77947
|
-
label:
|
|
78454
|
+
z63.object({
|
|
78455
|
+
kind: z63.literal("icon-with-label"),
|
|
78456
|
+
label: z63.string().trim().min(1)
|
|
77948
78457
|
})
|
|
77949
78458
|
]);
|
|
77950
|
-
var cartLinkPayloadSchema =
|
|
77951
|
-
kind:
|
|
77952
|
-
badge:
|
|
78459
|
+
var cartLinkPayloadSchema = z63.object({
|
|
78460
|
+
kind: z63.literal("cart"),
|
|
78461
|
+
badge: z63.enum(["show-count", "hidden"]),
|
|
77953
78462
|
label: cartLinkLabelConfigSchema
|
|
77954
78463
|
});
|
|
77955
|
-
var internalLinkPayloadSchema =
|
|
77956
|
-
kind:
|
|
77957
|
-
routeId:
|
|
77958
|
-
entityId:
|
|
77959
|
-
entityType:
|
|
77960
|
-
href:
|
|
77961
|
-
title:
|
|
77962
|
-
typeLabel:
|
|
77963
|
-
contentTypeKey:
|
|
77964
|
-
contentTypeName:
|
|
77965
|
-
updatedAt:
|
|
78464
|
+
var internalLinkPayloadSchema = z63.object({
|
|
78465
|
+
kind: z63.literal("internal"),
|
|
78466
|
+
routeId: z63.string().uuid(),
|
|
78467
|
+
entityId: z63.string().uuid(),
|
|
78468
|
+
entityType: z63.enum(["page", "content"]),
|
|
78469
|
+
href: z63.string().min(1),
|
|
78470
|
+
title: z63.string().min(1),
|
|
78471
|
+
typeLabel: z63.string().min(1),
|
|
78472
|
+
contentTypeKey: z63.string().nullable().optional(),
|
|
78473
|
+
contentTypeName: z63.string().nullable().optional(),
|
|
78474
|
+
updatedAt: z63.string().nullable().optional()
|
|
77966
78475
|
}).passthrough();
|
|
77967
|
-
var externalLinkSchema2 =
|
|
77968
|
-
kind:
|
|
78476
|
+
var externalLinkSchema2 = z63.object({
|
|
78477
|
+
kind: z63.literal("external"),
|
|
77969
78478
|
// Navigation external links are expected to be absolute URLs.
|
|
77970
|
-
href:
|
|
78479
|
+
href: z63.string().url()
|
|
77971
78480
|
});
|
|
77972
|
-
var customLinkSchema2 =
|
|
77973
|
-
kind:
|
|
77974
|
-
href:
|
|
78481
|
+
var customLinkSchema2 = z63.object({
|
|
78482
|
+
kind: z63.literal("url"),
|
|
78483
|
+
href: z63.string().min(1)
|
|
77975
78484
|
});
|
|
77976
|
-
var pageLinkSchema2 =
|
|
77977
|
-
kind:
|
|
77978
|
-
identifier:
|
|
78485
|
+
var pageLinkSchema2 = z63.object({
|
|
78486
|
+
kind: z63.literal("page"),
|
|
78487
|
+
identifier: z63.string().min(1)
|
|
77979
78488
|
});
|
|
77980
|
-
var entryLinkSchema2 =
|
|
77981
|
-
kind:
|
|
77982
|
-
contentType:
|
|
77983
|
-
identifier:
|
|
78489
|
+
var entryLinkSchema2 = z63.object({
|
|
78490
|
+
kind: z63.literal("entry"),
|
|
78491
|
+
contentType: z63.string().min(1),
|
|
78492
|
+
identifier: z63.string().min(1)
|
|
77984
78493
|
});
|
|
77985
|
-
var linkPayloadSchema =
|
|
78494
|
+
var linkPayloadSchema = z63.discriminatedUnion("kind", [
|
|
77986
78495
|
internalLinkPayloadSchema,
|
|
77987
78496
|
pageLinkSchema2,
|
|
77988
78497
|
entryLinkSchema2,
|
|
@@ -77999,7 +78508,7 @@ var navigationLinkInputSchemaOptions = [
|
|
|
77999
78508
|
portalLinkPayloadSchema,
|
|
78000
78509
|
cartLinkPayloadSchema
|
|
78001
78510
|
];
|
|
78002
|
-
var navigationLinkInputSchema =
|
|
78511
|
+
var navigationLinkInputSchema = z63.discriminatedUnion(
|
|
78003
78512
|
"kind",
|
|
78004
78513
|
navigationLinkInputSchemaOptions
|
|
78005
78514
|
);
|
|
@@ -78007,21 +78516,21 @@ var navigationLinkInputSchema = z61.discriminatedUnion(
|
|
|
78007
78516
|
// ../api/src/sdkConfig/contracts.ts
|
|
78008
78517
|
init_schema2();
|
|
78009
78518
|
init_schema();
|
|
78010
|
-
import { z as
|
|
78519
|
+
import { z as z64 } from "zod";
|
|
78011
78520
|
function unsafeRetypeZodSchema(schema) {
|
|
78012
78521
|
return schema;
|
|
78013
78522
|
}
|
|
78014
|
-
var navIdListSchema =
|
|
78523
|
+
var navIdListSchema = z64.preprocess((value) => {
|
|
78015
78524
|
if (!Array.isArray(value)) return void 0;
|
|
78016
78525
|
const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
|
|
78017
78526
|
return filtered.length > 0 ? filtered : void 0;
|
|
78018
|
-
},
|
|
78019
|
-
var dashboardNavVisibilityBaseSchema =
|
|
78020
|
-
mode:
|
|
78527
|
+
}, z64.array(z64.string()).max(200).optional());
|
|
78528
|
+
var dashboardNavVisibilityBaseSchema = z64.object({
|
|
78529
|
+
mode: z64.enum(["augment", "restrict"]).optional(),
|
|
78021
78530
|
allowIds: navIdListSchema,
|
|
78022
78531
|
denyIds: navIdListSchema
|
|
78023
78532
|
}).strip();
|
|
78024
|
-
var dashboardNavVisibilityRolesSchema =
|
|
78533
|
+
var dashboardNavVisibilityRolesSchema = z64.object({
|
|
78025
78534
|
administrator: dashboardNavVisibilityBaseSchema.optional(),
|
|
78026
78535
|
editor: dashboardNavVisibilityBaseSchema.optional(),
|
|
78027
78536
|
team_member: dashboardNavVisibilityBaseSchema.optional(),
|
|
@@ -78030,57 +78539,57 @@ var dashboardNavVisibilityRolesSchema = z62.object({
|
|
|
78030
78539
|
var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
|
|
78031
78540
|
roles: dashboardNavVisibilityRolesSchema
|
|
78032
78541
|
}).strip();
|
|
78033
|
-
var dashboardNavigationConfigSchema =
|
|
78542
|
+
var dashboardNavigationConfigSchema = z64.object({
|
|
78034
78543
|
siteNav: dashboardNavVisibilitySchema.optional(),
|
|
78035
78544
|
settingsNav: dashboardNavVisibilitySchema.optional()
|
|
78036
78545
|
}).strip();
|
|
78037
|
-
var dashboardConfigSchema =
|
|
78038
|
-
previewEditingEnabled:
|
|
78546
|
+
var dashboardConfigSchema = z64.object({
|
|
78547
|
+
previewEditingEnabled: z64.boolean().optional(),
|
|
78039
78548
|
navigation: dashboardNavigationConfigSchema.optional()
|
|
78040
78549
|
}).strip();
|
|
78041
78550
|
var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
|
|
78042
78551
|
var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
|
|
78043
|
-
var sdkLoaderEndpointSchema =
|
|
78044
|
-
var loaderParamBindingSchema =
|
|
78045
|
-
$bind:
|
|
78046
|
-
from:
|
|
78047
|
-
fallback:
|
|
78552
|
+
var sdkLoaderEndpointSchema = z64.enum(SUPPORTED_LOADER_ENDPOINTS);
|
|
78553
|
+
var loaderParamBindingSchema = z64.object({
|
|
78554
|
+
$bind: z64.object({
|
|
78555
|
+
from: z64.string().min(1, "Binding path is required"),
|
|
78556
|
+
fallback: z64.string().optional()
|
|
78048
78557
|
})
|
|
78049
78558
|
});
|
|
78050
|
-
var loaderParamValueSchema =
|
|
78051
|
-
|
|
78052
|
-
|
|
78053
|
-
|
|
78559
|
+
var loaderParamValueSchema = z64.union([
|
|
78560
|
+
z64.string(),
|
|
78561
|
+
z64.number(),
|
|
78562
|
+
z64.boolean(),
|
|
78054
78563
|
loaderParamBindingSchema
|
|
78055
78564
|
]);
|
|
78056
|
-
var sdkConfigLoaderSchema =
|
|
78565
|
+
var sdkConfigLoaderSchema = z64.object({
|
|
78057
78566
|
endpoint: sdkLoaderEndpointSchema,
|
|
78058
|
-
params:
|
|
78059
|
-
mode:
|
|
78567
|
+
params: z64.record(z64.string(), loaderParamValueSchema),
|
|
78568
|
+
mode: z64.enum(["server", "client"]).default("server")
|
|
78060
78569
|
});
|
|
78061
|
-
var sdkDataLoadersSchema =
|
|
78062
|
-
var sdkCustomBlockIdSchema =
|
|
78570
|
+
var sdkDataLoadersSchema = z64.record(z64.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
|
|
78571
|
+
var sdkCustomBlockIdSchema = z64.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
|
|
78063
78572
|
message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
|
|
78064
78573
|
}).transform((value) => value);
|
|
78065
|
-
var sdkCustomBlockInputSchema =
|
|
78574
|
+
var sdkCustomBlockInputSchema = z64.object({
|
|
78066
78575
|
id: sdkCustomBlockIdSchema,
|
|
78067
|
-
title:
|
|
78068
|
-
titleSource:
|
|
78069
|
-
description:
|
|
78576
|
+
title: z64.string().min(1),
|
|
78577
|
+
titleSource: z64.union([z64.string().min(1), z64.array(z64.string().min(1)).min(1)]).optional(),
|
|
78578
|
+
description: z64.string().optional(),
|
|
78070
78579
|
category: blockCategoryEnum,
|
|
78071
|
-
icon:
|
|
78072
|
-
tags:
|
|
78580
|
+
icon: z64.string().optional(),
|
|
78581
|
+
tags: z64.array(z64.string()).optional(),
|
|
78073
78582
|
fields: fieldDefinitionInputSchema.array().min(1),
|
|
78074
78583
|
dataLoaders: sdkDataLoadersSchema,
|
|
78075
78584
|
layout: NodeSchema.optional(),
|
|
78076
|
-
variants:
|
|
78077
|
-
defaultVariant:
|
|
78078
|
-
variantOptions:
|
|
78079
|
-
|
|
78080
|
-
|
|
78081
|
-
label:
|
|
78082
|
-
description:
|
|
78083
|
-
icon:
|
|
78585
|
+
variants: z64.record(z64.string().min(1), NodeSchema).optional(),
|
|
78586
|
+
defaultVariant: z64.string().min(1).optional(),
|
|
78587
|
+
variantOptions: z64.record(
|
|
78588
|
+
z64.string().min(1),
|
|
78589
|
+
z64.object({
|
|
78590
|
+
label: z64.string().min(1).optional(),
|
|
78591
|
+
description: z64.string().min(1).optional(),
|
|
78592
|
+
icon: z64.string().min(1).optional()
|
|
78084
78593
|
})
|
|
78085
78594
|
).optional()
|
|
78086
78595
|
}).superRefine((data, ctx) => {
|
|
@@ -78090,7 +78599,7 @@ var sdkCustomBlockInputSchema = z62.object({
|
|
|
78090
78599
|
const exists = data.fields.some((field) => field.id === source);
|
|
78091
78600
|
if (!exists) {
|
|
78092
78601
|
ctx.addIssue({
|
|
78093
|
-
code:
|
|
78602
|
+
code: z64.ZodIssueCode.custom,
|
|
78094
78603
|
message: `titleSource must reference a valid field ID (got "${source}")`,
|
|
78095
78604
|
path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
|
|
78096
78605
|
});
|
|
@@ -78099,7 +78608,7 @@ var sdkCustomBlockInputSchema = z62.object({
|
|
|
78099
78608
|
}
|
|
78100
78609
|
if (data.layout && data.variants) {
|
|
78101
78610
|
ctx.addIssue({
|
|
78102
|
-
code:
|
|
78611
|
+
code: z64.ZodIssueCode.custom,
|
|
78103
78612
|
message: "Custom block must define either `layout` or `variants`, not both",
|
|
78104
78613
|
path: ["variants"]
|
|
78105
78614
|
});
|
|
@@ -78108,14 +78617,14 @@ var sdkCustomBlockInputSchema = z62.object({
|
|
|
78108
78617
|
const keys = Object.keys(data.variants);
|
|
78109
78618
|
if (keys.length === 0) {
|
|
78110
78619
|
ctx.addIssue({
|
|
78111
|
-
code:
|
|
78620
|
+
code: z64.ZodIssueCode.custom,
|
|
78112
78621
|
message: "`variants` must contain at least one variant key",
|
|
78113
78622
|
path: ["variants"]
|
|
78114
78623
|
});
|
|
78115
78624
|
}
|
|
78116
78625
|
if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
|
|
78117
78626
|
ctx.addIssue({
|
|
78118
|
-
code:
|
|
78627
|
+
code: z64.ZodIssueCode.custom,
|
|
78119
78628
|
message: "`defaultVariant` must be a key present in `variants`",
|
|
78120
78629
|
path: ["defaultVariant"]
|
|
78121
78630
|
});
|
|
@@ -78124,7 +78633,7 @@ var sdkCustomBlockInputSchema = z62.object({
|
|
|
78124
78633
|
for (const key of Object.keys(data.variantOptions)) {
|
|
78125
78634
|
if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
|
|
78126
78635
|
ctx.addIssue({
|
|
78127
|
-
code:
|
|
78636
|
+
code: z64.ZodIssueCode.custom,
|
|
78128
78637
|
message: "`variantOptions` key must exist in `variants`",
|
|
78129
78638
|
path: ["variantOptions", key]
|
|
78130
78639
|
});
|
|
@@ -78133,74 +78642,74 @@ var sdkCustomBlockInputSchema = z62.object({
|
|
|
78133
78642
|
}
|
|
78134
78643
|
}
|
|
78135
78644
|
});
|
|
78136
|
-
var sdkBlockFieldExtensionInputSchema =
|
|
78645
|
+
var sdkBlockFieldExtensionInputSchema = z64.object({
|
|
78137
78646
|
fields: fieldDefinitionInputSchema.array().min(1)
|
|
78138
78647
|
});
|
|
78139
|
-
var sdkBlockFieldExtensionsInputSchema =
|
|
78140
|
-
|
|
78648
|
+
var sdkBlockFieldExtensionsInputSchema = z64.record(
|
|
78649
|
+
z64.string().min(1),
|
|
78141
78650
|
sdkBlockFieldExtensionInputSchema
|
|
78142
78651
|
);
|
|
78143
|
-
var sdkThemePaletteSchema =
|
|
78144
|
-
var sdkThemeConfigSchema =
|
|
78652
|
+
var sdkThemePaletteSchema = z64.record(z64.string(), z64.string());
|
|
78653
|
+
var sdkThemeConfigSchema = z64.object({
|
|
78145
78654
|
palette: sdkThemePaletteSchema
|
|
78146
78655
|
});
|
|
78147
|
-
var sdkSectionBackgroundSchema =
|
|
78148
|
-
id:
|
|
78149
|
-
label:
|
|
78150
|
-
token:
|
|
78656
|
+
var sdkSectionBackgroundSchema = z64.object({
|
|
78657
|
+
id: z64.string().min(1),
|
|
78658
|
+
label: z64.string().min(1),
|
|
78659
|
+
token: z64.string().min(1)
|
|
78151
78660
|
});
|
|
78152
|
-
var sdkSectionOptionsConfigSchema =
|
|
78153
|
-
backgroundColor:
|
|
78154
|
-
backgroundImage:
|
|
78155
|
-
backgroundGradient:
|
|
78156
|
-
spacing:
|
|
78157
|
-
textColor:
|
|
78661
|
+
var sdkSectionOptionsConfigSchema = z64.object({
|
|
78662
|
+
backgroundColor: z64.boolean().optional(),
|
|
78663
|
+
backgroundImage: z64.boolean().optional(),
|
|
78664
|
+
backgroundGradient: z64.boolean().optional(),
|
|
78665
|
+
spacing: z64.union([z64.array(z64.enum(["compact", "default", "spacious"])), z64.boolean()]).optional(),
|
|
78666
|
+
textColor: z64.boolean().optional()
|
|
78158
78667
|
});
|
|
78159
|
-
var sdkContainerOptionsConfigSchema =
|
|
78160
|
-
maxWidth:
|
|
78161
|
-
alignment:
|
|
78668
|
+
var sdkContainerOptionsConfigSchema = z64.object({
|
|
78669
|
+
maxWidth: z64.union([z64.array(z64.enum(["narrow", "default", "wide", "full"])), z64.boolean()]).optional(),
|
|
78670
|
+
alignment: z64.union([z64.array(z64.enum(["left", "center", "right"])), z64.boolean()]).optional()
|
|
78162
78671
|
});
|
|
78163
|
-
var sdkSiteStyleConfigSchema =
|
|
78164
|
-
sectionBackgrounds:
|
|
78672
|
+
var sdkSiteStyleConfigSchema = z64.object({
|
|
78673
|
+
sectionBackgrounds: z64.array(sdkSectionBackgroundSchema).optional(),
|
|
78165
78674
|
sectionOptions: sdkSectionOptionsConfigSchema.optional(),
|
|
78166
78675
|
containerOptions: sdkContainerOptionsConfigSchema.optional()
|
|
78167
78676
|
});
|
|
78168
|
-
var sdkSiteLayoutConfigSchema =
|
|
78169
|
-
footerBlocks:
|
|
78170
|
-
|
|
78171
|
-
id:
|
|
78172
|
-
kind:
|
|
78173
|
-
content:
|
|
78677
|
+
var sdkSiteLayoutConfigSchema = z64.object({
|
|
78678
|
+
footerBlocks: z64.array(
|
|
78679
|
+
z64.object({
|
|
78680
|
+
id: z64.string().min(1).optional(),
|
|
78681
|
+
kind: z64.string().min(1),
|
|
78682
|
+
content: z64.record(z64.string(), z64.unknown()).optional()
|
|
78174
78683
|
})
|
|
78175
78684
|
).optional()
|
|
78176
78685
|
});
|
|
78177
|
-
var sdkFieldSelectOptionSchema =
|
|
78178
|
-
value:
|
|
78179
|
-
label:
|
|
78686
|
+
var sdkFieldSelectOptionSchema = z64.object({
|
|
78687
|
+
value: z64.string(),
|
|
78688
|
+
label: z64.string()
|
|
78180
78689
|
});
|
|
78181
|
-
var sdkBlockFieldConfigSchema =
|
|
78182
|
-
options:
|
|
78690
|
+
var sdkBlockFieldConfigSchema = z64.object({
|
|
78691
|
+
options: z64.array(sdkFieldSelectOptionSchema).optional()
|
|
78183
78692
|
});
|
|
78184
|
-
var sdkBlockFieldOptionsMapSchema =
|
|
78185
|
-
|
|
78693
|
+
var sdkBlockFieldOptionsMapSchema = z64.record(
|
|
78694
|
+
z64.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
|
|
78186
78695
|
message: "Block ID must be 'block.*' or 'custom.*' format"
|
|
78187
78696
|
}),
|
|
78188
|
-
|
|
78697
|
+
z64.record(z64.string().min(1), sdkBlockFieldConfigSchema)
|
|
78189
78698
|
).optional();
|
|
78190
|
-
var sdkContentTypeTemplateConfigSchema =
|
|
78191
|
-
blocks:
|
|
78699
|
+
var sdkContentTypeTemplateConfigSchema = z64.object({
|
|
78700
|
+
blocks: z64.array(z64.unknown())
|
|
78192
78701
|
}).passthrough();
|
|
78193
|
-
var sdkContentTypeConfigSchema =
|
|
78194
|
-
key:
|
|
78195
|
-
fields:
|
|
78702
|
+
var sdkContentTypeConfigSchema = z64.object({
|
|
78703
|
+
key: z64.string().min(1),
|
|
78704
|
+
fields: z64.array(z64.unknown()),
|
|
78196
78705
|
template: sdkContentTypeTemplateConfigSchema.nullable().optional()
|
|
78197
78706
|
}).passthrough();
|
|
78198
|
-
var sdkContentConfigSchema =
|
|
78199
|
-
contentTypes:
|
|
78200
|
-
pages:
|
|
78201
|
-
entries:
|
|
78202
|
-
navigationMenus:
|
|
78203
|
-
settings:
|
|
78707
|
+
var sdkContentConfigSchema = z64.object({
|
|
78708
|
+
contentTypes: z64.array(sdkContentTypeConfigSchema).optional(),
|
|
78709
|
+
pages: z64.array(z64.unknown()).optional(),
|
|
78710
|
+
entries: z64.array(z64.unknown()).optional(),
|
|
78711
|
+
navigationMenus: z64.array(z64.unknown()).optional(),
|
|
78712
|
+
settings: z64.unknown().optional()
|
|
78204
78713
|
}).passthrough();
|
|
78205
78714
|
var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
|
|
78206
78715
|
var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
|
|
@@ -78213,41 +78722,41 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
|
|
|
78213
78722
|
var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
|
|
78214
78723
|
var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
|
|
78215
78724
|
var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
|
|
78216
|
-
var sdkWorkflowIdSchema =
|
|
78725
|
+
var sdkWorkflowIdSchema = z64.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
|
|
78217
78726
|
message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
|
|
78218
78727
|
});
|
|
78219
|
-
var sdkWorkflowEndpointSchema =
|
|
78220
|
-
var sdkWorkflowManualTriggerSchema =
|
|
78221
|
-
type:
|
|
78728
|
+
var sdkWorkflowEndpointSchema = z64.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
|
|
78729
|
+
var sdkWorkflowManualTriggerSchema = z64.object({
|
|
78730
|
+
type: z64.literal("manual")
|
|
78222
78731
|
}).strict();
|
|
78223
|
-
var sdkWorkflowTriggerSchema =
|
|
78732
|
+
var sdkWorkflowTriggerSchema = z64.discriminatedUnion("type", [
|
|
78224
78733
|
sdkWorkflowManualTriggerSchema
|
|
78225
78734
|
]);
|
|
78226
|
-
var sdkWorkflowConfirmationSchema =
|
|
78227
|
-
title:
|
|
78228
|
-
body:
|
|
78735
|
+
var sdkWorkflowConfirmationSchema = z64.object({
|
|
78736
|
+
title: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
|
|
78737
|
+
body: z64.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
|
|
78229
78738
|
}).strict();
|
|
78230
|
-
var sdkWorkflowConfigSchema =
|
|
78739
|
+
var sdkWorkflowConfigSchema = z64.object({
|
|
78231
78740
|
id: sdkWorkflowIdSchema,
|
|
78232
|
-
title:
|
|
78233
|
-
description:
|
|
78234
|
-
contentType:
|
|
78741
|
+
title: z64.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
|
|
78742
|
+
description: z64.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
|
|
78743
|
+
contentType: z64.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
|
|
78235
78744
|
endpoint: sdkWorkflowEndpointSchema,
|
|
78236
|
-
triggers:
|
|
78745
|
+
triggers: z64.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
|
|
78237
78746
|
confirmation: sdkWorkflowConfirmationSchema.optional()
|
|
78238
78747
|
}).strict();
|
|
78239
|
-
var sdkWorkflowsSchema =
|
|
78748
|
+
var sdkWorkflowsSchema = z64.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
|
|
78240
78749
|
const ids = workflows.map((workflow) => workflow.id);
|
|
78241
78750
|
return ids.length === new Set(ids).size;
|
|
78242
78751
|
}, { message: "Workflow IDs must be unique" }).optional();
|
|
78243
|
-
var riverbankSiteConfigInputSchema =
|
|
78244
|
-
siteId:
|
|
78245
|
-
previewUrl:
|
|
78246
|
-
liveUrl:
|
|
78752
|
+
var riverbankSiteConfigInputSchema = z64.object({
|
|
78753
|
+
siteId: z64.string().uuid(),
|
|
78754
|
+
previewUrl: z64.string().url().optional(),
|
|
78755
|
+
liveUrl: z64.string().url().optional(),
|
|
78247
78756
|
theme: sdkThemeConfigSchema.optional(),
|
|
78248
78757
|
styles: sdkSiteStyleConfigSchema.optional(),
|
|
78249
78758
|
layout: sdkSiteLayoutConfigSchema.optional(),
|
|
78250
|
-
customBlocks:
|
|
78759
|
+
customBlocks: z64.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
|
|
78251
78760
|
const ids = blocks.map((b2) => b2.id);
|
|
78252
78761
|
return ids.length === new Set(ids).size;
|
|
78253
78762
|
}, { message: "Block IDs must be unique" }).optional(),
|
|
@@ -78255,43 +78764,43 @@ var riverbankSiteConfigInputSchema = z62.object({
|
|
|
78255
78764
|
blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
|
|
78256
78765
|
workflows: sdkWorkflowsSchema,
|
|
78257
78766
|
content: sdkContentConfigSchema.optional(),
|
|
78258
|
-
contentDir:
|
|
78259
|
-
sync:
|
|
78260
|
-
existingEntries:
|
|
78767
|
+
contentDir: z64.string().optional(),
|
|
78768
|
+
sync: z64.object({
|
|
78769
|
+
existingEntries: z64.enum(["skip", "update"]).optional()
|
|
78261
78770
|
}).optional(),
|
|
78262
|
-
deploy:
|
|
78263
|
-
verifyCommand:
|
|
78264
|
-
prebuildOutput:
|
|
78771
|
+
deploy: z64.object({
|
|
78772
|
+
verifyCommand: z64.string().optional(),
|
|
78773
|
+
prebuildOutput: z64.string().optional()
|
|
78265
78774
|
}).optional(),
|
|
78266
|
-
themeSource:
|
|
78267
|
-
activeTheme:
|
|
78268
|
-
enablePortal:
|
|
78775
|
+
themeSource: z64.enum(["local", "cms"]).optional(),
|
|
78776
|
+
activeTheme: z64.string().optional(),
|
|
78777
|
+
enablePortal: z64.boolean().optional(),
|
|
78269
78778
|
dashboard: dashboardConfigSchema.optional()
|
|
78270
78779
|
}).strict();
|
|
78271
|
-
var pushSdkConfigBodySchema =
|
|
78780
|
+
var pushSdkConfigBodySchema = z64.object({
|
|
78272
78781
|
config: riverbankSiteConfigInputSchema,
|
|
78273
|
-
forceContentTypes:
|
|
78782
|
+
forceContentTypes: z64.boolean().optional()
|
|
78274
78783
|
}).strict();
|
|
78275
78784
|
|
|
78276
78785
|
// ../api/src/siteOnboarding.ts
|
|
78277
|
-
import { z as
|
|
78786
|
+
import { z as z65 } from "zod";
|
|
78278
78787
|
var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
|
|
78279
78788
|
configure_appointments: {
|
|
78280
78789
|
requirementId: "configure_appointments",
|
|
78281
78790
|
reason: "launch_anyway"
|
|
78282
78791
|
}
|
|
78283
78792
|
};
|
|
78284
|
-
var acknowledgeLaunchRequirementRequestSchema =
|
|
78793
|
+
var acknowledgeLaunchRequirementRequestSchema = z65.discriminatedUnion(
|
|
78285
78794
|
"requirementId",
|
|
78286
78795
|
[
|
|
78287
|
-
|
|
78288
|
-
requirementId:
|
|
78796
|
+
z65.object({
|
|
78797
|
+
requirementId: z65.literal("review_generated_site")
|
|
78289
78798
|
}),
|
|
78290
|
-
|
|
78291
|
-
requirementId:
|
|
78799
|
+
z65.object({
|
|
78800
|
+
requirementId: z65.literal(
|
|
78292
78801
|
LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
|
|
78293
78802
|
),
|
|
78294
|
-
overrideReason:
|
|
78803
|
+
overrideReason: z65.literal(
|
|
78295
78804
|
LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
|
|
78296
78805
|
)
|
|
78297
78806
|
})
|
|
@@ -78467,79 +78976,79 @@ function isRecord4(value) {
|
|
|
78467
78976
|
}
|
|
78468
78977
|
|
|
78469
78978
|
// ../api/src/appointmentSetup.ts
|
|
78470
|
-
import { z as
|
|
78471
|
-
var appointmentSetupRefSchema =
|
|
78472
|
-
|
|
78473
|
-
|
|
78979
|
+
import { z as z66 } from "zod";
|
|
78980
|
+
var appointmentSetupRefSchema = z66.discriminatedUnion("kind", [
|
|
78981
|
+
z66.object({ kind: z66.literal("existing"), id: z66.string().min(1) }),
|
|
78982
|
+
z66.object({ kind: z66.literal("new"), draftId: z66.string().min(1) })
|
|
78474
78983
|
]);
|
|
78475
|
-
var appointmentSetupVenueChoiceSchema =
|
|
78476
|
-
|
|
78477
|
-
|
|
78478
|
-
|
|
78479
|
-
kind:
|
|
78480
|
-
draftId:
|
|
78481
|
-
title:
|
|
78482
|
-
description:
|
|
78483
|
-
timezone:
|
|
78484
|
-
addressJson:
|
|
78485
|
-
locationJson:
|
|
78984
|
+
var appointmentSetupVenueChoiceSchema = z66.discriminatedUnion("kind", [
|
|
78985
|
+
z66.object({ kind: z66.literal("none") }),
|
|
78986
|
+
z66.object({ kind: z66.literal("existing"), venueId: z66.string().min(1) }),
|
|
78987
|
+
z66.object({
|
|
78988
|
+
kind: z66.literal("create"),
|
|
78989
|
+
draftId: z66.string().min(1),
|
|
78990
|
+
title: z66.string().trim().min(1),
|
|
78991
|
+
description: z66.string().nullable(),
|
|
78992
|
+
timezone: z66.string().trim().min(1).nullable(),
|
|
78993
|
+
addressJson: z66.record(z66.string(), z66.unknown()),
|
|
78994
|
+
locationJson: z66.object({ lat: z66.number(), lng: z66.number() }).nullable()
|
|
78486
78995
|
})
|
|
78487
78996
|
]);
|
|
78488
|
-
var appointmentSetupPaymentDraftSchema =
|
|
78489
|
-
priceType:
|
|
78490
|
-
});
|
|
78491
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
78492
|
-
|
|
78493
|
-
|
|
78494
|
-
kind:
|
|
78495
|
-
resourceRefs:
|
|
78997
|
+
var appointmentSetupPaymentDraftSchema = z66.object({
|
|
78998
|
+
priceType: z66.union([z66.literal("free"), z66.literal("paid")])
|
|
78999
|
+
});
|
|
79000
|
+
var appointmentSetupServiceAssignmentDraftSchema = z66.discriminatedUnion("kind", [
|
|
79001
|
+
z66.object({ kind: z66.literal("all_practitioners") }),
|
|
79002
|
+
z66.object({
|
|
79003
|
+
kind: z66.literal("selected_practitioners"),
|
|
79004
|
+
resourceRefs: z66.array(appointmentSetupRefSchema)
|
|
78496
79005
|
})
|
|
78497
79006
|
]);
|
|
78498
|
-
var appointmentSetupServiceDraftSchema =
|
|
79007
|
+
var appointmentSetupServiceDraftSchema = z66.object({
|
|
78499
79008
|
ref: appointmentSetupRefSchema,
|
|
78500
|
-
title:
|
|
78501
|
-
description:
|
|
78502
|
-
durationMinutes:
|
|
78503
|
-
priceAmount:
|
|
78504
|
-
isActive:
|
|
78505
|
-
locationType:
|
|
78506
|
-
|
|
78507
|
-
|
|
78508
|
-
|
|
79009
|
+
title: z66.string().trim().min(1),
|
|
79010
|
+
description: z66.string().nullable(),
|
|
79011
|
+
durationMinutes: z66.number().int().positive(),
|
|
79012
|
+
priceAmount: z66.number().int().nonnegative().nullable(),
|
|
79013
|
+
isActive: z66.boolean(),
|
|
79014
|
+
locationType: z66.union([
|
|
79015
|
+
z66.literal("virtual"),
|
|
79016
|
+
z66.literal("in_person"),
|
|
79017
|
+
z66.literal("hybrid")
|
|
78509
79018
|
]),
|
|
78510
79019
|
venue: appointmentSetupVenueChoiceSchema,
|
|
78511
|
-
timezone:
|
|
79020
|
+
timezone: z66.string().trim().min(1).nullable(),
|
|
78512
79021
|
payment: appointmentSetupPaymentDraftSchema,
|
|
78513
79022
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
78514
79023
|
});
|
|
78515
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
79024
|
+
var appointmentSetupPractitionerDraftSchema = z66.object({
|
|
78516
79025
|
ref: appointmentSetupRefSchema,
|
|
78517
|
-
displayName:
|
|
78518
|
-
bio:
|
|
78519
|
-
timezone:
|
|
78520
|
-
colorHex:
|
|
78521
|
-
});
|
|
78522
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
78523
|
-
weekday:
|
|
78524
|
-
startTime:
|
|
78525
|
-
endTime:
|
|
78526
|
-
});
|
|
78527
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
78528
|
-
kind:
|
|
79026
|
+
displayName: z66.string().trim().min(1),
|
|
79027
|
+
bio: z66.string().nullable(),
|
|
79028
|
+
timezone: z66.string().trim().min(1),
|
|
79029
|
+
colorHex: z66.string().nullable()
|
|
79030
|
+
});
|
|
79031
|
+
var appointmentSetupWeeklyWindowDraftSchema = z66.object({
|
|
79032
|
+
weekday: z66.number().int().min(0).max(6),
|
|
79033
|
+
startTime: z66.string(),
|
|
79034
|
+
endTime: z66.string()
|
|
79035
|
+
});
|
|
79036
|
+
var appointmentSetupAvailabilityDraftSchema = z66.object({
|
|
79037
|
+
kind: z66.literal("weekly_windows"),
|
|
78529
79038
|
resourceRef: appointmentSetupRefSchema,
|
|
78530
79039
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
78531
|
-
windows:
|
|
79040
|
+
windows: z66.array(appointmentSetupWeeklyWindowDraftSchema)
|
|
78532
79041
|
});
|
|
78533
79042
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
78534
79043
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
78535
|
-
var appointmentSetupBookingNoticeSchema =
|
|
78536
|
-
minLeadMinutes:
|
|
78537
|
-
maxBookingNoticeMinutes:
|
|
78538
|
-
});
|
|
78539
|
-
var applyAppointmentSetupRequestSchema =
|
|
78540
|
-
services:
|
|
78541
|
-
practitioners:
|
|
78542
|
-
availability:
|
|
79044
|
+
var appointmentSetupBookingNoticeSchema = z66.object({
|
|
79045
|
+
minLeadMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
79046
|
+
maxBookingNoticeMinutes: z66.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
79047
|
+
});
|
|
79048
|
+
var applyAppointmentSetupRequestSchema = z66.object({
|
|
79049
|
+
services: z66.array(appointmentSetupServiceDraftSchema),
|
|
79050
|
+
practitioners: z66.array(appointmentSetupPractitionerDraftSchema),
|
|
79051
|
+
availability: z66.array(appointmentSetupAvailabilityDraftSchema),
|
|
78543
79052
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
78544
79053
|
});
|
|
78545
79054
|
|
|
@@ -78558,24 +79067,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
78558
79067
|
];
|
|
78559
79068
|
|
|
78560
79069
|
// ../api/src/siteBanner.ts
|
|
78561
|
-
import { z as
|
|
79070
|
+
import { z as z67 } from "zod";
|
|
78562
79071
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
78563
79072
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
78564
79073
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
78565
79074
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
78566
|
-
var siteBannerScopeSchema =
|
|
78567
|
-
var siteBannerToneSchema =
|
|
78568
|
-
var siteBannerBodySchema =
|
|
78569
|
-
var siteBannerCtaSchema =
|
|
78570
|
-
label:
|
|
79075
|
+
var siteBannerScopeSchema = z67.enum(SITE_BANNER_SCOPE_VALUES);
|
|
79076
|
+
var siteBannerToneSchema = z67.enum(SITE_BANNER_TONE_VALUES);
|
|
79077
|
+
var siteBannerBodySchema = z67.unknown().transform(unwrapRichTextValue);
|
|
79078
|
+
var siteBannerCtaSchema = z67.object({
|
|
79079
|
+
label: z67.string().trim().min(1),
|
|
78571
79080
|
link: linkPayloadSchema
|
|
78572
79081
|
});
|
|
78573
|
-
var siteBannerSettingsSchema =
|
|
78574
|
-
|
|
78575
|
-
enabled:
|
|
79082
|
+
var siteBannerSettingsSchema = z67.discriminatedUnion("enabled", [
|
|
79083
|
+
z67.object({
|
|
79084
|
+
enabled: z67.literal(false)
|
|
78576
79085
|
}),
|
|
78577
|
-
|
|
78578
|
-
enabled:
|
|
79086
|
+
z67.object({
|
|
79087
|
+
enabled: z67.literal(true),
|
|
78579
79088
|
scope: siteBannerScopeSchema,
|
|
78580
79089
|
tone: siteBannerToneSchema,
|
|
78581
79090
|
body: siteBannerBodySchema,
|
|
@@ -78587,11 +79096,11 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
78587
79096
|
return;
|
|
78588
79097
|
}
|
|
78589
79098
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
78590
|
-
for (const
|
|
79099
|
+
for (const issue2 of analysis.issues) {
|
|
78591
79100
|
ctx.addIssue({
|
|
78592
|
-
code:
|
|
79101
|
+
code: z67.ZodIssueCode.custom,
|
|
78593
79102
|
path: ["body"],
|
|
78594
|
-
message: siteBannerBodyIssueMessage(
|
|
79103
|
+
message: siteBannerBodyIssueMessage(issue2)
|
|
78595
79104
|
});
|
|
78596
79105
|
}
|
|
78597
79106
|
});
|
|
@@ -78625,8 +79134,8 @@ function analyzeSiteBannerBody(body) {
|
|
|
78625
79134
|
issues
|
|
78626
79135
|
};
|
|
78627
79136
|
}
|
|
78628
|
-
function siteBannerBodyIssueMessage(
|
|
78629
|
-
switch (
|
|
79137
|
+
function siteBannerBodyIssueMessage(issue2) {
|
|
79138
|
+
switch (issue2) {
|
|
78630
79139
|
case "empty":
|
|
78631
79140
|
return "Banner message is required when the banner is enabled.";
|
|
78632
79141
|
case "too-many-paragraphs":
|
|
@@ -78813,71 +79322,71 @@ function parsePublicProductCategorySelector(value) {
|
|
|
78813
79322
|
}
|
|
78814
79323
|
|
|
78815
79324
|
// ../api/src/aiPlayground.ts
|
|
78816
|
-
import { z as
|
|
78817
|
-
var Rfc6902PatchOp =
|
|
79325
|
+
import { z as z68 } from "zod";
|
|
79326
|
+
var Rfc6902PatchOp = z68.discriminatedUnion("op", [
|
|
78818
79327
|
// Standard RFC-6902 operations
|
|
78819
|
-
|
|
78820
|
-
op:
|
|
78821
|
-
path:
|
|
78822
|
-
value:
|
|
79328
|
+
z68.object({
|
|
79329
|
+
op: z68.literal("add"),
|
|
79330
|
+
path: z68.string(),
|
|
79331
|
+
value: z68.unknown()
|
|
78823
79332
|
}),
|
|
78824
|
-
|
|
78825
|
-
op:
|
|
78826
|
-
path:
|
|
79333
|
+
z68.object({
|
|
79334
|
+
op: z68.literal("remove"),
|
|
79335
|
+
path: z68.string()
|
|
78827
79336
|
}),
|
|
78828
|
-
|
|
78829
|
-
op:
|
|
78830
|
-
path:
|
|
78831
|
-
value:
|
|
79337
|
+
z68.object({
|
|
79338
|
+
op: z68.literal("replace"),
|
|
79339
|
+
path: z68.string(),
|
|
79340
|
+
value: z68.unknown()
|
|
78832
79341
|
}),
|
|
78833
|
-
|
|
78834
|
-
op:
|
|
78835
|
-
from:
|
|
78836
|
-
path:
|
|
79342
|
+
z68.object({
|
|
79343
|
+
op: z68.literal("move"),
|
|
79344
|
+
from: z68.string(),
|
|
79345
|
+
path: z68.string()
|
|
78837
79346
|
}),
|
|
78838
|
-
|
|
78839
|
-
op:
|
|
78840
|
-
from:
|
|
78841
|
-
path:
|
|
79347
|
+
z68.object({
|
|
79348
|
+
op: z68.literal("copy"),
|
|
79349
|
+
from: z68.string(),
|
|
79350
|
+
path: z68.string()
|
|
78842
79351
|
}),
|
|
78843
79352
|
// Block-level operations (Phase 2)
|
|
78844
|
-
|
|
78845
|
-
op:
|
|
78846
|
-
blockKind:
|
|
78847
|
-
afterBlockId:
|
|
78848
|
-
content:
|
|
78849
|
-
rationale:
|
|
79353
|
+
z68.object({
|
|
79354
|
+
op: z68.literal("add_block"),
|
|
79355
|
+
blockKind: z68.string(),
|
|
79356
|
+
afterBlockId: z68.string().nullable(),
|
|
79357
|
+
content: z68.record(z68.string(), z68.unknown()),
|
|
79358
|
+
rationale: z68.string()
|
|
78850
79359
|
}),
|
|
78851
|
-
|
|
78852
|
-
op:
|
|
78853
|
-
blockId:
|
|
78854
|
-
rationale:
|
|
79360
|
+
z68.object({
|
|
79361
|
+
op: z68.literal("delete_block"),
|
|
79362
|
+
blockId: z68.string(),
|
|
79363
|
+
rationale: z68.string()
|
|
78855
79364
|
}),
|
|
78856
|
-
|
|
78857
|
-
op:
|
|
78858
|
-
blockId:
|
|
78859
|
-
afterBlockId:
|
|
78860
|
-
rationale:
|
|
79365
|
+
z68.object({
|
|
79366
|
+
op: z68.literal("reorder_block"),
|
|
79367
|
+
blockId: z68.string(),
|
|
79368
|
+
afterBlockId: z68.string().nullable(),
|
|
79369
|
+
rationale: z68.string()
|
|
78861
79370
|
})
|
|
78862
79371
|
]);
|
|
78863
|
-
var PlaygroundProposeRequest =
|
|
78864
|
-
request:
|
|
79372
|
+
var PlaygroundProposeRequest = z68.object({
|
|
79373
|
+
request: z68.string().min(1).max(2e3)
|
|
78865
79374
|
});
|
|
78866
|
-
var MultiPagePatchEnvelope =
|
|
78867
|
-
pageId:
|
|
78868
|
-
blockId:
|
|
79375
|
+
var MultiPagePatchEnvelope = z68.object({
|
|
79376
|
+
pageId: z68.string(),
|
|
79377
|
+
blockId: z68.string().optional(),
|
|
78869
79378
|
// Not present for page-level ops
|
|
78870
|
-
blockKind:
|
|
78871
|
-
blockPurpose:
|
|
78872
|
-
ops:
|
|
78873
|
-
rationale:
|
|
78874
|
-
currentContent:
|
|
79379
|
+
blockKind: z68.string().optional(),
|
|
79380
|
+
blockPurpose: z68.string().optional().nullable(),
|
|
79381
|
+
ops: z68.array(Rfc6902PatchOp),
|
|
79382
|
+
rationale: z68.string(),
|
|
79383
|
+
currentContent: z68.record(z68.string(), z68.unknown()).optional()
|
|
78875
79384
|
});
|
|
78876
|
-
var MultiPageUpdateResponse =
|
|
78877
|
-
patches:
|
|
78878
|
-
assistantMessage:
|
|
78879
|
-
pagesModified:
|
|
78880
|
-
toolCallsUsed:
|
|
79385
|
+
var MultiPageUpdateResponse = z68.object({
|
|
79386
|
+
patches: z68.array(MultiPagePatchEnvelope),
|
|
79387
|
+
assistantMessage: z68.string(),
|
|
79388
|
+
pagesModified: z68.number(),
|
|
79389
|
+
toolCallsUsed: z68.number()
|
|
78881
79390
|
});
|
|
78882
79391
|
|
|
78883
79392
|
// src/data/prefetchBlockData.ts
|
|
@@ -78886,6 +79395,7 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
|
78886
79395
|
"getPublishedEntryPreview",
|
|
78887
79396
|
"listPublicEvents",
|
|
78888
79397
|
"listPublicCourses",
|
|
79398
|
+
"listPublicTeamMembers",
|
|
78889
79399
|
"listPublicProducts",
|
|
78890
79400
|
"listPublicPasses",
|
|
78891
79401
|
"listPublicMemberships",
|
|
@@ -79050,6 +79560,16 @@ async function prefetchBlockData2(page, context, client, options) {
|
|
|
79050
79560
|
const parsedLimit = typeof limit === "string" ? Number.parseInt(limit, 10) : typeof limit === "number" ? limit : void 0;
|
|
79051
79561
|
return await client.listPublicCourses({ siteId, limit: parsedLimit, stage });
|
|
79052
79562
|
}
|
|
79563
|
+
case "listPublicTeamMembers": {
|
|
79564
|
+
const { siteId, stage } = resolvedParams ?? {};
|
|
79565
|
+
if (!siteId) {
|
|
79566
|
+
throw new Error("listPublicTeamMembers requires siteId param");
|
|
79567
|
+
}
|
|
79568
|
+
return await client.listPublicTeamMembers({
|
|
79569
|
+
siteId,
|
|
79570
|
+
stage: typeof stage === "string" ? stage : void 0
|
|
79571
|
+
});
|
|
79572
|
+
}
|
|
79053
79573
|
case "listPublicProducts": {
|
|
79054
79574
|
const { siteId, stage, categorySelector } = resolvedParams ?? {};
|
|
79055
79575
|
if (!siteId) {
|