@riverbankcms/sdk 0.152.0 → 0.153.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/{EventEmbeddedCheckoutStep-DVQXWFm6.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +1 -1
- package/dist/{PreviewEditorSidebar-Dr4NJi3Q.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -4
- package/dist/{PreviewEditorUI-DSZXQbyh.mjs → PreviewEditorUI-ORkVZhfu.mjs} +3 -3
- package/dist/{SdkPreviewModeRuntime-Dl4GyMc3.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +221 -115
- package/dist/{SiteChromeCustomizeContext-DgBe-FlM.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +1798 -2024
- package/dist/{ThemedButton-B8ViBnLK.mjs → ThemedButton-X2UxhW6F.mjs} +213 -38
- package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
- package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
- package/dist/_dts/api/src/communications.d.ts +19 -5
- package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
- package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
- package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
- package/dist/_dts/api/src/teamMembers.d.ts +2 -27
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
- package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
- package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +196 -804
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
- package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
- package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
- package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
- package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +28 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +276 -884
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
- package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
- package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -3
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
- package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
- package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +9 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +55 -4
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
- package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +2 -2
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
- package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
- package/dist/_dts/media-core/src/index.d.ts +4 -0
- package/dist/_dts/media-core/src/media.d.ts +406 -0
- package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
- package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
- package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
- package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
- package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
- package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
- package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
- package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
- package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
- package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
- package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
- package/dist/_dts/media-editor/src/types.d.ts +1 -1
- package/dist/_dts/media-editor/src/utils.d.ts +0 -1
- package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
- package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
- package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
- package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
- package/dist/_dts/sdk/src/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/image.d.ts +5 -5
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/link.d.ts +3 -7
- package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
- package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
- package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
- package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
- package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
- package/dist/client/{BookingMailingListNote-CBuMKN0w.mjs → BookingMailingListNote-DrchYW1m.mjs} +2 -2
- package/dist/client/{CardListItem-Dc9XTXhB.mjs → CardListItem-CC_GVmF6.mjs} +5 -4
- package/dist/client/{CheckboxChoice-CIqx_o0E.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-D3VQ_kLj.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +2 -2
- package/dist/client/{EventCombined.client-BHGEKise.mjs → EventCombined.client-DyN0v0Xk.mjs} +5 -6
- package/dist/client/{EventEmbeddedCheckoutStep-Bo1Cm23R.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +2 -2
- package/dist/client/{EventListing.client-D5OQgVPr.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-CLL5cWrr.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
- package/dist/client/{RichText-BoDmnopf.mjs → RichText-C1fIXBzA.mjs} +45 -32
- package/dist/client/{ThemedButton-Ciltp0IK.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
- package/dist/client/{accordion-DOkRS64-.mjs → accordion-DCDVWSye.mjs} +1 -1
- package/dist/client/{bookingForm-wlMVwo9h.mjs → bookingForm-BJ3C4GlM.mjs} +42 -15
- package/dist/client/bookings.mjs +116989 -22191
- package/dist/client/{carousel-CGWk-Z0u.mjs → carousel-BSCBhfHY.mjs} +2 -2
- package/dist/client/{carousel.client-kX5mN1Eg.mjs → carousel.client-GEtOGsxo.mjs} +1 -1
- package/dist/client/{cart-OBBPlaH4.mjs → cart-Yv-aAtck.mjs} +3 -3
- package/dist/client/{checkout-Bmw2WjQX.mjs → checkout-B9xDkl30.mjs} +3 -3
- package/dist/client/client.mjs +17577 -17361
- package/dist/client/{context-BI77UFAn.mjs → context-BOGe3rIA.mjs} +1 -1
- package/dist/client/{eventCalendar-qkej2Edn.mjs → eventCalendar-D6M0T9hs.mjs} +8 -9
- package/dist/client/{eventCombined-DApKHvat.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
- package/dist/client/{eventDetails-BQyUDPH0.mjs → eventDetails-f_FhV4O8.mjs} +3 -3
- package/dist/client/{eventListing-CeAnshlZ.mjs → eventListing-WLkfAROh.mjs} +4 -4
- package/dist/client/{eventRegistration-C3A3NyBO.mjs → eventRegistration-D3ejfLvW.mjs} +10 -10
- package/dist/client/{form-DW8rU7jO.mjs → form-D5Or2Jyu.mjs} +4 -5
- package/dist/client/{headerSection-CkIhsoNm.mjs → headerSection-hWgnv27V.mjs} +3 -3
- package/dist/client/hooks.mjs +16014 -15751
- package/dist/client/{locationMap-D4O8wbli.mjs → locationMap-Di1K0O2S.mjs} +3 -4
- package/dist/client/{media-C5K_0xPd.mjs → media-D29-F1u_.mjs} +183 -362
- package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
- package/dist/client/{newsletterForm-B7IxSPuz.mjs → newsletterForm-CwxcwTNO.mjs} +4 -4
- package/dist/client/{productDetail-Bqxpwy5N.mjs → productDetail-BLSnhPdA.mjs} +3 -3
- package/dist/client/{productList-u9Lz8V15.mjs → productList-oGytONOX.mjs} +3 -3
- package/dist/client/{propsDecoder-Bf1jucUp.mjs → propsDecoder-lf_dTeZS.mjs} +1467 -125
- package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
- package/dist/client/rendering/client.mjs +10855 -10689
- package/dist/client/rendering/islands.mjs +20 -23
- package/dist/client/rendering.mjs +18411 -18181
- package/dist/client/{routeIslandApiConfig-BgP-aPMl.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
- package/dist/client/{shop-B_eykR-_.mjs → shop-BQ3bR7fA.mjs} +7 -7
- package/dist/client/{shop-commerce-CT0APkFV.mjs → shop-commerce-DDPll6ZC.mjs} +8 -8
- package/dist/client/{shop-commerce-store-DcvZxdEK.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
- package/dist/client/{shopShared-BVJOiUiJ.mjs → shopShared-BylM9jh1.mjs} +5 -5
- package/dist/client/{useDiscountCodeUi-DPmYDunz.mjs → useDiscountCodeUi-B1Puub2v.mjs} +1 -1
- package/dist/client/{useEventPagination-8-U55vH5.mjs → useEventPagination-BBhkmQaT.mjs} +6 -7
- package/dist/preview-next/before-render.mjs +89 -4
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-C5jPdSrk.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
- package/dist/server/components.mjs +18663 -18510
- package/dist/server/config-validation.mjs +450 -215
- package/dist/server/config.mjs +450 -215
- package/dist/server/data.mjs +15940 -15705
- package/dist/server/index.mjs +227 -2
- package/dist/server/next.mjs +18643 -18490
- package/dist/server/page-converter.mjs +12588 -12477
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +18007 -17855
- package/dist/server/rendering.mjs +18677 -18516
- package/dist/server/routing.mjs +17747 -17469
- package/dist/server/server.mjs +539 -276
- package/dist/server/theme-bridge.mjs +154 -37
- package/dist/server/theme.mjs +154 -37
- package/dist/{spinner-B-ab2rJp.mjs → spinner-BYM-Y81w.mjs} +1 -1
- package/package.json +1 -1
- package/dist/client/aspectTransforms-D-TnDdq4.mjs +0 -93
- package/dist/client/colorStyles-ECDNPE_P.mjs +0 -1253
|
@@ -48,6 +48,52 @@ function err(error) {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
//#endregion
|
|
51
|
+
//#region ../core/src/branded.ts
|
|
52
|
+
const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
53
|
+
function parseUuidBrand(value, unsafeConstructor) {
|
|
54
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
55
|
+
const normalized = value.trim().toLowerCase();
|
|
56
|
+
if (normalized.length === 0) return err({ kind: "empty_string" });
|
|
57
|
+
if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
|
|
58
|
+
return ok(unsafeConstructor(normalized));
|
|
59
|
+
}
|
|
60
|
+
function expectParsedBrandedId(result) {
|
|
61
|
+
if (!result.ok) throw new Error(`Expected a validated branded UUID (${result.error.kind}).`);
|
|
62
|
+
return result.value;
|
|
63
|
+
}
|
|
64
|
+
const unsafeAsSiteId = (id) => id;
|
|
65
|
+
const unsafeAsApiKeyId = (id) => id;
|
|
66
|
+
const unsafeAsPageId = (id) => id;
|
|
67
|
+
const unsafeAsPageSurfaceId = (id) => id;
|
|
68
|
+
const unsafeAsEditorClientId = (id) => id;
|
|
69
|
+
const unsafeAsEventOfferingId = (id) => id;
|
|
70
|
+
const unsafeAsEventSeriesId = (id) => id;
|
|
71
|
+
const unsafeAsMediaAssetId = (id) => id;
|
|
72
|
+
const unsafeAsStorageBucketName = (value) => value;
|
|
73
|
+
const unsafeAsStoragePath = (value) => value;
|
|
74
|
+
const unsafeAsPositiveByteCount = (value) => value;
|
|
75
|
+
const unsafeAsPositiveSeconds = (value) => value;
|
|
76
|
+
const unsafeAsUserId = (id) => id;
|
|
77
|
+
const unsafeAsFormId = (id) => id;
|
|
78
|
+
const unsafeAsPassId = (id) => id;
|
|
79
|
+
const unsafeAsCustomerPassId = (id) => id;
|
|
80
|
+
const unsafeAsAppointmentServiceId = (id) => id;
|
|
81
|
+
const unsafeAsAppointmentResourceId = (id) => id;
|
|
82
|
+
const unsafeAsContentEntryId = (id) => id;
|
|
83
|
+
const unsafeAsContentVersionId = (id) => id;
|
|
84
|
+
const parseSiteId = (value) => parseUuidBrand(value, unsafeAsSiteId);
|
|
85
|
+
const parseApiKeyId = (value) => parseUuidBrand(value, unsafeAsApiKeyId);
|
|
86
|
+
const parsePageId = (value) => parseUuidBrand(value, unsafeAsPageId);
|
|
87
|
+
const parsePageSurfaceId = (value) => parseUuidBrand(value, unsafeAsPageSurfaceId);
|
|
88
|
+
const parseEditorClientId = (value) => parseUuidBrand(value, unsafeAsEditorClientId);
|
|
89
|
+
const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
|
|
90
|
+
const parseUserId = (value) => parseUuidBrand(value, unsafeAsUserId);
|
|
91
|
+
const parseMediaAssetId = (value) => parseUuidBrand(value, unsafeAsMediaAssetId);
|
|
92
|
+
const parseContentEntryId = (value) => parseUuidBrand(value, unsafeAsContentEntryId);
|
|
93
|
+
const parseContentVersionId = (value) => parseUuidBrand(value, unsafeAsContentVersionId);
|
|
94
|
+
const parseFormId = (value) => parseUuidBrand(value, unsafeAsFormId);
|
|
95
|
+
const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
|
|
96
|
+
//#endregion
|
|
51
97
|
//#region ../core/src/date-math.ts
|
|
52
98
|
function addDaysToDate(date, dayCount) {
|
|
53
99
|
const next = new Date(date);
|
|
@@ -2055,7 +2101,119 @@ function resolveSdkFooterMode(config) {
|
|
|
2055
2101
|
return parsed.success ? parsed.data.layout?.footerMode ?? "default" : "default";
|
|
2056
2102
|
}
|
|
2057
2103
|
//#endregion
|
|
2058
|
-
//#region ../
|
|
2104
|
+
//#region ../media-core/src/identifiers.ts
|
|
2105
|
+
function slugifyMediaIdentifier(value) {
|
|
2106
|
+
return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
|
|
2107
|
+
}
|
|
2108
|
+
function parseMediaIdentifier(value) {
|
|
2109
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
2110
|
+
const trimmed = value.trim();
|
|
2111
|
+
if (trimmed.length === 0) return err({ kind: "empty_identifier" });
|
|
2112
|
+
const normalized = slugifyMediaIdentifier(trimmed);
|
|
2113
|
+
if (normalized.length === 0) return err({
|
|
2114
|
+
kind: "empty_after_normalization",
|
|
2115
|
+
value
|
|
2116
|
+
});
|
|
2117
|
+
return ok(normalized);
|
|
2118
|
+
}
|
|
2119
|
+
/**
|
|
2120
|
+
* Admits identifiers read from trusted persistence without repairing dirty data in memory.
|
|
2121
|
+
* User input should use parseMediaIdentifier, which intentionally canonicalizes it.
|
|
2122
|
+
*/
|
|
2123
|
+
function parseCanonicalMediaIdentifier(value) {
|
|
2124
|
+
if (typeof value !== "string") return err({ kind: "not_string" });
|
|
2125
|
+
const parsed = parseMediaIdentifier(value);
|
|
2126
|
+
if (!parsed.ok) return parsed;
|
|
2127
|
+
if (value !== parsed.value) return err({
|
|
2128
|
+
kind: "non_canonical_identifier",
|
|
2129
|
+
value,
|
|
2130
|
+
canonical: parsed.value
|
|
2131
|
+
});
|
|
2132
|
+
return parsed;
|
|
2133
|
+
}
|
|
2134
|
+
//#endregion
|
|
2135
|
+
//#region ../media-core/src/mediaIdentifierSchema.ts
|
|
2136
|
+
/** Strict stored-reference admission delegates the canonical identifier decision. */
|
|
2137
|
+
const mediaIdentifierSchema = z.string().transform((value, context) => {
|
|
2138
|
+
const parsed = parseCanonicalMediaIdentifier(value);
|
|
2139
|
+
if (parsed.ok) return parsed.value;
|
|
2140
|
+
context.addIssue({
|
|
2141
|
+
code: "custom",
|
|
2142
|
+
message: "Expected a canonical media identifier"
|
|
2143
|
+
});
|
|
2144
|
+
return z.NEVER;
|
|
2145
|
+
});
|
|
2146
|
+
//#endregion
|
|
2147
|
+
//#region ../media-core/src/mediaKinds.ts
|
|
2148
|
+
const mediaTypeDiscriminants = [
|
|
2149
|
+
"image",
|
|
2150
|
+
"video",
|
|
2151
|
+
"audio",
|
|
2152
|
+
"document",
|
|
2153
|
+
"spreadsheet",
|
|
2154
|
+
"archive"
|
|
2155
|
+
];
|
|
2156
|
+
//#endregion
|
|
2157
|
+
//#region ../media-core/src/renderableMediaAsset.ts
|
|
2158
|
+
/** Shared identifier indexing for admitted site-scoped projections. */
|
|
2159
|
+
function buildMediaIdentifierIndex(assets) {
|
|
2160
|
+
const index = new Map(assets.map((asset) => [asset.identifier, asset]));
|
|
2161
|
+
if (index.size !== assets.length) throw new Error("Duplicate media identifier in a site asset list");
|
|
2162
|
+
return index;
|
|
2163
|
+
}
|
|
2164
|
+
/** Index already admitted projections, including runtime registration updates. */
|
|
2165
|
+
function indexRenderableMediaAssets(assets) {
|
|
2166
|
+
if (!assets.length) return void 0;
|
|
2167
|
+
const byId = new Map(assets.map((asset) => [asset.id, asset]));
|
|
2168
|
+
const byIdentifier = buildMediaIdentifierIndex(assets);
|
|
2169
|
+
if (byId.size !== assets.length) throw new Error("Duplicate media asset identity in a site asset list");
|
|
2170
|
+
return {
|
|
2171
|
+
assets,
|
|
2172
|
+
byId,
|
|
2173
|
+
byIdentifier
|
|
2174
|
+
};
|
|
2175
|
+
}
|
|
2176
|
+
/** A portable reference never uses an incidental UUID, URL or storage snapshot for identity. */
|
|
2177
|
+
function resolveManagedMediaReference(reference, index) {
|
|
2178
|
+
const asset = index?.byIdentifier.get(reference.identifier);
|
|
2179
|
+
return asset ? {
|
|
2180
|
+
kind: "resolved",
|
|
2181
|
+
reference,
|
|
2182
|
+
asset
|
|
2183
|
+
} : {
|
|
2184
|
+
kind: "missing",
|
|
2185
|
+
reference
|
|
2186
|
+
};
|
|
2187
|
+
}
|
|
2188
|
+
//#endregion
|
|
2189
|
+
//#region ../media-core/src/renderableMediaAssetAdmission.ts
|
|
2190
|
+
const mediaAssetIdSchema = z.string().transform((value, context) => {
|
|
2191
|
+
const parsed = parseMediaAssetId(value);
|
|
2192
|
+
if (parsed.ok) return parsed.value;
|
|
2193
|
+
context.addIssue({
|
|
2194
|
+
code: "custom",
|
|
2195
|
+
message: "Expected a media asset ID"
|
|
2196
|
+
});
|
|
2197
|
+
return z.NEVER;
|
|
2198
|
+
});
|
|
2199
|
+
const nonemptyStorageValue = z.string().refine((value) => value.trim().length > 0);
|
|
2200
|
+
const renderableMediaAssetSchema = z.object({
|
|
2201
|
+
id: mediaAssetIdSchema,
|
|
2202
|
+
identifier: mediaIdentifierSchema,
|
|
2203
|
+
storageBucket: nonemptyStorageValue,
|
|
2204
|
+
storagePath: nonemptyStorageValue,
|
|
2205
|
+
mimeType: nonemptyStorageValue,
|
|
2206
|
+
filename: z.string().optional(),
|
|
2207
|
+
width: z.number().positive().nullable(),
|
|
2208
|
+
height: z.number().positive().nullable()
|
|
2209
|
+
});
|
|
2210
|
+
/** Admission precedes the identifier-only runtime resolution decision. */
|
|
2211
|
+
function buildRenderableMediaAssetIndex(assets) {
|
|
2212
|
+
if (!assets?.length) return void 0;
|
|
2213
|
+
return indexRenderableMediaAssets(assets.map((asset) => renderableMediaAssetSchema.parse(asset)));
|
|
2214
|
+
}
|
|
2215
|
+
//#endregion
|
|
2216
|
+
//#region ../media-core/src/media.ts
|
|
2059
2217
|
const hotspotSchema = z.object({
|
|
2060
2218
|
x: z.number().min(0).max(1),
|
|
2061
2219
|
y: z.number().min(0).max(1),
|
|
@@ -2089,54 +2247,56 @@ const transformSchema = z.object({
|
|
|
2089
2247
|
rotation: rotationSchema.optional()
|
|
2090
2248
|
});
|
|
2091
2249
|
const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
|
|
2092
|
-
tag: z.literal("
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
storagePath: z.string().min(1)
|
|
2096
|
-
}), z.object({
|
|
2250
|
+
tag: z.literal("media"),
|
|
2251
|
+
identifier: mediaIdentifierSchema
|
|
2252
|
+
}).strict(), z.object({
|
|
2097
2253
|
tag: z.literal("external-src"),
|
|
2098
|
-
assetId: z.string().optional(),
|
|
2099
2254
|
src: z.string().url()
|
|
2100
|
-
})]);
|
|
2101
|
-
const
|
|
2255
|
+
}).strict()]);
|
|
2256
|
+
const mediaUsageShape = {
|
|
2102
2257
|
purpose: z.string().optional(),
|
|
2103
2258
|
placeholder: z.boolean().default(true).optional(),
|
|
2104
|
-
assetId: z.string().optional(),
|
|
2105
|
-
identifier: z.string().optional(),
|
|
2106
|
-
src: z.string().optional(),
|
|
2107
2259
|
alt: z.string().optional(),
|
|
2108
2260
|
filename: z.string().optional(),
|
|
2109
|
-
mimeType: z.string().optional(),
|
|
2110
2261
|
width: z.number().optional(),
|
|
2111
2262
|
height: z.number().optional(),
|
|
2112
|
-
storageBucket: z.string().optional(),
|
|
2113
|
-
storagePath: z.string().optional(),
|
|
2114
2263
|
poster: mediaPosterSchema.optional(),
|
|
2115
2264
|
transform: transformSchema.optional()
|
|
2116
|
-
}
|
|
2117
|
-
const
|
|
2265
|
+
};
|
|
2266
|
+
const environmentExclusions = {
|
|
2267
|
+
assetId: z.never().optional(),
|
|
2268
|
+
id: z.never().optional(),
|
|
2269
|
+
src: z.never().optional(),
|
|
2270
|
+
storageBucket: z.never().optional(),
|
|
2271
|
+
storagePath: z.never().optional(),
|
|
2272
|
+
mimeType: z.never().optional()
|
|
2273
|
+
};
|
|
2274
|
+
const mediaBaseSchema = z.object({
|
|
2275
|
+
...mediaUsageShape,
|
|
2276
|
+
...environmentExclusions,
|
|
2277
|
+
identifier: mediaIdentifierSchema
|
|
2278
|
+
}).strict();
|
|
2118
2279
|
const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
|
|
2119
2280
|
const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
|
|
2120
|
-
const
|
|
2121
|
-
const
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
persistableMediaBaseSchema.extend({ type: z.literal("archive") })
|
|
2281
|
+
const mediaSchema = mediaBaseSchema.extend({ type: z.enum(mediaTypeDiscriminants) });
|
|
2282
|
+
const externalMediaSchema = z.object({
|
|
2283
|
+
...mediaUsageShape,
|
|
2284
|
+
...environmentExclusions,
|
|
2285
|
+
type: z.enum(mediaTypeDiscriminants),
|
|
2286
|
+
src: z.string().min(1),
|
|
2287
|
+
identifier: z.never().optional()
|
|
2288
|
+
}).strict();
|
|
2289
|
+
const assetMediaSchema = z.object({
|
|
2290
|
+
...mediaUsageShape,
|
|
2291
|
+
...environmentExclusions,
|
|
2292
|
+
type: z.enum(mediaTypeDiscriminants),
|
|
2293
|
+
asset: renderableMediaAssetSchema,
|
|
2294
|
+
identifier: z.never().optional()
|
|
2295
|
+
}).strict();
|
|
2296
|
+
const runtimeMediaSchema = z.union([
|
|
2297
|
+
mediaSchema,
|
|
2298
|
+
externalMediaSchema,
|
|
2299
|
+
assetMediaSchema
|
|
2140
2300
|
]);
|
|
2141
2301
|
//#endregion
|
|
2142
2302
|
//#region ../theme-core/src/palette/colors.ts
|
|
@@ -8004,6 +8164,21 @@ const boxBackgroundSchema = z.discriminatedUnion("type", [
|
|
|
8004
8164
|
showVideoOnMobile: z.boolean().nullable().optional()
|
|
8005
8165
|
})
|
|
8006
8166
|
]);
|
|
8167
|
+
/** Application rendering sources are admitted separately from saved references. */
|
|
8168
|
+
const runtimeBoxBackgroundSchema = z.discriminatedUnion("type", [
|
|
8169
|
+
boxBackgroundSchema.options[0],
|
|
8170
|
+
boxBackgroundSchema.options[1],
|
|
8171
|
+
boxBackgroundSchema.options[2].extend({ image: z.union([
|
|
8172
|
+
imageMediaSchema,
|
|
8173
|
+
externalMediaSchema.extend({ type: z.literal("image") }),
|
|
8174
|
+
assetMediaSchema.extend({ type: z.literal("image") })
|
|
8175
|
+
]).nullable().optional() }),
|
|
8176
|
+
boxBackgroundSchema.options[3].extend({ image: z.union([
|
|
8177
|
+
videoMediaSchema,
|
|
8178
|
+
externalMediaSchema.extend({ type: z.literal("video") }),
|
|
8179
|
+
assetMediaSchema.extend({ type: z.literal("video") })
|
|
8180
|
+
]).nullable().optional() })
|
|
8181
|
+
]);
|
|
8007
8182
|
function normalizeAuthoringOpacity(value) {
|
|
8008
8183
|
if (!isRecord(value)) return value;
|
|
8009
8184
|
return {
|
|
@@ -16347,4 +16522,4 @@ function ThemedAuthoredButton({ label, href, variant, size, extraClassName, disa
|
|
|
16347
16522
|
});
|
|
16348
16523
|
}
|
|
16349
16524
|
//#endregion
|
|
16350
|
-
export {
|
|
16525
|
+
export { headerInteractionPaletteValues as $, renderableMediaAssetSchema as $n, checkoutCopy as $r, TokenResolver as $t, updateButtonStyleHoverPreference as A, unsafeAsPositiveByteCount as Ai, DEFAULT_SURFACE_TEXT_COLOR as An, makeBoundaryId as Ar, NAV_LINK_PADDING_MAP as At, generateInteractiveChildInheritanceCSS as B, hexColorSchema as Bn, generateFontFaceCss as Br, LABEL_FONT_SIZE_MAP as Bt, MinusIcon as C, parseUserId as Ci, defaultThemeTokens as Cn, designIssueSeverityForPolicy as Cr, selectLogoAccommodation as Ct, defaultButtonStyleSelectionFor as D, unsafeAsFormId as Di, featuresFromHex as Dn, flushPanelFrame as Dr, parseCustomCssRules as Dt, buttonStyleSelectionParameterValue as E, unsafeAsCustomerPassId as Ei, relativeLuminance as En, featureCardCompositionTreatmentValues as Er, parseBlockCustomCssRules as Et, generateButtonActionLayoutCss as F, err as Fi, generateShadowValue$1 as Fn, requireNonEmptyReadonlyArray as Fr, navLinkOwnsUnderline as Ft, corners as G, paletteValueKey as Gn, themeColorShadeSteps as Gr, ICON_CONFIG as Gt, parseThemeForPersistence as H, paletteColorsEqual as Hn, VARIANT_ROLES as Hr, ACCORDION_SPACING_MAP as Ht, generateButtonCss as I, ok as Ii, cardRoleSchema as In, testimonialsCompositionTreatmentValues as Ir, navEffectPolicy as It, themeSchema as J, imageMediaSchema as Jn, SpinnerNode as Jr, renderCssDeclarations as Jt, headerPositioningValues as K, paletteValueKeySchema as Kn, parseBlockColorToken as Kr, ICON_SIZE_PX as Kt, generateDefaultButtonSystem as L, __commonJSMin as Li, cardRoleValues as Ln, tileTreatmentValues as Lr, FONT_WEIGHT_MAP$1 as Lt, buttonStyleSelectionKey as M, unsafeAsSiteId as Mi, surfaceForegroundInputFromResolved as Mn, offeringsPreviewCompositionTreatmentValues as Mr, NAV_LINK_TEXT_SIZE_MAP as Mt, buttonStyleSelectionSchema as N, unsafeAsStorageBucketName as Ni, surfaceForegroundStyle as Nn, panelFrame as Nr, navLinkHoverColorCandidate as Nt, findButtonStyleRecipe as O, unsafeAsMediaAssetId as Oi, hexToRgb as On, headingDecorationColorTokenValues as Or, NAV_LINK_BORDER_RADIUS_MAP as Ot, buttonStyleSelectionsEqual as P, unsafeAsStoragePath as Pi, surfaceForegroundValue as Pn, plainFrame as Pr, navLinkOwnsHoverForeground as Pt, headerInteractionPalettePair as Q, buildRenderableMediaAssetIndex as Qn, parseEventRegistrationErrorReason as Qr, toAccessibleColorSurfaceIntent as Qt, generateEffectsCSS as R, __exportAll as Ri, cardVariantRoleValues as Rn, visibleHeadingDecorationFamilyValues as Rr, INPUT_FONT_SIZE_MAP as Rt, FileTextIcon as S, parseSiteId as Si, buildThemeTokens as Sn, defineFrameCapability as Sr, resolveBrandDisplay as St, buttonStyleHoverPreferenceValue as T, unsafeAsAppointmentServiceId as Ti, contrastRatio as Tn, eyebrowTreatmentValues as Tr, getComponentShadowVar as Tt, cardStylesOverrideSchema as U, paletteColorsSchema as Un, unsafeAsOpaqueButtonColourToken as Ur, ACCORDION_TRIGGER_FONT_SCALE as Ut, parseThemeButtonVariantId as V, paletteColorEntries as Vn, getSiteFontsStorageUrl as Vr, ACCORDION_OPEN_ACCENT_THICKNESS as Vt, containerStylesOverrideSchema as W, paletteModeSchema as Wn, parseThemeColorToken as Wr, ACCORDION_TRIGGER_LETTER_SPACING as Wt, boxBackgroundSchema as X, mediaSchema as Xn, checkBrowserStripeKey as Xr, resolveSurface as Xt, boxBackgroundOverlaySchema as Y, mediaPosterSchema as Yn, clsx as Yr, contrastThresholdByPolicy as Yt, runtimeBoxBackgroundSchema as Z, runtimeMediaSchema as Zn, eventRegistrationErrors as Zr, surfaceDecorationColors as Zt, CirclePlusIcon as _, parseEventOfferingId as _i, resolveSurfaceForeground as _n, asPageFlowPresetId as _r, stripStaleTransitionStyleGroup as _t, ThemedDownloadLink as a, repriceBookingCollectionOptions as ai, textColorStyle as an, resolveSdkFooterMode as ar, BREAKPOINT_LG as at, FileAudioIcon as b, parsePageId as bi, planForegroundHover as bn, defineBlockDesignCapability as br, deterministicLogoFactsForShape as bt, isKnownIconName as c, getBookingLaterInstalments as ci, opaqueSurfaceDeclarations as cn, asBlockContentVersionId as cr, MQ_MD_DOWN as ct, resolveIconPickerPreset as d, formatCurrencyAmount as di, resolveThemeColorReferenceValue as dn, asDesignBlockId as dr, MQ_TABLET_ONLY as dt, getStripeMinimumChargeRequirement as ei, backgroundColorStyle as en, indexRenderableMediaAssets as er, headerInteractionQuietPalette as et, SEMANTIC_ICON_DEFINITIONS as f, expectParsedBrandedId as fi, resolveTokenOrCssColorValue as fn, asDesignBoundaryId as fr, headerVariantValues as ft, CircleMinusIcon as g, parseEditorClientId as gi, surfaceToneFromForegroundToken as gn, asLayoutVariantKey as gr, siteChromeBackgroundOverrideOwner as gt, ChevronDownIcon as h, parseContentVersionId as hi, selectLogoVariant as hn, asDesignSystemTemplateId as hr, pageDesignEditorBackgroundOverrideOwner as ht, ThemedButtonSpecimen as i, isBookingCollectionEquivalentToUpfront as ii, rgbColorValue as in, footerModeSchema as ir, renderHeaderPaintTargetRules as it, updateButtonStyleSelectionChoice as j, unsafeAsPositiveSeconds as ji, surfaceForegroundDeclarations as jn, noHeadingDecoration as jr, NAV_LINK_PADDING_X_MAP as jt, resolveButtonStyleSelection as k, unsafeAsPassId as ki, rgbToHex as kn, introCompositionTreatmentValues as kr, NAV_LINK_LETTER_SPACING_MAP as kt, ICON_PICKER_PRESETS as l, validateBookingPaymentOptionKinds as li, isCssColorLiteral as ln, asBlockOrderIndex as lr, MQ_SM_DOWN as lt, ArrowDownIcon as m, parseContentEntryId as mi, PUBLIC_BUTTON_ROLES as mn, asDesignPageId as mr, isThemeV2NormalEditorRawStylePath as mt, ThemedButton as n, planCheckoutPaymentFlow as ni, cssVarValue as nn, mediaIdentifierSchema as nr, generateMobileOverlayBackdropFilterFix as nt, getIconComponent as o, resolveAvailableBookingCollectionOptions as oi, textColorValue as on, skinTokenCssVars as or, BREAKPOINT_XL as ot, isSemanticIconId as p, parseApiKeyId as pi, generateShadowValue as pn, asDesignEntryId as pr, isThemeV2NormalEditorRawStyleFieldName as pt, sectionStylesOverrideSchema as q, requirePaletteColorsFromEntries as qn, parseColorTokenParts as qr, generateCardCss as qt, ThemedButtonLink as r, planFlexibleBalanceCreditFirst as ri, mergeStyles as rn, parseCanonicalMediaIdentifier as rr, getHeaderPaintTargets as rt, getIconPickerOptionsForPreset as s, resolveBookingCollectionOptionFacts as si, opaqueSurfaceContextFromTheme as sn, asAppearancePresetId as sr, MQ_LG_UP as st, ThemedAuthoredButton as t, confirmationPaymentSchema as ti, borderColorStyle as tn, resolveManagedMediaReference as tr, generateHeaderScrollTreatmentStyles as tt, isIconPickerPreset as u, getBookingInstalmentPlanIntervalCount as ui, resolveOnColorForThemeToken as un, asBoundaryOptionId as ur, MQ_SM_UP as ut, ClockIcon as v, parseEventSeriesId as vi, expandPalette as vn, asSiteStyleId as vr, themeV2RuntimeStyleFieldNames as vt, PlusIcon as w, unsafeAsAppointmentResourceId as wi, ORDINARY_TEXT_MIN_CONTRAST_RATIO as wn, eventListTreatmentValues as wr, getComponentBorderWidthPx as wt, FileSpreadsheetIcon as x, parsePageSurfaceId as xi, resolveConcreteColorHex as xn, defineExactCatalog as xr, logoSizePolicyValues as xt, FileArchiveIcon as y, parseFormId as yi, getTextColorForBackground as yn, assertNever as yr, brandDisplayModeValues as yt, generateBaseInteractiveCSS as z, __toESM as zi, normalizeCardRole as zn, buildFontPreviewUrl as zr, INPUT_SPACING_MAP as zt };
|