@riverbankcms/sdk 0.104.1 → 0.107.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/README.md +84 -51
  2. package/dist/{PreviewEditorSidebar-CmaPXdKu.mjs → PreviewEditorSidebar-DpAbAl08.mjs} +1811 -1179
  3. package/dist/{PreviewEditorUI-C5xRTh2b.mjs → PreviewEditorUI-O7cn6Xxv.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-D0tnKl0t.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Eks51NcN.mjs → SdkPreviewModeRuntime-CVB7urtl.mjs} +3244 -528
  6. package/dist/{SiteChromeCustomizeContext-Bt8zb3qu.mjs → SiteChromeCustomizeContext-C_sizso-.mjs} +4945 -3010
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +32945 -1329
  8. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +6 -15
  11. package/dist/_dts/api/src/courses.d.ts +68 -10
  12. package/dist/_dts/api/src/endpoints.d.ts +29 -0
  13. package/dist/_dts/api/src/index.d.ts +124 -124
  14. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
  15. package/dist/_dts/api/src/sdkContracts.d.ts +116 -6
  16. package/dist/_dts/api/src/siteOperations.d.ts +1 -0
  17. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +26 -4
  18. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +31 -46
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
  20. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  21. package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
  22. package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +12 -8
  23. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
  24. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
  26. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +7 -0
  27. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
  28. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
  29. package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +11 -1
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
  32. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
  33. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
  35. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
  36. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
  37. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
  38. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
  39. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  40. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
  41. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/constants/events.d.ts +1 -1
  43. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
  44. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  45. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
  46. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
  47. package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +12 -0
  48. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
  49. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
  50. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  51. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
  52. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
  53. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
  54. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +15 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +33 -0
  56. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
  57. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
  65. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +32 -0
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +32 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
  71. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  72. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
  74. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
  76. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  77. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +84 -0
  78. package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +2 -0
  79. package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -40
  80. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +14 -0
  81. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +11 -0
  82. package/dist/_dts/core/src/branded.d.ts +49 -0
  83. package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
  84. package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
  85. package/dist/_dts/core/src/index.d.ts +49 -47
  86. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +1469 -14
  87. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  88. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
  89. package/dist/_dts/media-core/src/index.d.ts +2 -1
  90. package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
  91. package/dist/_dts/media-core/src/url.d.ts +1 -21
  92. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  93. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
  94. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  95. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -9
  96. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +7 -11
  97. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -9
  98. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
  99. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
  100. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
  101. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
  102. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
  103. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
  104. package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
  105. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
  106. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
  107. package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
  108. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
  109. package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
  110. package/dist/_dts/sdk/src/client/management/blocks.d.ts +1 -1
  111. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  112. package/dist/_dts/sdk/src/client/management/types.d.ts +132 -23
  113. package/dist/_dts/sdk/src/client/types.d.ts +2 -0
  114. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  115. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  116. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  117. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +25 -5
  118. package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
  119. package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
  120. package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
  121. package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
  122. package/dist/_dts/sdk/src/data/index.d.ts +3 -3
  123. package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
  124. package/dist/_dts/sdk/src/data/types.d.ts +43 -78
  125. package/dist/_dts/sdk/src/next/index.d.ts +1 -0
  126. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
  127. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
  128. package/dist/_dts/sdk/src/next/types.d.ts +10 -1
  129. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -8
  130. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +9 -4
  131. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
  132. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  133. package/dist/_dts/sdk/src/server.d.ts +4 -3
  134. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  135. package/dist/_dts/sdk/src/version.d.ts +1 -1
  136. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  137. package/dist/_dts/site-commands/src/commands.d.ts +921 -30
  138. package/dist/_dts/theme-core/src/ThemeScope.d.ts +1 -1
  139. package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +29 -0
  140. package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +6 -0
  141. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
  142. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  143. package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +20 -0
  144. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +22 -0
  145. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
  146. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +6 -2
  147. package/dist/_dts/theme-core/src/buttons/types.d.ts +43 -5
  148. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  149. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
  150. package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
  151. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  152. package/dist/_dts/theme-core/src/gradients/types.d.ts +27 -3
  153. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -39
  154. package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
  155. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +22 -4
  156. package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
  157. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -224
  158. package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
  159. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
  160. package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
  161. package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
  162. package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
  163. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -3
  164. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
  165. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -57
  166. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
  167. package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
  168. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +3 -4
  169. package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +1 -0
  170. package/dist/_dts/theme-core/src/schema.d.ts +229 -30
  171. package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +2 -1
  172. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
  173. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
  174. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
  175. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
  176. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  177. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +208 -49
  178. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +8 -2
  179. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +6 -2
  180. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +56 -1
  181. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  182. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
  183. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
  184. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
  185. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
  186. package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
  187. package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
  188. package/dist/_dts/theme-core/src/status/index.d.ts +0 -1
  189. package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +19 -0
  190. package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +9 -0
  191. package/dist/_dts/theme-core/src/surfaces/index.d.ts +2 -0
  192. package/dist/_dts/ui/src/button.d.ts +1 -1
  193. package/dist/cli/index.mjs +4146 -1602
  194. package/dist/client/{DiscountCodeDisclosure-Dit2aItR.mjs → DiscountCodeDisclosure-BwGkvmVH.mjs} +1 -1
  195. package/dist/client/{EventCombined.client-BnREyCjf.mjs → EventCombined.client-JnWE6Hzc.mjs} +4 -4
  196. package/dist/client/{EventListing.client-0uHld51x.mjs → EventListing.client-DQewc_kg.mjs} +2 -2
  197. package/dist/client/{LeafletStaticMap-DJcvSfmj.mjs → LeafletStaticMap-DPAU3SFt.mjs} +1 -1
  198. package/dist/client/{MagicLinkForm-EAsIktfw.mjs → MagicLinkForm-D4kpWCbW.mjs} +2 -2
  199. package/dist/client/{StepIndicator-CRR17tYI.mjs → StepIndicator-CBlkb4rA.mjs} +2 -2
  200. package/dist/client/{accordion-B47HIuuH.mjs → accordion-DAIBVpTS.mjs} +1 -1
  201. package/dist/client/{bookingForm-I1E-8F9P.mjs → bookingForm-DZ-4l5_1.mjs} +7 -7
  202. package/dist/client/bookings.mjs +360 -95
  203. package/dist/client/{buttons-BbPn8OKA.mjs → buttons-DJgynGHQ.mjs} +243 -43
  204. package/dist/client/{carousel-OlM7SyBs.mjs → carousel-D-SLfX8r.mjs} +1 -1
  205. package/dist/client/{cart-BKpG5jz6.mjs → cart-CEgbgJhX.mjs} +3 -3
  206. package/dist/client/{checkout-Dmmr6qoU.mjs → checkout-CXWrCRAA.mjs} +3 -3
  207. package/dist/client/client.mjs +6019 -1494
  208. package/dist/client/{colorStyles-DuW4Fjqd.mjs → colorStyles-jZS6KfkP.mjs} +46 -5
  209. package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
  210. package/dist/client/{courseRegistration-CflZiqGk.mjs → courseRegistration-DVmLrRVz.mjs} +56 -21
  211. package/dist/client/{eventCalendar-BvoLWcp-.mjs → eventCalendar-DCuyPY_c.mjs} +173 -5
  212. package/dist/client/{eventCombined-DsrO8t_t.mjs → eventCombined-kP2CA2D4.mjs} +2 -2
  213. package/dist/client/{eventDetails-C3hxgcJm.mjs → eventDetails-DU0LeF5e.mjs} +4 -4
  214. package/dist/client/{eventListing-C-hb237X.mjs → eventListing-CcHF87BI.mjs} +2 -2
  215. package/dist/client/{eventRegistration-B0gyzDGi.mjs → eventRegistration-DJnR0yFH.mjs} +8 -8
  216. package/dist/client/{form-C_RUi6oJ.mjs → form-CH1lCusH.mjs} +2 -2
  217. package/dist/client/{headerSection-IKQiD2U0.mjs → headerSection-CBPFZoku.mjs} +3 -3
  218. package/dist/client/hooks.mjs +3645 -1857
  219. package/dist/client/{locationMap-8ZBrMzRJ.mjs → locationMap-Cx1hBg5n.mjs} +3 -3
  220. package/dist/client/{media-CZJKL7fi.mjs → media-DHtSxS5V.mjs} +61 -56
  221. package/dist/client/{newsletterForm-CYk3ucwj.mjs → newsletterForm-1ZL_ti9u.mjs} +3 -3
  222. package/dist/client/{pricing-B5GmvfIH.mjs → pricing-BIbzmV0G.mjs} +1 -1
  223. package/dist/client/{productDetail-BjS2Dqzo.mjs → productDetail-BTh5gHBV.mjs} +3 -3
  224. package/dist/client/{productList-BOHvC8My.mjs → productList-Cc7OMrqN.mjs} +3 -3
  225. package/dist/client/{propsDecoder-WS6UEJwZ.mjs → propsDecoder-oR-M-ISN.mjs} +228 -60
  226. package/dist/client/rendering/client.mjs +3231 -1477
  227. package/dist/client/rendering/islands.mjs +20 -20
  228. package/dist/client/rendering.mjs +6889 -1927
  229. package/dist/client/{shop-CON03-wN.mjs → shop-CQ_YbCnn.mjs} +8 -8
  230. package/dist/client/{shop-commerce-DlqrFgH8.mjs → shop-commerce-BM-AoD3M.mjs} +6 -6
  231. package/dist/client/{shop-commerce-store-l74-Kne6.mjs → shop-commerce-store-DFMQhU5p.mjs} +1 -1
  232. package/dist/client/{shopShared-CQheEXSg.mjs → shopShared-D0SKO2Cu.mjs} +3 -3
  233. package/dist/client/{useDiscountCodeUi-v6OluyWl.mjs → useDiscountCodeUi-CrG4_ARt.mjs} +1 -1
  234. package/dist/client/{useEventFilters-BqSTcNOf.mjs → useEventFilters-CxK8Fekl.mjs} +6 -6
  235. package/dist/client/{usePolling-DMfADjIF.mjs → usePolling-jcVryNgZ.mjs} +2 -2
  236. package/dist/preview-next/before-render.mjs +40 -1
  237. package/dist/preview-next/client/runtime.mjs +4 -4
  238. package/dist/preview-next/middleware.mjs +40 -1
  239. package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-BPcJPzdz.mjs} +40 -1
  240. package/dist/{sdk-runtime-BUmJ0DaT.mjs → sdk-runtime-C39Rsk-x.mjs} +2 -2
  241. package/dist/{separator-Dd-JYok7.mjs → separator-BoMSQnsP.mjs} +1 -1
  242. package/dist/server/components.mjs +6345 -2084
  243. package/dist/server/config-validation.mjs +3420 -1856
  244. package/dist/server/config.mjs +3420 -1856
  245. package/dist/server/data.mjs +4067 -1923
  246. package/dist/server/index.mjs +46 -4
  247. package/dist/server/next/middleware.mjs +1 -1
  248. package/dist/server/next.mjs +7239 -2147
  249. package/dist/server/page-converter.mjs +3189 -1619
  250. package/dist/server/prebuild.mjs +1 -1
  251. package/dist/server/rendering/server.mjs +6540 -2058
  252. package/dist/server/rendering.mjs +7339 -2377
  253. package/dist/server/routing.mjs +3373 -1101
  254. package/dist/server/server.mjs +4307 -2002
  255. package/dist/server/theme-bridge.mjs +9844 -7325
  256. package/dist/server/theme.mjs +300 -47
  257. package/dist/styles/index.css +1863 -94
  258. package/package.json +1 -1
  259. package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +0 -2
  260. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
  261. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
  262. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -34
  263. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
  264. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -219
  265. package/dist/_dts/theme-core/src/status/contextualColors.d.ts +0 -6
