@riverbankcms/sdk 0.81.0 → 0.84.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 (525) hide show
  1. package/README.md +81 -3
  2. package/dist/{PreviewEditorSidebar-RDCMEXIJ.mjs → PreviewEditorSidebar-HML67UDA.mjs} +367 -507
  3. package/dist/{PreviewEditorSidebar-O4NDX5TP.css → PreviewEditorSidebar-JA4VIPSZ.css} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-PBGALTMK.css → PreviewEditorUI-36T7QYV4.css} +1 -1
  5. package/dist/{PreviewEditorUI-NYGQ6K7B.mjs → PreviewEditorUI-I4BQUU6K.mjs} +4 -6
  6. package/dist/{PreviewEditorUI-4JVDBZBS.css → SdkPreviewModeRuntime-FXKI6XNL.css} +1 -1
  7. package/dist/SdkPreviewModeRuntime-MCKMVDTK.mjs +8 -0
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +1038 -262
  9. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  10. package/dist/_dts/api/src/analytics.d.ts +1 -1
  11. package/dist/_dts/api/src/blocks.d.ts +36 -0
  12. package/dist/_dts/api/src/bookingConfig.d.ts +4 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +49 -3
  14. package/dist/_dts/api/src/courses.d.ts +1 -1
  15. package/dist/_dts/api/src/endpoints.d.ts +40 -0
  16. package/dist/_dts/api/src/event-destination-policy.d.ts +17 -0
  17. package/dist/_dts/api/src/index.d.ts +6 -2
  18. package/dist/_dts/api/src/navigation/boundaries.d.ts +64 -0
  19. package/dist/_dts/api/src/navigation.d.ts +2 -0
  20. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -54
  21. package/dist/_dts/api/src/sdk-event-pricing.d.ts +61 -0
  22. package/dist/_dts/api/src/sdk-event-schedule.d.ts +52 -0
  23. package/dist/_dts/api/src/sdk-event-upsert.d.ts +50 -0
  24. package/dist/_dts/api/src/sdkContracts.d.ts +67 -33
  25. package/dist/_dts/api/src/shared-contracts.d.ts +13 -0
  26. package/dist/_dts/api/src/siteGeneration.d.ts +1 -1
  27. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -42
  28. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +46 -1
  29. package/dist/_dts/api/src/types.d.ts +1 -1
  30. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +6 -1
  31. package/dist/_dts/block-form/src/context/BlockContext.d.ts +1 -1
  32. package/dist/_dts/block-form/src/context/DisplayLabelResolverContext.d.ts +1 -1
  33. package/dist/_dts/block-form/src/context/FieldPreviewResolverContext.d.ts +2 -2
  34. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +1 -1
  35. package/dist/_dts/block-form/src/palette/PaletteContext.d.ts +1 -1
  36. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +1 -1
  37. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +3 -2
  38. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +7 -0
  39. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorWidget.d.ts +2 -1
  40. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +1 -1
  41. package/dist/_dts/block-form/src/widgets/BooleanField/BooleanField.d.ts +1 -1
  42. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +1 -1
  43. package/dist/_dts/block-form/src/widgets/Field.d.ts +2 -2
  44. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +3 -3
  45. package/dist/_dts/block-form/src/widgets/NumberField/NumberField.d.ts +1 -1
  46. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/PresetOrCustomField.d.ts +1 -1
  47. package/dist/_dts/block-form/src/widgets/SdkSelectField/SdkSelectField.d.ts +1 -1
  48. package/dist/_dts/block-form/src/widgets/SelectField/SelectField.d.ts +1 -1
  49. package/dist/_dts/block-form/src/widgets/SelectWidget.d.ts +1 -1
  50. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +1 -1
  51. package/dist/_dts/block-form/src/widgets/TextField/TextField.d.ts +1 -1
  52. package/dist/_dts/block-form/src/widgets/TextInputWidget.d.ts +1 -1
  53. package/dist/_dts/block-form/src/widgets/ToggleWidget.d.ts +1 -1
  54. package/dist/_dts/block-form/src/widgets/stringDefaultValue.d.ts +1 -0
  55. package/dist/_dts/blocks/src/PageRenderer.d.ts +12 -1
  56. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  57. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -1
  58. package/dist/_dts/blocks/src/client.d.ts +4 -0
  59. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +24 -20
  60. package/dist/_dts/blocks/src/index.d.ts +2 -2
  61. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  62. package/dist/_dts/blocks/src/primitives/content/components/Button.d.ts +7 -7
  63. package/dist/_dts/blocks/src/primitives/content/components/RichText.d.ts +2 -1
  64. package/dist/_dts/blocks/src/primitives/content/components/Text.d.ts +2 -1
  65. package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +3 -0
  66. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +2 -1
  67. package/dist/_dts/blocks/src/primitives/layout/Inline.d.ts +2 -1
  68. package/dist/_dts/blocks/src/primitives/layout/Stack.d.ts +2 -1
  69. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +880 -2608
  70. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +880 -2608
  71. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +880 -2608
  72. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +880 -2608
  73. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +880 -2608
  74. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +171 -0
  75. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -1
  76. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +302 -151
  77. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +6 -20
  78. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +880 -2608
  79. package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +1 -1
  80. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +880 -2608
  81. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +3 -2
  82. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  83. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  84. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +4 -10
  85. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +2608 -225
  86. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -2
  87. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +28 -0
  88. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +880 -2618
  89. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +880 -2620
  90. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +0 -4
  91. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +880 -2608
  92. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +36 -3
  93. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +4 -4
  94. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  95. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  96. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -2
  97. package/dist/_dts/blocks/src/system/customize/facets.d.ts +2 -2
  98. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
  99. package/dist/_dts/blocks/src/system/data/linkedContentEntries.d.ts +38 -0
  100. package/dist/_dts/blocks/src/system/defineBlock.d.ts +3 -1
  101. package/dist/_dts/blocks/src/system/fields/aspectRatio.d.ts +4 -1
  102. package/dist/_dts/blocks/src/system/fields/imageShape.d.ts +30 -0
  103. package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +25 -0
  104. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +106 -217
  105. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +1 -1
  106. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +36 -30
  107. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +18 -15
  108. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessEventRegistrationFlow.d.ts +33 -0
  109. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +2 -2
  110. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +3 -0
  111. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.server.d.ts +1 -1
  112. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +3 -1
  113. package/dist/_dts/blocks/src/system/runtime/nodes/carousel.shared.d.ts +2 -1
  114. package/dist/_dts/blocks/src/system/runtime/nodes/cart.client.d.ts +2 -1
  115. package/dist/_dts/blocks/src/system/runtime/nodes/cart.server.d.ts +1 -1
  116. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.client.d.ts +2 -1
  117. package/dist/_dts/blocks/src/system/runtime/nodes/checkout.server.d.ts +1 -1
  118. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +1 -5
  119. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/view.d.ts +10 -13
  120. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +3 -2
  121. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -2
  122. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/BookingModeStep.d.ts +1 -1
  123. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/CourseRegistrationWizard.d.ts +2 -1
  124. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/ErrorStep.d.ts +1 -1
  125. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/MembershipHero.d.ts +1 -1
  126. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PaymentFailedStep.d.ts +1 -1
  127. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/PortalAuthSidebar.d.ts +1 -1
  128. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/StepIndicator.d.ts +1 -1
  129. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/SuccessStep.d.ts +1 -1
  130. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/VerifyingTimeoutStep.d.ts +1 -1
  131. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/WaitlistStep.d.ts +1 -1
  132. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +5 -4
  133. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.client.d.ts +3 -2
  134. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  135. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.d.ts +2 -1
  136. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +1 -1
  137. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +2 -2
  138. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +1 -1
  139. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationSummaryBar.d.ts +2 -1
  140. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizard.d.ts +2 -1
  141. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardActions.d.ts +2 -1
  142. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventRegistrationWizardContent.d.ts +2 -1
  143. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/EventSelectionStep.d.ts +2 -0
  144. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/OrderSummary.d.ts +1 -1
  145. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/PastOccurrenceNotice.d.ts +2 -1
  146. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/SelectableOptionCard.d.ts +1 -1
  147. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/StepIndicator.d.ts +1 -1
  148. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.d.ts +303 -0
  149. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationDerivations.d.ts +1 -1
  150. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -2
  151. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +20 -1
  152. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +4 -3
  153. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/utils.d.ts +2 -1
  154. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +38 -11
  155. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  156. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.view.d.ts +1 -1
  157. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DateTimeTile.d.ts +2 -1
  158. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  159. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -1
  160. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +14 -0
  161. package/dist/_dts/blocks/src/system/runtime/nodes/gifting.client.d.ts +2 -1
  162. package/dist/_dts/blocks/src/system/runtime/nodes/gifting.server.d.ts +2 -1
  163. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.client.d.ts +2 -2
  164. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.server.d.ts +1 -1
  165. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.shared.d.ts +4 -4
  166. package/dist/_dts/blocks/src/system/runtime/nodes/location-map.view.d.ts +1 -1
  167. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +2 -1
  168. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
  169. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.client.d.ts +2 -1
  170. package/dist/_dts/blocks/src/system/runtime/nodes/product-detail.server.d.ts +1 -1
  171. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.client.d.ts +2 -1
  172. package/dist/_dts/blocks/src/system/runtime/nodes/product-list.server.d.ts +1 -1
  173. package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.d.ts +2 -1
  174. package/dist/_dts/blocks/src/system/runtime/nodes/shop-add-feedback.d.ts +1 -1
  175. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.d.ts +5 -4
  176. package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.server.d.ts +5 -4
  177. package/dist/_dts/blocks/src/system/runtime/nodes/shop.client.d.ts +2 -1
  178. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +0 -17
  179. package/dist/_dts/blocks/src/system/runtime/nodes/shop.server.d.ts +1 -1
  180. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +0 -1
  181. package/dist/_dts/blocks/src/system/runtime/nodes/spinner.d.ts +1 -1
  182. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +6 -0
  183. package/dist/_dts/blocks/src/system/runtime/shared/components/ActionRow.d.ts +1 -1
  184. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckIcon.d.ts +1 -1
  185. package/dist/_dts/blocks/src/system/runtime/shared/components/ClockIcon.d.ts +1 -1
  186. package/dist/_dts/blocks/src/system/runtime/shared/components/CrossIcon.d.ts +1 -1
  187. package/dist/_dts/blocks/src/system/runtime/shared/components/FeedbackMessage.d.ts +1 -1
  188. package/dist/_dts/blocks/src/system/runtime/shared/components/FieldValidationMessage.d.ts +1 -1
  189. package/dist/_dts/blocks/src/system/runtime/shared/components/MembershipHero.d.ts +1 -1
  190. package/dist/_dts/blocks/src/system/runtime/shared/components/StateIcon.d.ts +1 -1
  191. package/dist/_dts/blocks/src/system/runtime/shared/components/StepIndicator.d.ts +1 -1
  192. package/dist/_dts/blocks/src/system/runtime/shared/components/TerminalPanel.d.ts +1 -1
  193. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
  194. package/dist/_dts/content-editor/src/components/ContentFieldsForm.d.ts +1 -1
  195. package/dist/_dts/content-editor/src/components/EditableBlockProvider.d.ts +1 -1
  196. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +2 -2
  197. package/dist/_dts/content-editor/src/controller/buildBlockPublishedBaselines.d.ts +1 -1
  198. package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
  199. package/dist/_dts/content-editor/src/controller/useBlocksList.d.ts +1 -1
  200. package/dist/_dts/content-editor/src/controller/useInvalidBlockRecovery.d.ts +1 -1
  201. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +7 -1
  202. package/dist/_dts/content-editor/src/primitives/PreviewTextEditor.d.ts +7 -1
  203. package/dist/_dts/content-editor/src/primitives/shared/activePreviewField.d.ts +2 -0
  204. package/dist/_dts/content-editor/src/primitives/shared/index.d.ts +1 -1
  205. package/dist/_dts/content-editor/src/primitives/shared/storeBinding.d.ts +3 -1
  206. package/dist/_dts/content-editor/src/primitives/shared/types.d.ts +5 -0
  207. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +7 -2
  208. package/dist/_dts/content-model/src/content-types/builtin-schemas.d.ts +0 -40
  209. package/dist/_dts/content-model/src/content-types/builtins.d.ts +0 -40
  210. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  211. package/dist/_dts/content-model/src/entry-slots/types.d.ts +356 -0
  212. package/dist/_dts/content-model/src/index.d.ts +1 -0
  213. package/dist/_dts/content-model/src/templates/defaults.d.ts +7 -1
  214. package/dist/_dts/core/src/event-pricing.d.ts +72 -0
  215. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +127 -7
  216. package/dist/_dts/db/src/schemas/forms.d.ts +4 -4
  217. package/dist/_dts/editor/src/chrome/EditorChrome.d.ts +1 -1
  218. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +1 -1
  219. package/dist/_dts/editor/src/primitives/EditorPrimitivesProvider.d.ts +1 -1
  220. package/dist/_dts/editor/src/primitives/InlineFieldContext.d.ts +1 -1
  221. package/dist/_dts/editor/src/primitives/SaveContext.d.ts +1 -1
  222. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +1 -1
  223. package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +1 -1
  224. package/dist/_dts/editor/src/primitives/rich-text/toolbar/BlockTypeDropdown.d.ts +1 -1
  225. package/dist/_dts/editor/src/primitives/rich-text/toolbar/LinkPopover.d.ts +1 -1
  226. package/dist/_dts/editor/src/primitives/rich-text/toolbar/ToolbarIconButton.d.ts +1 -1
  227. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +6 -1
  228. package/dist/_dts/editor-blocks/src/BlockForm.d.ts +3 -2
  229. package/dist/_dts/editor-blocks/src/FormProvider.d.ts +1 -1
  230. package/dist/_dts/editor-blocks/src/block-editor/AddBlockDivider.d.ts +1 -1
  231. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +1 -1
  232. package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +1 -1
  233. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +1 -1
  234. package/dist/_dts/editor-blocks/src/block-editor/BlockListContext.d.ts +1 -1
  235. package/dist/_dts/editor-blocks/src/block-editor/BlockPickerDialog.d.ts +1 -1
  236. package/dist/_dts/editor-blocks/src/block-editor/BlockThumbnail.d.ts +1 -1
  237. package/dist/_dts/editor-blocks/src/block-editor/BlockTile.d.ts +2 -2
  238. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +1 -1
  239. package/dist/_dts/editor-blocks/src/block-editor/EnhancedBlockPickerDialog.d.ts +1 -1
  240. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  241. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +1 -1
  242. package/dist/_dts/editor-blocks/src/block-editor/HeaderActions.d.ts +1 -1
  243. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -2
  244. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +3 -2
  245. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +3 -2
  246. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +3 -2
  247. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +27 -0
  248. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  249. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  250. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  251. package/dist/_dts/editor-blocks/src/widgets/button/ButtonField.d.ts +1 -1
  252. package/dist/_dts/editor-blocks/src/widgets/button/ButtonVariantField.d.ts +1 -1
  253. package/dist/_dts/editor-blocks/src/widgets/button/context.d.ts +1 -1
  254. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeSelectField.d.ts +1 -1
  255. package/dist/_dts/editor-blocks/src/widgets/content-type-select/ContentTypeWidgetProvider.d.ts +1 -1
  256. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerField.d.ts +1 -1
  257. package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerWidgetProvider.d.ts +1 -1
  258. package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
  259. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  260. package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +1 -1
  261. package/dist/_dts/editor-blocks/src/widgets/link/LinkPickerDialog.d.ts +1 -1
  262. package/dist/_dts/editor-blocks/src/widgets/link/LinkSummary.d.ts +1 -1
  263. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -1
  264. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +1 -1
  265. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewGroupOrderField.d.ts +2 -0
  266. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/OfferingsPreviewWidgetProvider.d.ts +10 -0
  267. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/index.d.ts +3 -0
  268. package/dist/_dts/editor-blocks/src/widgets/offerings-preview/orderDomain.d.ts +29 -0
  269. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceField.d.ts +1 -1
  270. package/dist/_dts/editor-blocks/src/widgets/reference/ReferenceWidgetProvider.d.ts +1 -1
  271. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +1 -1
  272. package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextWidgetProvider.d.ts +1 -1
  273. package/dist/_dts/editor-blocks/src/widgets/rich-text/useImagePicker.d.ts +1 -1
  274. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionPickerField.d.ts +1 -1
  275. package/dist/_dts/editor-blocks/src/widgets/site-option-picker/SiteOptionWidgetProvider.d.ts +1 -1
  276. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +8 -0
  277. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +37 -3
  278. package/dist/_dts/media-editor/src/CropDialog.d.ts +1 -1
  279. package/dist/_dts/media-editor/src/CropDialogShell.d.ts +1 -1
  280. package/dist/_dts/media-editor/src/FileAssetPreview.d.ts +1 -1
  281. package/dist/_dts/media-editor/src/MediaEditor.d.ts +1 -1
  282. package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +1 -1
  283. package/dist/_dts/media-editor/src/MediaPreview.d.ts +1 -1
  284. package/dist/_dts/media-editor/src/context.d.ts +1 -1
  285. package/dist/_dts/media-editor/src/createMediaEditorProvider.d.ts +1 -1
  286. package/dist/_dts/media-editor/src/provider.d.ts +1 -1
  287. package/dist/_dts/media-react/src/components/AuthenticatedImage.d.ts +1 -1
  288. package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +1 -1
  289. package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +1 -1
  290. package/dist/_dts/preview-next/src/client/PreviewShellSmoke.d.ts +2 -1
  291. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -3
  292. package/dist/_dts/preview-next/src/client/blocks/BoundaryControl.d.ts +2 -1
  293. package/dist/_dts/preview-next/src/client/blocks/EditablePageRenderer.d.ts +2 -2
  294. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  295. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +2 -2
  296. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  297. package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +1 -1
  298. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +4 -2
  299. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +19 -0
  300. package/dist/_dts/preview-next/src/client/preview/MaintenanceModeBadge.d.ts +1 -1
  301. package/dist/_dts/preview-next/src/client/preview/OnboardingThemeSwitcher.d.ts +2 -1
  302. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +4 -3
  303. package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +2 -2
  304. package/dist/_dts/preview-next/src/client/preview/PreviewAuthBanner.d.ts +2 -1
  305. package/dist/_dts/preview-next/src/client/preview/PreviewAuthInit.d.ts +1 -1
  306. package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +2 -2
  307. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +3 -3
  308. package/dist/_dts/preview-next/src/client/preview/PreviewConfirmationDialog.d.ts +2 -1
  309. package/dist/_dts/preview-next/src/client/preview/PreviewDesignCoordinatorContext.d.ts +2 -2
  310. package/dist/_dts/preview-next/src/client/preview/PreviewDesignHistoryOrderContext.d.ts +2 -2
  311. package/dist/_dts/preview-next/src/client/preview/PreviewEditorGuidanceCard.d.ts +2 -1
  312. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -3
  313. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +2 -2
  314. package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -1
  315. package/dist/_dts/preview-next/src/client/preview/PreviewQueryProvider.d.ts +2 -2
  316. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +4 -3
  317. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -3
  318. package/dist/_dts/preview-next/src/client/preview/PreviewSidebarSection.d.ts +2 -2
  319. package/dist/_dts/preview-next/src/client/preview/PreviewViewportControls.d.ts +1 -1
  320. package/dist/_dts/preview-next/src/client/preview/PreviewZoomControls.d.ts +1 -1
  321. package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +2 -1
  322. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +10 -1
  323. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +17 -3
  324. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +2 -1
  325. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -1
  326. package/dist/_dts/preview-next/src/client/preview/SubrouteNoticePanel.d.ts +2 -1
  327. package/dist/_dts/preview-next/src/client/preview/linkedEntryEditEvents.d.ts +14 -1
  328. package/dist/_dts/preview-next/src/client/preview/previewChromePlacement.d.ts +5 -0
  329. package/dist/_dts/preview-next/src/client/preview/previewCustomizeControls.d.ts +11 -10
  330. package/dist/_dts/preview-next/src/client/preview/siteChromeLookRows.d.ts +10 -1
  331. package/dist/_dts/preview-next/src/client/preview/siteChromeQuickControlHistoryState.d.ts +29 -6
  332. package/dist/_dts/preview-next/src/client/preview/siteChromeSavePlan.d.ts +3 -2
  333. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +2 -2
  334. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewModeRuntime.d.ts +2 -1
  335. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +5 -3
  336. package/dist/_dts/sdk/src/__mocks__/next-cache.d.ts +4 -3
  337. package/dist/_dts/sdk/src/bookings/index.d.ts +5 -4
  338. package/dist/_dts/sdk/src/bookings/types.d.ts +2 -2
  339. package/dist/_dts/sdk/src/cli/commands/pull-dry-run.d.ts +1 -1
  340. package/dist/_dts/sdk/src/cli/content/reader.d.ts +15 -22
  341. package/dist/_dts/sdk/src/cli/content/writer.d.ts +6 -1
  342. package/dist/_dts/sdk/src/cli/helpers.d.ts +10 -5
  343. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +2 -2
  344. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +2 -1
  345. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +2 -2
  346. package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +1 -1
  347. package/dist/_dts/sdk/src/cli/site-commands/localBlockManifestResolver.d.ts +31 -0
  348. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +2 -2
  349. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +1 -1
  350. package/dist/_dts/sdk/src/cli/sync/validation.d.ts +7 -7
  351. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  352. package/dist/_dts/sdk/src/client/management/types.d.ts +40 -10
  353. package/dist/_dts/sdk/src/client/types.d.ts +36 -4
  354. package/dist/_dts/sdk/src/client.d.ts +1 -1
  355. package/dist/_dts/sdk/src/config/content-types.d.ts +3 -14
  356. package/dist/_dts/sdk/src/config/content-validation.d.ts +9 -214
  357. package/dist/_dts/sdk/src/config/field-definitions.d.ts +13 -7
  358. package/dist/_dts/sdk/src/config/types.d.ts +9 -0
  359. package/dist/_dts/sdk/src/config/validation.d.ts +21 -21
  360. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +28 -5
  361. package/dist/_dts/sdk/src/index.d.ts +1 -1
  362. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +6 -6
  363. package/dist/_dts/sdk/src/preview-next/client/runtime.d.ts +4 -3
  364. package/dist/_dts/sdk/src/public-api/contracts.d.ts +42 -37
  365. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +1 -0
  366. package/dist/_dts/sdk/src/rendering/components/Block.d.ts +1 -1
  367. package/dist/_dts/sdk/src/rendering/components/Block.server.d.ts +1 -1
  368. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +1 -1
  369. package/dist/_dts/sdk/src/rendering/components/Page.d.ts +1 -1
  370. package/dist/_dts/sdk/src/rendering/components/Page.server.d.ts +1 -1
  371. package/dist/_dts/sdk/src/rendering/components/PageHydrationBootstrap.d.ts +1 -1
  372. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +6 -1
  373. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +10 -9
  374. package/dist/_dts/sdk/src/rendering/islands/enhancers/routeIslandApiConfig.d.ts +9 -0
  375. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +6 -57
  376. package/dist/_dts/sdk/src/rendering/overrides.d.ts +6 -1
  377. package/dist/_dts/sdk/src/rendering/primitives/RichText.d.ts +2 -1
  378. package/dist/_dts/sdk/src/server.d.ts +1 -1
  379. package/dist/_dts/sdk/src/theme-bridge/ThemeBridgeProvider.d.ts +1 -1
  380. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  381. package/dist/_dts/sdk/src/version.d.ts +1 -1
  382. package/dist/_dts/site-commands/src/commands.d.ts +84 -21
  383. package/dist/_dts/theme-core/src/ClientThemeScope.d.ts +1 -1
  384. package/dist/_dts/theme-core/src/ThemeFontLoader.d.ts +3 -2
  385. package/dist/_dts/theme-core/src/ThemeScope.d.ts +1 -1
  386. package/dist/_dts/theme-core/src/ThemeScopeCore.d.ts +1 -1
  387. package/dist/_dts/theme-core/src/accordions/types.d.ts +6 -6
  388. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  389. package/dist/_dts/theme-core/src/buttons/personalities/ornate-ritual.d.ts +16 -0
  390. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +8 -8
  391. package/dist/_dts/theme-core/src/buttons/types.d.ts +20 -20
  392. package/dist/_dts/theme-core/src/cards/types.d.ts +20 -20
  393. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  394. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  395. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  396. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +234 -225
  397. package/dist/_dts/theme-core/src/mock-themes/components/PaletteCard.d.ts +1 -1
  398. package/dist/_dts/theme-core/src/mock-themes/components/swatch.d.ts +1 -1
  399. package/dist/_dts/theme-core/src/navigation/presets.d.ts +1 -1
  400. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  401. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  402. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +6 -6
  403. package/dist/_dts/theme-core/src/palette/variants/warm-dark.d.ts +16 -0
  404. package/dist/_dts/theme-core/src/schema.d.ts +263 -248
  405. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +2 -2
  406. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +27 -0
  407. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +141 -1
  408. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +16 -14
  409. package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +110 -5
  410. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +11 -9
  411. package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
  412. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  413. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  414. package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
  415. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -1
  416. package/dist/_dts/theme-core/src/site-styles/siteChromeBackgrounds.d.ts +30 -0
  417. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  418. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +2 -2
  419. package/dist/_dts/theme-core/src/site-styles/types.d.ts +3 -1
  420. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
  421. package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +1 -0
  422. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +3 -3
  423. package/dist/_dts/theme-core/src/utils/colorStyles.d.ts +6 -6
  424. package/dist/_dts/ui/src/async-boundary.d.ts +1 -1
  425. package/dist/_dts/ui/src/badge.d.ts +1 -1
  426. package/dist/_dts/ui/src/button-group.d.ts +3 -3
  427. package/dist/_dts/ui/src/calendar.d.ts +2 -2
  428. package/dist/_dts/ui/src/card.d.ts +6 -6
  429. package/dist/_dts/ui/src/combobox.d.ts +1 -1
  430. package/dist/_dts/ui/src/command-multi-select.d.ts +1 -1
  431. package/dist/_dts/ui/src/content-spinner.d.ts +1 -1
  432. package/dist/_dts/ui/src/delayed-spinner.d.ts +1 -1
  433. package/dist/_dts/ui/src/dev-toolbar.d.ts +1 -1
  434. package/dist/_dts/ui/src/dialog.d.ts +10 -10
  435. package/dist/_dts/ui/src/dropdown-menu.d.ts +1 -1
  436. package/dist/_dts/ui/src/editor-drawer.d.ts +1 -1
  437. package/dist/_dts/ui/src/empty-state.d.ts +1 -1
  438. package/dist/_dts/ui/src/filter-button-group.d.ts +1 -1
  439. package/dist/_dts/ui/src/fixed-bottom-surface.d.ts +1 -1
  440. package/dist/_dts/ui/src/form.d.ts +7 -7
  441. package/dist/_dts/ui/src/label.d.ts +1 -1
  442. package/dist/_dts/ui/src/menubar.d.ts +16 -16
  443. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -2
  444. package/dist/_dts/ui/src/number-input.d.ts +1 -1
  445. package/dist/_dts/ui/src/palette/ColorChooserDialog.d.ts +1 -1
  446. package/dist/_dts/ui/src/palette/ColorSlotButton.d.ts +1 -1
  447. package/dist/_dts/ui/src/palette/ColorSwatchButton.d.ts +1 -1
  448. package/dist/_dts/ui/src/palette/PaletteTokenEditor.d.ts +1 -1
  449. package/dist/_dts/ui/src/resizable-split-pane.d.ts +1 -1
  450. package/dist/_dts/ui/src/select.d.ts +10 -10
  451. package/dist/_dts/ui/src/separator.d.ts +1 -1
  452. package/dist/_dts/ui/src/sheet.d.ts +9 -9
  453. package/dist/_dts/ui/src/spinner.d.ts +1 -1
  454. package/dist/_dts/ui/src/tooltip.d.ts +4 -4
  455. package/dist/{chunk-4T5JIPWY.mjs → chunk-3LXFQS7T.mjs} +1 -1
  456. package/dist/{chunk-3QWQ2MUQ.mjs → chunk-5E33VO6J.mjs} +3128 -2300
  457. package/dist/{chunk-3VT7LZY2.mjs → chunk-6X2OVO3S.mjs} +2 -2
  458. package/dist/{chunk-3PTVPAT4.mjs → chunk-HFMGVJCE.mjs} +388 -56
  459. package/dist/{chunk-E3NZYEKF.mjs → chunk-LBBPD2IW.mjs} +53 -2
  460. package/dist/{chunk-WUHKQBB6.mjs → chunk-MSHZO4SL.mjs} +23773 -18556
  461. package/dist/cli/index.mjs +6062 -3246
  462. package/dist/cli/init-docs/content/getting-started.md +2 -0
  463. package/dist/cli/init-docs/content/workflow-custom-block.md +5 -0
  464. package/dist/cli/init-docs/content/workflow-templates.md +93 -2
  465. package/dist/client/{accordion-SFIIZWNH.mjs → accordion-ESY65T56.mjs} +2 -2
  466. package/dist/client/{bookingForm-CFKZVWGA.mjs → bookingForm-JRFNZUHD.mjs} +12 -12
  467. package/dist/client/bookings.mjs +3568 -299
  468. package/dist/client/{carousel-ELXWSBLA.mjs → carousel-CPR5VWIP.mjs} +3 -3
  469. package/dist/client/{cart-6SSCPYY5.mjs → cart-ZUX5BA7O.mjs} +8 -7
  470. package/dist/client/{checkout-UFQ34HPV.mjs → checkout-RULGBADZ.mjs} +8 -7
  471. package/dist/client/{chunk-PA2LJH2M.mjs → chunk-52I7BGEK.mjs} +5 -4
  472. package/dist/client/{chunk-IUEDYLFJ.mjs → chunk-5ZEAZ33K.mjs} +1 -1
  473. package/dist/client/{chunk-V6XI4M2Q.mjs → chunk-BT6AEIKN.mjs} +1 -1
  474. package/dist/client/{chunk-3PEDD5KJ.mjs → chunk-DVNUDUVT.mjs} +1 -1
  475. package/dist/client/{chunk-YLMKMCSJ.mjs → chunk-GFSQNTRW.mjs} +1 -3
  476. package/dist/client/{chunk-NX6X3GRF.mjs → chunk-HXPWP5EN.mjs} +492 -201
  477. package/dist/client/{chunk-G56BSZAM.mjs → chunk-JWEYB4V6.mjs} +3 -3
  478. package/dist/client/chunk-L4J5Y62O.mjs +18 -0
  479. package/dist/client/{chunk-76JUETXQ.mjs → chunk-RDJFCPY3.mjs} +358 -157
  480. package/dist/client/{chunk-RMWMT3ZD.mjs → chunk-SYIJ5JO2.mjs} +1 -1
  481. package/dist/client/{chunk-NP47RHIX.mjs → chunk-URQCZD5W.mjs} +17 -34
  482. package/dist/client/{chunk-TCJS3NY5.mjs → chunk-Z5OBQ5I4.mjs} +1 -1
  483. package/dist/client/{chunk-7BXX7WXH.mjs → chunk-ZE5G642V.mjs} +60 -2
  484. package/dist/client/client.mjs +75121 -72133
  485. package/dist/client/{courseRegistration-HJIISAAG.mjs → courseRegistration-QTUDC35T.mjs} +13 -12
  486. package/dist/client/{eventCalendar-F6YVUCZR.mjs → eventCalendar-Q7NS4XLD.mjs} +14 -14
  487. package/dist/client/{eventCombined-B5DSTIOK.mjs → eventCombined-QAO7VUO5.mjs} +14 -14
  488. package/dist/client/{eventDetails-SEJDDHQC.mjs → eventDetails-WTNNU6Q3.mjs} +9 -9
  489. package/dist/client/{eventListing-TPMWIIBO.mjs → eventListing-5TA2ELDT.mjs} +14 -14
  490. package/dist/client/{eventRegistration-QU6W2PV6.mjs → eventRegistration-M6USZGRF.mjs} +17 -15
  491. package/dist/client/{form-LVTYNTDE.mjs → form-DGVGXLMH.mjs} +3 -3
  492. package/dist/client/{headerSection-SO3MFC4U.mjs → headerSection-O2AGMPCU.mjs} +4 -4
  493. package/dist/client/hooks.mjs +7289 -5663
  494. package/dist/client/{locationMap-5E5FLAKO.mjs → locationMap-EJRNRIKJ.mjs} +2 -2
  495. package/dist/client/{newsletterForm-GN32JEBQ.mjs → newsletterForm-7NTC2DTR.mjs} +3 -3
  496. package/dist/client/{productDetail-Q346KSVR.mjs → productDetail-HH4LP53D.mjs} +8 -7
  497. package/dist/client/{productList-DTDMQYGZ.mjs → productList-YVHYM2AF.mjs} +8 -7
  498. package/dist/client/rendering/client.mjs +3818 -2234
  499. package/dist/client/rendering/islands.mjs +19 -19
  500. package/dist/client/rendering.mjs +17370 -14360
  501. package/dist/client/{shop-OFUW7KPN.mjs → shop-UIFX7XRK.mjs} +8 -7
  502. package/dist/client/spam-protection.mjs +3 -5
  503. package/dist/preview-next/before-render.mjs +40 -0
  504. package/dist/preview-next/client/runtime.css +1 -1
  505. package/dist/preview-next/client/runtime.mjs +5 -5
  506. package/dist/preview-next/middleware.mjs +40 -0
  507. package/dist/{sdk-runtime-EEMNSB7J.css → sdk-runtime-JD4A6SU6.css} +1 -1
  508. package/dist/{sdk-runtime-2GIX6I7X.mjs → sdk-runtime-ZENAOYMN.mjs} +6 -6
  509. package/dist/server/components.mjs +13473 -11321
  510. package/dist/server/config-validation.mjs +7017 -5489
  511. package/dist/server/config.mjs +7017 -5489
  512. package/dist/server/data.mjs +7295 -5669
  513. package/dist/server/index.mjs +149 -56
  514. package/dist/server/next.mjs +14431 -12060
  515. package/dist/server/page-converter.mjs +8062 -5399
  516. package/dist/server/prebuild.mjs +2 -1
  517. package/dist/server/rendering/server.mjs +13510 -11263
  518. package/dist/server/rendering.mjs +13613 -11293
  519. package/dist/server/routing.mjs +30919 -29206
  520. package/dist/server/server.mjs +27669 -25919
  521. package/dist/server/theme-bridge.mjs +1288 -146
  522. package/dist/server/theme.mjs +221 -131
  523. package/dist/styles/index.css +416 -96
  524. package/package.json +16 -16
  525. package/dist/SdkPreviewModeRuntime-AKCSCZEC.mjs +0 -8
