@riverbankcms/sdk 0.104.1 → 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-CmaPXdKu.mjs → PreviewEditorSidebar-DpAbAl08.mjs} +1811 -1179
- package/dist/{PreviewEditorUI-C5xRTh2b.mjs → PreviewEditorUI-O7cn6Xxv.mjs} +3 -3
- package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-D0tnKl0t.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-Eks51NcN.mjs → SdkPreviewModeRuntime-CVB7urtl.mjs} +3244 -528
- package/dist/{SiteChromeCustomizeContext-Bt8zb3qu.mjs → SiteChromeCustomizeContext-C_sizso-.mjs} +4945 -3010
- package/dist/_dts/ai/src/contracts/proposals.d.ts +32945 -1329
- 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/primitives/layout/Grid.d.ts +12 -8
- 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 +7 -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/layout.d.ts +11 -1
- 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/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
- package/dist/_dts/blocks/src/system/constants/events.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/fragments/library/testimonialsCarousel.d.ts +12 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
- 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 +15 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +33 -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 +32 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +32 -0
- 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/shared/contract-schemas.d.ts +1 -0
- 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 +84 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -40
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +14 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +11 -0
- package/dist/_dts/core/src/branded.d.ts +49 -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 +1469 -14
- 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 +25 -5
- 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/ThemeScope.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +29 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +6 -0
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +20 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +22 -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 +6 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +43 -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/gradients/types.d.ts +27 -3
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -39
- package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +22 -4
- 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 -224
- 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 -3
- package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
- package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -57
- 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/palette/themePaletteCompatibility.d.ts +3 -4
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +1 -0
- package/dist/_dts/theme-core/src/schema.d.ts +229 -30
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +2 -1
- 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 +208 -49
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +8 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +6 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +56 -1
- 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/_dts/theme-core/src/status/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +19 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +9 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +2 -0
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/cli/index.mjs +4146 -1602
- package/dist/client/{DiscountCodeDisclosure-Dit2aItR.mjs → DiscountCodeDisclosure-BwGkvmVH.mjs} +1 -1
- package/dist/client/{EventCombined.client-BnREyCjf.mjs → EventCombined.client-JnWE6Hzc.mjs} +4 -4
- package/dist/client/{EventListing.client-0uHld51x.mjs → EventListing.client-DQewc_kg.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DJcvSfmj.mjs → LeafletStaticMap-DPAU3SFt.mjs} +1 -1
- package/dist/client/{MagicLinkForm-EAsIktfw.mjs → MagicLinkForm-D4kpWCbW.mjs} +2 -2
- package/dist/client/{StepIndicator-CRR17tYI.mjs → StepIndicator-CBlkb4rA.mjs} +2 -2
- package/dist/client/{accordion-B47HIuuH.mjs → accordion-DAIBVpTS.mjs} +1 -1
- package/dist/client/{bookingForm-I1E-8F9P.mjs → bookingForm-DZ-4l5_1.mjs} +7 -7
- package/dist/client/bookings.mjs +360 -95
- package/dist/client/{buttons-BbPn8OKA.mjs → buttons-DJgynGHQ.mjs} +243 -43
- package/dist/client/{carousel-OlM7SyBs.mjs → carousel-D-SLfX8r.mjs} +1 -1
- package/dist/client/{cart-BKpG5jz6.mjs → cart-CEgbgJhX.mjs} +3 -3
- package/dist/client/{checkout-Dmmr6qoU.mjs → checkout-CXWrCRAA.mjs} +3 -3
- package/dist/client/client.mjs +6019 -1494
- package/dist/client/{colorStyles-DuW4Fjqd.mjs → colorStyles-jZS6KfkP.mjs} +46 -5
- package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
- package/dist/client/{courseRegistration-CflZiqGk.mjs → courseRegistration-DVmLrRVz.mjs} +56 -21
- package/dist/client/{eventCalendar-BvoLWcp-.mjs → eventCalendar-DCuyPY_c.mjs} +173 -5
- package/dist/client/{eventCombined-DsrO8t_t.mjs → eventCombined-kP2CA2D4.mjs} +2 -2
- package/dist/client/{eventDetails-C3hxgcJm.mjs → eventDetails-DU0LeF5e.mjs} +4 -4
- package/dist/client/{eventListing-C-hb237X.mjs → eventListing-CcHF87BI.mjs} +2 -2
- package/dist/client/{eventRegistration-B0gyzDGi.mjs → eventRegistration-DJnR0yFH.mjs} +8 -8
- package/dist/client/{form-C_RUi6oJ.mjs → form-CH1lCusH.mjs} +2 -2
- package/dist/client/{headerSection-IKQiD2U0.mjs → headerSection-CBPFZoku.mjs} +3 -3
- package/dist/client/hooks.mjs +3645 -1857
- package/dist/client/{locationMap-8ZBrMzRJ.mjs → locationMap-Cx1hBg5n.mjs} +3 -3
- package/dist/client/{media-CZJKL7fi.mjs → media-DHtSxS5V.mjs} +61 -56
- package/dist/client/{newsletterForm-CYk3ucwj.mjs → newsletterForm-1ZL_ti9u.mjs} +3 -3
- package/dist/client/{pricing-B5GmvfIH.mjs → pricing-BIbzmV0G.mjs} +1 -1
- package/dist/client/{productDetail-BjS2Dqzo.mjs → productDetail-BTh5gHBV.mjs} +3 -3
- package/dist/client/{productList-BOHvC8My.mjs → productList-Cc7OMrqN.mjs} +3 -3
- package/dist/client/{propsDecoder-WS6UEJwZ.mjs → propsDecoder-oR-M-ISN.mjs} +228 -60
- package/dist/client/rendering/client.mjs +3231 -1477
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +6889 -1927
- package/dist/client/{shop-CON03-wN.mjs → shop-CQ_YbCnn.mjs} +8 -8
- package/dist/client/{shop-commerce-DlqrFgH8.mjs → shop-commerce-BM-AoD3M.mjs} +6 -6
- package/dist/client/{shop-commerce-store-l74-Kne6.mjs → shop-commerce-store-DFMQhU5p.mjs} +1 -1
- package/dist/client/{shopShared-CQheEXSg.mjs → shopShared-D0SKO2Cu.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-v6OluyWl.mjs → useDiscountCodeUi-CrG4_ARt.mjs} +1 -1
- package/dist/client/{useEventFilters-BqSTcNOf.mjs → useEventFilters-CxK8Fekl.mjs} +6 -6
- package/dist/client/{usePolling-DMfADjIF.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-BUmJ0DaT.mjs → sdk-runtime-C39Rsk-x.mjs} +2 -2
- package/dist/{separator-Dd-JYok7.mjs → separator-BoMSQnsP.mjs} +1 -1
- package/dist/server/components.mjs +6345 -2084
- package/dist/server/config-validation.mjs +3420 -1856
- package/dist/server/config.mjs +3420 -1856
- package/dist/server/data.mjs +4067 -1923
- package/dist/server/index.mjs +46 -4
- package/dist/server/next/middleware.mjs +1 -1
- package/dist/server/next.mjs +7239 -2147
- package/dist/server/page-converter.mjs +3189 -1619
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +6540 -2058
- package/dist/server/rendering.mjs +7339 -2377
- package/dist/server/routing.mjs +3373 -1101
- package/dist/server/server.mjs +4307 -2002
- package/dist/server/theme-bridge.mjs +9844 -7325
- package/dist/server/theme.mjs +300 -47
- package/dist/styles/index.css +1863 -94
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +0 -2
- package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
- package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
- package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -34
- package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -219
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +0 -6
|
@@ -1,4 +1,34 @@
|
|
|
1
|
-
import { t as parseColorTokenParts } from "./colorTokenParts-
|
|
1
|
+
import { t as parseColorTokenParts } from "./colorTokenParts-CMugwvX_.mjs";
|
|
2
|
+
//#region ../theme-core/src/surfaces/foregroundContract.ts
|
|
3
|
+
const SURFACE_FOREGROUND_CSS_VARS = {
|
|
4
|
+
text: "--rb-surface-text-color",
|
|
5
|
+
heading: "--rb-surface-heading-color",
|
|
6
|
+
link: "--rb-surface-link-color",
|
|
7
|
+
supporting: "--rb-surface-supporting-color"
|
|
8
|
+
};
|
|
9
|
+
const DEFAULT_SURFACE_TEXT_COLOR = "rgb(var(--tb-text, 17 24 39))";
|
|
10
|
+
const DEFAULT_ROLE_FALLBACKS = {
|
|
11
|
+
text: DEFAULT_SURFACE_TEXT_COLOR,
|
|
12
|
+
heading: DEFAULT_SURFACE_TEXT_COLOR,
|
|
13
|
+
link: "rgb(var(--tb-primary, var(--tb-text, 17 24 39)))",
|
|
14
|
+
supporting: "rgb(var(--tb-mutedText, 100 116 139))"
|
|
15
|
+
};
|
|
16
|
+
function requireSurfaceColorValue(role, value) {
|
|
17
|
+
const normalized = value.trim();
|
|
18
|
+
if (normalized.length === 0) throw new RangeError(`Surface foreground ${role} must be a non-empty CSS color.`);
|
|
19
|
+
return normalized;
|
|
20
|
+
}
|
|
21
|
+
function surfaceForegroundValue(role, outsideProviderFallback = DEFAULT_ROLE_FALLBACKS[role]) {
|
|
22
|
+
const roleVariable = SURFACE_FOREGROUND_CSS_VARS[role];
|
|
23
|
+
const fallback = requireSurfaceColorValue("fallback", outsideProviderFallback);
|
|
24
|
+
if (role === "text") return `var(${roleVariable}, ${fallback})`;
|
|
25
|
+
return `var(${roleVariable}, var(${SURFACE_FOREGROUND_CSS_VARS.text}, ${fallback}))`;
|
|
26
|
+
}
|
|
27
|
+
function surfaceForegroundValueWithOpacity(role, opacityPercent) {
|
|
28
|
+
if (!Number.isFinite(opacityPercent) || opacityPercent < 0 || opacityPercent > 100) throw new RangeError("Surface foreground opacity must be between 0 and 100.");
|
|
29
|
+
return `color-mix(in srgb, ${surfaceForegroundValue(role)} ${opacityPercent}%, transparent)`;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
2
32
|
//#region ../theme-core/src/utils/colorStyles.ts
|
|
3
33
|
const COLOR_VAR_PREFIX = "--tb-";
|
|
4
34
|
function parseToken(source) {
|
|
@@ -10,9 +40,17 @@ function parseToken(source) {
|
|
|
10
40
|
if (parts.kind === "invalid") return { token: source };
|
|
11
41
|
return {
|
|
12
42
|
token: parts.token,
|
|
13
|
-
|
|
43
|
+
opacityPercent: parts.opacityPercent === null ? void 0 : parts.opacityPercent
|
|
14
44
|
};
|
|
15
45
|
}
|
|
46
|
+
const SURFACE_TEXT_ROLE_BY_TOKEN = {
|
|
47
|
+
text: "text",
|
|
48
|
+
heading: "heading",
|
|
49
|
+
mutedText: "supporting"
|
|
50
|
+
};
|
|
51
|
+
function surfaceRoleForTextToken(token) {
|
|
52
|
+
return Object.prototype.hasOwnProperty.call(SURFACE_TEXT_ROLE_BY_TOKEN, token) ? SURFACE_TEXT_ROLE_BY_TOKEN[token] : null;
|
|
53
|
+
}
|
|
16
54
|
/**
|
|
17
55
|
* Converts a theme color token to a CSS rgb value.
|
|
18
56
|
* This is the primary function for applying theme colors to CSS properties.
|
|
@@ -26,11 +64,11 @@ function parseToken(source) {
|
|
|
26
64
|
* rgbColorValue('raw:transparent') // => 'transparent'
|
|
27
65
|
*/
|
|
28
66
|
function rgbColorValue(token) {
|
|
29
|
-
const { token: baseToken,
|
|
67
|
+
const { token: baseToken, opacityPercent, raw } = parseToken(token);
|
|
30
68
|
if (raw) return raw;
|
|
31
69
|
const cssVar = `${COLOR_VAR_PREFIX}${baseToken}`;
|
|
32
|
-
if (
|
|
33
|
-
return `rgb(var(${cssVar}) / ${
|
|
70
|
+
if (opacityPercent === void 0) return `rgb(var(${cssVar}))`;
|
|
71
|
+
return `rgb(var(${cssVar}) / ${opacityPercent / 100})`;
|
|
34
72
|
}
|
|
35
73
|
/**
|
|
36
74
|
* Creates a backgroundColor style object from a theme token.
|
|
@@ -48,6 +86,9 @@ function backgroundColorStyle(token) {
|
|
|
48
86
|
* @returns CSSProperties with color
|
|
49
87
|
*/
|
|
50
88
|
function textColorStyle(token) {
|
|
89
|
+
const parsed = parseToken(token);
|
|
90
|
+
const surfaceRole = parsed.raw ? null : surfaceRoleForTextToken(parsed.token);
|
|
91
|
+
if (surfaceRole) return { color: parsed.opacityPercent === void 0 ? surfaceForegroundValue(surfaceRole) : surfaceForegroundValueWithOpacity(surfaceRole, parsed.opacityPercent) };
|
|
51
92
|
return { color: rgbColorValue(token) };
|
|
52
93
|
}
|
|
53
94
|
/**
|
|
@@ -21,6 +21,7 @@ function parseUuidBrand(value, unsafeConstructor) {
|
|
|
21
21
|
if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
|
|
22
22
|
return ok(unsafeConstructor(normalized));
|
|
23
23
|
}
|
|
24
|
+
const unsafeAsEventOfferingId = (id) => id;
|
|
24
25
|
const unsafeAsEventSeriesId = (id) => id;
|
|
25
26
|
const unsafeAsMediaAssetId = (id) => id;
|
|
26
27
|
const unsafeAsStorageBucketName = (value) => value;
|
|
@@ -30,6 +31,7 @@ const unsafeAsPassId = (id) => id;
|
|
|
30
31
|
const unsafeAsCustomerPassId = (id) => id;
|
|
31
32
|
const unsafeAsAppointmentServiceId = (id) => id;
|
|
32
33
|
const unsafeAsAppointmentResourceId = (id) => id;
|
|
34
|
+
const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
|
|
33
35
|
const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
|
|
34
36
|
//#endregion
|
|
35
37
|
//#region ../media-core/src/transformRect.ts
|
|
@@ -137,4 +139,4 @@ function parseColorTokenParts(source) {
|
|
|
137
139
|
};
|
|
138
140
|
}
|
|
139
141
|
//#endregion
|
|
140
|
-
export {
|
|
142
|
+
export { parseEventOfferingId as a, unsafeAsAppointmentServiceId as c, unsafeAsMediaAssetId as d, unsafeAsPassId as f, ok as g, err as h, resolveMediaTransformForAspect as i, unsafeAsCustomerPassId as l, unsafeAsStoragePath as m, isExplicitRectCrop as n, parseEventSeriesId as o, unsafeAsStorageBucketName as p, parseAspectRatioValue as r, unsafeAsAppointmentResourceId as s, parseColorTokenParts as t, unsafeAsFormId as u };
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-
|
|
2
|
+
import { Ft as parseEventPageSurfaceSubject, Nt as toBookingTimeZone, Ot as formatBookingTime, Pt as toScheduledBookingDateTime, Tt as formatBookingDate, Ut as assertNever, t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
3
|
+
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-BIbzmV0G.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 { i as CheckIcon, n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-
|
|
7
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
8
|
-
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-
|
|
9
|
-
import { t as themeButtonClassName } from "./buttons-
|
|
6
|
+
import { i as CheckIcon, n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-CrG4_ARt.mjs";
|
|
7
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BwGkvmVH.mjs";
|
|
8
|
+
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-CBlkb4rA.mjs";
|
|
9
|
+
import { t as themeButtonClassName } from "./buttons-DJgynGHQ.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
11
11
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
12
12
|
import { t as buildCheckoutReturnUrls } from "./checkoutUrls-Ct8Mxna3.mjs";
|
|
13
13
|
import { t as scrollToBlock } from "./scrollToBlock-C86BYkyV.mjs";
|
|
14
|
-
import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-
|
|
14
|
+
import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-D4kpWCbW.mjs";
|
|
15
15
|
import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
|
|
16
16
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
17
17
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
@@ -564,6 +564,34 @@ function getStepLabels(steps) {
|
|
|
564
564
|
return steps.map((step) => STEP_LABELS[step] ?? step);
|
|
565
565
|
}
|
|
566
566
|
//#endregion
|
|
567
|
+
//#region ../blocks/src/system/runtime/nodes/course-page-surface-scope.ts
|
|
568
|
+
/**
|
|
569
|
+
* Resolves native course-page ownership without falling back to entry or slug
|
|
570
|
+
* coincidence when a page-surface subject is present but invalid.
|
|
571
|
+
*/
|
|
572
|
+
function resolveCoursePageSurfaceScope(courses, subjectValue) {
|
|
573
|
+
if (subjectValue === null || subjectValue === void 0) return { kind: "absent" };
|
|
574
|
+
const parsed = parseEventPageSurfaceSubject(subjectValue);
|
|
575
|
+
if (!parsed.ok) return {
|
|
576
|
+
kind: "unsupported",
|
|
577
|
+
reason: parsed.error.kind
|
|
578
|
+
};
|
|
579
|
+
const seriesIds = eventSeriesIdsForSubject(parsed.value);
|
|
580
|
+
const allowedSeriesIds = new Set(seriesIds);
|
|
581
|
+
return {
|
|
582
|
+
kind: "scoped",
|
|
583
|
+
subject: parsed.value,
|
|
584
|
+
courses: courses.filter((course) => allowedSeriesIds.has(course.seriesId))
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
function eventSeriesIdsForSubject(subject) {
|
|
588
|
+
switch (subject.kind) {
|
|
589
|
+
case "eventSeries": return [subject.eventSeriesId];
|
|
590
|
+
case "eventOffering": return subject.availableEventSeriesIds;
|
|
591
|
+
default: return assertNever(subject);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
//#endregion
|
|
567
595
|
//#region ../blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.ts
|
|
568
596
|
function parseCurrencyInputToCents(value) {
|
|
569
597
|
const trimmed = value.trim();
|
|
@@ -619,13 +647,16 @@ function resolveHasCoursePayment(pricing) {
|
|
|
619
647
|
}
|
|
620
648
|
function useCourseRegistrationWizard(props) {
|
|
621
649
|
const api = useBlockApi();
|
|
622
|
-
const { contentEntry, courses, entrySubrouteContext } = props;
|
|
650
|
+
const { contentEntry, courses, entrySubrouteContext, subject } = props;
|
|
623
651
|
const scopedCourses = useMemo(() => {
|
|
624
652
|
const allCourses = courses ?? [];
|
|
625
653
|
if (entrySubrouteContext?.kind === "course-run") {
|
|
626
654
|
const matched = allCourses.find((c) => c.id === entrySubrouteContext.run.courseId) ?? null;
|
|
627
655
|
if (matched) return [matched];
|
|
628
656
|
}
|
|
657
|
+
const pageSurfaceScope = resolveCoursePageSurfaceScope(allCourses, subject);
|
|
658
|
+
if (pageSurfaceScope.kind === "unsupported") return [];
|
|
659
|
+
if (pageSurfaceScope.kind === "scoped") return [...pageSurfaceScope.courses];
|
|
629
660
|
if (contentEntry?.id) {
|
|
630
661
|
const matchedCourses = allCourses.filter((c) => c.contentEntryId === contentEntry.id);
|
|
631
662
|
if (matchedCourses.length > 0) return matchedCourses;
|
|
@@ -639,7 +670,8 @@ function useCourseRegistrationWizard(props) {
|
|
|
639
670
|
courses,
|
|
640
671
|
contentEntry?.id,
|
|
641
672
|
contentEntry?.slug,
|
|
642
|
-
entrySubrouteContext
|
|
673
|
+
entrySubrouteContext,
|
|
674
|
+
subject
|
|
643
675
|
]);
|
|
644
676
|
const [step, setStep] = useState(() => {
|
|
645
677
|
const enrollment = new URLSearchParams(window.location.search).get("enrollment");
|
|
@@ -1558,24 +1590,27 @@ function getCourseSlidingScaleMessage(pricing) {
|
|
|
1558
1590
|
return null;
|
|
1559
1591
|
}
|
|
1560
1592
|
function CourseRegistrationWizard(props) {
|
|
1561
|
-
const { showSessions = true, showPrice = true, showCapacity = true, showVenue = true, successMessage = "You're booked in! Check your email for confirmation and session details.", waitlistMessage = "You've been added to the waitlist. We'll email you a claim link if a spot opens up.", membershipMessage = "Booked using your membership! Check your email for session details.", buttonText = "
|
|
1593
|
+
const { showSessions = true, showPrice = true, showCapacity = true, showVenue = true, successMessage = "You're booked in! Check your email for confirmation and session details.", waitlistMessage = "You've been added to the waitlist. We'll email you a claim link if a spot opens up.", membershipMessage = "Booked using your membership! Check your email for session details.", buttonText = "Sign up", buttonVariant = "primary", className } = props;
|
|
1562
1594
|
const { api, scopedCourses, step, setStep, selectedCourse, selectedPricingOptionId, setSelectedPricingOptionId, selectedSlidingAmountInput, setSelectedSlidingAmountInput, selectedCoursePricing, formData, setFormData, errors, enrollmentResult, errorMessage, portalAuthState, handleLogout, altchaSolution: _altchaSolution, setAltchaSolution, showSpamProtection, eligibilityLoading, eligibilityError, courseEligibility, eligibleMemberships, paymentChoice, setPaymentChoice, selectedMembershipId, setSelectedMembershipId, discountUiOpen, setDiscountUiOpen, discountCode, setDiscountCode, discountsAvailable, manualCodeEntryAllowed, discountsAvailableLoading, waitlistClaim, canUseMembership: _canUseMembership, bookingMode, currentStepNumber, totalSteps, stepLabels, showPortalAuthSidebar, hasPreSelectedCourse: _hasPreSelectedCourse, hasCoursePayment: _hasCoursePayment, handleCourseSelect, handleSubmit, handlePaymentContinue, handleRetry, handleBookingModeChange } = useCourseRegistrationWizard(props);
|
|
1563
1595
|
const buttonClass = themeButtonClassName({
|
|
1564
1596
|
variant: buttonVariant,
|
|
1565
1597
|
size: "md"
|
|
1566
1598
|
});
|
|
1567
|
-
if (scopedCourses.length === 0)
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
children: /* @__PURE__ */ jsx("
|
|
1574
|
-
className: "cr-
|
|
1575
|
-
children:
|
|
1599
|
+
if (scopedCourses.length === 0) {
|
|
1600
|
+
const awaitingOfferingRuns = props.subject?.kind === "eventOffering" && props.subject.availableEventSeriesIds.length === 0;
|
|
1601
|
+
return /* @__PURE__ */ jsx("div", {
|
|
1602
|
+
id: COURSE_REGISTRATION_ANCHOR_ID,
|
|
1603
|
+
className: `course-registration ${className || ""}`,
|
|
1604
|
+
"data-block": "course-registration",
|
|
1605
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
1606
|
+
className: "cr-empty",
|
|
1607
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
1608
|
+
className: "cr-empty__text",
|
|
1609
|
+
children: awaitingOfferingRuns ? "New dates are coming soon. Booking will open when the next run is ready." : "No courses available to book."
|
|
1610
|
+
})
|
|
1576
1611
|
})
|
|
1577
|
-
})
|
|
1578
|
-
}
|
|
1612
|
+
});
|
|
1613
|
+
}
|
|
1579
1614
|
const allowedStatuses = api.config.isPreview ? ["active", "draft"] : ["active"];
|
|
1580
1615
|
if (!scopedCourses.some((c) => !c.status || allowedStatuses.includes(c.status))) return /* @__PURE__ */ jsx("div", {
|
|
1581
1616
|
id: COURSE_REGISTRATION_ANCHOR_ID,
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { o as
|
|
2
|
+
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
3
|
+
import { E as getEventRuntimeFiltersKey, F as formatEventTeacherLine, G as getLocalDateKey, I as formatTime, K as getLocalMinuteOfDay, T as buildEventRuntimeFilters, U as getEventAvailability, V as resolveEventLinkProps, W as getEventAvailabilityStatus, t as defineIslandPropsDecoder, w as buildEventCalendarListingRender, z as groupEventsByDate } from "./propsDecoder-oR-M-ISN.mjs";
|
|
4
|
+
import { a as CalendarDayCell, c as useCalendarEvents, d as getOrderedDayNames, f as getWeekCalendarDayTuple, h as isToday, i as WeekAgendaView, l as MONTH_NAMES, m as isSameLocalDay, o as EventModalProvider, p as getWeekCalendarDays, r as EventModals, s as useEventModal, t as EventCombinedClient, u as formatDateKey } from "./EventCombined.client-JnWE6Hzc.mjs";
|
|
5
|
+
import { o as EventFilters, t as useEventFilters } from "./useEventFilters-CxK8Fekl.mjs";
|
|
5
6
|
import { t as BlockApiProvider } from "./context-BGZNlGXB.mjs";
|
|
6
|
-
import { t as themeButtonClassName } from "./buttons-
|
|
7
|
+
import { t as themeButtonClassName } from "./buttons-DJgynGHQ.mjs";
|
|
7
8
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
8
9
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
9
|
-
import { n as EventListingController } from "./EventListing.client-
|
|
10
|
+
import { n as EventListingController } from "./EventListing.client-DQewc_kg.mjs";
|
|
10
11
|
import { useEffect, useId, useMemo, useState } from "react";
|
|
11
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
13
|
//#region ../calendar/src/lane-packing.ts
|
|
@@ -322,6 +323,157 @@ function parseDateKey(dateKey) {
|
|
|
322
323
|
};
|
|
323
324
|
}
|
|
324
325
|
//#endregion
|
|
326
|
+
//#region ../blocks/src/system/runtime/nodes/events/shared/WeekBoardView.tsx
|
|
327
|
+
const SHORT_DAY_NAMES = [
|
|
328
|
+
"Sun",
|
|
329
|
+
"Mon",
|
|
330
|
+
"Tue",
|
|
331
|
+
"Wed",
|
|
332
|
+
"Thu",
|
|
333
|
+
"Fri",
|
|
334
|
+
"Sat"
|
|
335
|
+
];
|
|
336
|
+
const LEGEND_ITEMS = [
|
|
337
|
+
{
|
|
338
|
+
status: "available",
|
|
339
|
+
label: "Places available"
|
|
340
|
+
},
|
|
341
|
+
{
|
|
342
|
+
status: "filling",
|
|
343
|
+
label: "Filling up"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
status: "waitlist",
|
|
347
|
+
label: "Waitlist"
|
|
348
|
+
}
|
|
349
|
+
];
|
|
350
|
+
/**
|
|
351
|
+
* Format an event's start–end as a compact range, merging the shared meridiem.
|
|
352
|
+
* "6:00 PM" + "7:00 PM" -> "6:00 – 7:00 PM"; "9:30 AM" + "10:15 AM" -> "9:30 – 10:15 AM".
|
|
353
|
+
*/
|
|
354
|
+
function formatCompactTimeRange(event) {
|
|
355
|
+
const timeZone = event.timeZone ?? null;
|
|
356
|
+
const start = formatTime(event.startsAt, { timeZone });
|
|
357
|
+
const end = formatTime(event.endsAt, { timeZone });
|
|
358
|
+
const startMeridiem = start.slice(-2);
|
|
359
|
+
const endMeridiem = end.slice(-2);
|
|
360
|
+
if ((startMeridiem === "AM" || startMeridiem === "PM") && startMeridiem === endMeridiem) return `${start.slice(0, -3).trim()} – ${end}`;
|
|
361
|
+
return `${start} – ${end}`;
|
|
362
|
+
}
|
|
363
|
+
const WeekBoardCard = ({ event, showCapacity }) => {
|
|
364
|
+
const linkProps = resolveEventLinkProps(event);
|
|
365
|
+
const { status, label } = getEventAvailabilityStatus(event);
|
|
366
|
+
const pill = showCapacity ? label : null;
|
|
367
|
+
return /* @__PURE__ */ jsxs("a", {
|
|
368
|
+
...linkProps,
|
|
369
|
+
className: "event-week-board-card",
|
|
370
|
+
"data-status": status,
|
|
371
|
+
children: [
|
|
372
|
+
/* @__PURE__ */ jsx("span", {
|
|
373
|
+
className: "event-week-board-card-title",
|
|
374
|
+
children: event.title
|
|
375
|
+
}),
|
|
376
|
+
/* @__PURE__ */ jsx("span", {
|
|
377
|
+
className: "event-week-board-card-time",
|
|
378
|
+
children: formatCompactTimeRange(event)
|
|
379
|
+
}),
|
|
380
|
+
pill ? /* @__PURE__ */ jsx("span", {
|
|
381
|
+
className: "event-week-board-card-pill",
|
|
382
|
+
"data-status": status,
|
|
383
|
+
children: pill
|
|
384
|
+
}) : null
|
|
385
|
+
]
|
|
386
|
+
});
|
|
387
|
+
};
|
|
388
|
+
/**
|
|
389
|
+
* WeekBoardView
|
|
390
|
+
*
|
|
391
|
+
* Compact "class day-board": day columns side by side (one card per class per
|
|
392
|
+
* day), a legend of the three availability states, and a footer CTA. Collapses
|
|
393
|
+
* to a stacked list on mobile. Repurposes the week-grouped agenda data as a
|
|
394
|
+
* board rather than an hour-positioned timetable grid.
|
|
395
|
+
*/
|
|
396
|
+
const WeekBoardView = ({ days, events, showCapacity, emptyMessage = "No classes scheduled this week", title, footerNote, ctaLabel = "Reserve a place", ctaHref = null, buttonVariant = "outline", elevated = false, banded = false }) => {
|
|
397
|
+
const eventsByDate = groupEventsByDate(events);
|
|
398
|
+
const hasAnyEvents = days.some((date) => (eventsByDate.get(formatDateKey(date)) ?? []).length > 0);
|
|
399
|
+
const ctaClassName = themeButtonClassName({
|
|
400
|
+
variant: buttonVariant,
|
|
401
|
+
size: "sm"
|
|
402
|
+
});
|
|
403
|
+
const hasTitle = typeof title === "string" && title.length > 0;
|
|
404
|
+
const hasFooterNote = typeof footerNote === "string" && footerNote.length > 0;
|
|
405
|
+
const hasCta = typeof ctaHref === "string" && ctaHref.length > 0;
|
|
406
|
+
const footerNoteText = hasAnyEvents ? hasFooterNote ? footerNote : null : emptyMessage;
|
|
407
|
+
const showFooter = hasCta || footerNoteText !== null;
|
|
408
|
+
return /* @__PURE__ */ jsx("div", {
|
|
409
|
+
className: "event-calendar event-calendar--week-board",
|
|
410
|
+
"data-block": "event-calendar",
|
|
411
|
+
...banded ? { "data-banded": "" } : {},
|
|
412
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
413
|
+
className: "event-week-board",
|
|
414
|
+
style: { "--event-week-board-cols": String(days.length) },
|
|
415
|
+
...elevated ? { "data-elevated": "" } : {},
|
|
416
|
+
children: [
|
|
417
|
+
/* @__PURE__ */ jsxs("div", {
|
|
418
|
+
className: "event-week-board-top",
|
|
419
|
+
children: [hasTitle ? /* @__PURE__ */ jsx("span", {
|
|
420
|
+
className: "event-week-board-title",
|
|
421
|
+
children: title
|
|
422
|
+
}) : null, /* @__PURE__ */ jsx("div", {
|
|
423
|
+
className: "event-week-board-legend",
|
|
424
|
+
"aria-hidden": "true",
|
|
425
|
+
children: LEGEND_ITEMS.map((item) => /* @__PURE__ */ jsxs("span", {
|
|
426
|
+
className: "event-week-board-legend-item",
|
|
427
|
+
children: [/* @__PURE__ */ jsx("i", {
|
|
428
|
+
className: "event-week-board-legend-dot",
|
|
429
|
+
"data-status": item.status
|
|
430
|
+
}), item.label]
|
|
431
|
+
}, item.status))
|
|
432
|
+
})]
|
|
433
|
+
}),
|
|
434
|
+
/* @__PURE__ */ jsx("div", {
|
|
435
|
+
className: "event-week-board-grid",
|
|
436
|
+
children: days.map((date) => {
|
|
437
|
+
const dateKey = formatDateKey(date);
|
|
438
|
+
const dayEvents = eventsByDate.get(dateKey) ?? [];
|
|
439
|
+
const today = isToday(date);
|
|
440
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
441
|
+
className: clsx("event-week-board-day", dayEvents.length === 0 && "event-week-board-day--empty", today && "event-week-board-day--today"),
|
|
442
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
443
|
+
className: "event-week-board-day-head",
|
|
444
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
445
|
+
className: "event-week-board-day-abbr",
|
|
446
|
+
children: SHORT_DAY_NAMES[date.getDay()]
|
|
447
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
448
|
+
className: "event-week-board-day-num",
|
|
449
|
+
children: date.getDate()
|
|
450
|
+
})]
|
|
451
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
452
|
+
className: "event-week-board-day-body",
|
|
453
|
+
children: dayEvents.map((event) => /* @__PURE__ */ jsx(WeekBoardCard, {
|
|
454
|
+
event,
|
|
455
|
+
showCapacity
|
|
456
|
+
}, event.occurrenceId || event.id))
|
|
457
|
+
})]
|
|
458
|
+
}, dateKey);
|
|
459
|
+
})
|
|
460
|
+
}),
|
|
461
|
+
showFooter ? /* @__PURE__ */ jsxs("div", {
|
|
462
|
+
className: "event-week-board-foot",
|
|
463
|
+
children: [footerNoteText !== null ? /* @__PURE__ */ jsx("p", {
|
|
464
|
+
className: "event-week-board-foot-note",
|
|
465
|
+
children: footerNoteText
|
|
466
|
+
}) : null, hasCta ? /* @__PURE__ */ jsx("a", {
|
|
467
|
+
className: ctaClassName,
|
|
468
|
+
href: ctaHref ?? void 0,
|
|
469
|
+
children: ctaLabel
|
|
470
|
+
}) : null]
|
|
471
|
+
}) : null
|
|
472
|
+
]
|
|
473
|
+
})
|
|
474
|
+
});
|
|
475
|
+
};
|
|
476
|
+
//#endregion
|
|
325
477
|
//#region ../blocks/src/system/runtime/nodes/events/shared/timetableModel.ts
|
|
326
478
|
/**
|
|
327
479
|
* Event-domain adapter over @riverbankcms/calendar.
|
|
@@ -586,8 +738,24 @@ const EventCalendarClient = ({ render }) => {
|
|
|
586
738
|
});
|
|
587
739
|
if (display.displayMode === "list") return /* @__PURE__ */ jsx(EventListingController, { render: buildEventCalendarListingRender(render) });
|
|
588
740
|
if (display.displayMode === "timetable") return /* @__PURE__ */ jsx(EventCalendarTimetableClient, { render });
|
|
741
|
+
if (display.displayMode === "week-board") return /* @__PURE__ */ jsx(EventCalendarWeekBoardClient, { display });
|
|
589
742
|
return /* @__PURE__ */ jsx(EventCalendarGridClient, { render });
|
|
590
743
|
};
|
|
744
|
+
const EventCalendarWeekBoardClient = ({ display }) => {
|
|
745
|
+
return /* @__PURE__ */ jsx(WeekBoardView, {
|
|
746
|
+
days: useMemo(() => getWeekCalendarDayTuple(/* @__PURE__ */ new Date(), display.startOfWeek), [display.startOfWeek]),
|
|
747
|
+
events: [...display.events],
|
|
748
|
+
showCapacity: display.showCapacity,
|
|
749
|
+
emptyMessage: display.emptyMessage,
|
|
750
|
+
title: display.boardTitle,
|
|
751
|
+
footerNote: display.footerNote,
|
|
752
|
+
ctaLabel: display.loadMoreText ?? display.buttonText,
|
|
753
|
+
ctaHref: display.seeAllUrl,
|
|
754
|
+
buttonVariant: display.buttonVariant,
|
|
755
|
+
elevated: display.elevated,
|
|
756
|
+
banded: display.banded
|
|
757
|
+
});
|
|
758
|
+
};
|
|
591
759
|
const EventCalendarTimetableClient = ({ render }) => {
|
|
592
760
|
const { display, hydration } = render;
|
|
593
761
|
const { filtersNode, listFilters } = useEventCalendarFilterState(display);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
2
|
-
import { n as EventCombinedIslandClient } from "./EventCombined.client-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
|
+
import { n as EventCombinedIslandClient } from "./EventCombined.client-JnWE6Hzc.mjs";
|
|
3
3
|
import { t as BlockApiProvider } from "./context-BGZNlGXB.mjs";
|
|
4
4
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
5
5
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-
|
|
1
|
+
import { At as getBookingLocalDateKey, H as resolveRuntimeEventPricing, Ht as formatCurrencyAmount, Lt as publicEventPricingCurrency, M as formatEventDateParts, N as formatEventPrice, Nt as toBookingTimeZone, Pt as toScheduledBookingDateTime, V as resolveEventLinkProps, t as defineIslandPropsDecoder, zt as publicEventPricingType } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
|
+
import { n as formatCoursePriceDisplay, r as resolveCoursePricingState, t as formatCoursePriceAmount } from "./pricing-BIbzmV0G.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
4
|
import { n as filterPassesForEvent, t as filterMembershipsForEvent } from "./eventProductEligibility-AVxyCB1u.mjs";
|
|
5
|
-
import { t as LeafletStaticMap } from "./LeafletStaticMap-
|
|
5
|
+
import { t as LeafletStaticMap } from "./LeafletStaticMap-DPAU3SFt.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region ../blocks/src/system/runtime/nodes/event-details/logic.ts
|
|
@@ -214,7 +214,7 @@ function EventDetailsView({ selection, showVenue, showMap, showOtherDates, showC
|
|
|
214
214
|
className: "rb-mt-6",
|
|
215
215
|
children: [/* @__PURE__ */ jsx("div", {
|
|
216
216
|
className: "rb-label rb-mb-2",
|
|
217
|
-
children: "
|
|
217
|
+
children: "With"
|
|
218
218
|
}), /* @__PURE__ */ jsx("div", {
|
|
219
219
|
className: "rb-flex rb-flex-col rb-gap-3",
|
|
220
220
|
children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(TeamMemberName, {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
1
|
+
import { t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
2
2
|
import { t as BlockApiProvider } from "./context-BGZNlGXB.mjs";
|
|
3
3
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
4
4
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
5
|
-
import { t as EventListingClient } from "./EventListing.client-
|
|
5
|
+
import { t as EventListingClient } from "./EventListing.client-DQewc_kg.mjs";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx } from "react/jsx-runtime";
|
|
8
8
|
//#region src/rendering/islands/enhancers/eventListing.tsx
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-
|
|
3
|
-
import { Bt as
|
|
2
|
+
import { n as buildBookingPaymentSelectionViewModel, t as usePolling } from "./usePolling-jcVryNgZ.mjs";
|
|
3
|
+
import { Bt as publicEventScalarPrice, C as getWizardStepsForContext, Et as formatBookingDateTime, H as resolveRuntimeEventPricing, Ht as formatCurrencyAmount, Lt as publicEventPricingCurrency, Nt as toBookingTimeZone, Ot as formatBookingTime, P as formatEventPriceDisplay, Pt as toScheduledBookingDateTime, Rt as publicEventPricingMode, S as getStepNumber, Tt as formatBookingDate, Vt as publicEventTicketTypes, _ as findPreSelectedEvent, _t as assertNever, b as resolveRegistrationTarget, et as resolveEventRegistrationScopedEvents, g as findEventByOccurrenceId, h as toRegistrationEvents, t as defineIslandPropsDecoder, v as resolveDiscountContext, x as WIZARD_STEPS, y as resolveEventRequiresPayment, zt as publicEventPricingType } 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 { i as CheckIcon, n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-
|
|
7
|
-
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-
|
|
8
|
-
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-
|
|
9
|
-
import { t as themeButtonClassName } from "./buttons-
|
|
6
|
+
import { i as CheckIcon, n as TerminalPanel, r as StateIcon, t as useDiscountCodeUi } from "./useDiscountCodeUi-CrG4_ARt.mjs";
|
|
7
|
+
import { t as DiscountCodeDisclosure } from "./DiscountCodeDisclosure-BwGkvmVH.mjs";
|
|
8
|
+
import { n as SpinnerNode, r as formatPrice, t as StepIndicator$1 } from "./StepIndicator-CBlkb4rA.mjs";
|
|
9
|
+
import { t as themeButtonClassName } from "./buttons-DJgynGHQ.mjs";
|
|
10
10
|
import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
|
|
11
11
|
import { n as getFieldValidationControlProps, t as FieldValidationMessage } from "./FieldValidationMessage-AYanWFb-.mjs";
|
|
12
12
|
import { t as createBodyThemePortalRoot } from "./themePortalRoot-AGs4cE7t.mjs";
|
|
13
13
|
import { t as consumeSearchParam } from "./urlParams-D71VXFGx.mjs";
|
|
14
|
-
import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-
|
|
14
|
+
import { a as ClockIcon, i as LoggedInAsUser, n as logoutPortal, r as useWaitlistClaim, t as MagicLinkForm } from "./MagicLinkForm-D4kpWCbW.mjs";
|
|
15
15
|
import { t as CrossIcon } from "./CrossIcon-Dn1KRKW5.mjs";
|
|
16
16
|
import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
17
17
|
import { t as buildRouteIslandApiConfig } from "./routeIslandApiConfig-UNsfPcYq.mjs";
|
|
@@ -2931,7 +2931,7 @@ function useEventRegistrationWizardWithDeps(options, deps) {
|
|
|
2931
2931
|
registrationEvents,
|
|
2932
2932
|
options.occurrenceContext?.seriesId,
|
|
2933
2933
|
options.subject?.kind,
|
|
2934
|
-
options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.reason,
|
|
2934
|
+
options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.kind === "eventOffering" ? `${options.subject.eventOfferingId}:${options.subject.availableEventSeriesIds.join(",")}` : options.subject?.reason,
|
|
2935
2935
|
options.contentEntry?.slug,
|
|
2936
2936
|
options.contentEntry?.contentTypeSlug
|
|
2937
2937
|
]);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { t as clsx } from "./clsx-DgIEfj3H.mjs";
|
|
3
|
-
import {
|
|
3
|
+
import { _t as assertNever, bt as ok, t as defineIslandPropsDecoder, yt as err } 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 { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
|
|
9
9
|
import { useReducer, useRef, useState } from "react";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-
|
|
3
|
-
import { t as themeButtonClassName } from "./buttons-
|
|
2
|
+
import { r as buildCartDisplay, t as defineIslandPropsDecoder } from "./propsDecoder-oR-M-ISN.mjs";
|
|
3
|
+
import { t as themeButtonClassName } from "./buttons-DJgynGHQ.mjs";
|
|
4
4
|
import { t as resolveDedicatedCheckoutPath } from "./checkoutRoute-ClwHwYVA.mjs";
|
|
5
|
-
import { n as useCommerceCart } from "./shop-commerce-store-
|
|
5
|
+
import { n as useCommerceCart } from "./shop-commerce-store-DFMQhU5p.mjs";
|
|
6
6
|
import { t as ModalShell } from "./ModalShell-CqkBvBIC.mjs";
|
|
7
7
|
import * as React$1 from "react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|