@@ -3717,12 +3717,14 @@ function parseUuidBrand(value, unsafeConstructor) {
3717
3717
  return ok(unsafeConstructor(normalized));
3718
3718
  }
3719
3719
  const unsafeAsSiteId = (id) => id;
3720
+ const unsafeAsEventOfferingId = (id) => id;
3720
3721
  const unsafeAsEventSeriesId = (id) => id;
3721
3722
  const unsafeAsFormId = (id) => id;
3722
3723
  const unsafeAsPassId = (id) => id;
3723
3724
  const unsafeAsCustomerPassId = (id) => id;
3724
3725
  const unsafeAsAppointmentServiceId = (id) => id;
3725
3726
  const unsafeAsAppointmentResourceId = (id) => id;
3727
+ const parseEventOfferingId = (value) => parseUuidBrand(value, unsafeAsEventOfferingId);
3726
3728
  const parseEventSeriesId = (value) => parseUuidBrand(value, unsafeAsEventSeriesId);
3727
3729
  //#endregion
3728
3730
  //#region ../core/src/date-math.ts
@@ -3828,6 +3830,55 @@ function isFreePublicEventPriceDisplay(display) {
3828
3830
  }
3829
3831
  }
3830
3832
  //#endregion
3833
+ //#region ../core/src/event-page-surface-subject.ts
3834
+ function parseEventPageSurfaceSubject(value) {
3835
+ if (!isRecord$5(value)) return err$1({ kind: "notObject" });
3836
+ switch (value.kind) {
3837
+ case "eventSeries": {
3838
+ const eventSeriesId = parseEventSeriesId(value.eventSeriesId);
3839
+ return eventSeriesId.ok ? ok({
3840
+ kind: "eventSeries",
3841
+ eventSeriesId: eventSeriesId.value
3842
+ }) : err$1({
3843
+ kind: "invalidEventSeriesId",
3844
+ error: eventSeriesId.error
3845
+ });
3846
+ }
3847
+ case "eventOffering": {
3848
+ const eventOfferingId = parseEventOfferingId(value.eventOfferingId);
3849
+ if (!eventOfferingId.ok) return err$1({
3850
+ kind: "invalidEventOfferingId",
3851
+ error: eventOfferingId.error
3852
+ });
3853
+ if (!Array.isArray(value.availableEventSeriesIds)) return err$1({
3854
+ kind: "unsupportedSubject",
3855
+ subjectKind: value.kind
3856
+ });
3857
+ const parsedSeriesIds = [];
3858
+ for (const valueId of value.availableEventSeriesIds) {
3859
+ const eventSeriesId = parseEventSeriesId(valueId);
3860
+ if (!eventSeriesId.ok) return err$1({
3861
+ kind: "invalidEventSeriesId",
3862
+ error: eventSeriesId.error
3863
+ });
3864
+ parsedSeriesIds.push(eventSeriesId.value);
3865
+ }
3866
+ return ok({
3867
+ kind: "eventOffering",
3868
+ eventOfferingId: eventOfferingId.value,
3869
+ availableEventSeriesIds: parsedSeriesIds
3870
+ });
3871
+ }
3872
+ default: return err$1({
3873
+ kind: "unsupportedSubject",
3874
+ subjectKind: value.kind
3875
+ });
3876
+ }
3877
+ }
3878
+ function isRecord$5(value) {
3879
+ return typeof value === "object" && value !== null && !Array.isArray(value);
3880
+ }
3881
+ //#endregion
3831
3882
  //#region ../core/src/booking-flexible-balance.ts
