@riverbankcms/sdk 0.151.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{EventEmbeddedCheckoutStep-BBHbM22D.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +10 -9
  3. package/dist/{PreviewEditorSidebar-BHplI9HE.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -3
  4. package/dist/{PreviewEditorUI-DuyN8nsD.mjs → PreviewEditorUI-ORkVZhfu.mjs} +5 -4
  5. package/dist/{SdkPreviewModeRuntime-CR5ypwxJ.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +341 -164
  6. package/dist/{SiteChromeCustomizeContext-D5t6joF_.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +27124 -39230
  7. package/dist/ThemedButton-X2UxhW6F.mjs +16525 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/bookingOperations.d.ts +5 -3
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +4 -0
  12. package/dist/_dts/api/src/communications.d.ts +19 -5
  13. package/dist/_dts/api/src/endpoints.d.ts +7 -0
  14. package/dist/_dts/api/src/index.d.ts +1 -1
  15. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  16. package/dist/_dts/api/src/navigation/types.d.ts +7 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -1
  18. package/dist/_dts/api/src/publicAppointmentBookingContracts.d.ts +10 -1
  19. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  20. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  21. package/dist/_dts/api/src/siteAssets.d.ts +1 -0
  22. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  23. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  25. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  27. package/dist/_dts/blocks/src/index.d.ts +2 -0
  28. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  29. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  30. package/dist/_dts/blocks/src/pageRenderPreparation.d.ts +1 -0
  31. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  32. package/dist/_dts/blocks/src/primitives/content/utils/sanitizeHref.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  35. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +212 -804
  36. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +7 -2
  37. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  39. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  41. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  42. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  43. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  44. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  45. package/dist/_dts/blocks/src/system/helpers/normalizeMailingListBlockContent.d.ts +2 -0
  46. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  47. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  48. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  49. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  50. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  51. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/registry.d.ts +14 -2
  53. package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +0 -5
  54. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +2 -0
  55. package/dist/_dts/blocks/src/system/runtime/api/schemas/events.d.ts +971 -0
  56. package/dist/_dts/blocks/src/system/runtime/api/schemas/waitlist-claims.d.ts +42 -0
  57. package/dist/_dts/blocks/src/system/runtime/api/types/appointments.d.ts +10 -2
  58. package/dist/_dts/blocks/src/system/runtime/api/types/events.d.ts +10 -136
  59. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -6
  60. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -3
  61. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingSubmission.state.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +5 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
  65. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  66. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  68. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +51 -1
  69. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +6 -2
  70. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.hooks.d.ts +6 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.client.state.d.ts +7 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/BookingEntryViews.d.ts +42 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventEmbeddedCheckoutStep.d.ts +4 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationBookingLayer.d.ts +19 -9
  77. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationPayment.d.ts +4 -2
  78. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSurface.d.ts +24 -9
  79. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +4 -2
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +5 -4
  81. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/GuestDetailsSection.d.ts +1 -1
  82. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PaymentStatusStep.d.ts +2 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SingleTicketEntitlementNote.d.ts +11 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SuccessStep.d.ts +4 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +5 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/VerifyingTimeoutStep.d.ts +2 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingCardDisplay.d.ts +31 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingEntry.d.ts +154 -0
  89. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/bookingFocus.d.ts +12 -0
  90. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -2
  91. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.planning.d.ts +2 -2
  92. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +9 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/finishedBooking.d.ts +77 -0
  94. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/index.d.ts +0 -1
  95. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/offeringNoun.d.ts +12 -0
  96. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/paymentResponse.d.ts +2 -1
  97. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationCompletion.d.ts +33 -1
  98. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +11 -0
  99. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDisplay.d.ts +31 -0
  100. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDraft.state.d.ts +60 -0
  101. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationErrorRecovery.d.ts +1 -1
  102. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationEventAdapter.d.ts +3 -0
  103. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationStateMachine.d.ts +58 -10
  104. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +17 -0
  105. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +23 -7
  106. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useBookingBarFacts.d.ts +12 -0
  107. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationRecoveryRequest.d.ts +3 -0
  108. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +4 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +4 -11
  110. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +1563 -31
  111. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventSourceRecovery.d.ts +2 -12
  112. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/usePaymentStatusRecovery.d.ts +147 -4
  113. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +50 -2
  114. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/waitlistClaimRestoration.d.ts +6 -5
  115. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/wizardSteps.d.ts +85 -15
  116. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +53 -8
  117. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/MonthLookView.d.ts +10 -3
  119. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +290 -882
  120. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  122. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  123. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptionCopy.d.ts +5 -1
  124. package/dist/_dts/blocks/src/system/runtime/shared/bookingPaymentOptions.d.ts +37 -1
  125. package/dist/_dts/blocks/src/system/runtime/shared/components/ModalShell.d.ts +9 -2
  126. package/dist/_dts/blocks/src/system/runtime/shared/components/PaymentChoiceRows.d.ts +28 -0
  127. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +6 -8
  128. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -2
  129. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
  130. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.d.ts +9 -12
  131. package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +15 -0
  132. package/dist/_dts/blocks/src/system/runtime/shared/utils/themePortalRoot.d.ts +10 -15
  133. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +2 -0
  134. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +2 -0
  135. package/dist/_dts/commerce/src/purchase/bookingInstalmentSchedule.d.ts +2 -0
  136. package/dist/_dts/commerce/src/purchase/bookingPaymentSelection.d.ts +6 -0
  137. package/dist/_dts/commerce/src/purchase/confirmationEmailPayment.d.ts +14 -14
  138. package/dist/_dts/commerce/src/purchase/confirmationPayment.d.ts +65 -0
  139. package/dist/_dts/commerce/src/purchase/confirmationPaymentSchema.d.ts +66 -0
  140. package/dist/_dts/commerce/src/purchase/index.d.ts +2 -0
  141. package/dist/_dts/commerce/src/purchase/orderPaymentState.d.ts +8 -0
  142. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  143. package/dist/_dts/content-model/src/templates/defaults.d.ts +2 -2
  144. package/dist/_dts/core/src/appointment-booking-terms.d.ts +20 -0
  145. package/dist/_dts/core/src/booking-payment-schemas.d.ts +70 -0
  146. package/dist/_dts/core/src/branded.d.ts +0 -2
  147. package/dist/_dts/core/src/demo-claim-access.d.ts +1 -1
  148. package/dist/_dts/core/src/demo-claim-readiness.d.ts +18 -0
  149. package/dist/_dts/core/src/demo-lifecycle-status.d.ts +1 -1
  150. package/dist/_dts/core/src/demo-warm-pool-target.d.ts +1 -1
  151. package/dist/_dts/core/src/index.d.ts +4 -0
  152. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  153. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  154. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  155. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  156. package/dist/_dts/core/src/mailing-list-targeting-availability.d.ts +68 -0
  157. package/dist/_dts/core/src/mailing-list-targeting.d.ts +11 -1
  158. package/dist/_dts/core/src/ticket-quantity.d.ts +13 -0
  159. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +106 -36
  160. package/dist/_dts/editor/src/chrome/chromeLayers.d.ts +7 -0
  161. package/dist/_dts/editor/src/index.d.ts +1 -0
  162. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  163. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  164. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  165. package/dist/_dts/editor-blocks/src/widgets/link/LinkAddressInput.d.ts +8 -0
  166. package/dist/_dts/editor-blocks/src/widgets/link/LinkContentList.d.ts +12 -0
  167. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +5 -1
  168. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +3 -3
  169. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +8 -2
  170. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +4 -3
  171. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
  172. package/dist/_dts/editor-blocks/src/widgets/link/draft.d.ts +44 -0
  173. package/dist/_dts/editor-blocks/src/widgets/link/presentation.d.ts +13 -0
  174. package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +14 -0
  175. package/dist/_dts/editor-blocks/src/widgets/link/useRoutableContent.d.ts +2 -0
  176. package/dist/_dts/editor-blocks/src/widgets/link/utils.d.ts +5 -4
  177. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +1 -1
  178. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +13 -8
  179. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  180. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  181. package/dist/_dts/media-core/src/fileStorage.d.ts +4 -3
  182. package/dist/_dts/media-core/src/index.d.ts +5 -0
  183. package/dist/_dts/media-core/src/media.d.ts +406 -0
  184. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  185. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  186. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  187. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  188. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  189. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  190. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  191. package/dist/_dts/media-core/src/storageObjectKey.d.ts +12 -0
  192. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  193. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  194. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  195. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  196. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  197. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  198. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  199. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  200. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  201. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  202. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  203. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  204. package/dist/_dts/media-react/src/hooks/useSupabaseMediaUploader.d.ts +1 -1
  205. package/dist/_dts/media-react/src/internal/supabaseResumableUpload.d.ts +13 -0
  206. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  207. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  208. package/dist/_dts/preview-next/src/client/preview/previewModeRootAttribute.d.ts +11 -0
  209. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  210. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  211. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  212. package/dist/_dts/sdk/src/index.d.ts +1 -0
  213. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +0 -1
  214. package/dist/_dts/sdk/src/rendering/image.d.ts +14 -4
  215. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -2
  216. package/dist/_dts/sdk/src/rendering/link.d.ts +5 -0
  217. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  218. package/dist/_dts/sdk/src/rendering/overrides.d.ts +1 -0
  219. package/dist/_dts/sdk/src/version.d.ts +1 -1
  220. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  221. package/dist/_dts/theme-core/src/blocks/opaquePanels.d.ts +3 -3
  222. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  223. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  224. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  225. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  226. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  227. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  228. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  229. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  230. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  231. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  232. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  233. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  234. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  235. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  236. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  237. package/dist/client/BookingMailingListNote-DrchYW1m.mjs +386 -0
  238. package/dist/client/{CardListItem-ZDLYh6dL.mjs → CardListItem-CC_GVmF6.mjs} +5 -5
  239. package/dist/client/CheckIcon-CpyXr-Kg.mjs +35 -0
  240. package/dist/client/{CheckboxChoice-M-3HycLw.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  241. package/dist/client/{DemoBookingPortalAccess-BMtvPTWE.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +85 -85
  242. package/dist/client/{EventCombined.client-DUm_DOxW.mjs → EventCombined.client-DyN0v0Xk.mjs} +7 -9
  243. package/dist/client/{EventEmbeddedCheckoutStep-DsNNzgRm.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +11 -10
  244. package/dist/client/{EventListing.client-DjNYGUVm.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  245. package/dist/client/{LeafletStaticMap-DuFiOHq_.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  246. package/dist/client/{ModalShell-CqkBvBIC.mjs → ModalShell-BXzucfR6.mjs} +83 -12
  247. package/dist/client/{RichText-LjPCUGGi.mjs → RichText-C1fIXBzA.mjs} +50 -34
  248. package/dist/client/{ThemedButton-DZKjtaDD.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  249. package/dist/client/{accordion-Qe--SILD.mjs → accordion-DCDVWSye.mjs} +1 -1
  250. package/dist/client/{bookingForm-3BCl4g_f.mjs → bookingForm-BJ3C4GlM.mjs} +321 -154
  251. package/dist/client/bookings.mjs +118607 -22429
  252. package/dist/client/{carousel-h2YjKOS2.mjs → carousel-BSCBhfHY.mjs} +2 -2
  253. package/dist/client/{carousel.client-BLrd4hmY.mjs → carousel.client-GEtOGsxo.mjs} +46 -41
  254. package/dist/client/{cart-5NeiigVd.mjs → cart-Yv-aAtck.mjs} +3 -3
  255. package/dist/client/{checkout-G4UWjOEw.mjs → checkout-B9xDkl30.mjs} +3 -3
  256. package/dist/client/client.mjs +37511 -33793
  257. package/dist/client/{context-GK4-AVAh.mjs → context-BOGe3rIA.mjs} +275 -10
  258. package/dist/client/{eventCalendar-Prw3Yo_L.mjs → eventCalendar-D6M0T9hs.mjs} +18 -17
  259. package/dist/client/{eventCombined-BUugi6__.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  260. package/dist/client/{eventDetails-CBHUda-R.mjs → eventDetails-f_FhV4O8.mjs} +3 -4
  261. package/dist/client/{eventListing-CQeG45Dg.mjs → eventListing-WLkfAROh.mjs} +4 -4
  262. package/dist/client/{eventRegistration-Dif3p3oJ.mjs → eventRegistration-D3ejfLvW.mjs} +2209 -2144
  263. package/dist/client/{form-Cf0WMtfG.mjs → form-D5Or2Jyu.mjs} +5 -6
  264. package/dist/client/{headerSection-Bqdr3JWp.mjs → headerSection-hWgnv27V.mjs} +9 -9
  265. package/dist/client/hooks.mjs +17278 -16106
  266. package/dist/client/{locationMap-BVvPou4O.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  267. package/dist/client/{media-47fcnhzD.mjs → media-D29-F1u_.mjs} +183 -362
  268. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  269. package/dist/client/{newsletterForm-Cx-1dnic.mjs → newsletterForm-CwxcwTNO.mjs} +5 -5
  270. package/dist/client/{productDetail-DaUMaJYk.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  271. package/dist/client/{productList-BKQlWEKE.mjs → productList-oGytONOX.mjs} +3 -3
  272. package/dist/client/{propsDecoder-DO5iXphQ.mjs → propsDecoder-lf_dTeZS.mjs} +18659 -14473
  273. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  274. package/dist/client/rendering/client.mjs +58971 -55722
  275. package/dist/client/rendering/islands.mjs +20 -23
  276. package/dist/client/rendering.mjs +41610 -37917
  277. package/dist/client/{routeIslandApiConfig-BNm0Z3-g.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  278. package/dist/client/{shop-D7ytcFBC.mjs → shop-BQ3bR7fA.mjs} +16 -14
  279. package/dist/client/{shop-commerce-D68-hHy2.mjs → shop-commerce-DDPll6ZC.mjs} +9 -9
  280. package/dist/client/{shop-commerce-store-Cu7X2lyu.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  281. package/dist/client/{shopShared-D12rxE69.mjs → shopShared-BylM9jh1.mjs} +5 -5
  282. package/dist/client/themePortalRoot-DS92SRVZ.mjs +47 -0
  283. package/dist/client/{TerminalPanel-DOTSUCO0.mjs → useDiscountCodeUi-B1Puub2v.mjs} +60 -77
  284. package/dist/client/{useEventPagination-jgKa67KV.mjs → useEventPagination-BBhkmQaT.mjs} +6 -8
  285. package/dist/preview-next/before-render.mjs +96 -4
  286. package/dist/preview-next/client/runtime.mjs +3 -3
  287. package/dist/preview-next/keepAlive.mjs +7 -0
  288. package/dist/preview-next/middleware.mjs +7 -0
  289. package/dist/{sdk-runtime-4cCWO_3i.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  290. package/dist/server/components.mjs +21820 -19902
  291. package/dist/server/config-validation.mjs +1786 -642
  292. package/dist/server/config.mjs +1786 -642
  293. package/dist/server/data.mjs +17220 -16076
  294. package/dist/server/index.mjs +234 -2
  295. package/dist/server/next.mjs +22505 -20528
  296. package/dist/server/page-converter.mjs +7587 -6572
  297. package/dist/server/prebuild.mjs +1 -1
  298. package/dist/server/rendering/server.mjs +20487 -19044
  299. package/dist/server/rendering.mjs +21844 -19901
  300. package/dist/server/routing.mjs +19186 -17961
  301. package/dist/server/server.mjs +1874 -695
  302. package/dist/server/theme-bridge.mjs +1371 -914
  303. package/dist/server/theme.mjs +154 -37
  304. package/dist/{spinner-tSdG9YvG.mjs → spinner-BYM-Y81w.mjs} +1 -1
  305. package/dist/styles/index.css +1088 -721
  306. package/package.json +1 -1
  307. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +0 -15
  308. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useWaitlistClaimRestoration.d.ts +0 -22
  309. package/dist/_dts/blocks/src/system/runtime/shared/components/SelectableOptionCard.d.ts +0 -30
  310. package/dist/client/BookingMailingListNote-DlDSs5Vm.mjs +0 -567
  311. package/dist/client/colorStyles-DTunOThj.mjs +0 -1316
  312. package/dist/client/pricing-CMD0kADd.mjs +0 -314
  313. package/dist/client/result-DRW7JWXz.mjs +0 -30
  314. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
  315. package/dist/client/themePortalRoot-AGs4cE7t.mjs +0 -30
  316. package/dist/spinner-BL3kW9Uh.mjs +0 -803
@@ -514,7 +514,108 @@ const footerModeSchema = z.enum([
514
514
  "none"
515
515
  ]);
516
516
  //#endregion
517
- //#region ../theme-core/src/lib/media.ts
517
+ //#region ../core/src/result.ts
518
+ function ok(value) {
519
+ return {
520
+ ok: true,
521
+ value
522
+ };
523
+ }
524
+ function err(error) {
525
+ return {
526
+ ok: false,
527
+ error
528
+ };
529
+ }
530
+ //#endregion
531
+ //#region ../core/src/branded.ts
532
+ const UUID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
533
+ function parseUuidBrand(value, unsafeConstructor) {
534
+ if (typeof value !== "string") return err({ kind: "not_string" });
535
+ const normalized = value.trim().toLowerCase();
536
+ if (normalized.length === 0) return err({ kind: "empty_string" });
537
+ if (!UUID_PATTERN.test(normalized)) return err({ kind: "invalid_uuid" });
538
+ return ok(unsafeConstructor(normalized));
539
+ }
540
+ const unsafeAsMediaAssetId = (id) => id;
541
+ const parseMediaAssetId = (value) => parseUuidBrand(value, unsafeAsMediaAssetId);
542
+ //#endregion
543
+ //#region ../media-core/src/identifiers.ts
544
+ function slugifyMediaIdentifier(value) {
545
+ return value.toLowerCase().trim().replace(/[^a-z0-9\s-]/g, "").replace(/\s+/g, "-").replace(/-+/g, "-");
546
+ }
547
+ function parseMediaIdentifier(value) {
548
+ if (typeof value !== "string") return err({ kind: "not_string" });
549
+ const trimmed = value.trim();
550
+ if (trimmed.length === 0) return err({ kind: "empty_identifier" });
551
+ const normalized = slugifyMediaIdentifier(trimmed);
552
+ if (normalized.length === 0) return err({
553
+ kind: "empty_after_normalization",
554
+ value
555
+ });
556
+ return ok(normalized);
557
+ }
558
+ /**
559
+ * Admits identifiers read from trusted persistence without repairing dirty data in memory.
560
+ * User input should use parseMediaIdentifier, which intentionally canonicalizes it.
561
+ */
562
+ function parseCanonicalMediaIdentifier(value) {
563
+ if (typeof value !== "string") return err({ kind: "not_string" });
564
+ const parsed = parseMediaIdentifier(value);
565
+ if (!parsed.ok) return parsed;
566
+ if (value !== parsed.value) return err({
567
+ kind: "non_canonical_identifier",
568
+ value,
569
+ canonical: parsed.value
570
+ });
571
+ return parsed;
572
+ }
573
+ //#endregion
574
+ //#region ../media-core/src/mediaIdentifierSchema.ts
575
+ /** Strict stored-reference admission delegates the canonical identifier decision. */
576
+ const mediaIdentifierSchema = z.string().transform((value, context) => {
577
+ const parsed = parseCanonicalMediaIdentifier(value);
578
+ if (parsed.ok) return parsed.value;
579
+ context.addIssue({
580
+ code: "custom",
581
+ message: "Expected a canonical media identifier"
582
+ });
583
+ return z.NEVER;
584
+ });
585
+ //#endregion
586
+ //#region ../media-core/src/mediaKinds.ts
587
+ const mediaTypeDiscriminants = [
588
+ "image",
589
+ "video",
590
+ "audio",
591
+ "document",
592
+ "spreadsheet",
593
+ "archive"
594
+ ];
595
+ //#endregion
596
+ //#region ../media-core/src/renderableMediaAssetAdmission.ts
597
+ const mediaAssetIdSchema = z.string().transform((value, context) => {
598
+ const parsed = parseMediaAssetId(value);
599
+ if (parsed.ok) return parsed.value;
600
+ context.addIssue({
601
+ code: "custom",
602
+ message: "Expected a media asset ID"
603
+ });
604
+ return z.NEVER;
605
+ });
606
+ const nonemptyStorageValue = z.string().refine((value) => value.trim().length > 0);
607
+ const renderableMediaAssetSchema = z.object({
608
+ id: mediaAssetIdSchema,
609
+ identifier: mediaIdentifierSchema,
610
+ storageBucket: nonemptyStorageValue,
611
+ storagePath: nonemptyStorageValue,
612
+ mimeType: nonemptyStorageValue,
613
+ filename: z.string().optional(),
614
+ width: z.number().positive().nullable(),
615
+ height: z.number().positive().nullable()
616
+ });
617
+ //#endregion
618
+ //#region ../media-core/src/media.ts
518
619
  const hotspotSchema = z.object({
519
620
  x: z.number().min(0).max(1),
520
621
  y: z.number().min(0).max(1),
@@ -548,54 +649,56 @@ const transformSchema = z.object({
548
649
  rotation: rotationSchema.optional()
549
650
  });
550
651
  const mediaPosterSchema = z.discriminatedUnion("tag", [z.object({
551
- tag: z.literal("storage"),
552
- assetId: z.string().optional(),
553
- storageBucket: z.string().min(1),
554
- storagePath: z.string().min(1)
555
- }), z.object({
652
+ tag: z.literal("media"),
653
+ identifier: mediaIdentifierSchema
654
+ }).strict(), z.object({
556
655
  tag: z.literal("external-src"),
557
- assetId: z.string().optional(),
558
656
  src: z.string().url()
559
- })]);
560
- const mediaBaseSchema = z.object({
657
+ }).strict()]);
658
+ const mediaUsageShape = {
561
659
  purpose: z.string().optional(),
562
660
  placeholder: z.boolean().default(true).optional(),
563
- assetId: z.string().optional(),
564
- identifier: z.string().optional(),
565
- src: z.string().optional(),
566
661
  alt: z.string().optional(),
567
662
  filename: z.string().optional(),
568
- mimeType: z.string().optional(),
569
663
  width: z.number().optional(),
570
664
  height: z.number().optional(),
571
- storageBucket: z.string().optional(),
572
- storagePath: z.string().optional(),
573
665
  poster: mediaPosterSchema.optional(),
574
666
  transform: transformSchema.optional()
575
- });
576
- const mediaIdentifierSchema = z.string().trim().min(1).brand();
667
+ };
668
+ const environmentExclusions = {
669
+ assetId: z.never().optional(),
670
+ id: z.never().optional(),
671
+ src: z.never().optional(),
672
+ storageBucket: z.never().optional(),
673
+ storagePath: z.never().optional(),
674
+ mimeType: z.never().optional()
675
+ };
676
+ const mediaBaseSchema = z.object({
677
+ ...mediaUsageShape,
678
+ ...environmentExclusions,
679
+ identifier: mediaIdentifierSchema
680
+ }).strict();
577
681
  const imageMediaSchema = mediaBaseSchema.extend({ type: z.literal("image") });
578
682
  const videoMediaSchema = mediaBaseSchema.extend({ type: z.literal("video") });
579
- const audioMediaSchema = mediaBaseSchema.extend({ type: z.literal("audio") });
580
- const documentMediaSchema = mediaBaseSchema.extend({ type: z.literal("document") });
581
- const spreadsheetMediaSchema = mediaBaseSchema.extend({ type: z.literal("spreadsheet") });
582
- const archiveMediaSchema = mediaBaseSchema.extend({ type: z.literal("archive") });
583
- const mediaSchema = z.discriminatedUnion("type", [
584
- imageMediaSchema,
585
- videoMediaSchema,
586
- audioMediaSchema,
587
- documentMediaSchema,
588
- spreadsheetMediaSchema,
589
- archiveMediaSchema
590
- ]);
591
- const persistableMediaBaseSchema = mediaBaseSchema.extend({ identifier: mediaIdentifierSchema });
592
- z.discriminatedUnion("type", [
593
- persistableMediaBaseSchema.extend({ type: z.literal("image") }),
594
- persistableMediaBaseSchema.extend({ type: z.literal("video") }),
595
- persistableMediaBaseSchema.extend({ type: z.literal("audio") }),
596
- persistableMediaBaseSchema.extend({ type: z.literal("document") }),
597
- persistableMediaBaseSchema.extend({ type: z.literal("spreadsheet") }),
598
- persistableMediaBaseSchema.extend({ type: z.literal("archive") })
683
+ const mediaSchema = mediaBaseSchema.extend({ type: z.enum(mediaTypeDiscriminants) });
684
+ const externalMediaSchema = z.object({
685
+ ...mediaUsageShape,
686
+ ...environmentExclusions,
687
+ type: z.enum(mediaTypeDiscriminants),
688
+ src: z.string().min(1),
689
+ identifier: z.never().optional()
690
+ }).strict();
691
+ const assetMediaSchema = z.object({
692
+ ...mediaUsageShape,
693
+ ...environmentExclusions,
694
+ type: z.enum(mediaTypeDiscriminants),
695
+ asset: renderableMediaAssetSchema,
696
+ identifier: z.never().optional()
697
+ }).strict();
698
+ z.union([
699
+ mediaSchema,
700
+ externalMediaSchema,
701
+ assetMediaSchema
599
702
  ]);
600
703
  //#endregion
601
704
  //#region ../theme-core/src/palette/colors.ts
@@ -9828,6 +9931,20 @@ const boxBackgroundSchema = z.discriminatedUnion("type", [
9828
9931
  showVideoOnMobile: z.boolean().nullable().optional()
9829
9932
  })
9830
9933
  ]);
9934
+ z.discriminatedUnion("type", [
9935
+ boxBackgroundSchema.options[0],
9936
+ boxBackgroundSchema.options[1],
9937
+ boxBackgroundSchema.options[2].extend({ image: z.union([
9938
+ imageMediaSchema,
9939
+ externalMediaSchema.extend({ type: z.literal("image") }),
9940
+ assetMediaSchema.extend({ type: z.literal("image") })
9941
+ ]).nullable().optional() }),
9942
+ boxBackgroundSchema.options[3].extend({ image: z.union([
9943
+ videoMediaSchema,
9944
+ externalMediaSchema.extend({ type: z.literal("video") }),
9945
+ assetMediaSchema.extend({ type: z.literal("video") })
9946
+ ]).nullable().optional() })
9947
+ ]);
9831
9948
  function normalizeAuthoringOpacity(value) {
9832
9949
  if (!isRecord(value)) return value;
9833
9950
  return {
@@ -10530,7 +10647,7 @@ const opaquePanels = [
10530
10647
  }
10531
10648
  },
10532
10649
  {
10533
- selector: ":where([data-block='event-registration']) .er-booking-teaser",
10650
+ selector: ":where([data-block='event-registration']) .er-booking-card",
10534
10651
  paint: {
10535
10652
  kind: "solid",
10536
10653
  token: "surface"
@@ -10540,7 +10657,7 @@ const opaquePanels = [
10540
10657
  selector: ":where([data-block='event-registration']) .er-booking-bar",
10541
10658
  paint: {
10542
10659
  kind: "solid",
10543
- token: "background"
10660
+ token: "surface"
10544
10661
  }
10545
10662
  },
10546
10663
  {
@@ -10554,7 +10671,7 @@ const opaquePanels = [
10554
10671
  selector: ":where([data-block='event-registration']) .er-booking-overlay__panel",
10555
10672
  paint: {
10556
10673
  kind: "solid",
10557
- token: "background"
10674
+ token: "surface"
10558
10675
  }
10559
10676
  },
10560
10677
  {
@@ -18369,25 +18486,25 @@ ${root} .alert {
18369
18486
 
18370
18487
  ${root} .alert-error {
18371
18488
  border-color: rgb(var(--tb-destructive));
18372
- background-color: rgba(var(--tb-destructive), 0.1);
18489
+ background-color: rgb(var(--tb-destructive) / 0.1);
18373
18490
  color: rgb(var(--tb-destructive));
18374
18491
  }
18375
18492
 
18376
18493
  ${root} .alert-success {
18377
18494
  border-color: rgb(var(--tb-success));
18378
- background-color: rgba(var(--tb-success), 0.1);
18495
+ background-color: rgb(var(--tb-success) / 0.1);
18379
18496
  color: rgb(var(--tb-success));
18380
18497
  }
18381
18498
 
18382
18499
  ${root} .alert-warning {
18383
18500
  border-color: rgb(var(--tb-warning));
18384
- background-color: rgba(var(--tb-warning), 0.1);
18501
+ background-color: rgb(var(--tb-warning) / 0.1);
18385
18502
  color: rgb(var(--tb-warning));
18386
18503
  }
18387
18504
 
18388
18505
  ${root} .alert-info {
18389
18506
  border-color: rgb(var(--tb-info));
18390
- background-color: rgba(var(--tb-info), 0.1);
18507
+ background-color: rgb(var(--tb-info) / 0.1);
18391
18508
  color: rgb(var(--tb-info));
18392
18509
  }`);
18393
18510
  cssBlocks.push(`/* Field-note feedback treatment */
@@ -18501,7 +18618,7 @@ ${root} .step-dot-active {
18501
18618
  }
18502
18619
 
18503
18620
  ${root} .step-dot-complete {
18504
- background-color: rgba(var(--tb-primary), 0.6);
18621
+ background-color: rgb(var(--tb-primary) / 0.6);
18505
18622
  }`);
18506
18623
  cssBlocks.push(`/* Step circles (numbered) */
18507
18624
  ${root} .step-circle {
@@ -18524,7 +18641,7 @@ ${root} .step-circle-active {
18524
18641
  }
18525
18642
 
18526
18643
  ${root} .step-circle-complete {
18527
- background-color: rgba(var(--tb-primary), 0.6);
18644
+ background-color: rgb(var(--tb-primary) / 0.6);
18528
18645
  color: rgb(var(--tb-primaryForeground));
18529
18646
  }`);
18530
18647
  cssBlocks.push(`/* Step connector */
@@ -18692,62 +18809,52 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
18692
18809
  --er-control-bg: rgb(var(--tb-background, var(--tb-surface)));
18693
18810
  --er-control-text: rgb(var(--tb-foreground, var(--tb-text)));
18694
18811
  --er-radius: var(--rb-block-radius);
18695
- --er-surface-muted: rgba(var(--tb-muted, 241 245 249), 0.42);
18696
- --er-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
18812
+ --er-surface-muted: rgb(var(--tb-muted, 241 245 249) / 0.42);
18813
+ --er-shell-line: rgb(var(--tb-mutedText, 100 116 139) / 0.22);
18697
18814
 
18698
18815
  /* Step indicator */
18699
18816
  --er-step-active: rgb(var(--tb-primary));
18700
- --er-step-inactive: rgb(var(--tb-mutedText));
18701
- --er-step-completed: rgb(var(--tb-success));
18702
- --er-step-text: rgb(255 255 255);
18703
- --er-step-text-active: rgb(var(--tb-onPrimary, 255 255 255));
18704
- --er-step-connector: rgba(var(--tb-border), 0.5);
18705
18817
 
18706
18818
  /* Step title */
18707
- --er-step-title-size: 1.5rem;
18819
+ --er-step-title-size: 1.75rem;
18708
18820
 
18709
18821
  /* State backgrounds with alpha */
18710
- --er-success-bg: rgba(var(--tb-success), 0.1);
18711
- --er-success-text: rgb(var(--tb-success));
18712
- --er-info-bg: rgba(var(--tb-primary), 0.1);
18822
+ --er-info-bg: rgb(var(--tb-primary) / 0.1);
18713
18823
  --er-info-text: rgb(var(--tb-primary));
18714
- --er-error-bg: rgba(var(--tb-destructive, 239 68 68), 0.1);
18824
+ --er-error-bg: rgb(var(--tb-destructive, 239 68 68) / 0.1);
18715
18825
  --er-error-text: rgb(var(--tb-destructive, 239 68 68));
18716
- --er-waitlist-bg: rgba(var(--tb-warning), 0.1);
18826
+ --er-waitlist-bg: rgb(var(--tb-warning) / 0.1);
18717
18827
  --er-waitlist-text: rgb(var(--tb-warning));
18718
18828
 
18719
18829
  /* Capacity badges */
18720
- --er-capacity-available-bg: rgba(var(--tb-success), 0.1);
18830
+ --er-capacity-available-bg: rgb(var(--tb-success) / 0.1);
18721
18831
  --er-capacity-available-text: rgb(var(--tb-success));
18722
- --er-capacity-low-bg: rgba(var(--tb-warning), 0.1);
18832
+ --er-capacity-low-bg: rgb(var(--tb-warning) / 0.1);
18723
18833
  --er-capacity-low-text: rgb(var(--tb-warning));
18724
- --er-capacity-soldout-bg: rgba(var(--tb-destructive, 239 68 68), 0.1);
18834
+ --er-capacity-soldout-bg: rgb(var(--tb-destructive, 239 68 68) / 0.1);
18725
18835
  --er-capacity-soldout-text: rgb(var(--tb-destructive, 239 68 68));
18726
18836
 
18727
18837
  /* Borders */
18728
18838
  --er-border: rgb(var(--tb-border));
18729
- --er-border-hover: rgba(var(--tb-primary), 0.5);
18839
+ --er-border-hover: rgb(var(--tb-primary) / 0.5);
18730
18840
  --er-border-selected: rgb(var(--tb-primary));
18731
18841
  --er-border-error: rgb(var(--tb-destructive, 239 68 68));
18732
18842
 
18733
18843
  /* Input focus */
18734
- --er-focus-ring: rgba(var(--tb-primary), 0.3);
18735
-
18736
- /* Required marker */
18737
- --er-required: rgb(var(--tb-destructive, 239 68 68));
18844
+ --er-focus-ring: rgb(var(--tb-primary) / 0.3);
18738
18845
 
18739
18846
  /* Payment option cards */
18740
18847
  --er-payment-border: rgb(var(--tb-border));
18741
- --er-payment-border-hover: rgba(var(--tb-primary), 0.5);
18848
+ --er-payment-border-hover: rgb(var(--tb-primary) / 0.5);
18742
18849
  --er-payment-border-selected: rgb(var(--tb-primary));
18743
- --er-payment-bg-selected: rgba(var(--tb-primary), 0.08);
18850
+ --er-payment-bg-selected: rgb(var(--tb-primary) / 0.08);
18744
18851
 
18745
18852
  /* Checkmark indicator */
18746
18853
  --er-check-bg: rgb(var(--tb-primary));
18747
18854
  --er-check-text: rgb(var(--tb-onPrimary, 255 255 255));
18748
18855
 
18749
18856
  /* Order summary */
18750
- --er-summary-bg: rgba(var(--tb-primary), 0.1);
18857
+ --er-summary-bg: rgb(var(--tb-primary) / 0.1);
18751
18858
  --er-summary-border: rgb(var(--tb-border));
18752
18859
 
18753
18860
  /* Shared registration-surface mappings (issue 1174).
@@ -18759,7 +18866,7 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
18759
18866
  --rb-reg-border-selected: var(--er-border-selected);
18760
18867
  --rb-reg-bg-selected: var(--er-payment-bg-selected);
18761
18868
  --rb-reg-option-bg: var(--er-control-bg);
18762
- --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
18869
+ --rb-reg-option-hover-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
18763
18870
  --rb-reg-surface-bg: rgb(var(--tb-surface));
18764
18871
  --rb-reg-on-surface: var(--er-on-surface);
18765
18872
  --rb-reg-on-surface-muted: var(--er-on-surface-muted);
@@ -18768,11 +18875,6 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-registratio
18768
18875
  --rb-reg-check-bg: var(--er-check-bg);
18769
18876
  --rb-reg-check-text: var(--er-check-text);
18770
18877
  --rb-reg-step-active: var(--er-step-active);
18771
- --rb-reg-step-completed: var(--er-step-completed);
18772
- --rb-reg-step-inactive: var(--er-step-inactive);
18773
- --rb-reg-step-text: var(--er-step-text);
18774
- --rb-reg-step-text-active: var(--er-step-text-active);
18775
- --rb-reg-step-connector: var(--er-step-connector);
18776
18878
  --rb-reg-summary-bg: var(--er-surface-muted);
18777
18879
  --rb-reg-summary-border: var(--er-border);
18778
18880
  --rb-reg-focus-ring: var(--er-focus-ring);
@@ -18819,13 +18921,13 @@ function generateEventCalendarVars({ themeId }) {
18819
18921
  return `
18820
18922
  ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-calendar"])`} {
18821
18923
  /* Day cell states */
18822
- --ec-today-bg: rgba(var(--tb-primary), 0.05);
18924
+ --ec-today-bg: rgb(var(--tb-primary) / 0.05);
18823
18925
  --ec-today-text: rgb(var(--tb-primary));
18824
18926
  --ec-other-month-opacity: 0.4;
18825
18927
 
18826
18928
  /* Event items - subtle style (legacy) */
18827
- --ec-event-bg: rgba(var(--tb-primary), 0.1);
18828
- --ec-event-hover-bg: rgba(var(--tb-primary), 0.2);
18929
+ --ec-event-bg: rgb(var(--tb-primary) / 0.1);
18930
+ --ec-event-hover-bg: rgb(var(--tb-primary) / 0.2);
18829
18931
 
18830
18932
  /* Event items - solid style (default) */
18831
18933
  --ec-event-solid-bg: rgb(var(--tb-primary));
@@ -18833,15 +18935,15 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="event-calendar"])
18833
18935
  --ec-event-solid-text: rgb(var(--tb-neutral-50, 255 255 255));
18834
18936
 
18835
18937
  /* Navigation */
18836
- --ec-nav-hover-bg: rgba(var(--tb-text), 0.1);
18938
+ --ec-nav-hover-bg: rgb(var(--tb-text) / 0.1);
18837
18939
 
18838
18940
  /* Day headers */
18839
- --ec-header-bg: rgba(var(--tb-text), 0.05);
18941
+ --ec-header-bg: rgb(var(--tb-text) / 0.05);
18840
18942
  --ec-header-opacity: 0.7;
18841
18943
 
18842
18944
  /* Borders */
18843
18945
  --ec-border: rgb(var(--tb-border));
18844
- --ec-border-subtle: rgba(var(--tb-border), 0.5);
18946
+ --ec-border-subtle: rgb(var(--tb-border) / 0.5);
18845
18947
 
18846
18948
  /* Surface and text (for inputs/dropdowns) */
18847
18949
  --ec-surface: rgb(var(--tb-surface));
@@ -18910,29 +19012,27 @@ function generateAppointmentBookingVars({ themeId }) {
18910
19012
  ${`:where([data-theme-scope="${themeId}"]) :where([data-block="appointment-booking"])`} {
18911
19013
  /* Selection cards (service/resource/time) */
18912
19014
  --ab-card-border: rgb(var(--tb-border));
18913
- --ab-card-border-hover: rgba(var(--tb-primary), 0.5);
19015
+ --ab-card-border-hover: rgb(var(--tb-primary) / 0.5);
18914
19016
  --ab-card-border-selected: rgb(var(--tb-primary));
18915
- --ab-card-bg-selected: rgba(var(--tb-primary), 0.05);
19017
+ --ab-card-bg-selected: rgb(var(--tb-primary) / 0.05);
18916
19018
 
18917
19019
  /* Checkmark indicator */
18918
19020
  --ab-check-bg: rgb(var(--tb-primary));
18919
19021
  --ab-check-text: rgb(var(--tb-background));
18920
19022
 
18921
19023
  /* State backgrounds */
18922
- --ab-success-bg: rgba(var(--tb-success), 0.1);
18923
- --ab-success-text: rgb(var(--tb-success));
18924
- --ab-error-bg: rgba(var(--tb-destructive), 0.1);
19024
+ --ab-error-bg: rgb(var(--tb-destructive) / 0.1);
18925
19025
  --ab-error-text: rgb(var(--tb-destructive));
18926
- --ab-warning-bg: rgba(var(--tb-warning), 0.1);
19026
+ --ab-warning-bg: rgb(var(--tb-warning) / 0.1);
18927
19027
  --ab-warning-text: rgb(var(--tb-warning));
18928
- --ab-info-bg: rgba(var(--tb-info), 0.1);
19028
+ --ab-info-bg: rgb(var(--tb-info) / 0.1);
18929
19029
  --ab-info-text: rgb(var(--tb-info));
18930
19030
 
18931
19031
  /* Muted summary state */
18932
- --ab-muted-bg: rgba(var(--tb-text), 0.05);
19032
+ --ab-muted-bg: rgb(var(--tb-text) / 0.05);
18933
19033
 
18934
19034
  /* Focus ring used by shared registration-surface controls */
18935
- --ab-input-focus-ring: rgba(var(--tb-primary), 0.3);
19035
+ --ab-input-focus-ring: rgb(var(--tb-primary) / 0.3);
18936
19036
 
18937
19037
  /* Shared registration-surface mappings (issue 1174).
18938
19038
  Route the shared --rb-reg-* contract through this block's Tier 3 vars
@@ -18944,24 +19044,19 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="appointment-booki
18944
19044
  --rb-reg-border-selected: var(--ab-card-border-selected);
18945
19045
  --rb-reg-bg-selected: var(--ab-card-bg-selected);
18946
19046
  --rb-reg-option-bg: transparent;
18947
- --rb-reg-option-hover-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
19047
+ --rb-reg-option-hover-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
18948
19048
  --rb-reg-surface-bg: rgb(var(--tb-surface));
18949
19049
  --rb-reg-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
18950
- --rb-reg-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
18951
- --rb-reg-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
18952
- --rb-reg-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
19050
+ --rb-reg-on-surface-muted: rgb(var(--tb-onSurface, var(--tb-text)) / 0.7);
19051
+ --rb-reg-on-surface-subtle: rgb(var(--tb-onSurface, var(--tb-text)) / 0.6);
19052
+ --rb-reg-on-surface-faint: rgb(var(--tb-onSurface, var(--tb-text)) / 0.5);
18953
19053
  --rb-reg-check-bg: var(--ab-check-bg);
18954
19054
  --rb-reg-check-text: var(--ab-check-text);
18955
19055
  --rb-reg-step-active: rgb(var(--tb-primary));
18956
- --rb-reg-step-completed: rgb(var(--tb-success));
18957
- --rb-reg-step-inactive: rgb(var(--tb-mutedText));
18958
- --rb-reg-step-text: rgb(255 255 255);
18959
- --rb-reg-step-text-active: rgb(var(--tb-onPrimary, 255 255 255));
18960
- --rb-reg-step-connector: rgba(var(--tb-border), 0.5);
18961
19056
  --rb-reg-summary-bg: var(--ab-muted-bg);
18962
19057
  --rb-reg-summary-border: var(--ab-card-border);
18963
19058
  --rb-reg-focus-ring: var(--ab-input-focus-ring);
18964
- --rb-reg-shell-line: rgba(var(--tb-mutedText, 100 116 139), 0.22);
19059
+ --rb-reg-shell-line: rgb(var(--tb-mutedText, 100 116 139) / 0.22);
18965
19060
  }
18966
19061
  `;
18967
19062
  }
@@ -18980,14 +19075,14 @@ function generateFormBlockVars({ themeId }) {
18980
19075
  return `
18981
19076
  ${`:where([data-theme-scope="${themeId}"]) :where([data-block="form"])`} {
18982
19077
  /* Success state */
18983
- --fb-success-bg: rgba(var(--tb-success), 0.1);
19078
+ --fb-success-bg: rgb(var(--tb-success) / 0.1);
18984
19079
  --fb-success-text: rgb(var(--tb-success));
18985
- --fb-success-border: rgba(var(--tb-success), 0.3);
19080
+ --fb-success-border: rgb(var(--tb-success) / 0.3);
18986
19081
 
18987
19082
  /* Error state */
18988
- --fb-error-bg: rgba(var(--tb-destructive), 0.1);
19083
+ --fb-error-bg: rgb(var(--tb-destructive) / 0.1);
18989
19084
  --fb-error-text: rgb(var(--tb-destructive));
18990
- --fb-error-border: rgba(var(--tb-destructive), 0.3);
19085
+ --fb-error-border: rgb(var(--tb-destructive) / 0.3);
18991
19086
 
18992
19087
  /* Empty state */
18993
19088
  --fb-empty-bg: rgb(var(--tb-surface));
@@ -19048,23 +19143,23 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="customer-portal"]
19048
19143
  --rb-tab-opacity: 0.7;
19049
19144
 
19050
19145
  /* Badge - Success (active, confirmed) */
19051
- --cp-badge-success-bg: rgba(var(--tb-success), 0.1);
19146
+ --cp-badge-success-bg: rgb(var(--tb-success) / 0.1);
19052
19147
  --cp-badge-success-text: rgb(var(--tb-success));
19053
19148
 
19054
19149
  /* Badge - Warning (paused, low credits, waitlist) */
19055
- --cp-badge-warning-bg: rgba(var(--tb-warning), 0.1);
19150
+ --cp-badge-warning-bg: rgb(var(--tb-warning) / 0.1);
19056
19151
  --cp-badge-warning-text: rgb(var(--tb-warning));
19057
19152
 
19058
19153
  /* Badge - Error (canceled, expired, past_due) */
19059
- --cp-badge-error-bg: rgba(var(--tb-destructive), 0.1);
19154
+ --cp-badge-error-bg: rgb(var(--tb-destructive) / 0.1);
19060
19155
  --cp-badge-error-text: rgb(var(--tb-destructive));
19061
19156
 
19062
19157
  /* Badge - Info (trialing, scheduled) */
19063
- --cp-badge-info-bg: rgba(var(--tb-primary), 0.1);
19158
+ --cp-badge-info-bg: rgb(var(--tb-primary) / 0.1);
19064
19159
  --cp-badge-info-text: rgb(var(--tb-primary));
19065
19160
 
19066
19161
  /* Badge - Default (neutral states) */
19067
- --cp-badge-default-bg: rgba(var(--tb-mutedText), 0.1);
19162
+ --cp-badge-default-bg: rgb(var(--tb-mutedText) / 0.1);
19068
19163
  --cp-badge-default-text: rgb(var(--tb-mutedText));
19069
19164
 
19070
19165
  /* Progress bar (for credit display) */
@@ -19076,10 +19171,10 @@ ${`:where([data-theme-scope="${themeId}"]) :where([data-block="customer-portal"]
19076
19171
  --cp-card-border: rgb(var(--tb-border));
19077
19172
 
19078
19173
  /* Alert/notification */
19079
- --cp-alert-success-bg: rgba(var(--tb-success), 0.1);
19174
+ --cp-alert-success-bg: rgb(var(--tb-success) / 0.1);
19080
19175
  --cp-alert-success-text: rgb(var(--tb-success));
19081
19176
  --cp-alert-success-border: rgb(var(--tb-success));
19082
- --cp-alert-error-bg: rgba(var(--tb-destructive), 0.1);
19177
+ --cp-alert-error-bg: rgb(var(--tb-destructive) / 0.1);
19083
19178
  --cp-alert-error-text: rgb(var(--tb-destructive));
19084
19179
  --cp-alert-error-border: rgb(var(--tb-destructive));
19085
19180
 
@@ -19176,7 +19271,7 @@ ${root} {
19176
19271
  --rb-testimonial-carousel-arrow-bg: rgb(var(--tb-secondary));
19177
19272
  --rb-testimonial-carousel-arrow-bg-hover: color-mix(in oklab, rgb(var(--tb-secondary)), rgb(var(--tb-text)) 14%);
19178
19273
  --rb-testimonial-carousel-arrow-color: rgb(var(--tb-onSecondary));
19179
- --rb-testimonial-carousel-arrow-border-color: rgba(var(--tb-onSecondary), 0.22);
19274
+ --rb-testimonial-carousel-arrow-border-color: rgb(var(--tb-onSecondary) / 0.22);
19180
19275
  --rb-testimonial-carousel-arrow-size: 2.75rem;
19181
19276
  --rb-testimonial-carousel-arrow-icon-size: 1.25rem;
19182
19277
  --rb-testimonial-carousel-arrow-icon-stroke-width: 2.5;
@@ -20141,6 +20236,13 @@ const containerResponsiveThemeCss = `/*
20141
20236
  var(--site-overlay-opening-content-extra-pad, clamp(1rem, 2vw, 1.75rem))
20142
20237
  );
20143
20238
  }
20239
+ /* Floating site overlays (a booking bar, a cookie banner, a sticky promo)
20240
+ mark themselves [data-rb-site-overlay]. While a preview is in edit mode
20241
+ (the preview shell sets the root attribute) they step aside, out of the
20242
+ focus order too; switching back to viewing restores them as they were. */
20243
+ :root[data-rb-preview-mode="edit"] [data-rb-site-overlay] {
20244
+ display: none;
20245
+ }
20144
20246
  .rb-preview-editor-offset {
20145
20247
  padding-bottom: calc(
20146
20248
  var(--builder-editor-chrome-offset, 0px) +
@@ -20726,7 +20828,7 @@ const containerResponsiveThemeCss = `/*
20726
20828
  .rb-spinner {
20727
20829
  --rb-spinner-size: 2rem;
20728
20830
  --rb-spinner-duration: 0.9s;
20729
- --rb-spinner-track-color: rgba(var(--tb-foreground), 0.15);
20831
+ --rb-spinner-track-color: rgb(var(--tb-foreground) / 0.15);
20730
20832
 
20731
20833
  display: inline-flex;
20732
20834
  align-items: center;
@@ -21229,12 +21331,12 @@ const containerResponsiveThemeCss = `/*
21229
21331
 
21230
21332
  :where(.theme-scope) .rb-modal__close:hover {
21231
21333
  color: var(--rb-surface-text-color, rgb(var(--tb-text, 17 24 39)));
21232
- background: rgba(var(--tb-border), 0.2);
21334
+ background: rgb(var(--tb-border) / 0.2);
21233
21335
  }
21234
21336
 
21235
21337
  :where(.theme-scope) .rb-modal__close:focus-visible {
21236
21338
  outline: none;
21237
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.15);
21339
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.15);
21238
21340
  }
21239
21341
 
21240
21342
  :where(.theme-scope) .rb-modal__body {
@@ -21719,7 +21821,7 @@ const containerResponsiveThemeCss = `/*
21719
21821
  :where(.theme-scope) .rb-prose code {
21720
21822
  /* Inline code uses text color with surface background */
21721
21823
  color: inherit;
21722
- background-color: rgba(var(--tb-surface), 0.5);
21824
+ background-color: rgb(var(--tb-surface) / 0.5);
21723
21825
  padding: 0.125rem 0.25rem;
21724
21826
  border-radius: 0.25rem;
21725
21827
  font-size: 0.875em;
@@ -22711,17 +22813,17 @@ const containerResponsiveThemeCss = `/*
22711
22813
 
22712
22814
  /* All badges use a subtle theme-aware style by default */
22713
22815
  :where(.theme-scope) .badge-status-available {
22714
- background-color: rgba(var(--tb-secondary), 0.15);
22816
+ background-color: rgb(var(--tb-secondary) / 0.15);
22715
22817
  color: rgb(var(--tb-secondary-700, var(--tb-secondary)));
22716
22818
  }
22717
22819
 
22718
22820
  :where(.theme-scope) .badge-status-low {
22719
- background-color: rgba(var(--tb-accent), 0.15);
22821
+ background-color: rgb(var(--tb-accent) / 0.15);
22720
22822
  color: rgb(var(--tb-accent-700, var(--tb-accent)));
22721
22823
  }
22722
22824
 
22723
22825
  :where(.theme-scope) .badge-status-sold-out {
22724
- background-color: rgba(var(--tb-text), 0.1);
22826
+ background-color: rgb(var(--tb-text) / 0.1);
22725
22827
  color: rgb(var(--tb-mutedText));
22726
22828
  }
22727
22829
 
@@ -22790,7 +22892,7 @@ const containerResponsiveThemeCss = `/*
22790
22892
  * here too; block CSS provides the \`.rb-state-icon--{variant}\` colors.
22791
22893
  *
22792
22894
  * Naming: component-like primitives follow the existing bare \`rb-\` shared
22793
- * precedent (\`.rb-state-icon\`, \`.rb-tile\`): \`.rb-option-card\`, \`.rb-step-*\`,
22895
+ * precedent (\`.rb-state-icon\`, \`.rb-tile\`): \`.rb-option-card\`, \`.rb-progress*\`,
22794
22896
  * \`.rb-wizard-actions\`, \`.rb-on-surface\`, \`.rb-shell-*\`. Container/layout
22795
22897
  * pieces that would otherwise collide with the global \`.rb-*\` utility layer
22796
22898
  * are namespaced \`rb-reg-*\` (\`.rb-reg-surface\`, \`.rb-reg-stack\`, ...). All of
@@ -22813,6 +22915,13 @@ const containerResponsiveThemeCss = `/*
22813
22915
  height: 2rem;
22814
22916
  }
22815
22917
 
22918
+ /* The success tick reads as a mark inside its disc, not a line drawing */
22919
+ :where(.theme-scope) .rb-state-icon--success svg {
22920
+ width: 1.75rem;
22921
+ height: 1.75rem;
22922
+ stroke-width: 3;
22923
+ }
22924
+
22816
22925
  /* Surface container */
22817
22926
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-reg-surface {
22818
22927
  border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
@@ -22849,18 +22958,18 @@ const containerResponsiveThemeCss = `/*
22849
22958
  }
22850
22959
 
22851
22960
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:hover:not(:disabled):not([aria-disabled="true"]) {
22852
- border-color: var(--rb-reg-border-hover, rgba(var(--tb-primary, 17 24 39), 0.5));
22853
- box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08));
22961
+ border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary, 17 24 39) / 0.5));
22962
+ box-shadow: var(--rb-reg-option-hover-shadow, 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08));
22854
22963
  }
22855
22964
 
22856
22965
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card:focus-visible {
22857
- outline: 2px solid var(--rb-reg-focus-ring, rgba(var(--tb-primary, 17 24 39), 0.3));
22966
+ outline: 2px solid var(--rb-reg-focus-ring, rgb(var(--tb-primary, 17 24 39) / 0.3));
22858
22967
  outline-offset: 2px;
22859
22968
  }
22860
22969
 
22861
22970
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-option-card--selected {
22862
22971
  border-color: var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
22863
- background-color: var(--rb-reg-bg-selected, rgba(var(--tb-primary, 17 24 39), 0.08));
22972
+ background-color: var(--rb-reg-bg-selected, rgb(var(--tb-primary, 17 24 39) / 0.08));
22864
22973
  box-shadow: 0 0 0 1px var(--rb-reg-border-selected, rgb(var(--tb-primary, 17 24 39)));
22865
22974
  }
22866
22975
 
@@ -22892,78 +23001,45 @@ const containerResponsiveThemeCss = `/*
22892
23001
  color: var(--rb-reg-check-text, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
22893
23002
  }
22894
23003
 
22895
- /* Step indicator */
22896
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-steps-nav {
22897
- margin-bottom: 1.5rem;
22898
- }
22899
-
22900
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-steps {
22901
- display: flex;
22902
- align-items: center;
22903
- justify-content: center;
22904
- gap: 0.5rem;
22905
- list-style: none;
22906
- padding: 0;
22907
- margin: 0;
22908
- }
22909
-
22910
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step {
23004
+ /* Progress: the current step's label, "Step N of M" and a thin bar (issue 1581) */
23005
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress {
22911
23006
  display: flex;
22912
- align-items: center;
23007
+ flex-direction: column;
22913
23008
  gap: 0.5rem;
23009
+ margin-bottom: 1.5rem;
22914
23010
  }
22915
23011
 
22916
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle {
22917
- width: 1.75rem;
22918
- height: 1.75rem;
22919
- border-radius: 50%;
23012
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__head {
22920
23013
  display: flex;
22921
- align-items: center;
22922
- justify-content: center;
22923
- font-size: 0.75rem;
22924
- font-weight: 600;
22925
- background: var(--rb-reg-step-inactive, rgb(var(--tb-mutedText, 100 116 139)));
22926
- color: var(--rb-reg-step-text, rgb(var(--tb-primaryForeground, 255 255 255)));
22927
- transition: background-color var(--rb-block-transition, 150ms) ease;
22928
- }
22929
-
22930
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--active {
22931
- background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
22932
- color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
22933
- }
22934
-
22935
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-circle--completed {
22936
- background: var(--rb-reg-step-completed, rgb(var(--tb-success, 22 163 74)));
22937
- color: var(--rb-reg-step-text-active, rgb(var(--tb-onPrimary, var(--tb-primaryForeground, 255 255 255))));
22938
- }
22939
-
22940
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-check {
22941
- width: 0.75rem;
22942
- height: 0.75rem;
22943
- }
22944
-
22945
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-connector {
22946
- width: 2rem;
22947
- height: 2px;
22948
- background: var(--rb-reg-step-connector, rgba(var(--tb-border, 226 232 240), 0.5));
23014
+ align-items: baseline;
23015
+ justify-content: space-between;
23016
+ gap: 1rem;
23017
+ font-size: 0.8125rem;
23018
+ line-height: 1.3;
22949
23019
  }
22950
23020
 
22951
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label {
22952
- font-size: 0.75rem;
23021
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__label {
23022
+ font-weight: 700;
22953
23023
  color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
22954
- display: none;
22955
23024
  }
22956
23025
 
22957
- :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label--active {
22958
- font-weight: 500;
23026
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__count {
23027
+ margin-inline-start: auto;
23028
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
22959
23029
  }
22960
23030
 
22961
- @container rb-site (min-width: 640px) {
22962
- @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
22963
- :where(.theme-scope:is(*, :scope)) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-step-label {
22964
- display: inline;
22965
- }
23031
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__track {
23032
+ height: 4px;
23033
+ border-radius: 4px;
23034
+ background: rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.12);
23035
+ overflow: hidden;
22966
23036
  }
23037
+
23038
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-progress__fill {
23039
+ height: 100%;
23040
+ border-radius: 4px;
23041
+ background: var(--rb-reg-step-active, rgb(var(--tb-primary, 17 24 39)));
23042
+ transition: width var(--rb-block-transition, 150ms) ease;
22967
23043
  }
22968
23044
 
22969
23045
  /* Wizard actions row */
@@ -22980,21 +23056,26 @@ const containerResponsiveThemeCss = `/*
22980
23056
  margin-inline-start: auto;
22981
23057
  }
22982
23058
 
23059
+ /* A footer with only Back keeps it bottom-left, like every other step */
23060
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-wizard-actions--back-only > :only-child {
23061
+ margin-inline-start: 0;
23062
+ }
23063
+
22983
23064
  /* On-surface text ramp */
22984
23065
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface {
22985
23066
  color: var(--rb-reg-on-surface, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42))));
22986
23067
  }
22987
23068
 
22988
23069
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--muted {
22989
- color: var(--rb-reg-on-surface-muted, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.7));
23070
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.7));
22990
23071
  }
22991
23072
 
22992
23073
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--subtle {
22993
- color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
23074
+ color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
22994
23075
  }
22995
23076
 
22996
23077
  :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-on-surface--faint {
22997
- color: var(--rb-reg-on-surface-faint, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.5));
23078
+ color: var(--rb-reg-on-surface-faint, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.5));
22998
23079
  }
22999
23080
 
23000
23081
  /* Layout stacks */
@@ -23029,7 +23110,7 @@ const containerResponsiveThemeCss = `/*
23029
23110
  padding: 1rem;
23030
23111
  border-radius: calc(var(--rb-reg-radius, var(--rb-block-radius, 1rem)) * 0.75);
23031
23112
  border: 1px solid var(--rb-reg-summary-border, rgb(var(--tb-border, 226 232 240)));
23032
- background: var(--rb-reg-summary-bg, rgba(var(--tb-muted, 241 245 249), 0.42));
23113
+ background: var(--rb-reg-summary-bg, rgb(var(--tb-muted, 241 245 249) / 0.42));
23033
23114
  }
23034
23115
 
23035
23116
  /* Skeleton shell lines */
@@ -23038,9 +23119,9 @@ const containerResponsiveThemeCss = `/*
23038
23119
  border-radius: 9999px;
23039
23120
  background: linear-gradient(
23040
23121
  90deg,
23041
- var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22)),
23042
- rgba(var(--tb-primary, 17 24 39), 0.12),
23043
- var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22))
23122
+ var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22)),
23123
+ rgb(var(--tb-primary, 17 24 39) / 0.12),
23124
+ var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22))
23044
23125
  );
23045
23126
  }
23046
23127
 
@@ -23065,7 +23146,7 @@ const containerResponsiveThemeCss = `/*
23065
23146
  height: 2.5rem;
23066
23147
  width: 100%;
23067
23148
  border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
23068
- background: var(--rb-reg-shell-line, rgba(var(--tb-mutedText, 100 116 139), 0.22));
23149
+ background: var(--rb-reg-shell-line, rgb(var(--tb-mutedText, 100 116 139) / 0.22));
23069
23150
  animation: rb-reg-pulse 1.5s ease-in-out infinite;
23070
23151
  }
23071
23152
 
@@ -23084,6 +23165,101 @@ const containerResponsiveThemeCss = `/*
23084
23165
  }
23085
23166
  }
23086
23167
 
23168
+ /* Payment choices (issue 1581): one full-width radio row per way to pay, the
23169
+ * label and detail on the left, the price on the right. Shared by event and
23170
+ * appointment booking (PaymentChoiceRows). */
23171
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choices {
23172
+ display: flex;
23173
+ flex-direction: column;
23174
+ gap: 0.625rem;
23175
+ }
23176
+
23177
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice {
23178
+ display: flex;
23179
+ align-items: flex-start;
23180
+ gap: 0.875rem;
23181
+ padding: 1rem 1.125rem;
23182
+ border: 1px solid var(--rb-reg-border, rgb(var(--tb-border)));
23183
+ border-radius: var(--rb-reg-radius, var(--rb-block-radius, 1rem));
23184
+ background: var(--rb-reg-option-bg, transparent);
23185
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
23186
+ cursor: pointer;
23187
+ transition:
23188
+ border-color var(--rb-block-transition, 150ms) ease,
23189
+ background-color var(--rb-block-transition, 150ms) ease;
23190
+ }
23191
+
23192
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:hover:not(.rb-pay-choice--disabled) {
23193
+ border-color: var(--rb-reg-border-hover, rgb(var(--tb-primary) / 0.5));
23194
+ }
23195
+
23196
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice:focus-within {
23197
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
23198
+ }
23199
+
23200
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected {
23201
+ border-color: rgb(var(--tb-primary));
23202
+ box-shadow: inset 0 0 0 1px rgb(var(--tb-primary));
23203
+ background: rgb(var(--tb-primary) / 0.06);
23204
+ }
23205
+
23206
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--selected:focus-within {
23207
+ box-shadow:
23208
+ inset 0 0 0 1px rgb(var(--tb-primary)),
23209
+ 0 0 0 3px rgb(var(--tb-primary) / 0.25);
23210
+ }
23211
+
23212
+ /* Disabled stays readable: a dashed edge and quieter text, with its reason */
23213
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice--disabled {
23214
+ border-style: dashed;
23215
+ cursor: not-allowed;
23216
+ }
23217
+
23218
+ :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) {
23219
+ opacity: 0.65;
23220
+ }
23221
+
23222
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__radio {
23223
+ flex: 0 0 auto;
23224
+ width: 1.25rem;
23225
+ height: 1.25rem;
23226
+ margin: 0.125rem 0 0;
23227
+ accent-color: rgb(var(--tb-primary));
23228
+ cursor: inherit;
23229
+ }
23230
+
23231
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__body {
23232
+ flex: 1 1 auto;
23233
+ min-width: 0;
23234
+ display: flex;
23235
+ flex-direction: column;
23236
+ gap: 0.125rem;
23237
+ }
23238
+
23239
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__label {
23240
+ font-weight: 700;
23241
+ line-height: 1.35;
23242
+ }
23243
+
23244
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__detail {
23245
+ font-size: 0.875rem;
23246
+ line-height: 1.4;
23247
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
23248
+ }
23249
+
23250
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__reason {
23251
+ font-size: 0.8125rem;
23252
+ line-height: 1.4;
23253
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
23254
+ }
23255
+
23256
+ :where(.theme-scope) :where([data-block="event-registration"], [data-block="appointment-booking"]) .rb-pay-choice__price {
23257
+ flex: 0 0 auto;
23258
+ font-weight: 700;
23259
+ text-align: end;
23260
+ white-space: nowrap;
23261
+ }
23262
+
23087
23263
  /* =============================================================================
23088
23264
  * Block: Event Registration (pilot #76)
23089
23265
  * Uses CSS vars: --er-* (Tier 3) and --rb-block-* (Tier 2)
@@ -23098,17 +23274,14 @@ const containerResponsiveThemeCss = `/*
23098
23274
  --rb-event-tile-border-hover: var(--er-border-hover);
23099
23275
  --rb-event-tile-border-selected: var(--er-border-selected);
23100
23276
  --rb-event-tile-hover-opacity: var(--er-event-card-hover-opacity);
23101
- --rb-event-tile-bg-selected: rgba(var(--tb-primary), 0.1);
23277
+ --rb-event-tile-bg-selected: rgb(var(--tb-primary) / 0.1);
23102
23278
  --er-on-surface: rgb(var(--tb-onSurface, var(--tb-text)));
23103
- --er-on-surface-muted: rgba(var(--tb-onSurface, var(--tb-text)), 0.7);
23104
- --er-on-surface-subtle: rgba(var(--tb-onSurface, var(--tb-text)), 0.6);
23105
- --er-on-surface-faint: rgba(var(--tb-onSurface, var(--tb-text)), 0.5);
23106
- --er-on-surface-hover-bg: rgba(var(--tb-onSurface, var(--tb-text)), 0.05);
23107
- --er-on-surface-disabled: rgba(var(--tb-onSurface, var(--tb-text)), 0.78);
23108
- --er-on-surface-disabled-detail: rgba(
23109
- var(--tb-onSurface, var(--tb-text)),
23110
- 0.68
23111
- );
23279
+ --er-on-surface-muted: rgb(var(--tb-onSurface, var(--tb-text)) / 0.7);
23280
+ --er-on-surface-subtle: rgb(var(--tb-onSurface, var(--tb-text)) / 0.6);
23281
+ --er-on-surface-faint: rgb(var(--tb-onSurface, var(--tb-text)) / 0.5);
23282
+ --er-on-surface-hover-bg: rgb(var(--tb-onSurface, var(--tb-text)) / 0.05);
23283
+ --er-on-surface-disabled: rgb(var(--tb-onSurface, var(--tb-text)) / 0.78);
23284
+ --er-on-surface-disabled-detail: rgb(var(--tb-onSurface, var(--tb-text)) / 0.68);
23112
23285
  }
23113
23286
 
23114
23287
  /* Container: styled by the shared .rb-reg-surface (registration-surface.css);
@@ -23236,92 +23409,195 @@ const containerResponsiveThemeCss = `/*
23236
23409
  opacity: 0.6;
23237
23410
  }
23238
23411
 
23239
- /* Capacity badges */
23240
- :where(.theme-scope)
23241
- :where([data-block='event-registration'])
23242
- .er-capacity-badge {
23243
- font-size: 0.875rem;
23244
- padding: 0.25rem 0.5rem;
23245
- border-radius: calc(var(--rb-block-radius) * 0.5);
23246
- }
23247
-
23412
+ /* Date step (issue 1581): one radio row per date, on the shared event tile */
23248
23413
  :where(.theme-scope)
23249
23414
  :where([data-block='event-registration'])
23250
- .er-capacity-badge--available {
23251
- background: var(--er-capacity-available-bg);
23252
- color: var(--er-capacity-available-text);
23415
+ .er-date-list {
23416
+ display: flex;
23417
+ flex-direction: column;
23418
+ gap: 0.625rem;
23253
23419
  }
23254
23420
 
23255
23421
  :where(.theme-scope)
23256
23422
  :where([data-block='event-registration'])
23257
- .er-capacity-badge--low {
23258
- background: var(--er-capacity-low-bg);
23259
- color: var(--er-capacity-low-text);
23423
+ .er-date-list__month {
23424
+ margin: 0.5rem 0 0;
23425
+ font-size: 0.75rem;
23426
+ font-weight: 700;
23427
+ letter-spacing: 0.08em;
23428
+ text-transform: uppercase;
23429
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
23260
23430
  }
23261
23431
 
23262
23432
  :where(.theme-scope)
23263
23433
  :where([data-block='event-registration'])
23264
- .er-capacity-badge--soldout {
23265
- background: var(--er-capacity-soldout-bg);
23266
- color: var(--er-capacity-soldout-text);
23434
+ .er-date-list__month:first-child {
23435
+ margin-top: 0;
23267
23436
  }
23268
23437
 
23269
- /* Selected event summary: superseded by the shared .rb-reg-summary
23270
- (registration-surface.css); no markup emitted .er-event-summary anymore. */
23271
-
23272
- /* Ticket counter */
23273
23438
  :where(.theme-scope)
23274
23439
  :where([data-block='event-registration'])
23275
- .er-ticket-counter-group {
23440
+ .er-event-card.er-date-option {
23276
23441
  display: flex;
23277
23442
  align-items: center;
23278
23443
  gap: 0.875rem;
23279
- flex-wrap: wrap;
23444
+ padding: 0.875rem 1rem;
23445
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
23280
23446
  }
23281
23447
 
23282
- :where(.theme-scope) :where([data-block='event-registration']) .er-counter {
23283
- gap: 0.625rem;
23448
+ :where(.theme-scope)
23449
+ :where([data-block='event-registration'])
23450
+ .er-date-option:focus-within {
23451
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
23284
23452
  }
23285
23453
 
23286
- :where(.theme-scope) :where([data-block='event-registration']) .er-counter-btn {
23287
- width: 2.125rem;
23288
- height: 2.125rem;
23289
- border-radius: 50%;
23290
- border: 1px solid var(--er-border);
23291
- background: transparent;
23454
+ :where(.theme-scope)
23455
+ :where([data-block='event-registration'])
23456
+ .er-date-option__radio {
23457
+ flex: 0 0 auto;
23458
+ width: 1.25rem;
23459
+ height: 1.25rem;
23460
+ margin: 0;
23461
+ accent-color: rgb(var(--tb-primary));
23292
23462
  cursor: pointer;
23293
- font-size: 1rem;
23294
- line-height: 1;
23295
- transition: border-color var(--rb-block-transition) ease;
23296
23463
  }
23297
23464
 
23298
23465
  :where(.theme-scope)
23299
23466
  :where([data-block='event-registration'])
23300
- .er-counter-btn:hover:not(:disabled) {
23301
- border-color: var(--er-border-hover);
23467
+ .er-date-option__main {
23468
+ flex: 1 1 auto;
23469
+ min-width: 0;
23470
+ display: flex;
23471
+ flex-direction: column;
23472
+ gap: 0.125rem;
23302
23473
  }
23303
23474
 
23304
23475
  :where(.theme-scope)
23305
23476
  :where([data-block='event-registration'])
23306
- .er-counter-btn:disabled {
23307
- opacity: 0.5;
23308
- cursor: not-allowed;
23477
+ .er-date-option__date {
23478
+ font-weight: 700;
23479
+ line-height: 1.3;
23309
23480
  }
23310
23481
 
23311
23482
  :where(.theme-scope)
23312
23483
  :where([data-block='event-registration'])
23313
- .er-ticket-counter-limit {
23314
- margin: 0;
23315
- color: var(--er-on-surface-muted);
23316
- font-size: 0.8125rem;
23317
- line-height: 1.35;
23484
+ .er-date-option__time {
23485
+ font-size: 0.875rem;
23486
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
23318
23487
  }
23319
23488
 
23320
23489
  :where(.theme-scope)
23321
23490
  :where([data-block='event-registration'])
23322
- .er-ticket-lines {
23323
- display: grid;
23324
- gap: 0.75rem;
23491
+ .er-date-option__places {
23492
+ flex: 0 0 auto;
23493
+ padding: 0.125rem 0.5rem;
23494
+ border: 1px solid var(--er-border);
23495
+ border-radius: 999px;
23496
+ font-size: 0.75rem;
23497
+ font-weight: 700;
23498
+ white-space: nowrap;
23499
+ }
23500
+
23501
+ /* Full dates stay selectable (a guest can still reach recovery) but read as quiet */
23502
+ :where(.theme-scope)
23503
+ :where([data-block='event-registration'])
23504
+ .er-date-option--full {
23505
+ border-style: dashed;
23506
+ }
23507
+
23508
+ :where(.theme-scope)
23509
+ :where([data-block='event-registration'])
23510
+ .er-date-option--full
23511
+ :is(.er-date-option__main, .er-date-option__places) {
23512
+ opacity: 0.6;
23513
+ }
23514
+
23515
+ /* Capacity badges */
23516
+ :where(.theme-scope)
23517
+ :where([data-block='event-registration'])
23518
+ .er-capacity-badge {
23519
+ font-size: 0.875rem;
23520
+ padding: 0.25rem 0.5rem;
23521
+ border-radius: calc(var(--rb-block-radius) * 0.5);
23522
+ }
23523
+
23524
+ :where(.theme-scope)
23525
+ :where([data-block='event-registration'])
23526
+ .er-capacity-badge--available {
23527
+ background: var(--er-capacity-available-bg);
23528
+ color: var(--er-capacity-available-text);
23529
+ }
23530
+
23531
+ :where(.theme-scope)
23532
+ :where([data-block='event-registration'])
23533
+ .er-capacity-badge--low {
23534
+ background: var(--er-capacity-low-bg);
23535
+ color: var(--er-capacity-low-text);
23536
+ }
23537
+
23538
+ :where(.theme-scope)
23539
+ :where([data-block='event-registration'])
23540
+ .er-capacity-badge--soldout {
23541
+ background: var(--er-capacity-soldout-bg);
23542
+ color: var(--er-capacity-soldout-text);
23543
+ }
23544
+
23545
+ /* Selected event summary: superseded by the shared .rb-reg-summary
23546
+ (registration-surface.css); no markup emitted .er-event-summary anymore. */
23547
+
23548
+ /* Ticket counter */
23549
+ :where(.theme-scope)
23550
+ :where([data-block='event-registration'])
23551
+ .er-ticket-counter-group {
23552
+ display: flex;
23553
+ align-items: center;
23554
+ gap: 0.875rem;
23555
+ flex-wrap: wrap;
23556
+ }
23557
+
23558
+ :where(.theme-scope) :where([data-block='event-registration']) .er-counter {
23559
+ gap: 0.625rem;
23560
+ }
23561
+
23562
+ :where(.theme-scope) :where([data-block='event-registration']) .er-counter-btn {
23563
+ width: 2.125rem;
23564
+ height: 2.125rem;
23565
+ border-radius: 50%;
23566
+ border: 1px solid var(--er-border);
23567
+ background: transparent;
23568
+ cursor: pointer;
23569
+ font-size: 1rem;
23570
+ line-height: 1;
23571
+ transition: border-color var(--rb-block-transition) ease;
23572
+ }
23573
+
23574
+ :where(.theme-scope)
23575
+ :where([data-block='event-registration'])
23576
+ .er-counter-btn:hover:not(:disabled) {
23577
+ border-color: var(--er-border-hover);
23578
+ }
23579
+
23580
+ :where(.theme-scope)
23581
+ :where([data-block='event-registration'])
23582
+ .er-counter-btn:disabled {
23583
+ opacity: 0.5;
23584
+ cursor: not-allowed;
23585
+ }
23586
+
23587
+ :where(.theme-scope)
23588
+ :where([data-block='event-registration'])
23589
+ .er-ticket-counter-limit {
23590
+ margin: 0;
23591
+ color: var(--er-on-surface-muted);
23592
+ font-size: 0.8125rem;
23593
+ line-height: 1.35;
23594
+ }
23595
+
23596
+ :where(.theme-scope)
23597
+ :where([data-block='event-registration'])
23598
+ .er-ticket-lines {
23599
+ display: grid;
23600
+ gap: 0.75rem;
23325
23601
  }
23326
23602
 
23327
23603
  :where(.theme-scope)
@@ -23441,63 +23717,31 @@ const containerResponsiveThemeCss = `/*
23441
23717
  }
23442
23718
  }
23443
23719
 
23444
- /* Form inputs */
23445
- :where(.theme-scope) :where([data-block='event-registration']) .er-input {
23446
- width: 100%;
23447
- min-height: 2.75rem;
23448
- padding: 0.625rem 0.75rem;
23449
- border-radius: calc(var(--rb-block-radius) * 0.5);
23450
- border: 1px solid var(--er-border);
23451
- background: var(--er-control-bg);
23452
- color: var(--er-control-text);
23453
- font: inherit;
23454
- line-height: 1.4;
23455
- transition:
23456
- border-color var(--rb-block-transition) ease,
23457
- background-color var(--rb-block-transition) ease,
23458
- box-shadow var(--rb-block-transition) ease;
23459
- }
23460
-
23461
- :where(.theme-scope)
23462
- :where([data-block='event-registration'])
23463
- .er-input::placeholder {
23464
- color: var(--er-on-surface-faint);
23465
- }
23466
-
23467
- :where(.theme-scope) :where([data-block='event-registration']) .er-input:focus {
23468
- outline: none;
23469
- border-color: var(--er-border-selected);
23470
- box-shadow: 0 0 0 3px var(--er-focus-ring);
23471
- }
23720
+ /* Fields use the theme's own form-label / form-input / form-textarea
23721
+ (theme-core/src/inputs/generateInputCss.ts), like the site's form block. */
23472
23722
 
23473
23723
  :where(.theme-scope)
23474
23724
  :where([data-block='event-registration'])
23475
- .er-input--error {
23476
- border-color: var(--er-border-error);
23725
+ .er-label-optional {
23726
+ font-weight: 400;
23727
+ text-transform: none;
23728
+ letter-spacing: normal;
23729
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
23477
23730
  }
23478
23731
 
23479
23732
  :where(.theme-scope)
23480
23733
  :where([data-block='event-registration'])
23481
- .er-input--error:focus {
23482
- box-shadow: 0 0 0 3px rgba(var(--tb-destructive), 0.2);
23483
- }
23484
-
23485
- /* Form labels and errors */
23486
- :where(.theme-scope) :where([data-block='event-registration']) .er-label {
23487
- display: block;
23488
- font-size: 0.875rem;
23489
- font-weight: 500;
23490
- margin-bottom: 0.25rem;
23734
+ .er-field-hint {
23735
+ margin: 0.375rem 0 0;
23736
+ font-size: 0.8125rem;
23737
+ line-height: 1.4;
23738
+ color: var(--rb-surface-supporting-color, var(--er-on-surface-muted));
23491
23739
  }
23492
23740
 
23493
23741
  :where(.theme-scope) :where([data-block='event-registration']) .er-consent-check {
23494
23742
  margin-top: 0.75rem;
23495
23743
  }
23496
23744
 
23497
- :where(.theme-scope) :where([data-block='event-registration']) .er-required {
23498
- color: var(--er-required);
23499
- }
23500
-
23501
23745
  :where(.theme-scope) :where([data-block='event-registration']) .er-error {
23502
23746
  font-size: 0.875rem;
23503
23747
  color: var(--er-error-text);
@@ -23506,12 +23750,14 @@ const containerResponsiveThemeCss = `/*
23506
23750
 
23507
23751
  /* Back button */
23508
23752
  :where(.theme-scope) :where([data-block='event-registration']) .er-back-btn {
23509
- font-size: 0.875rem;
23510
- opacity: 0.7;
23753
+ font-size: 0.9375rem;
23754
+ font-weight: 700;
23755
+ opacity: 0.8;
23511
23756
  background: none;
23512
23757
  border: none;
23513
23758
  cursor: pointer;
23514
- padding: 0;
23759
+ padding: 0 0.25rem;
23760
+ min-height: 2.75rem;
23515
23761
  transition: opacity var(--rb-block-transition) ease;
23516
23762
  }
23517
23763
 
@@ -23522,11 +23768,12 @@ const containerResponsiveThemeCss = `/*
23522
23768
  }
23523
23769
 
23524
23770
  /* State icon color variants (layout from registration-surface.css) */
23771
+ /* Success: a solid primary disc with an on-primary tick (issue 1581) */
23525
23772
  :where(.theme-scope)
23526
23773
  :where([data-block='event-registration'])
23527
23774
  .rb-state-icon--success {
23528
- background: var(--er-success-bg);
23529
- color: var(--er-success-text);
23775
+ background: rgb(var(--tb-primary));
23776
+ color: rgb(var(--tb-onPrimary));
23530
23777
  }
23531
23778
 
23532
23779
  :where(.theme-scope)
@@ -23575,14 +23822,15 @@ const containerResponsiveThemeCss = `/*
23575
23822
 
23576
23823
  /* Typography */
23577
23824
  :where(.theme-scope) :where([data-block='event-registration']) .er-title {
23578
- font-size: var(--er-step-title-size, 1.5rem);
23579
- font-weight: 600;
23580
- line-height: 1.3;
23825
+ font-family: var(--font-heading, inherit);
23826
+ font-size: var(--er-step-title-size, 1.75rem);
23827
+ line-height: 1.15;
23581
23828
  }
23582
23829
 
23830
+ /* Confirmation and error titles: never smaller than a step's heading */
23583
23831
  :where(.theme-scope) :where([data-block='event-registration']) .er-title--lg {
23584
- font-size: 1.25rem;
23585
- line-height: 1.75rem;
23832
+ font-size: calc(var(--er-step-title-size, 1.75rem) * 1.15);
23833
+ line-height: 1.1;
23586
23834
  }
23587
23835
 
23588
23836
  :where(.theme-scope) :where([data-block='event-registration']) .er-text {
@@ -23808,7 +24056,7 @@ const containerResponsiveThemeCss = `/*
23808
24056
  padding: 1.25rem;
23809
24057
  border: 1px solid var(--er-border);
23810
24058
  border-radius: var(--rb-block-radius);
23811
- background: rgba(var(--tb-surface), 0.5);
24059
+ background: rgb(var(--tb-surface) / 0.5);
23812
24060
  text-align: center;
23813
24061
  }
23814
24062
 
@@ -23913,7 +24161,7 @@ const containerResponsiveThemeCss = `/*
23913
24161
  :where([data-block='event-registration'])
23914
24162
  .er-payment-option:hover {
23915
24163
  border-color: var(--er-payment-border-hover);
23916
- box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
24164
+ box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
23917
24165
  }
23918
24166
 
23919
24167
  :where(.theme-scope)
@@ -24113,103 +24361,6 @@ const containerResponsiveThemeCss = `/*
24113
24361
  color: var(--er-on-surface);
24114
24362
  }
24115
24363
 
24116
- /* Two-column layout (Desktop: sidebar, Mobile: stacked) */
24117
- :where(.theme-scope) :where([data-block='event-registration']) .er-layout {
24118
- display: grid;
24119
- gap: 1.5rem;
24120
- /* Mobile: single column, summary at top */
24121
- grid-template-columns: 1fr;
24122
- grid-template-areas:
24123
- 'summary'
24124
- 'main';
24125
- }
24126
-
24127
- @container rb-site (min-width: 768px) {
24128
- @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
24129
- :where(.theme-scope:is(*, :scope)) :where([data-block='event-registration']) .er-layout {
24130
- /* Desktop: main + sidebar */
24131
- grid-template-columns: 1fr 300px;
24132
- grid-template-areas: 'main summary';
24133
- }
24134
- }
24135
- }
24136
-
24137
- :where(.theme-scope) :where([data-block='event-registration']) .er-layout-main {
24138
- grid-area: main;
24139
- }
24140
-
24141
- /* OrderSummary positions via grid area */
24142
- :where(.theme-scope)
24143
- :where([data-block='event-registration'])
24144
- .er-layout
24145
- > .er-summary {
24146
- grid-area: summary;
24147
- }
24148
-
24149
- /* Step indicator */
24150
- :where(.theme-scope) :where([data-block='event-registration']) .er-steps-nav {
24151
- margin-bottom: 1.5rem;
24152
- }
24153
-
24154
- /* Step indicator internals: styled by the shared .rb-steps / .rb-step-*
24155
- family (registration-surface.css) via the --rb-reg-step-* mappings in the
24156
- event-registration var generator; er-* classes remain in markup as hooks.
24157
- Note: .er-steps-nav above is intentionally retained — its source position
24158
- keeps the wizard's 1.5rem step margin winning over the SSR shell's
24159
- 1.25rem .er-registration-shell__steps override. */
24160
-
24161
- /* Sticky order summary */
24162
- :where(.theme-scope) :where([data-block='event-registration']) .er-summary {
24163
- padding: 1.25rem;
24164
- background: var(--er-summary-bg);
24165
- border: 1px solid var(--er-summary-border);
24166
- border-radius: var(--rb-block-radius);
24167
- display: flex;
24168
- flex-direction: column;
24169
- justify-content: center;
24170
- align-items: center;
24171
- text-align: center;
24172
- min-height: 140px;
24173
- }
24174
-
24175
- @container rb-site (min-width: 768px) {
24176
- @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
24177
- :where(.theme-scope:is(*, :scope)) :where([data-block='event-registration']) .er-summary {
24178
- position: sticky;
24179
- top: 1rem;
24180
- }
24181
- }
24182
- }
24183
-
24184
- :where(.theme-scope)
24185
- :where([data-block='event-registration'])
24186
- .er-summary-event {
24187
- font-weight: 600;
24188
- margin-bottom: 0.25rem;
24189
- }
24190
-
24191
- :where(.theme-scope)
24192
- :where([data-block='event-registration'])
24193
- .er-summary-date {
24194
- font-size: 0.875rem;
24195
- color: rgba(var(--tb-text), 0.7);
24196
- }
24197
-
24198
- :where(.theme-scope)
24199
- :where([data-block='event-registration'])
24200
- .er-summary-tickets {
24201
- font-size: 0.875rem;
24202
- margin-top: 0.75rem;
24203
- }
24204
-
24205
- :where(.theme-scope)
24206
- :where([data-block='event-registration'])
24207
- .er-summary-price {
24208
- font-size: 1.25rem;
24209
- font-weight: 700;
24210
- margin-top: 0.5rem;
24211
- }
24212
-
24213
24364
  /* Guest details section */
24214
24365
  :where(.theme-scope)
24215
24366
  :where([data-block='event-registration'])
@@ -24270,17 +24421,6 @@ const containerResponsiveThemeCss = `/*
24270
24421
  border-top: 1px solid var(--er-border);
24271
24422
  }
24272
24423
 
24273
- @container rb-site (min-width: 768px) {
24274
- @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
24275
- :where(.theme-scope:is(*, :scope))
24276
- :where([data-block='event-registration'])
24277
- .er-guest-card {
24278
- grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
24279
- column-gap: 1rem;
24280
- align-items: start;
24281
- }
24282
- }
24283
- }
24284
24424
 
24285
24425
  /* Shake animation for validation errors */
24286
24426
  @keyframes er-shake {
@@ -24604,8 +24744,8 @@ const containerResponsiveThemeCss = `/*
24604
24744
  :where(.theme-scope)
24605
24745
  :where([data-block='event-registration'])
24606
24746
  .er-notice--info {
24607
- background-color: rgba(var(--tb-primary-100), 0.5);
24608
- border: 1px solid rgba(var(--tb-primary-300), 0.5);
24747
+ background-color: rgb(var(--tb-primary-100) / 0.5);
24748
+ border: 1px solid rgb(var(--tb-primary-300) / 0.5);
24609
24749
  color: rgb(var(--tb-primary-800));
24610
24750
  }
24611
24751
 
@@ -24691,12 +24831,40 @@ const containerResponsiveThemeCss = `/*
24691
24831
  :where([data-block='event-registration'])
24692
24832
  .er-payment-layout-main {
24693
24833
  grid-area: main;
24834
+ /* A column, so an optional sign-in line can settle at the foot of the step. */
24835
+ display: flex;
24836
+ flex-direction: column;
24837
+ }
24838
+
24839
+ :where(.theme-scope)
24840
+ :where([data-block='event-registration'])
24841
+ .er-payment-layout-main
24842
+ > * {
24843
+ flex-shrink: 0;
24694
24844
  }
24695
24845
 
24696
24846
  :where(.theme-scope)
24697
24847
  :where([data-block='event-registration'])
24698
24848
  .er-payment-layout-main
24699
- > .er-portal-auth {
24849
+ > .er-portal-auth[data-placement='before'] {
24850
+ margin-bottom: 1.5rem;
24851
+ }
24852
+
24853
+ /* The optional sign-in line: pinned to the foot of the step behind a hairline,
24854
+ and never closer than 1.5rem to the step's content. */
24855
+ :where(.theme-scope)
24856
+ :where([data-block='event-registration'])
24857
+ .er-payment-layout-main
24858
+ > .er-portal-auth[data-placement='after'] {
24859
+ margin-top: auto;
24860
+ padding-top: 1rem;
24861
+ border-top: 1px solid var(--er-border);
24862
+ }
24863
+
24864
+ :where(.theme-scope)
24865
+ :where([data-block='event-registration'])
24866
+ .er-payment-layout-main
24867
+ > :has(+ .er-portal-auth[data-placement='after']) {
24700
24868
  margin-bottom: 1.5rem;
24701
24869
  }
24702
24870
 
@@ -24716,7 +24884,7 @@ const containerResponsiveThemeCss = `/*
24716
24884
  }
24717
24885
 
24718
24886
  /* =============================================================================
24719
- * Payment Tiles Grid
24887
+ * Attendance mode tiles (in person / online)
24720
24888
  * =============================================================================
24721
24889
  */
24722
24890
 
@@ -24761,9 +24929,9 @@ const containerResponsiveThemeCss = `/*
24761
24929
 
24762
24930
  :where(.theme-scope)
24763
24931
  :where([data-block='event-registration'])
24764
- .er-payment-tile:hover:not([aria-disabled='true']) {
24932
+ .er-payment-tile:hover {
24765
24933
  border-color: var(--er-payment-border-hover);
24766
- box-shadow: 0 8px 18px rgba(var(--tb-shadow, 15 23 42), 0.08);
24934
+ box-shadow: 0 8px 18px rgb(var(--tb-shadow, 15 23 42) / 0.08);
24767
24935
  }
24768
24936
 
24769
24937
  :where(.theme-scope)
@@ -24776,122 +24944,18 @@ const containerResponsiveThemeCss = `/*
24776
24944
 
24777
24945
  :where(.theme-scope)
24778
24946
  :where([data-block='event-registration'])
24779
- .er-payment-tile--disabled {
24780
- cursor: not-allowed;
24781
- }
24782
-
24783
- :where(.theme-scope)
24784
- :where([data-block='event-registration'])
24785
- .er-payment-tile--disabled
24786
- > :not(.er-payment-tooltip) {
24787
- opacity: 0.5;
24947
+ .er-payment-tile-label {
24948
+ font-weight: 500;
24949
+ font-size: 0.875rem;
24950
+ line-height: 1.2;
24788
24951
  }
24789
24952
 
24790
24953
  :where(.theme-scope)
24791
24954
  :where([data-block='event-registration'])
24792
- .er-payment-tile--disabled.er-payment-tile--selected {
24793
- border-color: var(--er-payment-border);
24794
- background-color: transparent;
24795
- }
24796
-
24797
- :where(.theme-scope)
24798
- :where([data-block='event-registration'])
24799
- .er-payment-tile--disabled:hover {
24800
- border-color: var(--er-payment-border);
24801
- }
24802
-
24803
- /* Tooltip styling for disabled payment tiles */
24804
- :where(.theme-scope)
24805
- :where([data-block='event-registration'])
24806
- .er-payment-tile[aria-disabled='true'] {
24807
- position: relative;
24808
- }
24809
-
24810
- :where(.theme-scope)
24811
- :where([data-block='event-registration'])
24812
- .er-payment-tooltip {
24813
- display: none;
24814
- position: absolute;
24815
- bottom: 100%;
24816
- left: 50%;
24817
- transform: translateX(-50%);
24818
- margin-bottom: 0.5rem;
24819
- padding: 0.5rem 0.75rem;
24820
- background: rgb(var(--tb-text));
24821
- color: rgb(var(--tb-background));
24822
- font-size: 0.8125rem;
24823
- font-weight: 500;
24824
- border-radius: calc(var(--rb-block-radius) * 0.5);
24825
- white-space: normal;
24826
- max-width: 16rem;
24827
- line-height: 1.35;
24828
- text-align: center;
24829
- box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
24830
- z-index: 10;
24831
- }
24832
-
24833
- :where(.theme-scope)
24834
- :where([data-block='event-registration'])
24835
- .er-payment-tile--disabled:hover
24836
- .er-payment-tooltip {
24837
- display: block;
24838
- }
24839
-
24840
- :where(.theme-scope)
24841
- :where([data-block='event-registration'])
24842
- .er-payment-tile-icon {
24843
- font-size: 1.5rem;
24844
- line-height: 1;
24845
- /* SVG icon sizing */
24846
- display: flex;
24847
- align-items: center;
24848
- justify-content: center;
24849
- }
24850
-
24851
- :where(.theme-scope)
24852
- :where([data-block='event-registration'])
24853
- .er-payment-tile-icon
24854
- svg {
24855
- width: 24px;
24856
- height: 24px;
24857
- color: currentColor;
24858
- }
24859
-
24860
- :where(.theme-scope)
24861
- :where([data-block='event-registration'])
24862
- .er-payment-tile-label {
24863
- font-weight: 500;
24864
- font-size: 0.875rem;
24865
- line-height: 1.2;
24866
- }
24867
-
24868
- :where(.theme-scope)
24869
- :where([data-block='event-registration'])
24870
- .er-payment-tile-detail {
24871
- font-size: 0.78125rem;
24872
- color: var(--er-on-surface-subtle);
24873
- line-height: 1.25;
24874
- }
24875
-
24876
- :where(.theme-scope)
24877
- :where([data-block='event-registration'])
24878
- .er-payment-tile-check {
24879
- position: absolute;
24880
- top: 0.5rem;
24881
- right: 0.5rem;
24882
- }
24883
-
24884
- /* Upsell tiles have a subtle indicator */
24885
- :where(.theme-scope)
24886
- :where([data-block='event-registration'])
24887
- .er-payment-tile--upsell {
24888
- border-style: dashed;
24889
- }
24890
-
24891
- :where(.theme-scope)
24892
- :where([data-block='event-registration'])
24893
- .er-payment-tile--upsell.er-payment-tile--selected {
24894
- border-style: solid;
24955
+ .er-payment-tile-detail {
24956
+ font-size: 0.78125rem;
24957
+ color: var(--er-on-surface-subtle);
24958
+ line-height: 1.25;
24895
24959
  }
24896
24960
 
24897
24961
  /* =============================================================================
@@ -24901,14 +24965,12 @@ const containerResponsiveThemeCss = `/*
24901
24965
  */
24902
24966
 
24903
24967
  :where(.theme-scope) :where([data-block='event-registration']) .er-summary-bar {
24968
+ /* One row under the footer's hairline: what's booked, then the total
24969
+ (issue 1581). */
24904
24970
  display: flex;
24905
24971
  justify-content: space-between;
24906
- align-items: flex-start;
24972
+ align-items: baseline;
24907
24973
  gap: 1rem;
24908
- padding: 0.875rem 1rem;
24909
- background: var(--er-surface-muted);
24910
- border: 1px solid var(--er-summary-border);
24911
- border-radius: calc(var(--rb-block-radius) * 0.75);
24912
24974
  }
24913
24975
 
24914
24976
  :where(.theme-scope)
@@ -24931,18 +24993,30 @@ const containerResponsiveThemeCss = `/*
24931
24993
  :where(.theme-scope)
24932
24994
  :where([data-block='event-registration'])
24933
24995
  .er-summary-bar-meta {
24934
- font-size: 0.8125rem;
24935
- color: rgba(var(--tb-text), 0.7);
24996
+ font-size: 0.9375rem;
24936
24997
  line-height: 1.35;
24937
24998
  }
24938
24999
 
25000
+ :where(.theme-scope)
25001
+ :where([data-block='event-registration'])
25002
+ .er-summary-bar-meta
25003
+ > span
25004
+ + span::before {
25005
+ content: ' · ';
25006
+ }
25007
+
25008
+ :where(.theme-scope)
25009
+ :where([data-block='event-registration'])
25010
+ .er-summary-bar-schedule {
25011
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.7));
25012
+ }
25013
+
24939
25014
  :where(.theme-scope)
24940
25015
  :where([data-block='event-registration'])
24941
25016
  .er-summary-bar-price {
24942
- font-size: 1rem;
25017
+ font-size: 1.125rem;
24943
25018
  font-weight: 700;
24944
25019
  flex-shrink: 0;
24945
- display: block;
24946
25020
  text-align: right;
24947
25021
  }
24948
25022
 
@@ -24950,12 +25024,22 @@ const containerResponsiveThemeCss = `/*
24950
25024
  :where([data-block='event-registration'])
24951
25025
  .er-summary-bar-pricing {
24952
25026
  display: flex;
24953
- flex-direction: column;
24954
- align-items: flex-end;
24955
- gap: 0.125rem;
25027
+ flex-wrap: wrap;
25028
+ justify-content: flex-end;
25029
+ align-items: baseline;
25030
+ column-gap: 0.5rem;
25031
+ row-gap: 0.125rem;
24956
25032
  text-align: right;
24957
25033
  }
24958
25034
 
25035
+ /* Notes under the total take their own line */
25036
+ :where(.theme-scope)
25037
+ :where([data-block='event-registration'])
25038
+ .er-summary-bar-pricing
25039
+ > div {
25040
+ flex-basis: 100%;
25041
+ }
25042
+
24959
25043
  /* Product section in summary bar (for pass/membership selection) */
24960
25044
  :where(.theme-scope)
24961
25045
  :where([data-block='event-registration'])
@@ -25001,7 +25085,7 @@ const containerResponsiveThemeCss = `/*
25001
25085
  :where([data-block='event-registration'])
25002
25086
  .er-summary-bar-product-detail {
25003
25087
  font-size: 0.8125rem;
25004
- color: rgba(var(--tb-text), 0.6);
25088
+ color: rgb(var(--tb-text) / 0.6);
25005
25089
  margin-top: 0.125rem;
25006
25090
  }
25007
25091
 
@@ -25018,9 +25102,8 @@ const containerResponsiveThemeCss = `/*
25018
25102
  :where(.theme-scope)
25019
25103
  :where([data-block='event-registration'])
25020
25104
  .er-summary-bar-price--struck {
25021
- display: block;
25022
25105
  text-decoration: line-through;
25023
- color: rgba(var(--tb-text), 0.5);
25106
+ color: rgb(var(--tb-text) / 0.5);
25024
25107
  font-size: 0.9375rem;
25025
25108
  font-weight: 500;
25026
25109
  text-align: right;
@@ -25042,19 +25125,25 @@ const containerResponsiveThemeCss = `/*
25042
25125
  */
25043
25126
 
25044
25127
  :where(.theme-scope) :where([data-block='event-registration']) .er-portal-auth {
25045
- padding: 1.25rem;
25046
- background: rgba(var(--tb-surface), 0.5);
25047
- border: 1px solid var(--er-border);
25048
- border-radius: var(--rb-block-radius);
25049
- color: var(--er-on-surface);
25128
+ /* The surface the panel paints publishes its own foreground; --tb-onSurface
25129
+ can be a different (near-black) colour from the site's text. */
25130
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
25131
+ font-size: 0.9375rem;
25132
+ line-height: 1.5;
25050
25133
  }
25051
25134
 
25052
25135
  :where(.theme-scope)
25053
25136
  :where([data-block='event-registration'])
25054
25137
  .er-portal-auth-title {
25055
25138
  font-weight: 600;
25056
- font-size: 1rem;
25057
- margin: 0 0 0.5rem 0;
25139
+ margin: 0 0 0.25rem 0;
25140
+ }
25141
+
25142
+ :where(.theme-scope)
25143
+ :where([data-block='event-registration'])
25144
+ .er-portal-auth[data-placement='after']
25145
+ .er-portal-auth-title {
25146
+ margin: 0;
25058
25147
  }
25059
25148
 
25060
25149
  :where(.theme-scope)
@@ -25066,6 +25155,15 @@ const containerResponsiveThemeCss = `/*
25066
25155
  line-height: 1.4;
25067
25156
  }
25068
25157
 
25158
+ :where(.theme-scope)
25159
+ :where([data-block='event-registration'])
25160
+ .er-portal-auth
25161
+ .er-portal-auth-text {
25162
+ color: inherit;
25163
+ margin: 0;
25164
+ line-height: inherit;
25165
+ }
25166
+
25069
25167
  :where(.theme-scope)
25070
25168
  :where([data-block='event-registration'])
25071
25169
  .er-portal-auth-link {
@@ -25115,7 +25213,7 @@ const containerResponsiveThemeCss = `/*
25115
25213
  left: 0;
25116
25214
  right: 0;
25117
25215
  bottom: 0;
25118
- background: rgba(var(--tb-scrim), 0.5);
25216
+ background: var(--rb-modal-overlay-bg);
25119
25217
  display: flex;
25120
25218
  align-items: center;
25121
25219
  justify-content: center;
@@ -25130,7 +25228,7 @@ const containerResponsiveThemeCss = `/*
25130
25228
  max-width: 400px;
25131
25229
  width: 100%;
25132
25230
  position: relative;
25133
- box-shadow: 0 10px 25px rgba(var(--tb-shadow), 0.2);
25231
+ box-shadow: 0 10px 25px rgb(var(--tb-shadow) / 0.2);
25134
25232
  }
25135
25233
 
25136
25234
  :where(.theme-scope) :where([data-block='event-registration']) .er-modal-close {
@@ -25142,7 +25240,7 @@ const containerResponsiveThemeCss = `/*
25142
25240
  font-size: 1.5rem;
25143
25241
  line-height: 1;
25144
25242
  cursor: pointer;
25145
- color: rgba(var(--tb-text), 0.5);
25243
+ color: rgb(var(--tb-text) / 0.5);
25146
25244
  padding: 0.25rem;
25147
25245
  }
25148
25246
 
@@ -25208,153 +25306,487 @@ const containerResponsiveThemeCss = `/*
25208
25306
  :where(.theme-scope)
25209
25307
  :where([data-block='event-registration'])
25210
25308
  .er-modal-btn--secondary:hover {
25211
- background: rgba(var(--tb-text), 0.05);
25309
+ background: rgb(var(--tb-text) / 0.05);
25212
25310
  }
25213
25311
 
25214
- /* In-flow booking teaser (sits at the block's position in the page) */
25312
+ /* Booking card: in the page where the editor placed the block (issue 1581) */
25215
25313
  :where(.theme-scope)
25216
25314
  :where([data-block='event-registration'])
25217
- .er-booking-teaser {
25315
+ .er-booking-card {
25218
25316
  display: flex;
25219
- flex-wrap: wrap;
25220
- align-items: center;
25221
- justify-content: space-between;
25222
- gap: 1rem 1.5rem;
25223
- padding: 1.25rem 1.5rem;
25317
+ flex-direction: column;
25318
+ gap: 1.125rem;
25319
+ padding: 1.5rem 1.75rem;
25224
25320
  border: 1px solid var(--er-border);
25225
- border-radius: var(--rb-block-radius);
25226
- background: var(--er-event-card-bg);
25321
+ border-radius: calc(var(--rb-block-radius) * 1.25);
25322
+ background: rgb(var(--tb-surface));
25227
25323
  /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
25228
25324
  }
25229
25325
 
25230
25326
  :where(.theme-scope)
25231
25327
  :where([data-block='event-registration'])
25232
- .er-booking-teaser__info {
25328
+ .er-booking-card__row {
25329
+ display: flex;
25330
+ align-items: center;
25331
+ gap: 1.25rem 1.75rem;
25332
+ flex-wrap: wrap;
25333
+ }
25334
+
25335
+ :where(.theme-scope)
25336
+ :where([data-block='event-registration'])
25337
+ .er-booking-card__tile {
25338
+ flex: 0 0 auto;
25233
25339
  display: flex;
25234
25340
  flex-direction: column;
25235
- gap: 0.25rem;
25236
- min-width: 0;
25341
+ align-items: center;
25342
+ justify-content: center;
25343
+ gap: 0.125rem;
25344
+ width: 4.25rem;
25345
+ height: 4.75rem;
25346
+ border-radius: var(--rb-block-radius);
25347
+ background: rgb(var(--tb-primary));
25348
+ color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
25237
25349
  }
25238
25350
 
25239
25351
  :where(.theme-scope)
25240
25352
  :where([data-block='event-registration'])
25241
- .er-booking-teaser__title {
25242
- font-size: 1.0625rem;
25243
- font-weight: 700;
25244
- line-height: 1.2;
25353
+ .er-booking-card__tile-month {
25354
+ font-size: 0.75rem;
25355
+ font-weight: 800;
25356
+ letter-spacing: 0.1em;
25245
25357
  }
25246
25358
 
25247
25359
  :where(.theme-scope)
25248
25360
  :where([data-block='event-registration'])
25249
- .er-booking-teaser__meta {
25250
- font-size: 0.9375rem;
25251
- line-height: 1.3;
25252
- opacity: 0.75;
25361
+ .er-booking-card__tile-day {
25362
+ font-family: var(--font-heading, inherit);
25363
+ font-size: 2rem;
25364
+ line-height: 1;
25365
+ }
25366
+
25367
+ :where(.theme-scope)
25368
+ :where([data-block='event-registration'])
25369
+ .er-booking-card__badge {
25370
+ flex: 0 0 auto;
25371
+ display: inline-flex;
25372
+ align-items: center;
25373
+ justify-content: center;
25374
+ width: 3rem;
25375
+ height: 3rem;
25376
+ border-radius: 999px;
25377
+ background: rgb(var(--tb-primary));
25378
+ color: rgb(var(--tb-onPrimary, var(--tb-primaryForeground)));
25253
25379
  }
25254
25380
 
25255
25381
  :where(.theme-scope)
25256
25382
  :where([data-block='event-registration'])
25257
- .er-booking-teaser__tickets {
25383
+ .er-booking-card__body {
25384
+ flex: 1 1 16rem;
25385
+ min-width: 0;
25258
25386
  display: flex;
25259
25387
  flex-direction: column;
25260
- gap: 0.375rem;
25261
- margin-top: 0.5rem;
25262
- padding-top: 0.625rem;
25263
- border-top: 1px solid var(--er-border);
25388
+ gap: 0.25rem;
25264
25389
  }
25265
25390
 
25266
25391
  :where(.theme-scope)
25267
25392
  :where([data-block='event-registration'])
25268
- .er-booking-teaser__ticket {
25269
- display: flex;
25270
- align-items: baseline;
25271
- justify-content: space-between;
25272
- gap: 1rem;
25273
- font-size: 0.9375rem;
25274
- line-height: 1.35;
25393
+ .er-booking-card__when {
25394
+ margin: 0;
25395
+ font-size: 1.125rem;
25396
+ font-weight: 700;
25397
+ line-height: 1.3;
25275
25398
  }
25276
25399
 
25277
25400
  :where(.theme-scope)
25278
25401
  :where([data-block='event-registration'])
25279
- .er-booking-teaser__ticket-name {
25280
- min-width: 0;
25402
+ .er-booking-card__venue,
25403
+ :where(.theme-scope)
25404
+ :where([data-block='event-registration'])
25405
+ .er-booking-card__facts {
25406
+ margin: 0;
25407
+ font-size: 0.9375rem;
25408
+ line-height: 1.45;
25409
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
25281
25410
  }
25282
25411
 
25283
25412
  :where(.theme-scope)
25284
25413
  :where([data-block='event-registration'])
25285
- .er-booking-teaser__cta {
25286
- flex: 0 0 auto;
25414
+ .er-booking-card__facts {
25415
+ margin-top: 0.25rem;
25416
+ font-weight: 600;
25417
+ color: inherit;
25287
25418
  }
25288
25419
 
25289
- /* Fixed, full-width sticky booking bar (content-agnostic; sits above page flow) */
25290
- :where(.theme-scope) :where([data-block='event-registration']) .er-booking-bar {
25291
- position: fixed;
25292
- left: 0;
25293
- right: 0;
25294
- bottom: 0;
25295
- z-index: 12000;
25296
- padding: 0.75rem max(1rem, env(safe-area-inset-right))
25297
- max(0.75rem, env(safe-area-inset-bottom))
25298
- max(1rem, env(safe-area-inset-left));
25299
- background: rgb(var(--tb-background));
25300
- border-top: 1px solid var(--er-border);
25301
- box-shadow: 0 -10px 30px rgba(var(--tb-shadow), 0.16);
25420
+ :where(.theme-scope)
25421
+ :where([data-block='event-registration'])
25422
+ .er-booking-card__cta {
25423
+ flex: 0 0 auto;
25302
25424
  }
25303
25425
 
25304
25426
  :where(.theme-scope)
25305
25427
  :where([data-block='event-registration'])
25306
- .er-booking-bar__inner {
25428
+ .er-booking-card__dates {
25307
25429
  display: flex;
25430
+ flex-wrap: wrap;
25308
25431
  align-items: center;
25309
- justify-content: space-between;
25310
- gap: 1rem;
25311
- width: 100%;
25312
- max-width: 72rem;
25313
- margin-inline: auto;
25432
+ gap: 0.625rem;
25433
+ padding-top: 1.125rem;
25434
+ border-top: 1px solid var(--er-border);
25314
25435
  }
25315
25436
 
25316
25437
  :where(.theme-scope)
25317
25438
  :where([data-block='event-registration'])
25318
- .er-booking-bar__info {
25319
- display: flex;
25320
- flex-direction: column;
25321
- gap: 0.125rem;
25322
- min-width: 0;
25439
+ .er-booking-card__dates-label {
25440
+ margin-right: 0.375rem;
25441
+ font-size: 0.8125rem;
25442
+ font-weight: 800;
25443
+ letter-spacing: 0.08em;
25444
+ text-transform: uppercase;
25445
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
25323
25446
  }
25324
25447
 
25325
25448
  :where(.theme-scope)
25326
25449
  :where([data-block='event-registration'])
25327
- .er-booking-bar__title {
25328
- font-size: 0.95rem;
25450
+ .er-booking-card__date {
25451
+ min-height: 2.75rem;
25452
+ padding: 0 1rem;
25453
+ border: 1px solid var(--er-border);
25454
+ border-radius: 999px;
25455
+ background: var(--er-control-bg);
25456
+ color: inherit;
25457
+ font: inherit;
25458
+ font-size: 0.875rem;
25329
25459
  font-weight: 700;
25330
- line-height: 1.2;
25331
- white-space: nowrap;
25332
- overflow: hidden;
25333
- text-overflow: ellipsis;
25460
+ cursor: pointer;
25461
+ transition: border-color var(--rb-block-transition) ease;
25334
25462
  }
25335
25463
 
25336
25464
  :where(.theme-scope)
25337
25465
  :where([data-block='event-registration'])
25338
- .er-booking-bar__meta {
25339
- font-size: 0.8125rem;
25340
- line-height: 1.25;
25341
- opacity: 0.75;
25342
- white-space: nowrap;
25343
- overflow: hidden;
25344
- text-overflow: ellipsis;
25466
+ .er-booking-card__date:hover {
25467
+ border-color: rgb(var(--tb-primary));
25345
25468
  }
25346
25469
 
25347
25470
  :where(.theme-scope)
25348
25471
  :where([data-block='event-registration'])
25349
- .er-booking-bar__cta {
25350
- flex: 0 0 auto;
25472
+ .er-booking-card__date[data-full] {
25473
+ border-style: dashed;
25474
+ background: transparent;
25475
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
25351
25476
  }
25352
25477
 
25353
25478
  :where(.theme-scope)
25354
25479
  :where([data-block='event-registration'])
25355
- .er-booking-overlay {
25356
- position: fixed;
25357
- inset: 0;
25480
+ .er-booking-card__more {
25481
+ font-size: 0.875rem;
25482
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
25483
+ }
25484
+
25485
+ /* Booking bar: fixed to the bottom once the visitor is past the first screen.
25486
+ It stays mounted and slides: the card pushes it down in step as it rises
25487
+ from the bottom of the screen (--er-bar-push, set per frame), and it slides
25488
+ back up when the visitor scrolls past the card (issue 1581). */
25489
+ :where(.theme-scope)
25490
+ :where([data-block='event-registration'])
25491
+ .er-booking-bar {
25492
+ position: fixed;
25493
+ left: 0;
25494
+ right: 0;
25495
+ bottom: 0;
25496
+ z-index: 12000;
25497
+ padding: 0.625rem max(1rem, env(safe-area-inset-right))
25498
+ max(0.625rem, env(safe-area-inset-bottom))
25499
+ max(1rem, env(safe-area-inset-left));
25500
+ background: rgb(var(--tb-surface));
25501
+ border-top: 1px solid var(--er-border);
25502
+ box-shadow: 0 -8px 28px rgb(var(--tb-shadow) / 0.14);
25503
+ /* Set per frame on the element while the card pushes the bar off. */
25504
+ --er-bar-push: 0px;
25505
+ transform: translateY(var(--er-bar-push));
25506
+ transition:
25507
+ transform 220ms ease,
25508
+ visibility 0s linear 0s;
25509
+ /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
25510
+ }
25511
+
25512
+ :where(.theme-scope)
25513
+ :where([data-block='event-registration'])
25514
+ .er-booking-bar[data-state='hidden'] {
25515
+ transform: translateY(calc(100% + 1.75rem));
25516
+ visibility: hidden;
25517
+ transition:
25518
+ transform 220ms ease,
25519
+ visibility 0s linear 220ms;
25520
+ }
25521
+
25522
+ :where(.theme-scope)
25523
+ :where([data-block='event-registration'])
25524
+ .er-booking-bar[data-pushing='true'] {
25525
+ /* Following the card frame by frame: no easing to lag behind. */
25526
+ transition: none;
25527
+ }
25528
+
25529
+ @media (prefers-reduced-motion: reduce) {
25530
+ :where(.theme-scope)
25531
+ :where([data-block='event-registration'])
25532
+ .er-booking-bar {
25533
+ transform: none;
25534
+ transition:
25535
+ opacity 150ms ease,
25536
+ visibility 0s linear 0s;
25537
+ }
25538
+
25539
+ :where(.theme-scope)
25540
+ :where([data-block='event-registration'])
25541
+ .er-booking-bar[data-state='hidden'] {
25542
+ transform: none;
25543
+ opacity: 0;
25544
+ transition:
25545
+ opacity 150ms ease,
25546
+ visibility 0s linear 150ms;
25547
+ }
25548
+
25549
+ }
25550
+
25551
+ :where(.theme-scope)
25552
+ :where([data-block='event-registration'])
25553
+ .er-booking-bar__inner {
25554
+ display: flex;
25555
+ align-items: center;
25556
+ gap: 0.75rem 1.5rem;
25557
+ width: 100%;
25558
+ max-width: 77rem;
25559
+ min-height: 2.75rem;
25560
+ margin-inline: auto;
25561
+ }
25562
+
25563
+ :where(.theme-scope)
25564
+ :where([data-block='event-registration'])
25565
+ .er-booking-bar__info {
25566
+ flex: 1 1 auto;
25567
+ display: flex;
25568
+ align-items: center;
25569
+ gap: 0.25rem 0.875rem;
25570
+ min-width: 0;
25571
+ }
25572
+
25573
+ :where(.theme-scope)
25574
+ :where([data-block='event-registration'])
25575
+ .er-booking-bar__title {
25576
+ font-family: var(--font-heading, inherit);
25577
+ font-size: 1.25rem;
25578
+ line-height: 1.2;
25579
+ white-space: nowrap;
25580
+ overflow: hidden;
25581
+ text-overflow: ellipsis;
25582
+ }
25583
+
25584
+ :where(.theme-scope)
25585
+ :where([data-block='event-registration'])
25586
+ .er-booking-bar__meta {
25587
+ display: block;
25588
+ min-width: 0;
25589
+ font-size: 0.9375rem;
25590
+ line-height: 1.3;
25591
+ color: var(--rb-surface-supporting-color, rgb(var(--tb-text) / 0.75));
25592
+ white-space: nowrap;
25593
+ overflow: hidden;
25594
+ text-overflow: ellipsis;
25595
+ }
25596
+
25597
+ /* Facts are set apart by a thin muted rule rather than a dot (issue 1581) */
25598
+ :where(.theme-scope)
25599
+ :where([data-block='event-registration'])
25600
+ .er-booking-bar__divider {
25601
+ display: inline-block;
25602
+ width: 0;
25603
+ height: 0.875em;
25604
+ margin-inline: 0.75rem;
25605
+ border-left: 1px solid var(--er-border);
25606
+ vertical-align: -0.0625em;
25607
+ }
25608
+
25609
+ :where(.theme-scope)
25610
+ :where([data-block='event-registration'])
25611
+ .er-booking-bar__fact--price {
25612
+ font-weight: 600;
25613
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
25614
+ }
25615
+
25616
+ :where(.theme-scope)
25617
+ :where([data-block='event-registration'])
25618
+ .er-booking-bar[data-entry='inProgress'] .er-booking-bar__meta {
25619
+ font-weight: 600;
25620
+ color: rgb(var(--tb-primary));
25621
+ }
25622
+
25623
+ :where(.theme-scope)
25624
+ :where([data-block='event-registration'])
25625
+ .er-booking-bar__progress {
25626
+ flex: 0 0 7.5rem;
25627
+ height: 4px;
25628
+ border-radius: 4px;
25629
+ background: rgb(var(--tb-text) / 0.12);
25630
+ overflow: hidden;
25631
+ }
25632
+
25633
+ :where(.theme-scope)
25634
+ :where([data-block='event-registration'])
25635
+ .er-booking-bar__progress-fill {
25636
+ display: block;
25637
+ height: 100%;
25638
+ border-radius: 4px;
25639
+ background: rgb(var(--tb-primary));
25640
+ }
25641
+
25642
+ :where(.theme-scope)
25643
+ :where([data-block='event-registration'])
25644
+ .er-booking-bar__cta {
25645
+ flex: 0 0 auto;
25646
+ white-space: nowrap;
25647
+ }
25648
+
25649
+ /* Booked or waitlisted: one quiet status line; the whole bar leads back to the card */
25650
+ :where(.theme-scope)
25651
+ :where([data-block='event-registration'])
25652
+ .er-booking-bar__status {
25653
+ display: flex;
25654
+ align-items: center;
25655
+ gap: 0.625rem;
25656
+ width: 100%;
25657
+ min-width: 0;
25658
+ min-height: 2.75rem;
25659
+ padding: 0;
25660
+ border: 0;
25661
+ background: transparent;
25662
+ color: inherit;
25663
+ font: inherit;
25664
+ font-size: 0.9375rem;
25665
+ line-height: 1.3;
25666
+ text-align: start;
25667
+ cursor: pointer;
25668
+ }
25669
+
25670
+ :where(.theme-scope)
25671
+ :where([data-block='event-registration'])
25672
+ .er-booking-bar__status:focus-visible {
25673
+ outline: 2px solid rgb(var(--tb-primary));
25674
+ outline-offset: 4px;
25675
+ border-radius: 4px;
25676
+ }
25677
+
25678
+ :where(.theme-scope)
25679
+ :where([data-block='event-registration'])
25680
+ .er-booking-bar__check {
25681
+ flex: 0 0 auto;
25682
+ display: inline-flex;
25683
+ align-items: center;
25684
+ justify-content: center;
25685
+ width: 1.375rem;
25686
+ height: 1.375rem;
25687
+ border-radius: 999px;
25688
+ background: rgb(var(--tb-primary));
25689
+ color: rgb(var(--tb-onPrimary));
25690
+ }
25691
+
25692
+ :where(.theme-scope)
25693
+ :where([data-block='event-registration'])
25694
+ .er-booking-bar__status-text {
25695
+ display: flex;
25696
+ align-items: center;
25697
+ min-width: 0;
25698
+ white-space: nowrap;
25699
+ }
25700
+
25701
+ :where(.theme-scope)
25702
+ :where([data-block='event-registration'])
25703
+ .er-booking-bar__status-title {
25704
+ flex: 0 0 auto;
25705
+ font-weight: 700;
25706
+ color: var(--rb-surface-text-color, rgb(var(--tb-text)));
25707
+ }
25708
+
25709
+ @container rb-site (max-width: 639px) {
25710
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
25711
+ /* Phones: the title or status on the first line, the facts smaller and
25712
+ quieter below it, beside a compact button (issue 1581). */
25713
+ :where(.theme-scope:is(*, :scope))
25714
+ :where([data-block='event-registration'])
25715
+ .er-booking-bar__info {
25716
+ flex-direction: column;
25717
+ align-items: flex-start;
25718
+ gap: 0.125rem;
25719
+ }
25720
+
25721
+ :where(.theme-scope:is(*, :scope))
25722
+ :where([data-block='event-registration'])
25723
+ .er-booking-bar__title {
25724
+ max-width: 100%;
25725
+ font-family: inherit;
25726
+ font-size: 0.9375rem;
25727
+ font-weight: 700;
25728
+ line-height: 1.25;
25729
+ }
25730
+
25731
+ :where(.theme-scope:is(*, :scope))
25732
+ :where([data-block='event-registration'])
25733
+ .er-booking-bar__meta {
25734
+ max-width: 100%;
25735
+ font-size: 0.8125rem;
25736
+ }
25737
+
25738
+ :where(.theme-scope:is(*, :scope))
25739
+ :where([data-block='event-registration'])
25740
+ .er-booking-bar__divider {
25741
+ margin-inline: 0.5rem;
25742
+ }
25743
+
25744
+ :where(.theme-scope:is(*, :scope))
25745
+ :where([data-block='event-registration'])
25746
+ .er-booking-bar__progress {
25747
+ flex-basis: auto;
25748
+ width: 6rem;
25749
+ }
25750
+
25751
+ :where(.theme-scope:is(*, :scope))
25752
+ :where([data-block='event-registration'])
25753
+ .er-booking-bar__status-text {
25754
+ flex-direction: column;
25755
+ align-items: flex-start;
25756
+ gap: 0.125rem;
25757
+ }
25758
+
25759
+ :where(.theme-scope:is(*, :scope))
25760
+ :where([data-block='event-registration'])
25761
+ .er-booking-overlay__header {
25762
+ row-gap: 0.625rem;
25763
+ padding: 0.875rem 1rem 0.75rem;
25764
+ }
25765
+
25766
+ /* The status and its facts are on separate lines: no rule between them */
25767
+ :where(.theme-scope:is(*, :scope))
25768
+ :where([data-block='event-registration'])
25769
+ .er-booking-bar__status-text > .er-booking-bar__divider {
25770
+ display: none;
25771
+ }
25772
+
25773
+ :where(.theme-scope:is(*, :scope))
25774
+ :where([data-block='event-registration'])
25775
+ .er-booking-bar
25776
+ .er-booking-bar__inner
25777
+ > .er-booking-bar__cta {
25778
+ min-height: 2.5rem;
25779
+ padding: 0.5rem 1rem;
25780
+ font-size: 0.875rem;
25781
+ }
25782
+ }
25783
+ }
25784
+
25785
+ :where(.theme-scope)
25786
+ :where([data-block='event-registration'])
25787
+ .er-booking-overlay {
25788
+ position: fixed;
25789
+ inset: 0;
25358
25790
  height: 100dvh;
25359
25791
  z-index: 14000;
25360
25792
  display: flex;
@@ -25374,7 +25806,9 @@ const containerResponsiveThemeCss = `/*
25374
25806
  height: 100dvh;
25375
25807
  min-height: 0;
25376
25808
  overflow: hidden;
25377
- background: rgb(var(--tb-background));
25809
+ /* Surface, like the card, the bar and the system page's column, and what
25810
+ the embedded Stripe checkout is branded with (checkoutBranding.ts). */
25811
+ background: rgb(var(--tb-surface));
25378
25812
  /* Foreground and button context: theme-core/src/blocks/opaquePanels.ts. */
25379
25813
  }
25380
25814
 
@@ -25384,36 +25818,70 @@ const containerResponsiveThemeCss = `/*
25384
25818
  flex: 0 0 auto;
25385
25819
  z-index: 2;
25386
25820
  display: flex;
25387
- align-items: center;
25821
+ flex-wrap: wrap;
25822
+ align-items: flex-start;
25388
25823
  justify-content: space-between;
25389
- gap: 1rem;
25390
- padding: 1rem;
25391
- background: rgb(var(--tb-background));
25824
+ gap: 0.875rem 1rem;
25825
+ padding: 1.125rem 1.25rem 1rem;
25826
+ background: rgb(var(--tb-surface));
25392
25827
  border-bottom: 1px solid var(--er-border);
25393
25828
  }
25394
25829
 
25830
+ :where(.theme-scope)
25831
+ :where([data-block='event-registration'])
25832
+ .er-booking-overlay__progress {
25833
+ /* Pinned under the title, so the step stays in view while the step scrolls
25834
+ (issue 1581). It takes the header's full width, on its own row. */
25835
+ flex: 1 0 100%;
25836
+ }
25837
+
25838
+ :where(.theme-scope)
25839
+ :where([data-block='event-registration'])
25840
+ .er-booking-overlay__progress
25841
+ .rb-progress {
25842
+ margin-bottom: 0;
25843
+ }
25844
+
25845
+ :where(.theme-scope)
25846
+ :where([data-block='event-registration'])
25847
+ .er-booking-overlay__heading {
25848
+ display: flex;
25849
+ flex-direction: column;
25850
+ gap: 0.25rem;
25851
+ min-width: 0;
25852
+ }
25853
+
25395
25854
  :where(.theme-scope)
25396
25855
  :where([data-block='event-registration'])
25397
25856
  .er-booking-overlay__title {
25398
25857
  margin: 0;
25399
- font-size: 1rem;
25400
- line-height: 1.25;
25401
- font-weight: 700;
25858
+ font-family: var(--font-heading, inherit);
25859
+ font-size: 1.5rem;
25860
+ line-height: 1.15;
25861
+ }
25862
+
25863
+ :where(.theme-scope)
25864
+ :where([data-block='event-registration'])
25865
+ .er-booking-overlay__subtitle {
25866
+ margin: 0;
25867
+ font-size: 0.875rem;
25868
+ line-height: 1.4;
25869
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
25402
25870
  }
25403
25871
 
25404
25872
  :where(.theme-scope)
25405
25873
  :where([data-block='event-registration'])
25406
25874
  .er-booking-overlay__close {
25407
- width: 2rem;
25408
- height: 2rem;
25875
+ flex: 0 0 auto;
25876
+ width: 2.75rem;
25877
+ height: 2.75rem;
25409
25878
  display: inline-flex;
25410
25879
  align-items: center;
25411
25880
  justify-content: center;
25412
25881
  border: 1px solid var(--er-border);
25413
25882
  border-radius: 999px;
25414
25883
  background: transparent;
25415
- color: rgb(var(--tb-text));
25416
- font-size: 1.25rem;
25884
+ color: inherit;
25417
25885
  line-height: 1;
25418
25886
  cursor: pointer;
25419
25887
  }
@@ -25449,10 +25917,74 @@ const containerResponsiveThemeCss = `/*
25449
25917
  :where(.theme-scope)
25450
25918
  :where([data-block='event-registration'])
25451
25919
  .er-container--overlay
25452
- .er-payment-layout-main {
25453
- min-height: 0;
25454
- overflow: auto;
25455
- padding: 1rem;
25920
+ .er-payment-layout-main {
25921
+ min-height: 0;
25922
+ overflow: auto;
25923
+ padding: 1.25rem;
25924
+ }
25925
+
25926
+ /* Processing, confirmation and error take the whole panel (issue 1581) */
25927
+ :where(.theme-scope)
25928
+ :where([data-block='event-registration'])
25929
+ .er-container--overlay
25930
+ .er-whole-screen {
25931
+ flex: 1 1 auto;
25932
+ display: flex;
25933
+ flex-direction: column;
25934
+ min-height: 0;
25935
+ }
25936
+
25937
+ :where(.theme-scope)
25938
+ :where([data-block='event-registration'])
25939
+ .er-container--overlay
25940
+ .er-whole-screen__body {
25941
+ flex: 1 1 auto;
25942
+ min-height: 0;
25943
+ overflow: auto;
25944
+ padding: 1.5rem 1.25rem;
25945
+ }
25946
+
25947
+ /* The confirmation's one action sits where the steps' Continue does: pinned
25948
+ and full width in the panel, flowing under the content in the aside. */
25949
+ :where(.theme-scope)
25950
+ :where([data-block='event-registration'])
25951
+ .er-whole-screen__footer {
25952
+ margin-top: 1.5rem;
25953
+ }
25954
+
25955
+ :where(.theme-scope)
25956
+ :where([data-block='event-registration'])
25957
+ .er-container--overlay
25958
+ .er-whole-screen__footer {
25959
+ margin-top: 0;
25960
+ }
25961
+
25962
+ :where(.theme-scope)
25963
+ :where([data-block='event-registration'])
25964
+ .er-container--overlay
25965
+ .er-whole-screen__footer
25966
+ .er-whole-screen__action {
25967
+ width: 100%;
25968
+ justify-content: center;
25969
+ }
25970
+
25971
+ /* The header already names the event and its date, so the footer summary
25972
+ drops its title and schedule; the discount keeps just its name. */
25973
+ :where(.theme-scope)
25974
+ :where([data-block='event-registration'])
25975
+ .er-container--overlay
25976
+ :is(.er-summary-bar-event, .er-summary-bar-schedule, .er-summary-bar-discount-detail) {
25977
+ display: none;
25978
+ }
25979
+
25980
+ /* On the date step the chosen date is the news, so it stays. */
25981
+ :where(.theme-scope)
25982
+ :where([data-block='event-registration'])
25983
+ .er-container--overlay
25984
+ .er-summary-bar[data-step='select-event']
25985
+ .er-summary-bar-schedule {
25986
+ display: inline;
25987
+ color: inherit;
25456
25988
  }
25457
25989
 
25458
25990
  :where(.theme-scope)
@@ -25462,9 +25994,9 @@ const containerResponsiveThemeCss = `/*
25462
25994
  position: relative;
25463
25995
  z-index: 3;
25464
25996
  padding: 0.875rem 1rem max(0.875rem, env(safe-area-inset-bottom));
25465
- background: rgb(var(--tb-background));
25997
+ background: rgb(var(--tb-surface));
25466
25998
  border-top: 1px solid var(--er-border);
25467
- box-shadow: 0 -12px 26px rgba(var(--tb-shadow), 0.12);
25999
+ box-shadow: 0 -12px 26px rgb(var(--tb-shadow) / 0.12);
25468
26000
  }
25469
26001
 
25470
26002
  :where(.theme-scope)
@@ -25487,14 +26019,14 @@ const containerResponsiveThemeCss = `/*
25487
26019
  .er-booking-overlay__panel {
25488
26020
  width: min(32rem, 100vw);
25489
26021
  min-height: 100%;
25490
- box-shadow: -16px 0 40px rgba(var(--tb-shadow), 0.22);
26022
+ box-shadow: -16px 0 40px rgb(var(--tb-shadow) / 0.22);
25491
26023
  }
25492
26024
 
25493
26025
  :where(.theme-scope:is(*, :scope))
25494
26026
  :where([data-block='event-registration'])
25495
26027
  .er-container--overlay
25496
26028
  .er-payment-layout-main {
25497
- padding: 1.25rem;
26029
+ padding: 1.5rem;
25498
26030
  }
25499
26031
 
25500
26032
  :where(.theme-scope:is(*, :scope))
@@ -25506,6 +26038,125 @@ const containerResponsiveThemeCss = `/*
25506
26038
  }
25507
26039
  }
25508
26040
 
26041
+ /* The system event page hosts the same panel in its sticky column (issue 1581):
26042
+ from 1024px the steps scroll inside it and the footer stays pinned. */
26043
+ @container rb-site (min-width: 1024px) {
26044
+ @scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
26045
+ :where(.theme-scope:is(*, :scope))
26046
+ :where([data-block='event-registration'].event-registration--embedded)
26047
+ .er-container {
26048
+ display: flex;
26049
+ max-height: calc(100dvh - 9rem);
26050
+ min-height: 0;
26051
+ }
26052
+
26053
+ :where(.theme-scope:is(*, :scope))
26054
+ :where([data-block='event-registration'].event-registration--embedded)
26055
+ .er-payment-layout {
26056
+ flex: 1 1 auto;
26057
+ min-height: 0;
26058
+ gap: 0;
26059
+ grid-template-rows: minmax(0, 1fr) auto;
26060
+ grid-template-areas:
26061
+ 'main'
26062
+ 'footer';
26063
+ }
26064
+
26065
+ :where(.theme-scope:is(*, :scope))
26066
+ :where([data-block='event-registration'].event-registration--embedded)
26067
+ .er-payment-layout-main {
26068
+ min-height: 0;
26069
+ overflow: auto;
26070
+ padding-bottom: 1rem;
26071
+ }
26072
+
26073
+ :where(.theme-scope:is(*, :scope))
26074
+ :where([data-block='event-registration'].event-registration--embedded)
26075
+ .er-payment-layout-footer {
26076
+ padding-top: 0.875rem;
26077
+ border-top: 1px solid var(--er-border);
26078
+ }
26079
+
26080
+ :where(.theme-scope:is(*, :scope))
26081
+ :where([data-block='event-registration'].event-registration--embedded)
26082
+ .er-whole-screen {
26083
+ flex: 1 1 auto;
26084
+ display: flex;
26085
+ flex-direction: column;
26086
+ min-height: 0;
26087
+ }
26088
+
26089
+ :where(.theme-scope:is(*, :scope))
26090
+ :where([data-block='event-registration'].event-registration--embedded)
26091
+ .er-whole-screen__body {
26092
+ flex: 1 1 auto;
26093
+ min-height: 0;
26094
+ overflow: auto;
26095
+ }
26096
+ }
26097
+ }
26098
+
26099
+ /* Confirmation summary: only the facts known for certain */
26100
+ :where(.theme-scope)
26101
+ :where([data-block='event-registration'])
26102
+ .er-confirmation-summary {
26103
+ display: flex;
26104
+ flex-direction: column;
26105
+ gap: 0.75rem;
26106
+ margin: 1.5rem 0 0;
26107
+ padding: 1.125rem 1.25rem;
26108
+ border: 1px solid var(--er-border);
26109
+ border-radius: var(--rb-block-radius);
26110
+ font-size: 0.9375rem;
26111
+ }
26112
+
26113
+ :where(.theme-scope)
26114
+ :where([data-block='event-registration'])
26115
+ .er-confirmation-summary__row {
26116
+ display: flex;
26117
+ justify-content: space-between;
26118
+ gap: 1rem;
26119
+ }
26120
+
26121
+ :where(.theme-scope)
26122
+ :where([data-block='event-registration'])
26123
+ .er-confirmation-summary__row dt {
26124
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
26125
+ }
26126
+
26127
+ :where(.theme-scope)
26128
+ :where([data-block='event-registration'])
26129
+ .er-confirmation-summary__row dd {
26130
+ margin: 0;
26131
+ font-weight: 700;
26132
+ text-align: end;
26133
+ }
26134
+
26135
+ /* Why passes and memberships are greyed out for more than one place */
26136
+ :where(.theme-scope)
26137
+ :where([data-block='event-registration'])
26138
+ .er-entitlement-note {
26139
+ margin: 0;
26140
+ padding-top: 0.75rem;
26141
+ border-top: 1px solid var(--er-border);
26142
+ font-size: 0.875rem;
26143
+ color: var(--rb-reg-on-surface-muted, rgb(var(--tb-text) / 0.75));
26144
+ }
26145
+
26146
+ :where(.theme-scope)
26147
+ :where([data-block='event-registration'])
26148
+ .er-entitlement-note__action {
26149
+ padding: 0;
26150
+ border: 0;
26151
+ background: none;
26152
+ color: rgb(var(--tb-primary));
26153
+ font: inherit;
26154
+ font-weight: 700;
26155
+ text-decoration: underline;
26156
+ text-underline-offset: 3px;
26157
+ cursor: pointer;
26158
+ }
26159
+
25509
26160
  /* Magic Link Form */
25510
26161
  :where(.theme-scope)
25511
26162
  :where([data-block='event-registration'])
@@ -25581,8 +26232,8 @@ const containerResponsiveThemeCss = `/*
25581
26232
  align-items: flex-start;
25582
26233
  gap: 0.75rem;
25583
26234
  padding: 1rem 1.25rem;
25584
- background: rgba(var(--tb-primary-100), 0.4);
25585
- border: 1px solid rgba(var(--tb-primary-300), 0.4);
26235
+ background: rgb(var(--tb-primary-100) / 0.4);
26236
+ border: 1px solid rgb(var(--tb-primary-300) / 0.4);
25586
26237
  border-radius: var(--rb-block-radius);
25587
26238
  }
25588
26239
 
@@ -25630,201 +26281,6 @@ const containerResponsiveThemeCss = `/*
25630
26281
  }
25631
26282
 
25632
26283
  /* Selection cards for pass holders */
25633
- :where(.theme-scope)
25634
- :where([data-block='event-registration'])
25635
- .er-booking-mode-cards {
25636
- display: grid;
25637
- grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
25638
- gap: 1rem;
25639
- }
25640
-
25641
- :where(.theme-scope)
25642
- :where([data-block='event-registration'])
25643
- .er-booking-mode-card {
25644
- display: flex;
25645
- flex-direction: column;
25646
- align-items: center;
25647
- gap: 0.5rem;
25648
- padding: 1.25rem 1rem;
25649
- border: 2px solid var(--er-payment-border);
25650
- border-radius: var(--rb-block-radius);
25651
- background: transparent;
25652
- cursor: pointer;
25653
- text-align: center;
25654
- position: relative;
25655
- transition:
25656
- border-color var(--rb-block-transition) ease,
25657
- background-color var(--rb-block-transition) ease;
25658
- }
25659
-
25660
- :where(.theme-scope)
25661
- :where([data-block='event-registration'])
25662
- .er-booking-mode-card:hover:not([aria-disabled='true']) {
25663
- border-color: var(--er-payment-border-hover);
25664
- }
25665
-
25666
- :where(.theme-scope)
25667
- :where([data-block='event-registration'])
25668
- .er-booking-mode-card--selected {
25669
- border-color: var(--er-payment-border-selected);
25670
- background-color: var(--er-payment-bg-selected);
25671
- }
25672
-
25673
- :where(.theme-scope)
25674
- :where([data-block='event-registration'])
25675
- .er-booking-mode-card--disabled {
25676
- opacity: 1;
25677
- cursor: not-allowed;
25678
- border-color: var(--er-payment-border);
25679
- background: transparent;
25680
- }
25681
-
25682
- :where(.theme-scope)
25683
- :where([data-block='event-registration'])
25684
- .er-booking-mode-card--disabled.er-booking-mode-card--selected {
25685
- border-color: var(--er-payment-border);
25686
- background: transparent;
25687
- }
25688
-
25689
- :where(.theme-scope)
25690
- :where([data-block='event-registration'])
25691
- .er-booking-mode-card--disabled
25692
- > :not(.er-booking-mode-tooltip) {
25693
- opacity: 0.55;
25694
- }
25695
-
25696
- :where(.theme-scope)
25697
- :where([data-block='event-registration'])
25698
- .er-booking-mode-card--disabled:hover {
25699
- border-color: var(--er-payment-border);
25700
- }
25701
-
25702
- :where(.theme-scope)
25703
- :where([data-block='event-registration'])
25704
- .er-booking-mode-card--disabled
25705
- .er-booking-mode-card-icon,
25706
- :where(.theme-scope)
25707
- :where([data-block='event-registration'])
25708
- .er-booking-mode-card--disabled
25709
- .er-booking-mode-card-label {
25710
- color: var(--er-on-surface-disabled);
25711
- }
25712
-
25713
- :where(.theme-scope)
25714
- :where([data-block='event-registration'])
25715
- .er-booking-mode-card--disabled
25716
- .er-booking-mode-card-detail {
25717
- color: var(--er-on-surface-disabled-detail);
25718
- }
25719
-
25720
- :where(.theme-scope)
25721
- :where([data-block='event-registration'])
25722
- .er-booking-mode-card-icon {
25723
- font-size: 1.75rem;
25724
- line-height: 1;
25725
- /* SVG icon sizing */
25726
- display: flex;
25727
- align-items: center;
25728
- justify-content: center;
25729
- }
25730
-
25731
- :where(.theme-scope)
25732
- :where([data-block='event-registration'])
25733
- .er-booking-mode-card-icon
25734
- svg {
25735
- width: 24px;
25736
- height: 24px;
25737
- color: currentColor;
25738
- }
25739
-
25740
- :where(.theme-scope)
25741
- :where([data-block='event-registration'])
25742
- .er-booking-mode-card-label {
25743
- font-weight: 600;
25744
- font-size: 1rem;
25745
- line-height: 1.3;
25746
- }
25747
-
25748
- :where(.theme-scope)
25749
- :where([data-block='event-registration'])
25750
- .er-booking-mode-card-detail {
25751
- font-size: 0.875rem;
25752
- color: var(--er-on-surface-subtle);
25753
- line-height: 1.3;
25754
- }
25755
-
25756
- :where(.theme-scope)
25757
- :where([data-block='event-registration'])
25758
- .er-booking-mode-card-check {
25759
- position: absolute;
25760
- top: 0.5rem;
25761
- right: 0.5rem;
25762
- }
25763
-
25764
- /* Alternative link in booking mode */
25765
- :where(.theme-scope)
25766
- :where([data-block='event-registration'])
25767
- .er-booking-mode-alt {
25768
- margin-top: 1rem;
25769
- text-align: center;
25770
- }
25771
-
25772
- :where(.theme-scope)
25773
- :where([data-block='event-registration'])
25774
- .er-booking-mode-alt-link {
25775
- background: none;
25776
- border: none;
25777
- padding: 0;
25778
- font-size: 0.9375rem;
25779
- color: rgb(var(--tb-primary));
25780
- cursor: pointer;
25781
- text-decoration: underline;
25782
- text-underline-offset: 2px;
25783
- }
25784
-
25785
- :where(.theme-scope)
25786
- :where([data-block='event-registration'])
25787
- .er-booking-mode-alt-link:hover {
25788
- text-decoration: none;
25789
- }
25790
-
25791
- /* Tooltip styling for disabled options */
25792
- :where(.theme-scope)
25793
- :where([data-block='event-registration'])
25794
- .er-booking-mode-card[aria-disabled='true'] {
25795
- position: relative;
25796
- }
25797
-
25798
- /* Tooltip appears on hover for disabled cards */
25799
- :where(.theme-scope)
25800
- :where([data-block='event-registration'])
25801
- .er-booking-mode-tooltip {
25802
- display: none;
25803
- position: absolute;
25804
- bottom: 100%;
25805
- left: 50%;
25806
- transform: translateX(-50%);
25807
- margin-bottom: 0.5rem;
25808
- padding: 0.5rem 0.75rem;
25809
- background: rgb(var(--tb-text));
25810
- color: rgb(var(--tb-background));
25811
- font-size: 0.8125rem;
25812
- font-weight: 500;
25813
- border-radius: calc(var(--rb-block-radius) * 0.5);
25814
- white-space: normal;
25815
- max-width: 16rem;
25816
- line-height: 1.35;
25817
- text-align: center;
25818
- box-shadow: 0 8px 20px rgba(var(--tb-shadow), 0.28);
25819
- z-index: 10;
25820
- }
25821
-
25822
- :where(.theme-scope)
25823
- :where([data-block='event-registration'])
25824
- .er-booking-mode-card--disabled:hover
25825
- .er-booking-mode-tooltip {
25826
- display: block;
25827
- }
25828
26284
 
25829
26285
  /* =============================================================================
25830
26286
  * Block: Event Calendar
@@ -26053,7 +26509,7 @@ const containerResponsiveThemeCss = `/*
26053
26509
  :where(.theme-scope)
26054
26510
  :where([data-block='event-calendar'])
26055
26511
  .event-calendar-more:hover {
26056
- background-color: rgba(var(--tb-primary), 0.1);
26512
+ background-color: rgb(var(--tb-primary) / 0.1);
26057
26513
  }
26058
26514
 
26059
26515
  :where(.theme-scope)
@@ -26127,7 +26583,7 @@ const containerResponsiveThemeCss = `/*
26127
26583
  :where(.theme-scope)
26128
26584
  :where([data-block='event-calendar'])
26129
26585
  .event-category-btn:hover:not(:disabled) {
26130
- border-color: rgba(var(--tb-primary), 0.5);
26586
+ border-color: rgb(var(--tb-primary) / 0.5);
26131
26587
  }
26132
26588
 
26133
26589
  :where(.theme-scope)
@@ -26200,7 +26656,7 @@ const containerResponsiveThemeCss = `/*
26200
26656
  :where([data-block='event-calendar'])
26201
26657
  .event-calendar-view-btn:hover {
26202
26658
  opacity: 1;
26203
- border-color: rgba(var(--tb-primary), 0.5);
26659
+ border-color: rgb(var(--tb-primary) / 0.5);
26204
26660
  }
26205
26661
 
26206
26662
  :where(.theme-scope)
@@ -26317,7 +26773,7 @@ const containerResponsiveThemeCss = `/*
26317
26773
  :where(.theme-scope)
26318
26774
  :where([data-block='event-calendar'])
26319
26775
  .event-agenda-card:hover {
26320
- border-color: rgba(var(--tb-primary), 0.5);
26776
+ border-color: rgb(var(--tb-primary) / 0.5);
26321
26777
  background-color: var(--ec-event-bg);
26322
26778
  }
26323
26779
 
@@ -26766,7 +27222,7 @@ const containerResponsiveThemeCss = `/*
26766
27222
  border-left-width: 4px;
26767
27223
  border-radius: calc(var(--rb-block-radius) / 1.5);
26768
27224
  background-color: var(--ec-surface);
26769
- box-shadow: 0 1px 2px rgba(var(--tb-text), 0.08);
27225
+ box-shadow: 0 1px 2px rgb(var(--tb-text) / 0.08);
26770
27226
  cursor: pointer;
26771
27227
  font: inherit;
26772
27228
  text-align: left;
@@ -26780,7 +27236,7 @@ const containerResponsiveThemeCss = `/*
26780
27236
  :where(.theme-scope)
26781
27237
  :where([data-block='event-calendar'])
26782
27238
  .event-timetable-event:hover {
26783
- box-shadow: 0 4px 12px rgba(var(--tb-text), 0.12);
27239
+ box-shadow: 0 4px 12px rgb(var(--tb-text) / 0.12);
26784
27240
  transform: translateY(-1px);
26785
27241
  }
26786
27242
 
@@ -26932,7 +27388,7 @@ const containerResponsiveThemeCss = `/*
26932
27388
  * available -> secondary, filling -> accent, waitlist -> muted text. */
26933
27389
  --ec-status-available: rgb(var(--tb-secondary));
26934
27390
  --ec-status-filling: rgb(var(--tb-accent));
26935
- --ec-status-waitlist: rgba(var(--tb-text), 0.4);
27391
+ --ec-status-waitlist: rgb(var(--tb-text) / 0.4);
26936
27392
  --event-week-board-cols: 7;
26937
27393
 
26938
27394
  border: 1px solid var(--ec-border);
@@ -26946,7 +27402,7 @@ const containerResponsiveThemeCss = `/*
26946
27402
  :where(.theme-scope)
26947
27403
  :where([data-block='event-calendar'])
26948
27404
  .event-week-board[data-elevated] {
26949
- box-shadow: 0 14px 34px -24px rgba(var(--tb-text), 0.35);
27405
+ box-shadow: 0 14px 34px -24px rgb(var(--tb-text) / 0.35);
26950
27406
  }
26951
27407
 
26952
27408
  /* Top bar: authored title + week navigation + legend */
@@ -27219,8 +27675,8 @@ const containerResponsiveThemeCss = `/*
27219
27675
  :where([data-block='event-calendar'])
27220
27676
  .event-week-board-card:hover {
27221
27677
  transform: translateY(-2px);
27222
- box-shadow: 0 6px 16px -8px rgba(var(--tb-text), 0.28);
27223
- border-color: rgba(var(--tb-primary), 0.4);
27678
+ box-shadow: 0 6px 16px -8px rgb(var(--tb-text) / 0.28);
27679
+ border-color: rgb(var(--tb-primary) / 0.4);
27224
27680
  }
27225
27681
 
27226
27682
  :where(.theme-scope)
@@ -27263,24 +27719,24 @@ const containerResponsiveThemeCss = `/*
27263
27719
  * Filling -> amber and waitlist -> muted outline are handled by the
27264
27720
  * data-status overrides below. */
27265
27721
  border: 1px solid var(--ec-border);
27266
- background-color: rgba(var(--tb-text), 0.06);
27267
- color: rgba(var(--tb-text), 0.62);
27722
+ background-color: rgb(var(--tb-text) / 0.06);
27723
+ color: rgb(var(--tb-text) / 0.62);
27268
27724
  border-color: var(--ec-border);
27269
27725
  }
27270
27726
 
27271
27727
  :where(.theme-scope)
27272
27728
  :where([data-block='event-calendar'])
27273
27729
  .event-week-board-card-pill[data-status='filling'] {
27274
- background-color: rgba(var(--tb-accent), 0.14);
27730
+ background-color: rgb(var(--tb-accent) / 0.14);
27275
27731
  color: var(--ec-status-filling);
27276
- border-color: rgba(var(--tb-accent), 0.32);
27732
+ border-color: rgb(var(--tb-accent) / 0.32);
27277
27733
  }
27278
27734
 
27279
27735
  :where(.theme-scope)
27280
27736
  :where([data-block='event-calendar'])
27281
27737
  .event-week-board-card-pill[data-status='waitlist'] {
27282
27738
  background-color: transparent;
27283
- color: rgba(var(--tb-text), 0.6);
27739
+ color: rgb(var(--tb-text) / 0.6);
27284
27740
  border-color: var(--ec-border);
27285
27741
  }
27286
27742
 
@@ -27565,7 +28021,7 @@ const containerResponsiveThemeCss = `/*
27565
28021
  :where([data-block='event-calendar'])
27566
28022
  .ec-modal-close:hover {
27567
28023
  opacity: 1;
27568
- background-color: rgba(var(--tb-text), 0.1);
28024
+ background-color: rgb(var(--tb-text) / 0.1);
27569
28025
  }
27570
28026
 
27571
28027
  :where(.theme-scope)
@@ -27808,23 +28264,24 @@ const containerResponsiveThemeCss = `/*
27808
28264
  }
27809
28265
 
27810
28266
  /* State icon color variants (layout from registration-surface.css) */
28267
+ /* Success: a solid primary disc with an on-primary tick (issue 1581) */
27811
28268
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--success {
27812
- background: var(--ab-success-bg, rgba(var(--tb-success, 22 163 74), 0.1));
27813
- color: var(--ab-success-text, rgb(var(--tb-success, 22 163 74)));
28269
+ background: rgb(var(--tb-primary, 37 99 235));
28270
+ color: rgb(var(--tb-onPrimary, 255 255 255));
27814
28271
  }
27815
28272
 
27816
28273
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--error {
27817
- background: var(--ab-error-bg, rgba(var(--tb-destructive, 220 38 38), 0.1));
28274
+ background: var(--ab-error-bg, rgb(var(--tb-destructive, 220 38 38) / 0.1));
27818
28275
  color: var(--ab-error-text, rgb(var(--tb-destructive, 220 38 38)));
27819
28276
  }
27820
28277
 
27821
28278
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--info {
27822
- background: var(--ab-info-bg, rgba(var(--tb-info, 14 165 233), 0.1));
28279
+ background: var(--ab-info-bg, rgb(var(--tb-info, 14 165 233) / 0.1));
27823
28280
  color: var(--ab-info-text, rgb(var(--tb-info, 14 165 233)));
27824
28281
  }
27825
28282
 
27826
28283
  :where(.theme-scope) :where([data-block="appointment-booking"]) .rb-state-icon--warning {
27827
- background: var(--ab-warning-bg, rgba(var(--tb-warning, 245 158 11), 0.1));
28284
+ background: var(--ab-warning-bg, rgb(var(--tb-warning, 245 158 11) / 0.1));
27828
28285
  color: var(--ab-warning-text, rgb(var(--tb-warning, 245 158 11)));
27829
28286
  }
27830
28287
 
@@ -27866,7 +28323,7 @@ const containerResponsiveThemeCss = `/*
27866
28323
  letter-spacing: 0;
27867
28324
  line-height: 1.2;
27868
28325
  text-transform: uppercase;
27869
- color: var(--rb-reg-on-surface-subtle, rgba(var(--tb-onSurface, var(--tb-text, 15 23 42)), 0.6));
28326
+ color: var(--rb-reg-on-surface-subtle, rgb(var(--tb-onSurface, var(--tb-text, 15 23 42)) / 0.6));
27870
28327
  }
27871
28328
 
27872
28329
  :where(.theme-scope) :where([data-block="appointment-booking"]) .ab-pill-value {
@@ -28483,11 +28940,11 @@ const containerResponsiveThemeCss = `/*
28483
28940
  height: 2.5rem;
28484
28941
  width: 2.5rem;
28485
28942
  border-radius: 9999px;
28486
- border: 1px solid rgba(var(--tb-border, 229 231 235), 0.35);
28487
- background-color: rgba(var(--tb-surface, 248 250 252), 0.9);
28943
+ border: 1px solid rgb(var(--tb-border, 229 231 235) / 0.35);
28944
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.9);
28488
28945
  color: rgb(var(--tb-text, 17 24 39));
28489
- box-shadow: 0 4px 6px -1px rgba(var(--tb-shadow), 0.1),
28490
- 0 2px 4px -2px rgba(var(--tb-shadow), 0.1);
28946
+ box-shadow: 0 4px 6px -1px rgb(var(--tb-shadow) / 0.1),
28947
+ 0 2px 4px -2px rgb(var(--tb-shadow) / 0.1);
28491
28948
  cursor: pointer;
28492
28949
  transform: translateY(-50%);
28493
28950
  transition: background-color 0.2s ease, box-shadow 0.2s ease,
@@ -28504,8 +28961,8 @@ const containerResponsiveThemeCss = `/*
28504
28961
 
28505
28962
  :where(.theme-scope) .carousel-root .carousel-nav-btn:hover {
28506
28963
  background-color: rgb(var(--tb-surface, 248 250 252));
28507
- box-shadow: 0 10px 15px -3px rgba(var(--tb-shadow), 0.1),
28508
- 0 4px 6px -4px rgba(var(--tb-shadow), 0.1);
28964
+ box-shadow: 0 10px 15px -3px rgb(var(--tb-shadow) / 0.1),
28965
+ 0 4px 6px -4px rgb(var(--tb-shadow) / 0.1);
28509
28966
  }
28510
28967
 
28511
28968
  :where(.theme-scope) .carousel-root .carousel-nav-btn:disabled {
@@ -28554,10 +29011,10 @@ const containerResponsiveThemeCss = `/*
28554
29011
  }
28555
29012
 
28556
29013
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot {
28557
- background-color: rgba(var(--tb-surface, 248 250 252), 0.55);
29014
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.55);
28558
29015
  }
28559
29016
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot:hover {
28560
- background-color: rgba(var(--tb-surface, 248 250 252), 0.75);
29017
+ background-color: rgb(var(--tb-surface, 248 250 252) / 0.75);
28561
29018
  }
28562
29019
  :where(.theme-scope) .carousel-root.rb-carousel-dots-overlay .carousel-dot[data-active="true"] {
28563
29020
  background-color: rgb(var(--tb-text, 17 24 39));
@@ -28573,7 +29030,7 @@ const containerResponsiveThemeCss = `/*
28573
29030
  }
28574
29031
 
28575
29032
  :where(.theme-scope) .carousel-root .carousel-dot:hover {
28576
- background-color: rgba(var(--tb-text, 17 24 39), 0.3);
29033
+ background-color: rgb(var(--tb-text, 17 24 39) / 0.3);
28577
29034
  }
28578
29035
 
28579
29036
  :where(.theme-scope) .carousel-root .carousel-dot[data-active="true"] {
@@ -28582,7 +29039,7 @@ const containerResponsiveThemeCss = `/*
28582
29039
 
28583
29040
  :where(.theme-scope) .carousel-root .carousel-dot:focus-visible {
28584
29041
  outline: none;
28585
- box-shadow: 0 0 0 3px rgba(var(--tb-primary, 59 130 246), 0.35);
29042
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary, 59 130 246) / 0.35);
28586
29043
  }
28587
29044
 
28588
29045
  /* =============================================================================
@@ -28619,7 +29076,7 @@ const containerResponsiveThemeCss = `/*
28619
29076
 
28620
29077
  /* Error display */
28621
29078
  :where(.theme-scope) .shop__error {
28622
- background-color: rgba(var(--tb-destructive), 0.1);
29079
+ background-color: rgb(var(--tb-destructive) / 0.1);
28623
29080
  color: rgb(var(--tb-destructive));
28624
29081
  padding: 0.75rem 1rem;
28625
29082
  border-radius: var(--shop-control-radius);
@@ -28891,7 +29348,7 @@ const containerResponsiveThemeCss = `/*
28891
29348
 
28892
29349
  /* Modal error */
28893
29350
  :where(.theme-scope) .shop__modal-error {
28894
- background-color: rgba(var(--tb-destructive), 0.1);
29351
+ background-color: rgb(var(--tb-destructive) / 0.1);
28895
29352
  color: rgb(var(--tb-destructive));
28896
29353
  padding: 0.625rem 0.75rem;
28897
29354
  border-radius: var(--shop-control-radius);
@@ -28943,12 +29400,12 @@ const containerResponsiveThemeCss = `/*
28943
29400
  }
28944
29401
 
28945
29402
  :where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--success {
28946
- background: rgba(var(--tb-success), 0.12);
29403
+ background: rgb(var(--tb-success) / 0.12);
28947
29404
  color: rgb(var(--tb-success));
28948
29405
  }
28949
29406
 
28950
29407
  :where(.theme-scope) :where([data-block="shop"]) .rb-state-icon--warning {
28951
- background: rgba(var(--tb-warning), 0.12);
29408
+ background: rgb(var(--tb-warning) / 0.12);
28952
29409
  color: rgb(var(--tb-warning));
28953
29410
  }
28954
29411
 
@@ -29450,7 +29907,7 @@ const containerResponsiveThemeCss = `/*
29450
29907
 
29451
29908
  :where(.theme-scope) :where([data-block="customer-portal"]) .cp-table thead th {
29452
29909
  text-align: left;
29453
- background: rgba(var(--tb-border), 0.2);
29910
+ background: rgb(var(--tb-border) / 0.2);
29454
29911
  }
29455
29912
 
29456
29913
  :where(.theme-scope)
@@ -30291,17 +30748,17 @@ const containerResponsiveThemeCss = `/*
30291
30748
 
30292
30749
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):focus-visible {
30293
30750
  outline: none;
30294
- box-shadow: 0 0 0 3px rgba(var(--tb-primary), 0.25);
30751
+ box-shadow: 0 0 0 3px rgb(var(--tb-primary) / 0.25);
30295
30752
  }
30296
30753
 
30297
30754
  :where(.theme-scope) :where(.rb-tile--interactive, .er-event-card):hover:not(:disabled) {
30298
- border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgba(var(--tb-primary), 0.5)));
30755
+ border-color: var(--rb-tile-border-hover, var(--rb-event-tile-border-hover, rgb(var(--tb-primary) / 0.5)));
30299
30756
  opacity: var(--rb-tile-hover-opacity, var(--rb-event-tile-hover-opacity, var(--rb-tile-opacity, var(--rb-event-tile-opacity, 1))));
30300
30757
  }
30301
30758
 
30302
30759
  :where(.theme-scope) :where(.rb-tile--selected, .er-event-card--selected) {
30303
30760
  border-color: var(--rb-tile-border-selected, var(--rb-event-tile-border-selected, rgb(var(--tb-primary))));
30304
- background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgba(var(--tb-primary), 0.1)));
30761
+ background: var(--rb-tile-bg-selected, var(--rb-event-tile-bg-selected, rgb(var(--tb-primary) / 0.1)));
30305
30762
  }
30306
30763
 
30307
30764
  :where(.theme-scope) :where(.rb-tile--disabled, .er-event-card--disabled) {
@@ -30615,7 +31072,7 @@ const containerResponsiveThemeCss = `/*
30615
31072
 
30616
31073
  :where(.theme-scope) .newsletter-success .fb-success {
30617
31074
  padding: 1rem 1.5rem;
30618
- background-color: rgba(var(--tb-success, 34 197 94), 0.1);
31075
+ background-color: rgb(var(--tb-success, 34 197 94) / 0.1);
30619
31076
  border-radius: var(--radius-md, 0.5rem);
30620
31077
  color: rgb(var(--tb-text));
30621
31078
  }
@@ -30887,7 +31344,7 @@ const containerResponsiveThemeCss = `/*
30887
31344
  * context (theme-core/src/blocks/opaquePanels.ts) hold on any section. */
30888
31345
  :where(.theme-scope) .feedback-callout {
30889
31346
  background: rgb(var(--tb-surface, 248 250 252));
30890
- border-color: rgba(var(--tb-border, 226 232 240), 0.72);
31347
+ border-color: rgb(var(--tb-border, 226 232 240) / 0.72);
30891
31348
  --rb-feedback-callout-bg-opacity: 0.1;
30892
31349
  --rb-feedback-callout-border-opacity: 0.24;
30893
31350
  }
@@ -30895,33 +31352,33 @@ const containerResponsiveThemeCss = `/*
30895
31352
  :where(.theme-scope) .feedback-callout[data-feedback-tone="info"] {
30896
31353
  --rb-feedback-callout-bg-opacity: 0.08;
30897
31354
  background:
30898
- linear-gradient(rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-bg-opacity))),
31355
+ 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))),
30899
31356
  rgb(var(--tb-surface, 248 250 252));
30900
- border-color: rgba(var(--tb-primary, 37 99 235), var(--rb-feedback-callout-border-opacity));
31357
+ border-color: rgb(var(--tb-primary, 37 99 235) / var(--rb-feedback-callout-border-opacity));
30901
31358
  }
30902
31359
 
30903
31360
  :where(.theme-scope) .feedback-callout[data-feedback-tone="success"] {
30904
31361
  background:
30905
- linear-gradient(rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-bg-opacity))),
31362
+ 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))),
30906
31363
  rgb(var(--tb-surface, 248 250 252));
30907
- border-color: rgba(var(--tb-success, 34 197 94), var(--rb-feedback-callout-border-opacity));
31364
+ border-color: rgb(var(--tb-success, 34 197 94) / var(--rb-feedback-callout-border-opacity));
30908
31365
  }
30909
31366
 
30910
31367
  :where(.theme-scope) .feedback-callout[data-feedback-tone="warning"] {
30911
31368
  --rb-feedback-callout-bg-opacity: 0.12;
30912
31369
  --rb-feedback-callout-border-opacity: 0.28;
30913
31370
  background:
30914
- linear-gradient(rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-bg-opacity))),
31371
+ 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))),
30915
31372
  rgb(var(--tb-surface, 248 250 252));
30916
- border-color: rgba(var(--tb-warning, 245 158 11), var(--rb-feedback-callout-border-opacity));
31373
+ border-color: rgb(var(--tb-warning, 245 158 11) / var(--rb-feedback-callout-border-opacity));
30917
31374
  }
30918
31375
 
30919
31376
  :where(.theme-scope) .feedback-callout[data-feedback-tone="error"] {
30920
31377
  --rb-feedback-callout-border-opacity: 0.26;
30921
31378
  background:
30922
- linear-gradient(rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-bg-opacity)), rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-bg-opacity))),
31379
+ 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))),
30923
31380
  rgb(var(--tb-surface, 248 250 252));
30924
- border-color: rgba(var(--tb-destructive, 239 68 68), var(--rb-feedback-callout-border-opacity));
31381
+ border-color: rgb(var(--tb-destructive, 239 68 68) / var(--rb-feedback-callout-border-opacity));
30925
31382
  }
30926
31383
 
30927
31384
  :where(.theme-scope) .feedback-callout__title {
@@ -30992,7 +31449,7 @@ const containerResponsiveThemeCss = `/*
30992
31449
  }
30993
31450
 
30994
31451
  :where(.theme-scope) .event-compact-row:hover {
30995
- background-color: rgba(var(--tb-primary, 0 0 0), 0.035);
31452
+ background-color: rgb(var(--tb-primary, 0 0 0) / 0.035);
30996
31453
  }
30997
31454
 
30998
31455
  :where(.theme-scope) .event-compact-row-date {
@@ -31400,23 +31857,23 @@ const containerResponsiveThemeCss = `/*
31400
31857
  }
31401
31858
 
31402
31859
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="success"] {
31403
- border-color: rgba(var(--tb-success, 34 197 94), 0.3);
31860
+ border-color: rgb(var(--tb-success, 34 197 94) / 0.3);
31404
31861
  background:
31405
- linear-gradient(rgba(var(--tb-success, 34 197 94), 0.1), rgba(var(--tb-success, 34 197 94), 0.1)),
31862
+ linear-gradient(rgb(var(--tb-success, 34 197 94) / 0.1), rgb(var(--tb-success, 34 197 94) / 0.1)),
31406
31863
  rgb(var(--tb-surface, 255 255 255));
31407
31864
  }
31408
31865
 
31409
31866
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="warning"] {
31410
- border-color: rgba(var(--tb-warning, 245 158 11), 0.35);
31867
+ border-color: rgb(var(--tb-warning, 245 158 11) / 0.35);
31411
31868
  background:
31412
- linear-gradient(rgba(var(--tb-warning, 245 158 11), 0.12), rgba(var(--tb-warning, 245 158 11), 0.12)),
31869
+ linear-gradient(rgb(var(--tb-warning, 245 158 11) / 0.12), rgb(var(--tb-warning, 245 158 11) / 0.12)),
31413
31870
  rgb(var(--tb-surface, 255 255 255));
31414
31871
  }
31415
31872
 
31416
31873
  :where(.theme-scope) [data-block="gifting"] .gifting-feedback[data-feedback-tone="error"] {
31417
- border-color: rgba(var(--tb-destructive, 239 68 68), 0.3);
31874
+ border-color: rgb(var(--tb-destructive, 239 68 68) / 0.3);
31418
31875
  background:
31419
- linear-gradient(rgba(var(--tb-destructive, 239 68 68), 0.1), rgba(var(--tb-destructive, 239 68 68), 0.1)),
31876
+ linear-gradient(rgb(var(--tb-destructive, 239 68 68) / 0.1), rgb(var(--tb-destructive, 239 68 68) / 0.1)),
31420
31877
  rgb(var(--tb-surface, 255 255 255));
31421
31878
  }
31422
31879
 
@@ -31530,7 +31987,7 @@ const containerResponsiveThemeCss = `/*
31530
31987
  :where(.theme-scope) .rb-feature-card-icon-zone--utility-badge {
31531
31988
  background-color: rgb(var(--tb-surface));
31532
31989
  border: 1px solid rgb(var(--tb-border));
31533
- box-shadow: 0 1px 2px rgba(var(--tb-shadow), 0.08);
31990
+ box-shadow: 0 1px 2px rgb(var(--tb-shadow) / 0.08);
31534
31991
  }
31535
31992
 
31536
31993
  :where(.theme-scope) .rb-feature-card-icon {
@@ -32319,7 +32776,7 @@ const containerResponsiveThemeCss = `/*
32319
32776
  grid-template-columns: minmax(5.5rem, 0.65fr) minmax(0, 1.35fr);
32320
32777
  gap: 1rem;
32321
32778
  padding-block: 0.6rem;
32322
- border-top: 1px solid rgba(var(--tb-border), 0.72);
32779
+ border-top: 1px solid rgb(var(--tb-border) / 0.72);
32323
32780
  }
32324
32781
 
32325
32782
  :where(.theme-scope)
@@ -32559,13 +33016,13 @@ const containerResponsiveThemeCss = `/*
32559
33016
  :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-attribution {
32560
33017
  margin-top: 1.25rem;
32561
33018
  padding-top: 1.25rem;
32562
- border-top: 1px solid rgba(var(--tb-border), 0.75);
33019
+ border-top: 1px solid rgb(var(--tb-border) / 0.75);
32563
33020
  }
32564
33021
 
32565
33022
  :where(.theme-scope) [data-block="testimonials"][data-block-composition="open-editorial"] .rb-testimonial-avatar {
32566
33023
  box-shadow:
32567
33024
  0 0 0 2px rgb(var(--tb-surface)),
32568
- 0 0 0 4px rgba(var(--tb-primary), 0.3);
33025
+ 0 0 0 4px rgb(var(--tb-primary) / 0.3);
32569
33026
  }
32570
33027
 
32571
33028
  /* =============================================================================