@riverbankcms/sdk 0.151.0 → 0.152.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +37 -0
- package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-DVQXWFm6.mjs} +10 -9
- package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-Dr4NJi3Q.mjs} +4 -3
- package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-DSZXQbyh.mjs} +5 -4
- package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-Dl4GyMc3.mjs} +124 -53
- package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-DgBe-FlM.mjs} +20418 -32298
- package/dist/ThemedButton-B8ViBnLK.mjs +16350 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
- package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/endpoints.d.ts +7 -0
- package/dist/_dts/api/src/index.d.ts +1 -1
- package/dist/_dts/api/src/navigation/types.d.ts +7 -0
- package/dist/_dts/api/src/navigation.d.ts +1 -1
- package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
- package/dist/_dts/api/src/siteAssets.d.ts +1 -0
- package/dist/_dts/blocks/src/definitions.d.ts +1 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
- package/dist/_dts/blocks/src/pageRendererContracts.d.ts +1 -1
- package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +16 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +5 -0
- package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
- package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
- package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
- package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +23 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +16 -0
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
- package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
- package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
- package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
- package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
- package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -1
- package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
- package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
- package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
- package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
- package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
- package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
- package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
- package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
- package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
- package/dist/_dts/core/src/branded.d.ts +0 -2
- package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
- package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
- package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
- package/dist/_dts/core/src/index.d.ts +4 -0
- package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
- package/dist/_dts/core/src/mailing-list-targeting.d.ts +2 -0
- package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +51 -32
- package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
- package/dist/_dts/editor/src/index.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
- package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
- package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
- package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
- package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
- package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
- package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
- package/dist/_dts/media-core/src/index.d.ts +1 -0
- package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
- package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
- package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
- package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
- package/dist/_dts/sdk/src/rendering/image.d.ts +10 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +3 -1
- package/dist/_dts/sdk/src/rendering/link.d.ts +9 -0
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/client/BookingMailingListNote-CBuMKN0w.mjs +386 -0
- package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-Dc9XTXhB.mjs} +3 -4
- package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
- package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-CIqx_o0E.mjs} +1 -1
- package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-D3VQ_kLj.mjs} +85 -85
- package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-BHGEKise.mjs} +8 -9
- package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-Bo1Cm23R.mjs} +11 -10
- package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-D5OQgVPr.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-CLL5cWrr.mjs} +1 -1
- package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
- package/dist/client/{RichText-LjPCUGGi.mjs → RichText-BoDmnopf.mjs} +6 -3
- package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-Ciltp0IK.mjs} +2 -2
- package/dist/client/{accordion-Qe--SILD.mjs → accordion-DOkRS64-.mjs} +1 -1
- package/dist/client/aspectTransforms-D-TnDdq4.mjs +93 -0
- package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-wlMVwo9h.mjs} +289 -149
- package/dist/client/bookings.mjs +12212 -10832
- package/dist/client/{carousel-h2YjKOS2.mjs → carousel-CGWk-Z0u.mjs} +2 -2
- package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-kX5mN1Eg.mjs} +46 -41
- package/dist/client/{cart-5NeiigVd.mjs → cart-OBBPlaH4.mjs} +3 -3
- package/dist/client/{checkout-G4UWjOEw.mjs → checkout-Bmw2WjQX.mjs} +3 -3
- package/dist/client/client.mjs +9541 -6039
- package/dist/client/{colorStyles-DTunOThj.mjs → colorStyles-ECDNPE_P.mjs} +23 -86
- package/dist/client/{context-GK4-AVAh.mjs → context-BI77UFAn.mjs} +275 -10
- package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-qkej2Edn.mjs} +19 -17
- package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-DApKHvat.mjs} +4 -4
- package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-BQyUDPH0.mjs} +3 -4
- package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-CeAnshlZ.mjs} +4 -4
- package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-C3A3NyBO.mjs} +2209 -2144
- package/dist/client/{form-Cf0WMtfG.mjs → form-DW8rU7jO.mjs} +6 -6
- package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-CkIhsoNm.mjs} +9 -9
- package/dist/client/hooks.mjs +1289 -380
- package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-D4O8wbli.mjs} +4 -4
- package/dist/client/{media-47fcnhzD.mjs → media-C5K_0xPd.mjs} +2 -2
- package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-B7IxSPuz.mjs} +5 -5
- package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-Bqxpwy5N.mjs} +3 -3
- package/dist/client/{productList-BKQlWEKE.mjs → productList-u9Lz8V15.mjs} +3 -3
- package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-Bf1jucUp.mjs} +17333 -14489
- package/dist/client/rendering/client.mjs +58216 -55133
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +9099 -5636
- package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-BgP-aPMl.mjs} +1 -1
- package/dist/client/{shop-D7ytcFBC.mjs → shop-B_eykR-_.mjs} +16 -14
- package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-CT0APkFV.mjs} +9 -9
- package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DcvZxdEK.mjs} +1 -1
- package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BVJOiUiJ.mjs} +5 -5
- package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
- package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-DPmYDunz.mjs} +60 -77
- package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-8-U55vH5.mjs} +7 -8
- package/dist/preview-next/before-render.mjs +7 -0
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/preview-next/keepAlive.mjs +7 -0
- package/dist/preview-next/middleware.mjs +7 -0
- package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-C5jPdSrk.mjs} +1 -1
- package/dist/server/components.mjs +3138 -1373
- package/dist/server/config-validation.mjs +1395 -486
- package/dist/server/config.mjs +1395 -486
- package/dist/server/data.mjs +1289 -380
- package/dist/server/index.mjs +8 -1
- package/dist/server/next.mjs +3362 -1538
- package/dist/server/page-converter.mjs +1357 -453
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2335 -1044
- package/dist/server/rendering.mjs +3152 -1370
- package/dist/server/routing.mjs +1437 -490
- package/dist/server/server.mjs +1297 -381
- package/dist/server/theme-bridge.mjs +1135 -795
- package/dist/{spinner-tSdG9YvG.mjs → spinner-B-ab2rJp.mjs} +1 -1
- package/dist/styles/index.css +1088 -721
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
- package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
- package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
- package/dist/client/pricing-CMD0kADd.mjs +0 -314
- package/dist/client/result-DRW7JWXz.mjs +0 -30
- package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
- package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
- package/dist/spinner-BL3kW9Uh.mjs +0 -803
|
@@ -23217,9 +23217,15 @@ function isRecord$20(value) {
|
|
|
23217
23217
|
}
|
|
23218
23218
|
//#endregion
|
|
23219
23219
|
//#region ../core/src/money-input.ts
|
|
23220
|
+
function unsafeAsCents(value) {
|
|
23221
|
+
return value;
|
|
23222
|
+
}
|
|
23220
23223
|
function unsafeAsNonNegativeCents(value) {
|
|
23221
23224
|
return value;
|
|
23222
23225
|
}
|
|
23226
|
+
function unsafeAsPositiveCents(value) {
|
|
23227
|
+
return value;
|
|
23228
|
+
}
|
|
23223
23229
|
/**
|
|
23224
23230
|
* Normalizes a derived amount to non-negative whole cents. This intentionally
|
|
23225
23231
|
* clamps negatives to zero; use parseNonNegativeCents for validation.
|
|
@@ -23227,6 +23233,23 @@ function unsafeAsNonNegativeCents(value) {
|
|
|
23227
23233
|
function toNonNegativeCents(value) {
|
|
23228
23234
|
return unsafeAsNonNegativeCents(Math.max(0, Math.trunc(value)));
|
|
23229
23235
|
}
|
|
23236
|
+
function parseCents(value) {
|
|
23237
|
+
if (!Number.isFinite(value)) return err({ kind: "invalid-number" });
|
|
23238
|
+
if (!Number.isInteger(value)) return err({ kind: "not-whole-cents" });
|
|
23239
|
+
return ok$1(unsafeAsCents(value));
|
|
23240
|
+
}
|
|
23241
|
+
function parseNonNegativeCents(value) {
|
|
23242
|
+
const parsed = parseCents(value);
|
|
23243
|
+
if (!parsed.ok) return parsed;
|
|
23244
|
+
if (parsed.value < 0) return err({ kind: "negative" });
|
|
23245
|
+
return ok$1(unsafeAsNonNegativeCents(parsed.value));
|
|
23246
|
+
}
|
|
23247
|
+
function parsePositiveCents(value) {
|
|
23248
|
+
const parsed = parseNonNegativeCents(value);
|
|
23249
|
+
if (!parsed.ok) return parsed;
|
|
23250
|
+
if (parsed.value === 0) return err({ kind: "zero-not-allowed" });
|
|
23251
|
+
return ok$1(unsafeAsPositiveCents(parsed.value));
|
|
23252
|
+
}
|
|
23230
23253
|
//#endregion
|
|
23231
23254
|
//#region ../core/src/booking-payment-options.ts
|
|
23232
23255
|
/** Automatic instalments and a flexible balance cannot share one booking offer. */
|
|
@@ -23790,14 +23813,15 @@ function formError(field) {
|
|
|
23790
23813
|
}
|
|
23791
23814
|
//#endregion
|
|
23792
23815
|
//#region ../core/src/mailing-list-targeting.ts
|
|
23816
|
+
const DEFAULT_MAILING_LIST_TARGETING = { mode: "default" };
|
|
23793
23817
|
function sameMailingListPlacementTargeting(left, right) {
|
|
23794
23818
|
if (left.mode !== right.mode) return false;
|
|
23795
23819
|
if (left.mode === "default" || right.mode === "default") return true;
|
|
23796
23820
|
if (left.provider !== right.provider || left.selection.tag !== right.selection.tag) return false;
|
|
23797
23821
|
if (left.provider === "mailchimp" && (right.provider !== "mailchimp" || left.audienceId !== right.audienceId)) return false;
|
|
23798
|
-
return sameIds(
|
|
23822
|
+
return sameIds(mailingListTargetingChoiceIds(left), mailingListTargetingChoiceIds(right));
|
|
23799
23823
|
}
|
|
23800
|
-
function
|
|
23824
|
+
function mailingListTargetingChoiceIds(targeting) {
|
|
23801
23825
|
switch (targeting.provider) {
|
|
23802
23826
|
case "native": return targeting.selection.tag === "fixed" ? targeting.selection.topicIds : targeting.selection.offeredTopicIds;
|
|
23803
23827
|
case "brevo": return targeting.selection.tag === "fixed" ? targeting.selection.listIds : targeting.selection.offeredListIds;
|
|
@@ -23848,6 +23872,103 @@ function planMailingListChoicePresentation(targeting) {
|
|
|
23848
23872
|
}
|
|
23849
23873
|
}
|
|
23850
23874
|
//#endregion
|
|
23875
|
+
//#region ../core/src/mailing-list-targeting-availability.ts
|
|
23876
|
+
function resolveMailingListDefaultDestination(provider) {
|
|
23877
|
+
switch (provider.provider) {
|
|
23878
|
+
case "native": return provider.topics.find((item) => item.id === provider.defaultTopicId) ?? null;
|
|
23879
|
+
case "brevo": return provider.lists.find((item) => item.id === provider.defaultListId) ?? null;
|
|
23880
|
+
case "mailchimp": return provider.audiences.find((item) => item.id === provider.defaultAudienceId) ?? null;
|
|
23881
|
+
}
|
|
23882
|
+
}
|
|
23883
|
+
function assessMailingListTargeting(context, targeting) {
|
|
23884
|
+
if (context?.tag !== "configured") return {
|
|
23885
|
+
tag: "unavailable",
|
|
23886
|
+
reason: "setup_missing",
|
|
23887
|
+
targeting
|
|
23888
|
+
};
|
|
23889
|
+
const catalog = context.provider;
|
|
23890
|
+
if (targeting.mode === "custom") return assessCustomTargeting(catalog, targeting);
|
|
23891
|
+
const destination = resolveMailingListDefaultDestination(catalog);
|
|
23892
|
+
return destination === null ? {
|
|
23893
|
+
tag: "unavailable",
|
|
23894
|
+
reason: "default_missing",
|
|
23895
|
+
targeting
|
|
23896
|
+
} : {
|
|
23897
|
+
tag: "available",
|
|
23898
|
+
value: {
|
|
23899
|
+
mode: "default",
|
|
23900
|
+
targeting,
|
|
23901
|
+
provider: catalog.provider,
|
|
23902
|
+
destination
|
|
23903
|
+
}
|
|
23904
|
+
};
|
|
23905
|
+
}
|
|
23906
|
+
function assessCustomTargeting(catalog, targeting) {
|
|
23907
|
+
switch (targeting.provider) {
|
|
23908
|
+
case "native": return catalog.provider === "native" ? assessMatchedChoices({
|
|
23909
|
+
provider: "native",
|
|
23910
|
+
catalog,
|
|
23911
|
+
targeting
|
|
23912
|
+
}, catalog.topics) : {
|
|
23913
|
+
tag: "unavailable",
|
|
23914
|
+
reason: "provider_mismatch",
|
|
23915
|
+
targeting
|
|
23916
|
+
};
|
|
23917
|
+
case "brevo": return catalog.provider === "brevo" ? assessMatchedChoices({
|
|
23918
|
+
provider: "brevo",
|
|
23919
|
+
catalog,
|
|
23920
|
+
targeting
|
|
23921
|
+
}, catalog.lists) : {
|
|
23922
|
+
tag: "unavailable",
|
|
23923
|
+
reason: "provider_mismatch",
|
|
23924
|
+
targeting
|
|
23925
|
+
};
|
|
23926
|
+
case "mailchimp": {
|
|
23927
|
+
if (catalog.provider !== "mailchimp") return {
|
|
23928
|
+
tag: "unavailable",
|
|
23929
|
+
reason: "provider_mismatch",
|
|
23930
|
+
targeting
|
|
23931
|
+
};
|
|
23932
|
+
const audience = catalog.audiences.find((item) => item.id === targeting.audienceId);
|
|
23933
|
+
return audience === void 0 ? {
|
|
23934
|
+
tag: "unavailable",
|
|
23935
|
+
reason: "audience_missing",
|
|
23936
|
+
value: {
|
|
23937
|
+
mode: "custom",
|
|
23938
|
+
provider: "mailchimp",
|
|
23939
|
+
catalog,
|
|
23940
|
+
targeting
|
|
23941
|
+
}
|
|
23942
|
+
} : assessMatchedChoices({
|
|
23943
|
+
provider: "mailchimp",
|
|
23944
|
+
catalog,
|
|
23945
|
+
targeting,
|
|
23946
|
+
audience
|
|
23947
|
+
}, audience.interests);
|
|
23948
|
+
}
|
|
23949
|
+
}
|
|
23950
|
+
}
|
|
23951
|
+
function assessMatchedChoices(matched, choices) {
|
|
23952
|
+
const selected = new Set(mailingListTargetingChoiceIds(matched.targeting));
|
|
23953
|
+
const available = new Set(choices.map((item) => item.id));
|
|
23954
|
+
const missingIds = [...selected].filter((id) => !available.has(id));
|
|
23955
|
+
const value = {
|
|
23956
|
+
mode: "custom",
|
|
23957
|
+
...matched,
|
|
23958
|
+
choices,
|
|
23959
|
+
selectedChoices: choices.filter((item) => selected.has(item.id))
|
|
23960
|
+
};
|
|
23961
|
+
return missingIds.length > 0 ? {
|
|
23962
|
+
tag: "unavailable",
|
|
23963
|
+
reason: "choices_missing",
|
|
23964
|
+
missingIds,
|
|
23965
|
+
value
|
|
23966
|
+
} : {
|
|
23967
|
+
tag: "available",
|
|
23968
|
+
value
|
|
23969
|
+
};
|
|
23970
|
+
}
|
|
23971
|
+
//#endregion
|
|
23851
23972
|
//#region ../core/src/mailing-list-runtime.ts
|
|
23852
23973
|
function parseMailingListRuntimeContext(value) {
|
|
23853
23974
|
if (!isRecord$17(value)) return invalidRuntimeContext();
|
|
@@ -23912,57 +24033,47 @@ function parseBrevoRuntimeProvider(value) {
|
|
|
23912
24033
|
function parseMailchimpRuntimeProvider(value) {
|
|
23913
24034
|
if (!Array.isArray(value.audiences)) return null;
|
|
23914
24035
|
const defaultAudienceId = parseMailchimpAudienceId(value.defaultAudienceId);
|
|
23915
|
-
|
|
23916
|
-
|
|
23917
|
-
for (const audience of value.audiences) {
|
|
23918
|
-
if (!isRecord$17(audience)) return null;
|
|
23919
|
-
const id = parseMailchimpAudienceId(audience.id);
|
|
23920
|
-
const name = parseName(audience.name);
|
|
23921
|
-
if (id === null || name === null || !Array.isArray(audience.interests)) return null;
|
|
23922
|
-
const interests = parseMailchimpInterests(audience.interests);
|
|
23923
|
-
if (interests === null) return null;
|
|
23924
|
-
audiences.push({
|
|
23925
|
-
id,
|
|
23926
|
-
name,
|
|
23927
|
-
interests
|
|
23928
|
-
});
|
|
23929
|
-
}
|
|
23930
|
-
return {
|
|
24036
|
+
const audiences = Array.from(value.audiences, parseMailchimpAudience);
|
|
24037
|
+
return defaultAudienceId !== null && audiences.every((audience) => audience !== null) ? {
|
|
23931
24038
|
provider: "mailchimp",
|
|
23932
24039
|
defaultAudienceId,
|
|
23933
24040
|
audiences
|
|
23934
|
-
};
|
|
24041
|
+
} : null;
|
|
23935
24042
|
}
|
|
23936
|
-
function
|
|
23937
|
-
|
|
23938
|
-
|
|
23939
|
-
|
|
23940
|
-
|
|
23941
|
-
|
|
23942
|
-
|
|
23943
|
-
|
|
23944
|
-
interests
|
|
23945
|
-
|
|
23946
|
-
|
|
23947
|
-
|
|
23948
|
-
|
|
23949
|
-
|
|
23950
|
-
|
|
24043
|
+
function parseMailchimpAudience(value) {
|
|
24044
|
+
if (!isRecord$17(value) || !Array.isArray(value.interests)) return null;
|
|
24045
|
+
const id = parseMailchimpAudienceId(value.id);
|
|
24046
|
+
const name = parseName(value.name);
|
|
24047
|
+
const interests = Array.from(value.interests, parseMailchimpInterest);
|
|
24048
|
+
return id !== null && name !== null && interests.every((interest) => interest !== null) ? {
|
|
24049
|
+
id,
|
|
24050
|
+
name,
|
|
24051
|
+
interests
|
|
24052
|
+
} : null;
|
|
24053
|
+
}
|
|
24054
|
+
function parseMailchimpInterest(value) {
|
|
24055
|
+
if (!isRecord$17(value)) return null;
|
|
24056
|
+
const id = parseMailchimpInterestId(value.id);
|
|
24057
|
+
const name = parseName(value.name);
|
|
24058
|
+
const categoryName = parseName(value.categoryName);
|
|
24059
|
+
return id !== null && name !== null && categoryName !== null ? {
|
|
24060
|
+
id,
|
|
24061
|
+
name,
|
|
24062
|
+
categoryName
|
|
24063
|
+
} : null;
|
|
23951
24064
|
}
|
|
23952
24065
|
function parseNamedItems(value, parseId) {
|
|
23953
24066
|
if (!Array.isArray(value)) return null;
|
|
23954
|
-
const items =
|
|
23955
|
-
for (const item of value) {
|
|
24067
|
+
const items = Array.from(value, (item) => {
|
|
23956
24068
|
if (!isRecord$17(item)) return null;
|
|
23957
24069
|
const id = parseId(item.id);
|
|
23958
24070
|
const name = parseName(item.name);
|
|
23959
|
-
|
|
23960
|
-
items.push({
|
|
24071
|
+
return id !== null && name !== null ? {
|
|
23961
24072
|
id,
|
|
23962
24073
|
name
|
|
23963
|
-
}
|
|
23964
|
-
}
|
|
23965
|
-
return items;
|
|
24074
|
+
} : null;
|
|
24075
|
+
});
|
|
24076
|
+
return items.every((item) => item !== null) ? items : null;
|
|
23966
24077
|
}
|
|
23967
24078
|
function parseName(value) {
|
|
23968
24079
|
if (typeof value !== "string") return null;
|
|
@@ -23978,6 +24089,7 @@ function invalidRuntimeContext() {
|
|
|
23978
24089
|
//#endregion
|
|
23979
24090
|
//#region ../core/src/mailing-list-targeting-parser.ts
|
|
23980
24091
|
function parseMailingListPlacementTargeting(value) {
|
|
24092
|
+
if (value == null) return ok$1(DEFAULT_MAILING_LIST_TARGETING);
|
|
23981
24093
|
if (!isRecord$16(value)) return targetingError("shape");
|
|
23982
24094
|
if (value.mode === "default") return ok$1({ mode: "default" });
|
|
23983
24095
|
if (value.mode !== "custom") return targetingError("mode");
|
|
@@ -24076,14 +24188,11 @@ function parseNonEmptyUniqueIds(value, parseId) {
|
|
|
24076
24188
|
}
|
|
24077
24189
|
function parseUniqueIds(value, parseId) {
|
|
24078
24190
|
if (!Array.isArray(value)) return targetingError("targets");
|
|
24079
|
-
|
|
24080
|
-
|
|
24191
|
+
return Array.from(value).reduce((parsed, item) => {
|
|
24192
|
+
if (!parsed.ok) return parsed;
|
|
24081
24193
|
const id = parseId(item);
|
|
24082
|
-
|
|
24083
|
-
|
|
24084
|
-
parsed.push(id);
|
|
24085
|
-
}
|
|
24086
|
-
return ok$1(parsed);
|
|
24194
|
+
return id === null ? targetingError("targets") : parsed.value.includes(id) ? targetingError("duplicate_target") : ok$1([...parsed.value, id]);
|
|
24195
|
+
}, ok$1([]));
|
|
24087
24196
|
}
|
|
24088
24197
|
function isRecord$16(value) {
|
|
24089
24198
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -24594,6 +24703,45 @@ const PORTAL_NAV_DEFAULT_LABELS = {
|
|
|
24594
24703
|
loggedIn: "My Account"
|
|
24595
24704
|
};
|
|
24596
24705
|
//#endregion
|
|
24706
|
+
//#region ../core/src/event-preset-vocabulary.ts
|
|
24707
|
+
const EVENT_PRESET_VOCABULARY = {
|
|
24708
|
+
event: {
|
|
24709
|
+
label: "Event",
|
|
24710
|
+
pluralLabel: "Events",
|
|
24711
|
+
description: "Any event, repeating or manually dated, that does not fit the other categories."
|
|
24712
|
+
},
|
|
24713
|
+
class: {
|
|
24714
|
+
label: "Class",
|
|
24715
|
+
pluralLabel: "Classes",
|
|
24716
|
+
description: "Regular scheduled classes and group sessions."
|
|
24717
|
+
},
|
|
24718
|
+
course: {
|
|
24719
|
+
label: "Course",
|
|
24720
|
+
pluralLabel: "Courses",
|
|
24721
|
+
description: "A fixed set of dates that people book together."
|
|
24722
|
+
},
|
|
24723
|
+
term: {
|
|
24724
|
+
label: "Term",
|
|
24725
|
+
pluralLabel: "Terms",
|
|
24726
|
+
description: "A fixed term of sessions that people book together."
|
|
24727
|
+
},
|
|
24728
|
+
workshop: {
|
|
24729
|
+
label: "Workshop",
|
|
24730
|
+
pluralLabel: "Workshops",
|
|
24731
|
+
description: "One-off workshops, day sessions, or special events."
|
|
24732
|
+
},
|
|
24733
|
+
retreat: {
|
|
24734
|
+
label: "Retreat",
|
|
24735
|
+
pluralLabel: "Retreats",
|
|
24736
|
+
description: "Multi-day or residential immersive experiences."
|
|
24737
|
+
},
|
|
24738
|
+
performance: {
|
|
24739
|
+
label: "Performance",
|
|
24740
|
+
pluralLabel: "Performances",
|
|
24741
|
+
description: "Audience-facing shows, concerts, recitals, or showcases."
|
|
24742
|
+
}
|
|
24743
|
+
};
|
|
24744
|
+
//#endregion
|
|
24597
24745
|
//#region ../media-core/src/fileSafety.ts
|
|
24598
24746
|
const CONTROL_CHARACTER_PATTERN = /[\u0000-\u001f\u007f]/u;
|
|
24599
24747
|
function containsUnsafePathSegmentCharacter(value) {
|
|
@@ -34477,17 +34625,7 @@ const linksTransforms = [{
|
|
|
34477
34625
|
id: "links.resolve",
|
|
34478
34626
|
kind: "formatter",
|
|
34479
34627
|
summary: "Resolve LinkValue objects to href strings using the route map",
|
|
34480
|
-
run: (value, _options, context) =>
|
|
34481
|
-
if (!value || typeof value !== "object") return null;
|
|
34482
|
-
const link = value;
|
|
34483
|
-
const kind = typeof link.kind === "string" ? link.kind : null;
|
|
34484
|
-
if (kind === "internal") return resolveInternalLink(link, context);
|
|
34485
|
-
if (kind === "page") return resolvePageLink(link, context);
|
|
34486
|
-
if (kind === "entry") return resolveEntryLink(link, context);
|
|
34487
|
-
if (kind === "external" || kind === "url") return resolveExternalLink(link);
|
|
34488
|
-
if (!kind && typeof link.href === "string") return resolveExternalLink(link);
|
|
34489
|
-
return null;
|
|
34490
|
-
}
|
|
34628
|
+
run: (value, _options, context) => resolveAuthoredLinkHref(value, context)
|
|
34491
34629
|
}, {
|
|
34492
34630
|
id: "links.label",
|
|
34493
34631
|
kind: "formatter",
|
|
@@ -34514,6 +34652,21 @@ const linksTransforms = [{
|
|
|
34514
34652
|
return null;
|
|
34515
34653
|
}
|
|
34516
34654
|
}];
|
|
34655
|
+
function resolveAuthoredLinkHref(value, context = {}) {
|
|
34656
|
+
if (!value || typeof value !== "object") return null;
|
|
34657
|
+
const link = value;
|
|
34658
|
+
switch (link.kind) {
|
|
34659
|
+
case "internal": return resolveInternalLink(link, context);
|
|
34660
|
+
case "page": return resolvePageLink(link, context);
|
|
34661
|
+
case "entry": return resolveEntryLink(link, context);
|
|
34662
|
+
case "external":
|
|
34663
|
+
case "url": return resolveExternalLink(link);
|
|
34664
|
+
default: return resolvePreResolvedLink(link);
|
|
34665
|
+
}
|
|
34666
|
+
}
|
|
34667
|
+
function resolvePreResolvedLink(link) {
|
|
34668
|
+
return !(typeof link.kind === "string" ? link.kind : null) && typeof link.href === "string" ? resolveExternalLink(link) : null;
|
|
34669
|
+
}
|
|
34517
34670
|
//#endregion
|
|
34518
34671
|
//#region ../blocks/src/system/transforms/registry/content.ts
|
|
34519
34672
|
const supportedRichTextTokenSchema = z.enum(["year", "site_name"]);
|
|
@@ -35586,6 +35739,14 @@ bookingPaymentOptionSchemas.flexibleBalanceConfig;
|
|
|
35586
35739
|
bookingPaymentOptionSchemas.paymentCollectionOption;
|
|
35587
35740
|
const bookingPaymentTermsSchema = bookingPaymentOptionSchemas.paymentTerms;
|
|
35588
35741
|
bookingPaymentOptionSchemas.paymentOptionsChoice;
|
|
35742
|
+
z.strictObject({
|
|
35743
|
+
currency: z.string().trim().length(3),
|
|
35744
|
+
totalCents: nonNegativeIntegerSchema,
|
|
35745
|
+
dueNowCents: nonNegativeIntegerSchema,
|
|
35746
|
+
laterPaymentAmountsCents: z.array(nonNegativeIntegerSchema),
|
|
35747
|
+
paymentOption: z.union([createBookingPaymentOptionSchemas("strict").paymentCollectionOption, z.strictObject({ kind: z.literal("not_required") })]),
|
|
35748
|
+
promisedDiscountId: z.string().min(1).nullable().optional()
|
|
35749
|
+
});
|
|
35589
35750
|
//#endregion
|
|
35590
35751
|
//#region ../blocks/src/system/blocks/shared/bookingPaymentTerms.ts
|
|
35591
35752
|
const blockBookingPaymentTermsSchema = bookingPaymentTermsSchema;
|
|
@@ -35827,6 +35988,10 @@ const publicEventBaseSchema = z.object({
|
|
|
35827
35988
|
eventDestinationMode: eventDestinationModeSchema.optional(),
|
|
35828
35989
|
scheduleScope: eventScheduleScopeSchema$2.optional(),
|
|
35829
35990
|
recurrence: publicEventRecurrenceSchema.optional(),
|
|
35991
|
+
scheduleSummary: z.object({
|
|
35992
|
+
recurrenceDescription: z.string(),
|
|
35993
|
+
startTime: z.string().regex(/^(?:[01]\d|2[0-3]):[0-5]\d$/).nullable()
|
|
35994
|
+
}).nullable().optional(),
|
|
35830
35995
|
id: z.string(),
|
|
35831
35996
|
occurrenceId: z.string(),
|
|
35832
35997
|
seriesId: z.string(),
|
|
@@ -36435,16 +36600,19 @@ function decodeForSchemeCheck(value) {
|
|
|
36435
36600
|
* - Allow absolute URLs with protocols: http, https, mailto, tel.
|
|
36436
36601
|
* - Allow root-relative ("/path") and hash-only ("#section") links.
|
|
36437
36602
|
* - Reject protocol-relative URLs ("//example.com"), bare domains ("example.com"),
|
|
36438
|
-
* executable schemes (javascript/data/vbscript), malformed URLs, and empty values.
|
|
36603
|
+
* backslashes, executable schemes (javascript/data/vbscript), malformed URLs, and empty values.
|
|
36439
36604
|
* - Preserve percent-encoding from the original normalized input.
|
|
36440
36605
|
*/
|
|
36441
36606
|
function sanitizeHref(raw) {
|
|
36442
36607
|
if (typeof raw !== "string") return null;
|
|
36443
36608
|
const normalized = normalizeInput(raw);
|
|
36444
36609
|
if (!normalized) return null;
|
|
36445
|
-
if (normalized.startsWith("//")) return null;
|
|
36610
|
+
if (normalized.includes("\\") || normalized.startsWith("//")) return null;
|
|
36446
36611
|
if (normalized.startsWith("/")) return normalized;
|
|
36447
36612
|
if (normalized.startsWith("#")) return normalized;
|
|
36613
|
+
return sanitizeAbsoluteHref(normalized);
|
|
36614
|
+
}
|
|
36615
|
+
function sanitizeAbsoluteHref(normalized) {
|
|
36448
36616
|
const schemeMatch = normalizeInput(decodeForSchemeCheck(normalized)).match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
|
|
36449
36617
|
if (!schemeMatch) return null;
|
|
36450
36618
|
const rawScheme = schemeMatch[1];
|
|
@@ -39512,6 +39680,11 @@ function formatPlacesLeft(count, compact) {
|
|
|
39512
39680
|
if (compact) return `${count} left`;
|
|
39513
39681
|
return count === 1 ? "1 place left" : `${count} places left`;
|
|
39514
39682
|
}
|
|
39683
|
+
function formatTicketTypeRemaining(remainingCapacity) {
|
|
39684
|
+
if (remainingCapacity === null || remainingCapacity > 3) return null;
|
|
39685
|
+
if (remainingCapacity <= 0) return "None left for this ticket type";
|
|
39686
|
+
return `${formatPlacesLeft(remainingCapacity, false)} for this ticket type`;
|
|
39687
|
+
}
|
|
39515
39688
|
/** Total capacity as copy ("12 places"), for detail surfaces that state the size of an event. */
|
|
39516
39689
|
function formatTotalCapacity(capacity) {
|
|
39517
39690
|
if (capacity === null) return null;
|
|
@@ -40682,6 +40855,13 @@ function buildInteractiveIslandProps(options) {
|
|
|
40682
40855
|
};
|
|
40683
40856
|
}
|
|
40684
40857
|
//#endregion
|
|
40858
|
+
//#region ../commerce/src/purchase/settlement.ts
|
|
40859
|
+
function normalizeCurrencyCode(raw) {
|
|
40860
|
+
const normalized = raw.trim().toUpperCase();
|
|
40861
|
+
if (!/^[A-Z]{3}$/.test(normalized)) throw new Error(`Invalid currency code: ${raw}`);
|
|
40862
|
+
return normalized;
|
|
40863
|
+
}
|
|
40864
|
+
//#endregion
|
|
40685
40865
|
//#region ../commerce/src/purchase/checkoutSessionMetadata.ts
|
|
40686
40866
|
const datedOfferingSharedEngineMetadataShape = {
|
|
40687
40867
|
datedOfferingEngineContractVersion: z.literal("shared_v1"),
|
|
@@ -40736,6 +40916,71 @@ const SharedDatedOfferingOrderCheckoutSessionMetadataSchema = z.object({
|
|
|
40736
40916
|
});
|
|
40737
40917
|
z.union([SharedDatedOfferingOrderCheckoutSessionMetadataSchema, LegacyOrderCheckoutSessionMetadataSchema]);
|
|
40738
40918
|
//#endregion
|
|
40919
|
+
//#region ../commerce/src/purchase/confirmationPaymentSchema.ts
|
|
40920
|
+
const settledBalanceSchema = z.strictObject({ kind: z.literal("settled") });
|
|
40921
|
+
const dueBalanceSchema = z.strictObject({
|
|
40922
|
+
kind: z.literal("due"),
|
|
40923
|
+
amountCents: z.number().int().positive().transform((value, ctx) => {
|
|
40924
|
+
const cents = parsePositiveCents(value);
|
|
40925
|
+
if (cents.ok) return cents.value;
|
|
40926
|
+
ctx.addIssue({
|
|
40927
|
+
code: "custom",
|
|
40928
|
+
message: "Expected positive whole cents"
|
|
40929
|
+
});
|
|
40930
|
+
return z.NEVER;
|
|
40931
|
+
}),
|
|
40932
|
+
dueAt: z.string().nullable()
|
|
40933
|
+
});
|
|
40934
|
+
const paymentBalanceSchema = z.discriminatedUnion("kind", [settledBalanceSchema, dueBalanceSchema]);
|
|
40935
|
+
const currencySchema = z.string().regex(/^[A-Z]{3}$/).transform(normalizeCurrencyCode);
|
|
40936
|
+
const moneyFields = {
|
|
40937
|
+
amountPaidCents: z.number().int().nonnegative().transform(toNonNegativeCents),
|
|
40938
|
+
currency: currencySchema
|
|
40939
|
+
};
|
|
40940
|
+
z.discriminatedUnion("kind", [
|
|
40941
|
+
z.strictObject({
|
|
40942
|
+
kind: z.literal("free"),
|
|
40943
|
+
balance: settledBalanceSchema
|
|
40944
|
+
}),
|
|
40945
|
+
z.strictObject({
|
|
40946
|
+
kind: z.literal("waived"),
|
|
40947
|
+
balance: settledBalanceSchema
|
|
40948
|
+
}),
|
|
40949
|
+
z.strictObject({
|
|
40950
|
+
kind: z.literal("pass"),
|
|
40951
|
+
passName: z.string().nullable(),
|
|
40952
|
+
passCreditsUsed: z.number().int().positive().nullable(),
|
|
40953
|
+
balance: settledBalanceSchema
|
|
40954
|
+
}),
|
|
40955
|
+
z.strictObject({
|
|
40956
|
+
kind: z.literal("membership"),
|
|
40957
|
+
membershipName: z.string().nullable(),
|
|
40958
|
+
balance: settledBalanceSchema
|
|
40959
|
+
}),
|
|
40960
|
+
z.strictObject({
|
|
40961
|
+
kind: z.literal("manual_due"),
|
|
40962
|
+
currency: currencySchema,
|
|
40963
|
+
balance: dueBalanceSchema
|
|
40964
|
+
}),
|
|
40965
|
+
z.strictObject({
|
|
40966
|
+
kind: z.literal("managed_balance_due"),
|
|
40967
|
+
...moneyFields,
|
|
40968
|
+
balance: dueBalanceSchema
|
|
40969
|
+
}),
|
|
40970
|
+
z.strictObject({
|
|
40971
|
+
kind: z.literal("monetary"),
|
|
40972
|
+
...moneyFields,
|
|
40973
|
+
paymentMethod: z.enum([
|
|
40974
|
+
"stripe",
|
|
40975
|
+
"store_credit",
|
|
40976
|
+
"mixed",
|
|
40977
|
+
"manual"
|
|
40978
|
+
]),
|
|
40979
|
+
balance: paymentBalanceSchema
|
|
40980
|
+
})
|
|
40981
|
+
]);
|
|
40982
|
+
toNonNegativeCents(0);
|
|
40983
|
+
//#endregion
|
|
40739
40984
|
//#region ../commerce/src/purchase/stripeCommissionMetadata.ts
|
|
40740
40985
|
/** Reasons are payment evidence, not an independent pricing policy. */
|
|
40741
40986
|
const STRIPE_COMMISSION_FREE_REASONS = [
|
|
@@ -40768,7 +41013,6 @@ z.discriminatedUnion("kind", [
|
|
|
40768
41013
|
...historicalContext
|
|
40769
41014
|
})
|
|
40770
41015
|
]);
|
|
40771
|
-
toNonNegativeCents(0);
|
|
40772
41016
|
//#endregion
|
|
40773
41017
|
//#region ../blocks/src/system/runtime/nodes/booking-form.state.ts
|
|
40774
41018
|
function toTrimmedString(value) {
|
|
@@ -44696,6 +44940,7 @@ function buildOfferingsPreviewRenderStates(input) {
|
|
|
44696
44940
|
}
|
|
44697
44941
|
return states;
|
|
44698
44942
|
}
|
|
44943
|
+
/** Which offerings a site preset row names; one owner for "the course preset means whole-series runs". */
|
|
44699
44944
|
function sourceFromPresetSummary(preset) {
|
|
44700
44945
|
if (preset.engine === "event_series" && preset.canonicalBehaviour === "course") return { kind: "wholeSeries" };
|
|
44701
44946
|
if (preset.engine !== "event_series") return null;
|
|
@@ -47161,26 +47406,48 @@ const occurrenceContextSchema = z.object({
|
|
|
47161
47406
|
overrides: z.record(z.string(), z.unknown()).nullable().optional()
|
|
47162
47407
|
}).nullable();
|
|
47163
47408
|
//#endregion
|
|
47164
|
-
//#region ../blocks/src/system/runtime/nodes/event-registration/
|
|
47165
|
-
|
|
47166
|
-
|
|
47167
|
-
|
|
47168
|
-
|
|
47169
|
-
|
|
47170
|
-
|
|
47171
|
-
|
|
47172
|
-
|
|
47173
|
-
|
|
47174
|
-
|
|
47175
|
-
|
|
47176
|
-
|
|
47177
|
-
|
|
47178
|
-
|
|
47179
|
-
|
|
47180
|
-
|
|
47181
|
-
|
|
47182
|
-
|
|
47183
|
-
|
|
47409
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDisplay.ts
|
|
47410
|
+
const registrationDisplaySchema = z.object({
|
|
47411
|
+
venue: z.enum(["shown", "hidden"]),
|
|
47412
|
+
placesLeft: z.enum(["shown", "hidden"])
|
|
47413
|
+
});
|
|
47414
|
+
function resolveRegistrationDisplay(source) {
|
|
47415
|
+
return {
|
|
47416
|
+
venue: source.showVenue === false ? "hidden" : "shown",
|
|
47417
|
+
placesLeft: source.showCapacity === false ? "hidden" : "shown"
|
|
47418
|
+
};
|
|
47419
|
+
}
|
|
47420
|
+
/** Venue stays in domain data; views receive only the permitted presentation. */
|
|
47421
|
+
function shownVenue(event, display) {
|
|
47422
|
+
return display.venue === "shown" ? event.venue?.name ?? null : null;
|
|
47423
|
+
}
|
|
47424
|
+
/** Full/waitlist explanations remain visible even when optional counts are hidden. */
|
|
47425
|
+
function placesLeftLabel(source, display, wording = {}) {
|
|
47426
|
+
if ("kind" in source) return ticketPlacesLabel(source.remaining, display);
|
|
47427
|
+
if (source.deliveryMode === "hybrid" && source.attendanceModes?.length) return hybridPlacesLabel(source, display, wording);
|
|
47428
|
+
return capacityPlacesLabel(source, display, wording);
|
|
47429
|
+
}
|
|
47430
|
+
function capacityPlacesLabel(source, display, wording) {
|
|
47431
|
+
const remaining = getRemainingPlaces(source);
|
|
47432
|
+
if (display.placesLeft === "hidden" && remaining.kind !== "full") return null;
|
|
47433
|
+
switch (remaining.kind) {
|
|
47434
|
+
case "full": return formatRemainingPlaces(source, wording);
|
|
47435
|
+
case "low": return formatRemainingPlaces(source, wording);
|
|
47436
|
+
case "unlimited": return wording.unlimited ?? null;
|
|
47437
|
+
case "open": return wording.open ?? null;
|
|
47438
|
+
default: return assertNever$3(remaining);
|
|
47439
|
+
}
|
|
47440
|
+
}
|
|
47441
|
+
function hybridPlacesLabel(event, display, wording) {
|
|
47442
|
+
if (display.placesLeft === "shown") return formatEventRemainingPlaces(event, wording);
|
|
47443
|
+
return (event.attendanceModes ?? []).flatMap((mode) => {
|
|
47444
|
+
const label = placesLeftLabel(mode, display, wording);
|
|
47445
|
+
return label ? [`${mode.mode === "online" ? "Online" : "In person"}: ${label}`] : [];
|
|
47446
|
+
}).join(" · ") || null;
|
|
47447
|
+
}
|
|
47448
|
+
function ticketPlacesLabel(remaining, display) {
|
|
47449
|
+
if (remaining !== null && remaining > 0 && display.placesLeft === "hidden") return null;
|
|
47450
|
+
return formatTicketTypeRemaining(remaining);
|
|
47184
47451
|
}
|
|
47185
47452
|
//#endregion
|
|
47186
47453
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationDerivations.ts
|
|
@@ -47206,6 +47473,369 @@ function resolveEventRequiresPayment(input) {
|
|
|
47206
47473
|
return publicEventPricingType(input.event.pricing) === "paid";
|
|
47207
47474
|
}
|
|
47208
47475
|
//#endregion
|
|
47476
|
+
//#region ../blocks/src/system/runtime/shared/components/StepIndicator.tsx
|
|
47477
|
+
function slotClasses(slot, classPrefix, emitSharedClasses) {
|
|
47478
|
+
return [emitSharedClasses ? `rb-${slot}` : null, classPrefix ? `${classPrefix}-${slot}` : null].filter((name) => name !== null).join(" ");
|
|
47479
|
+
}
|
|
47480
|
+
function StepIndicator$1({ currentStep, totalSteps, stepLabels, classPrefix, emitSharedClasses }) {
|
|
47481
|
+
const slot = (name) => slotClasses(name, classPrefix, emitSharedClasses);
|
|
47482
|
+
const current = Math.min(Math.max(currentStep, 1), Math.max(totalSteps, 1));
|
|
47483
|
+
const label = stepLabels?.[current - 1];
|
|
47484
|
+
const percent = Math.round(current / Math.max(totalSteps, 1) * 100);
|
|
47485
|
+
return /* @__PURE__ */ jsxs("nav", {
|
|
47486
|
+
"aria-label": "Booking progress",
|
|
47487
|
+
className: slot("progress"),
|
|
47488
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
47489
|
+
className: slot("progress__head"),
|
|
47490
|
+
children: [label ? /* @__PURE__ */ jsx("span", {
|
|
47491
|
+
className: slot("progress__label"),
|
|
47492
|
+
"aria-current": "step",
|
|
47493
|
+
children: label
|
|
47494
|
+
}) : null, /* @__PURE__ */ jsxs("span", {
|
|
47495
|
+
className: slot("progress__count"),
|
|
47496
|
+
children: [
|
|
47497
|
+
"Step ",
|
|
47498
|
+
current,
|
|
47499
|
+
" of ",
|
|
47500
|
+
totalSteps
|
|
47501
|
+
]
|
|
47502
|
+
})]
|
|
47503
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
47504
|
+
className: slot("progress__track"),
|
|
47505
|
+
role: "progressbar",
|
|
47506
|
+
"aria-valuemin": 1,
|
|
47507
|
+
"aria-valuemax": totalSteps,
|
|
47508
|
+
"aria-valuenow": current,
|
|
47509
|
+
"aria-label": label ? `${label}, step ${current} of ${totalSteps}` : `Step ${current} of ${totalSteps}`,
|
|
47510
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
47511
|
+
className: slot("progress__fill"),
|
|
47512
|
+
style: { width: `${percent}%` }
|
|
47513
|
+
})
|
|
47514
|
+
})]
|
|
47515
|
+
});
|
|
47516
|
+
}
|
|
47517
|
+
//#endregion
|
|
47518
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/utils.ts
|
|
47519
|
+
/**
|
|
47520
|
+
* The locale a site's booking dates are written in: the one the site's time
|
|
47521
|
+
* zone places it in (`eventDateLocale`, shared with event cards), or British
|
|
47522
|
+
* English when the site names no zone.
|
|
47523
|
+
*/
|
|
47524
|
+
function bookingDateLocale(siteTimeZone) {
|
|
47525
|
+
return siteTimeZone ? eventDateLocale(siteTimeZone) : "en-GB";
|
|
47526
|
+
}
|
|
47527
|
+
function bookingInstant(startsAt, input) {
|
|
47528
|
+
return toScheduledBookingDateTime({
|
|
47529
|
+
startsAt,
|
|
47530
|
+
timeZone: toBookingTimeZone(input.timeZone),
|
|
47531
|
+
locale: bookingDateLocale(input.siteTimeZone)
|
|
47532
|
+
});
|
|
47533
|
+
}
|
|
47534
|
+
/** "7:00pm": a twelve-hour clock with a lowercase, unspaced day period. */
|
|
47535
|
+
function bookingClock(startsAt, input) {
|
|
47536
|
+
return formatBookingTime(bookingInstant(startsAt, input), {
|
|
47537
|
+
hour: "numeric",
|
|
47538
|
+
minute: "2-digit",
|
|
47539
|
+
hour12: true
|
|
47540
|
+
}).replace(/\s*([ap])\.?\s?m\.?$/i, (_match, period) => `${period.toLowerCase()}m`);
|
|
47541
|
+
}
|
|
47542
|
+
/** "7:00pm – 8:15pm", or just the start when there's no distinct end. */
|
|
47543
|
+
function clockRange(input) {
|
|
47544
|
+
const start = bookingClock(input.startsAt, input);
|
|
47545
|
+
const end = input.endsAt ? bookingClock(input.endsAt, input) : null;
|
|
47546
|
+
return end && end !== start ? `${start} – ${end}` : start;
|
|
47547
|
+
}
|
|
47548
|
+
/** A stored local clock has no date or DST offset; UTC preserves its digits. */
|
|
47549
|
+
function formatBookingScheduleSummary(event) {
|
|
47550
|
+
const summary = event.scheduleSummary;
|
|
47551
|
+
if (!summary) return null;
|
|
47552
|
+
const time = summary.startTime ? formatBookingWhen({
|
|
47553
|
+
startsAt: `1970-01-01T${summary.startTime}:00Z`,
|
|
47554
|
+
timeZone: "UTC",
|
|
47555
|
+
siteTimeZone: event.siteTimeZone
|
|
47556
|
+
}, "time") : null;
|
|
47557
|
+
return [summary.recurrenceDescription, time].filter(Boolean).join(" · ");
|
|
47558
|
+
}
|
|
47559
|
+
/** The one booking date formatter; every variant derives from it. */
|
|
47560
|
+
function formatBookingWhen(input, variant) {
|
|
47561
|
+
const instant = bookingInstant(input.startsAt, input);
|
|
47562
|
+
const day = formatBookingDate(instant, {
|
|
47563
|
+
weekday: "short",
|
|
47564
|
+
day: "numeric",
|
|
47565
|
+
month: "short"
|
|
47566
|
+
});
|
|
47567
|
+
switch (variant) {
|
|
47568
|
+
case "day": return day;
|
|
47569
|
+
case "dayLong": return formatBookingDate(instant, {
|
|
47570
|
+
weekday: "long",
|
|
47571
|
+
day: "numeric",
|
|
47572
|
+
month: "long"
|
|
47573
|
+
});
|
|
47574
|
+
case "month": return formatBookingDate(instant, { month: "long" });
|
|
47575
|
+
case "monthYear": return formatBookingDate(instant, {
|
|
47576
|
+
month: "long",
|
|
47577
|
+
year: "numeric"
|
|
47578
|
+
});
|
|
47579
|
+
case "time": return bookingClock(input.startsAt, input);
|
|
47580
|
+
case "timeRange": return clockRange(input);
|
|
47581
|
+
case "short": return `${day}, ${bookingClock(input.startsAt, input)}`;
|
|
47582
|
+
case "long": return `${day} · ${clockRange(input)}`;
|
|
47583
|
+
}
|
|
47584
|
+
}
|
|
47585
|
+
/** A single instant in the short form, e.g. "Mon 5 Oct, 7:00pm". */
|
|
47586
|
+
function formatEventDateTime(isoTimestamp, options) {
|
|
47587
|
+
return formatBookingWhen({
|
|
47588
|
+
startsAt: isoTimestamp,
|
|
47589
|
+
timeZone: options?.timeZone,
|
|
47590
|
+
siteTimeZone: options?.siteTimeZone
|
|
47591
|
+
}, "short");
|
|
47592
|
+
}
|
|
47593
|
+
/** The title an occurrence was given on its own, when it overrides the event's. */
|
|
47594
|
+
function occurrenceTitleOverride(occurrence) {
|
|
47595
|
+
const title = occurrence?.overrides?.title;
|
|
47596
|
+
return typeof title === "string" && title.trim() ? title.trim() : null;
|
|
47597
|
+
}
|
|
47598
|
+
/** The event as this page names it: an occurrence's own title wins. */
|
|
47599
|
+
function withOccurrenceTitle(event, occurrence) {
|
|
47600
|
+
const title = occurrenceTitleOverride(occurrence);
|
|
47601
|
+
return event && title ? {
|
|
47602
|
+
...event,
|
|
47603
|
+
title
|
|
47604
|
+
} : event;
|
|
47605
|
+
}
|
|
47606
|
+
function courseSchedule(sessions, siteTimeZone) {
|
|
47607
|
+
const first = sessions[0];
|
|
47608
|
+
if (!first) return null;
|
|
47609
|
+
const last = sessions[sessions.length - 1] ?? first;
|
|
47610
|
+
const firstLabel = formatEventDateTime(first.startsAt, {
|
|
47611
|
+
timeZone: first.timeZone,
|
|
47612
|
+
siteTimeZone
|
|
47613
|
+
});
|
|
47614
|
+
if (last.startsAt === first.startsAt) return `${sessions.length} session${sessions.length === 1 ? "" : "s"} · ${firstLabel}`;
|
|
47615
|
+
const lastLabel = formatEventDateTime(last.startsAt, {
|
|
47616
|
+
timeZone: last.timeZone,
|
|
47617
|
+
siteTimeZone
|
|
47618
|
+
});
|
|
47619
|
+
return `${sessions.length} sessions · ${firstLabel} – ${lastLabel}`;
|
|
47620
|
+
}
|
|
47621
|
+
/**
|
|
47622
|
+
* When a booking happens, in one line: the occurrence's date and time, or a
|
|
47623
|
+
* course's session count and first and last dates. `short` by default (bar,
|
|
47624
|
+
* confirmation); `long` adds the end time (card, panel header).
|
|
47625
|
+
*/
|
|
47626
|
+
function formatRegistrationSchedule(event, occurrence, variant = "short") {
|
|
47627
|
+
if (event.registrationSubject.kind === "wholeSeries") return courseSchedule(event.registrationSubject.sessions, event.siteTimeZone);
|
|
47628
|
+
const input = scheduleInput(event, occurrence ?? null);
|
|
47629
|
+
return input ? formatBookingWhen(input, variant) : null;
|
|
47630
|
+
}
|
|
47631
|
+
/** The occurrence's own times when the page names one, otherwise the event's. */
|
|
47632
|
+
function scheduleInput(event, occurrence) {
|
|
47633
|
+
const times = occurrence?.startsAt ? {
|
|
47634
|
+
startsAt: occurrence.startsAt,
|
|
47635
|
+
endsAt: occurrence.endsAt ?? null
|
|
47636
|
+
} : {
|
|
47637
|
+
startsAt: event.startsAt,
|
|
47638
|
+
endsAt: event.endsAt
|
|
47639
|
+
};
|
|
47640
|
+
if (!times.startsAt) return null;
|
|
47641
|
+
return {
|
|
47642
|
+
...times,
|
|
47643
|
+
timeZone: occurrence?.timeZone ?? event.timeZone ?? null,
|
|
47644
|
+
siteTimeZone: event.siteTimeZone
|
|
47645
|
+
};
|
|
47646
|
+
}
|
|
47647
|
+
//#endregion
|
|
47648
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/wizardSteps.ts
|
|
47649
|
+
function registrationRoute(input) {
|
|
47650
|
+
const base = input.chooseEvent ? [
|
|
47651
|
+
"select-event",
|
|
47652
|
+
"select-tickets",
|
|
47653
|
+
"enter-details"
|
|
47654
|
+
] : ["select-tickets", "enter-details"];
|
|
47655
|
+
switch (input.payment) {
|
|
47656
|
+
case "none": return base;
|
|
47657
|
+
case "options": return [...base, "select-payment"];
|
|
47658
|
+
case "optionsAndPayment": return [
|
|
47659
|
+
...base,
|
|
47660
|
+
"select-payment",
|
|
47661
|
+
"payment"
|
|
47662
|
+
];
|
|
47663
|
+
}
|
|
47664
|
+
}
|
|
47665
|
+
const REGISTRATION_STEP_LABELS = [
|
|
47666
|
+
"Event",
|
|
47667
|
+
"Date",
|
|
47668
|
+
"Tickets",
|
|
47669
|
+
"Places",
|
|
47670
|
+
"Your details",
|
|
47671
|
+
"How you’ll pay",
|
|
47672
|
+
"Payment"
|
|
47673
|
+
];
|
|
47674
|
+
/** Several dates of one series are a date choice; anything else is an event choice. */
|
|
47675
|
+
function getEventSelectionMode(events) {
|
|
47676
|
+
const firstSeriesId = events[0]?.seriesId;
|
|
47677
|
+
return events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId) ? "date" : "event";
|
|
47678
|
+
}
|
|
47679
|
+
/** The label facts for a surface: what the visitor chooses from, and what they book. */
|
|
47680
|
+
function registrationStepLabelContext(scopedEvents, bookedEvent) {
|
|
47681
|
+
return {
|
|
47682
|
+
eventSelection: getEventSelectionMode(scopedEvents),
|
|
47683
|
+
booksWholeSeries: bookedEvent?.registrationSubject.kind === "wholeSeries"
|
|
47684
|
+
};
|
|
47685
|
+
}
|
|
47686
|
+
/** One label owner for the live progress and the server placeholder. */
|
|
47687
|
+
function registrationStepLabel(step, context) {
|
|
47688
|
+
switch (step) {
|
|
47689
|
+
case "select-event": return context.eventSelection === "date" ? "Date" : "Event";
|
|
47690
|
+
case "select-tickets": return context.booksWholeSeries ? "Places" : "Tickets";
|
|
47691
|
+
case "enter-details": return "Your details";
|
|
47692
|
+
case "select-payment": return "How you’ll pay";
|
|
47693
|
+
case "payment": return "Payment";
|
|
47694
|
+
}
|
|
47695
|
+
}
|
|
47696
|
+
function bookingButtonText(buttonText) {
|
|
47697
|
+
return buttonText?.trim() || "Book your place";
|
|
47698
|
+
}
|
|
47699
|
+
function placesLabel(event, input, compact) {
|
|
47700
|
+
return placesLeftLabel(selectEventCapacitySource(event, input.attendanceMode), input.display, { compact });
|
|
47701
|
+
}
|
|
47702
|
+
function isFull(event, mode) {
|
|
47703
|
+
return formatRemainingPlaces(selectEventCapacitySource(event, mode), {
|
|
47704
|
+
full: "full",
|
|
47705
|
+
waitlist: "full"
|
|
47706
|
+
}) === "full";
|
|
47707
|
+
}
|
|
47708
|
+
function priceLabel(event) {
|
|
47709
|
+
return formatEventPriceDisplay(event.pricing).trim() || null;
|
|
47710
|
+
}
|
|
47711
|
+
/** The lowest price a display can mean; null when it names no paid amount. */
|
|
47712
|
+
function lowestPaidAmount(display) {
|
|
47713
|
+
switch (display.kind) {
|
|
47714
|
+
case "exact":
|
|
47715
|
+
case "from": return display.amount;
|
|
47716
|
+
case "range": return display.minAmount;
|
|
47717
|
+
case "mixed": return display.paidFromAmount;
|
|
47718
|
+
case "free":
|
|
47719
|
+
case "unavailable":
|
|
47720
|
+
case "external": return null;
|
|
47721
|
+
}
|
|
47722
|
+
}
|
|
47723
|
+
/**
|
|
47724
|
+
* One price for a set of dates: the shared label when every date costs the
|
|
47725
|
+
* same, otherwise "From" the lowest paid amount, through the one formatter.
|
|
47726
|
+
*/
|
|
47727
|
+
function seriesPriceLabel(events) {
|
|
47728
|
+
const firstEvent = events[0];
|
|
47729
|
+
if (!firstEvent) return null;
|
|
47730
|
+
const displays = events.map((event) => publicEventPricingDisplay(event.pricing));
|
|
47731
|
+
const labels = new Set(displays.map((display) => formatBookingPriceDisplay(display, { decimals: "auto" })));
|
|
47732
|
+
if (labels.size === 1) return [...labels][0] || null;
|
|
47733
|
+
const lowest = displays.flatMap((display) => {
|
|
47734
|
+
const amount = lowestPaidAmount(display);
|
|
47735
|
+
return amount === null || !("currency" in display) ? [] : [{
|
|
47736
|
+
amount,
|
|
47737
|
+
currency: display.currency
|
|
47738
|
+
}];
|
|
47739
|
+
}).reduce((best, candidate) => best === null || candidate.amount < best.amount ? candidate : best, null);
|
|
47740
|
+
return lowest ? formatBookingPriceDisplay({
|
|
47741
|
+
kind: "from",
|
|
47742
|
+
amount: lowest.amount,
|
|
47743
|
+
currency: lowest.currency
|
|
47744
|
+
}, { decimals: "auto" }) : priceLabel(firstEvent);
|
|
47745
|
+
}
|
|
47746
|
+
function dateTile(event) {
|
|
47747
|
+
if (event.registrationSubject.kind === "wholeSeries" || !event.startsAt) return null;
|
|
47748
|
+
const rail = formatEventCompactDateRail(event.startsAt, { timeZone: event.timeZone });
|
|
47749
|
+
return {
|
|
47750
|
+
month: rail.month,
|
|
47751
|
+
day: rail.day
|
|
47752
|
+
};
|
|
47753
|
+
}
|
|
47754
|
+
/** "Mon 5 Oct": the compact date the chips and the bar share. */
|
|
47755
|
+
function formatBookingShortDate(event) {
|
|
47756
|
+
return formatBookingWhen(event, "day");
|
|
47757
|
+
}
|
|
47758
|
+
function byStart(left, right) {
|
|
47759
|
+
return Date.parse(left.startsAt) - Date.parse(right.startsAt);
|
|
47760
|
+
}
|
|
47761
|
+
function singleEntry(event, input) {
|
|
47762
|
+
const isCourse = event.registrationSubject.kind === "wholeSeries";
|
|
47763
|
+
return {
|
|
47764
|
+
kind: "single",
|
|
47765
|
+
title: event.title,
|
|
47766
|
+
when: formatRegistrationSchedule(event, null, "long"),
|
|
47767
|
+
shortWhen: formatRegistrationSchedule(event),
|
|
47768
|
+
venue: shownVenue(event, input.display),
|
|
47769
|
+
price: priceLabel(event),
|
|
47770
|
+
places: placesLabel(event, input, false),
|
|
47771
|
+
tile: dateTile(event),
|
|
47772
|
+
action: isCourse ? `Book the ${input.noun.label}` : bookingButtonText(input.buttonText)
|
|
47773
|
+
};
|
|
47774
|
+
}
|
|
47775
|
+
function chooseDateEntry(input) {
|
|
47776
|
+
const ordered = [...input.events].sort(byStart);
|
|
47777
|
+
const first = ordered[0];
|
|
47778
|
+
const shown = ordered.slice(0, 4);
|
|
47779
|
+
return {
|
|
47780
|
+
kind: "chooseDate",
|
|
47781
|
+
title: first?.title ?? "",
|
|
47782
|
+
schedule: (first ? formatBookingScheduleSummary(first) : null) ?? (ordered.length === 1 ? "1 date" : `${ordered.length} dates`),
|
|
47783
|
+
venue: first ? shownVenue(first, input.display) : null,
|
|
47784
|
+
price: seriesPriceLabel(ordered),
|
|
47785
|
+
nextDate: first ? formatBookingShortDate(first) : null,
|
|
47786
|
+
dateCount: ordered.length,
|
|
47787
|
+
dates: shown.map((event) => ({
|
|
47788
|
+
selectionId: event.selectionId,
|
|
47789
|
+
label: formatBookingShortDate(event),
|
|
47790
|
+
places: placesLabel(event, input, true),
|
|
47791
|
+
full: isFull(event, input.attendanceMode)
|
|
47792
|
+
})),
|
|
47793
|
+
moreCount: Math.max(0, ordered.length - shown.length),
|
|
47794
|
+
action: "Choose a date"
|
|
47795
|
+
};
|
|
47796
|
+
}
|
|
47797
|
+
/** The card before a booking starts; the server renders this too. */
|
|
47798
|
+
function idleBookingEntry(input) {
|
|
47799
|
+
if (input.event) return singleEntry(input.event, input);
|
|
47800
|
+
const only = input.events.length === 1 ? input.events[0] : void 0;
|
|
47801
|
+
if (only) return singleEntry(only, input);
|
|
47802
|
+
if (getEventSelectionMode(input.events) === "date") return chooseDateEntry(input);
|
|
47803
|
+
return {
|
|
47804
|
+
kind: "chooseEvent",
|
|
47805
|
+
title: input.events[0]?.title ?? "",
|
|
47806
|
+
count: input.events.length,
|
|
47807
|
+
noun: input.noun.pluralLabel,
|
|
47808
|
+
action: "Choose an event"
|
|
47809
|
+
};
|
|
47810
|
+
}
|
|
47811
|
+
//#endregion
|
|
47812
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/offeringNoun.ts
|
|
47813
|
+
function offeringKindForEvent(event) {
|
|
47814
|
+
return event.registrationSubject.kind === "wholeSeries" ? "course" : event.eventPreset ?? "event";
|
|
47815
|
+
}
|
|
47816
|
+
function presetKind(preset) {
|
|
47817
|
+
const source = sourceFromPresetSummary(preset);
|
|
47818
|
+
if (!source) return null;
|
|
47819
|
+
return source.kind === "wholeSeries" ? "course" : source.preset;
|
|
47820
|
+
}
|
|
47821
|
+
/**
|
|
47822
|
+
* What the site calls this kind of offering, in lower case for use mid-sentence
|
|
47823
|
+
* ("Book the course", "3 workshops"). Site preset labels win; the canonical
|
|
47824
|
+
* name stands in when the site has none.
|
|
47825
|
+
*/
|
|
47826
|
+
function offeringNounForEvent(event, presets) {
|
|
47827
|
+
if (!event) return lowerCased(EVENT_PRESET_VOCABULARY.event);
|
|
47828
|
+
const kind = offeringKindForEvent(event);
|
|
47829
|
+
const preset = presets?.find((candidate) => presetKind(candidate) === kind);
|
|
47830
|
+
return lowerCased(preset?.label.trim() && preset.pluralLabel.trim() ? preset : EVENT_PRESET_VOCABULARY[kind]);
|
|
47831
|
+
}
|
|
47832
|
+
function lowerCased(noun) {
|
|
47833
|
+
return {
|
|
47834
|
+
label: noun.label.trim().toLocaleLowerCase(),
|
|
47835
|
+
pluralLabel: noun.pluralLabel.trim().toLocaleLowerCase()
|
|
47836
|
+
};
|
|
47837
|
+
}
|
|
47838
|
+
//#endregion
|
|
47209
47839
|
//#region ../blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.ts
|
|
47210
47840
|
function toRegistrationEvent(event) {
|
|
47211
47841
|
return {
|
|
@@ -47250,6 +47880,101 @@ function toWholeSeriesRegistrationEvents(events) {
|
|
|
47250
47880
|
return groupPublicEventsByRun(events).map(toWholeSeriesRegistrationEvent).filter((event) => event !== null);
|
|
47251
47881
|
}
|
|
47252
47882
|
//#endregion
|
|
47883
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.ts
|
|
47884
|
+
/**
|
|
47885
|
+
* The booking card the server renders on CMS pages (issue 1581), and the
|
|
47886
|
+
* offering noun it resolves for the wizard. Kept beside the island contract
|
|
47887
|
+
* so the server and the client agree on one card.
|
|
47888
|
+
*/
|
|
47889
|
+
const bookingHostSchema = z.enum(["overlay", "inPlace"]);
|
|
47890
|
+
const tileSchema = z.object({
|
|
47891
|
+
month: z.string(),
|
|
47892
|
+
day: z.string()
|
|
47893
|
+
}).nullable();
|
|
47894
|
+
const idleBookingEntrySchema = z.discriminatedUnion("kind", [
|
|
47895
|
+
z.object({
|
|
47896
|
+
kind: z.literal("single"),
|
|
47897
|
+
title: z.string(),
|
|
47898
|
+
when: z.string().nullable(),
|
|
47899
|
+
shortWhen: z.string().nullable(),
|
|
47900
|
+
venue: z.string().nullable(),
|
|
47901
|
+
price: z.string().nullable(),
|
|
47902
|
+
places: z.string().nullable(),
|
|
47903
|
+
tile: tileSchema,
|
|
47904
|
+
action: z.string()
|
|
47905
|
+
}),
|
|
47906
|
+
z.object({
|
|
47907
|
+
kind: z.literal("chooseDate"),
|
|
47908
|
+
title: z.string(),
|
|
47909
|
+
schedule: z.string(),
|
|
47910
|
+
venue: z.string().nullable(),
|
|
47911
|
+
price: z.string().nullable(),
|
|
47912
|
+
nextDate: z.string().nullable(),
|
|
47913
|
+
dateCount: z.number(),
|
|
47914
|
+
dates: z.array(z.object({
|
|
47915
|
+
selectionId: z.string(),
|
|
47916
|
+
label: z.string(),
|
|
47917
|
+
places: z.string().nullable(),
|
|
47918
|
+
full: z.boolean()
|
|
47919
|
+
})),
|
|
47920
|
+
moreCount: z.number(),
|
|
47921
|
+
action: z.string()
|
|
47922
|
+
}),
|
|
47923
|
+
z.object({
|
|
47924
|
+
kind: z.literal("chooseEvent"),
|
|
47925
|
+
title: z.string(),
|
|
47926
|
+
count: z.number(),
|
|
47927
|
+
noun: z.string(),
|
|
47928
|
+
action: z.string()
|
|
47929
|
+
})
|
|
47930
|
+
]);
|
|
47931
|
+
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
47932
|
+
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
47933
|
+
}
|
|
47934
|
+
function scopedRegistrationEvents(source, scopedSourceEvents) {
|
|
47935
|
+
const scopedEvents = toScopedEventRegistrationEvents(scopedSourceEvents);
|
|
47936
|
+
return {
|
|
47937
|
+
scopedEvents,
|
|
47938
|
+
preSelected: findPreSelectedEvent({
|
|
47939
|
+
scopedEvents,
|
|
47940
|
+
occurrenceContext: source.occurrenceContext
|
|
47941
|
+
})
|
|
47942
|
+
};
|
|
47943
|
+
}
|
|
47944
|
+
function nounFor(scoped, presets) {
|
|
47945
|
+
return offeringNounForEvent(scoped.preSelected ?? scoped.scopedEvents[0] ?? null, presets);
|
|
47946
|
+
}
|
|
47947
|
+
/** What the site calls the offering this block books, from its preset rows. */
|
|
47948
|
+
function resolveOfferingNoun(source, scopedSourceEvents) {
|
|
47949
|
+
return nounFor(scopedRegistrationEvents(source, scopedSourceEvents), source.bookingOfferingPresets);
|
|
47950
|
+
}
|
|
47951
|
+
function idleEntry(source, scopedSourceEvents, display) {
|
|
47952
|
+
const scoped = scopedRegistrationEvents(source, scopedSourceEvents);
|
|
47953
|
+
if (scoped.scopedEvents.length === 0) return null;
|
|
47954
|
+
return idleBookingEntry({
|
|
47955
|
+
events: scoped.scopedEvents,
|
|
47956
|
+
event: withOccurrenceTitle(scoped.preSelected, source.occurrenceContext),
|
|
47957
|
+
display,
|
|
47958
|
+
buttonText: source.buttonText,
|
|
47959
|
+
noun: nounFor(scoped, source.bookingOfferingPresets),
|
|
47960
|
+
attendanceMode: null
|
|
47961
|
+
});
|
|
47962
|
+
}
|
|
47963
|
+
/** The server's card on CMS pages, or null where the shell still applies. */
|
|
47964
|
+
function bookingCardDisplay(source, scopedSourceEvents, display) {
|
|
47965
|
+
if ((source.host ?? "overlay") !== "overlay") return null;
|
|
47966
|
+
const entry = idleEntry(source, scopedSourceEvents, display);
|
|
47967
|
+
if (!entry) return null;
|
|
47968
|
+
return {
|
|
47969
|
+
kind: "event-registration",
|
|
47970
|
+
state: "booking-card",
|
|
47971
|
+
className: source.className ?? null,
|
|
47972
|
+
entry,
|
|
47973
|
+
buttonVariant: source.buttonVariant ?? null,
|
|
47974
|
+
buttonText: source.buttonText?.trim() ?? ""
|
|
47975
|
+
};
|
|
47976
|
+
}
|
|
47977
|
+
//#endregion
|
|
47253
47978
|
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
47254
47979
|
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
47255
47980
|
const eventRecoveryRequestSchema = z.object({
|
|
@@ -47292,27 +48017,17 @@ function parseEventLoaderRecoveryRequest(value) {
|
|
|
47292
48017
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
47293
48018
|
"Date",
|
|
47294
48019
|
"Tickets",
|
|
47295
|
-
"
|
|
47296
|
-
];
|
|
47297
|
-
const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
|
|
47298
|
-
"Event",
|
|
47299
|
-
"Date",
|
|
47300
|
-
"Tickets",
|
|
47301
|
-
"Details",
|
|
47302
|
-
"Payment options",
|
|
47303
|
-
"Payment"
|
|
48020
|
+
"Your details"
|
|
47304
48021
|
];
|
|
47305
48022
|
const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
|
|
47306
|
-
const
|
|
48023
|
+
const eventRegistrationCommonSchemaShape = {
|
|
47307
48024
|
demoEmailSuppressed: z.boolean().optional(),
|
|
47308
48025
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
47309
48026
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
47310
48027
|
maxTickets: z.string().optional(),
|
|
47311
|
-
showVenue: z.boolean().optional(),
|
|
47312
|
-
showCapacity: z.boolean().optional(),
|
|
47313
48028
|
successMessage: z.string().optional(),
|
|
47314
48029
|
buttonVariant: registrationButtonVariantSchema.optional(),
|
|
47315
|
-
|
|
48030
|
+
host: bookingHostSchema.optional(),
|
|
47316
48031
|
spamProtectionEnabled: z.boolean().optional(),
|
|
47317
48032
|
supportEmail: z.string().optional(),
|
|
47318
48033
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
@@ -47337,32 +48052,51 @@ const eventRegistrationSourceSchema = z.object({
|
|
|
47337
48052
|
portalToken: z.string().nullable().optional(),
|
|
47338
48053
|
previewToken: z.string().nullable().optional(),
|
|
47339
48054
|
readAuthority: browserReadAuthoritySchema.optional(),
|
|
47340
|
-
...
|
|
48055
|
+
...eventRegistrationCommonSchemaShape,
|
|
48056
|
+
showVenue: z.boolean().optional(),
|
|
48057
|
+
showCapacity: z.boolean().optional(),
|
|
47341
48058
|
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
47342
48059
|
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
47343
48060
|
eventLoaderFailures: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
47344
48061
|
className: z.string().nullable().optional(),
|
|
47345
48062
|
buttonText: z.string().nullable().optional(),
|
|
47346
48063
|
maxTickets: z.string().nullable().optional(),
|
|
47347
|
-
stage: previewStageSchema.optional()
|
|
48064
|
+
stage: previewStageSchema.optional(),
|
|
48065
|
+
bookingOfferingPresets: z.array(z.custom((value) => typeof value === "object" && value !== null && typeof value.label === "string")).nullable().optional()
|
|
47348
48066
|
});
|
|
47349
|
-
const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [
|
|
47350
|
-
|
|
47351
|
-
|
|
47352
|
-
|
|
47353
|
-
|
|
47354
|
-
|
|
47355
|
-
|
|
47356
|
-
|
|
47357
|
-
|
|
47358
|
-
|
|
47359
|
-
|
|
47360
|
-
|
|
47361
|
-
|
|
47362
|
-
|
|
47363
|
-
|
|
48067
|
+
const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [
|
|
48068
|
+
z.object({
|
|
48069
|
+
kind: z.literal("event-registration"),
|
|
48070
|
+
state: z.literal("generic-shell"),
|
|
48071
|
+
className: z.string().nullable(),
|
|
48072
|
+
titleText: z.string(),
|
|
48073
|
+
bodyText: z.string(),
|
|
48074
|
+
stepLabels: z.array(z.enum(REGISTRATION_STEP_LABELS)).min(1),
|
|
48075
|
+
summaryButtonText: z.string()
|
|
48076
|
+
}),
|
|
48077
|
+
z.object({
|
|
48078
|
+
kind: z.literal("event-registration"),
|
|
48079
|
+
state: z.literal("registration-closed"),
|
|
48080
|
+
className: z.string().nullable(),
|
|
48081
|
+
titleText: z.string(),
|
|
48082
|
+
bodyText: z.string()
|
|
48083
|
+
}),
|
|
48084
|
+
z.object({
|
|
48085
|
+
kind: z.literal("event-registration"),
|
|
48086
|
+
state: z.literal("booking-card"),
|
|
48087
|
+
className: z.string().nullable(),
|
|
48088
|
+
entry: idleBookingEntrySchema,
|
|
48089
|
+
buttonVariant: registrationButtonVariantSchema.nullable(),
|
|
48090
|
+
buttonText: z.string()
|
|
48091
|
+
})
|
|
48092
|
+
]);
|
|
47364
48093
|
const eventRegistrationHydrationSchema = z.object({
|
|
47365
|
-
...
|
|
48094
|
+
...eventRegistrationCommonSchemaShape,
|
|
48095
|
+
display: registrationDisplaySchema,
|
|
48096
|
+
offeringNoun: z.object({
|
|
48097
|
+
label: z.string(),
|
|
48098
|
+
pluralLabel: z.string()
|
|
48099
|
+
}).optional(),
|
|
47366
48100
|
eventSource: eventRegistrationEventSourceSchema
|
|
47367
48101
|
});
|
|
47368
48102
|
const eventRegistrationRenderSchema = z.object({
|
|
@@ -47377,7 +48111,7 @@ z.object({
|
|
|
47377
48111
|
readAuthority: browserReadAuthoritySchema.optional(),
|
|
47378
48112
|
stage: previewStageSchema.optional()
|
|
47379
48113
|
});
|
|
47380
|
-
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents) {
|
|
48114
|
+
function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents, display) {
|
|
47381
48115
|
const selectedRun = resolveSelectedWholeSeriesRun(scopedSourceEvents);
|
|
47382
48116
|
if (selectedRun && (!selectedRun.run.enrollmentOpen || toWholeSeriesRegistrationEvent(selectedRun) === null)) return {
|
|
47383
48117
|
kind: "event-registration",
|
|
@@ -47386,6 +48120,8 @@ function buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvent
|
|
|
47386
48120
|
titleText: "Registration closed",
|
|
47387
48121
|
bodyText: "This run is no longer open for bookings."
|
|
47388
48122
|
};
|
|
48123
|
+
const card = bookingCardDisplay(source, scopedSourceEvents, display);
|
|
48124
|
+
if (card) return card;
|
|
47389
48125
|
const stepLabels = buildEventRegistrationShellStepLabels(source, scopedSourceEvents);
|
|
47390
48126
|
return {
|
|
47391
48127
|
kind: "event-registration",
|
|
@@ -47402,11 +48138,14 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
47402
48138
|
if (selectedRun) {
|
|
47403
48139
|
const selectedEvent = toWholeSeriesRegistrationEvent(selectedRun);
|
|
47404
48140
|
if (!selectedEvent) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
47405
|
-
return
|
|
47406
|
-
|
|
47407
|
-
|
|
47408
|
-
|
|
47409
|
-
|
|
48141
|
+
return shellStepLabels(registrationRoute({
|
|
48142
|
+
chooseEvent: false,
|
|
48143
|
+
payment: resolveEventRequiresPayment({
|
|
48144
|
+
eligibility: null,
|
|
48145
|
+
selectedTicketType: null,
|
|
48146
|
+
event: selectedEvent
|
|
48147
|
+
}) ? "optionsAndPayment" : "none"
|
|
48148
|
+
}), registrationStepLabelContext([selectedEvent], selectedEvent));
|
|
47410
48149
|
}
|
|
47411
48150
|
const scopedEvents = toScopedEventRegistrationEvents(scopedSourceEvents);
|
|
47412
48151
|
if (scopedEvents.length === 0) return EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS;
|
|
@@ -47415,14 +48154,15 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
47415
48154
|
occurrenceContext: source.occurrenceContext
|
|
47416
48155
|
});
|
|
47417
48156
|
const hasPreSelectedContext = Boolean(source.occurrenceContext || preSelectedEvent);
|
|
47418
|
-
|
|
48157
|
+
const needsPaymentStep = hasPreSelectedContext && preSelectedEvent ? resolveEventRequiresPayment({
|
|
47419
48158
|
eligibility: null,
|
|
47420
48159
|
selectedTicketType: null,
|
|
47421
48160
|
event: preSelectedEvent
|
|
47422
|
-
}) : false
|
|
47423
|
-
|
|
47424
|
-
|
|
47425
|
-
|
|
48161
|
+
}) : false;
|
|
48162
|
+
return shellStepLabels(registrationRoute({
|
|
48163
|
+
chooseEvent: !hasPreSelectedContext,
|
|
48164
|
+
payment: needsPaymentStep ? "optionsAndPayment" : "none"
|
|
48165
|
+
}), registrationStepLabelContext(scopedEvents, preSelectedEvent));
|
|
47426
48166
|
}
|
|
47427
48167
|
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
47428
48168
|
return resolveEventRegistrationScopedEvents(eventSource.kind === "loaded" ? eventSource.events : [], {
|
|
@@ -47438,29 +48178,12 @@ function resolveSelectedWholeSeriesRun(scopedSourceEvents) {
|
|
|
47438
48178
|
const runs = groupPublicEventsByRun(scopedSourceEvents);
|
|
47439
48179
|
return runs.length === 1 ? runs[0] : null;
|
|
47440
48180
|
}
|
|
47441
|
-
function
|
|
47442
|
-
|
|
47443
|
-
case "select-event": return isDateSelection(events) ? "Date" : "Event";
|
|
47444
|
-
case "select-tickets": return "Tickets";
|
|
47445
|
-
case "enter-details": return "Details";
|
|
47446
|
-
case "select-payment": return "Payment options";
|
|
47447
|
-
case "payment": return "Payment";
|
|
47448
|
-
case "error":
|
|
47449
|
-
case "success":
|
|
47450
|
-
case "submitting":
|
|
47451
|
-
case "verifying-payment":
|
|
47452
|
-
case "verifying-timeout":
|
|
47453
|
-
case "payment-status":
|
|
47454
|
-
case "payment-failed": return "Details";
|
|
47455
|
-
}
|
|
47456
|
-
}
|
|
47457
|
-
function isDateSelection(events) {
|
|
47458
|
-
const firstSeriesId = events[0]?.seriesId;
|
|
47459
|
-
return Boolean(events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId));
|
|
48181
|
+
function shellStepLabels(route, context) {
|
|
48182
|
+
return route.map((step) => registrationStepLabel(step, context));
|
|
47460
48183
|
}
|
|
47461
48184
|
function buildEventRegistrationShellBodyText(stepLabels) {
|
|
47462
|
-
if (stepLabels.includes("
|
|
47463
|
-
if (stepLabels[0] === "Tickets") return "Preparing tickets and booking details.";
|
|
48185
|
+
if (stepLabels.includes("How you’ll pay")) return "Preparing tickets, details, and payment options.";
|
|
48186
|
+
if (stepLabels[0] === "Tickets" || stepLabels[0] === "Places") return "Preparing tickets and booking details.";
|
|
47464
48187
|
return "Preparing dates, tickets, and booking details.";
|
|
47465
48188
|
}
|
|
47466
48189
|
const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
@@ -47470,6 +48193,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
47470
48193
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
47471
48194
|
},
|
|
47472
48195
|
buildRender: (source) => {
|
|
48196
|
+
const display = resolveRegistrationDisplay(source);
|
|
47473
48197
|
const eventSource = resolveEventRegistrationEventSource({
|
|
47474
48198
|
events: source.events,
|
|
47475
48199
|
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
@@ -47477,7 +48201,7 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
47477
48201
|
});
|
|
47478
48202
|
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
47479
48203
|
return {
|
|
47480
|
-
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
48204
|
+
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents, display),
|
|
47481
48205
|
hydration: {
|
|
47482
48206
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
47483
48207
|
subject: source.subject ?? null,
|
|
@@ -47487,17 +48211,17 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
47487
48211
|
} : eventSource,
|
|
47488
48212
|
demoEmailSuppressed: source.demoEmailSuppressed,
|
|
47489
48213
|
maxTickets: source.maxTickets ?? void 0,
|
|
47490
|
-
|
|
47491
|
-
showCapacity: source.showCapacity,
|
|
48214
|
+
display,
|
|
47492
48215
|
successMessage: source.successMessage,
|
|
47493
48216
|
buttonVariant: source.buttonVariant,
|
|
47494
|
-
|
|
48217
|
+
host: source.host ?? "overlay",
|
|
47495
48218
|
spamProtectionEnabled: source.spamProtectionEnabled,
|
|
47496
48219
|
supportEmail: source.supportEmail,
|
|
47497
48220
|
sitePasses: source.sitePasses ?? null,
|
|
47498
48221
|
siteMemberships: source.siteMemberships ?? null,
|
|
47499
48222
|
mailingList: source.mailingList,
|
|
47500
|
-
siteName: source.siteName
|
|
48223
|
+
siteName: source.siteName,
|
|
48224
|
+
offeringNoun: resolveOfferingNoun(source, scopedSourceEvents)
|
|
47501
48225
|
}
|
|
47502
48226
|
};
|
|
47503
48227
|
}
|
|
@@ -47564,7 +48288,7 @@ const eventRegistrationBlockDefinition = {
|
|
|
47564
48288
|
description: "Main heading for the registration form",
|
|
47565
48289
|
required: false,
|
|
47566
48290
|
multiline: false,
|
|
47567
|
-
defaultValue: "
|
|
48291
|
+
defaultValue: ""
|
|
47568
48292
|
},
|
|
47569
48293
|
{
|
|
47570
48294
|
id: "description",
|
|
@@ -47636,11 +48360,11 @@ const eventRegistrationBlockDefinition = {
|
|
|
47636
48360
|
{
|
|
47637
48361
|
id: "buttonText",
|
|
47638
48362
|
type: "text",
|
|
47639
|
-
label: "
|
|
47640
|
-
description: "Text
|
|
48363
|
+
label: "Button text",
|
|
48364
|
+
description: "Text on the booking button",
|
|
47641
48365
|
required: false,
|
|
47642
48366
|
multiline: false,
|
|
47643
|
-
defaultValue: "
|
|
48367
|
+
defaultValue: "Book your place",
|
|
47644
48368
|
maxLength: 40
|
|
47645
48369
|
},
|
|
47646
48370
|
createButtonVariantField()
|
|
@@ -47672,21 +48396,21 @@ const eventRegistrationBlockDefinition = {
|
|
|
47672
48396
|
successMessage: { $bind: { from: "content.successMessage" } },
|
|
47673
48397
|
buttonText: { $bind: {
|
|
47674
48398
|
from: "content.buttonText",
|
|
47675
|
-
fallback: "
|
|
48399
|
+
fallback: "Book your place"
|
|
47676
48400
|
} },
|
|
47677
48401
|
buttonVariant: { $bind: {
|
|
47678
48402
|
from: "content.buttonVariant",
|
|
47679
48403
|
fallback: "primary"
|
|
47680
48404
|
} },
|
|
47681
|
-
overlayEnabled: { $bind: {
|
|
47682
|
-
from: "$root.eventRegistrationOverlayEnabled",
|
|
47683
|
-
fallback: false
|
|
47684
|
-
} },
|
|
47685
48405
|
events: { $bind: { from: "data.events" } },
|
|
47686
48406
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
47687
48407
|
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
47688
48408
|
mailingList: { $bind: { from: "$root.mailingList" } },
|
|
47689
48409
|
siteName: { $bind: { from: "$root.siteName" } },
|
|
48410
|
+
bookingOfferingPresets: { $bind: {
|
|
48411
|
+
from: "$root.bookingOfferingPresets",
|
|
48412
|
+
fallback: []
|
|
48413
|
+
} },
|
|
47690
48414
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
47691
48415
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
47692
48416
|
stage: { $bind: {
|
|
@@ -49427,7 +50151,21 @@ const eventCalendarBlockDefinition = {
|
|
|
49427
50151
|
list: { label: "List" }
|
|
49428
50152
|
}
|
|
49429
50153
|
}, eventCalendarContentShape),
|
|
49430
|
-
|
|
50154
|
+
contentNormalizer: {
|
|
50155
|
+
fieldIds: [
|
|
50156
|
+
"variant",
|
|
50157
|
+
"displayMode",
|
|
50158
|
+
"listLayout",
|
|
50159
|
+
"defaultCalendarView",
|
|
50160
|
+
"eventSurface",
|
|
50161
|
+
"filterEventPresets",
|
|
50162
|
+
"scheduleScope",
|
|
50163
|
+
"filterCategoryIds",
|
|
50164
|
+
"filterStaffMemberId",
|
|
50165
|
+
"filterVenueId"
|
|
50166
|
+
],
|
|
50167
|
+
normalize: normalizeEventCalendarContent
|
|
50168
|
+
},
|
|
49431
50169
|
dataSchemas: {
|
|
49432
50170
|
events: publicEventsArraySchema.optional(),
|
|
49433
50171
|
calendarWindow: calendarWindowPageSchema.optional()
|
|
@@ -50180,11 +50918,11 @@ function buildNewsletterDisplay(source) {
|
|
|
50180
50918
|
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
50181
50919
|
privacyNote: null
|
|
50182
50920
|
};
|
|
50183
|
-
const
|
|
50184
|
-
const choices = resolveRuntimeChoices(
|
|
50921
|
+
const assessment = assessMailingListTargeting(context, source.targeting ?? { mode: "default" });
|
|
50922
|
+
const choices = resolveRuntimeChoices(assessment);
|
|
50185
50923
|
return {
|
|
50186
50924
|
kind: "newsletter-form",
|
|
50187
|
-
availability:
|
|
50925
|
+
availability: assessment.tag === "available" ? "ready" : "unavailable",
|
|
50188
50926
|
className: source.className ?? null,
|
|
50189
50927
|
buttonLabel: form.buttonLabel,
|
|
50190
50928
|
successMessage: form.successMessage,
|
|
@@ -50241,60 +50979,12 @@ function projectNewsletterFormHydrationTarget(source) {
|
|
|
50241
50979
|
default: return assertNever$3(source);
|
|
50242
50980
|
}
|
|
50243
50981
|
}
|
|
50244
|
-
function resolveRuntimeChoices(
|
|
50245
|
-
if (
|
|
50246
|
-
|
|
50247
|
-
|
|
50248
|
-
|
|
50249
|
-
|
|
50250
|
-
id: item.id,
|
|
50251
|
-
label: item.name
|
|
50252
|
-
})) : [];
|
|
50253
|
-
}
|
|
50254
|
-
case "brevo": {
|
|
50255
|
-
const offered = new Set(targeting.selection.offeredListIds);
|
|
50256
|
-
return context.provider.provider === "brevo" ? context.provider.lists.filter((item) => offered.has(item.id)).map((item) => ({
|
|
50257
|
-
id: String(item.id),
|
|
50258
|
-
label: item.name
|
|
50259
|
-
})) : [];
|
|
50260
|
-
}
|
|
50261
|
-
case "mailchimp": {
|
|
50262
|
-
const offered = new Set(targeting.selection.offeredInterestIds);
|
|
50263
|
-
return (context.provider.provider === "mailchimp" ? context.provider.audiences.find((item) => item.id === targeting.audienceId) : void 0)?.interests.filter((item) => offered.has(item.id)).map((item) => ({
|
|
50264
|
-
id: item.id,
|
|
50265
|
-
label: item.name
|
|
50266
|
-
})) ?? [];
|
|
50267
|
-
}
|
|
50268
|
-
}
|
|
50269
|
-
}
|
|
50270
|
-
function runtimeTargetingIsAvailable(context, targeting, choices) {
|
|
50271
|
-
if (context?.tag !== "configured") return false;
|
|
50272
|
-
const provider = context.provider;
|
|
50273
|
-
if (targeting.mode === "default") switch (provider.provider) {
|
|
50274
|
-
case "native": return provider.topics.some((item) => item.id === provider.defaultTopicId);
|
|
50275
|
-
case "brevo": return provider.lists.some((item) => item.id === provider.defaultListId);
|
|
50276
|
-
case "mailchimp": return provider.audiences.some((item) => item.id === provider.defaultAudienceId);
|
|
50277
|
-
}
|
|
50278
|
-
if (targeting.provider !== provider.provider) return false;
|
|
50279
|
-
switch (targeting.provider) {
|
|
50280
|
-
case "native": return provider.provider === "native" && nativeTargetIsAvailable(provider, targeting, choices);
|
|
50281
|
-
case "brevo": return provider.provider === "brevo" && brevoTargetIsAvailable(provider, targeting, choices);
|
|
50282
|
-
case "mailchimp": return provider.provider === "mailchimp" && mailchimpTargetIsAvailable(provider, targeting, choices);
|
|
50283
|
-
}
|
|
50284
|
-
}
|
|
50285
|
-
function nativeTargetIsAvailable(provider, targeting, choices) {
|
|
50286
|
-
const ids = targeting.selection.tag === "fixed" ? targeting.selection.topicIds : targeting.selection.offeredTopicIds;
|
|
50287
|
-
return ids.every((id) => provider.topics.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
50288
|
-
}
|
|
50289
|
-
function brevoTargetIsAvailable(provider, targeting, choices) {
|
|
50290
|
-
const ids = targeting.selection.tag === "fixed" ? targeting.selection.listIds : targeting.selection.offeredListIds;
|
|
50291
|
-
return ids.every((id) => provider.lists.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
50292
|
-
}
|
|
50293
|
-
function mailchimpTargetIsAvailable(provider, targeting, choices) {
|
|
50294
|
-
const audience = provider.audiences.find((item) => item.id === targeting.audienceId);
|
|
50295
|
-
if (!audience) return false;
|
|
50296
|
-
const ids = targeting.selection.tag === "fixed" ? targeting.selection.interestIds : targeting.selection.offeredInterestIds;
|
|
50297
|
-
return ids.every((id) => audience.interests.some((item) => item.id === id)) && (targeting.selection.tag !== "visitor_choice" || choices.length === ids.length);
|
|
50982
|
+
function resolveRuntimeChoices(assessment) {
|
|
50983
|
+
if (!("value" in assessment) || assessment.value.mode !== "custom" || !("selectedChoices" in assessment.value) || assessment.value.targeting.selection.tag !== "visitor_choice") return [];
|
|
50984
|
+
return assessment.value.selectedChoices.map((item) => ({
|
|
50985
|
+
id: String(item.id),
|
|
50986
|
+
label: item.name
|
|
50987
|
+
}));
|
|
50298
50988
|
}
|
|
50299
50989
|
function buildNewsletterFormInteractiveIslandProps(props) {
|
|
50300
50990
|
const decoded = newsletterFormBlockRuntime.contracts.source.decode(props);
|
|
@@ -50325,6 +51015,15 @@ function parseRequiredMailingListSignedSourceToken(value) {
|
|
|
50325
51015
|
return parsed;
|
|
50326
51016
|
}
|
|
50327
51017
|
//#endregion
|
|
51018
|
+
//#region ../blocks/src/system/helpers/normalizeMailingListBlockContent.ts
|
|
51019
|
+
/** Fill the declared default without admitting or rewriting invalid custom settings. */
|
|
51020
|
+
function normalizeMailingListBlockContent(record) {
|
|
51021
|
+
return record.targeting == null ? {
|
|
51022
|
+
...record,
|
|
51023
|
+
targeting: DEFAULT_MAILING_LIST_TARGETING
|
|
51024
|
+
} : record;
|
|
51025
|
+
}
|
|
51026
|
+
//#endregion
|
|
50328
51027
|
//#region ../blocks/src/system/blocks/newsletter-signup.ts
|
|
50329
51028
|
const stackedComposition = composeFragments([{ fragment: newsletterCopyFragment }, { fragment: newsletterFormFragment }]);
|
|
50330
51029
|
const stackedLayout$1 = styledSection({
|
|
@@ -50421,6 +51120,10 @@ function sanitizeNewsletterSignupPublicContent(content) {
|
|
|
50421
51120
|
}
|
|
50422
51121
|
const newsletterSignupBlockDefinition = {
|
|
50423
51122
|
manifest: newsletterSignupManifest,
|
|
51123
|
+
contentNormalizer: {
|
|
51124
|
+
fieldIds: ["targeting"],
|
|
51125
|
+
normalize: normalizeMailingListBlockContent
|
|
51126
|
+
},
|
|
50424
51127
|
runtime: newsletterFormBlockRuntime
|
|
50425
51128
|
};
|
|
50426
51129
|
const productDetailBlockDefinition = {
|
|
@@ -51669,6 +52372,7 @@ function dateLabel(key, timeZone) {
|
|
|
51669
52372
|
}
|
|
51670
52373
|
function MonthDay(props) {
|
|
51671
52374
|
const { day, selection } = props;
|
|
52375
|
+
const { controls } = selection;
|
|
51672
52376
|
const selected = day.dateKey === selection.selectedDay;
|
|
51673
52377
|
return /* @__PURE__ */ jsxs("div", {
|
|
51674
52378
|
"data-slot": "date",
|
|
@@ -51680,7 +52384,7 @@ function MonthDay(props) {
|
|
|
51680
52384
|
"data-slot": "control",
|
|
51681
52385
|
"aria-label": `Show events on ${dateLabel(day.dateKey, selection.timeZone)}`,
|
|
51682
52386
|
"aria-pressed": selected,
|
|
51683
|
-
onClick: () =>
|
|
52387
|
+
onClick: controls ? () => controls.selectDay(day.dateKey) : void 0,
|
|
51684
52388
|
children: day.date.day
|
|
51685
52389
|
}) : /* @__PURE__ */ jsx("span", {
|
|
51686
52390
|
"data-slot": "date-label",
|
|
@@ -51693,7 +52397,7 @@ function MonthDay(props) {
|
|
|
51693
52397
|
type: "button",
|
|
51694
52398
|
className: "event-calendar-more",
|
|
51695
52399
|
"data-slot": "more",
|
|
51696
|
-
onClick: () =>
|
|
52400
|
+
onClick: controls ? () => controls.openDay(day.date, day.entries.map(({ event }) => event)) : void 0,
|
|
51697
52401
|
children: [
|
|
51698
52402
|
"+",
|
|
51699
52403
|
day.moreCount,
|
|
@@ -52854,10 +53558,219 @@ function RegistrationClosedState({ title, body }) {
|
|
|
52854
53558
|
});
|
|
52855
53559
|
}
|
|
52856
53560
|
//#endregion
|
|
52857
|
-
//#region ../blocks/src/system/runtime/nodes/event-registration.
|
|
52858
|
-
function
|
|
52859
|
-
return
|
|
53561
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.tsx
|
|
53562
|
+
function joinFacts(facts) {
|
|
53563
|
+
return facts.filter((fact) => Boolean(fact)).join(" · ");
|
|
53564
|
+
}
|
|
53565
|
+
function finishedTitle(entry) {
|
|
53566
|
+
if (entry.kind === "waitlisted") return entry.when ? `You’re on the waitlist for ${entry.when}` : "You’re on the waitlist";
|
|
53567
|
+
return entry.when ? `You’re booked: ${entry.when}` : "You’re booked";
|
|
53568
|
+
}
|
|
53569
|
+
function CheckBadge() {
|
|
53570
|
+
return /* @__PURE__ */ jsx("span", {
|
|
53571
|
+
className: "er-booking-card__badge",
|
|
53572
|
+
"aria-hidden": "true",
|
|
53573
|
+
children: /* @__PURE__ */ jsx("svg", {
|
|
53574
|
+
width: "22",
|
|
53575
|
+
height: "22",
|
|
53576
|
+
viewBox: "0 0 22 22",
|
|
53577
|
+
fill: "none",
|
|
53578
|
+
stroke: "currentColor",
|
|
53579
|
+
strokeWidth: "2.6",
|
|
53580
|
+
strokeLinecap: "round",
|
|
53581
|
+
strokeLinejoin: "round",
|
|
53582
|
+
children: /* @__PURE__ */ jsx("path", { d: "M5 11.5l4 4L17 7" })
|
|
53583
|
+
})
|
|
53584
|
+
});
|
|
53585
|
+
}
|
|
53586
|
+
function CardCta(props) {
|
|
53587
|
+
return /* @__PURE__ */ jsx(ThemedButton, {
|
|
53588
|
+
type: "button",
|
|
53589
|
+
variant: props.variant,
|
|
53590
|
+
size: "md",
|
|
53591
|
+
extraClassName: "er-booking-card__cta",
|
|
53592
|
+
label: props.label,
|
|
53593
|
+
onClick: props.onClick
|
|
53594
|
+
});
|
|
53595
|
+
}
|
|
53596
|
+
function SingleCard({ entry, buttonVariant, onAction }) {
|
|
53597
|
+
return /* @__PURE__ */ jsx("div", {
|
|
53598
|
+
className: "er-booking-card",
|
|
53599
|
+
"data-entry": "single",
|
|
53600
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
53601
|
+
className: "er-booking-card__row",
|
|
53602
|
+
children: [
|
|
53603
|
+
entry.tile ? /* @__PURE__ */ jsxs("span", {
|
|
53604
|
+
className: "er-booking-card__tile",
|
|
53605
|
+
"aria-hidden": "true",
|
|
53606
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
53607
|
+
className: "er-booking-card__tile-month",
|
|
53608
|
+
children: entry.tile.month
|
|
53609
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
53610
|
+
className: "er-booking-card__tile-day",
|
|
53611
|
+
children: entry.tile.day
|
|
53612
|
+
})]
|
|
53613
|
+
}) : null,
|
|
53614
|
+
/* @__PURE__ */ jsxs("div", {
|
|
53615
|
+
className: "er-booking-card__body",
|
|
53616
|
+
children: [
|
|
53617
|
+
entry.when ? /* @__PURE__ */ jsx("p", {
|
|
53618
|
+
className: "er-booking-card__when",
|
|
53619
|
+
children: entry.when
|
|
53620
|
+
}) : null,
|
|
53621
|
+
entry.venue ? /* @__PURE__ */ jsx("p", {
|
|
53622
|
+
className: "er-booking-card__venue",
|
|
53623
|
+
children: entry.venue
|
|
53624
|
+
}) : null,
|
|
53625
|
+
/* @__PURE__ */ jsx("p", {
|
|
53626
|
+
className: "er-booking-card__facts",
|
|
53627
|
+
children: joinFacts([entry.price, entry.places])
|
|
53628
|
+
})
|
|
53629
|
+
]
|
|
53630
|
+
}),
|
|
53631
|
+
/* @__PURE__ */ jsx(CardCta, {
|
|
53632
|
+
label: entry.action,
|
|
53633
|
+
variant: buttonVariant,
|
|
53634
|
+
onClick: onAction
|
|
53635
|
+
})
|
|
53636
|
+
]
|
|
53637
|
+
})
|
|
53638
|
+
});
|
|
53639
|
+
}
|
|
53640
|
+
function ChooseDateCard({ entry, buttonVariant, onAction, onChooseDate }) {
|
|
53641
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
53642
|
+
className: "er-booking-card",
|
|
53643
|
+
"data-entry": "choose-date",
|
|
53644
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
53645
|
+
className: "er-booking-card__row",
|
|
53646
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
53647
|
+
className: "er-booking-card__body",
|
|
53648
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
53649
|
+
className: "er-booking-card__when",
|
|
53650
|
+
children: joinFacts([entry.schedule, entry.venue])
|
|
53651
|
+
}), /* @__PURE__ */ jsx("p", {
|
|
53652
|
+
className: "er-booking-card__facts",
|
|
53653
|
+
children: joinFacts([entry.price])
|
|
53654
|
+
})]
|
|
53655
|
+
}), /* @__PURE__ */ jsx(CardCta, {
|
|
53656
|
+
label: entry.action,
|
|
53657
|
+
variant: buttonVariant,
|
|
53658
|
+
onClick: onAction
|
|
53659
|
+
})]
|
|
53660
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
53661
|
+
className: "er-booking-card__dates",
|
|
53662
|
+
children: [
|
|
53663
|
+
/* @__PURE__ */ jsx("span", {
|
|
53664
|
+
className: "er-booking-card__dates-label",
|
|
53665
|
+
children: "Next dates"
|
|
53666
|
+
}),
|
|
53667
|
+
entry.dates.map((date) => /* @__PURE__ */ jsx("button", {
|
|
53668
|
+
type: "button",
|
|
53669
|
+
className: "er-booking-card__date",
|
|
53670
|
+
"data-full": date.full ? "true" : void 0,
|
|
53671
|
+
onClick: onChooseDate ? () => onChooseDate(date.selectionId) : void 0,
|
|
53672
|
+
children: joinFacts([date.label, date.places])
|
|
53673
|
+
}, date.selectionId)),
|
|
53674
|
+
entry.moreCount > 0 ? /* @__PURE__ */ jsxs("span", {
|
|
53675
|
+
className: "er-booking-card__more",
|
|
53676
|
+
children: [
|
|
53677
|
+
"+ ",
|
|
53678
|
+
entry.moreCount,
|
|
53679
|
+
" more"
|
|
53680
|
+
]
|
|
53681
|
+
}) : null
|
|
53682
|
+
]
|
|
53683
|
+
})]
|
|
53684
|
+
});
|
|
53685
|
+
}
|
|
53686
|
+
function ChooseEventCard({ entry, buttonVariant, onAction }) {
|
|
53687
|
+
return /* @__PURE__ */ jsx("div", {
|
|
53688
|
+
className: "er-booking-card",
|
|
53689
|
+
"data-entry": "choose-event",
|
|
53690
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
53691
|
+
className: "er-booking-card__row",
|
|
53692
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
53693
|
+
className: "er-booking-card__body",
|
|
53694
|
+
children: /* @__PURE__ */ jsx("p", {
|
|
53695
|
+
className: "er-booking-card__when",
|
|
53696
|
+
children: `${entry.count} ${entry.noun}`
|
|
53697
|
+
})
|
|
53698
|
+
}), /* @__PURE__ */ jsx(CardCta, {
|
|
53699
|
+
label: entry.action,
|
|
53700
|
+
variant: buttonVariant,
|
|
53701
|
+
onClick: onAction
|
|
53702
|
+
})]
|
|
53703
|
+
})
|
|
53704
|
+
});
|
|
53705
|
+
}
|
|
53706
|
+
function FinishedCard({ entry, onAction }) {
|
|
53707
|
+
return /* @__PURE__ */ jsx("div", {
|
|
53708
|
+
className: "er-booking-card",
|
|
53709
|
+
"data-entry": entry.kind,
|
|
53710
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
53711
|
+
className: "er-booking-card__row",
|
|
53712
|
+
children: [
|
|
53713
|
+
/* @__PURE__ */ jsx(CheckBadge, {}),
|
|
53714
|
+
/* @__PURE__ */ jsxs("div", {
|
|
53715
|
+
className: "er-booking-card__body",
|
|
53716
|
+
children: [/* @__PURE__ */ jsx("p", {
|
|
53717
|
+
className: "er-booking-card__when",
|
|
53718
|
+
children: finishedTitle(entry)
|
|
53719
|
+
}), entry.kind === "booked" && entry.places ? /* @__PURE__ */ jsx("p", {
|
|
53720
|
+
className: "er-booking-card__facts",
|
|
53721
|
+
children: entry.places
|
|
53722
|
+
}) : null]
|
|
53723
|
+
}),
|
|
53724
|
+
/* @__PURE__ */ jsx(CardCta, {
|
|
53725
|
+
label: entry.action,
|
|
53726
|
+
variant: "outline",
|
|
53727
|
+
onClick: onAction
|
|
53728
|
+
})
|
|
53729
|
+
]
|
|
53730
|
+
})
|
|
53731
|
+
});
|
|
53732
|
+
}
|
|
53733
|
+
function BookingEntryCard(props) {
|
|
53734
|
+
const { entry, ...rest } = props;
|
|
53735
|
+
switch (entry.kind) {
|
|
53736
|
+
case "single": return /* @__PURE__ */ jsx(SingleCard, {
|
|
53737
|
+
entry,
|
|
53738
|
+
...rest
|
|
53739
|
+
});
|
|
53740
|
+
case "chooseDate": return /* @__PURE__ */ jsx(ChooseDateCard, {
|
|
53741
|
+
entry,
|
|
53742
|
+
...rest
|
|
53743
|
+
});
|
|
53744
|
+
case "chooseEvent": return /* @__PURE__ */ jsx(ChooseEventCard, {
|
|
53745
|
+
entry,
|
|
53746
|
+
...rest
|
|
53747
|
+
});
|
|
53748
|
+
case "inProgress": return null;
|
|
53749
|
+
case "booked":
|
|
53750
|
+
case "waitlisted": return /* @__PURE__ */ jsx(FinishedCard, {
|
|
53751
|
+
entry,
|
|
53752
|
+
...rest
|
|
53753
|
+
});
|
|
53754
|
+
default: return assertNever$3(entry);
|
|
53755
|
+
}
|
|
53756
|
+
}
|
|
53757
|
+
//#endregion
|
|
53758
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/StepIndicator.tsx
|
|
53759
|
+
/**
|
|
53760
|
+
* Step indicator component for the event registration wizard.
|
|
53761
|
+
* Thin wrapper around the shared StepIndicator: styled by the shared
|
|
53762
|
+
* registration-surface classes, with 'er'-prefixed classes kept in the
|
|
53763
|
+
* markup as the stable hook surface for per-site theme CSS.
|
|
53764
|
+
*/
|
|
53765
|
+
function StepIndicator(props) {
|
|
53766
|
+
return /* @__PURE__ */ jsx(StepIndicator$1, {
|
|
53767
|
+
...props,
|
|
53768
|
+
classPrefix: "er",
|
|
53769
|
+
emitSharedClasses: true
|
|
53770
|
+
});
|
|
52860
53771
|
}
|
|
53772
|
+
//#endregion
|
|
53773
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration.server.tsx
|
|
52861
53774
|
/**
|
|
52862
53775
|
* Server-safe placeholder for event registration.
|
|
52863
53776
|
* Provides a static container for island hydration without importing client hooks.
|
|
@@ -52879,7 +53792,13 @@ function EventRegistrationSSR({ blockId, subject, loaderFailures, children, ...s
|
|
|
52879
53792
|
...getIslandRootProps("event-registration", blockId),
|
|
52880
53793
|
children: [
|
|
52881
53794
|
/* @__PURE__ */ jsx(IslandPropsScript, { value: islandProps }),
|
|
52882
|
-
/* @__PURE__ */ jsx(
|
|
53795
|
+
display.state === "booking-card" ? /* @__PURE__ */ jsx("div", {
|
|
53796
|
+
id: EVENT_REGISTRATION_ANCHOR_ID,
|
|
53797
|
+
children: /* @__PURE__ */ jsx(BookingEntryCard, {
|
|
53798
|
+
entry: display.entry,
|
|
53799
|
+
buttonVariant: display.buttonVariant ?? "primary"
|
|
53800
|
+
})
|
|
53801
|
+
}) : /* @__PURE__ */ jsx(EventRegistrationShell, { display }),
|
|
52883
53802
|
children
|
|
52884
53803
|
]
|
|
52885
53804
|
});
|
|
@@ -52899,27 +53818,12 @@ function EventRegistrationShell({ display }) {
|
|
|
52899
53818
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
52900
53819
|
className: "er-payment-layout-main",
|
|
52901
53820
|
children: [/* @__PURE__ */ jsx("div", {
|
|
52902
|
-
className: "
|
|
53821
|
+
className: "er-registration-shell__steps",
|
|
52903
53822
|
"aria-hidden": "true",
|
|
52904
|
-
children: /* @__PURE__ */ jsx(
|
|
52905
|
-
|
|
52906
|
-
|
|
52907
|
-
|
|
52908
|
-
return /* @__PURE__ */ jsxs("li", {
|
|
52909
|
-
className: "rb-step er-step",
|
|
52910
|
-
children: [
|
|
52911
|
-
/* @__PURE__ */ jsx("span", {
|
|
52912
|
-
className: cx("rb-step-circle er-step-circle", isActive && "rb-step-circle--active er-step-circle--active"),
|
|
52913
|
-
children: index + 1
|
|
52914
|
-
}),
|
|
52915
|
-
/* @__PURE__ */ jsx("span", {
|
|
52916
|
-
className: cx("rb-step-label er-step-label", isActive && "rb-step-label--active er-step-label--active"),
|
|
52917
|
-
children: label
|
|
52918
|
-
}),
|
|
52919
|
-
index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx("span", { className: "rb-step-connector er-step-connector" }) : null
|
|
52920
|
-
]
|
|
52921
|
-
}, label);
|
|
52922
|
-
})
|
|
53823
|
+
children: /* @__PURE__ */ jsx(StepIndicator, {
|
|
53824
|
+
currentStep: 1,
|
|
53825
|
+
totalSteps: display.stepLabels.length,
|
|
53826
|
+
stepLabels: [...display.stepLabels]
|
|
52923
53827
|
})
|
|
52924
53828
|
}), /* @__PURE__ */ jsxs("div", {
|
|
52925
53829
|
className: "rb-reg-stack er-stack",
|
|
@@ -54851,7 +55755,7 @@ const opaquePanels = [
|
|
|
54851
55755
|
}
|
|
54852
55756
|
},
|
|
54853
55757
|
{
|
|
54854
|
-
selector: ":where([data-block='event-registration']) .er-booking-
|
|
55758
|
+
selector: ":where([data-block='event-registration']) .er-booking-card",
|
|
54855
55759
|
paint: {
|
|
54856
55760
|
kind: "solid",
|
|
54857
55761
|
token: "surface"
|
|
@@ -54861,7 +55765,7 @@ const opaquePanels = [
|
|
|
54861
55765
|
selector: ":where([data-block='event-registration']) .er-booking-bar",
|
|
54862
55766
|
paint: {
|
|
54863
55767
|
kind: "solid",
|
|
54864
|
-
token: "
|
|
55768
|
+
token: "surface"
|
|
54865
55769
|
}
|
|
54866
55770
|
},
|
|
54867
55771
|
{
|
|
@@ -54875,7 +55779,7 @@ const opaquePanels = [
|
|
|
54875
55779
|
selector: ":where([data-block='event-registration']) .er-booking-overlay__panel",
|
|
54876
55780
|
paint: {
|
|
54877
55781
|
kind: "solid",
|
|
54878
|
-
token: "
|
|
55782
|
+
token: "surface"
|
|
54879
55783
|
}
|
|
54880
55784
|
},
|
|
54881
55785
|
{
|
|
@@ -56032,25 +56936,25 @@ ${root} .alert {
|
|
|
56032
56936
|
|
|
56033
56937
|
${root} .alert-error {
|
|
56034
56938
|
border-color: rgb(var(--tb-destructive));
|
|
56035
|
-
background-color:
|
|
56939
|
+
background-color: rgb(var(--tb-destructive) / 0.1);
|
|
56036
56940
|
color: rgb(var(--tb-destructive));
|
|
56037
56941
|
}
|
|
56038
56942
|
|
|
56039
56943
|
${root} .alert-success {
|
|
56040
56944
|
border-color: rgb(var(--tb-success));
|
|
56041
|
-
background-color:
|
|
56945
|
+
background-color: rgb(var(--tb-success) / 0.1);
|
|
56042
56946
|
color: rgb(var(--tb-success));
|
|
56043
56947
|
}
|
|
56044
56948
|
|
|
56045
56949
|
${root} .alert-warning {
|
|
56046
56950
|
border-color: rgb(var(--tb-warning));
|
|
56047
|
-
background-color:
|
|
56951
|
+
background-color: rgb(var(--tb-warning) / 0.1);
|
|
56048
56952
|
color: rgb(var(--tb-warning));
|
|
56049
56953
|
}
|
|
56050
56954
|
|
|
56051
56955
|
${root} .alert-info {
|
|
56052
56956
|
border-color: rgb(var(--tb-info));
|
|
56053
|
-
background-color:
|
|
56957
|
+
background-color: rgb(var(--tb-info) / 0.1);
|
|
56054
56958
|
color: rgb(var(--tb-info));
|
|
56055
56959
|
}`);
|
|
56056
56960
|
cssBlocks.push(`/* Field-note feedback treatment */
|
|
@@ -56164,7 +57068,7 @@ ${root} .step-dot-active {
|
|
|
56164
57068
|
}
|
|
56165
57069
|
|
|
56166
57070
|
${root} .step-dot-complete {
|
|
56167
|
-
background-color:
|
|
57071
|
+
background-color: rgb(var(--tb-primary) / 0.6);
|
|
56168
57072
|
}`);
|
|
56169
57073
|
cssBlocks.push(`/* Step circles (numbered) */
|
|
56170
57074
|
${root} .step-circle {
|
|
@@ -56187,7 +57091,7 @@ ${root} .step-circle-active {
|
|
|
56187
57091
|
}
|
|
56188
57092
|
|
|
56189
57093
|
${root} .step-circle-complete {
|
|
56190
|
-
background-color:
|
|
57094
|
+
background-color: rgb(var(--tb-primary) / 0.6);
|
|
56191
57095
|
color: rgb(var(--tb-primaryForeground));
|
|
56192
57096
|
}`);
|
|
56193
57097
|
cssBlocks.push(`/* Step connector */
|
|
@@ -56369,62 +57273,52 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
|
|
|
56369
57273
|
--er-control-bg: rgb(var(--tb-background, var(--tb-surface)));
|
|
56370
57274
|
--er-control-text: rgb(var(--tb-foreground, var(--tb-text)));
|
|
56371
57275
|
--er-radius: var(--rb-block-radius);
|
|
56372
|
-
--er-surface-muted:
|
|
56373
|
-
--er-shell-line:
|
|
57276
|
+
--er-surface-muted: rgb(var(--tb-muted, 241 245 249) / 0.42);
|
|
57277
|
+
--er-shell-line: rgb(var(--tb-mutedText, 100 116 139) / 0.22);
|
|
56374
57278
|
|
|
56375
57279
|
/* Step indicator */
|
|
56376
57280
|
--er-step-active: rgb(var(--tb-primary));
|
|
56377
|
-
--er-step-inactive: rgb(var(--tb-mutedText));
|
|
56378
|
-
--er-step-completed: rgb(var(--tb-success));
|
|
56379
|
-
--er-step-text: rgb(255 255 255);
|
|
56380
|
-
--er-step-text-active: rgb(var(--tb-onPrimary, 255 255 255));
|
|
56381
|
-
--er-step-connector: rgba(var(--tb-border), 0.5);
|
|
56382
57281
|
|
|
56383
57282
|
/* Step title */
|
|
56384
|
-
--er-step-title-size: 1.
|
|
57283
|
+
--er-step-title-size: 1.75rem;
|
|
56385
57284
|
|
|
56386
57285
|
/* State backgrounds with alpha */
|
|
56387
|
-
--er-
|
|
56388
|
-
--er-success-text: rgb(var(--tb-success));
|
|
56389
|
-
--er-info-bg: rgba(var(--tb-primary), 0.1);
|
|
57286
|
+
--er-info-bg: rgb(var(--tb-primary) / 0.1);
|
|
56390
57287
|
--er-info-text: rgb(var(--tb-primary));
|
|
56391
|
-
--er-error-bg:
|
|
57288
|
+
--er-error-bg: rgb(var(--tb-destructive, 239 68 68) / 0.1);
|
|
56392
57289
|
--er-error-text: rgb(var(--tb-destructive, 239 68 68));
|
|
56393
|
-
--er-waitlist-bg:
|
|
57290
|
+
--er-waitlist-bg: rgb(var(--tb-warning) / 0.1);
|
|
56394
57291
|
--er-waitlist-text: rgb(var(--tb-warning));
|
|
56395
57292
|
|
|
56396
57293
|
/* Capacity badges */
|
|
56397
|
-
--er-capacity-available-bg:
|
|
57294
|
+
--er-capacity-available-bg: rgb(var(--tb-success) / 0.1);
|
|
56398
57295
|
--er-capacity-available-text: rgb(var(--tb-success));
|
|
56399
|
-
--er-capacity-low-bg:
|
|
57296
|
+
--er-capacity-low-bg: rgb(var(--tb-warning) / 0.1);
|
|
56400
57297
|
--er-capacity-low-text: rgb(var(--tb-warning));
|
|
56401
|
-
--er-capacity-soldout-bg:
|
|
57298
|
+
--er-capacity-soldout-bg: rgb(var(--tb-destructive, 239 68 68) / 0.1);
|
|
56402
57299
|
--er-capacity-soldout-text: rgb(var(--tb-destructive, 239 68 68));
|
|
56403
57300
|
|
|
56404
57301
|
/* Borders */
|
|
56405
57302
|
--er-border: rgb(var(--tb-border));
|
|
56406
|
-
--er-border-hover:
|
|
57303
|
+
--er-border-hover: rgb(var(--tb-primary) / 0.5);
|
|
56407
57304
|
--er-border-selected: rgb(var(--tb-primary));
|
|
56408
57305
|
--er-border-error: rgb(var(--tb-destructive, 239 68 68));
|
|
56409
57306
|
|
|
56410
57307
|
/* Input focus */
|
|
56411
|
-
--er-focus-ring:
|
|
56412
|
-
|
|
56413
|
-
/* Required marker */
|
|
56414
|
-
--er-required: rgb(var(--tb-destructive, 239 68 68));
|
|
57308
|
+
--er-focus-ring: rgb(var(--tb-primary) / 0.3);
|
|
56415
57309
|
|
|
56416
57310
|
/* Payment option cards */
|
|
56417
57311
|
--er-payment-border: rgb(var(--tb-border));
|
|
56418
|
-
--er-payment-border-hover:
|
|
57312
|
+
--er-payment-border-hover: rgb(var(--tb-primary) / 0.5);
|
|
56419
57313
|
--er-payment-border-selected: rgb(var(--tb-primary));
|
|
56420
|
-
--er-payment-bg-selected:
|
|
57314
|
+
--er-payment-bg-selected: rgb(var(--tb-primary) / 0.08);
|
|
56421
57315
|
|
|
56422
57316
|
/* Checkmark indicator */
|
|
56423
57317
|
--er-check-bg: rgb(var(--tb-primary));
|
|
56424
57318
|
--er-check-text: rgb(var(--tb-onPrimary, 255 255 255));
|
|
56425
57319
|
|
|
56426
57320
|
/* Order summary */
|
|
56427
|
-
--er-summary-bg:
|
|
57321
|
+
--er-summary-bg: rgb(var(--tb-primary) / 0.1);
|
|
56428
57322
|
--er-summary-border: rgb(var(--tb-border));
|
|
56429
57323
|
|
|
56430
57324
|
/* Shared registration-surface mappings (issue 1174).
|
|
@@ -56436,7 +57330,7 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
|
|
|
56436
57330
|
--rb-reg-border-selected: var(--er-border-selected);
|
|
56437
57331
|
--rb-reg-bg-selected: var(--er-payment-bg-selected);
|
|
56438
57332
|
--rb-reg-option-bg: var(--er-control-bg);
|
|
56439
|
-
--rb-reg-option-hover-shadow: 0 8px 18px
|
|
57333
|
+
--rb-reg-option-hover-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
|
|
56440
57334
|
--rb-reg-surface-bg: rgb(var(--tb-surface));
|
|
56441
57335
|
--rb-reg-on-surface: var(--er-on-surface);
|
|
56442
57336
|
--rb-reg-on-surface-muted: var(--er-on-surface-muted);
|
|
@@ -56445,11 +57339,6 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
|
|
|
56445
57339
|
--rb-reg-check-bg: var(--er-check-bg);
|
|
56446
57340
|
--rb-reg-check-text: var(--er-check-text);
|
|
56447
57341
|
--rb-reg-step-active: var(--er-step-active);
|
|
56448
|
-
--rb-reg-step-completed: var(--er-step-completed);
|
|
56449
|
-
--rb-reg-step-inactive: var(--er-step-inactive);
|
|
56450
|
-
--rb-reg-step-text: var(--er-step-text);
|
|
56451
|
-
--rb-reg-step-text-active: var(--er-step-text-active);
|
|
56452
|
-
--rb-reg-step-connector: var(--er-step-connector);
|
|
56453
57342
|
--rb-reg-summary-bg: var(--er-surface-muted);
|
|
56454
57343
|
--rb-reg-summary-border: var(--er-border);
|
|
56455
57344
|
--rb-reg-focus-ring: var(--er-focus-ring);
|
|
@@ -56496,13 +57385,13 @@ function generateEventCalendarVars({ themeId }) {
|
|
|
56496
57385
|
return `
|
|
56497
57386
|
${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-calendar"])`} {
|
|
56498
57387
|
/* Day cell states */
|
|
56499
|
-
--ec-today-bg:
|
|
57388
|
+
--ec-today-bg: rgb(var(--tb-primary) / 0.05);
|
|
56500
57389
|
--ec-today-text: rgb(var(--tb-primary));
|
|
56501
57390
|
--ec-other-month-opacity: 0.4;
|
|
56502
57391
|
|
|
56503
57392
|
/* Event items - subtle style (legacy) */
|
|
56504
|
-
--ec-event-bg:
|
|
56505
|
-
--ec-event-hover-bg:
|
|
57393
|
+
--ec-event-bg: rgb(var(--tb-primary) / 0.1);
|
|
57394
|
+
--ec-event-hover-bg: rgb(var(--tb-primary) / 0.2);
|
|
56506
57395
|
|
|
56507
57396
|
/* Event items - solid style (default) */
|
|
56508
57397
|
--ec-event-solid-bg: rgb(var(--tb-primary));
|
|
@@ -56510,15 +57399,15 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-calendar"])
|
|
|
56510
57399
|
--ec-event-solid-text: rgb(var(--tb-neutral-50, 255 255 255));
|
|
56511
57400
|
|
|
56512
57401
|
/* Navigation */
|
|
56513
|
-
--ec-nav-hover-bg:
|
|
57402
|
+
--ec-nav-hover-bg: rgb(var(--tb-text) / 0.1);
|
|
56514
57403
|
|
|
56515
57404
|
/* Day headers */
|
|
56516
|
-
--ec-header-bg:
|
|
57405
|
+
--ec-header-bg: rgb(var(--tb-text) / 0.05);
|
|
56517
57406
|
--ec-header-opacity: 0.7;
|
|
56518
57407
|
|
|
56519
57408
|
/* Borders */
|
|
56520
57409
|
--ec-border: rgb(var(--tb-border));
|
|
56521
|
-
--ec-border-subtle:
|
|
57410
|
+
--ec-border-subtle: rgb(var(--tb-border) / 0.5);
|
|
56522
57411
|
|
|
56523
57412
|
/* Surface and text (for inputs/dropdowns) */
|
|
56524
57413
|
--ec-surface: rgb(var(--tb-surface));
|
|
@@ -56587,29 +57476,27 @@ function generateAppointmentBookingVars({ themeId }) {
|
|
|
56587
57476
|
${`:where([data-theme-scope="${themeId}"]) :where([data-block="appointment-booking"])`} {
|
|
56588
57477
|
/* Selection cards (service/resource/time) */
|
|
56589
57478
|
--ab-card-border: rgb(var(--tb-border));
|
|
56590
|
-
--ab-card-border-hover:
|
|
57479
|
+
--ab-card-border-hover: rgb(var(--tb-primary) / 0.5);
|
|
56591
57480
|
--ab-card-border-selected: rgb(var(--tb-primary));
|
|
56592
|
-
--ab-card-bg-selected:
|
|
57481
|
+
--ab-card-bg-selected: rgb(var(--tb-primary) / 0.05);
|
|
56593
57482
|
|
|
56594
57483
|
/* Checkmark indicator */
|
|
56595
57484
|
--ab-check-bg: rgb(var(--tb-primary));
|
|
56596
57485
|
--ab-check-text: rgb(var(--tb-background));
|
|
56597
57486
|
|
|
56598
57487
|
/* State backgrounds */
|
|
56599
|
-
--ab-
|
|
56600
|
-
--ab-success-text: rgb(var(--tb-success));
|
|
56601
|
-
--ab-error-bg: rgba(var(--tb-destructive), 0.1);
|
|
57488
|
+
--ab-error-bg: rgb(var(--tb-destructive) / 0.1);
|
|
56602
57489
|
--ab-error-text: rgb(var(--tb-destructive));
|
|
56603
|
-
--ab-warning-bg:
|
|
57490
|
+
--ab-warning-bg: rgb(var(--tb-warning) / 0.1);
|
|
56604
57491
|
--ab-warning-text: rgb(var(--tb-warning));
|
|
56605
|
-
--ab-info-bg:
|
|
57492
|
+
--ab-info-bg: rgb(var(--tb-info) / 0.1);
|
|
56606
57493
|
--ab-info-text: rgb(var(--tb-info));
|
|
56607
57494
|
|
|
56608
57495
|
/* Muted summary state */
|
|
56609
|
-
--ab-muted-bg:
|
|
57496
|
+
--ab-muted-bg: rgb(var(--tb-text) / 0.05);
|
|
56610
57497
|
|
|
56611
57498
|
/* Focus ring used by shared registration-surface controls */
|
|
56612
|
-
--ab-input-focus-ring:
|
|
57499
|
+
--ab-input-focus-ring: rgb(var(--tb-primary) / 0.3);
|
|
56613
57500
|
|
|
56614
57501
|
/* Shared registration-surface mappings (issue 1174).
|
|
56615
57502
|
Route the shared --rb-reg-* contract through this block's Tier 3 vars
|
|
@@ -56621,24 +57508,19 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="appointment-booki
|
|
|
56621
57508
|
--rb-reg-border-selected: var(--ab-card-border-selected);
|
|
56622
57509
|
--rb-reg-bg-selected: var(--ab-card-bg-selected);
|
|
56623
57510
|
--rb-reg-option-bg: transparent;
|
|
56624
|
-
--rb-reg-option-hover-shadow: 0 8px 18px
|
|
57511
|
+
--rb-reg-option-hover-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
|
|
56625
57512
|
--rb-reg-surface-bg: rgb(var(--tb-surface));
|
|
56626
57513
|
--rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
|
|
56627
|
-
--rb-reg-on-surface-muted:
|
|
56628
|
-
--rb-reg-on-surface-subtle:
|
|
56629
|
-
--rb-reg-on-surface-faint:
|
|
57514
|
+
--rb-reg-on-surface-muted: rgb(var(--tb-onSurface, var(--tb-text)) / 0.7);
|
|
57515
|
+
--rb-reg-on-surface-subtle: rgb(var(--tb-onSurface, var(--tb-text)) / 0.6);
|
|
57516
|
+
--rb-reg-on-surface-faint: rgb(var(--tb-onSurface, var(--tb-text)) / 0.5);
|
|
56630
57517
|
--rb-reg-check-bg: var(--ab-check-bg);
|
|
56631
57518
|
--rb-reg-check-text: var(--ab-check-text);
|
|
56632
57519
|
--rb-reg-step-active: rgb(var(--tb-primary));
|
|
56633
|
-
--rb-reg-step-completed: rgb(var(--tb-success));
|
|
56634
|
-
--rb-reg-step-inactive: rgb(var(--tb-mutedText));
|
|
56635
|
-
--rb-reg-step-text: rgb(255 255 255);
|
|
56636
|
-
--rb-reg-step-text-active: rgb(var(--tb-onPrimary, 255 255 255));
|
|
56637
|
-
--rb-reg-step-connector: rgba(var(--tb-border), 0.5);
|
|
56638
57520
|
--rb-reg-summary-bg: var(--ab-muted-bg);
|
|
56639
57521
|
--rb-reg-summary-border: var(--ab-card-border);
|
|
56640
57522
|
--rb-reg-focus-ring: var(--ab-input-focus-ring);
|
|
56641
|
-
--rb-reg-shell-line:
|
|
57523
|
+
--rb-reg-shell-line: rgb(var(--tb-mutedText, 100 116 139) / 0.22);
|
|
56642
57524
|
}
|
|
56643
57525
|
`;
|
|
56644
57526
|
}
|
|
@@ -56657,14 +57539,14 @@ function generateFormBlockVars({ themeId }) {
|
|
|
56657
57539
|
return `
|
|
56658
57540
|
${`:where([data-theme-scope="${themeId}"]) :where([data-block="form"])`} {
|
|
56659
57541
|
/* Success state */
|
|
56660
|
-
--fb-success-bg:
|
|
57542
|
+
--fb-success-bg: rgb(var(--tb-success) / 0.1);
|
|
56661
57543
|
--fb-success-text: rgb(var(--tb-success));
|
|
56662
|
-
--fb-success-border:
|
|
57544
|
+
--fb-success-border: rgb(var(--tb-success) / 0.3);
|
|
56663
57545
|
|
|
56664
57546
|
/* Error state */
|
|
56665
|
-
--fb-error-bg:
|
|
57547
|
+
--fb-error-bg: rgb(var(--tb-destructive) / 0.1);
|
|
56666
57548
|
--fb-error-text: rgb(var(--tb-destructive));
|
|
56667
|
-
--fb-error-border:
|
|
57549
|
+
--fb-error-border: rgb(var(--tb-destructive) / 0.3);
|
|
56668
57550
|
|
|
56669
57551
|
/* Empty state */
|
|
56670
57552
|
--fb-empty-bg: rgb(var(--tb-surface));
|
|
@@ -56725,23 +57607,23 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="customer-portal"]
|
|
|
56725
57607
|
--rb-tab-opacity: 0.7;
|
|
56726
57608
|
|
|
56727
57609
|
/* Badge - Success (active, confirmed) */
|
|
56728
|
-
--cp-badge-success-bg:
|
|
57610
|
+
--cp-badge-success-bg: rgb(var(--tb-success) / 0.1);
|
|
56729
57611
|
--cp-badge-success-text: rgb(var(--tb-success));
|
|
56730
57612
|
|
|
56731
57613
|
/* Badge - Warning (paused, low credits, waitlist) */
|
|
56732
|
-
--cp-badge-warning-bg:
|
|
57614
|
+
--cp-badge-warning-bg: rgb(var(--tb-warning) / 0.1);
|
|
56733
57615
|
--cp-badge-warning-text: rgb(var(--tb-warning));
|
|
56734
57616
|
|
|
56735
57617
|
/* Badge - Error (canceled, expired, past_due) */
|
|
56736
|
-
--cp-badge-error-bg:
|
|
57618
|
+
--cp-badge-error-bg: rgb(var(--tb-destructive) / 0.1);
|
|
56737
57619
|
--cp-badge-error-text: rgb(var(--tb-destructive));
|
|
56738
57620
|
|
|
56739
57621
|
/* Badge - Info (trialing, scheduled) */
|
|
56740
|
-
--cp-badge-info-bg:
|
|
57622
|
+
--cp-badge-info-bg: rgb(var(--tb-primary) / 0.1);
|
|
56741
57623
|
--cp-badge-info-text: rgb(var(--tb-primary));
|
|
56742
57624
|
|
|
56743
57625
|
/* Badge - Default (neutral states) */
|
|
56744
|
-
--cp-badge-default-bg:
|
|
57626
|
+
--cp-badge-default-bg: rgb(var(--tb-mutedText) / 0.1);
|
|
56745
57627
|
--cp-badge-default-text: rgb(var(--tb-mutedText));
|
|
56746
57628
|
|
|
56747
57629
|
/* Progress bar (for credit display) */
|
|
@@ -56753,10 +57635,10 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="customer-portal"]
|
|
|
56753
57635
|
--cp-card-border: rgb(var(--tb-border));
|
|
56754
57636
|
|
|
56755
57637
|
/* Alert/notification */
|
|
56756
|
-
--cp-alert-success-bg:
|
|
57638
|
+
--cp-alert-success-bg: rgb(var(--tb-success) / 0.1);
|
|
56757
57639
|
--cp-alert-success-text: rgb(var(--tb-success));
|
|
56758
57640
|
--cp-alert-success-border: rgb(var(--tb-success));
|
|
56759
|
-
--cp-alert-error-bg:
|
|
57641
|
+
--cp-alert-error-bg: rgb(var(--tb-destructive) / 0.1);
|
|
56760
57642
|
--cp-alert-error-text: rgb(var(--tb-destructive));
|
|
56761
57643
|
--cp-alert-error-border: rgb(var(--tb-destructive));
|
|
56762
57644
|
|
|
@@ -56853,7 +57735,7 @@ ${root} {
|
|
|
56853
57735
|
--rb-testimonial-carousel-arrow-bg: rgb(var(--tb-secondary));
|
|
56854
57736
|
--rb-testimonial-carousel-arrow-bg-hover: color-mix(in oklab, rgb(var(--tb-secondary)), rgb(var(--tb-text)) 14%);
|
|
56855
57737
|
--rb-testimonial-carousel-arrow-color: rgb(var(--tb-onSecondary));
|
|
56856
|
-
--rb-testimonial-carousel-arrow-border-color:
|
|
57738
|
+
--rb-testimonial-carousel-arrow-border-color: rgb(var(--tb-onSecondary) / 0.22);
|
|
56857
57739
|
--rb-testimonial-carousel-arrow-size: 2.75rem;
|
|
56858
57740
|
--rb-testimonial-carousel-arrow-icon-size: 1.25rem;
|
|
56859
57741
|
--rb-testimonial-carousel-arrow-icon-stroke-width: 2.5;
|
|
@@ -58110,7 +58992,7 @@ function pageBlockPosition(index, blockCount) {
|
|
|
58110
58992
|
//#endregion
|
|
58111
58993
|
//#region ../blocks/src/pageRendererContracts.ts
|
|
58112
58994
|
function buildPageRendererRootRuntime(dataContext) {
|
|
58113
|
-
const { siteId = null, siteName, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, readAuthority, bookingOfferingPresets = [], appointmentServicePathPrefix = null, mailingList = { tag: "not_configured" },
|
|
58995
|
+
const { siteId = null, siteName, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, readAuthority, bookingOfferingPresets = [], appointmentServicePathPrefix = null, mailingList = { tag: "not_configured" }, loaderFailures = {} } = dataContext ?? {};
|
|
58114
58996
|
return {
|
|
58115
58997
|
siteId,
|
|
58116
58998
|
demoEmailSuppressed: resolveDemoEmailSuppression(dataContext),
|
|
@@ -58125,7 +59007,6 @@ function buildPageRendererRootRuntime(dataContext) {
|
|
|
58125
59007
|
bookingOfferingPresets,
|
|
58126
59008
|
appointmentServicePathPrefix,
|
|
58127
59009
|
mailingList,
|
|
58128
|
-
eventRegistrationOverlayEnabled,
|
|
58129
59010
|
loaderFailures
|
|
58130
59011
|
};
|
|
58131
59012
|
}
|
|
@@ -60966,6 +61847,10 @@ const contactNewsletterBlockDefinition = {
|
|
|
60966
61847
|
],
|
|
60967
61848
|
icon: "MailPlus"
|
|
60968
61849
|
}),
|
|
61850
|
+
contentNormalizer: {
|
|
61851
|
+
fieldIds: ["targeting"],
|
|
61852
|
+
normalize: normalizeMailingListBlockContent
|
|
61853
|
+
},
|
|
60969
61854
|
dataSchemas: { form: formDataSchema.optional() },
|
|
60970
61855
|
dataLoaders: { form: {
|
|
60971
61856
|
endpoint: "getPublicFormById",
|
|
@@ -64890,7 +65775,22 @@ const offeringsPreviewEventDataSchemas = Object.fromEntries(OFFERINGS_PREVIEW_EV
|
|
|
64890
65775
|
const offeringsPreviewEventDataLoaders = Object.fromEntries(OFFERINGS_PREVIEW_EVENT_PRESET_DEFINITIONS.map((definition) => [definition.dataKey, eventPresetLoader(definition.preset)]));
|
|
64891
65776
|
const offeringsPreviewBlockDefinition = {
|
|
64892
65777
|
manifest: offeringsPreviewManifest,
|
|
64893
|
-
|
|
65778
|
+
contentNormalizer: {
|
|
65779
|
+
fieldIds: [
|
|
65780
|
+
"displayMode",
|
|
65781
|
+
"heading",
|
|
65782
|
+
"description",
|
|
65783
|
+
"itemLimit",
|
|
65784
|
+
"groupOrder",
|
|
65785
|
+
"groupOverrides",
|
|
65786
|
+
"_cardStyles",
|
|
65787
|
+
"buttonVariant",
|
|
65788
|
+
"buttonText",
|
|
65789
|
+
"emptyMessage",
|
|
65790
|
+
"_sectionStyles"
|
|
65791
|
+
],
|
|
65792
|
+
normalize: normalizeOfferingsPreviewBlockContent
|
|
65793
|
+
},
|
|
64894
65794
|
dataSchemas: {
|
|
64895
65795
|
...offeringsPreviewEventDataSchemas,
|
|
64896
65796
|
routeCandidates: publicRouteCandidatesSchema.optional(),
|
|
@@ -67128,7 +68028,20 @@ const locationMapBlockDefinition = {
|
|
|
67128
68028
|
})], { gap: "md" })
|
|
67129
68029
|
})
|
|
67130
68030
|
}),
|
|
67131
|
-
|
|
68031
|
+
contentNormalizer: {
|
|
68032
|
+
fieldIds: [
|
|
68033
|
+
"heading",
|
|
68034
|
+
"locationSource",
|
|
68035
|
+
"venueId",
|
|
68036
|
+
"location",
|
|
68037
|
+
"showAddressText",
|
|
68038
|
+
"showDirections",
|
|
68039
|
+
"directionsLabel",
|
|
68040
|
+
"zoom",
|
|
68041
|
+
"heightPx"
|
|
68042
|
+
],
|
|
68043
|
+
normalize: normalizeLocationMapContent
|
|
68044
|
+
}
|
|
67132
68045
|
};
|
|
67133
68046
|
//#endregion
|
|
67134
68047
|
//#region ../blocks/src/system/blocks/index.ts
|
|
@@ -67920,6 +68833,16 @@ function ensureSystemBlockDefinitionsRegistered() {
|
|
|
67920
68833
|
}
|
|
67921
68834
|
//#endregion
|
|
67922
68835
|
//#region ../blocks/src/system/registry.ts
|
|
68836
|
+
function normalizeBlockContent(definition, content) {
|
|
68837
|
+
const normalizer = definition?.contentNormalizer;
|
|
68838
|
+
if (!normalizer || !isRecord$13(content)) return content;
|
|
68839
|
+
const normalized = normalizer.normalize(content);
|
|
68840
|
+
const owned = new Set(normalizer.fieldIds);
|
|
68841
|
+
return {
|
|
68842
|
+
...Object.fromEntries(Object.entries(content).filter(([key]) => !owned.has(key))),
|
|
68843
|
+
...Object.fromEntries(Object.entries(normalized).filter(([key]) => owned.has(key)))
|
|
68844
|
+
};
|
|
68845
|
+
}
|
|
67923
68846
|
const REGISTRY_SYMBOL = Symbol.for("@riverbankcms/blocks/system/definitions");
|
|
67924
68847
|
const isBlocksTestRuntime = typeof process !== "undefined" && typeof process.env !== "undefined" && process.env.RIVERBANK_BLOCKS_TEST === "1";
|
|
67925
68848
|
const globalScope = globalThis;
|
|
@@ -68893,7 +69816,7 @@ function planNewsletterBlockSubmission(placement) {
|
|
|
68893
69816
|
function planNewsletterPreviewSubmission(placement) {
|
|
68894
69817
|
if (!placement.publishedContentId) return { tag: "unpublished-form" };
|
|
68895
69818
|
if (!placement.publishedContent) return { tag: "unpublished-settings" };
|
|
68896
|
-
const draft = parseMailingListPlacementTargeting(placement.renderedContent.targeting
|
|
69819
|
+
const draft = parseMailingListPlacementTargeting(placement.renderedContent.targeting);
|
|
68897
69820
|
const published = parseMailingListPlacementTargeting(placement.publishedContent.targeting);
|
|
68898
69821
|
if (!draft.ok || !published.ok || !sameMailingListPlacementTargeting(draft.value, published.value)) return { tag: "unpublished-settings" };
|
|
68899
69822
|
const sourceRef = buildMailingListSignupBlockSourceRef(placement.blockId, placement.publishedContentId);
|
|
@@ -69013,7 +69936,8 @@ function preparedBlockProps(entry, content, data, input) {
|
|
|
69013
69936
|
block: entry.block,
|
|
69014
69937
|
themeResources: input.themeResources,
|
|
69015
69938
|
dataContext: input.dataContext,
|
|
69016
|
-
imageResolveContext: input.imageResolveContext
|
|
69939
|
+
imageResolveContext: input.imageResolveContext,
|
|
69940
|
+
routeMap: input.routeMap
|
|
69017
69941
|
}),
|
|
69018
69942
|
bookingTimeZone: input.dataContext?.bookingTimeZone
|
|
69019
69943
|
};
|
|
@@ -69033,6 +69957,12 @@ function buildBlockOverrideProps(input) {
|
|
|
69033
69957
|
...blockSessionProps(dataContext),
|
|
69034
69958
|
...blockSubjectProps(dataContext),
|
|
69035
69959
|
imageResolveContext: input.imageResolveContext,
|
|
69960
|
+
linkResolveContext: {
|
|
69961
|
+
routes: input.routeMap ?? dataContext?.routes,
|
|
69962
|
+
pagesByIdentifier: dataContext?.pagesByIdentifier,
|
|
69963
|
+
entriesByIdentifier: dataContext?.entriesByIdentifier,
|
|
69964
|
+
stage: dataContext?.previewStage
|
|
69965
|
+
},
|
|
69036
69966
|
blockId: block.id ?? null,
|
|
69037
69967
|
contentVersionId: block.contentVersionId ?? null,
|
|
69038
69968
|
...newsletterBlockProps(block, input.content, dataContext?.previewStage),
|
|
@@ -69089,7 +70019,7 @@ function arrangementResolvedData(kind, content, data) {
|
|
|
69089
70019
|
function arrangementResolvedContent(kind, content, data, context) {
|
|
69090
70020
|
if (content._effectiveLook === void 0 || !data || kind !== "block.offerings-preview" && kind !== "block.appointment-services") return content;
|
|
69091
70021
|
if (kind === "block.appointment-services") return appointmentArrangementContent(content, data, context);
|
|
69092
|
-
const normalized = offeringsPreviewBlockDefinition
|
|
70022
|
+
const normalized = normalizeBlockContent(offeringsPreviewBlockDefinition, content);
|
|
69093
70023
|
return withCardListPhotoCount(content, content.showPhotos === false ? 0 : offeringsPreviewPhotoCount({
|
|
69094
70024
|
...normalized,
|
|
69095
70025
|
presets: context?.bookingOfferingPresets,
|
|
@@ -69506,13 +70436,11 @@ function renderSystemBlockElement(input) {
|
|
|
69506
70436
|
* referential equality of all props that affect rendering. Standard React.memo
|
|
69507
70437
|
* wouldn't catch all the render triggers from the editor store.
|
|
69508
70438
|
*/
|
|
69509
|
-
const MemoBlockSection = React$1.memo(function MemoBlockSection({ themeResources, entry: preparedEntry, audience, dataContext, registry, wrapBlock, imageResolveContext, previewAuthoring }) {
|
|
69510
|
-
const entry = preparedEntry
|
|
69511
|
-
const prepared = preparedEntry.prepared;
|
|
70439
|
+
const MemoBlockSection = React$1.memo(function MemoBlockSection({ themeResources, entry: preparedEntry, routeMap, audience, dataContext, registry, wrapBlock, imageResolveContext, previewAuthoring }) {
|
|
70440
|
+
const { entry, prepared } = preparedEntry;
|
|
69512
70441
|
const block = entry.block;
|
|
69513
70442
|
const perfStart = globalThis.process?.env?.DEBUG_PERF === "1" && typeof window === "undefined" ? Date.now() : 0;
|
|
69514
|
-
const
|
|
69515
|
-
const resolvedImageResolveContext = imageResolveContext ?? fallbackImageResolveContext;
|
|
70443
|
+
const resolvedImageResolveContext = imageResolveContext ?? getCurrentResolveImageUrlContext();
|
|
69516
70444
|
function finish(node, meta) {
|
|
69517
70445
|
if (!perfStart) return node;
|
|
69518
70446
|
const durationMs = Date.now() - perfStart;
|
|
@@ -69552,7 +70480,8 @@ const MemoBlockSection = React$1.memo(function MemoBlockSection({ themeResources
|
|
|
69552
70480
|
block,
|
|
69553
70481
|
themeResources,
|
|
69554
70482
|
dataContext,
|
|
69555
|
-
imageResolveContext: resolvedImageResolveContext
|
|
70483
|
+
imageResolveContext: resolvedImageResolveContext,
|
|
70484
|
+
routeMap
|
|
69556
70485
|
}) })), {
|
|
69557
70486
|
outcome: "overrideWithoutDefinition",
|
|
69558
70487
|
override: true,
|
|
@@ -70443,6 +71372,13 @@ const containerResponsiveThemeCss = `/*
|
|
|
70443
71372
|
var(--site-overlay-opening-content-extra-pad, clamp(1rem, 2vw, 1.75rem))
|
|
70444
71373
|
);
|
|
70445
71374
|
}
|
|
71375
|
+
/* Floating site overlays (a booking bar, a cookie banner, a sticky promo)
|
|
71376
|
+
mark themselves [data-rb-site-overlay]. While a preview is in edit mode
|
|
71377
|
+
(the preview shell sets the root attribute) they step aside, out of the
|
|
71378
|
+
focus order too; switching back to viewing restores them as they were. */
|
|
71379
|
+
:root[data-rb-preview-mode="edit"] [data-rb-site-overlay] {
|
|
71380
|
+
display: none;
|
|
71381
|
+
}
|
|
70446
71382
|
.rb-preview-editor-offset {
|
|
70447
71383
|
padding-bottom: calc(
|
|
70448
71384
|
var(--builder-editor-chrome-offset, 0px) +
|
|
@@ -71028,7 +71964,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
71028
71964
|
.rb-spinner {
|
|
71029
71965
|
--rb-spinner-size: 2rem;
|
|
71030
71966
|
--rb-spinner-duration: 0.9s;
|
|
71031
|
-
--rb-spinner-track-color:
|
|
71967
|
+
--rb-spinner-track-color: rgb(var(--tb-foreground) / 0.15);
|
|
71032
71968
|
|
|
71033
71969
|
display: inline-flex;
|
|
71034
71970
|
align-items: center;
|
|
@@ -71531,12 +72467,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
71531
72467
|
|
|
71532
72468
|
:where(.theme-scope) .rb-modal__close:hover {
|
|
71533
72469
|
color: var(--rb-surface-text-color, rgb(var(--tb-text, 17 24 39)));
|
|
71534
|
-
background:
|
|
72470
|
+
background: rgb(var(--tb-border) / 0.2);
|
|
71535
72471
|
}
|
|
71536
72472
|
|
|
71537
72473
|
:where(.theme-scope) .rb-modal__close:focus-visible {
|
|
71538
72474
|
outline: none;
|
|
71539
|
-
box-shadow: 0 0 0 3px
|
|
72475
|
+
box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.15);
|
|
71540
72476
|
}
|
|
71541
72477
|
|
|
71542
72478
|
:where(.theme-scope) .rb-modal__body {
|
|
@@ -72021,7 +72957,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
72021
72957
|
:where(.theme-scope) .rb-prose code {
|
|
72022
72958
|
/* Inline code uses text color with surface background */
|
|
72023
72959
|
color: inherit;
|
|
72024
|
-
background-color:
|
|
72960
|
+
background-color: rgb(var(--tb-surface) / 0.5);
|
|
72025
72961
|
padding: 0.125rem 0.25rem;
|
|
72026
72962
|
border-radius: 0.25rem;
|
|
72027
72963
|
font-size: 0.875em;
|
|
@@ -73013,17 +73949,17 @@ const containerResponsiveThemeCss = `/*
|
|
|
73013
73949
|
|
|
73014
73950
|
/* All badges use a subtle theme-aware style by default */
|
|
73015
73951
|
:where(.theme-scope) .badge-status-available {
|
|
73016
|
-
background-color:
|
|
73952
|
+
background-color: rgb(var(--tb-secondary) / 0.15);
|
|
73017
73953
|
color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
|
|
73018
73954
|
}
|
|
73019
73955
|
|
|
73020
73956
|
:where(.theme-scope) .badge-status-low {
|
|
73021
|
-
background-color:
|
|
73957
|
+
background-color: rgb(var(--tb-accent) / 0.15);
|
|
73022
73958
|
color: rgb(var(--tb-accent-700, var(--tb-accent)));
|
|
73023
73959
|
}
|
|
73024
73960
|
|
|
73025
73961
|
:where(.theme-scope) .badge-status-sold-out {
|
|
73026
|
-
background-color:
|
|
73962
|
+
background-color: rgb(var(--tb-text) / 0.1);
|
|
73027
73963
|
color: rgb(var(--tb-mutedText));
|
|
73028
73964
|
}
|
|
73029
73965
|
|
|
@@ -73092,7 +74028,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
73092
74028
|
* here too; block CSS provides the \`.rb-state-icon--{variant}\` colors.
|
|
73093
74029
|
*
|
|
73094
74030
|
* Naming: component-like primitives follow the existing bare \`rb-\` shared
|
|
73095
|
-
* precedent (\`.rb-state-icon\`, \`.rb-tile\`): \`.rb-option-card\`, \`.rb-
|
|
74031
|
+
* precedent (\`.rb-state-icon\`, \`.rb-tile\`): \`.rb-option-card\`, \`.rb-progress*\`,
|
|
73096
74032
|
* \`.rb-wizard-actions\`, \`.rb-on-surface\`, \`.rb-shell-*\`. Container/layout
|
|
73097
74033
|
* pieces that would otherwise collide with the global \`.rb-*\` utility layer
|
|
73098
74034
|
* are namespaced \`rb-reg-*\` (\`.rb-reg-surface\`, \`.rb-reg-stack\`, ...). All of
|
|
@@ -73115,6 +74051,13 @@ const containerResponsiveThemeCss = `/*
|
|
|
73115
74051
|
height: 2rem;
|
|
73116
74052
|
}
|
|
73117
74053
|
|
|
74054
|
+
/* The success tick reads as a mark inside its disc, not a line drawing */
|
|
74055
|
+
:where(.theme-scope) .rb-state-icon--success svg {
|
|
74056
|
+
width: 1.75rem;
|
|
74057
|
+
height: 1.75rem;
|
|
74058
|
+
stroke-width: 3;
|
|
74059
|
+
}
|
|
74060
|
+
|
|
73118
74061
|
/* Surface container */
|
|
73119
74062
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-reg-surface {
|
|
73120
74063
|
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
@@ -73151,18 +74094,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
73151
74094
|
}
|
|
73152
74095
|
|
|
73153
74096
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:hover:not(:disabled):not([aria-disabled="true"]) {
|
|
73154
|
-
border-color: var(--rb-reg-border-hover,
|
|
73155
|
-
box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px
|
|
74097
|
+
border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary, 17 24 39) / 0.5));
|
|
74098
|
+
box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08));
|
|
73156
74099
|
}
|
|
73157
74100
|
|
|
73158
74101
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:focus-visible {
|
|
73159
|
-
outline: 2px solid var(--rb-reg-focus-ring,
|
|
74102
|
+
outline: 2px solid var(--rb-reg-focus-ring, rgb(var(--tb-primary, 17 24 39) / 0.3));
|
|
73160
74103
|
outline-offset: 2px;
|
|
73161
74104
|
}
|
|
73162
74105
|
|
|
73163
74106
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card--selected {
|
|
73164
74107
|
border-color: var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
73165
|
-
background-color: var(--rb-reg-bg-selected,
|
|
74108
|
+
background-color: var(--rb-reg-bg-selected, rgb(var(--tb-primary, 17 24 39) / 0.08));
|
|
73166
74109
|
box-shadow: 0 0 0 1px var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
|
|
73167
74110
|
}
|
|
73168
74111
|
|
|
@@ -73194,78 +74137,45 @@ const containerResponsiveThemeCss = `/*
|
|
|
73194
74137
|
color: var(--rb-reg-check-text, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
|
|
73195
74138
|
}
|
|
73196
74139
|
|
|
73197
|
-
/* Step
|
|
73198
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-
|
|
73199
|
-
margin-bottom: 1.5rem;
|
|
73200
|
-
}
|
|
73201
|
-
|
|
73202
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-steps {
|
|
74140
|
+
/* Progress: the current step's label, "Step N of M" and a thin bar (issue 1581) */
|
|
74141
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress {
|
|
73203
74142
|
display: flex;
|
|
73204
|
-
|
|
73205
|
-
justify-content: center;
|
|
73206
|
-
gap: 0.5rem;
|
|
73207
|
-
list-style: none;
|
|
73208
|
-
padding: 0;
|
|
73209
|
-
margin: 0;
|
|
73210
|
-
}
|
|
73211
|
-
|
|
73212
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step {
|
|
73213
|
-
display: flex;
|
|
73214
|
-
align-items: center;
|
|
74143
|
+
flex-direction: column;
|
|
73215
74144
|
gap: 0.5rem;
|
|
74145
|
+
margin-bottom: 1.5rem;
|
|
73216
74146
|
}
|
|
73217
74147
|
|
|
73218
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-
|
|
73219
|
-
width: 1.75rem;
|
|
73220
|
-
height: 1.75rem;
|
|
73221
|
-
border-radius: 50%;
|
|
74148
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__head {
|
|
73222
74149
|
display: flex;
|
|
73223
|
-
align-items:
|
|
73224
|
-
justify-content:
|
|
73225
|
-
|
|
73226
|
-
font-
|
|
73227
|
-
|
|
73228
|
-
color: var(--rb-reg-step-text, rgb(var(--tb-primaryForeground, 255 255 255)));
|
|
73229
|
-
transition: background-color var(--rb-block-transition, 150ms) ease;
|
|
73230
|
-
}
|
|
73231
|
-
|
|
73232
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--active {
|
|
73233
|
-
background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
|
|
73234
|
-
color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
|
|
73235
|
-
}
|
|
73236
|
-
|
|
73237
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--completed {
|
|
73238
|
-
background: var(--rb-reg-step-completed, rgb(var(--tb-success, 22 163 74)));
|
|
73239
|
-
color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
|
|
73240
|
-
}
|
|
73241
|
-
|
|
73242
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-check {
|
|
73243
|
-
width: 0.75rem;
|
|
73244
|
-
height: 0.75rem;
|
|
73245
|
-
}
|
|
73246
|
-
|
|
73247
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-connector {
|
|
73248
|
-
width: 2rem;
|
|
73249
|
-
height: 2px;
|
|
73250
|
-
background: var(--rb-reg-step-connector, rgba(var(--tb-border, 226 232 240), 0.5));
|
|
74150
|
+
align-items: baseline;
|
|
74151
|
+
justify-content: space-between;
|
|
74152
|
+
gap: 1rem;
|
|
74153
|
+
font-size: 0.8125rem;
|
|
74154
|
+
line-height: 1.3;
|
|
73251
74155
|
}
|
|
73252
74156
|
|
|
73253
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-
|
|
73254
|
-
font-
|
|
74157
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__label {
|
|
74158
|
+
font-weight: 700;
|
|
73255
74159
|
color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
|
|
73256
|
-
display: none;
|
|
73257
74160
|
}
|
|
73258
74161
|
|
|
73259
|
-
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-
|
|
73260
|
-
|
|
74162
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__count {
|
|
74163
|
+
margin-inline-start: auto;
|
|
74164
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
|
|
73261
74165
|
}
|
|
73262
74166
|
|
|
73263
|
-
|
|
73264
|
-
|
|
73265
|
-
|
|
73266
|
-
|
|
73267
|
-
|
|
74167
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__track {
|
|
74168
|
+
height: 4px;
|
|
74169
|
+
border-radius: 4px;
|
|
74170
|
+
background: rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.12);
|
|
74171
|
+
overflow: hidden;
|
|
73268
74172
|
}
|
|
74173
|
+
|
|
74174
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__fill {
|
|
74175
|
+
height: 100%;
|
|
74176
|
+
border-radius: 4px;
|
|
74177
|
+
background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
|
|
74178
|
+
transition: width var(--rb-block-transition, 150ms) ease;
|
|
73269
74179
|
}
|
|
73270
74180
|
|
|
73271
74181
|
/* Wizard actions row */
|
|
@@ -73282,21 +74192,26 @@ const containerResponsiveThemeCss = `/*
|
|
|
73282
74192
|
margin-inline-start: auto;
|
|
73283
74193
|
}
|
|
73284
74194
|
|
|
74195
|
+
/* A footer with only Back keeps it bottom-left, like every other step */
|
|
74196
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-wizard-actions--back-only > :only-child {
|
|
74197
|
+
margin-inline-start: 0;
|
|
74198
|
+
}
|
|
74199
|
+
|
|
73285
74200
|
/* On-surface text ramp */
|
|
73286
74201
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface {
|
|
73287
74202
|
color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
|
|
73288
74203
|
}
|
|
73289
74204
|
|
|
73290
74205
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--muted {
|
|
73291
|
-
color: var(--rb-reg-on-surface-muted,
|
|
74206
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
|
|
73292
74207
|
}
|
|
73293
74208
|
|
|
73294
74209
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--subtle {
|
|
73295
|
-
color: var(--rb-reg-on-surface-subtle,
|
|
74210
|
+
color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
|
|
73296
74211
|
}
|
|
73297
74212
|
|
|
73298
74213
|
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--faint {
|
|
73299
|
-
color: var(--rb-reg-on-surface-faint,
|
|
74214
|
+
color: var(--rb-reg-on-surface-faint, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.5));
|
|
73300
74215
|
}
|
|
73301
74216
|
|
|
73302
74217
|
/* Layout stacks */
|
|
@@ -73331,7 +74246,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
73331
74246
|
padding: 1rem;
|
|
73332
74247
|
border-radius: calc(var(--rb-reg-radius, var(--rb-block-radius, 1rem)) * 0.75);
|
|
73333
74248
|
border: 1px solid var(--rb-reg-summary-border, rgb(var(--tb-border, 226 232 240)));
|
|
73334
|
-
background: var(--rb-reg-summary-bg,
|
|
74249
|
+
background: var(--rb-reg-summary-bg, rgb(var(--tb-muted, 241 245 249) / 0.42));
|
|
73335
74250
|
}
|
|
73336
74251
|
|
|
73337
74252
|
/* Skeleton shell lines */
|
|
@@ -73340,9 +74255,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
73340
74255
|
border-radius: 9999px;
|
|
73341
74256
|
background: linear-gradient(
|
|
73342
74257
|
90deg,
|
|
73343
|
-
var(--rb-reg-shell-line,
|
|
73344
|
-
|
|
73345
|
-
var(--rb-reg-shell-line,
|
|
74258
|
+
var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22)),
|
|
74259
|
+
rgb(var(--tb-primary, 17 24 39) / 0.12),
|
|
74260
|
+
var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22))
|
|
73346
74261
|
);
|
|
73347
74262
|
}
|
|
73348
74263
|
|
|
@@ -73367,7 +74282,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
73367
74282
|
height: 2.5rem;
|
|
73368
74283
|
width: 100%;
|
|
73369
74284
|
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
73370
|
-
background: var(--rb-reg-shell-line,
|
|
74285
|
+
background: var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22));
|
|
73371
74286
|
animation: rb-reg-pulse 1.5s ease-in-out infinite;
|
|
73372
74287
|
}
|
|
73373
74288
|
|
|
@@ -73386,6 +74301,101 @@ const containerResponsiveThemeCss = `/*
|
|
|
73386
74301
|
}
|
|
73387
74302
|
}
|
|
73388
74303
|
|
|
74304
|
+
/* Payment choices (issue 1581): one full-width radio row per way to pay, the
|
|
74305
|
+
* label and detail on the left, the price on the right. Shared by event and
|
|
74306
|
+
* appointment booking (PaymentChoiceRows). */
|
|
74307
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choices {
|
|
74308
|
+
display: flex;
|
|
74309
|
+
flex-direction: column;
|
|
74310
|
+
gap: 0.625rem;
|
|
74311
|
+
}
|
|
74312
|
+
|
|
74313
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice {
|
|
74314
|
+
display: flex;
|
|
74315
|
+
align-items: flex-start;
|
|
74316
|
+
gap: 0.875rem;
|
|
74317
|
+
padding: 1rem 1.125rem;
|
|
74318
|
+
border: 1px solid var(--rb-reg-border, rgb(var(--tb-border)));
|
|
74319
|
+
border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
|
|
74320
|
+
background: var(--rb-reg-option-bg, transparent);
|
|
74321
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
74322
|
+
cursor: pointer;
|
|
74323
|
+
transition:
|
|
74324
|
+
border-color var(--rb-block-transition, 150ms) ease,
|
|
74325
|
+
background-color var(--rb-block-transition, 150ms) ease;
|
|
74326
|
+
}
|
|
74327
|
+
|
|
74328
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:hover:not(.rb-pay-choice--disabled) {
|
|
74329
|
+
border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary) / 0.5));
|
|
74330
|
+
}
|
|
74331
|
+
|
|
74332
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:focus-within {
|
|
74333
|
+
box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
|
|
74334
|
+
}
|
|
74335
|
+
|
|
74336
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected {
|
|
74337
|
+
border-color: rgb(var(--tb-primary));
|
|
74338
|
+
box-shadow: inset 0 0 0 1px rgb(var(--tb-primary));
|
|
74339
|
+
background: rgb(var(--tb-primary) / 0.06);
|
|
74340
|
+
}
|
|
74341
|
+
|
|
74342
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected:focus-within {
|
|
74343
|
+
box-shadow:
|
|
74344
|
+
inset 0 0 0 1px rgb(var(--tb-primary)),
|
|
74345
|
+
0 0 0 3px rgb(var(--tb-primary) / 0.25);
|
|
74346
|
+
}
|
|
74347
|
+
|
|
74348
|
+
/* Disabled stays readable: a dashed edge and quieter text, with its reason */
|
|
74349
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--disabled {
|
|
74350
|
+
border-style: dashed;
|
|
74351
|
+
cursor: not-allowed;
|
|
74352
|
+
}
|
|
74353
|
+
|
|
74354
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--disabled :is(.rb-pay-choice__label, .rb-pay-choice__detail, .rb-pay-choice__price) {
|
|
74355
|
+
opacity: 0.65;
|
|
74356
|
+
}
|
|
74357
|
+
|
|
74358
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__radio {
|
|
74359
|
+
flex: 0 0 auto;
|
|
74360
|
+
width: 1.25rem;
|
|
74361
|
+
height: 1.25rem;
|
|
74362
|
+
margin: 0.125rem 0 0;
|
|
74363
|
+
accent-color: rgb(var(--tb-primary));
|
|
74364
|
+
cursor: inherit;
|
|
74365
|
+
}
|
|
74366
|
+
|
|
74367
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__body {
|
|
74368
|
+
flex: 1 1 auto;
|
|
74369
|
+
min-width: 0;
|
|
74370
|
+
display: flex;
|
|
74371
|
+
flex-direction: column;
|
|
74372
|
+
gap: 0.125rem;
|
|
74373
|
+
}
|
|
74374
|
+
|
|
74375
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__label {
|
|
74376
|
+
font-weight: 700;
|
|
74377
|
+
line-height: 1.35;
|
|
74378
|
+
}
|
|
74379
|
+
|
|
74380
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__detail {
|
|
74381
|
+
font-size: 0.875rem;
|
|
74382
|
+
line-height: 1.4;
|
|
74383
|
+
color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
|
|
74384
|
+
}
|
|
74385
|
+
|
|
74386
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__reason {
|
|
74387
|
+
font-size: 0.8125rem;
|
|
74388
|
+
line-height: 1.4;
|
|
74389
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
74390
|
+
}
|
|
74391
|
+
|
|
74392
|
+
:where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__price {
|
|
74393
|
+
flex: 0 0 auto;
|
|
74394
|
+
font-weight: 700;
|
|
74395
|
+
text-align: end;
|
|
74396
|
+
white-space: nowrap;
|
|
74397
|
+
}
|
|
74398
|
+
|
|
73389
74399
|
/* =============================================================================
|
|
73390
74400
|
* Block: Event Registration (pilot #76)
|
|
73391
74401
|
* Uses CSS vars: --er-* (Tier 3) and --rb-block-* (Tier 2)
|
|
@@ -73400,17 +74410,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
73400
74410
|
--rb-event-tile-border-hover: var(--er-border-hover);
|
|
73401
74411
|
--rb-event-tile-border-selected: var(--er-border-selected);
|
|
73402
74412
|
--rb-event-tile-hover-opacity: var(--er-event-card-hover-opacity);
|
|
73403
|
-
--rb-event-tile-bg-selected:
|
|
74413
|
+
--rb-event-tile-bg-selected: rgb(var(--tb-primary) / 0.1);
|
|
73404
74414
|
--er-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
|
|
73405
|
-
--er-on-surface-muted:
|
|
73406
|
-
--er-on-surface-subtle:
|
|
73407
|
-
--er-on-surface-faint:
|
|
73408
|
-
--er-on-surface-hover-bg:
|
|
73409
|
-
--er-on-surface-disabled:
|
|
73410
|
-
--er-on-surface-disabled-detail:
|
|
73411
|
-
var(--tb-onSurface, var(--tb-text)),
|
|
73412
|
-
0.68
|
|
73413
|
-
);
|
|
74415
|
+
--er-on-surface-muted: rgb(var(--tb-onSurface, var(--tb-text)) / 0.7);
|
|
74416
|
+
--er-on-surface-subtle: rgb(var(--tb-onSurface, var(--tb-text)) / 0.6);
|
|
74417
|
+
--er-on-surface-faint: rgb(var(--tb-onSurface, var(--tb-text)) / 0.5);
|
|
74418
|
+
--er-on-surface-hover-bg: rgb(var(--tb-onSurface, var(--tb-text)) / 0.05);
|
|
74419
|
+
--er-on-surface-disabled: rgb(var(--tb-onSurface, var(--tb-text)) / 0.78);
|
|
74420
|
+
--er-on-surface-disabled-detail: rgb(var(--tb-onSurface, var(--tb-text)) / 0.68);
|
|
73414
74421
|
}
|
|
73415
74422
|
|
|
73416
74423
|
/* Container: styled by the shared .rb-reg-surface (registration-surface.css);
|
|
@@ -73538,6 +74545,109 @@ const containerResponsiveThemeCss = `/*
|
|
|
73538
74545
|
opacity: 0.6;
|
|
73539
74546
|
}
|
|
73540
74547
|
|
|
74548
|
+
/* Date step (issue 1581): one radio row per date, on the shared event tile */
|
|
74549
|
+
:where(.theme-scope)
|
|
74550
|
+
:where([data-block='event-registration'])
|
|
74551
|
+
.er-date-list {
|
|
74552
|
+
display: flex;
|
|
74553
|
+
flex-direction: column;
|
|
74554
|
+
gap: 0.625rem;
|
|
74555
|
+
}
|
|
74556
|
+
|
|
74557
|
+
:where(.theme-scope)
|
|
74558
|
+
:where([data-block='event-registration'])
|
|
74559
|
+
.er-date-list__month {
|
|
74560
|
+
margin: 0.5rem 0 0;
|
|
74561
|
+
font-size: 0.75rem;
|
|
74562
|
+
font-weight: 700;
|
|
74563
|
+
letter-spacing: 0.08em;
|
|
74564
|
+
text-transform: uppercase;
|
|
74565
|
+
color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
|
|
74566
|
+
}
|
|
74567
|
+
|
|
74568
|
+
:where(.theme-scope)
|
|
74569
|
+
:where([data-block='event-registration'])
|
|
74570
|
+
.er-date-list__month:first-child {
|
|
74571
|
+
margin-top: 0;
|
|
74572
|
+
}
|
|
74573
|
+
|
|
74574
|
+
:where(.theme-scope)
|
|
74575
|
+
:where([data-block='event-registration'])
|
|
74576
|
+
.er-event-card.er-date-option {
|
|
74577
|
+
display: flex;
|
|
74578
|
+
align-items: center;
|
|
74579
|
+
gap: 0.875rem;
|
|
74580
|
+
padding: 0.875rem 1rem;
|
|
74581
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
74582
|
+
}
|
|
74583
|
+
|
|
74584
|
+
:where(.theme-scope)
|
|
74585
|
+
:where([data-block='event-registration'])
|
|
74586
|
+
.er-date-option:focus-within {
|
|
74587
|
+
box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
|
|
74588
|
+
}
|
|
74589
|
+
|
|
74590
|
+
:where(.theme-scope)
|
|
74591
|
+
:where([data-block='event-registration'])
|
|
74592
|
+
.er-date-option__radio {
|
|
74593
|
+
flex: 0 0 auto;
|
|
74594
|
+
width: 1.25rem;
|
|
74595
|
+
height: 1.25rem;
|
|
74596
|
+
margin: 0;
|
|
74597
|
+
accent-color: rgb(var(--tb-primary));
|
|
74598
|
+
cursor: pointer;
|
|
74599
|
+
}
|
|
74600
|
+
|
|
74601
|
+
:where(.theme-scope)
|
|
74602
|
+
:where([data-block='event-registration'])
|
|
74603
|
+
.er-date-option__main {
|
|
74604
|
+
flex: 1 1 auto;
|
|
74605
|
+
min-width: 0;
|
|
74606
|
+
display: flex;
|
|
74607
|
+
flex-direction: column;
|
|
74608
|
+
gap: 0.125rem;
|
|
74609
|
+
}
|
|
74610
|
+
|
|
74611
|
+
:where(.theme-scope)
|
|
74612
|
+
:where([data-block='event-registration'])
|
|
74613
|
+
.er-date-option__date {
|
|
74614
|
+
font-weight: 700;
|
|
74615
|
+
line-height: 1.3;
|
|
74616
|
+
}
|
|
74617
|
+
|
|
74618
|
+
:where(.theme-scope)
|
|
74619
|
+
:where([data-block='event-registration'])
|
|
74620
|
+
.er-date-option__time {
|
|
74621
|
+
font-size: 0.875rem;
|
|
74622
|
+
color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
|
|
74623
|
+
}
|
|
74624
|
+
|
|
74625
|
+
:where(.theme-scope)
|
|
74626
|
+
:where([data-block='event-registration'])
|
|
74627
|
+
.er-date-option__places {
|
|
74628
|
+
flex: 0 0 auto;
|
|
74629
|
+
padding: 0.125rem 0.5rem;
|
|
74630
|
+
border: 1px solid var(--er-border);
|
|
74631
|
+
border-radius: 999px;
|
|
74632
|
+
font-size: 0.75rem;
|
|
74633
|
+
font-weight: 700;
|
|
74634
|
+
white-space: nowrap;
|
|
74635
|
+
}
|
|
74636
|
+
|
|
74637
|
+
/* Full dates stay selectable (a guest can still reach recovery) but read as quiet */
|
|
74638
|
+
:where(.theme-scope)
|
|
74639
|
+
:where([data-block='event-registration'])
|
|
74640
|
+
.er-date-option--full {
|
|
74641
|
+
border-style: dashed;
|
|
74642
|
+
}
|
|
74643
|
+
|
|
74644
|
+
:where(.theme-scope)
|
|
74645
|
+
:where([data-block='event-registration'])
|
|
74646
|
+
.er-date-option--full
|
|
74647
|
+
:is(.er-date-option__main, .er-date-option__places) {
|
|
74648
|
+
opacity: 0.6;
|
|
74649
|
+
}
|
|
74650
|
+
|
|
73541
74651
|
/* Capacity badges */
|
|
73542
74652
|
:where(.theme-scope)
|
|
73543
74653
|
:where([data-block='event-registration'])
|
|
@@ -73743,63 +74853,31 @@ const containerResponsiveThemeCss = `/*
|
|
|
73743
74853
|
}
|
|
73744
74854
|
}
|
|
73745
74855
|
|
|
73746
|
-
/*
|
|
73747
|
-
|
|
73748
|
-
width: 100%;
|
|
73749
|
-
min-height: 2.75rem;
|
|
73750
|
-
padding: 0.625rem 0.75rem;
|
|
73751
|
-
border-radius: calc(var(--rb-block-radius) * 0.5);
|
|
73752
|
-
border: 1px solid var(--er-border);
|
|
73753
|
-
background: var(--er-control-bg);
|
|
73754
|
-
color: var(--er-control-text);
|
|
73755
|
-
font: inherit;
|
|
73756
|
-
line-height: 1.4;
|
|
73757
|
-
transition:
|
|
73758
|
-
border-color var(--rb-block-transition) ease,
|
|
73759
|
-
background-color var(--rb-block-transition) ease,
|
|
73760
|
-
box-shadow var(--rb-block-transition) ease;
|
|
73761
|
-
}
|
|
74856
|
+
/* Fields use the theme's own form-label / form-input / form-textarea
|
|
74857
|
+
(theme-core/src/inputs/generateInputCss.ts), like the site's form block. */
|
|
73762
74858
|
|
|
73763
74859
|
:where(.theme-scope)
|
|
73764
74860
|
:where([data-block='event-registration'])
|
|
73765
|
-
.er-
|
|
73766
|
-
|
|
73767
|
-
|
|
73768
|
-
|
|
73769
|
-
:
|
|
73770
|
-
outline: none;
|
|
73771
|
-
border-color: var(--er-border-selected);
|
|
73772
|
-
box-shadow: 0 0 0 3px var(--er-focus-ring);
|
|
73773
|
-
}
|
|
73774
|
-
|
|
73775
|
-
:where(.theme-scope)
|
|
73776
|
-
:where([data-block='event-registration'])
|
|
73777
|
-
.er-input--error {
|
|
73778
|
-
border-color: var(--er-border-error);
|
|
74861
|
+
.er-label-optional {
|
|
74862
|
+
font-weight: 400;
|
|
74863
|
+
text-transform: none;
|
|
74864
|
+
letter-spacing: normal;
|
|
74865
|
+
color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
|
|
73779
74866
|
}
|
|
73780
74867
|
|
|
73781
74868
|
:where(.theme-scope)
|
|
73782
74869
|
:where([data-block='event-registration'])
|
|
73783
|
-
.er-
|
|
73784
|
-
|
|
73785
|
-
|
|
73786
|
-
|
|
73787
|
-
|
|
73788
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-label {
|
|
73789
|
-
display: block;
|
|
73790
|
-
font-size: 0.875rem;
|
|
73791
|
-
font-weight: 500;
|
|
73792
|
-
margin-bottom: 0.25rem;
|
|
74870
|
+
.er-field-hint {
|
|
74871
|
+
margin: 0.375rem 0 0;
|
|
74872
|
+
font-size: 0.8125rem;
|
|
74873
|
+
line-height: 1.4;
|
|
74874
|
+
color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
|
|
73793
74875
|
}
|
|
73794
74876
|
|
|
73795
74877
|
:where(.theme-scope) :where([data-block='event-registration']) .er-consent-check {
|
|
73796
74878
|
margin-top: 0.75rem;
|
|
73797
74879
|
}
|
|
73798
74880
|
|
|
73799
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-required {
|
|
73800
|
-
color: var(--er-required);
|
|
73801
|
-
}
|
|
73802
|
-
|
|
73803
74881
|
:where(.theme-scope) :where([data-block='event-registration']) .er-error {
|
|
73804
74882
|
font-size: 0.875rem;
|
|
73805
74883
|
color: var(--er-error-text);
|
|
@@ -73808,12 +74886,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
73808
74886
|
|
|
73809
74887
|
/* Back button */
|
|
73810
74888
|
:where(.theme-scope) :where([data-block='event-registration']) .er-back-btn {
|
|
73811
|
-
font-size: 0.
|
|
73812
|
-
|
|
74889
|
+
font-size: 0.9375rem;
|
|
74890
|
+
font-weight: 700;
|
|
74891
|
+
opacity: 0.8;
|
|
73813
74892
|
background: none;
|
|
73814
74893
|
border: none;
|
|
73815
74894
|
cursor: pointer;
|
|
73816
|
-
padding: 0;
|
|
74895
|
+
padding: 0 0.25rem;
|
|
74896
|
+
min-height: 2.75rem;
|
|
73817
74897
|
transition: opacity var(--rb-block-transition) ease;
|
|
73818
74898
|
}
|
|
73819
74899
|
|
|
@@ -73824,11 +74904,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
73824
74904
|
}
|
|
73825
74905
|
|
|
73826
74906
|
/* State icon color variants (layout from registration-surface.css) */
|
|
74907
|
+
/* Success: a solid primary disc with an on-primary tick (issue 1581) */
|
|
73827
74908
|
:where(.theme-scope)
|
|
73828
74909
|
:where([data-block='event-registration'])
|
|
73829
74910
|
.rb-state-icon--success {
|
|
73830
|
-
background: var(--
|
|
73831
|
-
color: var(--
|
|
74911
|
+
background: rgb(var(--tb-primary));
|
|
74912
|
+
color: rgb(var(--tb-onPrimary));
|
|
73832
74913
|
}
|
|
73833
74914
|
|
|
73834
74915
|
:where(.theme-scope)
|
|
@@ -73877,14 +74958,15 @@ const containerResponsiveThemeCss = `/*
|
|
|
73877
74958
|
|
|
73878
74959
|
/* Typography */
|
|
73879
74960
|
:where(.theme-scope) :where([data-block='event-registration']) .er-title {
|
|
73880
|
-
font-
|
|
73881
|
-
font-
|
|
73882
|
-
line-height: 1.
|
|
74961
|
+
font-family: var(--font-heading, inherit);
|
|
74962
|
+
font-size: var(--er-step-title-size, 1.75rem);
|
|
74963
|
+
line-height: 1.15;
|
|
73883
74964
|
}
|
|
73884
74965
|
|
|
74966
|
+
/* Confirmation and error titles: never smaller than a step's heading */
|
|
73885
74967
|
:where(.theme-scope) :where([data-block='event-registration']) .er-title--lg {
|
|
73886
|
-
font-size: 1.
|
|
73887
|
-
line-height: 1.
|
|
74968
|
+
font-size: calc(var(--er-step-title-size, 1.75rem) * 1.15);
|
|
74969
|
+
line-height: 1.1;
|
|
73888
74970
|
}
|
|
73889
74971
|
|
|
73890
74972
|
:where(.theme-scope) :where([data-block='event-registration']) .er-text {
|
|
@@ -74110,7 +75192,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
74110
75192
|
padding: 1.25rem;
|
|
74111
75193
|
border: 1px solid var(--er-border);
|
|
74112
75194
|
border-radius: var(--rb-block-radius);
|
|
74113
|
-
background:
|
|
75195
|
+
background: rgb(var(--tb-surface) / 0.5);
|
|
74114
75196
|
text-align: center;
|
|
74115
75197
|
}
|
|
74116
75198
|
|
|
@@ -74215,7 +75297,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
74215
75297
|
:where([data-block='event-registration'])
|
|
74216
75298
|
.er-payment-option:hover {
|
|
74217
75299
|
border-color: var(--er-payment-border-hover);
|
|
74218
|
-
box-shadow: 0 8px 18px
|
|
75300
|
+
box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
|
|
74219
75301
|
}
|
|
74220
75302
|
|
|
74221
75303
|
:where(.theme-scope)
|
|
@@ -74415,103 +75497,6 @@ const containerResponsiveThemeCss = `/*
|
|
|
74415
75497
|
color: var(--er-on-surface);
|
|
74416
75498
|
}
|
|
74417
75499
|
|
|
74418
|
-
/* Two-column layout (Desktop: sidebar, Mobile: stacked) */
|
|
74419
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-layout {
|
|
74420
|
-
display: grid;
|
|
74421
|
-
gap: 1.5rem;
|
|
74422
|
-
/* Mobile: single column, summary at top */
|
|
74423
|
-
grid-template-columns: 1fr;
|
|
74424
|
-
grid-template-areas:
|
|
74425
|
-
'summary'
|
|
74426
|
-
'main';
|
|
74427
|
-
}
|
|
74428
|
-
|
|
74429
|
-
@container rb-site (min-width: 768px) {
|
|
74430
|
-
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
74431
|
-
:where(.theme-scope:is(*, :scope)) :where([data-block='event-registration']) .er-layout {
|
|
74432
|
-
/* Desktop: main + sidebar */
|
|
74433
|
-
grid-template-columns: 1fr 300px;
|
|
74434
|
-
grid-template-areas: 'main summary';
|
|
74435
|
-
}
|
|
74436
|
-
}
|
|
74437
|
-
}
|
|
74438
|
-
|
|
74439
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-layout-main {
|
|
74440
|
-
grid-area: main;
|
|
74441
|
-
}
|
|
74442
|
-
|
|
74443
|
-
/* OrderSummary positions via grid area */
|
|
74444
|
-
:where(.theme-scope)
|
|
74445
|
-
:where([data-block='event-registration'])
|
|
74446
|
-
.er-layout
|
|
74447
|
-
> .er-summary {
|
|
74448
|
-
grid-area: summary;
|
|
74449
|
-
}
|
|
74450
|
-
|
|
74451
|
-
/* Step indicator */
|
|
74452
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-steps-nav {
|
|
74453
|
-
margin-bottom: 1.5rem;
|
|
74454
|
-
}
|
|
74455
|
-
|
|
74456
|
-
/* Step indicator internals: styled by the shared .rb-steps / .rb-step-*
|
|
74457
|
-
family (registration-surface.css) via the --rb-reg-step-* mappings in the
|
|
74458
|
-
event-registration var generator; er-* classes remain in markup as hooks.
|
|
74459
|
-
Note: .er-steps-nav above is intentionally retained — its source position
|
|
74460
|
-
keeps the wizard's 1.5rem step margin winning over the SSR shell's
|
|
74461
|
-
1.25rem .er-registration-shell__steps override. */
|
|
74462
|
-
|
|
74463
|
-
/* Sticky order summary */
|
|
74464
|
-
:where(.theme-scope) :where([data-block='event-registration']) .er-summary {
|
|
74465
|
-
padding: 1.25rem;
|
|
74466
|
-
background: var(--er-summary-bg);
|
|
74467
|
-
border: 1px solid var(--er-summary-border);
|
|
74468
|
-
border-radius: var(--rb-block-radius);
|
|
74469
|
-
display: flex;
|
|
74470
|
-
flex-direction: column;
|
|
74471
|
-
justify-content: center;
|
|
74472
|
-
align-items: center;
|
|
74473
|
-
text-align: center;
|
|
74474
|
-
min-height: 140px;
|
|
74475
|
-
}
|
|
74476
|
-
|
|
74477
|
-
@container rb-site (min-width: 768px) {
|
|
74478
|
-
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
74479
|
-
:where(.theme-scope:is(*, :scope)) :where([data-block='event-registration']) .er-summary {
|
|
74480
|
-
position: sticky;
|
|
74481
|
-
top: 1rem;
|
|
74482
|
-
}
|
|
74483
|
-
}
|
|
74484
|
-
}
|
|
74485
|
-
|
|
74486
|
-
:where(.theme-scope)
|
|
74487
|
-
:where([data-block='event-registration'])
|
|
74488
|
-
.er-summary-event {
|
|
74489
|
-
font-weight: 600;
|
|
74490
|
-
margin-bottom: 0.25rem;
|
|
74491
|
-
}
|
|
74492
|
-
|
|
74493
|
-
:where(.theme-scope)
|
|
74494
|
-
:where([data-block='event-registration'])
|
|
74495
|
-
.er-summary-date {
|
|
74496
|
-
font-size: 0.875rem;
|
|
74497
|
-
color: rgba(var(--tb-text), 0.7);
|
|
74498
|
-
}
|
|
74499
|
-
|
|
74500
|
-
:where(.theme-scope)
|
|
74501
|
-
:where([data-block='event-registration'])
|
|
74502
|
-
.er-summary-tickets {
|
|
74503
|
-
font-size: 0.875rem;
|
|
74504
|
-
margin-top: 0.75rem;
|
|
74505
|
-
}
|
|
74506
|
-
|
|
74507
|
-
:where(.theme-scope)
|
|
74508
|
-
:where([data-block='event-registration'])
|
|
74509
|
-
.er-summary-price {
|
|
74510
|
-
font-size: 1.25rem;
|
|
74511
|
-
font-weight: 700;
|
|
74512
|
-
margin-top: 0.5rem;
|
|
74513
|
-
}
|
|
74514
|
-
|
|
74515
75500
|
/* Guest details section */
|
|
74516
75501
|
:where(.theme-scope)
|
|
74517
75502
|
:where([data-block='event-registration'])
|
|
@@ -74572,17 +75557,6 @@ const containerResponsiveThemeCss = `/*
|
|
|
74572
75557
|
border-top: 1px solid var(--er-border);
|
|
74573
75558
|
}
|
|
74574
75559
|
|
|
74575
|
-
@container rb-site (min-width: 768px) {
|
|
74576
|
-
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
74577
|
-
:where(.theme-scope:is(*, :scope))
|
|
74578
|
-
:where([data-block='event-registration'])
|
|
74579
|
-
.er-guest-card {
|
|
74580
|
-
grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
|
|
74581
|
-
column-gap: 1rem;
|
|
74582
|
-
align-items: start;
|
|
74583
|
-
}
|
|
74584
|
-
}
|
|
74585
|
-
}
|
|
74586
75560
|
|
|
74587
75561
|
/* Shake animation for validation errors */
|
|
74588
75562
|
@keyframes er-shake {
|
|
@@ -74906,8 +75880,8 @@ const containerResponsiveThemeCss = `/*
|
|
|
74906
75880
|
:where(.theme-scope)
|
|
74907
75881
|
:where([data-block='event-registration'])
|
|
74908
75882
|
.er-notice--info {
|
|
74909
|
-
background-color:
|
|
74910
|
-
border: 1px solid
|
|
75883
|
+
background-color: rgb(var(--tb-primary-100) / 0.5);
|
|
75884
|
+
border: 1px solid rgb(var(--tb-primary-300) / 0.5);
|
|
74911
75885
|
color: rgb(var(--tb-primary-800));
|
|
74912
75886
|
}
|
|
74913
75887
|
|
|
@@ -74993,12 +75967,40 @@ const containerResponsiveThemeCss = `/*
|
|
|
74993
75967
|
:where([data-block='event-registration'])
|
|
74994
75968
|
.er-payment-layout-main {
|
|
74995
75969
|
grid-area: main;
|
|
75970
|
+
/* A column, so an optional sign-in line can settle at the foot of the step. */
|
|
75971
|
+
display: flex;
|
|
75972
|
+
flex-direction: column;
|
|
75973
|
+
}
|
|
75974
|
+
|
|
75975
|
+
:where(.theme-scope)
|
|
75976
|
+
:where([data-block='event-registration'])
|
|
75977
|
+
.er-payment-layout-main
|
|
75978
|
+
> * {
|
|
75979
|
+
flex-shrink: 0;
|
|
75980
|
+
}
|
|
75981
|
+
|
|
75982
|
+
:where(.theme-scope)
|
|
75983
|
+
:where([data-block='event-registration'])
|
|
75984
|
+
.er-payment-layout-main
|
|
75985
|
+
> .er-portal-auth[data-placement='before'] {
|
|
75986
|
+
margin-bottom: 1.5rem;
|
|
74996
75987
|
}
|
|
74997
75988
|
|
|
75989
|
+
/* The optional sign-in line: pinned to the foot of the step behind a hairline,
|
|
75990
|
+
and never closer than 1.5rem to the step's content. */
|
|
74998
75991
|
:where(.theme-scope)
|
|
74999
75992
|
:where([data-block='event-registration'])
|
|
75000
75993
|
.er-payment-layout-main
|
|
75001
|
-
> .er-portal-auth {
|
|
75994
|
+
> .er-portal-auth[data-placement='after'] {
|
|
75995
|
+
margin-top: auto;
|
|
75996
|
+
padding-top: 1rem;
|
|
75997
|
+
border-top: 1px solid var(--er-border);
|
|
75998
|
+
}
|
|
75999
|
+
|
|
76000
|
+
:where(.theme-scope)
|
|
76001
|
+
:where([data-block='event-registration'])
|
|
76002
|
+
.er-payment-layout-main
|
|
76003
|
+
> :has(+ .er-portal-auth[data-placement='after']) {
|
|
75002
76004
|
margin-bottom: 1.5rem;
|
|
75003
76005
|
}
|
|
75004
76006
|
|
|
@@ -75018,7 +76020,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
75018
76020
|
}
|
|
75019
76021
|
|
|
75020
76022
|
/* =============================================================================
|
|
75021
|
-
*
|
|
76023
|
+
* Attendance mode tiles (in person / online)
|
|
75022
76024
|
* =============================================================================
|
|
75023
76025
|
*/
|
|
75024
76026
|
|
|
@@ -75063,9 +76065,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
75063
76065
|
|
|
75064
76066
|
:where(.theme-scope)
|
|
75065
76067
|
:where([data-block='event-registration'])
|
|
75066
|
-
.er-payment-tile:hover
|
|
76068
|
+
.er-payment-tile:hover {
|
|
75067
76069
|
border-color: var(--er-payment-border-hover);
|
|
75068
|
-
box-shadow: 0 8px 18px
|
|
76070
|
+
box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
|
|
75069
76071
|
}
|
|
75070
76072
|
|
|
75071
76073
|
:where(.theme-scope)
|
|
@@ -75076,89 +76078,6 @@ const containerResponsiveThemeCss = `/*
|
|
|
75076
76078
|
box-shadow: 0 0 0 1px var(--er-payment-border-selected);
|
|
75077
76079
|
}
|
|
75078
76080
|
|
|
75079
|
-
:where(.theme-scope)
|
|
75080
|
-
:where([data-block='event-registration'])
|
|
75081
|
-
.er-payment-tile--disabled {
|
|
75082
|
-
cursor: not-allowed;
|
|
75083
|
-
}
|
|
75084
|
-
|
|
75085
|
-
:where(.theme-scope)
|
|
75086
|
-
:where([data-block='event-registration'])
|
|
75087
|
-
.er-payment-tile--disabled
|
|
75088
|
-
> :not(.er-payment-tooltip) {
|
|
75089
|
-
opacity: 0.5;
|
|
75090
|
-
}
|
|
75091
|
-
|
|
75092
|
-
:where(.theme-scope)
|
|
75093
|
-
:where([data-block='event-registration'])
|
|
75094
|
-
.er-payment-tile--disabled.er-payment-tile--selected {
|
|
75095
|
-
border-color: var(--er-payment-border);
|
|
75096
|
-
background-color: transparent;
|
|
75097
|
-
}
|
|
75098
|
-
|
|
75099
|
-
:where(.theme-scope)
|
|
75100
|
-
:where([data-block='event-registration'])
|
|
75101
|
-
.er-payment-tile--disabled:hover {
|
|
75102
|
-
border-color: var(--er-payment-border);
|
|
75103
|
-
}
|
|
75104
|
-
|
|
75105
|
-
/* Tooltip styling for disabled payment tiles */
|
|
75106
|
-
:where(.theme-scope)
|
|
75107
|
-
:where([data-block='event-registration'])
|
|
75108
|
-
.er-payment-tile[aria-disabled='true'] {
|
|
75109
|
-
position: relative;
|
|
75110
|
-
}
|
|
75111
|
-
|
|
75112
|
-
:where(.theme-scope)
|
|
75113
|
-
:where([data-block='event-registration'])
|
|
75114
|
-
.er-payment-tooltip {
|
|
75115
|
-
display: none;
|
|
75116
|
-
position: absolute;
|
|
75117
|
-
bottom: 100%;
|
|
75118
|
-
left: 50%;
|
|
75119
|
-
transform: translateX(-50%);
|
|
75120
|
-
margin-bottom: 0.5rem;
|
|
75121
|
-
padding: 0.5rem 0.75rem;
|
|
75122
|
-
background: rgb(var(--tb-text));
|
|
75123
|
-
color: rgb(var(--tb-background));
|
|
75124
|
-
font-size: 0.8125rem;
|
|
75125
|
-
font-weight: 500;
|
|
75126
|
-
border-radius: calc(var(--rb-block-radius) * 0.5);
|
|
75127
|
-
white-space: normal;
|
|
75128
|
-
max-width: 16rem;
|
|
75129
|
-
line-height: 1.35;
|
|
75130
|
-
text-align: center;
|
|
75131
|
-
box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
|
|
75132
|
-
z-index: 10;
|
|
75133
|
-
}
|
|
75134
|
-
|
|
75135
|
-
:where(.theme-scope)
|
|
75136
|
-
:where([data-block='event-registration'])
|
|
75137
|
-
.er-payment-tile--disabled:hover
|
|
75138
|
-
.er-payment-tooltip {
|
|
75139
|
-
display: block;
|
|
75140
|
-
}
|
|
75141
|
-
|
|
75142
|
-
:where(.theme-scope)
|
|
75143
|
-
:where([data-block='event-registration'])
|
|
75144
|
-
.er-payment-tile-icon {
|
|
75145
|
-
font-size: 1.5rem;
|
|
75146
|
-
line-height: 1;
|
|
75147
|
-
/* SVG icon sizing */
|
|
75148
|
-
display: flex;
|
|
75149
|
-
align-items: center;
|
|
75150
|
-
justify-content: center;
|
|
75151
|
-
}
|
|
75152
|
-
|
|
75153
|
-
:where(.theme-scope)
|
|
75154
|
-
:where([data-block='event-registration'])
|
|
75155
|
-
.er-payment-tile-icon
|
|
75156
|
-
svg {
|
|
75157
|
-
width: 24px;
|
|
75158
|
-
height: 24px;
|
|
75159
|
-
color: currentColor;
|
|
75160
|
-
}
|
|
75161
|
-
|
|
75162
76081
|
:where(.theme-scope)
|
|
75163
76082
|
:where([data-block='event-registration'])
|
|
75164
76083
|
.er-payment-tile-label {
|
|
@@ -75175,27 +76094,6 @@ const containerResponsiveThemeCss = `/*
|
|
|
75175
76094
|
line-height: 1.25;
|
|
75176
76095
|
}
|
|
75177
76096
|
|
|
75178
|
-
:where(.theme-scope)
|
|
75179
|
-
:where([data-block='event-registration'])
|
|
75180
|
-
.er-payment-tile-check {
|
|
75181
|
-
position: absolute;
|
|
75182
|
-
top: 0.5rem;
|
|
75183
|
-
right: 0.5rem;
|
|
75184
|
-
}
|
|
75185
|
-
|
|
75186
|
-
/* Upsell tiles have a subtle indicator */
|
|
75187
|
-
:where(.theme-scope)
|
|
75188
|
-
:where([data-block='event-registration'])
|
|
75189
|
-
.er-payment-tile--upsell {
|
|
75190
|
-
border-style: dashed;
|
|
75191
|
-
}
|
|
75192
|
-
|
|
75193
|
-
:where(.theme-scope)
|
|
75194
|
-
:where([data-block='event-registration'])
|
|
75195
|
-
.er-payment-tile--upsell.er-payment-tile--selected {
|
|
75196
|
-
border-style: solid;
|
|
75197
|
-
}
|
|
75198
|
-
|
|
75199
76097
|
/* =============================================================================
|
|
75200
76098
|
* Order Summary Bar (horizontal, in footer)
|
|
75201
76099
|
* Layout: [Title + meta on left] [Price on right]
|
|
@@ -75203,14 +76101,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
75203
76101
|
*/
|
|
75204
76102
|
|
|
75205
76103
|
:where(.theme-scope) :where([data-block='event-registration']) .er-summary-bar {
|
|
76104
|
+
/* One row under the footer's hairline: what's booked, then the total
|
|
76105
|
+
(issue 1581). */
|
|
75206
76106
|
display: flex;
|
|
75207
76107
|
justify-content: space-between;
|
|
75208
|
-
align-items:
|
|
76108
|
+
align-items: baseline;
|
|
75209
76109
|
gap: 1rem;
|
|
75210
|
-
padding: 0.875rem 1rem;
|
|
75211
|
-
background: var(--er-surface-muted);
|
|
75212
|
-
border: 1px solid var(--er-summary-border);
|
|
75213
|
-
border-radius: calc(var(--rb-block-radius) * 0.75);
|
|
75214
76110
|
}
|
|
75215
76111
|
|
|
75216
76112
|
:where(.theme-scope)
|
|
@@ -75233,18 +76129,30 @@ const containerResponsiveThemeCss = `/*
|
|
|
75233
76129
|
:where(.theme-scope)
|
|
75234
76130
|
:where([data-block='event-registration'])
|
|
75235
76131
|
.er-summary-bar-meta {
|
|
75236
|
-
font-size: 0.
|
|
75237
|
-
color: rgba(var(--tb-text), 0.7);
|
|
76132
|
+
font-size: 0.9375rem;
|
|
75238
76133
|
line-height: 1.35;
|
|
75239
76134
|
}
|
|
75240
76135
|
|
|
76136
|
+
:where(.theme-scope)
|
|
76137
|
+
:where([data-block='event-registration'])
|
|
76138
|
+
.er-summary-bar-meta
|
|
76139
|
+
> span
|
|
76140
|
+
+ span::before {
|
|
76141
|
+
content: ' · ';
|
|
76142
|
+
}
|
|
76143
|
+
|
|
76144
|
+
:where(.theme-scope)
|
|
76145
|
+
:where([data-block='event-registration'])
|
|
76146
|
+
.er-summary-bar-schedule {
|
|
76147
|
+
color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
|
|
76148
|
+
}
|
|
76149
|
+
|
|
75241
76150
|
:where(.theme-scope)
|
|
75242
76151
|
:where([data-block='event-registration'])
|
|
75243
76152
|
.er-summary-bar-price {
|
|
75244
|
-
font-size:
|
|
76153
|
+
font-size: 1.125rem;
|
|
75245
76154
|
font-weight: 700;
|
|
75246
76155
|
flex-shrink: 0;
|
|
75247
|
-
display: block;
|
|
75248
76156
|
text-align: right;
|
|
75249
76157
|
}
|
|
75250
76158
|
|
|
@@ -75252,12 +76160,22 @@ const containerResponsiveThemeCss = `/*
|
|
|
75252
76160
|
:where([data-block='event-registration'])
|
|
75253
76161
|
.er-summary-bar-pricing {
|
|
75254
76162
|
display: flex;
|
|
75255
|
-
flex-
|
|
75256
|
-
|
|
75257
|
-
|
|
76163
|
+
flex-wrap: wrap;
|
|
76164
|
+
justify-content: flex-end;
|
|
76165
|
+
align-items: baseline;
|
|
76166
|
+
column-gap: 0.5rem;
|
|
76167
|
+
row-gap: 0.125rem;
|
|
75258
76168
|
text-align: right;
|
|
75259
76169
|
}
|
|
75260
76170
|
|
|
76171
|
+
/* Notes under the total take their own line */
|
|
76172
|
+
:where(.theme-scope)
|
|
76173
|
+
:where([data-block='event-registration'])
|
|
76174
|
+
.er-summary-bar-pricing
|
|
76175
|
+
> div {
|
|
76176
|
+
flex-basis: 100%;
|
|
76177
|
+
}
|
|
76178
|
+
|
|
75261
76179
|
/* Product section in summary bar (for pass/membership selection) */
|
|
75262
76180
|
:where(.theme-scope)
|
|
75263
76181
|
:where([data-block='event-registration'])
|
|
@@ -75303,7 +76221,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
75303
76221
|
:where([data-block='event-registration'])
|
|
75304
76222
|
.er-summary-bar-product-detail {
|
|
75305
76223
|
font-size: 0.8125rem;
|
|
75306
|
-
color:
|
|
76224
|
+
color: rgb(var(--tb-text) / 0.6);
|
|
75307
76225
|
margin-top: 0.125rem;
|
|
75308
76226
|
}
|
|
75309
76227
|
|
|
@@ -75320,9 +76238,8 @@ const containerResponsiveThemeCss = `/*
|
|
|
75320
76238
|
:where(.theme-scope)
|
|
75321
76239
|
:where([data-block='event-registration'])
|
|
75322
76240
|
.er-summary-bar-price--struck {
|
|
75323
|
-
display: block;
|
|
75324
76241
|
text-decoration: line-through;
|
|
75325
|
-
color:
|
|
76242
|
+
color: rgb(var(--tb-text) / 0.5);
|
|
75326
76243
|
font-size: 0.9375rem;
|
|
75327
76244
|
font-weight: 500;
|
|
75328
76245
|
text-align: right;
|
|
@@ -75344,19 +76261,25 @@ const containerResponsiveThemeCss = `/*
|
|
|
75344
76261
|
*/
|
|
75345
76262
|
|
|
75346
76263
|
:where(.theme-scope) :where([data-block='event-registration']) .er-portal-auth {
|
|
75347
|
-
|
|
75348
|
-
|
|
75349
|
-
|
|
75350
|
-
|
|
75351
|
-
|
|
76264
|
+
/* The surface the panel paints publishes its own foreground; --tb-onSurface
|
|
76265
|
+
can be a different (near-black) colour from the site's text. */
|
|
76266
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
76267
|
+
font-size: 0.9375rem;
|
|
76268
|
+
line-height: 1.5;
|
|
75352
76269
|
}
|
|
75353
76270
|
|
|
75354
76271
|
:where(.theme-scope)
|
|
75355
76272
|
:where([data-block='event-registration'])
|
|
75356
76273
|
.er-portal-auth-title {
|
|
75357
76274
|
font-weight: 600;
|
|
75358
|
-
|
|
75359
|
-
|
|
76275
|
+
margin: 0 0 0.25rem 0;
|
|
76276
|
+
}
|
|
76277
|
+
|
|
76278
|
+
:where(.theme-scope)
|
|
76279
|
+
:where([data-block='event-registration'])
|
|
76280
|
+
.er-portal-auth[data-placement='after']
|
|
76281
|
+
.er-portal-auth-title {
|
|
76282
|
+
margin: 0;
|
|
75360
76283
|
}
|
|
75361
76284
|
|
|
75362
76285
|
:where(.theme-scope)
|
|
@@ -75368,6 +76291,15 @@ const containerResponsiveThemeCss = `/*
|
|
|
75368
76291
|
line-height: 1.4;
|
|
75369
76292
|
}
|
|
75370
76293
|
|
|
76294
|
+
:where(.theme-scope)
|
|
76295
|
+
:where([data-block='event-registration'])
|
|
76296
|
+
.er-portal-auth
|
|
76297
|
+
.er-portal-auth-text {
|
|
76298
|
+
color: inherit;
|
|
76299
|
+
margin: 0;
|
|
76300
|
+
line-height: inherit;
|
|
76301
|
+
}
|
|
76302
|
+
|
|
75371
76303
|
:where(.theme-scope)
|
|
75372
76304
|
:where([data-block='event-registration'])
|
|
75373
76305
|
.er-portal-auth-link {
|
|
@@ -75417,7 +76349,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
75417
76349
|
left: 0;
|
|
75418
76350
|
right: 0;
|
|
75419
76351
|
bottom: 0;
|
|
75420
|
-
background:
|
|
76352
|
+
background: var(--rb-modal-overlay-bg);
|
|
75421
76353
|
display: flex;
|
|
75422
76354
|
align-items: center;
|
|
75423
76355
|
justify-content: center;
|
|
@@ -75432,7 +76364,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
75432
76364
|
max-width: 400px;
|
|
75433
76365
|
width: 100%;
|
|
75434
76366
|
position: relative;
|
|
75435
|
-
box-shadow: 0 10px 25px
|
|
76367
|
+
box-shadow: 0 10px 25px rgb(var(--tb-shadow) / 0.2);
|
|
75436
76368
|
}
|
|
75437
76369
|
|
|
75438
76370
|
:where(.theme-scope) :where([data-block='event-registration']) .er-modal-close {
|
|
@@ -75444,7 +76376,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
75444
76376
|
font-size: 1.5rem;
|
|
75445
76377
|
line-height: 1;
|
|
75446
76378
|
cursor: pointer;
|
|
75447
|
-
color:
|
|
76379
|
+
color: rgb(var(--tb-text) / 0.5);
|
|
75448
76380
|
padding: 0.25rem;
|
|
75449
76381
|
}
|
|
75450
76382
|
|
|
@@ -75510,97 +76442,246 @@ const containerResponsiveThemeCss = `/*
|
|
|
75510
76442
|
:where(.theme-scope)
|
|
75511
76443
|
:where([data-block='event-registration'])
|
|
75512
76444
|
.er-modal-btn--secondary:hover {
|
|
75513
|
-
background:
|
|
76445
|
+
background: rgb(var(--tb-text) / 0.05);
|
|
75514
76446
|
}
|
|
75515
76447
|
|
|
75516
|
-
/*
|
|
76448
|
+
/* Booking card: in the page where the editor placed the block (issue 1581) */
|
|
75517
76449
|
:where(.theme-scope)
|
|
75518
76450
|
:where([data-block='event-registration'])
|
|
75519
|
-
.er-booking-
|
|
76451
|
+
.er-booking-card {
|
|
75520
76452
|
display: flex;
|
|
76453
|
+
flex-direction: column;
|
|
76454
|
+
gap: 1.125rem;
|
|
76455
|
+
padding: 1.5rem 1.75rem;
|
|
76456
|
+
border: 1px solid var(--er-border);
|
|
76457
|
+
border-radius: calc(var(--rb-block-radius) * 1.25);
|
|
76458
|
+
background: rgb(var(--tb-surface));
|
|
76459
|
+
/* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
|
|
76460
|
+
}
|
|
76461
|
+
|
|
76462
|
+
:where(.theme-scope)
|
|
76463
|
+
:where([data-block='event-registration'])
|
|
76464
|
+
.er-booking-card__row {
|
|
76465
|
+
display: flex;
|
|
76466
|
+
align-items: center;
|
|
76467
|
+
gap: 1.25rem 1.75rem;
|
|
75521
76468
|
flex-wrap: wrap;
|
|
76469
|
+
}
|
|
76470
|
+
|
|
76471
|
+
:where(.theme-scope)
|
|
76472
|
+
:where([data-block='event-registration'])
|
|
76473
|
+
.er-booking-card__tile {
|
|
76474
|
+
flex: 0 0 auto;
|
|
76475
|
+
display: flex;
|
|
76476
|
+
flex-direction: column;
|
|
75522
76477
|
align-items: center;
|
|
75523
|
-
justify-content:
|
|
75524
|
-
gap:
|
|
75525
|
-
|
|
75526
|
-
|
|
76478
|
+
justify-content: center;
|
|
76479
|
+
gap: 0.125rem;
|
|
76480
|
+
width: 4.25rem;
|
|
76481
|
+
height: 4.75rem;
|
|
75527
76482
|
border-radius: var(--rb-block-radius);
|
|
75528
|
-
background: var(--
|
|
75529
|
-
|
|
76483
|
+
background: rgb(var(--tb-primary));
|
|
76484
|
+
color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
|
|
75530
76485
|
}
|
|
75531
76486
|
|
|
75532
76487
|
:where(.theme-scope)
|
|
75533
76488
|
:where([data-block='event-registration'])
|
|
75534
|
-
.er-booking-
|
|
76489
|
+
.er-booking-card__tile-month {
|
|
76490
|
+
font-size: 0.75rem;
|
|
76491
|
+
font-weight: 800;
|
|
76492
|
+
letter-spacing: 0.1em;
|
|
76493
|
+
}
|
|
76494
|
+
|
|
76495
|
+
:where(.theme-scope)
|
|
76496
|
+
:where([data-block='event-registration'])
|
|
76497
|
+
.er-booking-card__tile-day {
|
|
76498
|
+
font-family: var(--font-heading, inherit);
|
|
76499
|
+
font-size: 2rem;
|
|
76500
|
+
line-height: 1;
|
|
76501
|
+
}
|
|
76502
|
+
|
|
76503
|
+
:where(.theme-scope)
|
|
76504
|
+
:where([data-block='event-registration'])
|
|
76505
|
+
.er-booking-card__badge {
|
|
76506
|
+
flex: 0 0 auto;
|
|
76507
|
+
display: inline-flex;
|
|
76508
|
+
align-items: center;
|
|
76509
|
+
justify-content: center;
|
|
76510
|
+
width: 3rem;
|
|
76511
|
+
height: 3rem;
|
|
76512
|
+
border-radius: 999px;
|
|
76513
|
+
background: rgb(var(--tb-primary));
|
|
76514
|
+
color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
|
|
76515
|
+
}
|
|
76516
|
+
|
|
76517
|
+
:where(.theme-scope)
|
|
76518
|
+
:where([data-block='event-registration'])
|
|
76519
|
+
.er-booking-card__body {
|
|
76520
|
+
flex: 1 1 16rem;
|
|
76521
|
+
min-width: 0;
|
|
75535
76522
|
display: flex;
|
|
75536
76523
|
flex-direction: column;
|
|
75537
76524
|
gap: 0.25rem;
|
|
75538
|
-
min-width: 0;
|
|
75539
76525
|
}
|
|
75540
76526
|
|
|
75541
76527
|
:where(.theme-scope)
|
|
75542
76528
|
:where([data-block='event-registration'])
|
|
75543
|
-
.er-booking-
|
|
75544
|
-
|
|
76529
|
+
.er-booking-card__when {
|
|
76530
|
+
margin: 0;
|
|
76531
|
+
font-size: 1.125rem;
|
|
75545
76532
|
font-weight: 700;
|
|
75546
|
-
line-height: 1.
|
|
76533
|
+
line-height: 1.3;
|
|
75547
76534
|
}
|
|
75548
76535
|
|
|
75549
76536
|
:where(.theme-scope)
|
|
75550
76537
|
:where([data-block='event-registration'])
|
|
75551
|
-
.er-booking-
|
|
76538
|
+
.er-booking-card__venue,
|
|
76539
|
+
:where(.theme-scope)
|
|
76540
|
+
:where([data-block='event-registration'])
|
|
76541
|
+
.er-booking-card__facts {
|
|
76542
|
+
margin: 0;
|
|
75552
76543
|
font-size: 0.9375rem;
|
|
75553
|
-
line-height: 1.
|
|
75554
|
-
|
|
76544
|
+
line-height: 1.45;
|
|
76545
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
75555
76546
|
}
|
|
75556
76547
|
|
|
75557
76548
|
:where(.theme-scope)
|
|
75558
76549
|
:where([data-block='event-registration'])
|
|
75559
|
-
.er-booking-
|
|
76550
|
+
.er-booking-card__facts {
|
|
76551
|
+
margin-top: 0.25rem;
|
|
76552
|
+
font-weight: 600;
|
|
76553
|
+
color: inherit;
|
|
76554
|
+
}
|
|
76555
|
+
|
|
76556
|
+
:where(.theme-scope)
|
|
76557
|
+
:where([data-block='event-registration'])
|
|
76558
|
+
.er-booking-card__cta {
|
|
76559
|
+
flex: 0 0 auto;
|
|
76560
|
+
}
|
|
76561
|
+
|
|
76562
|
+
:where(.theme-scope)
|
|
76563
|
+
:where([data-block='event-registration'])
|
|
76564
|
+
.er-booking-card__dates {
|
|
75560
76565
|
display: flex;
|
|
75561
|
-
flex-
|
|
75562
|
-
|
|
75563
|
-
|
|
75564
|
-
padding-top:
|
|
76566
|
+
flex-wrap: wrap;
|
|
76567
|
+
align-items: center;
|
|
76568
|
+
gap: 0.625rem;
|
|
76569
|
+
padding-top: 1.125rem;
|
|
75565
76570
|
border-top: 1px solid var(--er-border);
|
|
75566
76571
|
}
|
|
75567
76572
|
|
|
75568
76573
|
:where(.theme-scope)
|
|
75569
76574
|
:where([data-block='event-registration'])
|
|
75570
|
-
.er-booking-
|
|
75571
|
-
|
|
75572
|
-
|
|
75573
|
-
|
|
75574
|
-
|
|
75575
|
-
|
|
75576
|
-
|
|
76575
|
+
.er-booking-card__dates-label {
|
|
76576
|
+
margin-right: 0.375rem;
|
|
76577
|
+
font-size: 0.8125rem;
|
|
76578
|
+
font-weight: 800;
|
|
76579
|
+
letter-spacing: 0.08em;
|
|
76580
|
+
text-transform: uppercase;
|
|
76581
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
75577
76582
|
}
|
|
75578
76583
|
|
|
75579
76584
|
:where(.theme-scope)
|
|
75580
76585
|
:where([data-block='event-registration'])
|
|
75581
|
-
.er-booking-
|
|
75582
|
-
min-
|
|
76586
|
+
.er-booking-card__date {
|
|
76587
|
+
min-height: 2.75rem;
|
|
76588
|
+
padding: 0 1rem;
|
|
76589
|
+
border: 1px solid var(--er-border);
|
|
76590
|
+
border-radius: 999px;
|
|
76591
|
+
background: var(--er-control-bg);
|
|
76592
|
+
color: inherit;
|
|
76593
|
+
font: inherit;
|
|
76594
|
+
font-size: 0.875rem;
|
|
76595
|
+
font-weight: 700;
|
|
76596
|
+
cursor: pointer;
|
|
76597
|
+
transition: border-color var(--rb-block-transition) ease;
|
|
75583
76598
|
}
|
|
75584
76599
|
|
|
75585
76600
|
:where(.theme-scope)
|
|
75586
76601
|
:where([data-block='event-registration'])
|
|
75587
|
-
.er-booking-
|
|
75588
|
-
|
|
76602
|
+
.er-booking-card__date:hover {
|
|
76603
|
+
border-color: rgb(var(--tb-primary));
|
|
76604
|
+
}
|
|
76605
|
+
|
|
76606
|
+
:where(.theme-scope)
|
|
76607
|
+
:where([data-block='event-registration'])
|
|
76608
|
+
.er-booking-card__date[data-full] {
|
|
76609
|
+
border-style: dashed;
|
|
76610
|
+
background: transparent;
|
|
76611
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
75589
76612
|
}
|
|
75590
76613
|
|
|
75591
|
-
|
|
75592
|
-
:where(
|
|
76614
|
+
:where(.theme-scope)
|
|
76615
|
+
:where([data-block='event-registration'])
|
|
76616
|
+
.er-booking-card__more {
|
|
76617
|
+
font-size: 0.875rem;
|
|
76618
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
76619
|
+
}
|
|
76620
|
+
|
|
76621
|
+
/* Booking bar: fixed to the bottom once the visitor is past the first screen.
|
|
76622
|
+
It stays mounted and slides: the card pushes it down in step as it rises
|
|
76623
|
+
from the bottom of the screen (--er-bar-push, set per frame), and it slides
|
|
76624
|
+
back up when the visitor scrolls past the card (issue 1581). */
|
|
76625
|
+
:where(.theme-scope)
|
|
76626
|
+
:where([data-block='event-registration'])
|
|
76627
|
+
.er-booking-bar {
|
|
75593
76628
|
position: fixed;
|
|
75594
76629
|
left: 0;
|
|
75595
76630
|
right: 0;
|
|
75596
76631
|
bottom: 0;
|
|
75597
76632
|
z-index: 12000;
|
|
75598
|
-
padding: 0.
|
|
75599
|
-
max(0.
|
|
76633
|
+
padding: 0.625rem max(1rem, env(safe-area-inset-right))
|
|
76634
|
+
max(0.625rem, env(safe-area-inset-bottom))
|
|
75600
76635
|
max(1rem, env(safe-area-inset-left));
|
|
75601
|
-
background: rgb(var(--tb-
|
|
76636
|
+
background: rgb(var(--tb-surface));
|
|
75602
76637
|
border-top: 1px solid var(--er-border);
|
|
75603
|
-
box-shadow: 0 -
|
|
76638
|
+
box-shadow: 0 -8px 28px rgb(var(--tb-shadow) / 0.14);
|
|
76639
|
+
/* Set per frame on the element while the card pushes the bar off. */
|
|
76640
|
+
--er-bar-push: 0px;
|
|
76641
|
+
transform: translateY(var(--er-bar-push));
|
|
76642
|
+
transition:
|
|
76643
|
+
transform 220ms ease,
|
|
76644
|
+
visibility 0s linear 0s;
|
|
76645
|
+
/* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
|
|
76646
|
+
}
|
|
76647
|
+
|
|
76648
|
+
:where(.theme-scope)
|
|
76649
|
+
:where([data-block='event-registration'])
|
|
76650
|
+
.er-booking-bar[data-state='hidden'] {
|
|
76651
|
+
transform: translateY(calc(100% + 1.75rem));
|
|
76652
|
+
visibility: hidden;
|
|
76653
|
+
transition:
|
|
76654
|
+
transform 220ms ease,
|
|
76655
|
+
visibility 0s linear 220ms;
|
|
76656
|
+
}
|
|
76657
|
+
|
|
76658
|
+
:where(.theme-scope)
|
|
76659
|
+
:where([data-block='event-registration'])
|
|
76660
|
+
.er-booking-bar[data-pushing='true'] {
|
|
76661
|
+
/* Following the card frame by frame: no easing to lag behind. */
|
|
76662
|
+
transition: none;
|
|
76663
|
+
}
|
|
76664
|
+
|
|
76665
|
+
@media (prefers-reduced-motion: reduce) {
|
|
76666
|
+
:where(.theme-scope)
|
|
76667
|
+
:where([data-block='event-registration'])
|
|
76668
|
+
.er-booking-bar {
|
|
76669
|
+
transform: none;
|
|
76670
|
+
transition:
|
|
76671
|
+
opacity 150ms ease,
|
|
76672
|
+
visibility 0s linear 0s;
|
|
76673
|
+
}
|
|
76674
|
+
|
|
76675
|
+
:where(.theme-scope)
|
|
76676
|
+
:where([data-block='event-registration'])
|
|
76677
|
+
.er-booking-bar[data-state='hidden'] {
|
|
76678
|
+
transform: none;
|
|
76679
|
+
opacity: 0;
|
|
76680
|
+
transition:
|
|
76681
|
+
opacity 150ms ease,
|
|
76682
|
+
visibility 0s linear 150ms;
|
|
76683
|
+
}
|
|
76684
|
+
|
|
75604
76685
|
}
|
|
75605
76686
|
|
|
75606
76687
|
:where(.theme-scope)
|
|
@@ -75608,27 +76689,28 @@ const containerResponsiveThemeCss = `/*
|
|
|
75608
76689
|
.er-booking-bar__inner {
|
|
75609
76690
|
display: flex;
|
|
75610
76691
|
align-items: center;
|
|
75611
|
-
|
|
75612
|
-
gap: 1rem;
|
|
76692
|
+
gap: 0.75rem 1.5rem;
|
|
75613
76693
|
width: 100%;
|
|
75614
|
-
max-width:
|
|
76694
|
+
max-width: 77rem;
|
|
76695
|
+
min-height: 2.75rem;
|
|
75615
76696
|
margin-inline: auto;
|
|
75616
76697
|
}
|
|
75617
76698
|
|
|
75618
76699
|
:where(.theme-scope)
|
|
75619
76700
|
:where([data-block='event-registration'])
|
|
75620
76701
|
.er-booking-bar__info {
|
|
76702
|
+
flex: 1 1 auto;
|
|
75621
76703
|
display: flex;
|
|
75622
|
-
|
|
75623
|
-
gap: 0.
|
|
76704
|
+
align-items: center;
|
|
76705
|
+
gap: 0.25rem 0.875rem;
|
|
75624
76706
|
min-width: 0;
|
|
75625
76707
|
}
|
|
75626
76708
|
|
|
75627
76709
|
:where(.theme-scope)
|
|
75628
76710
|
:where([data-block='event-registration'])
|
|
75629
76711
|
.er-booking-bar__title {
|
|
75630
|
-
font-
|
|
75631
|
-
font-
|
|
76712
|
+
font-family: var(--font-heading, inherit);
|
|
76713
|
+
font-size: 1.25rem;
|
|
75632
76714
|
line-height: 1.2;
|
|
75633
76715
|
white-space: nowrap;
|
|
75634
76716
|
overflow: hidden;
|
|
@@ -75638,18 +76720,202 @@ const containerResponsiveThemeCss = `/*
|
|
|
75638
76720
|
:where(.theme-scope)
|
|
75639
76721
|
:where([data-block='event-registration'])
|
|
75640
76722
|
.er-booking-bar__meta {
|
|
75641
|
-
|
|
75642
|
-
|
|
75643
|
-
|
|
76723
|
+
display: block;
|
|
76724
|
+
min-width: 0;
|
|
76725
|
+
font-size: 0.9375rem;
|
|
76726
|
+
line-height: 1.3;
|
|
76727
|
+
color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.75));
|
|
75644
76728
|
white-space: nowrap;
|
|
75645
76729
|
overflow: hidden;
|
|
75646
76730
|
text-overflow: ellipsis;
|
|
75647
76731
|
}
|
|
75648
76732
|
|
|
76733
|
+
/* Facts are set apart by a thin muted rule rather than a dot (issue 1581) */
|
|
76734
|
+
:where(.theme-scope)
|
|
76735
|
+
:where([data-block='event-registration'])
|
|
76736
|
+
.er-booking-bar__divider {
|
|
76737
|
+
display: inline-block;
|
|
76738
|
+
width: 0;
|
|
76739
|
+
height: 0.875em;
|
|
76740
|
+
margin-inline: 0.75rem;
|
|
76741
|
+
border-left: 1px solid var(--er-border);
|
|
76742
|
+
vertical-align: -0.0625em;
|
|
76743
|
+
}
|
|
76744
|
+
|
|
76745
|
+
:where(.theme-scope)
|
|
76746
|
+
:where([data-block='event-registration'])
|
|
76747
|
+
.er-booking-bar__fact--price {
|
|
76748
|
+
font-weight: 600;
|
|
76749
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
76750
|
+
}
|
|
76751
|
+
|
|
76752
|
+
:where(.theme-scope)
|
|
76753
|
+
:where([data-block='event-registration'])
|
|
76754
|
+
.er-booking-bar[data-entry='inProgress'] .er-booking-bar__meta {
|
|
76755
|
+
font-weight: 600;
|
|
76756
|
+
color: rgb(var(--tb-primary));
|
|
76757
|
+
}
|
|
76758
|
+
|
|
76759
|
+
:where(.theme-scope)
|
|
76760
|
+
:where([data-block='event-registration'])
|
|
76761
|
+
.er-booking-bar__progress {
|
|
76762
|
+
flex: 0 0 7.5rem;
|
|
76763
|
+
height: 4px;
|
|
76764
|
+
border-radius: 4px;
|
|
76765
|
+
background: rgb(var(--tb-text) / 0.12);
|
|
76766
|
+
overflow: hidden;
|
|
76767
|
+
}
|
|
76768
|
+
|
|
76769
|
+
:where(.theme-scope)
|
|
76770
|
+
:where([data-block='event-registration'])
|
|
76771
|
+
.er-booking-bar__progress-fill {
|
|
76772
|
+
display: block;
|
|
76773
|
+
height: 100%;
|
|
76774
|
+
border-radius: 4px;
|
|
76775
|
+
background: rgb(var(--tb-primary));
|
|
76776
|
+
}
|
|
76777
|
+
|
|
75649
76778
|
:where(.theme-scope)
|
|
75650
76779
|
:where([data-block='event-registration'])
|
|
75651
76780
|
.er-booking-bar__cta {
|
|
75652
76781
|
flex: 0 0 auto;
|
|
76782
|
+
white-space: nowrap;
|
|
76783
|
+
}
|
|
76784
|
+
|
|
76785
|
+
/* Booked or waitlisted: one quiet status line; the whole bar leads back to the card */
|
|
76786
|
+
:where(.theme-scope)
|
|
76787
|
+
:where([data-block='event-registration'])
|
|
76788
|
+
.er-booking-bar__status {
|
|
76789
|
+
display: flex;
|
|
76790
|
+
align-items: center;
|
|
76791
|
+
gap: 0.625rem;
|
|
76792
|
+
width: 100%;
|
|
76793
|
+
min-width: 0;
|
|
76794
|
+
min-height: 2.75rem;
|
|
76795
|
+
padding: 0;
|
|
76796
|
+
border: 0;
|
|
76797
|
+
background: transparent;
|
|
76798
|
+
color: inherit;
|
|
76799
|
+
font: inherit;
|
|
76800
|
+
font-size: 0.9375rem;
|
|
76801
|
+
line-height: 1.3;
|
|
76802
|
+
text-align: start;
|
|
76803
|
+
cursor: pointer;
|
|
76804
|
+
}
|
|
76805
|
+
|
|
76806
|
+
:where(.theme-scope)
|
|
76807
|
+
:where([data-block='event-registration'])
|
|
76808
|
+
.er-booking-bar__status:focus-visible {
|
|
76809
|
+
outline: 2px solid rgb(var(--tb-primary));
|
|
76810
|
+
outline-offset: 4px;
|
|
76811
|
+
border-radius: 4px;
|
|
76812
|
+
}
|
|
76813
|
+
|
|
76814
|
+
:where(.theme-scope)
|
|
76815
|
+
:where([data-block='event-registration'])
|
|
76816
|
+
.er-booking-bar__check {
|
|
76817
|
+
flex: 0 0 auto;
|
|
76818
|
+
display: inline-flex;
|
|
76819
|
+
align-items: center;
|
|
76820
|
+
justify-content: center;
|
|
76821
|
+
width: 1.375rem;
|
|
76822
|
+
height: 1.375rem;
|
|
76823
|
+
border-radius: 999px;
|
|
76824
|
+
background: rgb(var(--tb-primary));
|
|
76825
|
+
color: rgb(var(--tb-onPrimary));
|
|
76826
|
+
}
|
|
76827
|
+
|
|
76828
|
+
:where(.theme-scope)
|
|
76829
|
+
:where([data-block='event-registration'])
|
|
76830
|
+
.er-booking-bar__status-text {
|
|
76831
|
+
display: flex;
|
|
76832
|
+
align-items: center;
|
|
76833
|
+
min-width: 0;
|
|
76834
|
+
white-space: nowrap;
|
|
76835
|
+
}
|
|
76836
|
+
|
|
76837
|
+
:where(.theme-scope)
|
|
76838
|
+
:where([data-block='event-registration'])
|
|
76839
|
+
.er-booking-bar__status-title {
|
|
76840
|
+
flex: 0 0 auto;
|
|
76841
|
+
font-weight: 700;
|
|
76842
|
+
color: var(--rb-surface-text-color, rgb(var(--tb-text)));
|
|
76843
|
+
}
|
|
76844
|
+
|
|
76845
|
+
@container rb-site (max-width: 639px) {
|
|
76846
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
76847
|
+
/* Phones: the title or status on the first line, the facts smaller and
|
|
76848
|
+
quieter below it, beside a compact button (issue 1581). */
|
|
76849
|
+
:where(.theme-scope:is(*, :scope))
|
|
76850
|
+
:where([data-block='event-registration'])
|
|
76851
|
+
.er-booking-bar__info {
|
|
76852
|
+
flex-direction: column;
|
|
76853
|
+
align-items: flex-start;
|
|
76854
|
+
gap: 0.125rem;
|
|
76855
|
+
}
|
|
76856
|
+
|
|
76857
|
+
:where(.theme-scope:is(*, :scope))
|
|
76858
|
+
:where([data-block='event-registration'])
|
|
76859
|
+
.er-booking-bar__title {
|
|
76860
|
+
max-width: 100%;
|
|
76861
|
+
font-family: inherit;
|
|
76862
|
+
font-size: 0.9375rem;
|
|
76863
|
+
font-weight: 700;
|
|
76864
|
+
line-height: 1.25;
|
|
76865
|
+
}
|
|
76866
|
+
|
|
76867
|
+
:where(.theme-scope:is(*, :scope))
|
|
76868
|
+
:where([data-block='event-registration'])
|
|
76869
|
+
.er-booking-bar__meta {
|
|
76870
|
+
max-width: 100%;
|
|
76871
|
+
font-size: 0.8125rem;
|
|
76872
|
+
}
|
|
76873
|
+
|
|
76874
|
+
:where(.theme-scope:is(*, :scope))
|
|
76875
|
+
:where([data-block='event-registration'])
|
|
76876
|
+
.er-booking-bar__divider {
|
|
76877
|
+
margin-inline: 0.5rem;
|
|
76878
|
+
}
|
|
76879
|
+
|
|
76880
|
+
:where(.theme-scope:is(*, :scope))
|
|
76881
|
+
:where([data-block='event-registration'])
|
|
76882
|
+
.er-booking-bar__progress {
|
|
76883
|
+
flex-basis: auto;
|
|
76884
|
+
width: 6rem;
|
|
76885
|
+
}
|
|
76886
|
+
|
|
76887
|
+
:where(.theme-scope:is(*, :scope))
|
|
76888
|
+
:where([data-block='event-registration'])
|
|
76889
|
+
.er-booking-bar__status-text {
|
|
76890
|
+
flex-direction: column;
|
|
76891
|
+
align-items: flex-start;
|
|
76892
|
+
gap: 0.125rem;
|
|
76893
|
+
}
|
|
76894
|
+
|
|
76895
|
+
:where(.theme-scope:is(*, :scope))
|
|
76896
|
+
:where([data-block='event-registration'])
|
|
76897
|
+
.er-booking-overlay__header {
|
|
76898
|
+
row-gap: 0.625rem;
|
|
76899
|
+
padding: 0.875rem 1rem 0.75rem;
|
|
76900
|
+
}
|
|
76901
|
+
|
|
76902
|
+
/* The status and its facts are on separate lines: no rule between them */
|
|
76903
|
+
:where(.theme-scope:is(*, :scope))
|
|
76904
|
+
:where([data-block='event-registration'])
|
|
76905
|
+
.er-booking-bar__status-text > .er-booking-bar__divider {
|
|
76906
|
+
display: none;
|
|
76907
|
+
}
|
|
76908
|
+
|
|
76909
|
+
:where(.theme-scope:is(*, :scope))
|
|
76910
|
+
:where([data-block='event-registration'])
|
|
76911
|
+
.er-booking-bar
|
|
76912
|
+
.er-booking-bar__inner
|
|
76913
|
+
> .er-booking-bar__cta {
|
|
76914
|
+
min-height: 2.5rem;
|
|
76915
|
+
padding: 0.5rem 1rem;
|
|
76916
|
+
font-size: 0.875rem;
|
|
76917
|
+
}
|
|
76918
|
+
}
|
|
75653
76919
|
}
|
|
75654
76920
|
|
|
75655
76921
|
:where(.theme-scope)
|
|
@@ -75676,7 +76942,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
75676
76942
|
height: 100dvh;
|
|
75677
76943
|
min-height: 0;
|
|
75678
76944
|
overflow: hidden;
|
|
75679
|
-
|
|
76945
|
+
/* Surface, like the card, the bar and the system page's column, and what
|
|
76946
|
+
the embedded Stripe checkout is branded with (checkoutBranding.ts). */
|
|
76947
|
+
background: rgb(var(--tb-surface));
|
|
75680
76948
|
/* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
|
|
75681
76949
|
}
|
|
75682
76950
|
|
|
@@ -75686,36 +76954,70 @@ const containerResponsiveThemeCss = `/*
|
|
|
75686
76954
|
flex: 0 0 auto;
|
|
75687
76955
|
z-index: 2;
|
|
75688
76956
|
display: flex;
|
|
75689
|
-
|
|
76957
|
+
flex-wrap: wrap;
|
|
76958
|
+
align-items: flex-start;
|
|
75690
76959
|
justify-content: space-between;
|
|
75691
|
-
gap: 1rem;
|
|
75692
|
-
padding: 1rem;
|
|
75693
|
-
background: rgb(var(--tb-
|
|
76960
|
+
gap: 0.875rem 1rem;
|
|
76961
|
+
padding: 1.125rem 1.25rem 1rem;
|
|
76962
|
+
background: rgb(var(--tb-surface));
|
|
75694
76963
|
border-bottom: 1px solid var(--er-border);
|
|
75695
76964
|
}
|
|
75696
76965
|
|
|
76966
|
+
:where(.theme-scope)
|
|
76967
|
+
:where([data-block='event-registration'])
|
|
76968
|
+
.er-booking-overlay__progress {
|
|
76969
|
+
/* Pinned under the title, so the step stays in view while the step scrolls
|
|
76970
|
+
(issue 1581). It takes the header's full width, on its own row. */
|
|
76971
|
+
flex: 1 0 100%;
|
|
76972
|
+
}
|
|
76973
|
+
|
|
76974
|
+
:where(.theme-scope)
|
|
76975
|
+
:where([data-block='event-registration'])
|
|
76976
|
+
.er-booking-overlay__progress
|
|
76977
|
+
.rb-progress {
|
|
76978
|
+
margin-bottom: 0;
|
|
76979
|
+
}
|
|
76980
|
+
|
|
76981
|
+
:where(.theme-scope)
|
|
76982
|
+
:where([data-block='event-registration'])
|
|
76983
|
+
.er-booking-overlay__heading {
|
|
76984
|
+
display: flex;
|
|
76985
|
+
flex-direction: column;
|
|
76986
|
+
gap: 0.25rem;
|
|
76987
|
+
min-width: 0;
|
|
76988
|
+
}
|
|
76989
|
+
|
|
75697
76990
|
:where(.theme-scope)
|
|
75698
76991
|
:where([data-block='event-registration'])
|
|
75699
76992
|
.er-booking-overlay__title {
|
|
75700
76993
|
margin: 0;
|
|
75701
|
-
font-
|
|
75702
|
-
|
|
75703
|
-
|
|
76994
|
+
font-family: var(--font-heading, inherit);
|
|
76995
|
+
font-size: 1.5rem;
|
|
76996
|
+
line-height: 1.15;
|
|
76997
|
+
}
|
|
76998
|
+
|
|
76999
|
+
:where(.theme-scope)
|
|
77000
|
+
:where([data-block='event-registration'])
|
|
77001
|
+
.er-booking-overlay__subtitle {
|
|
77002
|
+
margin: 0;
|
|
77003
|
+
font-size: 0.875rem;
|
|
77004
|
+
line-height: 1.4;
|
|
77005
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
75704
77006
|
}
|
|
75705
77007
|
|
|
75706
77008
|
:where(.theme-scope)
|
|
75707
77009
|
:where([data-block='event-registration'])
|
|
75708
77010
|
.er-booking-overlay__close {
|
|
75709
|
-
|
|
75710
|
-
|
|
77011
|
+
flex: 0 0 auto;
|
|
77012
|
+
width: 2.75rem;
|
|
77013
|
+
height: 2.75rem;
|
|
75711
77014
|
display: inline-flex;
|
|
75712
77015
|
align-items: center;
|
|
75713
77016
|
justify-content: center;
|
|
75714
77017
|
border: 1px solid var(--er-border);
|
|
75715
77018
|
border-radius: 999px;
|
|
75716
77019
|
background: transparent;
|
|
75717
|
-
color:
|
|
75718
|
-
font-size: 1.25rem;
|
|
77020
|
+
color: inherit;
|
|
75719
77021
|
line-height: 1;
|
|
75720
77022
|
cursor: pointer;
|
|
75721
77023
|
}
|
|
@@ -75754,7 +77056,71 @@ const containerResponsiveThemeCss = `/*
|
|
|
75754
77056
|
.er-payment-layout-main {
|
|
75755
77057
|
min-height: 0;
|
|
75756
77058
|
overflow: auto;
|
|
75757
|
-
padding:
|
|
77059
|
+
padding: 1.25rem;
|
|
77060
|
+
}
|
|
77061
|
+
|
|
77062
|
+
/* Processing, confirmation and error take the whole panel (issue 1581) */
|
|
77063
|
+
:where(.theme-scope)
|
|
77064
|
+
:where([data-block='event-registration'])
|
|
77065
|
+
.er-container--overlay
|
|
77066
|
+
.er-whole-screen {
|
|
77067
|
+
flex: 1 1 auto;
|
|
77068
|
+
display: flex;
|
|
77069
|
+
flex-direction: column;
|
|
77070
|
+
min-height: 0;
|
|
77071
|
+
}
|
|
77072
|
+
|
|
77073
|
+
:where(.theme-scope)
|
|
77074
|
+
:where([data-block='event-registration'])
|
|
77075
|
+
.er-container--overlay
|
|
77076
|
+
.er-whole-screen__body {
|
|
77077
|
+
flex: 1 1 auto;
|
|
77078
|
+
min-height: 0;
|
|
77079
|
+
overflow: auto;
|
|
77080
|
+
padding: 1.5rem 1.25rem;
|
|
77081
|
+
}
|
|
77082
|
+
|
|
77083
|
+
/* The confirmation's one action sits where the steps' Continue does: pinned
|
|
77084
|
+
and full width in the panel, flowing under the content in the aside. */
|
|
77085
|
+
:where(.theme-scope)
|
|
77086
|
+
:where([data-block='event-registration'])
|
|
77087
|
+
.er-whole-screen__footer {
|
|
77088
|
+
margin-top: 1.5rem;
|
|
77089
|
+
}
|
|
77090
|
+
|
|
77091
|
+
:where(.theme-scope)
|
|
77092
|
+
:where([data-block='event-registration'])
|
|
77093
|
+
.er-container--overlay
|
|
77094
|
+
.er-whole-screen__footer {
|
|
77095
|
+
margin-top: 0;
|
|
77096
|
+
}
|
|
77097
|
+
|
|
77098
|
+
:where(.theme-scope)
|
|
77099
|
+
:where([data-block='event-registration'])
|
|
77100
|
+
.er-container--overlay
|
|
77101
|
+
.er-whole-screen__footer
|
|
77102
|
+
.er-whole-screen__action {
|
|
77103
|
+
width: 100%;
|
|
77104
|
+
justify-content: center;
|
|
77105
|
+
}
|
|
77106
|
+
|
|
77107
|
+
/* The header already names the event and its date, so the footer summary
|
|
77108
|
+
drops its title and schedule; the discount keeps just its name. */
|
|
77109
|
+
:where(.theme-scope)
|
|
77110
|
+
:where([data-block='event-registration'])
|
|
77111
|
+
.er-container--overlay
|
|
77112
|
+
:is(.er-summary-bar-event, .er-summary-bar-schedule, .er-summary-bar-discount-detail) {
|
|
77113
|
+
display: none;
|
|
77114
|
+
}
|
|
77115
|
+
|
|
77116
|
+
/* On the date step the chosen date is the news, so it stays. */
|
|
77117
|
+
:where(.theme-scope)
|
|
77118
|
+
:where([data-block='event-registration'])
|
|
77119
|
+
.er-container--overlay
|
|
77120
|
+
.er-summary-bar[data-step='select-event']
|
|
77121
|
+
.er-summary-bar-schedule {
|
|
77122
|
+
display: inline;
|
|
77123
|
+
color: inherit;
|
|
75758
77124
|
}
|
|
75759
77125
|
|
|
75760
77126
|
:where(.theme-scope)
|
|
@@ -75764,9 +77130,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
75764
77130
|
position: relative;
|
|
75765
77131
|
z-index: 3;
|
|
75766
77132
|
padding: 0.875rem 1rem max(0.875rem, env(safe-area-inset-bottom));
|
|
75767
|
-
background: rgb(var(--tb-
|
|
77133
|
+
background: rgb(var(--tb-surface));
|
|
75768
77134
|
border-top: 1px solid var(--er-border);
|
|
75769
|
-
box-shadow: 0 -12px 26px
|
|
77135
|
+
box-shadow: 0 -12px 26px rgb(var(--tb-shadow) / 0.12);
|
|
75770
77136
|
}
|
|
75771
77137
|
|
|
75772
77138
|
:where(.theme-scope)
|
|
@@ -75789,14 +77155,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
75789
77155
|
.er-booking-overlay__panel {
|
|
75790
77156
|
width: min(32rem, 100vw);
|
|
75791
77157
|
min-height: 100%;
|
|
75792
|
-
box-shadow: -16px 0 40px
|
|
77158
|
+
box-shadow: -16px 0 40px rgb(var(--tb-shadow) / 0.22);
|
|
75793
77159
|
}
|
|
75794
77160
|
|
|
75795
77161
|
:where(.theme-scope:is(*, :scope))
|
|
75796
77162
|
:where([data-block='event-registration'])
|
|
75797
77163
|
.er-container--overlay
|
|
75798
77164
|
.er-payment-layout-main {
|
|
75799
|
-
padding: 1.
|
|
77165
|
+
padding: 1.5rem;
|
|
75800
77166
|
}
|
|
75801
77167
|
|
|
75802
77168
|
:where(.theme-scope:is(*, :scope))
|
|
@@ -75808,6 +77174,125 @@ const containerResponsiveThemeCss = `/*
|
|
|
75808
77174
|
}
|
|
75809
77175
|
}
|
|
75810
77176
|
|
|
77177
|
+
/* The system event page hosts the same panel in its sticky column (issue 1581):
|
|
77178
|
+
from 1024px the steps scroll inside it and the footer stays pinned. */
|
|
77179
|
+
@container rb-site (min-width: 1024px) {
|
|
77180
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
77181
|
+
:where(.theme-scope:is(*, :scope))
|
|
77182
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77183
|
+
.er-container {
|
|
77184
|
+
display: flex;
|
|
77185
|
+
max-height: calc(100dvh - 9rem);
|
|
77186
|
+
min-height: 0;
|
|
77187
|
+
}
|
|
77188
|
+
|
|
77189
|
+
:where(.theme-scope:is(*, :scope))
|
|
77190
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77191
|
+
.er-payment-layout {
|
|
77192
|
+
flex: 1 1 auto;
|
|
77193
|
+
min-height: 0;
|
|
77194
|
+
gap: 0;
|
|
77195
|
+
grid-template-rows: minmax(0, 1fr) auto;
|
|
77196
|
+
grid-template-areas:
|
|
77197
|
+
'main'
|
|
77198
|
+
'footer';
|
|
77199
|
+
}
|
|
77200
|
+
|
|
77201
|
+
:where(.theme-scope:is(*, :scope))
|
|
77202
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77203
|
+
.er-payment-layout-main {
|
|
77204
|
+
min-height: 0;
|
|
77205
|
+
overflow: auto;
|
|
77206
|
+
padding-bottom: 1rem;
|
|
77207
|
+
}
|
|
77208
|
+
|
|
77209
|
+
:where(.theme-scope:is(*, :scope))
|
|
77210
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77211
|
+
.er-payment-layout-footer {
|
|
77212
|
+
padding-top: 0.875rem;
|
|
77213
|
+
border-top: 1px solid var(--er-border);
|
|
77214
|
+
}
|
|
77215
|
+
|
|
77216
|
+
:where(.theme-scope:is(*, :scope))
|
|
77217
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77218
|
+
.er-whole-screen {
|
|
77219
|
+
flex: 1 1 auto;
|
|
77220
|
+
display: flex;
|
|
77221
|
+
flex-direction: column;
|
|
77222
|
+
min-height: 0;
|
|
77223
|
+
}
|
|
77224
|
+
|
|
77225
|
+
:where(.theme-scope:is(*, :scope))
|
|
77226
|
+
:where([data-block='event-registration'].event-registration--embedded)
|
|
77227
|
+
.er-whole-screen__body {
|
|
77228
|
+
flex: 1 1 auto;
|
|
77229
|
+
min-height: 0;
|
|
77230
|
+
overflow: auto;
|
|
77231
|
+
}
|
|
77232
|
+
}
|
|
77233
|
+
}
|
|
77234
|
+
|
|
77235
|
+
/* Confirmation summary: only the facts known for certain */
|
|
77236
|
+
:where(.theme-scope)
|
|
77237
|
+
:where([data-block='event-registration'])
|
|
77238
|
+
.er-confirmation-summary {
|
|
77239
|
+
display: flex;
|
|
77240
|
+
flex-direction: column;
|
|
77241
|
+
gap: 0.75rem;
|
|
77242
|
+
margin: 1.5rem 0 0;
|
|
77243
|
+
padding: 1.125rem 1.25rem;
|
|
77244
|
+
border: 1px solid var(--er-border);
|
|
77245
|
+
border-radius: var(--rb-block-radius);
|
|
77246
|
+
font-size: 0.9375rem;
|
|
77247
|
+
}
|
|
77248
|
+
|
|
77249
|
+
:where(.theme-scope)
|
|
77250
|
+
:where([data-block='event-registration'])
|
|
77251
|
+
.er-confirmation-summary__row {
|
|
77252
|
+
display: flex;
|
|
77253
|
+
justify-content: space-between;
|
|
77254
|
+
gap: 1rem;
|
|
77255
|
+
}
|
|
77256
|
+
|
|
77257
|
+
:where(.theme-scope)
|
|
77258
|
+
:where([data-block='event-registration'])
|
|
77259
|
+
.er-confirmation-summary__row dt {
|
|
77260
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
77261
|
+
}
|
|
77262
|
+
|
|
77263
|
+
:where(.theme-scope)
|
|
77264
|
+
:where([data-block='event-registration'])
|
|
77265
|
+
.er-confirmation-summary__row dd {
|
|
77266
|
+
margin: 0;
|
|
77267
|
+
font-weight: 700;
|
|
77268
|
+
text-align: end;
|
|
77269
|
+
}
|
|
77270
|
+
|
|
77271
|
+
/* Why passes and memberships are greyed out for more than one place */
|
|
77272
|
+
:where(.theme-scope)
|
|
77273
|
+
:where([data-block='event-registration'])
|
|
77274
|
+
.er-entitlement-note {
|
|
77275
|
+
margin: 0;
|
|
77276
|
+
padding-top: 0.75rem;
|
|
77277
|
+
border-top: 1px solid var(--er-border);
|
|
77278
|
+
font-size: 0.875rem;
|
|
77279
|
+
color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
|
|
77280
|
+
}
|
|
77281
|
+
|
|
77282
|
+
:where(.theme-scope)
|
|
77283
|
+
:where([data-block='event-registration'])
|
|
77284
|
+
.er-entitlement-note__action {
|
|
77285
|
+
padding: 0;
|
|
77286
|
+
border: 0;
|
|
77287
|
+
background: none;
|
|
77288
|
+
color: rgb(var(--tb-primary));
|
|
77289
|
+
font: inherit;
|
|
77290
|
+
font-weight: 700;
|
|
77291
|
+
text-decoration: underline;
|
|
77292
|
+
text-underline-offset: 3px;
|
|
77293
|
+
cursor: pointer;
|
|
77294
|
+
}
|
|
77295
|
+
|
|
75811
77296
|
/* Magic Link Form */
|
|
75812
77297
|
:where(.theme-scope)
|
|
75813
77298
|
:where([data-block='event-registration'])
|
|
@@ -75883,8 +77368,8 @@ const containerResponsiveThemeCss = `/*
|
|
|
75883
77368
|
align-items: flex-start;
|
|
75884
77369
|
gap: 0.75rem;
|
|
75885
77370
|
padding: 1rem 1.25rem;
|
|
75886
|
-
background:
|
|
75887
|
-
border: 1px solid
|
|
77371
|
+
background: rgb(var(--tb-primary-100) / 0.4);
|
|
77372
|
+
border: 1px solid rgb(var(--tb-primary-300) / 0.4);
|
|
75888
77373
|
border-radius: var(--rb-block-radius);
|
|
75889
77374
|
}
|
|
75890
77375
|
|
|
@@ -75932,201 +77417,6 @@ const containerResponsiveThemeCss = `/*
|
|
|
75932
77417
|
}
|
|
75933
77418
|
|
|
75934
77419
|
/* Selection cards for pass holders */
|
|
75935
|
-
:where(.theme-scope)
|
|
75936
|
-
:where([data-block='event-registration'])
|
|
75937
|
-
.er-booking-mode-cards {
|
|
75938
|
-
display: grid;
|
|
75939
|
-
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
75940
|
-
gap: 1rem;
|
|
75941
|
-
}
|
|
75942
|
-
|
|
75943
|
-
:where(.theme-scope)
|
|
75944
|
-
:where([data-block='event-registration'])
|
|
75945
|
-
.er-booking-mode-card {
|
|
75946
|
-
display: flex;
|
|
75947
|
-
flex-direction: column;
|
|
75948
|
-
align-items: center;
|
|
75949
|
-
gap: 0.5rem;
|
|
75950
|
-
padding: 1.25rem 1rem;
|
|
75951
|
-
border: 2px solid var(--er-payment-border);
|
|
75952
|
-
border-radius: var(--rb-block-radius);
|
|
75953
|
-
background: transparent;
|
|
75954
|
-
cursor: pointer;
|
|
75955
|
-
text-align: center;
|
|
75956
|
-
position: relative;
|
|
75957
|
-
transition:
|
|
75958
|
-
border-color var(--rb-block-transition) ease,
|
|
75959
|
-
background-color var(--rb-block-transition) ease;
|
|
75960
|
-
}
|
|
75961
|
-
|
|
75962
|
-
:where(.theme-scope)
|
|
75963
|
-
:where([data-block='event-registration'])
|
|
75964
|
-
.er-booking-mode-card:hover:not([aria-disabled='true']) {
|
|
75965
|
-
border-color: var(--er-payment-border-hover);
|
|
75966
|
-
}
|
|
75967
|
-
|
|
75968
|
-
:where(.theme-scope)
|
|
75969
|
-
:where([data-block='event-registration'])
|
|
75970
|
-
.er-booking-mode-card--selected {
|
|
75971
|
-
border-color: var(--er-payment-border-selected);
|
|
75972
|
-
background-color: var(--er-payment-bg-selected);
|
|
75973
|
-
}
|
|
75974
|
-
|
|
75975
|
-
:where(.theme-scope)
|
|
75976
|
-
:where([data-block='event-registration'])
|
|
75977
|
-
.er-booking-mode-card--disabled {
|
|
75978
|
-
opacity: 1;
|
|
75979
|
-
cursor: not-allowed;
|
|
75980
|
-
border-color: var(--er-payment-border);
|
|
75981
|
-
background: transparent;
|
|
75982
|
-
}
|
|
75983
|
-
|
|
75984
|
-
:where(.theme-scope)
|
|
75985
|
-
:where([data-block='event-registration'])
|
|
75986
|
-
.er-booking-mode-card--disabled.er-booking-mode-card--selected {
|
|
75987
|
-
border-color: var(--er-payment-border);
|
|
75988
|
-
background: transparent;
|
|
75989
|
-
}
|
|
75990
|
-
|
|
75991
|
-
:where(.theme-scope)
|
|
75992
|
-
:where([data-block='event-registration'])
|
|
75993
|
-
.er-booking-mode-card--disabled
|
|
75994
|
-
> :not(.er-booking-mode-tooltip) {
|
|
75995
|
-
opacity: 0.55;
|
|
75996
|
-
}
|
|
75997
|
-
|
|
75998
|
-
:where(.theme-scope)
|
|
75999
|
-
:where([data-block='event-registration'])
|
|
76000
|
-
.er-booking-mode-card--disabled:hover {
|
|
76001
|
-
border-color: var(--er-payment-border);
|
|
76002
|
-
}
|
|
76003
|
-
|
|
76004
|
-
:where(.theme-scope)
|
|
76005
|
-
:where([data-block='event-registration'])
|
|
76006
|
-
.er-booking-mode-card--disabled
|
|
76007
|
-
.er-booking-mode-card-icon,
|
|
76008
|
-
:where(.theme-scope)
|
|
76009
|
-
:where([data-block='event-registration'])
|
|
76010
|
-
.er-booking-mode-card--disabled
|
|
76011
|
-
.er-booking-mode-card-label {
|
|
76012
|
-
color: var(--er-on-surface-disabled);
|
|
76013
|
-
}
|
|
76014
|
-
|
|
76015
|
-
:where(.theme-scope)
|
|
76016
|
-
:where([data-block='event-registration'])
|
|
76017
|
-
.er-booking-mode-card--disabled
|
|
76018
|
-
.er-booking-mode-card-detail {
|
|
76019
|
-
color: var(--er-on-surface-disabled-detail);
|
|
76020
|
-
}
|
|
76021
|
-
|
|
76022
|
-
:where(.theme-scope)
|
|
76023
|
-
:where([data-block='event-registration'])
|
|
76024
|
-
.er-booking-mode-card-icon {
|
|
76025
|
-
font-size: 1.75rem;
|
|
76026
|
-
line-height: 1;
|
|
76027
|
-
/* SVG icon sizing */
|
|
76028
|
-
display: flex;
|
|
76029
|
-
align-items: center;
|
|
76030
|
-
justify-content: center;
|
|
76031
|
-
}
|
|
76032
|
-
|
|
76033
|
-
:where(.theme-scope)
|
|
76034
|
-
:where([data-block='event-registration'])
|
|
76035
|
-
.er-booking-mode-card-icon
|
|
76036
|
-
svg {
|
|
76037
|
-
width: 24px;
|
|
76038
|
-
height: 24px;
|
|
76039
|
-
color: currentColor;
|
|
76040
|
-
}
|
|
76041
|
-
|
|
76042
|
-
:where(.theme-scope)
|
|
76043
|
-
:where([data-block='event-registration'])
|
|
76044
|
-
.er-booking-mode-card-label {
|
|
76045
|
-
font-weight: 600;
|
|
76046
|
-
font-size: 1rem;
|
|
76047
|
-
line-height: 1.3;
|
|
76048
|
-
}
|
|
76049
|
-
|
|
76050
|
-
:where(.theme-scope)
|
|
76051
|
-
:where([data-block='event-registration'])
|
|
76052
|
-
.er-booking-mode-card-detail {
|
|
76053
|
-
font-size: 0.875rem;
|
|
76054
|
-
color: var(--er-on-surface-subtle);
|
|
76055
|
-
line-height: 1.3;
|
|
76056
|
-
}
|
|
76057
|
-
|
|
76058
|
-
:where(.theme-scope)
|
|
76059
|
-
:where([data-block='event-registration'])
|
|
76060
|
-
.er-booking-mode-card-check {
|
|
76061
|
-
position: absolute;
|
|
76062
|
-
top: 0.5rem;
|
|
76063
|
-
right: 0.5rem;
|
|
76064
|
-
}
|
|
76065
|
-
|
|
76066
|
-
/* Alternative link in booking mode */
|
|
76067
|
-
:where(.theme-scope)
|
|
76068
|
-
:where([data-block='event-registration'])
|
|
76069
|
-
.er-booking-mode-alt {
|
|
76070
|
-
margin-top: 1rem;
|
|
76071
|
-
text-align: center;
|
|
76072
|
-
}
|
|
76073
|
-
|
|
76074
|
-
:where(.theme-scope)
|
|
76075
|
-
:where([data-block='event-registration'])
|
|
76076
|
-
.er-booking-mode-alt-link {
|
|
76077
|
-
background: none;
|
|
76078
|
-
border: none;
|
|
76079
|
-
padding: 0;
|
|
76080
|
-
font-size: 0.9375rem;
|
|
76081
|
-
color: rgb(var(--tb-primary));
|
|
76082
|
-
cursor: pointer;
|
|
76083
|
-
text-decoration: underline;
|
|
76084
|
-
text-underline-offset: 2px;
|
|
76085
|
-
}
|
|
76086
|
-
|
|
76087
|
-
:where(.theme-scope)
|
|
76088
|
-
:where([data-block='event-registration'])
|
|
76089
|
-
.er-booking-mode-alt-link:hover {
|
|
76090
|
-
text-decoration: none;
|
|
76091
|
-
}
|
|
76092
|
-
|
|
76093
|
-
/* Tooltip styling for disabled options */
|
|
76094
|
-
:where(.theme-scope)
|
|
76095
|
-
:where([data-block='event-registration'])
|
|
76096
|
-
.er-booking-mode-card[aria-disabled='true'] {
|
|
76097
|
-
position: relative;
|
|
76098
|
-
}
|
|
76099
|
-
|
|
76100
|
-
/* Tooltip appears on hover for disabled cards */
|
|
76101
|
-
:where(.theme-scope)
|
|
76102
|
-
:where([data-block='event-registration'])
|
|
76103
|
-
.er-booking-mode-tooltip {
|
|
76104
|
-
display: none;
|
|
76105
|
-
position: absolute;
|
|
76106
|
-
bottom: 100%;
|
|
76107
|
-
left: 50%;
|
|
76108
|
-
transform: translateX(-50%);
|
|
76109
|
-
margin-bottom: 0.5rem;
|
|
76110
|
-
padding: 0.5rem 0.75rem;
|
|
76111
|
-
background: rgb(var(--tb-text));
|
|
76112
|
-
color: rgb(var(--tb-background));
|
|
76113
|
-
font-size: 0.8125rem;
|
|
76114
|
-
font-weight: 500;
|
|
76115
|
-
border-radius: calc(var(--rb-block-radius) * 0.5);
|
|
76116
|
-
white-space: normal;
|
|
76117
|
-
max-width: 16rem;
|
|
76118
|
-
line-height: 1.35;
|
|
76119
|
-
text-align: center;
|
|
76120
|
-
box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
|
|
76121
|
-
z-index: 10;
|
|
76122
|
-
}
|
|
76123
|
-
|
|
76124
|
-
:where(.theme-scope)
|
|
76125
|
-
:where([data-block='event-registration'])
|
|
76126
|
-
.er-booking-mode-card--disabled:hover
|
|
76127
|
-
.er-booking-mode-tooltip {
|
|
76128
|
-
display: block;
|
|
76129
|
-
}
|
|
76130
77420
|
|
|
76131
77421
|
/* =============================================================================
|
|
76132
77422
|
* Block: Event Calendar
|
|
@@ -76355,7 +77645,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
76355
77645
|
:where(.theme-scope)
|
|
76356
77646
|
:where([data-block='event-calendar'])
|
|
76357
77647
|
.event-calendar-more:hover {
|
|
76358
|
-
background-color:
|
|
77648
|
+
background-color: rgb(var(--tb-primary) / 0.1);
|
|
76359
77649
|
}
|
|
76360
77650
|
|
|
76361
77651
|
:where(.theme-scope)
|
|
@@ -76429,7 +77719,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
76429
77719
|
:where(.theme-scope)
|
|
76430
77720
|
:where([data-block='event-calendar'])
|
|
76431
77721
|
.event-category-btn:hover:not(:disabled) {
|
|
76432
|
-
border-color:
|
|
77722
|
+
border-color: rgb(var(--tb-primary) / 0.5);
|
|
76433
77723
|
}
|
|
76434
77724
|
|
|
76435
77725
|
:where(.theme-scope)
|
|
@@ -76502,7 +77792,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
76502
77792
|
:where([data-block='event-calendar'])
|
|
76503
77793
|
.event-calendar-view-btn:hover {
|
|
76504
77794
|
opacity: 1;
|
|
76505
|
-
border-color:
|
|
77795
|
+
border-color: rgb(var(--tb-primary) / 0.5);
|
|
76506
77796
|
}
|
|
76507
77797
|
|
|
76508
77798
|
:where(.theme-scope)
|
|
@@ -76619,7 +77909,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
76619
77909
|
:where(.theme-scope)
|
|
76620
77910
|
:where([data-block='event-calendar'])
|
|
76621
77911
|
.event-agenda-card:hover {
|
|
76622
|
-
border-color:
|
|
77912
|
+
border-color: rgb(var(--tb-primary) / 0.5);
|
|
76623
77913
|
background-color: var(--ec-event-bg);
|
|
76624
77914
|
}
|
|
76625
77915
|
|
|
@@ -77068,7 +78358,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
77068
78358
|
border-left-width: 4px;
|
|
77069
78359
|
border-radius: calc(var(--rb-block-radius) / 1.5);
|
|
77070
78360
|
background-color: var(--ec-surface);
|
|
77071
|
-
box-shadow: 0 1px 2px
|
|
78361
|
+
box-shadow: 0 1px 2px rgb(var(--tb-text) / 0.08);
|
|
77072
78362
|
cursor: pointer;
|
|
77073
78363
|
font: inherit;
|
|
77074
78364
|
text-align: left;
|
|
@@ -77082,7 +78372,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
77082
78372
|
:where(.theme-scope)
|
|
77083
78373
|
:where([data-block='event-calendar'])
|
|
77084
78374
|
.event-timetable-event:hover {
|
|
77085
|
-
box-shadow: 0 4px 12px
|
|
78375
|
+
box-shadow: 0 4px 12px rgb(var(--tb-text) / 0.12);
|
|
77086
78376
|
transform: translateY(-1px);
|
|
77087
78377
|
}
|
|
77088
78378
|
|
|
@@ -77234,7 +78524,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
77234
78524
|
* available -> secondary, filling -> accent, waitlist -> muted text. */
|
|
77235
78525
|
--ec-status-available: rgb(var(--tb-secondary));
|
|
77236
78526
|
--ec-status-filling: rgb(var(--tb-accent));
|
|
77237
|
-
--ec-status-waitlist:
|
|
78527
|
+
--ec-status-waitlist: rgb(var(--tb-text) / 0.4);
|
|
77238
78528
|
--event-week-board-cols: 7;
|
|
77239
78529
|
|
|
77240
78530
|
border: 1px solid var(--ec-border);
|
|
@@ -77248,7 +78538,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
77248
78538
|
:where(.theme-scope)
|
|
77249
78539
|
:where([data-block='event-calendar'])
|
|
77250
78540
|
.event-week-board[data-elevated] {
|
|
77251
|
-
box-shadow: 0 14px 34px -24px
|
|
78541
|
+
box-shadow: 0 14px 34px -24px rgb(var(--tb-text) / 0.35);
|
|
77252
78542
|
}
|
|
77253
78543
|
|
|
77254
78544
|
/* Top bar: authored title + week navigation + legend */
|
|
@@ -77521,8 +78811,8 @@ const containerResponsiveThemeCss = `/*
|
|
|
77521
78811
|
:where([data-block='event-calendar'])
|
|
77522
78812
|
.event-week-board-card:hover {
|
|
77523
78813
|
transform: translateY(-2px);
|
|
77524
|
-
box-shadow: 0 6px 16px -8px
|
|
77525
|
-
border-color:
|
|
78814
|
+
box-shadow: 0 6px 16px -8px rgb(var(--tb-text) / 0.28);
|
|
78815
|
+
border-color: rgb(var(--tb-primary) / 0.4);
|
|
77526
78816
|
}
|
|
77527
78817
|
|
|
77528
78818
|
:where(.theme-scope)
|
|
@@ -77565,24 +78855,24 @@ const containerResponsiveThemeCss = `/*
|
|
|
77565
78855
|
* Filling -> amber and waitlist -> muted outline are handled by the
|
|
77566
78856
|
* data-status overrides below. */
|
|
77567
78857
|
border: 1px solid var(--ec-border);
|
|
77568
|
-
background-color:
|
|
77569
|
-
color:
|
|
78858
|
+
background-color: rgb(var(--tb-text) / 0.06);
|
|
78859
|
+
color: rgb(var(--tb-text) / 0.62);
|
|
77570
78860
|
border-color: var(--ec-border);
|
|
77571
78861
|
}
|
|
77572
78862
|
|
|
77573
78863
|
:where(.theme-scope)
|
|
77574
78864
|
:where([data-block='event-calendar'])
|
|
77575
78865
|
.event-week-board-card-pill[data-status='filling'] {
|
|
77576
|
-
background-color:
|
|
78866
|
+
background-color: rgb(var(--tb-accent) / 0.14);
|
|
77577
78867
|
color: var(--ec-status-filling);
|
|
77578
|
-
border-color:
|
|
78868
|
+
border-color: rgb(var(--tb-accent) / 0.32);
|
|
77579
78869
|
}
|
|
77580
78870
|
|
|
77581
78871
|
:where(.theme-scope)
|
|
77582
78872
|
:where([data-block='event-calendar'])
|
|
77583
78873
|
.event-week-board-card-pill[data-status='waitlist'] {
|
|
77584
78874
|
background-color: transparent;
|
|
77585
|
-
color:
|
|
78875
|
+
color: rgb(var(--tb-text) / 0.6);
|
|
77586
78876
|
border-color: var(--ec-border);
|
|
77587
78877
|
}
|
|
77588
78878
|
|
|
@@ -77867,7 +79157,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
77867
79157
|
:where([data-block='event-calendar'])
|
|
77868
79158
|
.ec-modal-close:hover {
|
|
77869
79159
|
opacity: 1;
|
|
77870
|
-
background-color:
|
|
79160
|
+
background-color: rgb(var(--tb-text) / 0.1);
|
|
77871
79161
|
}
|
|
77872
79162
|
|
|
77873
79163
|
:where(.theme-scope)
|
|
@@ -78110,23 +79400,24 @@ const containerResponsiveThemeCss = `/*
|
|
|
78110
79400
|
}
|
|
78111
79401
|
|
|
78112
79402
|
/* State icon color variants (layout from registration-surface.css) */
|
|
79403
|
+
/* Success: a solid primary disc with an on-primary tick (issue 1581) */
|
|
78113
79404
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--success {
|
|
78114
|
-
background:
|
|
78115
|
-
color:
|
|
79405
|
+
background: rgb(var(--tb-primary, 37 99 235));
|
|
79406
|
+
color: rgb(var(--tb-onPrimary, 255 255 255));
|
|
78116
79407
|
}
|
|
78117
79408
|
|
|
78118
79409
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--error {
|
|
78119
|
-
background: var(--ab-error-bg,
|
|
79410
|
+
background: var(--ab-error-bg, rgb(var(--tb-destructive, 220 38 38) / 0.1));
|
|
78120
79411
|
color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
|
|
78121
79412
|
}
|
|
78122
79413
|
|
|
78123
79414
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--info {
|
|
78124
|
-
background: var(--ab-info-bg,
|
|
79415
|
+
background: var(--ab-info-bg, rgb(var(--tb-info, 14 165 233) / 0.1));
|
|
78125
79416
|
color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
|
|
78126
79417
|
}
|
|
78127
79418
|
|
|
78128
79419
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--warning {
|
|
78129
|
-
background: var(--ab-warning-bg,
|
|
79420
|
+
background: var(--ab-warning-bg, rgb(var(--tb-warning, 245 158 11) / 0.1));
|
|
78130
79421
|
color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
|
|
78131
79422
|
}
|
|
78132
79423
|
|
|
@@ -78168,7 +79459,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
78168
79459
|
letter-spacing: 0;
|
|
78169
79460
|
line-height: 1.2;
|
|
78170
79461
|
text-transform: uppercase;
|
|
78171
|
-
color: var(--rb-reg-on-surface-subtle,
|
|
79462
|
+
color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
|
|
78172
79463
|
}
|
|
78173
79464
|
|
|
78174
79465
|
:where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-value {
|
|
@@ -78785,11 +80076,11 @@ const containerResponsiveThemeCss = `/*
|
|
|
78785
80076
|
height: 2.5rem;
|
|
78786
80077
|
width: 2.5rem;
|
|
78787
80078
|
border-radius: 9999px;
|
|
78788
|
-
border: 1px solid
|
|
78789
|
-
background-color:
|
|
80079
|
+
border: 1px solid rgb(var(--tb-border, 229 231 235) / 0.35);
|
|
80080
|
+
background-color: rgb(var(--tb-surface, 248 250 252) / 0.9);
|
|
78790
80081
|
color: rgb(var(--tb-text, 17 24 39));
|
|
78791
|
-
box-shadow: 0 4px 6px -1px
|
|
78792
|
-
0 2px 4px -2px
|
|
80082
|
+
box-shadow: 0 4px 6px -1px rgb(var(--tb-shadow) / 0.1),
|
|
80083
|
+
0 2px 4px -2px rgb(var(--tb-shadow) / 0.1);
|
|
78793
80084
|
cursor: pointer;
|
|
78794
80085
|
transform: translateY(-50%);
|
|
78795
80086
|
transition: background-color 0.2s ease, box-shadow 0.2s ease,
|
|
@@ -78806,8 +80097,8 @@ const containerResponsiveThemeCss = `/*
|
|
|
78806
80097
|
|
|
78807
80098
|
:where(.theme-scope) .carousel-root .carousel-nav-btn:hover {
|
|
78808
80099
|
background-color: rgb(var(--tb-surface, 248 250 252));
|
|
78809
|
-
box-shadow: 0 10px 15px -3px
|
|
78810
|
-
0 4px 6px -4px
|
|
80100
|
+
box-shadow: 0 10px 15px -3px rgb(var(--tb-shadow) / 0.1),
|
|
80101
|
+
0 4px 6px -4px rgb(var(--tb-shadow) / 0.1);
|
|
78811
80102
|
}
|
|
78812
80103
|
|
|
78813
80104
|
:where(.theme-scope) .carousel-root .carousel-nav-btn:disabled {
|
|
@@ -78856,10 +80147,10 @@ const containerResponsiveThemeCss = `/*
|
|
|
78856
80147
|
}
|
|
78857
80148
|
|
|
78858
80149
|
:where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot {
|
|
78859
|
-
background-color:
|
|
80150
|
+
background-color: rgb(var(--tb-surface, 248 250 252) / 0.55);
|
|
78860
80151
|
}
|
|
78861
80152
|
:where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot:hover {
|
|
78862
|
-
background-color:
|
|
80153
|
+
background-color: rgb(var(--tb-surface, 248 250 252) / 0.75);
|
|
78863
80154
|
}
|
|
78864
80155
|
:where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot[data-active="true"] {
|
|
78865
80156
|
background-color: rgb(var(--tb-text, 17 24 39));
|
|
@@ -78875,7 +80166,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
78875
80166
|
}
|
|
78876
80167
|
|
|
78877
80168
|
:where(.theme-scope) .carousel-root .carousel-dot:hover {
|
|
78878
|
-
background-color:
|
|
80169
|
+
background-color: rgb(var(--tb-text, 17 24 39) / 0.3);
|
|
78879
80170
|
}
|
|
78880
80171
|
|
|
78881
80172
|
:where(.theme-scope) .carousel-root .carousel-dot[data-active="true"] {
|
|
@@ -78884,7 +80175,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
78884
80175
|
|
|
78885
80176
|
:where(.theme-scope) .carousel-root .carousel-dot:focus-visible {
|
|
78886
80177
|
outline: none;
|
|
78887
|
-
box-shadow: 0 0 0 3px
|
|
80178
|
+
box-shadow: 0 0 0 3px rgb(var(--tb-primary, 59 130 246) / 0.35);
|
|
78888
80179
|
}
|
|
78889
80180
|
|
|
78890
80181
|
/* =============================================================================
|
|
@@ -78921,7 +80212,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
78921
80212
|
|
|
78922
80213
|
/* Error display */
|
|
78923
80214
|
:where(.theme-scope) .shop__error {
|
|
78924
|
-
background-color:
|
|
80215
|
+
background-color: rgb(var(--tb-destructive) / 0.1);
|
|
78925
80216
|
color: rgb(var(--tb-destructive));
|
|
78926
80217
|
padding: 0.75rem 1rem;
|
|
78927
80218
|
border-radius: var(--shop-control-radius);
|
|
@@ -79193,7 +80484,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
79193
80484
|
|
|
79194
80485
|
/* Modal error */
|
|
79195
80486
|
:where(.theme-scope) .shop__modal-error {
|
|
79196
|
-
background-color:
|
|
80487
|
+
background-color: rgb(var(--tb-destructive) / 0.1);
|
|
79197
80488
|
color: rgb(var(--tb-destructive));
|
|
79198
80489
|
padding: 0.625rem 0.75rem;
|
|
79199
80490
|
border-radius: var(--shop-control-radius);
|
|
@@ -79245,12 +80536,12 @@ const containerResponsiveThemeCss = `/*
|
|
|
79245
80536
|
}
|
|
79246
80537
|
|
|
79247
80538
|
:where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--success {
|
|
79248
|
-
background:
|
|
80539
|
+
background: rgb(var(--tb-success) / 0.12);
|
|
79249
80540
|
color: rgb(var(--tb-success));
|
|
79250
80541
|
}
|
|
79251
80542
|
|
|
79252
80543
|
:where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--warning {
|
|
79253
|
-
background:
|
|
80544
|
+
background: rgb(var(--tb-warning) / 0.12);
|
|
79254
80545
|
color: rgb(var(--tb-warning));
|
|
79255
80546
|
}
|
|
79256
80547
|
|
|
@@ -79752,7 +81043,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
79752
81043
|
|
|
79753
81044
|
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-table thead th {
|
|
79754
81045
|
text-align: left;
|
|
79755
|
-
background:
|
|
81046
|
+
background: rgb(var(--tb-border) / 0.2);
|
|
79756
81047
|
}
|
|
79757
81048
|
|
|
79758
81049
|
:where(.theme-scope)
|
|
@@ -80593,17 +81884,17 @@ const containerResponsiveThemeCss = `/*
|
|
|
80593
81884
|
|
|
80594
81885
|
:where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):focus-visible {
|
|
80595
81886
|
outline: none;
|
|
80596
|
-
box-shadow: 0 0 0 3px
|
|
81887
|
+
box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
|
|
80597
81888
|
}
|
|
80598
81889
|
|
|
80599
81890
|
:where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):hover:not(:disabled) {
|
|
80600
|
-
border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover,
|
|
81891
|
+
border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgb(var(--tb-primary) / 0.5)));
|
|
80601
81892
|
opacity: var(--rb-tile-hover-opacity, var(--rb-event-tile-hover-opacity, var(--rb-tile-opacity, var(--rb-event-tile-opacity, 1))));
|
|
80602
81893
|
}
|
|
80603
81894
|
|
|
80604
81895
|
:where(.theme-scope) :where(.rb-tile--selected, .er-event-card--selected) {
|
|
80605
81896
|
border-color: var(--rb-tile-border-selected, var(--rb-event-tile-border-selected, rgb(var(--tb-primary))));
|
|
80606
|
-
background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected,
|
|
81897
|
+
background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgb(var(--tb-primary) / 0.1)));
|
|
80607
81898
|
}
|
|
80608
81899
|
|
|
80609
81900
|
:where(.theme-scope) :where(.rb-tile--disabled, .er-event-card--disabled) {
|
|
@@ -80917,7 +82208,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
80917
82208
|
|
|
80918
82209
|
:where(.theme-scope) .newsletter-success .fb-success {
|
|
80919
82210
|
padding: 1rem 1.5rem;
|
|
80920
|
-
background-color:
|
|
82211
|
+
background-color: rgb(var(--tb-success, 34 197 94) / 0.1);
|
|
80921
82212
|
border-radius: var(--radius-md, 0.5rem);
|
|
80922
82213
|
color: rgb(var(--tb-text));
|
|
80923
82214
|
}
|
|
@@ -81189,7 +82480,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
81189
82480
|
* context (theme-core/src/blocks/opaquePanels.ts) hold on any section. */
|
|
81190
82481
|
:where(.theme-scope) .feedback-callout {
|
|
81191
82482
|
background: rgb(var(--tb-surface, 248 250 252));
|
|
81192
|
-
border-color:
|
|
82483
|
+
border-color: rgb(var(--tb-border, 226 232 240) / 0.72);
|
|
81193
82484
|
--rb-feedback-callout-bg-opacity: 0.1;
|
|
81194
82485
|
--rb-feedback-callout-border-opacity: 0.24;
|
|
81195
82486
|
}
|
|
@@ -81197,33 +82488,33 @@ const containerResponsiveThemeCss = `/*
|
|
|
81197
82488
|
:where(.theme-scope) .feedback-callout[data-feedback-tone="info"] {
|
|
81198
82489
|
--rb-feedback-callout-bg-opacity: 0.08;
|
|
81199
82490
|
background:
|
|
81200
|
-
linear-gradient(
|
|
82491
|
+
linear-gradient(rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-bg-opacity))),
|
|
81201
82492
|
rgb(var(--tb-surface, 248 250 252));
|
|
81202
|
-
border-color:
|
|
82493
|
+
border-color: rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-border-opacity));
|
|
81203
82494
|
}
|
|
81204
82495
|
|
|
81205
82496
|
:where(.theme-scope) .feedback-callout[data-feedback-tone="success"] {
|
|
81206
82497
|
background:
|
|
81207
|
-
linear-gradient(
|
|
82498
|
+
linear-gradient(rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-bg-opacity))),
|
|
81208
82499
|
rgb(var(--tb-surface, 248 250 252));
|
|
81209
|
-
border-color:
|
|
82500
|
+
border-color: rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-border-opacity));
|
|
81210
82501
|
}
|
|
81211
82502
|
|
|
81212
82503
|
:where(.theme-scope) .feedback-callout[data-feedback-tone="warning"] {
|
|
81213
82504
|
--rb-feedback-callout-bg-opacity: 0.12;
|
|
81214
82505
|
--rb-feedback-callout-border-opacity: 0.28;
|
|
81215
82506
|
background:
|
|
81216
|
-
linear-gradient(
|
|
82507
|
+
linear-gradient(rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-bg-opacity))),
|
|
81217
82508
|
rgb(var(--tb-surface, 248 250 252));
|
|
81218
|
-
border-color:
|
|
82509
|
+
border-color: rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-border-opacity));
|
|
81219
82510
|
}
|
|
81220
82511
|
|
|
81221
82512
|
:where(.theme-scope) .feedback-callout[data-feedback-tone="error"] {
|
|
81222
82513
|
--rb-feedback-callout-border-opacity: 0.26;
|
|
81223
82514
|
background:
|
|
81224
|
-
linear-gradient(
|
|
82515
|
+
linear-gradient(rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-bg-opacity)), rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-bg-opacity))),
|
|
81225
82516
|
rgb(var(--tb-surface, 248 250 252));
|
|
81226
|
-
border-color:
|
|
82517
|
+
border-color: rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-border-opacity));
|
|
81227
82518
|
}
|
|
81228
82519
|
|
|
81229
82520
|
:where(.theme-scope) .feedback-callout__title {
|
|
@@ -81294,7 +82585,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
81294
82585
|
}
|
|
81295
82586
|
|
|
81296
82587
|
:where(.theme-scope) .event-compact-row:hover {
|
|
81297
|
-
background-color:
|
|
82588
|
+
background-color: rgb(var(--tb-primary, 0 0 0) / 0.035);
|
|
81298
82589
|
}
|
|
81299
82590
|
|
|
81300
82591
|
:where(.theme-scope) .event-compact-row-date {
|
|
@@ -81702,23 +82993,23 @@ const containerResponsiveThemeCss = `/*
|
|
|
81702
82993
|
}
|
|
81703
82994
|
|
|
81704
82995
|
:where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="success"] {
|
|
81705
|
-
border-color:
|
|
82996
|
+
border-color: rgb(var(--tb-success, 34 197 94) / 0.3);
|
|
81706
82997
|
background:
|
|
81707
|
-
linear-gradient(
|
|
82998
|
+
linear-gradient(rgb(var(--tb-success, 34 197 94) / 0.1), rgb(var(--tb-success, 34 197 94) / 0.1)),
|
|
81708
82999
|
rgb(var(--tb-surface, 255 255 255));
|
|
81709
83000
|
}
|
|
81710
83001
|
|
|
81711
83002
|
:where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="warning"] {
|
|
81712
|
-
border-color:
|
|
83003
|
+
border-color: rgb(var(--tb-warning, 245 158 11) / 0.35);
|
|
81713
83004
|
background:
|
|
81714
|
-
linear-gradient(
|
|
83005
|
+
linear-gradient(rgb(var(--tb-warning, 245 158 11) / 0.12), rgb(var(--tb-warning, 245 158 11) / 0.12)),
|
|
81715
83006
|
rgb(var(--tb-surface, 255 255 255));
|
|
81716
83007
|
}
|
|
81717
83008
|
|
|
81718
83009
|
:where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="error"] {
|
|
81719
|
-
border-color:
|
|
83010
|
+
border-color: rgb(var(--tb-destructive, 239 68 68) / 0.3);
|
|
81720
83011
|
background:
|
|
81721
|
-
linear-gradient(
|
|
83012
|
+
linear-gradient(rgb(var(--tb-destructive, 239 68 68) / 0.1), rgb(var(--tb-destructive, 239 68 68) / 0.1)),
|
|
81722
83013
|
rgb(var(--tb-surface, 255 255 255));
|
|
81723
83014
|
}
|
|
81724
83015
|
|
|
@@ -81832,7 +83123,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
81832
83123
|
:where(.theme-scope) .rb-feature-card-icon-zone--utility-badge {
|
|
81833
83124
|
background-color: rgb(var(--tb-surface));
|
|
81834
83125
|
border: 1px solid rgb(var(--tb-border));
|
|
81835
|
-
box-shadow: 0 1px 2px
|
|
83126
|
+
box-shadow: 0 1px 2px rgb(var(--tb-shadow) / 0.08);
|
|
81836
83127
|
}
|
|
81837
83128
|
|
|
81838
83129
|
:where(.theme-scope) .rb-feature-card-icon {
|
|
@@ -82621,7 +83912,7 @@ const containerResponsiveThemeCss = `/*
|
|
|
82621
83912
|
grid-template-columns: minmax(5.5rem, 0.65fr) minmax(0, 1.35fr);
|
|
82622
83913
|
gap: 1rem;
|
|
82623
83914
|
padding-block: 0.6rem;
|
|
82624
|
-
border-top: 1px solid
|
|
83915
|
+
border-top: 1px solid rgb(var(--tb-border) / 0.72);
|
|
82625
83916
|
}
|
|
82626
83917
|
|
|
82627
83918
|
:where(.theme-scope)
|
|
@@ -82861,13 +84152,13 @@ const containerResponsiveThemeCss = `/*
|
|
|
82861
84152
|
:where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-attribution {
|
|
82862
84153
|
margin-top: 1.25rem;
|
|
82863
84154
|
padding-top: 1.25rem;
|
|
82864
|
-
border-top: 1px solid
|
|
84155
|
+
border-top: 1px solid rgb(var(--tb-border) / 0.75);
|
|
82865
84156
|
}
|
|
82866
84157
|
|
|
82867
84158
|
:where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-avatar {
|
|
82868
84159
|
box-shadow:
|
|
82869
84160
|
0 0 0 2px rgb(var(--tb-surface)),
|
|
82870
|
-
0 0 0 4px
|
|
84161
|
+
0 0 0 4px rgb(var(--tb-primary) / 0.3);
|
|
82871
84162
|
}
|
|
82872
84163
|
|
|
82873
84164
|
/* =============================================================================
|