3832
3883
  function clampFlexibleBalanceConfiguredAmount(amountCents, totalAmountCents) {
3833
3884
  return Math.max(0, Math.min(amountCents, totalAmountCents));
@@ -4244,12 +4295,12 @@ function resolveBookingSiteId(siteId, form) {
4244
4295
  return siteId || form?.siteId || "";
4245
4296
  }
4246
4297
  function normalizeBookingFormConfig(form) {
4247
- if (!isRecord$5(form)) return null;
4298
+ if (!isRecord$4(form)) return null;
4248
4299
  const id = readNonEmptyString(form.id);
4249
4300
  const name = readNonEmptyString(form.name);
4250
4301
  if (!id || !name) return null;
4251
- const schemaSource = isRecord$5(form.schema) ? form.schema : isRecord$5(form.schemaJson) ? form.schemaJson : null;
4252
- const settingsSource = isRecord$5(form.settings) ? form.settings : isRecord$5(form.settingsJson) ? form.settingsJson : null;
4302
+ const schemaSource = isRecord$4(form.schema) ? form.schema : isRecord$4(form.schemaJson) ? form.schemaJson : null;
4303
+ const settingsSource = isRecord$4(form.settings) ? form.settings : isRecord$4(form.settingsJson) ? form.settingsJson : null;
4253
4304
  return {
4254
4305
  id,
4255
4306
  name,
@@ -4269,8 +4320,8 @@ function normalizeBookingServices(services) {
4269
4320
  };
4270
4321
  if (!services) return [];
4271
4322
  if (Array.isArray(services)) return services.filter(isBookingFormService).map(normalizeService);
4272
- if (isRecord$5(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
4273
- return isRecord$5(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
4323
+ if (isRecord$4(services) && "services" in services) return Array.isArray(services.services) ? services.services.filter(isBookingFormService).map(normalizeService) : [];
4324
+ return isRecord$4(services) ? Object.values(services).filter(isBookingFormService).map(normalizeService) : [];
4274
4325
  }
4275
4326
  function normalizeBookingSchema(value) {
4276
4327
  if (!value) return void 0;
@@ -4281,7 +4332,7 @@ function normalizeBookingSchema(value) {
4281
4332
  };
4282
4333
  }
4283
4334
  function readBookingFormField(value) {
4284
- if (!isRecord$5(value)) return null;
4335
+ if (!isRecord$4(value)) return null;
4285
4336
  const id = readNonEmptyString(value.id);
4286
4337
  const label = readNonEmptyString(value.label);
4287
4338
  const type = readBookingFieldType(value.type);
@@ -4325,7 +4376,7 @@ function readBookingFieldOptions(value) {
4325
4376
  return options.length > 0 ? options : void 0;
4326
4377
  }
4327
4378
  function readBookingFieldOption(value) {
4328
- if (!isRecord$5(value)) return null;
4379
+ if (!isRecord$4(value)) return null;
4329
4380
  const optionValue = readNonEmptyString(value.value);
4330
4381
  const label = readNonEmptyString(value.label);
4331
4382
  return optionValue && label ? {
@@ -4345,7 +4396,7 @@ function normalizeBookingSettings(value) {
4345
4396
  };
4346
4397
  }
4347
4398
  function isBookingFormService(value) {
4348
- return isRecord$5(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
4399
+ return isRecord$4(value) && typeof value.id === "string" && typeof value.siteId === "string" && typeof value.title === "string";
4349
4400
  }
4350
4401
  function collectBookingCustomFields(data) {
4351
4402
  const customFields = {};
@@ -4395,7 +4446,7 @@ function readStringArray(value) {
4395
4446
  const strings = value.filter((item) => typeof item === "string");
4396
4447
  return strings.length > 0 ? strings : void 0;
4397
4448
  }
4398
- function isRecord$5(value) {
4449
+ function isRecord$4(value) {
4399
4450
  return typeof value === "object" && value !== null;
4400
4451
  }
4401
4452
  function getBookingServicePaymentSelectionMode(service) {
@@ -6322,7 +6373,7 @@ function omitRecordKey(record, key) {
6322
6373
  return rest;
6323
6374
  }
6324
6375
  function readAppointmentBookingOverrideData(value) {
6325
- if (!isRecord$4(value)) return null;
6376
+ if (!isRecord$3(value)) return null;
6326
6377
  const services = normalizeBookingServices(value.services);
6327
6378
  return {
6328
6379
  form: normalizeBookingFormConfig(value.form),
@@ -6337,7 +6388,7 @@ function createOverrideInputError(reason, message, warnInDev = false) {
6337
6388
  message
6338
6389
  };
6339
6390
  }
6340
- function isRecord$4(value) {
6391
+ function isRecord$3(value) {
6341
6392
  return typeof value === "object" && value !== null;
6342
6393
  }
6343
6394
  //#endregion
@@ -7490,7 +7541,14 @@ const buttonSizesSchema = z$1.object({
7490
7541
  const buttonGlobalSettingsSchema = z$1.object({
7491
7542
  cornerStyle: cornerStyleSchema,
7492
7543
  cornerRadius: z$1.number().min(0).max(24).optional(),
7493
- shadow: shadowSizeSchema,
7544
+ /**
7545
+ * Family-level shadow inherited by variants that don't set their own.
7546
+ * Optional and flat-by-default: when omitted, buttons carry no drop shadow
7547
+ * (`elevation: 'none'`). A personality opts the whole family into a shadow by
7548
+ * setting this; individual variants still override. There is no system-level
7549
+ * shadow-by-default — shadows only appear when explicitly declared.
7550
+ */
7551
+ shadow: shadowSizeSchema.optional(),
7494
7552
  textTransform: textTransformSchema,
7495
7553
  fontWeight: fontWeightSchema,
7496
7554
  /**
@@ -7546,6 +7604,10 @@ const buttonBorderSchema = z$1.object({
7546
7604
  widthClass: z$1.string(),
7547
7605
  colorToken: themeColorTokenSchema
7548
7606
  });
7607
+ const buttonVariantAffordanceSchema = z$1.object({
7608
+ iconId: z$1.string().min(1),
7609
+ colorToken: themeColorTokenSchema.optional()
7610
+ });
7549
7611
  const variantShadowSchema = z$1.object({
7550
7612
  elevation: z$1.enum([
7551
7613
  "none",
@@ -7599,7 +7661,8 @@ const buttonVariantSchema = z$1.object({
7599
7661
  border: buttonBorderSchema.optional(),
7600
7662
  hoverBackgroundToken: z$1.string().optional(),
7601
7663
  effects: variantEffectsSchema.optional(),
7602
- sizes: variantSizeOverridesSchema.optional()
7664
+ sizes: variantSizeOverridesSchema.optional(),
7665
+ affordance: buttonVariantAffordanceSchema.optional()
7603
7666
  });
7604
7667
  const buttonSystemSchema = z$1.object({
7605
7668
  global: buttonGlobalSettingsSchema,
@@ -8073,7 +8136,6 @@ const editorialLink = defineButtonPersonality({
8073
8136
  buttonSystem: {
8074
8137
  global: {
8075
8138
  cornerStyle: "square",
8076
- shadow: "none",
8077
8139
  textTransform: "none",
8078
8140
  fontWeight: 500,
8079
8141
  borderWidth: 1,
@@ -8089,11 +8151,6 @@ const editorialLink = defineButtonPersonality({
8089
8151
  background: { type: "transparent" },
8090
8152
  textColorToken: "text",
8091
8153
  borderRadius: "rounded-none",
8092
- shadow: {
8093
- elevation: "none",
8094
- softness: null,
8095
- position: "bottom"
8096
- },
8097
8154
  sizes: {
8098
8155
  sm: { padding: "0.25rem 0" },
8099
8156
  md: { padding: "0.5rem 0" },
@@ -8117,11 +8174,6 @@ const editorialLink = defineButtonPersonality({
8117
8174
  background: { type: "transparent" },
8118
8175
  textColorToken: "mutedText",
8119
8176
  borderRadius: "rounded-none",
8120
- shadow: {
8121
- elevation: "none",
8122
- softness: null,
8123
- position: "bottom"
8124
- },
8125
8177
  sizes: {
8126
8178
  sm: { padding: "0.25rem 0" },
8127
8179
  md: { padding: "0.5rem 0" },
@@ -8145,11 +8197,6 @@ const editorialLink = defineButtonPersonality({
8145
8197
  background: { type: "transparent" },
8146
8198
  textColorToken: "accent",
8147
8199
  borderRadius: "rounded-none",
8148
- shadow: {
8149
- elevation: "none",
8150
- softness: null,
8151
- position: "bottom"
8152
- },
8153
8200
  sizes: {
8154
8201
  sm: { padding: "0.25rem 0" },
8155
8202
  md: { padding: "0.5rem 0" },
@@ -8173,11 +8220,6 @@ const editorialLink = defineButtonPersonality({
8173
8220
  background: { type: "transparent" },
8174
8221
  textColorToken: "mutedText",
8175
8222
  borderRadius: "rounded-none",
8176
- shadow: {
8177
- elevation: "none",
8178
- softness: null,
8179
- position: "bottom"
8180
- },
8181
8223
  sizes: {
8182
8224
  sm: { padding: "0.25rem 0" },
8183
8225
  md: { padding: "0.5rem 0" },
@@ -8193,6 +8235,120 @@ const editorialLink = defineButtonPersonality({
8193
8235
  }
8194
8236
  });
8195
8237
  //#endregion
8238
+ //#region ../theme-core/src/buttons/personalities/flat-ink.ts
8239
+ /**
8240
+ * Flat Ink — a solid ink primary, a hairline ghost secondary, and a single
8241
+ * amber accent climax, all completely flat (no drop shadow) with a modest
8242
+ * radius. Reads as grounded, editorial and clinician-precise: the Fulcrum
8243
+ * physiotherapy voice. The primary shifts to the secondary (moss) on hover and
8244
+ * every variant lifts 2px; the amber accent is meant to be used sparingly as
8245
+ * the page's one conversion climax.
8246
+ */
8247
+ const flatInk = defineButtonPersonality({
8248
+ id: "flat-ink",
8249
+ name: "Flat Ink",
8250
+ description: "Flat solid-ink primary, hairline ghost secondary, and a single amber accent climax — modest radius, no shadow.",
8251
+ tags: {
8252
+ tone: "classic",
8253
+ energy: "calm",
8254
+ motion: "subtle",
8255
+ era: "editorial"
8256
+ },
8257
+ buttonSystem: {
8258
+ global: {
8259
+ cornerStyle: "rounded",
8260
+ textTransform: "none",
8261
+ fontWeight: 600,
8262
+ borderWidth: 1,
8263
+ typography: "body",
8264
+ letterSpacing: "tight",
8265
+ paddingPreset: "default",
8266
+ hoverTransform: "lift",
8267
+ hoverColor: "none"
8268
+ },
8269
+ sizes: {
8270
+ sm: {
8271
+ padding: "0.625rem 1.125rem",
8272
+ fontSize: "text-sm"
8273
+ },
8274
+ md: { padding: "0.8125rem 1.375rem" },
8275
+ lg: {
8276
+ padding: "0.9375rem 1.625rem",
8277
+ fontSize: "text-lg"
8278
+ },
8279
+ xl: {
8280
+ padding: "1.0625rem 2rem",
8281
+ fontSize: "text-xl"
8282
+ }
8283
+ },
8284
+ variants: [
8285
+ {
8286
+ id: "primary",
8287
+ name: "Primary",
8288
+ enabled: true,
8289
+ priority: 1,
8290
+ background: {
8291
+ type: "solid",
8292
+ colorToken: "primary"
8293
+ },
8294
+ textColorToken: "primaryForeground",
8295
+ borderRadius: "rounded-lg",
8296
+ affordance: {
8297
+ iconId: "ArrowRight",
8298
+ colorToken: "accent"
8299
+ },
8300
+ effects: { hover: [{
8301
+ effectId: "lift",
8302
+ options: { translateY: "-2px" }
8303
+ }, {
8304
+ effectId: "background-on-hover",
8305
+ options: { colorToken: "secondary" }
8306
+ }] }
8307
+ },
8308
+ {
8309
+ id: "secondary",
8310
+ name: "Secondary",
8311
+ enabled: true,
8312
+ priority: 2,
8313
+ background: { type: "transparent" },
8314
+ textColorToken: "primary",
8315
+ borderRadius: "rounded-lg",
8316
+ border: {
8317
+ widthClass: "border",
8318
+ colorToken: "border"
8319
+ },
8320
+ effects: { hover: [{
8321
+ effectId: "lift",
8322
+ options: { translateY: "-2px" }
8323
+ }, {
8324
+ effectId: "background-on-hover",
8325
+ options: { colorToken: "surfaceAlt" }
8326
+ }] }
8327
+ },
8328
+ {
8329
+ id: "accent",
8330
+ name: "Accent",
8331
+ enabled: true,
8332
+ priority: 3,
8333
+ background: {
8334
+ type: "solid",
8335
+ colorToken: "accent"
8336
+ },
8337
+ textColorToken: "accentForeground",
8338
+ borderRadius: "rounded-lg",
8339
+ affordance: {
8340
+ iconId: "ArrowRight",
8341
+ colorToken: "accentForeground"
8342
+ },
8343
+ effects: { hover: [{
8344
+ effectId: "lift",
8345
+ options: { translateY: "-2px" }
8346
+ }] }
8347
+ }
8348
+ ]
8349
+ }
8350
+ });
8351
+ //#endregion
8196
8352
  //#region ../theme-core/src/buttons/personalities/ink-stamp.ts
8197
8353
  /**
8198
8354
  * Ink Stamp — solid earthy fills with a bordered, hand-stamped block-print
@@ -8211,7 +8367,6 @@ const inkStamp = defineButtonPersonality({
8211
8367
  buttonSystem: {
8212
8368
  global: {
8213
8369
  cornerStyle: "rounded",
8214
- shadow: "none",
8215
8370
  textTransform: "uppercase",
8216
8371
  fontWeight: 600,
8217
8372
  borderWidth: 1,
@@ -8446,7 +8601,6 @@ const ornateRitual = defineButtonPersonality({
8446
8601
  buttonSystem: {
8447
8602
  global: {
8448
8603
  cornerStyle: "rounded",
8449
- shadow: "none",
8450
8604
  textTransform: "uppercase",
8451
8605
  fontWeight: 600,
8452
8606
  borderWidth: 1,
@@ -8488,11 +8642,6 @@ const ornateRitual = defineButtonPersonality({
8488
8642
  widthClass: "border",
8489
8643
  colorToken: "primary"
8490
8644
  },
8491
- shadow: {
8492
- elevation: "none",
8493
- softness: null,
8494
- position: "bottom"
8495
- },
8496
8645
  effects: {
8497
8646
  hover: [{
8498
8647
  effectId: "background-on-hover",
@@ -8519,11 +8668,6 @@ const ornateRitual = defineButtonPersonality({
8519
8668
  widthClass: "border",
8520
8669
  colorToken: "primary"
8521
8670
  },
8522
- shadow: {
8523
- elevation: "none",
8524
- softness: null,
8525
- position: "bottom"
8526
- },
8527
8671
  effects: { hover: [{
8528
8672
  effectId: "background-on-hover",
8529
8673
  options: { colorToken: "surface" }
@@ -8541,11 +8685,6 @@ const ornateRitual = defineButtonPersonality({
8541
8685
  widthClass: "border",
8542
8686
  colorToken: "primary"
8543
8687
  },
8544
- shadow: {
8545
- elevation: "none",
8546
- softness: null,
8547
- position: "bottom"
8548
- },
8549
8688
  effects: { hover: [{
8550
8689
  effectId: "background-on-hover",
8551
8690
  options: { colorToken: "muted" }
@@ -8608,7 +8747,6 @@ const pebble = defineButtonPersonality({
8608
8747
  buttonSystem: {
8609
8748
  global: {
8610
8749
  cornerStyle: "pill",
8611
- shadow: "none",
8612
8750
  textTransform: "none",
8613
8751
  fontWeight: 500,
8614
8752
  borderWidth: 2,
@@ -8716,6 +8854,117 @@ const pebble = defineButtonPersonality({
8716
8854
  }
8717
8855
  });
8718
8856
  //#endregion
8857
+ //#region ../theme-core/src/buttons/personalities/quiet-arrow.ts
8858
+ /**
8859
+ * Quiet Arrow — wide, flat editorial buttons for grounded service businesses.
8860
+ * Primary and secondary keep stable semantic colours; surrounding surfaces are
8861
+ * responsible for contrast rather than reversing the button roles.
8862
+ */
8863
+ const quietArrow = defineButtonPersonality({
8864
+ id: "quiet-arrow",
8865
+ name: "Quiet Arrow",
8866
+ description: "Wide, flat arrow buttons with a solid primary and a primary-colour outlined secondary.",
8867
+ tags: {
8868
+ tone: "classic",
8869
+ energy: "calm",
8870
+ motion: "subtle",
8871
+ era: "editorial"
8872
+ },
8873
+ buttonSystem: {
8874
+ global: {
8875
+ cornerStyle: "rounded",
8876
+ textTransform: "uppercase",
8877
+ fontWeight: 500,
8878
+ borderWidth: 1,
8879
+ typography: "body",
8880
+ fontSize: "text-sm",
8881
+ letterSpacing: "loose",
8882
+ hoverTransform: "none",
8883
+ hoverColor: "none"
8884
+ },
8885
+ sizes: {
8886
+ sm: {
8887
+ padding: "0.625rem 1.25rem",
8888
+ fontSize: "text-xs"
8889
+ },
8890
+ md: {
8891
+ padding: "0.8125rem 1.75rem",
8892
+ fontSize: "text-sm"
8893
+ },
8894
+ lg: {
8895
+ padding: "0.9375rem 2.125rem",
8896
+ fontSize: "text-sm"
8897
+ },
8898
+ xl: {
8899
+ padding: "1.0625rem 2.5rem",
8900
+ fontSize: "text-base"
8901
+ }
8902
+ },
8903
+ variants: [
8904
+ {
8905
+ id: "primary",
8906
+ name: "Primary",
8907
+ enabled: true,
8908
+ priority: 1,
8909
+ background: {
8910
+ type: "solid",
8911
+ colorToken: "primary"
8912
+ },
8913
+ textColorToken: "primaryForeground",
8914
+ borderRadius: "rounded-xl",
8915
+ affordance: { iconId: "ArrowRight" },
8916
+ effects: { hover: [{
8917
+ effectId: "background-on-hover-alpha",
8918
+ options: {
8919
+ colorToken: "primary",
8920
+ opacity: 90
8921
+ }
8922
+ }] }
8923
+ },
8924
+ {
8925
+ id: "secondary",
8926
+ name: "Secondary",
8927
+ enabled: true,
8928
+ priority: 2,
8929
+ background: { type: "transparent" },
8930
+ textColorToken: "primary",
8931
+ borderRadius: "rounded-xl",
8932
+ border: {
8933
+ widthClass: "border",
8934
+ colorToken: "primary"
8935
+ },
8936
+ affordance: { iconId: "ArrowRight" },
8937
+ effects: { hover: [{
8938
+ effectId: "background-on-hover",
8939
+ options: { colorToken: "surfaceAlt" }
8940
+ }] }
8941
+ },
8942
+ {
8943
+ id: "outline",
8944
+ name: "Outline",
8945
+ enabled: true,
8946
+ priority: 3,
8947
+ background: { type: "transparent" },
8948
+ textColorToken: "primary",
8949
+ borderRadius: "rounded-xl",
8950
+ border: {
8951
+ widthClass: "border",
8952
+ colorToken: "primary"
8953
+ }
8954
+ },
8955
+ {
8956
+ id: "ghost",
8957
+ name: "Ghost",
8958
+ enabled: true,
8959
+ priority: 3,
8960
+ background: { type: "transparent" },
8961
+ textColorToken: "primary",
8962
+ borderRadius: "rounded-xl"
8963
+ }
8964
+ ]
8965
+ }
8966
+ });
8967
+ //#endregion
8719
8968
  //#region ../theme-core/src/buttons/personalities/showtime-pill.ts
8720
8969
  /**
8721
8970
  * Showtime Pill — bold, spacious, fully rounded buttons with playful pop
@@ -8963,10 +9212,12 @@ const buttonPersonalities = [
8963
9212
  editorialLink,
8964
9213
  pebble,
8965
9214
  inkStamp,
9215
+ flatInk,
8966
9216
  brushedWash,
8967
9217
  showtimePill,
8968
9218
  joyStamp,
8969
- ornateRitual
9219
+ ornateRitual,
9220
+ quietArrow
8970
9221
  ];
8971
9222
  new Map(buttonPersonalities.map((p) => [p.id, p]));
8972
9223
  //#endregion
@@ -10487,11 +10738,11 @@ const BookingFormClient$1 = ({ siteId: siteIdProp, render }) => {
10487
10738
  };
10488
10739
  //#endregion
10489
10740
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
10490
- function isRecord$3(value) {
10741
+ function isRecord$2(value) {
10491
10742
  return typeof value === "object" && value !== null && !Array.isArray(value);
10492
10743
  }
10493
10744
  function isRuntimeEventDestination(value) {
10494
- if (!isRecord$3(value) || typeof value.kind !== "string") return false;
10745
+ if (!isRecord$2(value) || typeof value.kind !== "string") return false;
10495
10746
  if (value.kind === "native") return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
10496
10747
  return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
10497
10748
  }
@@ -10554,15 +10805,15 @@ function resolveRuntimeEventPricing(event) {
10554
10805
  function readCurrency(value) {
10555
10806
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY$1;
10556
10807
  }
10557
- function isRecord$2(value) {
10808
+ function isRecord$1(value) {
10558
10809
  return typeof value === "object" && value !== null && !Array.isArray(value);
10559
10810
  }
10560
10811
  function isPublicEventPricing(value) {
10561
- if (!isRecord$2(value) || typeof value.kind !== "string") return false;
10812
+ if (!isRecord$1(value) || typeof value.kind !== "string") return false;
10562
10813
  return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
10563
10814
  }
10564
10815
  function isPublicEventTicketType(value) {
10565
- return isRecord$2(value) && typeof value.id === "string";
10816
+ return isRecord$1(value) && typeof value.id === "string";
10566
10817
  }
10567
10818
  function readTicketTypePriceDisplay(value, currency) {
10568
10819
  const display = readLegacyPriceDisplay(value, currency);
@@ -10572,7 +10823,7 @@ function readTicketTypePriceDisplay(value, currency) {
10572
10823
  } : display;
10573
10824
  }
10574
10825
  function readLegacyPriceDisplay(value, currency) {
10575
- if (!isRecord$2(value) || typeof value.kind !== "string") return {
10826
+ if (!isRecord$1(value) || typeof value.kind !== "string") return {
10576
10827
  kind: "unavailable",
10577
10828
  currency
10578
10829
  };
@@ -10624,7 +10875,7 @@ function readLegacyPriceDisplay(value, currency) {
10624
10875
  kind: "unavailable",
10625
10876
  currency: displayCurrency
10626
10877
  };
10627
- case "course": return isRecord$2(value.display) ? {
10878
+ case "course": return isRecord$1(value.display) ? {
10628
10879
  kind: "course",
10629
10880
  display: readCoursePriceDisplay(value.display, displayCurrency)
10630
10881
  } : {
@@ -11944,6 +12195,7 @@ const coursePricingSchema = z$1.object({
11944
12195
  */
11945
12196
  const publicCourseSchema = z$1.object({
11946
12197
  id: z$1.string(),
12198
+ seriesId: z$1.string(),
11947
12199
  title: z$1.string(),
11948
12200
  slug: z$1.string(),
11949
12201
  description: z$1.unknown().nullable(),
@@ -11978,6 +12230,19 @@ const eventPresetSchema = z$1.enum([
11978
12230
  "performance"
11979
12231
  ]);
11980
12232
  const eventScheduleScopeSchema = z$1.enum(["recurring", "oneOff"]);
12233
+ const publicEventRecurrenceSchema = z$1.discriminatedUnion("kind", [z$1.object({
12234
+ kind: z$1.literal("weekly"),
12235
+ interval: z$1.number().int().positive(),
12236
+ weekdays: z$1.array(z$1.enum([
12237
+ "MO",
12238
+ "TU",
12239
+ "WE",
12240
+ "TH",
12241
+ "FR",
12242
+ "SA",
12243
+ "SU"
12244
+ ]))
12245
+ }).readonly(), z$1.object({ kind: z$1.literal("other") }).readonly()]);
11981
12246
  const eventDestinationModeSchema = z$1.enum(["cms-managed", "system-managed"]);
11982
12247
  const publicEventDestinationSchema = z$1.discriminatedUnion("kind", [z$1.object({
11983
12248
  kind: z$1.literal("native"),
@@ -12230,6 +12495,7 @@ const publicEventSchema = z$1.object({
12230
12495
  eventPreset: eventPresetSchema.optional(),
12231
12496
  eventDestinationMode: eventDestinationModeSchema.optional(),
12232
12497
  scheduleScope: eventScheduleScopeSchema.optional(),
12498
+ recurrence: publicEventRecurrenceSchema.optional(),
12233
12499
  id: z$1.string(),
12234
12500
  occurrenceId: z$1.string(),
12235
12501
  seriesId: z$1.string(),
@@ -12301,44 +12567,33 @@ function isEventContentType(slug) {
12301
12567
  if (!slug) return false;
12302
12568
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
12303
12569
  }
12304
- z$1.discriminatedUnion("kind", [z$1.object({
12305
- kind: z$1.literal("eventSeries"),
12306
- eventSeriesId: z$1.string().transform((value, ctx) => {
12307
- const parsed = parseEventSeriesId(value);
12308
- if (!parsed.ok) {
12309
- ctx.addIssue({
12310
- code: z$1.ZodIssueCode.custom,
12311
- message: `Invalid event series id (${parsed.error.kind})`
12312
- });
12313
- return z$1.NEVER;
12314
- }
12315
- return parsed.value;
12316
- })
12317
- }), z$1.object({
12570
+ const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
12318
12571
  kind: z$1.literal("unsupported"),
12319
- reason: z$1.enum(["unsupportedSubject", "invalidEventSeriesId"])
12320
- })]);
12321
- function parseEventRegistrationPageSurfaceSubject(value) {
12322
- if (!isRecord$1(value)) return err$1({ kind: "notPageSurfaceSubject" });
12323
- if (value.kind !== "eventSeries") return err$1({
12324
- kind: "unsupportedSubject",
12325
- subjectKind: value.kind
12326
- });
12327
- const parsedSeriesId = parseEventSeriesId(value.eventSeriesId);
12328
- if (!parsedSeriesId.ok) return err$1({
12329
- kind: "invalidEventSeriesId",
12330
- error: parsedSeriesId.error
12331
- });
12332
- return ok({
12333
- kind: "eventSeries",
12334
- eventSeriesId: parsedSeriesId.value
12572
+ reason: z$1.enum([
12573
+ "unsupportedSubject",
12574
+ "invalidEventSeriesId",
12575
+ "invalidEventOfferingId"
12576
+ ])
12577
+ });
12578
+ z$1.unknown().transform((value, ctx) => {
12579
+ const unsupported = unsupportedEventRegistrationPageSurfaceSubjectSchema.safeParse(value);
12580
+ if (unsupported.success) return unsupported.data;
12581
+ const parsed = parseEventPageSurfaceSubject(value);
12582
+ if (parsed.ok) return parsed.value;
12583
+ ctx.addIssue({
12584
+ code: z$1.ZodIssueCode.custom,
12585
+ message: `Invalid event page-surface subject (${parsed.error.kind})`
12335
12586
  });
12587
+ return z$1.NEVER;
12588
+ });
12589
+ function parseEventRegistrationPageSurfaceSubject(value) {
12590
+ return parseEventPageSurfaceSubject(value);
12336
12591
  }
12337
12592
  function normalizeEventRegistrationPageSurfaceSubject(value) {
12338
12593
  const parsed = parseEventRegistrationPageSurfaceSubject(value);
12339
12594
  if (parsed.ok) return parsed.value;
12340
12595
  switch (parsed.error.kind) {
12341
- case "notPageSurfaceSubject": return null;
12596
+ case "notObject": return null;
12342
12597
  case "unsupportedSubject": return {
12343
12598
  kind: "unsupported",
12344
12599
  reason: "unsupportedSubject"
@@ -12347,6 +12602,10 @@ function normalizeEventRegistrationPageSurfaceSubject(value) {
12347
12602
  kind: "unsupported",
12348
12603
  reason: "invalidEventSeriesId"
12349
12604
  };
12605
+ case "invalidEventOfferingId": return {
12606
+ kind: "unsupported",
12607
+ reason: "invalidEventOfferingId"
12608
+ };
12350
12609
  }
12351
12610
  }
12352
12611
  function resolveEventRegistrationScope(context) {
@@ -12359,6 +12618,11 @@ function resolveEventRegistrationScope(context) {
12359
12618
  kind: "pageSurfaceSeries",
12360
12619
  seriesId: context.subject.eventSeriesId
12361
12620
  };
12621
+ if (context.subject?.kind === "eventOffering") return {
12622
+ kind: "pageSurfaceOffering",
12623
+ offeringId: context.subject.eventOfferingId,
12624
+ seriesIds: context.subject.availableEventSeriesIds
12625
+ };
12362
12626
  if (context.subject?.kind === "unsupported") return {
12363
12627
  kind: "unsupportedPageSurfaceSubject",
12364
12628
  reason: context.subject.reason
@@ -12375,6 +12639,10 @@ function applyEventRegistrationScope(events, scope) {
12375
12639
  switch (scope.kind) {
12376
12640
  case "occurrenceSeries":
12377
12641
  case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
12642
+ case "pageSurfaceOffering": {
12643
+ const seriesIds = new Set(scope.seriesIds);
12644
+ return events.filter((event) => seriesIds.has(event.seriesId));
12645
+ }
12378
12646
  case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
12379
12647
  case "unsupportedPageSurfaceSubject": return [];
12380
12648
  case "unscoped": return [...events];
@@ -12383,9 +12651,6 @@ function applyEventRegistrationScope(events, scope) {
12383
12651
  function resolveEventRegistrationScopedEvents(events, context) {
12384
12652
  return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
12385
12653
  }
12386
- function isRecord$1(value) {
12387
- return typeof value === "object" && value !== null && !Array.isArray(value);
12388
- }
12389
12654
  //#endregion
12390
12655
  //#region ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts
12391
12656
  function createEventRegistrationBlockApiConfig(input) {
@@ -12804,7 +13069,7 @@ function useEventRegistrationWizardWithDeps(options, deps) {
12804
13069
  registrationEvents,
12805
13070
  options.occurrenceContext?.seriesId,
12806
13071
  options.subject?.kind,
12807
- options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.reason,
13072
+ options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.kind === "eventOffering" ? `${options.subject.eventOfferingId}:${options.subject.availableEventSeriesIds.join(",")}` : options.subject?.reason,
12808
13073
  options.contentEntry?.slug,
12809
13074
  options.contentEntry?.contentTypeSlug
12810
13075
  ]);