@riverbankcms/sdk 0.104.3 → 0.107.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/README.md +84 -51
- package/dist/{PreviewEditorSidebar-CBMhU9p_.mjs → PreviewEditorSidebar-DpAbAl08.mjs} +1811 -1179
- package/dist/{PreviewEditorUI-C5KEw4M8.mjs → PreviewEditorUI-O7cn6Xxv.mjs} +3 -3
- package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-D0tnKl0t.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Iq12HjL7.mjs → SdkPreviewModeRuntime-CVB7urtl.mjs} +2144 -393
- package/dist/{SiteChromeCustomizeContext-Cx0NMdyv.mjs → SiteChromeCustomizeContext-C_sizso-.mjs} +3825 -2653
- package/dist/_dts/ai/src/contracts/proposals.d.ts +32945 -1339
- package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +6 -15
- package/dist/_dts/api/src/courses.d.ts +68 -10
- package/dist/_dts/api/src/endpoints.d.ts +29 -0
- package/dist/_dts/api/src/index.d.ts +124 -124
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +116 -6
- package/dist/_dts/api/src/siteOperations.d.ts +1 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +26 -4
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +31 -46
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
- package/dist/_dts/blocks/src/definitions.d.ts +1 -1
- package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
- package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
- package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
- package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +7 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +7 -0
- package/dist/_dts/core/src/branded.d.ts +44 -0
- package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
- package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
- package/dist/_dts/core/src/index.d.ts +49 -47
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1452 -15
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
- package/dist/_dts/media-core/src/index.d.ts +2 -1
- package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
- package/dist/_dts/media-core/src/url.d.ts +1 -21
- package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
- package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -9
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -11
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -9
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
- package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
- package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
- package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +132 -23
- package/dist/_dts/sdk/src/client/types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/types.d.ts +1 -1
- package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +23 -3
- package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
- package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
- package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
- package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
- package/dist/_dts/sdk/src/data/index.d.ts +3 -3
- package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
- package/dist/_dts/sdk/src/data/types.d.ts +43 -78
- package/dist/_dts/sdk/src/next/index.d.ts +1 -0
- package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
- package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +10 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -8
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +9 -4
- package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
- package/dist/_dts/sdk/src/server.d.ts +4 -3
- package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
- package/dist/_dts/site-commands/src/commands.d.ts +921 -30
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +9 -5
- package/dist/_dts/theme-core/src/data.d.ts +12 -0
- package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
- package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +10 -5
- package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -236
- package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
- package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
- package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
- package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
- package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
- package/dist/_dts/theme-core/src/palette/index.d.ts +0 -4
- package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
- package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -72
- package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
- package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
- package/dist/_dts/theme-core/src/schema.d.ts +121 -4
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
- package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
- package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +161 -51
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +6 -0
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
- package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
- package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
- package/dist/cli/index.mjs +3155 -1701
- package/dist/client/{DiscountCodeDisclosure-BXM73_E5.mjs → DiscountCodeDisclosure-BwGkvmVH.mjs} +1 -1
- package/dist/client/{EventCombined.client-DT5elP7j.mjs → EventCombined.client-JnWE6Hzc.mjs} +3 -3
- package/dist/client/{EventListing.client-pTYGfV9C.mjs → EventListing.client-DQewc_kg.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-dQrhlUe3.mjs → LeafletStaticMap-DPAU3SFt.mjs} +1 -1
- package/dist/client/{MagicLinkForm-u6Dul4j5.mjs → MagicLinkForm-D4kpWCbW.mjs} +2 -2
- package/dist/client/{StepIndicator-nWqineJ2.mjs → StepIndicator-CBlkb4rA.mjs} +2 -2
- package/dist/client/{accordion-CSJcTUyH.mjs → accordion-DAIBVpTS.mjs} +1 -1
- package/dist/client/{bookingForm-C73wOuVa.mjs → bookingForm-DZ-4l5_1.mjs} +7 -7
- package/dist/client/bookings.mjs +239 -110
- package/dist/client/{buttons-DfYyqt8C.mjs → buttons-DJgynGHQ.mjs} +122 -58
- package/dist/client/{carousel-fMBb0JSc.mjs → carousel-D-SLfX8r.mjs} +1 -1
- package/dist/client/{cart-BtaCwT3S.mjs → cart-CEgbgJhX.mjs} +3 -3
- package/dist/client/{checkout-DkTwZSnh.mjs → checkout-CXWrCRAA.mjs} +3 -3
- package/dist/client/client.mjs +4300 -1560
- package/dist/client/{colorStyles-Wyl6JujD.mjs → colorStyles-jZS6KfkP.mjs} +1 -1
- package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
- package/dist/client/{courseRegistration-DnLmapJu.mjs → courseRegistration-DVmLrRVz.mjs} +56 -21
- package/dist/client/{eventCalendar-BvLOc9KY.mjs → eventCalendar-DCuyPY_c.mjs} +29 -21
- package/dist/client/{eventCombined-kShgJPQr.mjs → eventCombined-kP2CA2D4.mjs} +2 -2
- package/dist/client/{eventDetails-C5NTM0Vo.mjs → eventDetails-DU0LeF5e.mjs} +4 -4
- package/dist/client/{eventListing-B82ZdKP6.mjs → eventListing-CcHF87BI.mjs} +2 -2
- package/dist/client/{eventRegistration-qJVFqBWo.mjs → eventRegistration-DJnR0yFH.mjs} +8 -8
- package/dist/client/{form-BvAcKiuu.mjs → form-CH1lCusH.mjs} +2 -2
- package/dist/client/{headerSection-NvAiEHAg.mjs → headerSection-CBPFZoku.mjs} +3 -3
- package/dist/client/hooks.mjs +2958 -1848
- package/dist/client/{locationMap-D0j52xfI.mjs → locationMap-Cx1hBg5n.mjs} +3 -3
- package/dist/client/{media-BCW_g2cQ.mjs → media-DHtSxS5V.mjs} +61 -56
- package/dist/client/{newsletterForm-B8_i93qH.mjs → newsletterForm-1ZL_ti9u.mjs} +3 -3
- package/dist/client/{pricing-DIYnyHOk.mjs → pricing-BIbzmV0G.mjs} +1 -1
- package/dist/client/{productDetail-w0eAHkuQ.mjs → productDetail-BTh5gHBV.mjs} +3 -3
- package/dist/client/{productList-Vsguq5Xt.mjs → productList-Cc7OMrqN.mjs} +3 -3
- package/dist/client/{propsDecoder-CD2pJ1WB.mjs → propsDecoder-oR-M-ISN.mjs} +192 -59
- package/dist/client/rendering/client.mjs +2031 -1239
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +4889 -1712
- package/dist/client/{shop-Dgxs-Q8F.mjs → shop-CQ_YbCnn.mjs} +8 -8
- package/dist/client/{shop-commerce-DJAhsTaT.mjs → shop-commerce-BM-AoD3M.mjs} +6 -6
- package/dist/client/{shop-commerce-store-CfCXltXW.mjs → shop-commerce-store-DFMQhU5p.mjs} +1 -1
- package/dist/client/{shopShared-CmDcPXUt.mjs → shopShared-D0SKO2Cu.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-CirrT2bM.mjs → useDiscountCodeUi-CrG4_ARt.mjs} +1 -1
- package/dist/client/{useEventFilters-CNZxlCcO.mjs → useEventFilters-CxK8Fekl.mjs} +6 -6
- package/dist/client/{usePolling-Baks_iBI.mjs → usePolling-jcVryNgZ.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +40 -1
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +40 -1
- package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-BPcJPzdz.mjs} +40 -1
- package/dist/{sdk-runtime-BfNiFeNJ.mjs → sdk-runtime-C39Rsk-x.mjs} +2 -2
- package/dist/{separator-BhAR_Xmf.mjs → separator-BoMSQnsP.mjs} +1 -1
- package/dist/server/components.mjs +4661 -2162
- package/dist/server/config-validation.mjs +2728 -1847
- package/dist/server/config.mjs +2728 -1847
- package/dist/server/data.mjs +3381 -1915
- package/dist/server/index.mjs +46 -4
- package/dist/server/next/middleware.mjs +1 -1
- package/dist/server/next.mjs +5555 -2225
- package/dist/server/page-converter.mjs +3058 -2182
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4850 -2125
- package/dist/server/rendering.mjs +5664 -2464
- package/dist/server/routing.mjs +3027 -1509
- package/dist/server/server.mjs +3844 -2217
- package/dist/server/theme-bridge.mjs +9121 -7765
- package/dist/server/theme.mjs +152 -59
- package/dist/styles/index.css +1217 -31
- package/package.json +1 -1
- package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
- package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +0 -44
- package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
- package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -45
- package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -234
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { a as textColorStyle, n as borderColorStyle, r as mergeStyles, t as backgroundColorStyle } from "./colorStyles-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
|
+
import { a as textColorStyle, n as borderColorStyle, r as mergeStyles, t as backgroundColorStyle } from "./colorStyles-jZS6KfkP.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
4
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-DPAU3SFt.mjs";
|
|
5
5
|
import "react";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
//#region ../core/src/location.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { a as textColorStyle, r as mergeStyles, t as backgroundColorStyle } from "./colorStyles-
|
|
2
|
+
import { d as unsafeAsMediaAssetId, g as ok$1, h as err, i as resolveMediaTransformForAspect, m as unsafeAsStoragePath, n as isExplicitRectCrop, p as unsafeAsStorageBucketName, r as parseAspectRatioValue } from "./colorTokenParts-CMugwvX_.mjs";
|
|
3
|
+
import { a as textColorStyle, r as mergeStyles, t as backgroundColorStyle } from "./colorStyles-jZS6KfkP.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../media-core/src/fileSafety.ts
|
|
@@ -28,19 +28,48 @@ function parseStoragePath(value) {
|
|
|
28
28
|
*/
|
|
29
29
|
function joinStoragePathSegments(segments) {
|
|
30
30
|
if (segments.some(isUnsafePathSegment)) return err("unsafe-path-segment");
|
|
31
|
-
return ok(unsafeAsStoragePath(segments.join("/")));
|
|
31
|
+
return ok$1(unsafeAsStoragePath(segments.join("/")));
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region ../media-core/src/storagePathDomain.ts
|
|
35
|
+
function ok(value) {
|
|
36
|
+
return {
|
|
37
|
+
ok: true,
|
|
38
|
+
value
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function fail(error) {
|
|
42
|
+
return {
|
|
43
|
+
ok: false,
|
|
44
|
+
error
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function normalizeStringInput(value) {
|
|
48
|
+
if (typeof value !== "string") return fail({ tag: "MISSING" });
|
|
49
|
+
const trimmed = value.trim();
|
|
50
|
+
if (!trimmed) return fail({ tag: "EMPTY" });
|
|
51
|
+
return ok(trimmed);
|
|
52
|
+
}
|
|
53
|
+
function validateRelativeStoragePath(value) {
|
|
54
|
+
if (value.startsWith("sites/")) return fail({ tag: "SITE_SCOPED_PATH" });
|
|
55
|
+
if (value.startsWith("/")) return fail({ tag: "LEADING_SLASH" });
|
|
56
|
+
if (value.includes("//")) return fail({ tag: "DOUBLE_SLASH" });
|
|
57
|
+
if (value.split("/").some((segment) => segment === "..")) return fail({ tag: "TRAVERSAL" });
|
|
58
|
+
return ok(value);
|
|
59
|
+
}
|
|
60
|
+
function brandRelativeStoragePath(value) {
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
function parseRelativeStoragePath(value) {
|
|
64
|
+
const normalized = normalizeStringInput(value);
|
|
65
|
+
if (!normalized.ok) return normalized;
|
|
66
|
+
const validated = validateRelativeStoragePath(normalized.value);
|
|
67
|
+
if (!validated.ok) return validated;
|
|
68
|
+
return ok(brandRelativeStoragePath(validated.value));
|
|
32
69
|
}
|
|
33
70
|
//#endregion
|
|
34
71
|
//#region ../media-core/src/url.ts
|
|
35
72
|
const DEFAULT_BASE_PATH = "/api/img";
|
|
36
|
-
const RELATIVE_STORAGE_PATH_PREFIXES = [
|
|
37
|
-
"originals/",
|
|
38
|
-
"variants/",
|
|
39
|
-
"imports/"
|
|
40
|
-
];
|
|
41
|
-
function isRelativeDirectImageStoragePath(storagePath) {
|
|
42
|
-
return RELATIVE_STORAGE_PATH_PREFIXES.some((prefix) => storagePath.startsWith(prefix)) && parseStoragePath(storagePath).ok;
|
|
43
|
-
}
|
|
44
73
|
function isSiteScopedDirectImageStoragePath(storagePath) {
|
|
45
74
|
return storagePath.startsWith("sites/") && parseStoragePath(storagePath).ok;
|
|
46
75
|
}
|
|
@@ -54,7 +83,7 @@ function resolveDirectImagePathTarget(target) {
|
|
|
54
83
|
case "bucket-scoped": return target.storagePath;
|
|
55
84
|
}
|
|
56
85
|
}
|
|
57
|
-
function
|
|
86
|
+
function getDirectImageUrl(supabaseUrl, target, storageBucket = "media", options) {
|
|
58
87
|
const baseUrl = supabaseUrl.replace(/\/$/, "");
|
|
59
88
|
const encodedPath = encodeStoragePath(resolveDirectImagePathTarget(target));
|
|
60
89
|
const isSvg = target.storagePath.toLowerCase().endsWith(".svg");
|
|
@@ -69,55 +98,18 @@ function buildDirectImageUrl(supabaseUrl, target, storageBucket = "media", optio
|
|
|
69
98
|
return `${baseUrl}/storage/v1/object/public/${storageBucket}/${encodedPath}`;
|
|
70
99
|
}
|
|
71
100
|
function getDirectImageUrlForRelativePath(supabaseUrl, storagePath, siteId, storageBucket = "media", options) {
|
|
72
|
-
return
|
|
101
|
+
return getDirectImageUrl(supabaseUrl, {
|
|
73
102
|
kind: "relative",
|
|
74
103
|
storagePath,
|
|
75
104
|
siteId
|
|
76
105
|
}, storageBucket, options);
|
|
77
106
|
}
|
|
78
107
|
function getDirectImageUrlForSiteScopedPath(supabaseUrl, storagePath, storageBucket = "media", options) {
|
|
79
|
-
return
|
|
108
|
+
return getDirectImageUrl(supabaseUrl, {
|
|
80
109
|
kind: "site-scoped",
|
|
81
110
|
storagePath
|
|
82
111
|
}, storageBucket, options);
|
|
83
112
|
}
|
|
84
|
-
function getDirectImageUrlForBucketPath(supabaseUrl, storagePath, storageBucket = "media", options) {
|
|
85
|
-
return buildDirectImageUrl(supabaseUrl, {
|
|
86
|
-
kind: "bucket-scoped",
|
|
87
|
-
storagePath
|
|
88
|
-
}, storageBucket, options);
|
|
89
|
-
}
|
|
90
|
-
function getDirectImageUrlForStoragePath(supabaseUrl, storagePath, storageBucket = "media", siteId, options) {
|
|
91
|
-
if (isRelativeDirectImageStoragePath(storagePath) && siteId) return getDirectImageUrlForRelativePath(supabaseUrl, storagePath, siteId, storageBucket, options);
|
|
92
|
-
if (isSiteScopedDirectImageStoragePath(storagePath)) return getDirectImageUrlForSiteScopedPath(supabaseUrl, storagePath, storageBucket, options);
|
|
93
|
-
return getDirectImageUrl(supabaseUrl, storagePath, storageBucket, siteId, options);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* @deprecated Prefer `getDirectImageUrlForMediaAsset`, `getDirectImageUrlForRelativePath`,
|
|
97
|
-
* `getDirectImageUrlForSiteScopedPath`, or `getDirectImageUrlForBucketPath` so path shape
|
|
98
|
-
* is explicit at the call site.
|
|
99
|
-
*
|
|
100
|
-
* Build a direct Supabase storage URL for an image.
|
|
101
|
-
*
|
|
102
|
-
* For images with transform options, uses the render endpoint which applies
|
|
103
|
-
* server-side transformations. For images without transforms (or SVGs),
|
|
104
|
-
* returns the direct public object URL.
|
|
105
|
-
*
|
|
106
|
-
* @param supabaseUrl - Supabase project URL (e.g., https://xxx.supabase.co)
|
|
107
|
-
* @param storagePath - Relative path within the bucket (e.g., originals/2024/12/img.png)
|
|
108
|
-
* @param storageBucket - Storage bucket name (default: 'media')
|
|
109
|
-
* @param siteId - Site UUID to prepend as path prefix
|
|
110
|
-
* @param options - Optional transform parameters
|
|
111
|
-
* @returns Direct URL to the image
|
|
112
|
-
*/
|
|
113
|
-
function getDirectImageUrl(supabaseUrl, storagePath, storageBucket = "media", siteId, options) {
|
|
114
|
-
if (isSiteScopedDirectImageStoragePath(storagePath)) {
|
|
115
|
-
if (siteId && true) console.warn(`[media-core] storagePath "${storagePath}" already contains site prefix. Using path as-is for backward compatibility. After migration, paths should be relative (e.g., "originals/2024/12/img.jpg").`);
|
|
116
|
-
return getDirectImageUrlForSiteScopedPath(supabaseUrl, storagePath, storageBucket, options);
|
|
117
|
-
}
|
|
118
|
-
if (siteId && isRelativeDirectImageStoragePath(storagePath)) return getDirectImageUrlForRelativePath(supabaseUrl, storagePath, siteId, storageBucket, options);
|
|
119
|
-
return getDirectImageUrlForBucketPath(supabaseUrl, storagePath, storageBucket, options);
|
|
120
|
-
}
|
|
121
113
|
const formatNumber = (value) => Number.isInteger(value) ? value.toString() : value.toFixed(6).replace(/0+$/, "").replace(/\.$/, "");
|
|
122
114
|
const ORDER = [
|
|
123
115
|
"w",
|
|
@@ -763,6 +755,9 @@ function warnForMediaUrlResolution(result) {
|
|
|
763
755
|
case "missing-supabase-url":
|
|
764
756
|
console.warn(`[blocks] ${result.message} Media URL may be unavailable. Ensure NEXT_PUBLIC_SUPABASE_URL is configured or pass supabaseUrl in the media context.`);
|
|
765
757
|
return;
|
|
758
|
+
case "invalid-storage-path":
|
|
759
|
+
console.warn(`[blocks] Invalid media storagePath "${result.storagePath}".`);
|
|
760
|
+
return;
|
|
766
761
|
case "resolved":
|
|
767
762
|
case "unsupported-media-type":
|
|
768
763
|
case "missing-storage-path":
|
|
@@ -778,10 +773,7 @@ function resolveMediaStorageUrlResult(value, context, transformOptions) {
|
|
|
778
773
|
};
|
|
779
774
|
const siteId = context?.siteId ?? getSiteId();
|
|
780
775
|
const bucket = canonical.storageBucket ?? "media";
|
|
781
|
-
|
|
782
|
-
kind: "missing-site-context",
|
|
783
|
-
storagePath: canonical.storagePath
|
|
784
|
-
};
|
|
776
|
+
const siteScopedPath = isSiteScopedDirectImageStoragePath(canonical.storagePath) ? canonical.storagePath : null;
|
|
785
777
|
let supabaseUrl;
|
|
786
778
|
try {
|
|
787
779
|
supabaseUrl = context?.supabaseUrl?.replace(/\/$/, "") ?? getSupabaseUrl();
|
|
@@ -791,7 +783,20 @@ function resolveMediaStorageUrlResult(value, context, transformOptions) {
|
|
|
791
783
|
message: error instanceof Error ? error.message : "Supabase URL is not configured."
|
|
792
784
|
};
|
|
793
785
|
}
|
|
794
|
-
|
|
786
|
+
let directUrl;
|
|
787
|
+
if (siteScopedPath) directUrl = getDirectImageUrlForSiteScopedPath(supabaseUrl, siteScopedPath, bucket, transformOptions);
|
|
788
|
+
else {
|
|
789
|
+
const relativePath = parseRelativeStoragePath(canonical.storagePath);
|
|
790
|
+
if (!relativePath.ok) return {
|
|
791
|
+
kind: "invalid-storage-path",
|
|
792
|
+
storagePath: canonical.storagePath
|
|
793
|
+
};
|
|
794
|
+
if (!siteId) return {
|
|
795
|
+
kind: "missing-site-context",
|
|
796
|
+
storagePath: canonical.storagePath
|
|
797
|
+
};
|
|
798
|
+
directUrl = getDirectImageUrlForRelativePath(supabaseUrl, relativePath.value, siteId, bucket, transformOptions);
|
|
799
|
+
}
|
|
795
800
|
debugMediaNodeLog("resolve:direct-supabase", {
|
|
796
801
|
storagePath: canonical.storagePath,
|
|
797
802
|
siteId,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
3
|
-
import { _t as assertNever, t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
3
|
+
import { _t as assertNever, t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
4
4
|
import { n as useBlockApi, t as BlockApiProvider } from "./context-BGZNlGXB.mjs";
|
|
5
5
|
import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
|
|
6
|
-
import { t as themeButtonClassName } from "./buttons-
|
|
6
|
+
import { t as themeButtonClassName } from "./buttons-DJgynGHQ.mjs";
|
|
7
7
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
8
8
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
9
9
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
@@ -250,7 +250,7 @@ function NewsletterFormClient({ render }) {
|
|
|
250
250
|
children: /* @__PURE__ */ jsx("button", {
|
|
251
251
|
type: "submit",
|
|
252
252
|
className: themeButtonClassName({
|
|
253
|
-
variant:
|
|
253
|
+
variant: render.display.buttonVariant,
|
|
254
254
|
size: "md"
|
|
255
255
|
}),
|
|
256
256
|
disabled: isNewsletterFormSubmitting(submissionState),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { It as formatBookingPriceDisplay } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
2
|
//#region ../core/src/planner.ts
|
|
3
3
|
/** Default clock for production callers that do not inject time explicitly. */
|
|
4
4
|
const systemPlanningClock = { now: () => Date.now() };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { r as ProductDetailController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
|
+
import { r as ProductDetailController } from "./shop-commerce-BM-AoD3M.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-D0SKO2Cu.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/product-detail.client.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { i as ProductListController } from "./shop-commerce-
|
|
3
|
-
import { t as mountShopBlockIsland } from "./shopShared-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
|
+
import { i as ProductListController } from "./shop-commerce-BM-AoD3M.mjs";
|
|
3
|
+
import { t as mountShopBlockIsland } from "./shopShared-D0SKO2Cu.mjs";
|
|
4
4
|
import "react";
|
|
5
5
|
import { jsx } from "react/jsx-runtime";
|
|
6
6
|
//#region ../blocks/src/system/runtime/nodes/product-list.client.tsx
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as parseEventOfferingId, g as ok$1, h as err$1, o as parseEventSeriesId, r as parseAspectRatioValue, t as parseColorTokenParts } from "./colorTokenParts-CMugwvX_.mjs";
|
|
2
2
|
import z, { z as z$1 } from "zod";
|
|
3
3
|
//#region ../core/src/assert-never.ts
|
|
4
4
|
function assertNever$2(value, message = "Unexpected variant") {
|
|
@@ -141,6 +141,55 @@ function formatEventPricing(pricing, options = {}) {
|
|
|
141
141
|
return formatBookingPriceDisplay(publicEventPricingDisplay(pricing), options);
|
|
142
142
|
}
|
|
143
143
|
//#endregion
|
|
144
|
+
//#region ../core/src/event-page-surface-subject.ts
|
|
145
|
+
function parseEventPageSurfaceSubject(value) {
|
|
146
|
+
if (!isRecord$5(value)) return err$1({ kind: "notObject" });
|
|
147
|
+
switch (value.kind) {
|
|
148
|
+
case "eventSeries": {
|
|
149
|
+
const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
|
|
150
|
+
return eventSeriesId.ok ? ok$1({
|
|
151
|
+
kind: "eventSeries",
|
|
152
|
+
eventSeriesId: eventSeriesId.value
|
|
153
|
+
}) : err$1({
|
|
154
|
+
kind: "invalidEventSeriesId",
|
|
155
|
+
error: eventSeriesId.error
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
case "eventOffering": {
|
|
159
|
+
const eventOfferingId = parseEventOfferingId(value.eventOfferingId);
|
|
160
|
+
if (!eventOfferingId.ok) return err$1({
|
|
161
|
+
kind: "invalidEventOfferingId",
|
|
162
|
+
error: eventOfferingId.error
|
|
163
|
+
});
|
|
164
|
+
if (!Array.isArray(value.availableEventSeriesIds)) return err$1({
|
|
165
|
+
kind: "unsupportedSubject",
|
|
166
|
+
subjectKind: value.kind
|
|
167
|
+
});
|
|
168
|
+
const parsedSeriesIds = [];
|
|
169
|
+
for (const valueId of value.availableEventSeriesIds) {
|
|
170
|
+
const eventSeriesId = parseEventSeriesId(valueId);
|
|
171
|
+
if (!eventSeriesId.ok) return err$1({
|
|
172
|
+
kind: "invalidEventSeriesId",
|
|
173
|
+
error: eventSeriesId.error
|
|
174
|
+
});
|
|
175
|
+
parsedSeriesIds.push(eventSeriesId.value);
|
|
176
|
+
}
|
|
177
|
+
return ok$1({
|
|
178
|
+
kind: "eventOffering",
|
|
179
|
+
eventOfferingId: eventOfferingId.value,
|
|
180
|
+
availableEventSeriesIds: parsedSeriesIds
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
default: return err$1({
|
|
184
|
+
kind: "unsupportedSubject",
|
|
185
|
+
subjectKind: value.kind
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
function isRecord$5(value) {
|
|
190
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
191
|
+
}
|
|
192
|
+
//#endregion
|
|
144
193
|
//#region ../core/src/booking-date-time.ts
|
|
145
194
|
const DEFAULT_LOCALE = "en-US";
|
|
146
195
|
const FALLBACK_TIMEZONE = "UTC";
|
|
@@ -1358,6 +1407,7 @@ const coursePricingSchema = z$1.object({
|
|
|
1358
1407
|
*/
|
|
1359
1408
|
const publicCourseSchema = z$1.object({
|
|
1360
1409
|
id: z$1.string(),
|
|
1410
|
+
seriesId: z$1.string(),
|
|
1361
1411
|
title: z$1.string(),
|
|
1362
1412
|
slug: z$1.string(),
|
|
1363
1413
|
description: z$1.unknown().nullable(),
|
|
@@ -1463,6 +1513,68 @@ const calendarTabViewsSchema = z$1.enum([
|
|
|
1463
1513
|
"month",
|
|
1464
1514
|
"week"
|
|
1465
1515
|
]);
|
|
1516
|
+
const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
|
|
1517
|
+
kind: z$1.literal("unsupported"),
|
|
1518
|
+
reason: z$1.enum([
|
|
1519
|
+
"unsupportedSubject",
|
|
1520
|
+
"invalidEventSeriesId",
|
|
1521
|
+
"invalidEventOfferingId"
|
|
1522
|
+
])
|
|
1523
|
+
});
|
|
1524
|
+
const eventRegistrationPageSurfaceSubjectSchema = z$1.unknown().transform((value, ctx) => {
|
|
1525
|
+
const unsupported = unsupportedEventRegistrationPageSurfaceSubjectSchema.safeParse(value);
|
|
1526
|
+
if (unsupported.success) return unsupported.data;
|
|
1527
|
+
const parsed = parseEventPageSurfaceSubject(value);
|
|
1528
|
+
if (parsed.ok) return parsed.value;
|
|
1529
|
+
ctx.addIssue({
|
|
1530
|
+
code: z$1.ZodIssueCode.custom,
|
|
1531
|
+
message: `Invalid event page-surface subject (${parsed.error.kind})`
|
|
1532
|
+
});
|
|
1533
|
+
return z$1.NEVER;
|
|
1534
|
+
});
|
|
1535
|
+
function resolveEventRegistrationScope(context) {
|
|
1536
|
+
const occurrenceSeriesId = context.occurrenceContext?.seriesId;
|
|
1537
|
+
if (occurrenceSeriesId) return {
|
|
1538
|
+
kind: "occurrenceSeries",
|
|
1539
|
+
seriesId: occurrenceSeriesId
|
|
1540
|
+
};
|
|
1541
|
+
if (context.subject?.kind === "eventSeries") return {
|
|
1542
|
+
kind: "pageSurfaceSeries",
|
|
1543
|
+
seriesId: context.subject.eventSeriesId
|
|
1544
|
+
};
|
|
1545
|
+
if (context.subject?.kind === "eventOffering") return {
|
|
1546
|
+
kind: "pageSurfaceOffering",
|
|
1547
|
+
offeringId: context.subject.eventOfferingId,
|
|
1548
|
+
seriesIds: context.subject.availableEventSeriesIds
|
|
1549
|
+
};
|
|
1550
|
+
if (context.subject?.kind === "unsupported") return {
|
|
1551
|
+
kind: "unsupportedPageSurfaceSubject",
|
|
1552
|
+
reason: context.subject.reason
|
|
1553
|
+
};
|
|
1554
|
+
const entrySlug = context.contentEntry?.slug;
|
|
1555
|
+
const entryContentType = context.contentEntry?.contentTypeSlug;
|
|
1556
|
+
if (entrySlug && entryContentType && isEventContentType(entryContentType)) return {
|
|
1557
|
+
kind: "legacyEventSlug",
|
|
1558
|
+
slug: entrySlug
|
|
1559
|
+
};
|
|
1560
|
+
return { kind: "unscoped" };
|
|
1561
|
+
}
|
|
1562
|
+
function applyEventRegistrationScope(events, scope) {
|
|
1563
|
+
switch (scope.kind) {
|
|
1564
|
+
case "occurrenceSeries":
|
|
1565
|
+
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
1566
|
+
case "pageSurfaceOffering": {
|
|
1567
|
+
const seriesIds = new Set(scope.seriesIds);
|
|
1568
|
+
return events.filter((event) => seriesIds.has(event.seriesId));
|
|
1569
|
+
}
|
|
1570
|
+
case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
|
|
1571
|
+
case "unsupportedPageSurfaceSubject": return [];
|
|
1572
|
+
case "unscoped": return [...events];
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1575
|
+
function resolveEventRegistrationScopedEvents(events, context) {
|
|
1576
|
+
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
1577
|
+
}
|
|
1466
1578
|
//#endregion
|
|
1467
1579
|
//#region ../blocks/src/system/runtime/nodes/course-registration.interactive.ts
|
|
1468
1580
|
const contentEntrySchema$2 = z$1.object({
|
|
@@ -1488,6 +1600,7 @@ const courseRegistrationSourceSchema = z$1.object({
|
|
|
1488
1600
|
portalToken: z$1.string().nullable().optional(),
|
|
1489
1601
|
contentEntry: contentEntrySchema$2.nullable().optional(),
|
|
1490
1602
|
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
1603
|
+
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
1491
1604
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
1492
1605
|
className: z$1.string().nullable().optional(),
|
|
1493
1606
|
showSessions: z$1.boolean().optional(),
|
|
@@ -1510,6 +1623,7 @@ const courseRegistrationDisplaySchema = z$1.object({
|
|
|
1510
1623
|
const courseRegistrationHydrationSchema = z$1.object({
|
|
1511
1624
|
contentEntry: contentEntrySchema$2.nullable().optional(),
|
|
1512
1625
|
entrySubrouteContext: courseEntrySubrouteContextSchema.nullable().optional(),
|
|
1626
|
+
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
1513
1627
|
courses: z$1.array(publicCourseSchema).nullable().optional(),
|
|
1514
1628
|
showSessions: z$1.boolean().optional(),
|
|
1515
1629
|
showPrice: z$1.boolean().optional(),
|
|
@@ -1536,7 +1650,7 @@ function buildCourseRegistrationDisplay(source) {
|
|
|
1536
1650
|
kind: "course-registration",
|
|
1537
1651
|
state: "shell",
|
|
1538
1652
|
className: source.className ?? null,
|
|
1539
|
-
summaryButtonText: source.buttonText?.trim() || "
|
|
1653
|
+
summaryButtonText: source.buttonText?.trim() || "Sign up"
|
|
1540
1654
|
};
|
|
1541
1655
|
}
|
|
1542
1656
|
const courseRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
@@ -1551,6 +1665,7 @@ const courseRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCod
|
|
|
1551
1665
|
hydration: {
|
|
1552
1666
|
contentEntry: source.contentEntry ?? null,
|
|
1553
1667
|
entrySubrouteContext: source.entrySubrouteContext ?? null,
|
|
1668
|
+
subject: source.subject ?? null,
|
|
1554
1669
|
courses: source.courses ?? null,
|
|
1555
1670
|
showSessions: source.showSessions,
|
|
1556
1671
|
showPrice: source.showPrice,
|
|
@@ -2036,6 +2151,19 @@ const eventPresetSchema = z$1.enum([
|
|
|
2036
2151
|
"performance"
|
|
2037
2152
|
]);
|
|
2038
2153
|
const eventScheduleScopeSchema$3 = z$1.enum(["recurring", "oneOff"]);
|
|
2154
|
+
const publicEventRecurrenceSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
2155
|
+
kind: z$1.literal("weekly"),
|
|
2156
|
+
interval: z$1.number().int().positive(),
|
|
2157
|
+
weekdays: z$1.array(z$1.enum([
|
|
2158
|
+
"MO",
|
|
2159
|
+
"TU",
|
|
2160
|
+
"WE",
|
|
2161
|
+
"TH",
|
|
2162
|
+
"FR",
|
|
2163
|
+
"SA",
|
|
2164
|
+
"SU"
|
|
2165
|
+
]))
|
|
2166
|
+
}).readonly(), z$1.object({ kind: z$1.literal("other") }).readonly()]);
|
|
2039
2167
|
const eventDestinationModeSchema = z$1.enum(["cms-managed", "system-managed"]);
|
|
2040
2168
|
const publicEventDestinationSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
2041
2169
|
kind: z$1.literal("native"),
|
|
@@ -2288,6 +2416,7 @@ const publicEventSchema = z$1.object({
|
|
|
2288
2416
|
eventPreset: eventPresetSchema.optional(),
|
|
2289
2417
|
eventDestinationMode: eventDestinationModeSchema.optional(),
|
|
2290
2418
|
scheduleScope: eventScheduleScopeSchema$3.optional(),
|
|
2419
|
+
recurrence: publicEventRecurrenceSchema.optional(),
|
|
2291
2420
|
id: z$1.string(),
|
|
2292
2421
|
occurrenceId: z$1.string(),
|
|
2293
2422
|
seriesId: z$1.string(),
|
|
@@ -5691,6 +5820,10 @@ const eventCalendarSourceSchema = z$1.object({
|
|
|
5691
5820
|
filterVenueId: z$1.string().nullable().optional(),
|
|
5692
5821
|
buttonVariant: eventButtonVariantSchema.optional(),
|
|
5693
5822
|
buttonText: z$1.string().optional(),
|
|
5823
|
+
boardTitle: z$1.string().optional(),
|
|
5824
|
+
footerNote: z$1.string().optional(),
|
|
5825
|
+
elevated: z$1.boolean().nullable().optional(),
|
|
5826
|
+
banded: z$1.boolean().nullable().optional(),
|
|
5694
5827
|
showVenue: z$1.boolean().nullable().optional(),
|
|
5695
5828
|
showMap: z$1.boolean().nullable().optional(),
|
|
5696
5829
|
showCapacity: z$1.boolean().nullable().optional(),
|
|
@@ -5722,6 +5855,12 @@ const eventCalendarDisplaySchema = z$1.object({
|
|
|
5722
5855
|
filterVenueId: z$1.string().nullable(),
|
|
5723
5856
|
buttonVariant: eventButtonVariantSchema,
|
|
5724
5857
|
buttonText: z$1.string(),
|
|
5858
|
+
boardTitle: z$1.string().optional(),
|
|
5859
|
+
footerNote: z$1.string().optional(),
|
|
5860
|
+
seeAllUrl: z$1.string().optional(),
|
|
5861
|
+
loadMoreText: z$1.string().optional(),
|
|
5862
|
+
elevated: z$1.boolean(),
|
|
5863
|
+
banded: z$1.boolean(),
|
|
5725
5864
|
showVenue: z$1.boolean(),
|
|
5726
5865
|
showMap: z$1.boolean(),
|
|
5727
5866
|
showCapacity: z$1.boolean(),
|
|
@@ -5746,6 +5885,16 @@ const eventCalendarIslandMetaCodec = createZodCodec(z$1.object({
|
|
|
5746
5885
|
stage: previewStageSchema.optional()
|
|
5747
5886
|
}));
|
|
5748
5887
|
const eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys("siteId", "apiBaseUrl", "stage");
|
|
5888
|
+
/**
|
|
5889
|
+
* Collapse an optional/blank string to `undefined` so downstream week-board
|
|
5890
|
+
* copy (title, footer note) and the CTA href stay hidden unless a site opts in
|
|
5891
|
+
* with real content. Keeps the generic default flat and copy-free.
|
|
5892
|
+
*/
|
|
5893
|
+
function normalizeOptionalText(value) {
|
|
5894
|
+
if (typeof value !== "string") return void 0;
|
|
5895
|
+
const trimmed = value.trim();
|
|
5896
|
+
return trimmed.length > 0 ? trimmed : void 0;
|
|
5897
|
+
}
|
|
5749
5898
|
function buildEventCalendarDisplay(source) {
|
|
5750
5899
|
const listLayout = source.listLayout ?? source.layout ?? "stack";
|
|
5751
5900
|
return {
|
|
@@ -5777,6 +5926,12 @@ function buildEventCalendarDisplay(source) {
|
|
|
5777
5926
|
filterVenueId: normalizeEventVenueId(source.filterVenueId),
|
|
5778
5927
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
5779
5928
|
buttonText: source.buttonText ?? "Book",
|
|
5929
|
+
boardTitle: normalizeOptionalText(source.boardTitle),
|
|
5930
|
+
footerNote: normalizeOptionalText(source.footerNote),
|
|
5931
|
+
seeAllUrl: normalizeOptionalText(source.seeAllUrl),
|
|
5932
|
+
loadMoreText: normalizeOptionalText(source.loadMoreText),
|
|
5933
|
+
elevated: source.elevated ?? false,
|
|
5934
|
+
banded: source.banded ?? false,
|
|
5780
5935
|
showVenue: source.showVenue ?? true,
|
|
5781
5936
|
showMap: source.showMap ?? true,
|
|
5782
5937
|
showCapacity: source.showCapacity ?? true,
|
|
@@ -6009,57 +6164,6 @@ const eventCombinedInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
6009
6164
|
stage: value.stage
|
|
6010
6165
|
})
|
|
6011
6166
|
});
|
|
6012
|
-
const eventRegistrationPageSurfaceSubjectSchema = z$1.discriminatedUnion("kind", [z$1.object({
|
|
6013
|
-
kind: z$1.literal("eventSeries"),
|
|
6014
|
-
eventSeriesId: z$1.string().transform((value, ctx) => {
|
|
6015
|
-
const parsed = parseEventSeriesId(value);
|
|
6016
|
-
if (!parsed.ok) {
|
|
6017
|
-
ctx.addIssue({
|
|
6018
|
-
code: z$1.ZodIssueCode.custom,
|
|
6019
|
-
message: `Invalid event series id (${parsed.error.kind})`
|
|
6020
|
-
});
|
|
6021
|
-
return z$1.NEVER;
|
|
6022
|
-
}
|
|
6023
|
-
return parsed.value;
|
|
6024
|
-
})
|
|
6025
|
-
}), z$1.object({
|
|
6026
|
-
kind: z$1.literal("unsupported"),
|
|
6027
|
-
reason: z$1.enum(["unsupportedSubject", "invalidEventSeriesId"])
|
|
6028
|
-
})]);
|
|
6029
|
-
function resolveEventRegistrationScope(context) {
|
|
6030
|
-
const occurrenceSeriesId = context.occurrenceContext?.seriesId;
|
|
6031
|
-
if (occurrenceSeriesId) return {
|
|
6032
|
-
kind: "occurrenceSeries",
|
|
6033
|
-
seriesId: occurrenceSeriesId
|
|
6034
|
-
};
|
|
6035
|
-
if (context.subject?.kind === "eventSeries") return {
|
|
6036
|
-
kind: "pageSurfaceSeries",
|
|
6037
|
-
seriesId: context.subject.eventSeriesId
|
|
6038
|
-
};
|
|
6039
|
-
if (context.subject?.kind === "unsupported") return {
|
|
6040
|
-
kind: "unsupportedPageSurfaceSubject",
|
|
6041
|
-
reason: context.subject.reason
|
|
6042
|
-
};
|
|
6043
|
-
const entrySlug = context.contentEntry?.slug;
|
|
6044
|
-
const entryContentType = context.contentEntry?.contentTypeSlug;
|
|
6045
|
-
if (entrySlug && entryContentType && isEventContentType(entryContentType)) return {
|
|
6046
|
-
kind: "legacyEventSlug",
|
|
6047
|
-
slug: entrySlug
|
|
6048
|
-
};
|
|
6049
|
-
return { kind: "unscoped" };
|
|
6050
|
-
}
|
|
6051
|
-
function applyEventRegistrationScope(events, scope) {
|
|
6052
|
-
switch (scope.kind) {
|
|
6053
|
-
case "occurrenceSeries":
|
|
6054
|
-
case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
|
|
6055
|
-
case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
|
|
6056
|
-
case "unsupportedPageSurfaceSubject": return [];
|
|
6057
|
-
case "unscoped": return [...events];
|
|
6058
|
-
}
|
|
6059
|
-
}
|
|
6060
|
-
function resolveEventRegistrationScopedEvents(events, context) {
|
|
6061
|
-
return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
|
|
6062
|
-
}
|
|
6063
6167
|
//#endregion
|
|
6064
6168
|
//#region ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
6065
6169
|
/**
|
|
@@ -6735,6 +6839,11 @@ const newsletterPresetSchema = z$1.enum([
|
|
|
6735
6839
|
"emailNameCompany"
|
|
6736
6840
|
]);
|
|
6737
6841
|
const newsletterDestinationProviderSchema = z$1.enum(["riverbank", "mailchimp"]);
|
|
6842
|
+
const newsletterButtonVariantSchema = z$1.enum([
|
|
6843
|
+
"primary",
|
|
6844
|
+
"secondary",
|
|
6845
|
+
"outline"
|
|
6846
|
+
]);
|
|
6738
6847
|
const newsletterFieldSchema = z$1.object({
|
|
6739
6848
|
id: z$1.string(),
|
|
6740
6849
|
type: z$1.enum(["email", "text"]),
|
|
@@ -6760,6 +6869,7 @@ const newsletterSourceSchema = z$1.object({
|
|
|
6760
6869
|
preset: newsletterPresetSchema.optional(),
|
|
6761
6870
|
includePhone: z$1.boolean().optional(),
|
|
6762
6871
|
buttonLabel: z$1.string().nullable().optional(),
|
|
6872
|
+
buttonVariant: newsletterButtonVariantSchema.nullable().optional(),
|
|
6763
6873
|
successMessage: z$1.string().nullable().optional(),
|
|
6764
6874
|
privacyNote: z$1.string().nullable().optional(),
|
|
6765
6875
|
tags: z$1.string().nullable().optional(),
|
|
@@ -6770,6 +6880,7 @@ const newsletterDisplaySchema = z$1.object({
|
|
|
6770
6880
|
kind: z$1.literal("newsletter-form"),
|
|
6771
6881
|
className: z$1.string().nullable(),
|
|
6772
6882
|
buttonLabel: z$1.string(),
|
|
6883
|
+
buttonVariant: newsletterButtonVariantSchema,
|
|
6773
6884
|
successMessage: z$1.string().nullable(),
|
|
6774
6885
|
privacyNote: z$1.string().nullable(),
|
|
6775
6886
|
fields: z$1.array(newsletterFieldSchema)
|
|
@@ -6798,6 +6909,7 @@ function buildNewsletterDisplay(source) {
|
|
|
6798
6909
|
kind: "newsletter-form",
|
|
6799
6910
|
className: source.className ?? null,
|
|
6800
6911
|
buttonLabel: source.buttonLabel?.trim() || "Subscribe",
|
|
6912
|
+
buttonVariant: source.buttonVariant ?? "primary",
|
|
6801
6913
|
successMessage: source.successMessage ?? "Thanks for subscribing!",
|
|
6802
6914
|
privacyNote: source.privacyNote ?? null,
|
|
6803
6915
|
fields: getPresetFields(preset, { includePhone })
|
|
@@ -7296,7 +7408,11 @@ const shopSourceSchema = z$1.object({
|
|
|
7296
7408
|
productSlug: z$1.string().nullable().optional(),
|
|
7297
7409
|
showPasses: z$1.boolean().optional(),
|
|
7298
7410
|
showMemberships: z$1.boolean().optional(),
|
|
7299
|
-
layout: z$1.enum([
|
|
7411
|
+
layout: z$1.enum([
|
|
7412
|
+
"grid",
|
|
7413
|
+
"list",
|
|
7414
|
+
"register"
|
|
7415
|
+
]).optional(),
|
|
7300
7416
|
columns: z$1.string().optional(),
|
|
7301
7417
|
showDescriptions: z$1.boolean().optional(),
|
|
7302
7418
|
showSummary: z$1.boolean().optional(),
|
|
@@ -7304,6 +7420,12 @@ const shopSourceSchema = z$1.object({
|
|
|
7304
7420
|
showPrices: z$1.boolean().optional(),
|
|
7305
7421
|
showValidityPeriod: z$1.boolean().optional(),
|
|
7306
7422
|
showPricePerCredit: z$1.boolean().nullable().optional(),
|
|
7423
|
+
buttonVariant: z$1.enum([
|
|
7424
|
+
"primary",
|
|
7425
|
+
"secondary",
|
|
7426
|
+
"outline",
|
|
7427
|
+
"link"
|
|
7428
|
+
]).optional(),
|
|
7307
7429
|
passesHeading: z$1.string().optional(),
|
|
7308
7430
|
membershipsHeading: z$1.string().optional(),
|
|
7309
7431
|
buyButtonText: z$1.string().optional(),
|
|
@@ -7401,7 +7523,11 @@ const passesMembershipsDisplaySchema = z$1.object({
|
|
|
7401
7523
|
kind: z$1.literal("passes-memberships"),
|
|
7402
7524
|
state: z$1.enum(["empty", "ready"]),
|
|
7403
7525
|
className: z$1.string().nullable(),
|
|
7404
|
-
layout: z$1.enum([
|
|
7526
|
+
layout: z$1.enum([
|
|
7527
|
+
"grid",
|
|
7528
|
+
"list",
|
|
7529
|
+
"register"
|
|
7530
|
+
]),
|
|
7405
7531
|
columns: z$1.string(),
|
|
7406
7532
|
emptyMessage: z$1.string(),
|
|
7407
7533
|
passesHeading: z$1.string(),
|
|
@@ -7443,7 +7569,13 @@ const checkoutDisplaySchema = z$1.object({
|
|
|
7443
7569
|
const passesMembershipsHydrationSchema = z$1.object({
|
|
7444
7570
|
passes: z$1.array(publicPassProductSchema),
|
|
7445
7571
|
memberships: z$1.array(publicMembershipProductSchema),
|
|
7446
|
-
passPurchaseMode: z$1.enum(["add_to_cart", "buy_now"])
|
|
7572
|
+
passPurchaseMode: z$1.enum(["add_to_cart", "buy_now"]),
|
|
7573
|
+
buttonVariant: z$1.enum([
|
|
7574
|
+
"primary",
|
|
7575
|
+
"secondary",
|
|
7576
|
+
"outline",
|
|
7577
|
+
"link"
|
|
7578
|
+
])
|
|
7447
7579
|
});
|
|
7448
7580
|
const productListHydrationSchema = z$1.object({
|
|
7449
7581
|
products: z$1.array(publicProductSchema),
|
|
@@ -7531,7 +7663,8 @@ const shopBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
7531
7663
|
hydration: {
|
|
7532
7664
|
passes: source.showPasses === false ? [] : source.passes ?? [],
|
|
7533
7665
|
memberships: source.showMemberships === false ? [] : source.memberships ?? [],
|
|
7534
|
-
passPurchaseMode
|
|
7666
|
+
passPurchaseMode,
|
|
7667
|
+
buttonVariant: source.buttonVariant ?? "primary"
|
|
7535
7668
|
}
|
|
7536
7669
|
};
|
|
7537
7670
|
}
|
|
@@ -7546,7 +7679,7 @@ const productListBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
7546
7679
|
display: buildProductListDisplay(source.products ?? [], {
|
|
7547
7680
|
heading: source.heading,
|
|
7548
7681
|
className: source.className,
|
|
7549
|
-
layout: source.layout,
|
|
7682
|
+
layout: source.layout === "register" ? "list" : source.layout,
|
|
7550
7683
|
columns: source.columns,
|
|
7551
7684
|
emptyMessage: source.emptyStateText,
|
|
7552
7685
|
showSummary: source.showSummary !== false,
|
|
@@ -7723,4 +7856,4 @@ function defineIslandPropsDecoder(kind) {
|
|
|
7723
7856
|
};
|
|
7724
7857
|
}
|
|
7725
7858
|
//#endregion
|
|
7726
|
-
export {
|
|
7859
|
+
export { themeColorTokenSchema as $, formatDate as A, getBookingLocalDateKey as At, resolveEventCta as B, publicEventScalarPrice as Bt, getWizardStepsForContext as C, reportWorkflowSuccess as Ct, normalizeCsvIds as D, formatBookingInstant as Dt, getEventRuntimeFiltersKey as E, formatBookingDateTime as Et, formatEventTeacherLine as F, parseEventPageSurfaceSubject as Ft, getLocalDateKey as G, resolveRuntimeEventPricing as H, formatCurrencyAmount as Ht, formatTime as I, formatBookingPriceDisplay as It, createRichTextDocFromMarkdown as J, getLocalMinuteOfDay as K, getCardOrientation as L, publicEventPricingCurrency as Lt, formatEventDateParts as M, resolveBookingTimeZoneId as Mt, formatEventPrice as N, toBookingTimeZone as Nt, normalizeCsvString as O, formatBookingTime as Ot, formatEventPriceDisplay as P, toScheduledBookingDateTime as Pt, parseThemeColorToken as Q, getContainerClass as R, publicEventPricingMode as Rt, getStepNumber as S, reportWorkflowError as St, buildEventRuntimeFilters as T, formatBookingDate as Tt, getEventAvailability as U, assertNever$2 as Ut, resolveEventLinkProps as V, publicEventTicketTypes as Vt, getEventAvailabilityStatus as W, isRecord$3 as X, unwrapRichTextRoot as Y, normalizeCardVariantRole as Z, findPreSelectedEvent as _, assertNever$1 as _t, buildProductDetailDisplay as a, getBookingRedirectStateFromLocation as at, resolveRegistrationTarget as b, ok as bt, EMPTY_COMMERCE_CART_STATE as c, isBookingServiceSlidingAmountInRange as ct, deriveCommerceCheckoutState as d, resolveAppointmentCheckoutVerificationState as dt, resolveEventRegistrationScopedEvents as et, parseStoredCommerceCartState as f, resolveBookingPaymentStep as ft, findEventByOccurrenceId as g, BOOKING_FORM_DATA_RESERVED_KEYS as gt, toRegistrationEvents as h, toSelectedCollectionOptionKind as ht, buildProductCardDisplay as i, formatBookingSubmissionPreparationError as it, formatEventCompactDateRail as j, parseBookingLocalDate as jt, normalizeOptionalId as k, formatLocalScheduleDate as kt, buildPassCartItem as l, parseBookingCurrencyInputToCents as lt, reduceCommerceCart as m, resolveDefaultBookingServiceId as mt, getShopDisplayForItems as n, deriveBookingFormViewState as nt, formatCommercePrice as o, getBookingServiceSlidingScale as ot, productItemKey as p, resolveBookingSiteId as pt, normalizeEventBlockKind as q, buildCartDisplay as r, formatBookingCentsAsCurrencyInput as rt, formatInterval as s, getBookingSuccessMessage as st, defineIslandPropsDecoder as t, logger as tt, buildProductCartItem as u, prepareBookingSubmission as ut, resolveDiscountContext as v, clearWorkflowFeedback as vt, buildEventCalendarListingRender as w, addLocalScheduleDays as wt, WIZARD_STEPS as x, okWith as xt, resolveEventRequiresPayment as y, err as yt, groupEventsByDate as z, publicEventPricingType as zt };
|