@riverbankcms/sdk 0.62.4 → 0.67.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 (349) hide show
  1. package/README.md +11 -0
  2. package/dist/_dts/api/src/accessAdmin.d.ts +64 -2
  3. package/dist/_dts/api/src/aiEndpoints.d.ts +2 -2
  4. package/dist/_dts/api/src/aiPlayground.d.ts +18 -11
  5. package/dist/_dts/api/src/apiEndpointTypes.d.ts +12 -0
  6. package/dist/_dts/api/src/billing.d.ts +46 -10
  7. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +1 -1
  9. package/dist/_dts/api/src/bookingRecords.d.ts +26 -0
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +12 -1
  11. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  12. package/dist/_dts/api/src/courses.d.ts +3 -0
  13. package/dist/_dts/api/src/endpoints.d.ts +48 -0
  14. package/dist/_dts/api/src/index.d.ts +8 -5
  15. package/dist/_dts/api/src/sdkConfig/contracts.d.ts +29 -40
  16. package/dist/_dts/api/src/sdkContracts.d.ts +14 -2
  17. package/dist/_dts/api/src/siteMembers.d.ts +1 -1
  18. package/dist/_dts/api/src/siteOnboarding.d.ts +4 -0
  19. package/dist/_dts/api/src/siteOperations.d.ts +11 -1
  20. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +29 -0
  21. package/dist/_dts/api/src/types.d.ts +2 -1
  22. package/dist/_dts/billing/src/plans/registry.d.ts +1 -0
  23. package/dist/_dts/billing/src/plans/types.d.ts +10 -1
  24. package/dist/_dts/block-form/src/FormRenderer.d.ts +38 -0
  25. package/dist/_dts/block-form/src/backend/adapter.d.ts +7 -0
  26. package/dist/_dts/block-form/src/backend/hooks/useRepeaterBackend.d.ts +34 -0
  27. package/dist/_dts/block-form/src/backend/hooks.d.ts +66 -0
  28. package/dist/_dts/block-form/src/backend/index.d.ts +12 -0
  29. package/dist/_dts/block-form/src/backend/rhf-backend.d.ts +34 -0
  30. package/dist/_dts/block-form/src/backend/store-backend.d.ts +60 -0
  31. package/dist/_dts/block-form/src/backend/types.d.ts +137 -0
  32. package/dist/_dts/block-form/src/backend/useBackendWatch.d.ts +22 -0
  33. package/dist/_dts/block-form/src/backend/utils/getErrorMessage.d.ts +1 -0
  34. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +70 -0
  35. package/dist/_dts/block-form/src/client/blockDraftSaveability.d.ts +1 -0
  36. package/dist/_dts/block-form/src/client/index.d.ts +30 -0
  37. package/dist/_dts/block-form/src/context/BlockContext.d.ts +29 -0
  38. package/dist/_dts/block-form/src/context/DisplayLabelResolverContext.d.ts +33 -0
  39. package/dist/_dts/block-form/src/context/FieldPreviewResolverContext.d.ts +30 -0
  40. package/dist/_dts/block-form/src/context/ImageResolveContext.d.ts +1 -0
  41. package/dist/_dts/block-form/src/context/index.d.ts +4 -0
  42. package/dist/_dts/block-form/src/fields/props.d.ts +48 -0
  43. package/dist/_dts/block-form/src/fields/types.d.ts +223 -0
  44. package/dist/_dts/block-form/src/index.d.ts +22 -0
  45. package/dist/_dts/block-form/src/manifest/ManifestForm.d.ts +37 -0
  46. package/dist/_dts/block-form/src/manifest/canonicalValidation.d.ts +5 -0
  47. package/dist/_dts/block-form/src/manifest/filterSdkTabs.d.ts +44 -0
  48. package/dist/_dts/block-form/src/manifest/manifestFormAdapter.d.ts +61 -0
  49. package/dist/_dts/block-form/src/manifest/mergeManifestWithSdkOptions.d.ts +24 -0
  50. package/dist/_dts/block-form/src/palette/PaletteContext.d.ts +11 -0
  51. package/dist/_dts/block-form/src/registry/schemas.d.ts +105 -0
  52. package/dist/_dts/block-form/src/registry/widgets.d.ts +59 -0
  53. package/dist/_dts/block-form/src/sdk-config/SdkConfigContext.d.ts +110 -0
  54. package/dist/_dts/block-form/src/sdk-config/hooks.d.ts +21 -0
  55. package/dist/_dts/block-form/src/sdk-config/index.d.ts +2 -0
  56. package/dist/_dts/block-form/src/shared/disclosure.d.ts +1 -0
  57. package/dist/_dts/block-form/src/shared/hooks/index.d.ts +2 -0
  58. package/dist/_dts/block-form/src/shared/hooks/useCoarsePointer.d.ts +5 -0
  59. package/dist/_dts/block-form/src/shared/hooks/useContainerWidth.d.ts +6 -0
  60. package/dist/_dts/block-form/src/utils/VisibilityWrapper.d.ts +25 -0
  61. package/dist/_dts/block-form/src/utils/computeWatchedPath.d.ts +18 -0
  62. package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +9 -0
  63. package/dist/_dts/block-form/src/utils/fieldHelpers.d.ts +94 -0
  64. package/dist/_dts/block-form/src/utils/resolvePromotedFields.d.ts +22 -0
  65. package/dist/_dts/block-form/src/utils/slug.d.ts +3 -0
  66. package/dist/_dts/block-form/src/utils/typeGuards.d.ts +3 -0
  67. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorField.d.ts +10 -0
  68. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/BackgroundColorWidget.d.ts +23 -0
  69. package/dist/_dts/block-form/src/widgets/BackgroundColorWidget/index.d.ts +2 -0
  70. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +13 -0
  71. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +17 -0
  72. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/index.d.ts +2 -0
  73. package/dist/_dts/block-form/src/widgets/BooleanField/BooleanField.d.ts +6 -0
  74. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldDefaults.d.ts +6 -0
  75. package/dist/_dts/block-form/src/widgets/BooleanField/booleanFieldSchema.d.ts +7 -0
  76. package/dist/_dts/block-form/src/widgets/BooleanField/index.d.ts +3 -0
  77. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/BoxStyleWidget.d.ts +17 -0
  78. package/dist/_dts/block-form/src/widgets/BoxStyleWidget/index.d.ts +1 -0
  79. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldDefaults.d.ts +3 -0
  80. package/dist/_dts/block-form/src/widgets/ContentTypeSelectField/contentTypeSelectFieldSchema.d.ts +4 -0
  81. package/dist/_dts/block-form/src/widgets/DateField/DateField.d.ts +23 -0
  82. package/dist/_dts/block-form/src/widgets/DateField/dateFieldDefaults.d.ts +8 -0
  83. package/dist/_dts/block-form/src/widgets/DateField/dateFieldSchema.d.ts +9 -0
  84. package/dist/_dts/block-form/src/widgets/DateField/datePickerPopover.d.ts +32 -0
  85. package/dist/_dts/block-form/src/widgets/DateField/index.d.ts +4 -0
  86. package/dist/_dts/block-form/src/widgets/DateTimeField/DateTimeField.d.ts +30 -0
  87. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldDefaults.d.ts +8 -0
  88. package/dist/_dts/block-form/src/widgets/DateTimeField/dateTimeFieldSchema.d.ts +11 -0
  89. package/dist/_dts/block-form/src/widgets/DateTimeField/index.d.ts +4 -0
  90. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/dateTimeUtils.d.ts +22 -0
  91. package/dist/_dts/block-form/src/widgets/DateTimeField/utils/index.d.ts +1 -0
  92. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldDefaults.d.ts +3 -0
  93. package/dist/_dts/block-form/src/widgets/EntryPickerField/entryPickerFieldSchema.d.ts +4 -0
  94. package/dist/_dts/block-form/src/widgets/Field.d.ts +21 -0
  95. package/dist/_dts/block-form/src/widgets/FieldFrame.d.ts +32 -0
  96. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/FieldSettingsModal.d.ts +34 -0
  97. package/dist/_dts/block-form/src/widgets/FieldSettingsModal/index.d.ts +2 -0
  98. package/dist/_dts/block-form/src/widgets/GroupField/GroupField.d.ts +23 -0
  99. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldDefaults.d.ts +9 -0
  100. package/dist/_dts/block-form/src/widgets/GroupField/groupFieldSchema.d.ts +10 -0
  101. package/dist/_dts/block-form/src/widgets/GroupField/index.d.ts +3 -0
  102. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldDefaults.d.ts +10 -0
  103. package/dist/_dts/block-form/src/widgets/LinkField/linkFieldSchema.d.ts +3 -0
  104. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +6 -0
  105. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +6 -0
  106. package/dist/_dts/block-form/src/widgets/ModalGroupField/ModalGroupField.d.ts +17 -0
  107. package/dist/_dts/block-form/src/widgets/ModalGroupField/index.d.ts +3 -0
  108. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldDefaults.d.ts +18 -0
  109. package/dist/_dts/block-form/src/widgets/ModalGroupField/modalFieldSchema.d.ts +14 -0
  110. package/dist/_dts/block-form/src/widgets/NumberField/NumberField.d.ts +7 -0
  111. package/dist/_dts/block-form/src/widgets/NumberField/index.d.ts +3 -0
  112. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldDefaults.d.ts +6 -0
  113. package/dist/_dts/block-form/src/widgets/NumberField/numberFieldSchema.d.ts +7 -0
  114. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/PresetOrCustomField.d.ts +11 -0
  115. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/index.d.ts +4 -0
  116. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldDefaults.d.ts +3 -0
  117. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/presetOrCustomFieldSchema.d.ts +4 -0
  118. package/dist/_dts/block-form/src/widgets/PresetOrCustomField/types.d.ts +37 -0
  119. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldDefaults.d.ts +3 -0
  120. package/dist/_dts/block-form/src/widgets/ReferenceField/referenceFieldSchema.d.ts +4 -0
  121. package/dist/_dts/block-form/src/widgets/RepeaterField/RepeaterField.d.ts +26 -0
  122. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterDragHandle.d.ts +8 -0
  123. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterError.d.ts +11 -0
  124. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterHeader.d.ts +10 -0
  125. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterLayoutGrid.d.ts +27 -0
  126. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +19 -0
  127. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +23 -0
  128. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +16 -0
  129. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowContent.d.ts +19 -0
  130. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterTabbedEditDialog.d.ts +16 -0
  131. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +26 -0
  132. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +20 -0
  133. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +11 -0
  134. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +34 -0
  135. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +6 -0
  136. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/layoutGridCapacityDecision.d.ts +22 -0
  137. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLayoutGridCapacity.d.ts +20 -0
  138. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +23 -0
  139. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +10 -0
  140. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterRowErrors.d.ts +12 -0
  141. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterVisibility.d.ts +6 -0
  142. package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +12 -0
  143. package/dist/_dts/block-form/src/widgets/RepeaterField/index.d.ts +3 -0
  144. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldDefaults.d.ts +7 -0
  145. package/dist/_dts/block-form/src/widgets/RepeaterField/repeaterFieldSchema.d.ts +8 -0
  146. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildItemLabel.d.ts +7 -0
  147. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +7 -0
  148. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/createDefaultItem.d.ts +6 -0
  149. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFieldGroups.d.ts +8 -0
  150. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/getRepeaterItemFields.d.ts +22 -0
  151. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +10 -0
  152. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/layoutGridCapacityContext.d.ts +2 -0
  153. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +43 -0
  154. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterPresentation.d.ts +24 -0
  155. package/dist/_dts/block-form/src/widgets/RepeaterField/utils/resolveThumbnail.d.ts +12 -0
  156. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +20 -0
  157. package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +16 -0
  158. package/dist/_dts/block-form/src/widgets/SdkSelectField/SdkSelectField.d.ts +11 -0
  159. package/dist/_dts/block-form/src/widgets/SdkSelectField/index.d.ts +1 -0
  160. package/dist/_dts/block-form/src/widgets/SelectField/SelectField.d.ts +7 -0
  161. package/dist/_dts/block-form/src/widgets/SelectField/index.d.ts +3 -0
  162. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldDefaults.d.ts +6 -0
  163. package/dist/_dts/block-form/src/widgets/SelectField/selectFieldSchema.d.ts +7 -0
  164. package/dist/_dts/block-form/src/widgets/SelectWidget.d.ts +34 -0
  165. package/dist/_dts/block-form/src/widgets/SettingsModal/SettingsModal.d.ts +17 -0
  166. package/dist/_dts/block-form/src/widgets/SettingsModal/index.d.ts +2 -0
  167. package/dist/_dts/block-form/src/widgets/SliderField/SliderField.d.ts +16 -0
  168. package/dist/_dts/block-form/src/widgets/SliderField/index.d.ts +1 -0
  169. package/dist/_dts/block-form/src/widgets/SlugField/SlugField.d.ts +39 -0
  170. package/dist/_dts/block-form/src/widgets/SlugField/hooks/index.d.ts +1 -0
  171. package/dist/_dts/block-form/src/widgets/SlugField/hooks/useSlugAutoGeneration.d.ts +29 -0
  172. package/dist/_dts/block-form/src/widgets/SlugField/index.d.ts +5 -0
  173. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldDefaults.d.ts +8 -0
  174. package/dist/_dts/block-form/src/widgets/SlugField/slugFieldSchema.d.ts +14 -0
  175. package/dist/_dts/block-form/src/widgets/SlugField/utils/index.d.ts +2 -0
  176. package/dist/_dts/block-form/src/widgets/SlugField/utils/pathUtils.d.ts +30 -0
  177. package/dist/_dts/block-form/src/widgets/SlugField/utils/slugUtils.d.ts +17 -0
  178. package/dist/_dts/block-form/src/widgets/TabGroupField/TabGroupField.d.ts +13 -0
  179. package/dist/_dts/block-form/src/widgets/TabGroupField/index.d.ts +3 -0
  180. package/dist/_dts/block-form/src/widgets/TabGroupField/tabGroupFieldSchema.d.ts +25 -0
  181. package/dist/_dts/block-form/src/widgets/TabGroupField/types.d.ts +46 -0
  182. package/dist/_dts/block-form/src/widgets/TextField/TextField.d.ts +7 -0
  183. package/dist/_dts/block-form/src/widgets/TextField/index.d.ts +3 -0
  184. package/dist/_dts/block-form/src/widgets/TextField/textFieldDefaults.d.ts +6 -0
  185. package/dist/_dts/block-form/src/widgets/TextField/textFieldSchema.d.ts +7 -0
  186. package/dist/_dts/block-form/src/widgets/TextInputWidget.d.ts +20 -0
  187. package/dist/_dts/block-form/src/widgets/TimeField/TimeField.d.ts +23 -0
  188. package/dist/_dts/block-form/src/widgets/TimeField/index.d.ts +3 -0
  189. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldDefaults.d.ts +8 -0
  190. package/dist/_dts/block-form/src/widgets/TimeField/timeFieldSchema.d.ts +9 -0
  191. package/dist/_dts/block-form/src/widgets/ToggleWidget.d.ts +16 -0
  192. package/dist/_dts/block-form/src/widgets/UrlField/UrlField.d.ts +23 -0
  193. package/dist/_dts/block-form/src/widgets/UrlField/index.d.ts +3 -0
  194. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldDefaults.d.ts +8 -0
  195. package/dist/_dts/block-form/src/widgets/UrlField/urlFieldSchema.d.ts +9 -0
  196. package/dist/_dts/block-form/src/widgets/constants.d.ts +58 -0
  197. package/dist/_dts/block-form/src/widgets/groupFieldHelpers.d.ts +61 -0
  198. package/dist/_dts/block-form/src/widgets/index.d.ts +20 -0
  199. package/dist/_dts/block-form/src/widgets/selectValueMapping.d.ts +9 -0
  200. package/dist/_dts/block-form/src/widgets/types/modalConfig.d.ts +18 -0
  201. package/dist/_dts/block-form/src/widgets/utils/readNumericUiConfig.d.ts +10 -0
  202. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -1
  203. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  204. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  205. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1 -1
  206. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
  207. package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +1 -1
  208. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1 -1
  209. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1 -1
  210. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -2
  211. package/dist/_dts/blocks/src/system/blocks/columns.d.ts +1 -1
  212. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
  213. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -1
  214. package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +25 -0
  215. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
  216. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -2
  217. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1 -1
  218. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +1 -1
  219. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1 -1
  220. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +1 -1
  221. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +2 -2
  222. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +6 -6
  223. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1 -1
  224. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
  225. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  226. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1 -1
  227. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  228. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +1 -1
  229. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +1 -1
  230. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +1 -1
  231. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +1 -1
  232. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +1 -1
  233. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +1 -1
  234. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +1 -1
  235. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  236. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  237. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/view.d.ts +4 -1
  238. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +4 -1
  239. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +4 -1
  240. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +1 -0
  241. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +2 -1
  242. package/dist/_dts/calendar/src/grid.d.ts +60 -0
  243. package/dist/_dts/calendar/src/group.d.ts +14 -0
  244. package/dist/_dts/calendar/src/index.d.ts +6 -0
  245. package/dist/_dts/calendar/src/lane-packing.d.ts +28 -0
  246. package/dist/_dts/calendar/src/timetable.d.ts +90 -0
  247. package/dist/_dts/calendar/src/timezone.d.ts +19 -0
  248. package/dist/_dts/content-editor/src/index.d.ts +1 -4
  249. package/dist/_dts/core/src/booking-date-time.d.ts +1 -0
  250. package/dist/_dts/core/src/branded.d.ts +18 -0
  251. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +900 -69
  252. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  253. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +7 -7
  254. package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +1 -2
  255. package/dist/_dts/editor-blocks/src/widgets/link/index.d.ts +1 -0
  256. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +7 -3
  257. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -2
  258. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  259. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  260. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  261. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +4 -0
  262. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +49 -0
  263. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +6 -0
  264. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
  265. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  266. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +18 -0
  267. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +5 -0
  268. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +33 -0
  269. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +2 -0
  270. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +18 -0
  271. package/dist/_dts/sdk/src/cli/content/entryPaths.d.ts +6 -0
  272. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  273. package/dist/_dts/sdk/src/cli/env.d.ts +2 -1
  274. package/dist/_dts/sdk/src/cli/merge-remote/entryLocal.d.ts +3 -0
  275. package/dist/_dts/sdk/src/cli/merge-remote/entryMerge.d.ts +77 -0
  276. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePlan.d.ts +45 -0
  277. package/dist/_dts/sdk/src/cli/merge-remote/entryMergePush.d.ts +22 -0
  278. package/dist/_dts/sdk/src/cli/merge-remote/entryMergeReport.d.ts +30 -0
  279. package/dist/_dts/sdk/src/cli/merge-remote/entryRemote.d.ts +9 -0
  280. package/dist/_dts/sdk/src/cli/merge-remote/entrySnapshots.d.ts +50 -0
  281. package/dist/_dts/sdk/src/cli/merge-remote/stableJson.d.ts +3 -0
  282. package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +13 -0
  283. package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +114 -0
  284. package/dist/_dts/sdk/src/cli/site-commands/entryCommands.d.ts +63 -0
  285. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +50 -0
  286. package/dist/_dts/sdk/src/cli/site-commands/formCommands.d.ts +57 -0
  287. package/dist/_dts/sdk/src/cli/site-commands/index.d.ts +7 -0
  288. package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +57 -0
  289. package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +83 -0
  290. package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +83 -0
  291. package/dist/_dts/sdk/src/cli/sync/executor.d.ts +11 -28
  292. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -1
  293. package/dist/_dts/sdk/src/config/dashboard-validation.d.ts +0 -48
  294. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  295. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  296. package/dist/_dts/sdk/src/version.d.ts +1 -1
  297. package/dist/_dts/site-commands/src/adapter.d.ts +23 -0
  298. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +8 -0
  299. package/dist/_dts/site-commands/src/commands.d.ts +2341 -0
  300. package/dist/_dts/site-commands/src/domain.d.ts +104 -0
  301. package/dist/_dts/site-commands/src/exposure.d.ts +41 -0
  302. package/dist/_dts/site-commands/src/guards.d.ts +1 -0
  303. package/dist/_dts/site-commands/src/index.d.ts +10 -0
  304. package/dist/_dts/site-commands/src/metadata.d.ts +503 -0
  305. package/dist/_dts/site-commands/src/planner.d.ts +58 -0
  306. package/dist/_dts/site-commands/src/refContributions.d.ts +10 -0
  307. package/dist/_dts/site-commands/src/refs.d.ts +87 -0
  308. package/dist/_dts/site-commands/src/staticExecutionGaps.d.ts +10 -0
  309. package/dist/_dts/theme-core/src/palette/utils/index.d.ts +1 -0
  310. package/dist/_dts/theme-core/src/palette/utils/onColor.d.ts +2 -0
  311. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +83 -0
  312. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  313. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +89 -12
  314. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
  315. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  316. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +3 -2
  317. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -6
  318. package/dist/_dts/ui/src/callout.d.ts +1 -1
  319. package/dist/cli/index.mjs +6446 -1220
  320. package/dist/cli/init-docs/content/cli-reference.md +18 -0
  321. package/dist/client/bookings.mjs +25 -25
  322. package/dist/client/client.mjs +3157 -2858
  323. package/dist/client/hooks.mjs +2608 -2326
  324. package/dist/client/rendering/client.mjs +505 -176
  325. package/dist/client/rendering/islands.mjs +18329 -13012
  326. package/dist/client/rendering.mjs +1204 -903
  327. package/dist/preview-next/before-render.mjs +84 -13
  328. package/dist/preview-next/client/runtime.mjs +3149 -2452
  329. package/dist/preview-next/middleware.mjs +84 -13
  330. package/dist/server/components.mjs +936 -631
  331. package/dist/server/config-validation.mjs +2838 -2556
  332. package/dist/server/config.mjs +2838 -2556
  333. package/dist/server/data.mjs +2608 -2326
  334. package/dist/server/index.mjs +676 -552
  335. package/dist/server/next.mjs +3043 -2738
  336. package/dist/server/page-converter.mjs +201 -51
  337. package/dist/server/prebuild.mjs +1 -1
  338. package/dist/server/rendering/server.mjs +936 -631
  339. package/dist/server/rendering.mjs +936 -631
  340. package/dist/server/routing.mjs +2701 -2426
  341. package/dist/server/server.mjs +2626 -2344
  342. package/dist/server/theme-bridge.mjs +169 -52
  343. package/package.json +2 -1
  344. package/dist/_dts/content-editor/src/ai/patch/allowed.d.ts +0 -2
  345. package/dist/_dts/content-editor/src/ai/patch/diff.d.ts +0 -17
  346. package/dist/_dts/content-editor/src/ai/patch/schema.d.ts +0 -49
  347. package/dist/_dts/path-utils/src/index.d.ts +0 -8
  348. package/dist/_dts/path-utils/src/redirectPaths.d.ts +0 -26
  349. package/dist/_dts/path-utils/src/safeAppPath.d.ts +0 -26