@@ -1,17 +1,17 @@
1
1
  "use client";
2
2
  import { LeafletStaticMap } from './chunk-XSV6KW4D.mjs';
3
- import { MagicLinkForm, useWaitlistClaim } from './chunk-V6XI4M2Q.mjs';
4
- import { usePolling } from './chunk-IUEDYLFJ.mjs';
5
- import { SpinnerNode } from './chunk-RMWMT3ZD.mjs';
3
+ import { MagicLinkForm, useWaitlistClaim } from './chunk-BT6AEIKN.mjs';
4
+ import { usePolling } from './chunk-5ZEAZ33K.mjs';
5
+ import { SpinnerNode } from './chunk-SYIJ5JO2.mjs';
6
6
  import { useDiscountCodeUi } from './chunk-ZFHRN6W2.mjs';
7
- import { TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-PA2LJH2M.mjs';
7
+ import { createBodyThemePortalRoot, TabBarFragment, logoutPortal, StepIndicator, DiscountCodeDisclosure, TerminalPanel, StateIcon, formatPrice, CrossIcon, ClockIcon, consumeSearchParam, LoggedInAsUser, CheckIcon } from './chunk-52I7BGEK.mjs';
8
8
  import { getFieldValidationControlProps, FieldValidationMessage } from './chunk-3DCJ45Z2.mjs';
9
- import { ModalShell } from './chunk-3PEDD5KJ.mjs';
10
- import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-YLMKMCSJ.mjs';
9
+ import { ModalShell } from './chunk-DVNUDUVT.mjs';
10
+ import { isSpamProtectionEnabled, AltchaWidget, getChallengeUrl } from './chunk-GFSQNTRW.mjs';
11
11
  import { useBlockApi, FeedbackMessage } from './chunk-UDNSI5PY.mjs';
12
- import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, formatEventDateParts, formatCoursePriceAmount, DateTimeTile, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceDisplay, MONTH_NAMES, formatEventPrice, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-NX6X3GRF.mjs';
13
- import { getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, formatBookingDateTime, formatBookingDate, formatBookingTime } from './chunk-7BXX7WXH.mjs';
14
- import { createContext, useId, useMemo, useState, useRef, useEffect, useCallback, useContext, useReducer } from 'react';
12
+ import { buildEventRuntimeFilters, buildEventCalendarListingRender, groupEventsByDate, getOrderedDayNames, formatDateKey, getEventRuntimeFiltersKey, themeButtonClassName, normalizeCsvIds, normalizeOptionalId, normalizeEventBlockKind, normalizeCsvString, EventCompactRow, EmptyState, getContainerClass, getCardOrientation, isToday, MAX_EVENTS_PER_DAY, formatTime, resolveCoursePricingState, resolveRuntimeEventPricing, formatEventPrice, formatEventDateParts, DateTimeTile, EventCard, buildCalendarViewport, shiftCalendarAnchorDate, addMonths, getThreeMonthRange, buildTimetableModel, formatDate, isEventContentType, formatCoursePriceAmount, formatCoursePriceDisplay, MONTH_NAMES, getEventAvailability, formatEventTeacherLine, CreditCard, Ticket, Star, Sparkles, assertNever11 } from './chunk-HXPWP5EN.mjs';
13
+ import { publicEventPricingType, getBookingLocalDateKey, toScheduledBookingDateTime, toBookingTimeZone, publicEventPricingCurrency, formatBookingDateTime, publicEventPricingMode, publicEventScalarPrice, publicEventTicketTypes, formatBookingDate, formatBookingTime } from './chunk-ZE5G642V.mjs';
14
+ import React9, { createContext, useId, useMemo, useState, useRef, useEffect, useCallback, useContext, useReducer } from 'react';
15
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
16
16
 
17
17
  function StepIndicator2(props) {
@@ -190,6 +190,81 @@ function requiresPaymentStep(params) {
190
190
  return !isEntitlementSelection(params.paymentSelection);
191
191
  }
192
192
 
193
+ // ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.state.ts
194
+ var DEFAULT_EVENT_REGISTRATION_MAX_TICKETS = 5;
195
+ function getRegistrableStatuses(isPreview) {
196
+ return isPreview ? ["active", "draft"] : ["active"];
197
+ }
198
+ function normalizeEventRegistrationMaxTickets(value) {
199
+ if (typeof value === "number" && Number.isFinite(value) && value > 0) {
200
+ return Math.floor(value);
201
+ }
202
+ if (typeof value === "string") {
203
+ const parsed = Number.parseInt(value, 10);
204
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
205
+ }
206
+ return DEFAULT_EVENT_REGISTRATION_MAX_TICKETS;
207
+ }
208
+ function resolveEventRegistrationSubmitPlan(input) {
209
+ const selection = input.paymentSelection.method ? input.paymentSelection : void 0;
210
+ if (input.canJoinWaitlist) {
211
+ return { ok: true, args: withOptionalSelection({ method: "free" }, selection) };
212
+ }
213
+ switch (input.paymentSelection.method) {
214
+ case "pass":
215
+ return input.paymentSelection.passId ? {
216
+ ok: true,
217
+ args: withOptionalSelection(
218
+ { method: "pass", passId: input.paymentSelection.passId },
219
+ selection
220
+ )
221
+ } : missingPaymentSelection();
222
+ case "membership":
223
+ return input.paymentSelection.membershipId ? {
224
+ ok: true,
225
+ args: withOptionalSelection(
226
+ { method: "membership", membershipId: input.paymentSelection.membershipId },
227
+ selection
228
+ )
229
+ } : missingPaymentSelection();
230
+ case "free":
231
+ return { ok: true, args: withOptionalSelection({ method: "free" }, selection) };
232
+ case null:
233
+ return input.eventRequiresPayment ? missingPaymentSelection() : { ok: true, args: { method: "free" } };
234
+ case "pass_bundle":
235
+ return input.paymentSelection.bundlePassId ? {
236
+ ok: true,
237
+ args: withOptionalSelection(
238
+ { method: "pass_bundle", passId: input.paymentSelection.bundlePassId },
239
+ selection
240
+ )
241
+ } : missingPaymentSelection();
242
+ case "membership_bundle":
243
+ return input.paymentSelection.bundleMembershipId ? {
244
+ ok: true,
245
+ args: withOptionalSelection(
246
+ {
247
+ method: "membership_bundle",
248
+ membershipId: input.paymentSelection.bundleMembershipId
249
+ },
250
+ selection
251
+ )
252
+ } : missingPaymentSelection();
253
+ case "stripe":
254
+ return { ok: true, args: withOptionalSelection({ method: "stripe" }, selection) };
255
+ }
256
+ }
257
+ function withOptionalSelection(args, selection) {
258
+ return selection ? { ...args, selection } : args;
259
+ }
260
+ function missingPaymentSelection() {
261
+ return {
262
+ ok: false,
263
+ reason: "payment-selection-required",
264
+ message: "Select a payment option to continue."
265
+ };
266
+ }
267
+
193
268
  // ../blocks/src/system/runtime/nodes/event-registration/utils.ts
194
269
  var DEFAULT_EVENT_CURRENCY = "usd";
195
270
  function formatDate2(isoTimestamp, options) {
@@ -281,12 +356,15 @@ function getTicketTypeAvailabilityLabel(ticketType) {
281
356
  }
282
357
  function getVisibleTicketTypes(input) {
283
358
  const eligibilityTicketTypes = input.eligibility?.ticketTypes;
284
- const eventTicketTypes = input.event?.ticketTypes;
285
- const source = eligibilityTicketTypes && eligibilityTicketTypes.length > 0 ? eligibilityTicketTypes : eventTicketTypes ?? [];
359
+ const eventTicketTypes = input.event ? publicEventTicketTypes(resolveRuntimeEventPricing(input.event)) : [];
360
+ const source = eligibilityTicketTypes && eligibilityTicketTypes.length > 0 ? eligibilityTicketTypes : eventTicketTypes;
286
361
  return source.filter(
287
362
  (ticketType) => ticketType.isActive && (!input.selectedAttendanceMode || (ticketType.attendanceScope ?? "both") === "both" || (ticketType.attendanceScope ?? "both") === input.selectedAttendanceMode)
288
363
  );
289
364
  }
365
+ function getImplicitSingleAvailableTicketType(ticketTypes) {
366
+ return ticketTypes.length === 1 && ticketTypes[0]?.availability.kind === "available" ? ticketTypes[0] : null;
367
+ }
290
368
  function findSelectedTicketType(input) {
291
369
  if (!input.selectedTicketTypeId) {
292
370
  return null;
@@ -668,6 +746,13 @@ function cleanupStaleRegistrations() {
668
746
  console.warn("[sessionStorage] Cleanup failed:", error);
669
747
  }
670
748
  }
749
+ function getEventSelectionMode(events) {
750
+ const firstSeriesId = events[0]?.seriesId;
751
+ if (events.length > 1 && firstSeriesId && events.every((event) => event.seriesId === firstSeriesId)) {
752
+ return "date";
753
+ }
754
+ return "event";
755
+ }
671
756
  var EventSelectionStep = ({
672
757
  events,
673
758
  selectedEvent,
@@ -675,8 +760,10 @@ var EventSelectionStep = ({
675
760
  showVenue,
676
761
  showCapacity
677
762
  }) => {
763
+ const selectionMode = getEventSelectionMode(events);
764
+ const isDateSelection = selectionMode === "date";
678
765
  return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
679
- /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Select an Event" }),
766
+ /* @__PURE__ */ jsx("h3", { className: "er-title", children: isDateSelection ? "Choose a date" : "Select an event" }),
680
767
  /* @__PURE__ */ jsx("div", { className: "er-event-grid", children: events.map((event) => {
681
768
  const isSelected = selectedEvent?.publicEventId === event.publicEventId;
682
769
  const isSoldOut = event.capacity !== null && event.availableSpots === 0;
@@ -702,19 +789,18 @@ var EventSelectionStep = ({
702
789
  onClick: () => !isUnavailable && onSelect(event),
703
790
  disabled: isUnavailable,
704
791
  className: cardClasses,
705
- children: /* @__PURE__ */ jsxs("div", { className: "er-row er-row--between", children: [
706
- /* @__PURE__ */ jsxs("div", { children: [
707
- /* @__PURE__ */ jsx("h4", { className: "er-event-title", children: event.title }),
792
+ children: /* @__PURE__ */ jsxs("div", { className: "er-event-option", children: [
793
+ /* @__PURE__ */ jsxs("div", { className: "er-event-option-main", children: [
794
+ /* @__PURE__ */ jsx("h4", { className: "er-event-title", children: isDateSelection ? formatDate2(event.startsAt, { timeZone }) : event.title }),
708
795
  /* @__PURE__ */ jsxs("p", { className: "er-text er-text--muted", children: [
709
- formatDate2(event.startsAt, { timeZone }),
710
- " ",
711
- "at",
712
- " ",
713
- formatTime2(event.startsAt, { timeZone })
714
- ] }),
715
- showVenue && event.venue && /* @__PURE__ */ jsx("p", { className: "er-text er-text--faint", children: event.venue.name })
796
+ isDateSelection ? formatTime2(event.startsAt, { timeZone }) : `${formatDate2(event.startsAt, { timeZone })} at ${formatTime2(event.startsAt, { timeZone })}`,
797
+ showVenue && event.venue && /* @__PURE__ */ jsxs(Fragment, { children: [
798
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: " \xB7 " }),
799
+ event.venue.name
800
+ ] })
801
+ ] })
716
802
  ] }),
717
- showCapacity && event.capacity !== null && /* @__PURE__ */ jsx("span", { className: badgeClasses, children: canJoinWaitlist ? "Waitlist" : isUnavailable ? "Sold Out" : `${event.availableSpots} spots left` })
803
+ showCapacity && event.capacity !== null && /* @__PURE__ */ jsx("span", { className: badgeClasses, children: canJoinWaitlist ? "Waitlist" : isUnavailable ? "Sold Out" : `${event.availableSpots ?? 0} spots left` })
718
804
  ] })
719
805
  },
720
806
  event.publicEventId
@@ -732,7 +818,7 @@ function getEventAttendanceModeLabel(mode) {
732
818
  }
733
819
  function TicketCounter(props) {
734
820
  const { ticketsCount, maxAllowed, onTicketsChange } = props;
735
- return /* @__PURE__ */ jsxs("div", { className: "er-row", children: [
821
+ return /* @__PURE__ */ jsxs("div", { className: "er-row er-counter", children: [
736
822
  /* @__PURE__ */ jsx(
737
823
  "button",
738
824
  {
@@ -756,6 +842,24 @@ function TicketCounter(props) {
756
842
  )
757
843
  ] });
758
844
  }
845
+ function TicketCounterLimit(props) {
846
+ return /* @__PURE__ */ jsxs("p", { className: "er-ticket-counter-limit", children: [
847
+ /* @__PURE__ */ jsx("span", { children: props.maximumLabel }),
848
+ props.availabilityLabel ? /* @__PURE__ */ jsxs(Fragment, { children: [
849
+ /* @__PURE__ */ jsx("br", {}),
850
+ /* @__PURE__ */ jsx("span", { children: props.availabilityLabel })
851
+ ] }) : null
852
+ ] });
853
+ }
854
+ function getTicketTypeCounterAvailabilityLabel(input) {
855
+ if (input.selectedRemainingCapacity !== null) {
856
+ return `${input.selectedRemainingCapacity} remaining for this ticket type`;
857
+ }
858
+ if (input.eventAvailableSpots != null) {
859
+ return `${input.eventAvailableSpots} spots available`;
860
+ }
861
+ return null;
862
+ }
759
863
  function getAttendanceModeDetail(attendanceMode) {
760
864
  if (attendanceMode.availableSpots === null) {
761
865
  return "Unlimited spots";
@@ -819,14 +923,20 @@ var TicketSelectionStep = ({
819
923
  const waitlistEnabled = selectedModeAvailability?.waitlistEnabled ?? event?.waitlistEnabled ?? false;
820
924
  const isSoldOut = availableSpots === 0;
821
925
  const canJoinWaitlist = isSoldOut && waitlistEnabled === true;
822
- const usesTicketTypes = event?.pricingMode === "ticket_types" && !canJoinWaitlist;
926
+ const eventPricing = event ? resolveRuntimeEventPricing(event) : null;
927
+ const eventPricingMode = eventPricing ? publicEventPricingMode(eventPricing) : void 0;
928
+ const eventPricingCurrency = eventPricing ? publicEventPricingCurrency(eventPricing) : null;
929
+ const usesTicketTypes = eventPricingMode === "ticket_types" && !canJoinWaitlist;
823
930
  const visibleTicketTypes = usesTicketTypes ? getVisibleTicketTypes({
824
931
  event,
825
932
  eligibility: null,
826
933
  selectedAttendanceMode
827
934
  }) : [];
828
935
  const selectedTicketType = usesTicketTypes ? visibleTicketTypes.find((ticketType) => ticketType.id === selectedTicketTypeId) ?? null : null;
829
- const selectedRemainingCapacity = selectedTicketType?.availability.remainingCapacity ?? null;
936
+ const implicitTicketType = usesTicketTypes ? getImplicitSingleAvailableTicketType(visibleTicketTypes) : null;
937
+ const effectiveSelectedTicketType = selectedTicketType ?? implicitTicketType;
938
+ const shouldShowTicketTypeTiles = usesTicketTypes && implicitTicketType === null;
939
+ const selectedRemainingCapacity = effectiveSelectedTicketType?.availability.remainingCapacity ?? null;
830
940
  const noSellableTicketTypes = usesTicketTypes && (visibleTicketTypes.length === 0 || visibleTicketTypes.every((ticketType) => ticketType.availability.kind === "unavailable"));
831
941
  const maxAllowed = getMaxAllowedTicketCount({
832
942
  canJoinWaitlist,
@@ -834,8 +944,13 @@ var TicketSelectionStep = ({
834
944
  maxTickets,
835
945
  availableSpots,
836
946
  selectedTicketTypeRemainingCapacity: selectedRemainingCapacity,
837
- hasSelectedTicketType: selectedTicketType !== null
947
+ hasSelectedTicketType: effectiveSelectedTicketType !== null
838
948
  });
949
+ const selectedTicketTypeAvailabilityLabel = getTicketTypeCounterAvailabilityLabel({
950
+ selectedRemainingCapacity,
951
+ eventAvailableSpots: event?.availableSpots
952
+ });
953
+ const eventAvailabilityLabel = !canJoinWaitlist && event?.availableSpots != null ? `${event.availableSpots} spots available` : null;
839
954
  if (deliveryMode === "hybrid" && !selectedAttendanceMode) {
840
955
  return /* @__PURE__ */ jsxs("div", { className: "er-stack", children: [
841
956
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "How will you attend?" }),
@@ -869,30 +984,53 @@ var TicketSelectionStep = ({
869
984
  )
870
985
  ] }) : null,
871
986
  usesTicketTypes ? /* @__PURE__ */ jsxs(Fragment, { children: [
872
- /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Choose a ticket type" }),
873
- /* @__PURE__ */ jsx("div", { className: "er-payment-tiles", role: "list", "aria-label": "Ticket types", children: visibleTicketTypes.map((ticketType) => {
874
- const availabilityLabel = getTicketTypeAvailabilityLabel(ticketType);
875
- const disabled = ticketType.availability.kind === "unavailable";
876
- const isSelected = selectedTicketTypeId === ticketType.id;
877
- const priceLabel = ticketType.priceAmount > 0 ? formatPrice(ticketType.priceAmount, event?.currency ?? DEFAULT_EVENT_CURRENCY) : "Free";
878
- return /* @__PURE__ */ jsx("div", { role: "listitem", children: /* @__PURE__ */ jsxs(
879
- "button",
880
- {
881
- type: "button",
882
- className: `er-payment-tile${isSelected && !disabled ? " er-payment-tile--selected" : ""}${disabled ? " er-payment-tile--disabled" : ""}`,
883
- disabled,
884
- onClick: () => onTicketTypeChange?.(ticketType.id),
885
- children: [
886
- /* @__PURE__ */ jsx("div", { className: "er-payment-tile-label", children: ticketType.name }),
887
- /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: priceLabel }),
888
- ticketType.description ? /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: ticketType.description }) : null,
889
- availabilityLabel ? /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: availabilityLabel }) : null
890
- ]
891
- }
892
- ) }, ticketType.id);
893
- }) }),
894
- noSellableTicketTypes ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : !selectedTicketType ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Select one ticket type to continue." }) : selectedTicketType.availability.kind === "unavailable" ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: getTicketTypeAvailabilityLabel(selectedTicketType) ?? "This ticket type is unavailable." }) : /* @__PURE__ */ jsxs(Fragment, { children: [
987
+ shouldShowTicketTypeTiles ? /* @__PURE__ */ jsxs(Fragment, { children: [
988
+ /* @__PURE__ */ jsx("h3", { className: "er-title", children: "Choose a ticket type" }),
989
+ /* @__PURE__ */ jsx("div", { className: "er-payment-tiles", role: "list", "aria-label": "Ticket types", children: visibleTicketTypes.map((ticketType) => {
990
+ const availabilityLabel = getTicketTypeAvailabilityLabel(ticketType);
991
+ const disabled = ticketType.availability.kind === "unavailable";
992
+ const isSelected = selectedTicketTypeId === ticketType.id;
993
+ const priceLabel = ticketType.priceAmount > 0 ? formatPrice(ticketType.priceAmount, eventPricingCurrency ?? DEFAULT_EVENT_CURRENCY) : "Free";
994
+ return /* @__PURE__ */ jsx("div", { role: "listitem", children: /* @__PURE__ */ jsxs(
995
+ "button",
996
+ {
997
+ type: "button",
998
+ className: `er-payment-tile${isSelected && !disabled ? " er-payment-tile--selected" : ""}${disabled ? " er-payment-tile--disabled" : ""}`,
999
+ disabled,
1000
+ onClick: () => onTicketTypeChange?.(ticketType.id),
1001
+ children: [
1002
+ /* @__PURE__ */ jsx("div", { className: "er-payment-tile-label", children: ticketType.name }),
1003
+ /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: priceLabel }),
1004
+ ticketType.description ? /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: ticketType.description }) : null,
1005
+ availabilityLabel ? /* @__PURE__ */ jsx("div", { className: "er-payment-tile-detail", children: availabilityLabel }) : null
1006
+ ]
1007
+ }
1008
+ ) }, ticketType.id);
1009
+ }) })
1010
+ ] }) : null,
1011
+ noSellableTicketTypes ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "No ticket types are currently available." }) : !effectiveSelectedTicketType ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "Select one ticket type to continue." }) : effectiveSelectedTicketType.availability.kind === "unavailable" ? /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: getTicketTypeAvailabilityLabel(effectiveSelectedTicketType) ?? "This ticket type is unavailable." }) : /* @__PURE__ */ jsxs(Fragment, { children: [
895
1012
  /* @__PURE__ */ jsx("h3", { className: "er-title", children: "How many tickets?" }),
1013
+ /* @__PURE__ */ jsxs("div", { className: "er-ticket-counter-group", children: [
1014
+ /* @__PURE__ */ jsx(
1015
+ TicketCounter,
1016
+ {
1017
+ ticketsCount,
1018
+ maxAllowed,
1019
+ onTicketsChange
1020
+ }
1021
+ ),
1022
+ /* @__PURE__ */ jsx(
1023
+ TicketCounterLimit,
1024
+ {
1025
+ maximumLabel: `${maxAllowed} tickets maximum`,
1026
+ availabilityLabel: selectedTicketTypeAvailabilityLabel
1027
+ }
1028
+ )
1029
+ ] })
1030
+ ] })
1031
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
1032
+ /* @__PURE__ */ jsx("h3", { className: "er-title", children: canJoinWaitlist ? "How many waitlist spots?" : "How many tickets?" }),
1033
+ /* @__PURE__ */ jsxs("div", { className: "er-ticket-counter-group", children: [
896
1034
  /* @__PURE__ */ jsx(
897
1035
  TicketCounter,
898
1036
  {
@@ -901,29 +1039,13 @@ var TicketSelectionStep = ({
901
1039
  onTicketsChange
902
1040
  }
903
1041
  ),
904
- /* @__PURE__ */ jsxs("p", { className: "er-text er-text--muted", children: [
905
- maxAllowed,
906
- " tickets maximum",
907
- selectedRemainingCapacity !== null ? ` (${selectedRemainingCapacity} remaining for this ticket type)` : "",
908
- selectedRemainingCapacity === null && event?.availableSpots != null ? ` (${event.availableSpots} spots available)` : ""
909
- ] })
910
- ] })
911
- ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
912
- /* @__PURE__ */ jsx("h3", { className: "er-title", children: canJoinWaitlist ? "How many waitlist spots?" : "How many tickets?" }),
913
- /* @__PURE__ */ jsx(
914
- TicketCounter,
915
- {
916
- ticketsCount,
917
- maxAllowed,
918
- onTicketsChange
919
- }
920
- ),
921
- /* @__PURE__ */ jsxs("p", { className: "er-text er-text--muted", children: [
922
- maxAllowed,
923
- " ",
924
- canJoinWaitlist ? "waitlist spots" : "tickets",
925
- " maximum",
926
- !canJoinWaitlist && event?.availableSpots != null && ` (${event.availableSpots} spots available)`
1042
+ /* @__PURE__ */ jsx(
1043
+ TicketCounterLimit,
1044
+ {
1045
+ maximumLabel: `${maxAllowed} ${canJoinWaitlist ? "waitlist spots" : "tickets"} maximum`,
1046
+ availabilityLabel: eventAvailabilityLabel
1047
+ }
1048
+ )
927
1049
  ] })
928
1050
  ] }),
929
1051
  canJoinWaitlist && /* @__PURE__ */ jsx("p", { className: "er-text er-text--muted", children: "This event is currently full. Continue to join the waitlist if a spot opens up." })
@@ -1750,18 +1872,8 @@ function EventRegistrationWizardActions(props) {
1750
1872
  }
1751
1873
  case "select-payment": {
1752
1874
  const { status, canContinue, buttonText } = wizard.paymentStepState;
1753
- const selection = wizard.paymentSelection;
1754
1875
  const handlePaymentContinue = () => {
1755
- if (!selection.method) return;
1756
- if (selection.method === "free") {
1757
- void wizard.handlePaymentSelect("free");
1758
- return;
1759
- }
1760
- void wizard.handlePaymentSelect(
1761
- selection.method,
1762
- selection.passId ?? selection.bundlePassId,
1763
- selection.membershipId ?? selection.bundleMembershipId
1764
- );
1876
+ void wizard.handlePaymentSelect();
1765
1877
  };
1766
1878
  return /* @__PURE__ */ jsxs("div", { className: "er-actions", children: [
1767
1879
  /* @__PURE__ */ jsx("button", { type: "button", onClick: () => wizard.setStep("enter-details"), className: "er-back-btn", children: "\u2190 Back" }),
@@ -1791,8 +1903,8 @@ function EventRegistrationSummaryBar(props) {
1791
1903
  const summaryTimeZone = wizard.occurrenceContext?.timeZone ?? summaryEvent?.timeZone ?? null;
1792
1904
  const occurrenceOverrideTitle = wizard.occurrenceContext?.overrides?.title;
1793
1905
  const summaryTitle = occurrenceOverrideTitle ?? summaryEvent?.title ?? "";
1794
- const summaryPrice = wizard.selectedTicketType?.priceAmount ?? wizard.eligibility?.price ?? summaryEvent?.price ?? 0;
1795
- const summaryCurrency = summaryEvent?.currency ?? DEFAULT_EVENT_CURRENCY;
1906
+ const summaryPrice = wizard.selectedTicketType?.priceAmount ?? wizard.eligibility?.price ?? (summaryEvent ? publicEventScalarPrice(summaryEvent.pricing) : null) ?? 0;
1907
+ const summaryCurrency = (summaryEvent ? publicEventPricingCurrency(summaryEvent.pricing) : null) ?? DEFAULT_EVENT_CURRENCY;
1796
1908
  const teamMemberNames = (summaryEvent?.teamMembers ?? []).map((teamMember) => teamMember.name).filter(Boolean);
1797
1909
  const subtotalCents = Math.max(0, summaryPrice * wizard.ticketsCount);
1798
1910
  const autoAppliedDiscount = wizard.discountCode.trim().length > 0 ? null : wizard.autoAppliedDiscount;
@@ -1979,9 +2091,15 @@ function useEventRegistrationStripeReturn(options) {
1979
2091
 
1980
2092
  // ../blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.ts
1981
2093
  function useEventRegistrationSubmit(options) {
1982
- return async (method, passId, membershipId, selection) => {
2094
+ return async (method, passId, membershipId, selection, submitOptions) => {
1983
2095
  const submitOccurrenceId = options.registrationTarget?.occurrenceId;
1984
- if (!submitOccurrenceId) return;
2096
+ if (!submitOccurrenceId) {
2097
+ return {
2098
+ ok: false,
2099
+ reason: "missing-target",
2100
+ message: "Select an event to continue."
2101
+ };
2102
+ }
1985
2103
  options.setStep("submitting");
1986
2104
  try {
1987
2105
  const isBundle = method === "pass_bundle" || method === "membership_bundle";
@@ -2049,7 +2167,7 @@ function useEventRegistrationSubmit(options) {
2049
2167
  if (checkoutResult.bypassed) {
2050
2168
  options.setRegistrationResult({ status: "confirmed" });
2051
2169
  options.setStep("success");
2052
- return;
2170
+ return { ok: true, outcome: { kind: "completed" } };
2053
2171
  }
2054
2172
  if (!checkoutResult.checkoutUrl) {
2055
2173
  throw new Error("Checkout URL missing");
@@ -2066,8 +2184,17 @@ function useEventRegistrationSubmit(options) {
2066
2184
  paymentSelection: selectionSnapshot
2067
2185
  });
2068
2186
  }
2187
+ if (submitOptions?.redirect === "manual") {
2188
+ return {
2189
+ ok: true,
2190
+ outcome: {
2191
+ kind: "checkout_redirect",
2192
+ checkoutUrl: checkoutResult.checkoutUrl
2193
+ }
2194
+ };
2195
+ }
2069
2196
  window.location.href = checkoutResult.checkoutUrl;
2070
- return;
2197
+ return { ok: true, outcome: { kind: "checkout_redirect", checkoutUrl: checkoutResult.checkoutUrl } };
2071
2198
  }
2072
2199
  if (result.alreadyRegistered) {
2073
2200
  const title = result.status === "waitlist" ? "Already waitlisted" : "Already registered";
@@ -2089,9 +2216,16 @@ function useEventRegistrationSubmit(options) {
2089
2216
  options.setRegistrationResult({ status: result.status });
2090
2217
  }
2091
2218
  options.setStep("success");
2219
+ return { ok: true, outcome: { kind: "completed" } };
2092
2220
  } catch (error) {
2093
- options.setErrorMessage(error instanceof Error ? error.message : "Registration failed");
2221
+ const message = error instanceof Error ? error.message : "Registration failed";
2222
+ options.setErrorMessage(message);
2094
2223
  options.setStep("error");
2224
+ return {
2225
+ ok: false,
2226
+ reason: "submission-failed",
2227
+ message
2228
+ };
2095
2229
  }
2096
2230
  };
2097
2231
  }
@@ -2139,7 +2273,7 @@ function resolveEventRequiresPayment(input) {
2139
2273
  if (!input.event) {
2140
2274
  return false;
2141
2275
  }
2142
- return input.event.pricingType !== "free";
2276
+ return publicEventPricingType(resolveRuntimeEventPricing(input.event)) !== "free";
2143
2277
  }
2144
2278
  function resolveDiscountContext(input) {
2145
2279
  const selection = input.paymentSelection.method ? input.paymentSelection : null;
@@ -2170,9 +2304,9 @@ function resolveDiscountContext(input) {
2170
2304
  function toRegistrationEvent(event) {
2171
2305
  return {
2172
2306
  ...event,
2307
+ pricing: resolveRuntimeEventPricing(event),
2173
2308
  publicEventId: event.id,
2174
- registrationOccurrenceId: event.occurrenceId,
2175
- ticketTypes: event.ticketTypes ?? []
2309
+ registrationOccurrenceId: event.occurrenceId
2176
2310
  };
2177
2311
  }
2178
2312
  function toRegistrationEvents(events) {
@@ -2397,7 +2531,7 @@ function useEventRegistrationWizard(options) {
2397
2531
  );
2398
2532
  const ticketTypeSelectionRequired = useMemo(() => {
2399
2533
  const event = selectedEvent ?? preSelectedEvent;
2400
- if (!event || event.pricingMode !== "ticket_types") {
2534
+ if (!event || publicEventPricingMode(resolveRuntimeEventPricing(event)) !== "ticket_types") {
2401
2535
  return false;
2402
2536
  }
2403
2537
  if ((event.deliveryMode ?? "in_person") === "hybrid" && !selectedAttendanceMode) {
@@ -2412,12 +2546,17 @@ function useEventRegistrationWizard(options) {
2412
2546
  );
2413
2547
  useEffect(() => {
2414
2548
  const event = selectedEvent ?? preSelectedEvent;
2415
- if (!event || event.pricingMode !== "ticket_types") {
2549
+ if (!event || publicEventPricingMode(resolveRuntimeEventPricing(event)) !== "ticket_types") {
2416
2550
  if (selectedTicketTypeId !== null) {
2417
2551
  setSelectedTicketTypeId(null);
2418
2552
  }
2419
2553
  return;
2420
2554
  }
2555
+ const implicitTicketType = getImplicitSingleAvailableTicketType(visibleTicketTypes);
2556
+ if (implicitTicketType && selectedTicketTypeId !== implicitTicketType.id) {
2557
+ setSelectedTicketTypeId(implicitTicketType.id);
2558
+ return;
2559
+ }
2421
2560
  if (selectedTicketTypeId && !visibleTicketTypes.some((ticketType) => ticketType.id === selectedTicketTypeId)) {
2422
2561
  setSelectedTicketTypeId(null);
2423
2562
  }
@@ -2480,30 +2619,45 @@ function useEventRegistrationWizard(options) {
2480
2619
  setStep("error");
2481
2620
  return;
2482
2621
  }
2483
- if (eligibility?.canJoinWaitlist) {
2484
- await handleSubmit("free", void 0, void 0, paymentSelection.method ? paymentSelection : void 0);
2485
- return;
2486
- }
2487
- if (paymentSelection.method === "pass" && paymentSelection.passId) {
2488
- await handleSubmit("pass", paymentSelection.passId, void 0, paymentSelection);
2622
+ const shouldCollectPayment = !eligibility?.canJoinWaitlist && requiresPaymentStep({ eventRequiresPayment, paymentSelection });
2623
+ if (shouldCollectPayment) {
2624
+ setStep("select-payment");
2489
2625
  return;
2490
2626
  }
2491
- if (paymentSelection.method === "membership" && paymentSelection.membershipId) {
2492
- await handleSubmit("membership", void 0, paymentSelection.membershipId, paymentSelection);
2627
+ const submitPlan = resolveEventRegistrationSubmitPlan({
2628
+ paymentSelection,
2629
+ eventRequiresPayment,
2630
+ canJoinWaitlist: eligibility?.canJoinWaitlist
2631
+ });
2632
+ if (!submitPlan.ok) {
2633
+ setErrorMessage(submitPlan.message);
2634
+ setStep("error");
2493
2635
  return;
2494
2636
  }
2495
- if (paymentSelection.method === "free" || !eventRequiresPayment) {
2496
- await handleSubmit("free", void 0, void 0, paymentSelection.method ? paymentSelection : void 0);
2637
+ await handleSubmit(
2638
+ submitPlan.args.method,
2639
+ submitPlan.args.passId,
2640
+ submitPlan.args.membershipId,
2641
+ submitPlan.args.selection
2642
+ );
2643
+ };
2644
+ const handlePaymentSelect = async () => {
2645
+ const submitPlan = resolveEventRegistrationSubmitPlan({
2646
+ paymentSelection,
2647
+ eventRequiresPayment,
2648
+ canJoinWaitlist: eligibility?.canJoinWaitlist
2649
+ });
2650
+ if (!submitPlan.ok) {
2651
+ setErrorMessage(submitPlan.message);
2652
+ setStep("error");
2497
2653
  return;
2498
2654
  }
2499
- if (requiresPaymentStep({ eventRequiresPayment: true, paymentSelection })) {
2500
- setStep("select-payment");
2501
- } else {
2502
- await handleSubmit("stripe", void 0, void 0, paymentSelection.method ? paymentSelection : void 0);
2503
- }
2504
- };
2505
- const handlePaymentSelect = async (method, passId, membershipId) => {
2506
- await handleSubmit(method, passId, membershipId, paymentSelection.method ? paymentSelection : void 0);
2655
+ await handleSubmit(
2656
+ submitPlan.args.method,
2657
+ submitPlan.args.passId,
2658
+ submitPlan.args.membershipId,
2659
+ submitPlan.args.selection
2660
+ );
2507
2661
  };
2508
2662
  const handleUseCardInsteadOfPass = () => {
2509
2663
  dispatchFlow({ type: "use-card-instead-of-pass" });
@@ -2527,7 +2681,7 @@ function useEventRegistrationWizard(options) {
2527
2681
  const discountSubtotalCents = useMemo(() => {
2528
2682
  if (discountContext?.type !== "event") return void 0;
2529
2683
  const event = selectedEvent ?? preSelectedEvent;
2530
- const eventPriceCents = selectedTicketType?.priceAmount ?? eligibility?.price ?? event?.price ?? 0;
2684
+ const eventPriceCents = selectedTicketType?.priceAmount ?? eligibility?.price ?? (event ? publicEventScalarPrice(resolveRuntimeEventPricing(event)) : null) ?? 0;
2531
2685
  return Math.max(0, eventPriceCents * ticketsCount);
2532
2686
  }, [discountContext, selectedTicketType, eligibility, selectedEvent, preSelectedEvent, ticketsCount]);
2533
2687
  const discountUi = useDiscountCodeUi({ api, discountContext, subtotalCents: discountSubtotalCents });
@@ -2615,6 +2769,7 @@ function useEventRegistrationWizard(options) {
2615
2769
  altchaSolution,
2616
2770
  setAltchaSolution,
2617
2771
  portalAuthState,
2772
+ portalProfile,
2618
2773
  showMagicLinkModal,
2619
2774
  setShowMagicLinkModal,
2620
2775
  handleLogout,
@@ -2629,6 +2784,7 @@ function useEventRegistrationWizard(options) {
2629
2784
  eligibilityError,
2630
2785
  existingRegistration: existingRegistrationResult.registration,
2631
2786
  existingRegistrationLoading: existingRegistrationResult.isLoading,
2787
+ existingRegistrationState: existingRegistrationResult.state,
2632
2788
  hasEligibility,
2633
2789
  hasMembershipEligibility,
2634
2790
  requireGuestDetails,
@@ -2664,6 +2820,13 @@ var EVENT_PORTAL_AUTH_COPY = {
2664
2820
  buttonText: "Email me a login link to continue \u2192"
2665
2821
  }
2666
2822
  };
2823
+ function EventPortalAuthPrompt(props) {
2824
+ return /* @__PURE__ */ jsxs("div", { className: "er-portal-auth", children: [
2825
+ /* @__PURE__ */ jsx("p", { className: "er-portal-auth-title", children: props.copy.title }),
2826
+ /* @__PURE__ */ jsx("p", { className: "er-portal-auth-text", children: props.copy.description }),
2827
+ /* @__PURE__ */ jsx("button", { type: "button", className: "er-portal-auth-link", onClick: props.onRequestLogin, children: props.copy.buttonText })
2828
+ ] });
2829
+ }
2667
2830
  function EventRegistrationWizard(props) {
2668
2831
  const {
2669
2832
  occurrenceContext,
@@ -2680,7 +2843,7 @@ function EventRegistrationWizard(props) {
2680
2843
  spamProtectionEnabled,
2681
2844
  supportEmail
2682
2845
  } = props;
2683
- const maxTicketsNum = parseInt(maxTickets, 10) || 5;
2846
+ const maxTicketsNum = normalizeEventRegistrationMaxTickets(maxTickets);
2684
2847
  const showSpamProtection = spamProtectionEnabled ?? isSpamProtectionEnabled();
2685
2848
  const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
2686
2849
  const wizard = useEventRegistrationWizard({
@@ -2693,7 +2856,7 @@ function EventRegistrationWizard(props) {
2693
2856
  if (wizard.scopedEvents.length === 0 && !wizard.occurrenceContext) {
2694
2857
  return /* @__PURE__ */ jsx("div", { id: EVENT_REGISTRATION_ANCHOR_ID, className: `event-registration ${className || ""}`, "data-block": "event-registration", children: /* @__PURE__ */ jsx("div", { className: "er-empty", children: /* @__PURE__ */ jsx("p", { className: "er-empty__text", children: "No events available for registration." }) }) });
2695
2858
  }
2696
- const allowedStatuses = wizard.api.config.isPreview ? ["active", "draft"] : ["active"];
2859
+ const allowedStatuses = getRegistrableStatuses(wizard.api.config.isPreview);
2697
2860
  const hasRegistrableEvents = wizard.scopedEvents.some((event) => !event.status || allowedStatuses.includes(event.status));
2698
2861
  if (!hasRegistrableEvents && !wizard.occurrenceContext) {
2699
2862
  return /* @__PURE__ */ jsx("div", { id: EVENT_REGISTRATION_ANCHOR_ID, className: `event-registration ${className || ""}`, "data-block": "event-registration", children: /* @__PURE__ */ jsx("div", { className: "er-empty", children: /* @__PURE__ */ jsx("p", { className: "er-empty__text", children: "Registration is not currently available for this event." }) }) });
@@ -2714,10 +2877,11 @@ function EventRegistrationWizard(props) {
2714
2877
  ]
2715
2878
  );
2716
2879
  const totalSteps = activeWizardSteps.length;
2880
+ const eventSelectionStepLabel = getEventSelectionMode(wizard.scopedEvents) === "date" ? "Date" : "Event";
2717
2881
  const stepLabels = activeWizardSteps.map((s) => {
2718
2882
  switch (s) {
2719
2883
  case "select-event":
2720
- return "Event";
2884
+ return eventSelectionStepLabel;
2721
2885
  case "select-tickets":
2722
2886
  return "Tickets";
2723
2887
  case "enter-details":
@@ -2736,16 +2900,24 @@ function EventRegistrationWizard(props) {
2736
2900
  });
2737
2901
  const currentStepNumber = getStepNumber(wizard.step, activeWizardSteps);
2738
2902
  const summaryEvent = wizard.selectedEvent ?? wizard.preSelectedEvent;
2903
+ const summaryEventPricingType = summaryEvent ? publicEventPricingType(summaryEvent.pricing) : "free";
2739
2904
  const waitlistClaimRequiresPortalLogin = wizard.waitlistClaim.requiresPortalLogin && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking";
2740
2905
  const portalAuthCopy = waitlistClaimRequiresPortalLogin ? {
2741
2906
  ...EVENT_PORTAL_AUTH_COPY["waitlist-claim"],
2742
2907
  description: wizard.waitlistClaim.loginMessage ?? "Log in to continue with your waitlist claim."
2743
2908
  } : EVENT_PORTAL_AUTH_COPY.membership;
2744
- const showPortalAuthSidebar = waitlistClaimRequiresPortalLogin || wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && summaryEvent?.pricingType !== "free" && wizard.step !== "select-event";
2909
+ const showPortalAuthPrompt = waitlistClaimRequiresPortalLogin || wizard.step === "select-tickets" && wizard.portalAuthState !== "authenticated" && wizard.portalAuthState !== "checking" && summaryEventPricingType !== "free";
2745
2910
  return /* @__PURE__ */ jsx("div", { id: EVENT_REGISTRATION_ANCHOR_ID, className: `event-registration ${className || ""}`, "data-block": "event-registration", children: /* @__PURE__ */ jsxs("div", { className: "er-container", children: [
2746
- isWizardStep && /* @__PURE__ */ jsxs("div", { className: `er-payment-layout ${!showPortalAuthSidebar ? "er-payment-layout--no-sidebar" : ""}`, children: [
2911
+ isWizardStep && /* @__PURE__ */ jsxs("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
2747
2912
  /* @__PURE__ */ jsxs("div", { className: "er-payment-layout-main", children: [
2748
2913
  totalSteps > 1 && /* @__PURE__ */ jsx(StepIndicator2, { currentStep: currentStepNumber, totalSteps, stepLabels }),
2914
+ showPortalAuthPrompt && /* @__PURE__ */ jsx(
2915
+ EventPortalAuthPrompt,
2916
+ {
2917
+ copy: portalAuthCopy,
2918
+ onRequestLogin: () => wizard.setShowMagicLinkModal(true)
2919
+ }
2920
+ ),
2749
2921
  /* @__PURE__ */ jsx(
2750
2922
  EventRegistrationWizardContent,
2751
2923
  {
@@ -2756,11 +2928,6 @@ function EventRegistrationWizard(props) {
2756
2928
  }
2757
2929
  )
2758
2930
  ] }),
2759
- showPortalAuthSidebar && /* @__PURE__ */ jsx("div", { className: "er-payment-layout-sidebar", children: /* @__PURE__ */ jsxs("div", { className: "er-portal-auth", children: [
2760
- /* @__PURE__ */ jsx("p", { className: "er-portal-auth-title", children: portalAuthCopy.title }),
2761
- /* @__PURE__ */ jsx("p", { className: "er-portal-auth-text", children: portalAuthCopy.description }),
2762
- /* @__PURE__ */ jsx("button", { type: "button", className: "er-portal-auth-link", onClick: () => wizard.setShowMagicLinkModal(true), children: portalAuthCopy.buttonText })
2763
- ] }) }),
2764
2931
  wizard.showMagicLinkModal && /* @__PURE__ */ jsx("div", { className: "er-modal-overlay", onClick: () => wizard.setShowMagicLinkModal(false), children: /* @__PURE__ */ jsxs("div", { className: "er-modal", onClick: (e) => e.stopPropagation(), children: [
2765
2932
  /* @__PURE__ */ jsx(
2766
2933
  "button",
@@ -3024,10 +3191,13 @@ function EventDetailsView({
3024
3191
  priceCents: selected.course.priceCents,
3025
3192
  currency: selected.course.currency
3026
3193
  }) : null;
3027
- const isPaid = selected.pricingType === "paid";
3028
- const eventPrice = selected.price ?? null;
3194
+ const eventPricing = resolveRuntimeEventPricing(selected);
3195
+ const eventPricingType = publicEventPricingType(eventPricing);
3196
+ const eventPricingCurrency = publicEventPricingCurrency(eventPricing) ?? "USD";
3197
+ const isPaid = eventPricingType === "paid";
3029
3198
  const shouldShowCoursePricing = showCost && !isDropIn && coursePricing !== null;
3030
3199
  const shouldShowEventCost = showCost && isPaid && !isDropIn && coursePricing === null;
3200
+ const eventCostLabel = shouldShowEventCost ? formatEventPrice(selected) : null;
3031
3201
  const acceptedItems = [];
3032
3202
  if (showAcceptedPasses) {
3033
3203
  acceptedItems.push(...applicablePasses.map((p) => p.name));
@@ -3082,8 +3252,8 @@ function EventDetailsView({
3082
3252
  }
3083
3253
  ) : shouldShowEventCost ? /* @__PURE__ */ jsxs("div", { className: "rb-mt-6", children: [
3084
3254
  /* @__PURE__ */ jsx("div", { className: "rb-label rb-mb-2", children: "Cost" }),
3085
- eventPrice !== null ? /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
3086
- autoApplyDiscount ? /* @__PURE__ */ jsx("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
3255
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("strong", { children: eventCostLabel }) }),
3256
+ autoApplyDiscount ? /* @__PURE__ */ jsx("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, eventPricingCurrency) }) : null,
3087
3257
  hasAcceptedItems ? /* @__PURE__ */ jsxs("p", { className: "rb-caption rb-mt-1", children: [
3088
3258
  "You can also attend with: ",
3089
3259
  acceptedItems.join(", ")
@@ -4392,7 +4562,7 @@ var FULL_DAY_NAMES = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "F
4392
4562
  function formatAgendaDayHeader(date) {
4393
4563
  const dayName = FULL_DAY_NAMES[date.getDay()];
4394
4564
  const monthName = MONTH_NAMES[date.getMonth()];
4395
- return `${dayName}, ${monthName} ${date.getDate()}`;
4565
+ return `${dayName ?? "Day"}, ${monthName ?? "Month"} ${date.getDate()}`;
4396
4566
  }
4397
4567
  var WeekAgendaView = ({
4398
4568
  days,
@@ -4432,6 +4602,7 @@ function EventDetailModal({
4432
4602
  event,
4433
4603
  showCapacity,
4434
4604
  onClose,
4605
+ portalRoot,
4435
4606
  cardVariant = "default",
4436
4607
  buttonVariant = "primary",
4437
4608
  buttonText,
@@ -4444,6 +4615,8 @@ function EventDetailModal({
4444
4615
  title,
4445
4616
  titleId: "ec-event-modal-title",
4446
4617
  onClose,
4618
+ portal: portalRoot != null,
4619
+ portalRoot,
4447
4620
  overlayClassName: "ec-modal-overlay",
4448
4621
  modalClassName: "ec-modal ec-modal--event",
4449
4622
  renderSrOnlyTitle: true,
@@ -4482,7 +4655,8 @@ function DayEventsModal({
4482
4655
  events,
4483
4656
  showCapacity,
4484
4657
  onClose,
4485
- onSelectEvent
4658
+ onSelectEvent,
4659
+ portalRoot
4486
4660
  }) {
4487
4661
  const formattedDate = formatDate(date.toISOString());
4488
4662
  return /* @__PURE__ */ jsxs(
@@ -4491,6 +4665,8 @@ function DayEventsModal({
4491
4665
  title: formattedDate,
4492
4666
  titleId: "ec-day-modal-title",
4493
4667
  onClose,
4668
+ portal: portalRoot != null,
4669
+ portalRoot,
4494
4670
  overlayClassName: "ec-modal-overlay",
4495
4671
  modalClassName: "ec-modal ec-modal--day",
4496
4672
  renderHeader: ({ closeButtonRef, onClose: onClose2 }) => /* @__PURE__ */ jsx(
@@ -4532,38 +4708,63 @@ function EventModals({
4532
4708
  buttonVariant,
4533
4709
  buttonText
4534
4710
  }) {
4711
+ const markerRef = React9.useRef(null);
4712
+ const [portalRoot, setPortalRoot] = React9.useState(null);
4535
4713
  const { modalState, openEventModal, closeModal } = useEventModal();
4714
+ React9.useEffect(() => {
4715
+ const sourceEl = markerRef.current;
4716
+ if (!sourceEl) return;
4717
+ const portal = createBodyThemePortalRoot(sourceEl);
4718
+ if (!portal) return;
4719
+ const blockRoot = document.createElement("div");
4720
+ blockRoot.setAttribute("data-block", "event-calendar");
4721
+ portal.root.appendChild(blockRoot);
4722
+ setPortalRoot(blockRoot);
4723
+ return () => {
4724
+ setPortalRoot(null);
4725
+ portal.cleanup();
4726
+ };
4727
+ }, []);
4728
+ const marker = /* @__PURE__ */ jsx("span", { ref: markerRef, hidden: true, "aria-hidden": "true" });
4536
4729
  if (modalState.type === "closed") {
4537
- return null;
4730
+ return marker;
4538
4731
  }
4539
4732
  if (modalState.type === "event") {
4540
- return /* @__PURE__ */ jsx(
4541
- EventDetailModal,
4542
- {
4543
- event: modalState.event,
4544
- onClose: closeModal,
4545
- cardVariant,
4546
- buttonVariant,
4547
- buttonText,
4548
- showCapacity
4549
- }
4550
- );
4733
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
4734
+ marker,
4735
+ /* @__PURE__ */ jsx(
4736
+ EventDetailModal,
4737
+ {
4738
+ event: modalState.event,
4739
+ onClose: closeModal,
4740
+ portalRoot,
4741
+ cardVariant,
4742
+ buttonVariant,
4743
+ buttonText,
4744
+ showCapacity
4745
+ }
4746
+ )
4747
+ ] });
4551
4748
  }
4552
4749
  if (modalState.type === "day") {
4553
- return /* @__PURE__ */ jsx(
4554
- DayEventsModal,
4555
- {
4556
- date: modalState.date,
4557
- events: modalState.events,
4558
- onClose: closeModal,
4559
- onSelectEvent: (event) => {
4560
- openEventModal(event);
4561
- },
4562
- showCapacity
4563
- }
4564
- );
4750
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
4751
+ marker,
4752
+ /* @__PURE__ */ jsx(
4753
+ DayEventsModal,
4754
+ {
4755
+ date: modalState.date,
4756
+ events: modalState.events,
4757
+ onClose: closeModal,
4758
+ onSelectEvent: (event) => {
4759
+ openEventModal(event);
4760
+ },
4761
+ portalRoot,
4762
+ showCapacity
4763
+ }
4764
+ )
4765
+ ] });
4565
4766
  }
4566
- return null;
4767
+ return marker;
4567
4768
  }
4568
4769
  function toEventCombinedControllerProps(props) {
4569
4770
  return {
@@ -5162,7 +5363,7 @@ function formatHourLabel(hour) {
5162
5363
  }
5163
5364
  function hourToTickPercent(hour, hours) {
5164
5365
  const startHour = hours[0] ?? 0;
5165
- const endHour = hours.at(-1) ?? startHour + 1;
5366
+ const endHour = hours[hours.length - 1] ?? startHour + 1;
5166
5367
  const range = Math.max(1, endHour - startHour);
5167
5368
  return (hour - startHour) / range * 100;
5168
5369
  }