@@ -3454,21 +3454,6 @@ var init_business_address = __esm({
3454
3454
  }
3455
3455
  });
3456
3456
 
3457
- // ../core/src/assert-never.ts
3458
- var init_assert_never = __esm({
3459
- "../core/src/assert-never.ts"() {
3460
- "use strict";
3461
- }
3462
- });
3463
-
3464
- // ../core/src/try-async.ts
3465
- var init_try_async = __esm({
3466
- "../core/src/try-async.ts"() {
3467
- "use strict";
3468
- init_result();
3469
- }
3470
- });
3471
-
3472
3457
  // ../core/src/narrow-result.ts
3473
3458
  var init_narrow_result = __esm({
3474
3459
  "../core/src/narrow-result.ts"() {
@@ -3480,7 +3465,6 @@ var init_narrow_result = __esm({
3480
3465
  var init_non_empty_array = __esm({
3481
3466
  "../core/src/non-empty-array.ts"() {
3482
3467
  "use strict";
3483
- init_result();
3484
3468
  }
3485
3469
  });
3486
3470
 
@@ -3502,7 +3486,6 @@ var init_sensitive_collection = __esm({
3502
3486
  var init_assertNever = __esm({
3503
3487
  "../core/src/assertNever.ts"() {
3504
3488
  "use strict";
3505
- init_assert_never();
3506
3489
  }
3507
3490
  });
3508
3491
 
@@ -3510,8 +3493,6 @@ var init_assertNever = __esm({
3510
3493
  var init_participants = __esm({
3511
3494
  "../core/src/participants.ts"() {
3512
3495
  "use strict";
3513
- init_branded();
3514
- init_result();
3515
3496
  }
3516
3497
  });
3517
3498
 
@@ -3519,7 +3500,6 @@ var init_participants = __esm({
3519
3500
  var init_participant_identity = __esm({
3520
3501
  "../core/src/participant-identity.ts"() {
3521
3502
  "use strict";
3522
- init_assertNever();
3523
3503
  }
3524
3504
  });
3525
3505
 
@@ -3541,8 +3521,6 @@ var init_src = __esm({
3541
3521
  init_location();
3542
3522
  init_business_address();
3543
3523
  init_result();
3544
- init_assert_never();
3545
- init_try_async();
3546
3524
  init_narrow_result();
3547
3525
  init_non_empty_array();
3548
3526
  init_editor_state();
@@ -3671,7 +3649,6 @@ var init_typeGuards = __esm({
3671
3649
  var init_filePersistence = __esm({
3672
3650
  "../media-core/src/filePersistence.ts"() {
3673
3651
  "use strict";
3674
- init_src();
3675
3652
  }
3676
3653
  });
3677
3654
 
@@ -3679,7 +3656,6 @@ var init_filePersistence = __esm({
3679
3656
  var init_fileUploadFinalization = __esm({
3680
3657
  "../media-core/src/fileUploadFinalization.ts"() {
3681
3658
  "use strict";
3682
- init_src();
3683
3659
  }
3684
3660
  });
3685
3661
 
@@ -3687,7 +3663,6 @@ var init_fileUploadFinalization = __esm({
3687
3663
  var init_fileUploadSessionCreation = __esm({
3688
3664
  "../media-core/src/fileUploadSessionCreation.ts"() {
3689
3665
  "use strict";
3690
- init_src();
3691
3666
  }
3692
3667
  });
3693
3668
 
@@ -3695,7 +3670,6 @@ var init_fileUploadSessionCreation = __esm({
3695
3670
  var init_fileUploadAssetBuilder = __esm({
3696
3671
  "../media-core/src/fileUploadAssetBuilder.ts"() {
3697
3672
  "use strict";
3698
- init_src();
3699
3673
  }
3700
3674
  });
3701
3675
 
@@ -3703,7 +3677,6 @@ var init_fileUploadAssetBuilder = __esm({
3703
3677
  var init_fileUploadCompletion = __esm({
3704
3678
  "../media-core/src/fileUploadCompletion.ts"() {
3705
3679
  "use strict";
3706
- init_src();
3707
3680
  }
3708
3681
  });
3709
3682
 
@@ -3711,7 +3684,6 @@ var init_fileUploadCompletion = __esm({
3711
3684
  var init_fileUploadDurableFinalization = __esm({
3712
3685
  "../media-core/src/fileUploadDurableFinalization.ts"() {
3713
3686
  "use strict";
3714
- init_src();
3715
3687
  }
3716
3688
  });
3717
3689
 
@@ -3726,7 +3698,6 @@ var init_fileUploadCleanup = __esm({
3726
3698
  var init_fileDownloadResolution = __esm({
3727
3699
  "../media-core/src/fileDownloadResolution.ts"() {
3728
3700
  "use strict";
3729
- init_src();
3730
3701
  }
3731
3702
  });
3732
3703
 
@@ -3734,7 +3705,6 @@ var init_fileDownloadResolution = __esm({
3734
3705
  var init_fileAssetDeletion = __esm({
3735
3706
  "../media-core/src/fileAssetDeletion.ts"() {
3736
3707
  "use strict";
3737
- init_src();
3738
3708
  }
3739
3709
  });
3740
3710
 
@@ -3742,7 +3712,6 @@ var init_fileAssetDeletion = __esm({
3742
3712
  var init_fileAssetCompatibility = __esm({
3743
3713
  "../media-core/src/fileAssetCompatibility.ts"() {
3744
3714
  "use strict";
3745
- init_src();
3746
3715
  }
3747
3716
  });
3748
3717
 
@@ -3761,7 +3730,6 @@ var VIDEO_PREP_LIMITS;
3761
3730
  var init_videoPrep = __esm({
3762
3731
  "../media-core/src/videoPrep.ts"() {
3763
3732
  "use strict";
3764
- init_src();
3765
3733
  VIDEO_PREP_LIMITS = {
3766
3734
  maxRawByteCount: 500 * 1024 * 1024,
3767
3735
  inlineContentMaxDurationSeconds: 60,
@@ -7638,7 +7606,7 @@ function okWith(data) {
7638
7606
  function err2(error) {
7639
7607
  return { ok: false, error };
7640
7608
  }
7641
- function assertNever5(value, message) {
7609
+ function assertNever4(value, message) {
7642
7610
  throw new Error(message ?? `Unexpected value: ${String(value)}`);
7643
7611
  }
7644
7612
  var init_dist = __esm({
@@ -7784,7 +7752,7 @@ function deriveBookingFormViewState(input) {
7784
7752
  resourceName: input.verificationState.resourceName
7785
7753
  };
7786
7754
  default:
7787
- return assertNever5(input.verificationState);
7755
+ return assertNever4(input.verificationState);
7788
7756
  }
7789
7757
  }
7790
7758
  function resolveBookingSiteId(siteId, form2) {
@@ -7867,7 +7835,7 @@ function getBookingServicePaymentSelectionMode(service) {
7867
7835
  case "flexible_balance":
7868
7836
  return "implicit_flexible_balance";
7869
7837
  default:
7870
- return assertNever5(onlyKind);
7838
+ return assertNever4(onlyKind);
7871
7839
  }
7872
7840
  }
7873
7841
  if (allowedKinds.length === 2 && allowedKinds.includes("upfront") && (allowedKinds.includes("deferred_manual") || allowedKinds.includes("instalment_plan") || allowedKinds.includes("flexible_balance"))) {
@@ -8069,7 +8037,7 @@ function formatBookingSubmissionPreparationError(error) {
8069
8037
  case "service-missing-duration":
8070
8038
  return `Service "${error.serviceTitle}" is missing duration. Please update the service in the dashboard to include a duration (e.g., 30 minutes).`;
8071
8039
  default:
8072
- return assertNever5(error);
8040
+ return assertNever4(error);
8073
8041
  }
8074
8042
  }
8075
8043
  function getBookingSuccessMessage(successMessage) {
@@ -9514,6 +9482,11 @@ var init_CoursePricingDisplay = __esm({
9514
9482
 
9515
9483
  // ../blocks/src/system/runtime/nodes/event-details/view.tsx
9516
9484
  import { Fragment as Fragment3, jsx as jsx23, jsxs as jsxs9 } from "react/jsx-runtime";
9485
+ function formatAutoApplyDiscountLine(preview, currency) {
9486
+ const rate = preview.discountType === "percent" ? `${preview.discountPercent}% off` : `${formatCoursePriceAmount(preview.discountAmountCents, currency)} off`;
9487
+ const label = preview.publicLabel.trim() || "Discount";
9488
+ return preview.minTicketsRequired && preview.minTicketsRequired > 1 ? `${label} \u2014 ${rate} when buying ${preview.minTicketsRequired}+ tickets` : `${label} \u2014 ${rate} applied automatically`;
9489
+ }
9517
9490
  function TeamMemberName({
9518
9491
  name,
9519
9492
  profilePath
@@ -9530,6 +9503,7 @@ function EventDetailsView({
9530
9503
  showAcceptedMemberships = true,
9531
9504
  applicablePasses = [],
9532
9505
  applicableMemberships = [],
9506
+ autoApplyDiscount = null,
9533
9507
  mapHeight = 200,
9534
9508
  mapClassName = "event-details-map",
9535
9509
  renderVenueMap
@@ -9605,6 +9579,7 @@ function EventDetailsView({
9605
9579
  ) : shouldShowEventCost ? /* @__PURE__ */ jsxs9("div", { className: "rb-mt-6", children: [
9606
9580
  /* @__PURE__ */ jsx23("div", { className: "rb-label rb-mb-2", children: "Cost" }),
9607
9581
  eventPrice !== null ? /* @__PURE__ */ jsx23("p", { children: /* @__PURE__ */ jsx23("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx23("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
9582
+ autoApplyDiscount ? /* @__PURE__ */ jsx23("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
9608
9583
  hasAcceptedItems ? /* @__PURE__ */ jsxs9("p", { className: "rb-caption rb-mt-1", children: [
9609
9584
  "You can also attend with: ",
9610
9585
  acceptedItems.join(", ")
@@ -9662,6 +9637,7 @@ function EventDetailsSSR({
9662
9637
  showAcceptedMemberships = true,
9663
9638
  sitePasses,
9664
9639
  siteMemberships,
9640
+ autoApplyDiscount,
9665
9641
  className,
9666
9642
  children
9667
9643
  }) {
@@ -9698,6 +9674,7 @@ function EventDetailsSSR({
9698
9674
  showAcceptedMemberships,
9699
9675
  sitePasses,
9700
9676
  siteMemberships,
9677
+ autoApplyDiscount,
9701
9678
  className,
9702
9679
  nowIso
9703
9680
  }
@@ -9715,6 +9692,7 @@ function EventDetailsSSR({
9715
9692
  showAcceptedMemberships,
9716
9693
  applicablePasses,
9717
9694
  applicableMemberships,
9695
+ autoApplyDiscount: autoApplyDiscount ?? null,
9718
9696
  mapClassName: "venue-map event-details-map",
9719
9697
  renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx24("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx24(
9720
9698
  "div",
@@ -12358,6 +12336,22 @@ var init_footerNav = __esm({
12358
12336
  }
12359
12337
  });
12360
12338
 
12339
+ // ../theme-core/src/palette/utils/onColor.ts
12340
+ var init_onColor = __esm({
12341
+ "../theme-core/src/palette/utils/onColor.ts"() {
12342
+ "use strict";
12343
+ }
12344
+ });
12345
+
12346
+ // ../theme-core/src/site-styles/accessibleSurfaces.ts
12347
+ var init_accessibleSurfaces = __esm({
12348
+ "../theme-core/src/site-styles/accessibleSurfaces.ts"() {
12349
+ "use strict";
12350
+ init_contrast2();
12351
+ init_onColor();
12352
+ }
12353
+ });
12354
+
12361
12355
  // ../theme-core/src/site-styles/appearancePresetResolution.ts
12362
12356
  function assertValidOptionGroups(preset) {
12363
12357
  preset.optionGroups?.forEach((group) => {
@@ -14503,11 +14497,21 @@ function asHeaderLookId(value) {
14503
14497
  return value;
14504
14498
  }
14505
14499
  function baseHeader(theme) {
14500
+ const {
14501
+ navLinkStyle: _navLinkStyle,
14502
+ dropdownStyle: _dropdownStyle,
14503
+ ctaVariant: _ctaVariant,
14504
+ navContainer: _navContainer,
14505
+ container: _container,
14506
+ shadow: _shadow,
14507
+ logo: _logo,
14508
+ logoText: _logoText,
14509
+ border: _border,
14510
+ ...header
14511
+ } = theme.header;
14506
14512
  return {
14507
- ...theme.header,
14508
- navLinkStyle: void 0,
14509
- dropdownStyle: void 0,
14510
- ctaVariant: void 0
14513
+ ...header,
14514
+ navContainer: { type: "none", tint: null, opacity: 0.15 }
14511
14515
  };
14512
14516
  }
14513
14517
  function solidBrandHeader(theme) {
@@ -14998,7 +15002,8 @@ function defineCuratedSiteStyle(input) {
14998
15002
  name: input.name,
14999
15003
  description: input.description,
15000
15004
  generationBrief: input.generationBrief,
15001
- selectionKeywords: input.selectionKeywords ?? [],
15005
+ selectionKeywordRules: input.selectionKeywordRules ?? [],
15006
+ siteCreatorSelection: input.siteCreatorSelection ?? { kind: "explicit_only" },
15002
15007
  template: {
15003
15008
  id: asDesignSystemTemplateId(`template:${input.id.replace("site-style:", "")}`),
15004
15009
  name: input.name,
@@ -15043,6 +15048,9 @@ var init_curatedSiteStyles = __esm({
15043
15048
  "site-style:bright-community",
15044
15049
  "site-style:quiet-luxury",
15045
15050
  "site-style:practical-services",
15051
+ "site-style:quiet-practice",
15052
+ "site-style:personal-retreat-journal",
15053
+ "site-style:tactile-workshop",
15046
15054
  "site-style:modern-wellness",
15047
15055
  "site-style:bold-launch",
15048
15056
  "site-style:south-west-twerk-school"
@@ -15226,12 +15234,13 @@ var init_curatedSiteStyles = __esm({
15226
15234
  name: "Quiet Luxury",
15227
15235
  description: "Minimal, confident, and refined for premium experiences and private services.",
15228
15236
  generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
15229
- selectionKeywords: [
15230
- "luxury",
15231
- "premium",
15232
- "boutique",
15233
- "bespoke",
15234
- "exclusive"
15237
+ siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 20 },
15238
+ selectionKeywordRules: [
15239
+ { kind: "word", value: "luxury" },
15240
+ { kind: "word", value: "premium" },
15241
+ { kind: "word", value: "boutique" },
15242
+ { kind: "word", value: "bespoke" },
15243
+ { kind: "word", value: "exclusive" }
15235
15244
  ],
15236
15245
  tokenRecipes: {
15237
15246
  palette: "high-contrast",
@@ -15260,13 +15269,14 @@ var init_curatedSiteStyles = __esm({
15260
15269
  name: "Practical Services",
15261
15270
  description: "Efficient, plainspoken, and conversion-focused for trades and everyday services.",
15262
15271
  generationBrief: "Make services, location, trust signals, and contact paths obvious. Keep copy brief and avoid ornate visual treatments.",
15263
- selectionKeywords: [
15264
- "repair",
15265
- "plumb",
15266
- "electric",
15267
- "cleaning",
15268
- "landscap",
15269
- "contractor"
15272
+ siteCreatorSelection: { kind: "primary_goal_support" },
15273
+ selectionKeywordRules: [
15274
+ { kind: "word", value: "repair" },
15275
+ { kind: "substring", value: "plumb" },
15276
+ { kind: "substring", value: "electric" },
15277
+ { kind: "word", value: "cleaning" },
15278
+ { kind: "substring", value: "landscap" },
15279
+ { kind: "substring", value: "contractor" }
15270
15280
  ],
15271
15281
  tokenRecipes: {
15272
15282
  palette: "brand-led",
@@ -15317,18 +15327,134 @@ var init_curatedSiteStyles = __esm({
15317
15327
  paletteChoice("warm-neutral-forest")
15318
15328
  ]
15319
15329
  }),
15330
+ defineCuratedSiteStyle({
15331
+ id: "site-style:quiet-practice",
15332
+ name: "Quiet Practice",
15333
+ description: "Grounded, calm, and practical for small appointment-first practices.",
15334
+ generationBrief: "Make services, practitioner trust, preparation notes, and booking routes easy to scan. Keep the tone warm and specific, with quiet confidence rather than spa cliches or medical claims.",
15335
+ siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 30 },
15336
+ selectionKeywordRules: [
15337
+ { kind: "substring", value: "massage" },
15338
+ { kind: "word", value: "bodywork" },
15339
+ { kind: "phrase", value: "appointment practice" },
15340
+ { kind: "phrase", value: "appointment-first" },
15341
+ { kind: "substring", value: "practitioner" },
15342
+ { kind: "substring", value: "therap" },
15343
+ { kind: "substring", value: "clinic" },
15344
+ { kind: "phrase", value: "wellness practice" }
15345
+ ],
15346
+ tokenRecipes: {
15347
+ palette: "soft-natural",
15348
+ contrast: "standard",
15349
+ radius: "soft",
15350
+ shadow: "subtle",
15351
+ typography: "clean-sans",
15352
+ spacing: "regular",
15353
+ motion: "subtle"
15354
+ },
15355
+ compositionBudget: quietBudget,
15356
+ recommendedHeaderLookIds: ["practical-utility", "clean-base", "centered-calm"],
15357
+ buttonPersonalityChoices: [
15358
+ buttonChoice("pebble"),
15359
+ buttonChoice("soft-pill"),
15360
+ buttonChoice("editorial-link")
15361
+ ],
15362
+ paletteVariantChoices: [
15363
+ paletteChoice("soft-natural-stone"),
15364
+ paletteChoice("soft-natural-sage"),
15365
+ paletteChoice("warm-neutral-clay")
15366
+ ]
15367
+ }),
15368
+ defineCuratedSiteStyle({
15369
+ id: "site-style:personal-retreat-journal",
15370
+ name: "Personal Retreat Journal",
15371
+ description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
15372
+ generationBrief: "Center the practitioner as the guide, then make private sessions, classes, retreats, and resources feel like clear pathways. Keep retreat copy grounded and practical, with enough editorial warmth for longer reading.",
15373
+ siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 40 },
15374
+ selectionKeywordRules: [
15375
+ { kind: "substring", value: "retreat" },
15376
+ { kind: "phrase", value: "solo practitioner" },
15377
+ { kind: "phrase", value: "personal brand" },
15378
+ { kind: "substring", value: "teacher" },
15379
+ { kind: "substring", value: "coach" },
15380
+ { kind: "phrase", value: "retreat resources" },
15381
+ { kind: "substring", value: "journal" }
15382
+ ],
15383
+ tokenRecipes: {
15384
+ palette: "warm-neutral",
15385
+ contrast: "standard",
15386
+ radius: "soft",
15387
+ shadow: "subtle",
15388
+ typography: "serif-editorial",
15389
+ spacing: "airy",
15390
+ motion: "subtle"
15391
+ },
15392
+ compositionBudget: balancedBudget,
15393
+ recommendedHeaderLookIds: ["editorial-line", "centered-calm", "minimal-transparent"],
15394
+ buttonPersonalityChoices: [
15395
+ buttonChoice("editorial-link"),
15396
+ buttonChoice("soft-pill"),
15397
+ buttonChoice("brushed-wash")
15398
+ ],
15399
+ paletteVariantChoices: [
15400
+ paletteChoice("warm-neutral-forest"),
15401
+ paletteChoice("warm-neutral-clay"),
15402
+ paletteChoice("soft-natural-stone")
15403
+ ]
15404
+ }),
15405
+ defineCuratedSiteStyle({
15406
+ id: "site-style:tactile-workshop",
15407
+ name: "Tactile Workshop",
15408
+ description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
15409
+ generationBrief: "Lead with objects, materials, studio process, and practical booking detail. Keep the tone warm and direct, with useful mess, clear dates, and enough gallery rhythm to feel like a real creative studio.",
15410
+ siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 50 },
15411
+ selectionKeywordRules: [
15412
+ { kind: "substring", value: "ceramic" },
15413
+ { kind: "word", value: "pottery" },
15414
+ { kind: "phrase", value: "maker studio" },
15415
+ { kind: "phrase", value: "craft class" },
15416
+ { kind: "phrase", value: "craft workshop" },
15417
+ { kind: "word", value: "clay" },
15418
+ { kind: "word", value: "kiln" }
15419
+ ],
15420
+ tokenRecipes: {
15421
+ palette: "brand-led",
15422
+ contrast: "standard",
15423
+ radius: "soft",
15424
+ shadow: "subtle",
15425
+ typography: "friendly-sans",
15426
+ spacing: "regular",
15427
+ motion: "subtle"
15428
+ },
15429
+ compositionBudget: balancedBudget,
15430
+ recommendedHeaderLookIds: ["brand-solid", "practical-utility", "clean-base"],
15431
+ recommendedFooterLookIds: ["site-footer-brand-two-band", "footer-muted-grounding"],
15432
+ buttonPersonalityChoices: [
15433
+ buttonChoice("pebble"),
15434
+ buttonChoice("confident-chip"),
15435
+ buttonChoice("ink-stamp"),
15436
+ buttonChoice("editorial-link")
15437
+ ],
15438
+ paletteVariantChoices: [
15439
+ paletteChoice("brand-led-warm"),
15440
+ paletteChoice("brand-led-cool"),
15441
+ paletteChoice("soft-natural-watercolor"),
15442
+ paletteChoice("warm-neutral-clay")
15443
+ ]
15444
+ }),
15320
15445
  defineCuratedSiteStyle({
15321
15446
  id: "site-style:bold-launch",
15322
15447
  name: "Bold Launch",
15323
15448
  description: "High-energy and punchy for launches, campaigns, and creative offers.",
15324
15449
  generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
15325
- selectionKeywords: [
15326
- "launch",
15327
- "campaign",
15328
- "preorder",
15329
- "pre-order",
15330
- "waitlist",
15331
- "drop"
15450
+ siteCreatorSelection: { kind: "site_creator_keyword_heuristic", priority: 10 },
15451
+ selectionKeywordRules: [
15452
+ { kind: "substring", value: "launch" },
15453
+ { kind: "substring", value: "campaign" },
15454
+ { kind: "word", value: "preorder" },
15455
+ { kind: "phrase", value: "pre-order" },
15456
+ { kind: "substring", value: "waitlist" },
15457
+ { kind: "word", value: "drop" }
15332
15458
  ],
15333
15459
  tokenRecipes: {
15334
15460
  palette: "high-contrast",
@@ -15359,15 +15485,6 @@ var init_curatedSiteStyles = __esm({
15359
15485
  name: "South West Twerk School",
15360
15486
  description: "Energetic, editorial, and high-contrast for a branded dance school presence.",
15361
15487
  generationBrief: "Use confident rhythm, bold burgundy-and-gold accents, large editorial intro copy, strong booking routes, and dark feature sections where proof or forms need emphasis.",
15362
- selectionKeywords: [
15363
- "dance",
15364
- "classes",
15365
- "workshop",
15366
- "school",
15367
- "movement",
15368
- "performance",
15369
- "community"
15370
- ],
15371
15488
  tokenRecipes: {
15372
15489
  palette: "brand-led",
15373
15490
  contrast: "maximum",
@@ -15553,6 +15670,34 @@ var init_modern_minimal = __esm({
15553
15670
  }
15554
15671
  });
15555
15672
 
15673
+ // ../theme-core/src/palette/generateShades.ts
15674
+ var init_generateShades = __esm({
15675
+ "../theme-core/src/palette/generateShades.ts"() {
15676
+ "use strict";
15677
+ init_colorConversion();
15678
+ }
15679
+ });
15680
+
15681
+ // ../theme-core/src/palette/neutralScale.ts
15682
+ var init_neutralScale = __esm({
15683
+ "../theme-core/src/palette/neutralScale.ts"() {
15684
+ "use strict";
15685
+ init_colorConversion();
15686
+ }
15687
+ });
15688
+
15689
+ // ../theme-core/src/palette/expandPalette.ts
15690
+ var init_expandPalette = __esm({
15691
+ "../theme-core/src/palette/expandPalette.ts"() {
15692
+ "use strict";
15693
+ init_generateShades();
15694
+ init_neutralScale();
15695
+ init_colorConversion();
15696
+ init_textColor();
15697
+ init_onColor();
15698
+ }
15699
+ });
15700
+
15556
15701
  // ../theme-core/src/site-styles/rawStyleFields.ts
15557
15702
  var themeV2RuntimeStyleFieldNames, themeV2BlockSpecificRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNames, themeV2NormalEditorRawStyleFieldNameSet;
15558
15703
  var init_rawStyleFields = __esm({
@@ -15736,35 +15881,31 @@ var init_runtimeCompiler = __esm({
15736
15881
  "use strict";
15737
15882
  init_schema2();
15738
15883
  init_modern_minimal();
15884
+ init_expandPalette();
15739
15885
  init_personalities();
15740
15886
  init_variants();
15741
15887
  init_designState();
15742
15888
  init_types9();
15889
+ init_accessibleSurfaces();
15743
15890
  defaultDesignRuntimeRules = defineDesignRuntimeRules({
15744
15891
  sectionSurfaces: {
15745
15892
  base: {},
15746
15893
  "muted-band": {
15747
15894
  background: {
15748
15895
  type: "color",
15749
- color: "muted",
15750
- textColor: "text",
15751
- headingColor: "text"
15896
+ color: "muted"
15752
15897
  }
15753
15898
  },
15754
15899
  "accent-band": {
15755
15900
  background: {
15756
15901
  type: "color",
15757
- color: "primary",
15758
- textColor: "primaryForeground",
15759
- headingColor: "primaryForeground"
15902
+ color: "primary"
15760
15903
  }
15761
15904
  },
15762
15905
  "brand-depth-band": {
15763
15906
  background: {
15764
15907
  type: "color",
15765
- color: "primary-800",
15766
- textColor: "primaryForeground",
15767
- headingColor: "primaryForeground"
15908
+ color: "primary-800"
15768
15909
  }
15769
15910
  },
15770
15911
  "hero-image": {
@@ -16230,6 +16371,7 @@ var init_tokenRecipes = __esm({
16230
16371
  var init_site_styles = __esm({
16231
16372
  "../theme-core/src/site-styles/index.ts"() {
16232
16373
  "use strict";
16374
+ init_accessibleSurfaces();
16233
16375
  init_appearancePresets();
16234
16376
  init_blockFlow();
16235
16377
  init_compositionBudget();
@@ -17063,6 +17205,7 @@ var init_validation_constants = __esm({
17063
17205
  "date.formatShort",
17064
17206
  "array.length",
17065
17207
  "value.jsonArray",
17208
+ "value.csv",
17066
17209
  "array.marqueeLoop",
17067
17210
  // Layout (layout.ts)
17068
17211
  "layout.maxWidthClass",
@@ -23842,7 +23985,12 @@ var init_event_calendar = __esm({
23842
23985
  // Pass filter params if configured
23843
23986
  kind: { $bind: { from: "content.kind" } },
23844
23987
  eventSurface: { $bind: { from: "content.eventSurface" } },
23845
- eventPresets: { $bind: { from: "content.filterEventPresets" } },
23988
+ eventPresets: {
23989
+ $bind: {
23990
+ from: "content.filterEventPresets",
23991
+ transforms: [{ id: "value.csv" }]
23992
+ }
23993
+ },
23846
23994
  scheduleScope: { $bind: { from: "content.scheduleScope" } },
23847
23995
  categoryIds: { $bind: { from: "content.filterCategoryIds" } },
23848
23996
  staffMemberId: { $bind: { from: "content.filterStaffMemberId" } },
@@ -24317,7 +24465,12 @@ var init_event_listing = __esm({
24317
24465
  detailLevel: "listing",
24318
24466
  kind: { $bind: { from: "content.kind" } },
24319
24467
  eventSurface: { $bind: { from: "content.eventSurface" } },
24320
- eventPresets: { $bind: { from: "content.filterEventPresets" } },
24468
+ eventPresets: {
24469
+ $bind: {
24470
+ from: "content.filterEventPresets",
24471
+ transforms: [{ id: "value.csv" }]
24472
+ }
24473
+ },
24321
24474
  scheduleScope: { $bind: { from: "content.scheduleScope" } }
24322
24475
  },
24323
24476
  mode: "server"
@@ -29793,7 +29946,7 @@ function multiStepReducer(state, action) {
29793
29946
  case "reset":
29794
29947
  return createInitialMultiStepState(action.initialData);
29795
29948
  default:
29796
- return assertNever5(action);
29949
+ return assertNever4(action);
29797
29950
  }
29798
29951
  }
29799
29952
  function getVisibleSteps(steps, data) {
@@ -31245,7 +31398,7 @@ function buildBookingPaymentOptionViewModel(input) {
31245
31398
  };
31246
31399
  }
31247
31400
  default:
31248
- return assertNever5(input.option);
31401
+ return assertNever4(input.option);
31249
31402
  }
31250
31403
  }
31251
31404
  function buildInstalmentSchedulePreview(input) {
@@ -31302,7 +31455,7 @@ function buildInstalmentSchedulePreview(input) {
31302
31455
  })));
31303
31456
  }
31304
31457
  default:
31305
- return assertNever5(input.option.plan);
31458
+ return assertNever4(input.option.plan);
31306
31459
  }
31307
31460
  }
31308
31461
  function getPaymentCadenceLabel(plan) {
@@ -32133,7 +32286,7 @@ function pollingReducer(state, action) {
32133
32286
  case "timeout":
32134
32287
  return state;
32135
32288
  default:
32136
- return assertNever5(state);
32289
+ return assertNever4(state);
32137
32290
  }
32138
32291
  case "polling-timed-out":
32139
32292
  return {
@@ -32142,7 +32295,7 @@ function pollingReducer(state, action) {
32142
32295
  error: new Error("Polling timed out")
32143
32296
  };
32144
32297
  default:
32145
- return assertNever5(action);
32298
+ return assertNever4(action);
32146
32299
  }
32147
32300
  }
32148
32301
  var init_usePolling_state = __esm({
@@ -32332,7 +32485,7 @@ function bookingSubmissionReducer(state, action) {
32332
32485
  feedback: { tag: "idle" }
32333
32486
  };
32334
32487
  default:
32335
- return assertNever5(action);
32488
+ return assertNever4(action);
32336
32489
  }
32337
32490
  }
32338
32491
  function selectIsSubmitting2(state) {
@@ -33840,7 +33993,7 @@ function eligibilityLookupReducer(state, action) {
33840
33993
  error: action.message
33841
33994
  };
33842
33995
  default:
33843
- return assertNever5(action);
33996
+ return assertNever4(action);
33844
33997
  }
33845
33998
  }
33846
33999
  function existingRegistrationLookupReducer(state, action) {
@@ -33858,7 +34011,7 @@ function existingRegistrationLookupReducer(state, action) {
33858
34011
  registration: action.registration
33859
34012
  };
33860
34013
  default:
33861
- return assertNever5(action);
34014
+ return assertNever4(action);
33862
34015
  }
33863
34016
  }
33864
34017
  var initialEligibilityLookupState, initialExistingRegistrationLookupState;
@@ -39014,6 +39167,7 @@ function toEventDetailsClientProps(props2) {
39014
39167
  showAcceptedMemberships: props2.showAcceptedMemberships,
39015
39168
  sitePasses: props2.sitePasses ? { passes: [...props2.sitePasses.passes] } : props2.sitePasses,
39016
39169
  siteMemberships: props2.siteMemberships ? { memberships: [...props2.siteMemberships.memberships] } : props2.siteMemberships,
39170
+ autoApplyDiscount: props2.autoApplyDiscount ?? null,
39017
39171
  className: props2.className,
39018
39172
  nowIso: props2.nowIso
39019
39173
  };
@@ -39030,6 +39184,7 @@ function EventDetailsClient({
39030
39184
  showAcceptedMemberships = true,
39031
39185
  sitePasses,
39032
39186
  siteMemberships,
39187
+ autoApplyDiscount,
39033
39188
  className,
39034
39189
  nowIso,
39035
39190
  children
@@ -39057,6 +39212,7 @@ function EventDetailsClient({
39057
39212
  showAcceptedMemberships,
39058
39213
  applicablePasses,
39059
39214
  applicableMemberships,
39215
+ autoApplyDiscount: autoApplyDiscount ?? null,
39060
39216
  renderVenueMap: ({ venueName, location: location2, className: className2, height }) => /* @__PURE__ */ jsx110("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx110(
39061
39217
  LeafletStaticMap,
39062
39218
  {
@@ -39378,7 +39534,7 @@ function shopPassesMembershipsReducer(state, action) {
39378
39534
  returnNotice: null
39379
39535
  };
39380
39536
  default:
39381
- return assertNever5(action);
39537
+ return assertNever4(action);
39382
39538
  }
39383
39539
  }
39384
39540
  function getOpenCheckout(state) {
@@ -42015,7 +42171,7 @@ function shopCheckoutReducer(state, action) {
42015
42171
  notice: action.notice
42016
42172
  };
42017
42173
  default:
42018
- return assertNever5(action);
42174
+ return assertNever4(action);
42019
42175
  }
42020
42176
  }
42021
42177
  var initialShopCheckoutState;
@@ -42504,7 +42660,7 @@ function giftingClientReducer(state, action) {
42504
42660
  purchaseNotice: action.notice
42505
42661
  };
42506
42662
  default:
42507
- return assertNever5(action);
42663
+ return assertNever4(action);
42508
42664
  }
42509
42665
  }
42510
42666
  function resolveGiftingPurchaseNotice(search, defaultSuccessMessage) {
@@ -47390,7 +47546,7 @@ function formSubmissionReducer(_state, action) {
47390
47546
  case "submission-failed":
47391
47547
  return { tag: "failed", message: action.message };
47392
47548
  default:
47393
- return assertNever5(action);
47549
+ return assertNever4(action);
47394
47550
  }
47395
47551
  }
47396
47552
  var initialFormSubmissionState;
@@ -48071,33 +48227,6 @@ var init_registry_client = __esm({
48071
48227
  }
48072
48228
  });
48073
48229
 
48074
- // ../theme-core/src/palette/generateShades.ts
48075
- var init_generateShades = __esm({
48076
- "../theme-core/src/palette/generateShades.ts"() {
48077
- "use strict";
48078
- init_colorConversion();
48079
- }
48080
- });
48081
-
48082
- // ../theme-core/src/palette/neutralScale.ts
48083
- var init_neutralScale = __esm({
48084
- "../theme-core/src/palette/neutralScale.ts"() {
48085
- "use strict";
48086
- init_colorConversion();
48087
- }
48088
- });
48089
-
48090
- // ../theme-core/src/palette/expandPalette.ts
48091
- var init_expandPalette = __esm({
48092
- "../theme-core/src/palette/expandPalette.ts"() {
48093
- "use strict";
48094
- init_generateShades();
48095
- init_neutralScale();
48096
- init_colorConversion();
48097
- init_textColor();
48098
- }
48099
- });
48100
-
48101
48230
  // ../theme-core/src/runtime/fontFamily.ts
48102
48231
  var init_fontFamily = __esm({
48103
48232
  "../theme-core/src/runtime/fontFamily.ts"() {
@@ -49943,71 +50072,268 @@ import { useEffect as useEffect34 } from "react";
49943
50072
  init_runtime();
49944
50073
  init_shop_shared();
49945
50074
  init_schemas2();
50075
+ import { z as z52 } from "zod";
50076
+
50077
+ // ../blocks/src/system/blocks/event-details.ts
50078
+ init_builder();
50079
+ init_builder();
50080
+ init_styledSection();
50081
+ init_fragments();
50082
+ init_shared4();
50083
+ init_shop_shared();
50084
+ init_defineBlock();
49946
50085
  import { z as z51 } from "zod";
49947
- var accordionIslandSchema = z51.object({
49948
- type: z51.enum(["single", "multiple"]).optional(),
49949
- defaultValue: z51.union([z51.string(), z51.array(z51.string())]).optional(),
49950
- collapsible: z51.boolean().optional()
49951
- });
49952
- var headerSectionIslandSchema = z51.object({
49953
- enabled: z51.boolean().optional(),
49954
- scrollEnabled: z51.boolean().optional()
49955
- });
49956
- var responsiveSlidesToShowSchema = z51.object({
49957
- mobile: z51.union([z51.number(), z51.string()]).optional(),
49958
- tablet: z51.union([z51.number(), z51.string()]).optional(),
49959
- desktop: z51.union([z51.number(), z51.string()]).optional()
49960
- });
49961
- var carouselIslandSchema = z51.object({
49962
- slidesToShow: z51.union([z51.number(), z51.string(), responsiveSlidesToShowSchema]).optional(),
49963
- transition: z51.enum(["slide", "fade"]).optional(),
49964
- showControls: z51.union([z51.boolean(), z51.string()]).optional(),
49965
- showDots: z51.union([z51.boolean(), z51.string()]).optional(),
49966
- arrowVisibility: z51.enum(["always", "hover", "never"]).optional(),
49967
- autoplay: z51.union([z51.boolean(), z51.string()]).optional(),
49968
- autoplayDelay: z51.union([z51.number(), z51.string()]).optional(),
49969
- loop: z51.union([z51.boolean(), z51.string()]).optional()
49970
- });
49971
- var eventDetailsOccurrenceContextSchema = z51.object({
50086
+ var eventDetailsManifest = createBlockManifest({
50087
+ id: "block.event-details",
50088
+ version: "1.0.0",
50089
+ title: "Event Details",
50090
+ titleSource: "heading",
50091
+ description: "Date/time, venue, map, and other dates for an event",
50092
+ category: "content",
50093
+ tags: ["events", "venue", "map", "schedule", "dates"],
50094
+ icon: "MapPin",
50095
+ styleTokens: { background: "surface", typography: "body", spacing: "md" },
50096
+ behaviours: {
50097
+ supportsThemeSwitching: true,
50098
+ inlineEditing: false,
50099
+ animation: false,
50100
+ paletteHidden: false
50101
+ },
50102
+ additionalFields: [
50103
+ {
50104
+ id: "heading",
50105
+ type: "text",
50106
+ label: "Heading",
50107
+ description: "Optional heading shown above event details",
50108
+ required: false,
50109
+ multiline: false,
50110
+ defaultValue: "Event details"
50111
+ },
50112
+ {
50113
+ id: "showVenue",
50114
+ type: "boolean",
50115
+ label: "Show venue",
50116
+ required: false,
50117
+ defaultValue: true,
50118
+ ui: { intent: "display" }
50119
+ },
50120
+ {
50121
+ id: "showMap",
50122
+ type: "boolean",
50123
+ label: "Show map",
50124
+ description: "Embed a map when the venue has coordinates",
50125
+ required: false,
50126
+ defaultValue: true,
50127
+ ui: { intent: "display" }
50128
+ },
50129
+ {
50130
+ id: "showOtherDates",
50131
+ type: "boolean",
50132
+ label: "Show other dates",
50133
+ required: false,
50134
+ defaultValue: true,
50135
+ ui: { intent: "display" }
50136
+ },
50137
+ {
50138
+ id: "otherDatesLimit",
50139
+ type: "select",
50140
+ label: "Other dates limit",
50141
+ required: false,
50142
+ multiple: false,
50143
+ defaultValue: "5",
50144
+ options: [
50145
+ { value: "3", label: "3 dates" },
50146
+ { value: "5", label: "5 dates" },
50147
+ { value: "10", label: "10 dates" }
50148
+ ],
50149
+ ui: { intent: "display" }
50150
+ },
50151
+ {
50152
+ id: "showCost",
50153
+ type: "boolean",
50154
+ label: "Show cost",
50155
+ description: "Display ticket price for paid events",
50156
+ required: false,
50157
+ defaultValue: true,
50158
+ ui: { intent: "display" }
50159
+ },
50160
+ {
50161
+ id: "showAcceptedPasses",
50162
+ type: "boolean",
50163
+ label: "Show accepted passes",
50164
+ description: "Display passes that can be used for this event",
50165
+ required: false,
50166
+ defaultValue: true,
50167
+ ui: { intent: "display" }
50168
+ },
50169
+ {
50170
+ id: "showAcceptedMemberships",
50171
+ type: "boolean",
50172
+ label: "Show accepted memberships",
50173
+ description: "Display memberships that grant access to this event",
50174
+ required: false,
50175
+ defaultValue: true,
50176
+ ui: { intent: "display" }
50177
+ }
50178
+ ],
50179
+ layout: [
50180
+ styledSection({
50181
+ baseClass: "",
50182
+ spacing: "spacious",
50183
+ children: sectionContainer(
50184
+ [
50185
+ text({ as: "h2" }, bind("content.heading"), when("content.heading")),
50186
+ el("event-details", {
50187
+ occurrenceContext: {
50188
+ $bind: { from: "$root.occurrenceContext", fallback: null }
50189
+ },
50190
+ contentEntry: { $bind: { from: "$root.contentEntry", fallback: null } },
50191
+ events: { $bind: { from: "data.eventDetailsData.events" } },
50192
+ showVenue: { $bind: { from: "content.showVenue" } },
50193
+ showMap: { $bind: { from: "content.showMap" } },
50194
+ showOtherDates: { $bind: { from: "content.showOtherDates" } },
50195
+ otherDatesLimit: {
50196
+ $bind: { from: "content.otherDatesLimit", fallback: "5" }
50197
+ },
50198
+ showCost: { $bind: { from: "content.showCost", fallback: true } },
50199
+ showAcceptedPasses: {
50200
+ $bind: { from: "content.showAcceptedPasses", fallback: true }
50201
+ },
50202
+ showAcceptedMemberships: {
50203
+ $bind: { from: "content.showAcceptedMemberships", fallback: true }
50204
+ },
50205
+ sitePasses: { $bind: { from: "data.eventDetailsData.sitePasses" } },
50206
+ siteMemberships: { $bind: { from: "data.eventDetailsData.siteMemberships" } },
50207
+ autoApplyDiscount: {
50208
+ $bind: { from: "data.eventDetailsData.autoApplyDiscount", fallback: null }
50209
+ }
50210
+ })
50211
+ ],
50212
+ { gap: "lg" }
50213
+ )
50214
+ })
50215
+ ]
50216
+ });
50217
+ var occurrenceContextSchema2 = z51.object({
49972
50218
  id: z51.string(),
49973
50219
  seriesId: z51.string(),
49974
50220
  startsAt: z51.string(),
49975
50221
  endsAt: z51.string(),
49976
- timeZone: z51.string()
49977
- });
49978
- var eventDetailsContentEntrySchema = z51.object({
50222
+ timeZone: z51.string(),
50223
+ capacityOverride: z51.number().nullable().optional(),
50224
+ overrides: z51.record(z51.string(), z51.unknown()).nullable().optional()
50225
+ }).nullable();
50226
+ var eventAutoApplyDiscountPreviewBaseSchema = z51.object({
49979
50227
  id: z51.string(),
49980
- slug: z51.string(),
49981
- contentTypeSlug: z51.string()
49982
- });
49983
- var eventDetailsIslandSchema = z51.object({
50228
+ publicLabel: z51.string(),
50229
+ description: z51.string().nullable(),
50230
+ minTicketsRequired: z51.number().nullable()
50231
+ });
50232
+ var eventAutoApplyDiscountPreviewSchema = z51.discriminatedUnion("discountType", [
50233
+ eventAutoApplyDiscountPreviewBaseSchema.extend({
50234
+ discountType: z51.literal("percent"),
50235
+ discountPercent: z51.number(),
50236
+ discountAmountCents: z51.null()
50237
+ }),
50238
+ eventAutoApplyDiscountPreviewBaseSchema.extend({
50239
+ discountType: z51.literal("fixed"),
50240
+ discountPercent: z51.null(),
50241
+ discountAmountCents: z51.number()
50242
+ })
50243
+ ]);
50244
+ var eventDetailsBlockDefinition = {
50245
+ manifest: eventDetailsManifest,
50246
+ dataSchemas: {
50247
+ eventDetailsData: z51.object({
50248
+ events: publicEventsArraySchema,
50249
+ sitePasses: z51.object({ passes: z51.array(publicPassProductSchema) }),
50250
+ siteMemberships: z51.object({ memberships: z51.array(publicMembershipProductSchema) }),
50251
+ autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional().default(null)
50252
+ }).optional(),
50253
+ occurrenceContext: occurrenceContextSchema2.optional()
50254
+ },
50255
+ dataLoaders: {
50256
+ eventDetailsData: {
50257
+ endpoint: "getPublicEventDetails",
50258
+ params: {
50259
+ siteId: { $bind: { from: "$root.siteId" } },
50260
+ stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
50261
+ limit: "25",
50262
+ entryId: { $bind: { from: "$root.contentEntry._entryId" } },
50263
+ seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
50264
+ includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
50265
+ },
50266
+ mode: "server"
50267
+ }
50268
+ }
50269
+ };
50270
+
50271
+ // ../blocks/src/contracts/non-block-islands.ts
50272
+ var accordionIslandSchema = z52.object({
50273
+ type: z52.enum(["single", "multiple"]).optional(),
50274
+ defaultValue: z52.union([z52.string(), z52.array(z52.string())]).optional(),
50275
+ collapsible: z52.boolean().optional()
50276
+ });
50277
+ var headerSectionIslandSchema = z52.object({
50278
+ enabled: z52.boolean().optional(),
50279
+ scrollEnabled: z52.boolean().optional()
50280
+ });
50281
+ var responsiveSlidesToShowSchema = z52.object({
50282
+ mobile: z52.union([z52.number(), z52.string()]).optional(),
50283
+ tablet: z52.union([z52.number(), z52.string()]).optional(),
50284
+ desktop: z52.union([z52.number(), z52.string()]).optional()
50285
+ });
50286
+ var carouselIslandSchema = z52.object({
50287
+ slidesToShow: z52.union([z52.number(), z52.string(), responsiveSlidesToShowSchema]).optional(),
50288
+ transition: z52.enum(["slide", "fade"]).optional(),
50289
+ showControls: z52.union([z52.boolean(), z52.string()]).optional(),
50290
+ showDots: z52.union([z52.boolean(), z52.string()]).optional(),
50291
+ arrowVisibility: z52.enum(["always", "hover", "never"]).optional(),
50292
+ autoplay: z52.union([z52.boolean(), z52.string()]).optional(),
50293
+ autoplayDelay: z52.union([z52.number(), z52.string()]).optional(),
50294
+ loop: z52.union([z52.boolean(), z52.string()]).optional()
50295
+ });
50296
+ var eventDetailsOccurrenceContextSchema = z52.object({
50297
+ id: z52.string(),
50298
+ seriesId: z52.string(),
50299
+ startsAt: z52.string(),
50300
+ endsAt: z52.string(),
50301
+ timeZone: z52.string()
50302
+ });
50303
+ var eventDetailsContentEntrySchema = z52.object({
50304
+ id: z52.string(),
50305
+ slug: z52.string(),
50306
+ contentTypeSlug: z52.string()
50307
+ });
50308
+ var eventDetailsIslandSchema = z52.object({
49984
50309
  occurrenceContext: eventDetailsOccurrenceContextSchema.nullable().optional(),
49985
50310
  contentEntry: eventDetailsContentEntrySchema.nullable().optional(),
49986
- events: z51.array(publicEventSchema).nullable().optional(),
49987
- showVenue: z51.boolean().optional(),
49988
- showMap: z51.boolean().optional(),
49989
- showOtherDates: z51.boolean().optional(),
49990
- otherDatesLimit: z51.string().optional(),
49991
- showCost: z51.boolean().optional(),
49992
- showAcceptedPasses: z51.boolean().optional(),
49993
- showAcceptedMemberships: z51.boolean().optional(),
49994
- sitePasses: z51.object({ passes: z51.array(publicPassProductSchema) }).nullable().optional(),
49995
- siteMemberships: z51.object({ memberships: z51.array(publicMembershipProductSchema) }).nullable().optional(),
49996
- className: z51.string().nullable().optional(),
49997
- nowIso: z51.string().optional()
49998
- });
49999
- var locationMapIslandSchema = z51.object({
50000
- location: z51.object({
50001
- addressText: z51.string().nullable(),
50002
- lat: z51.number().nullable(),
50003
- lng: z51.number().nullable()
50311
+ events: z52.array(publicEventSchema).nullable().optional(),
50312
+ showVenue: z52.boolean().optional(),
50313
+ showMap: z52.boolean().optional(),
50314
+ showOtherDates: z52.boolean().optional(),
50315
+ otherDatesLimit: z52.string().optional(),
50316
+ showCost: z52.boolean().optional(),
50317
+ showAcceptedPasses: z52.boolean().optional(),
50318
+ showAcceptedMemberships: z52.boolean().optional(),
50319
+ sitePasses: z52.object({ passes: z52.array(publicPassProductSchema) }).nullable().optional(),
50320
+ siteMemberships: z52.object({ memberships: z52.array(publicMembershipProductSchema) }).nullable().optional(),
50321
+ autoApplyDiscount: eventAutoApplyDiscountPreviewSchema.nullable().optional(),
50322
+ className: z52.string().nullable().optional(),
50323
+ nowIso: z52.string().optional()
50324
+ });
50325
+ var locationMapIslandSchema = z52.object({
50326
+ location: z52.object({
50327
+ addressText: z52.string().nullable(),
50328
+ lat: z52.number().nullable(),
50329
+ lng: z52.number().nullable()
50004
50330
  }).nullable().optional(),
50005
- zoom: z51.number().nullable().optional(),
50006
- heightPx: z51.number().nullable().optional(),
50007
- showAddressText: z51.boolean().optional(),
50008
- showDirections: z51.boolean().optional(),
50009
- directionsLabel: z51.string().nullable().optional(),
50010
- className: z51.string().nullable().optional()
50331
+ zoom: z52.number().nullable().optional(),
50332
+ heightPx: z52.number().nullable().optional(),
50333
+ showAddressText: z52.boolean().optional(),
50334
+ showDirections: z52.boolean().optional(),
50335
+ directionsLabel: z52.string().nullable().optional(),
50336
+ className: z52.string().nullable().optional()
50011
50337
  });
50012
50338
  var accordionIslandPropsCodec = createZodCodec(accordionIslandSchema);
50013
50339
  var headerSectionIslandPropsCodec = createZodCodec(headerSectionIslandSchema);
@@ -50319,6 +50645,9 @@ init_textColor();
50319
50645
  // ../theme-core/src/palette/utils/legibility.ts
50320
50646
  init_contrast2();
50321
50647
 
50648
+ // ../theme-core/src/palette/utils/index.ts
50649
+ init_onColor();
50650
+
50322
50651
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
50323
50652
  init_expandPalette();
50324
50653