@riverbankcms/sdk 0.104.3 → 0.108.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 (302) hide show
  1. package/README.md +84 -51
  2. package/dist/{PreviewEditorSidebar-CBMhU9p_.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +1850 -1183
  3. package/dist/{PreviewEditorUI-C5KEw4M8.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
  4. package/dist/{PreviewQueryProvider-CStABBUh.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Iq12HjL7.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +2562 -457
  6. package/dist/{SiteChromeCustomizeContext-Cx0NMdyv.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +7689 -3196
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +36493 -1395
  8. package/dist/_dts/api/src/blocks.d.ts +41 -7
  9. package/dist/_dts/api/src/bookingConfig.d.ts +2 -0
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +5 -1
  11. package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
  12. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +25 -16
  14. package/dist/_dts/api/src/courses.d.ts +68 -10
  15. package/dist/_dts/api/src/endpoints.d.ts +128 -0
  16. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  17. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  18. package/dist/_dts/api/src/index.d.ts +127 -124
  19. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  20. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  21. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +9 -0
  22. package/dist/_dts/api/src/sdkContracts.d.ts +178 -6
  23. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  24. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
  25. package/dist/_dts/api/src/siteOperations.d.ts +1 -0
  26. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
  27. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +72 -47
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +36 -4
  29. package/dist/_dts/blocks/src/definitions.d.ts +1 -1
  30. package/dist/_dts/blocks/src/portal/types.d.ts +25 -7
  31. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  32. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  33. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +2 -2
  34. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -0
  35. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +2 -0
  36. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +4 -0
  37. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule-projection.d.ts +52 -0
  38. package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +22 -0
  39. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +45 -0
  40. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +10 -0
  41. package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -1
  42. package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
  43. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -0
  44. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +8 -2
  45. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +8 -8
  46. package/dist/_dts/blocks/src/system/blocks/offerings-preview/model.d.ts +24 -24
  47. package/dist/_dts/blocks/src/system/blocks/offerings-preview/scheduleSummary.d.ts +29 -0
  48. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -1
  49. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  50. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  51. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  52. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +2 -5
  54. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/designCapabilities.d.ts +1 -0
  56. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +2 -2
  57. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  58. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  59. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  60. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
  61. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  62. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  63. package/dist/_dts/blocks/src/system/node/fragments/styledCard.d.ts +3 -0
  64. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  65. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  66. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  67. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
  68. package/dist/_dts/blocks/src/system/runtime/blockComposition.d.ts +2 -0
  69. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +90 -6
  70. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +45 -3
  71. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/commerce/shared/display.d.ts +2 -2
  73. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/logic.d.ts +2 -1
  74. package/dist/_dts/blocks/src/system/runtime/nodes/course-details/view.d.ts +1 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/course-details.server.d.ts +2 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/course-page-surface-scope.d.ts +17 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +3 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +5 -0
  79. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.server.d.ts +1 -1
  80. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventScope.d.ts +9 -18
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +106 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/RecurringSchedule.d.ts +11 -0
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +7 -3
  84. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +3 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +11 -1
  86. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  87. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +6 -6
  89. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  90. package/dist/_dts/blocks/src/system/runtime/nodes/shop.interactive.d.ts +11 -5
  91. package/dist/_dts/blocks/src/system/runtime/nodes/shop.types.d.ts +2 -1
  92. package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +7 -0
  93. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  94. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  95. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  96. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  97. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  98. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  99. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  100. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  101. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  102. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  103. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  104. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  105. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  106. package/dist/_dts/core/src/branded.d.ts +47 -0
  107. package/dist/_dts/core/src/dated-offering-settlement.d.ts +47 -0
  108. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  109. package/dist/_dts/core/src/event-page-surface-subject.d.ts +44 -0
  110. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  111. package/dist/_dts/core/src/index.d.ts +51 -47
  112. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  113. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +4398 -2859
  114. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  115. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  116. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  117. package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +1 -1
  118. package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +4 -1
  119. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  120. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  121. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  122. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  123. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  124. package/dist/_dts/media-core/src/index.d.ts +2 -1
  125. package/dist/_dts/media-core/src/storagePathDomain.d.ts +47 -0
  126. package/dist/_dts/media-core/src/url.d.ts +1 -21
  127. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  128. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +4 -2
  129. package/dist/_dts/preview-next/src/client/blocks/previewProjection/runtimeContentDecoration.d.ts +2 -1
  130. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -1
  131. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  132. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +4 -9
  133. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  134. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +8 -11
  135. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +4 -9
  136. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +2 -6
  137. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +5 -9
  138. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +81 -43
  139. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.typography.d.ts +61 -0
  140. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  141. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +7 -17
  142. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +15 -8
  143. package/dist/_dts/preview-next/src/client/preview/typographyFontCatalog.d.ts +57 -0
  144. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -1
  145. package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +4 -7
  146. package/dist/_dts/sdk/src/cli/commands/style.d.ts +24 -10
  147. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  148. package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +3 -3
  149. package/dist/_dts/sdk/src/cli/sync/media.d.ts +16 -2
  150. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  151. package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
  152. package/dist/_dts/sdk/src/client/management/types.d.ts +147 -24
  153. package/dist/_dts/sdk/src/client/types.d.ts +2 -0
  154. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  155. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  156. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  157. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  158. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  159. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +23 -3
  160. package/dist/_dts/sdk/src/data/dataLoaderContext.d.ts +17 -0
  161. package/dist/_dts/sdk/src/data/dataLoaderValue.d.ts +36 -0
  162. package/dist/_dts/sdk/src/data/defineOwnDataProperty.d.ts +2 -0
  163. package/dist/_dts/sdk/src/data/executeCodeLoaders.d.ts +36 -40
  164. package/dist/_dts/sdk/src/data/index.d.ts +3 -3
  165. package/dist/_dts/sdk/src/data/resolveBlockData.d.ts +54 -0
  166. package/dist/_dts/sdk/src/data/types.d.ts +43 -78
  167. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  168. package/dist/_dts/sdk/src/next/index.d.ts +1 -0
  169. package/dist/_dts/sdk/src/next/redirect-destination.d.ts +1 -1
  170. package/dist/_dts/sdk/src/next/resolveTheme.d.ts +2 -1
  171. package/dist/_dts/sdk/src/next/types.d.ts +10 -1
  172. package/dist/_dts/sdk/src/public-api/contracts.d.ts +6 -10
  173. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  174. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +10 -5
  175. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +6 -10
  176. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  177. package/dist/_dts/sdk/src/server.d.ts +4 -3
  178. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  179. package/dist/_dts/sdk/src/version.d.ts +1 -1
  180. package/dist/_dts/site-commands/src/capabilityGaps.d.ts +2 -2
  181. package/dist/_dts/site-commands/src/commands.d.ts +934 -40
  182. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  183. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -1
  184. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +22 -0
  185. package/dist/_dts/theme-core/src/buttons/personalities/quiet-arrow.d.ts +17 -0
  186. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  187. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +3 -3
  188. package/dist/_dts/theme-core/src/buttons/types.d.ts +12 -8
  189. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
  190. package/dist/_dts/theme-core/src/data.d.ts +12 -0
  191. package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -1
  192. package/dist/_dts/theme-core/src/fonts/types.d.ts +6 -0
  193. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  194. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  195. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  196. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +72 -54
  197. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  198. package/dist/_dts/theme-core/src/palette/colors.d.ts +12 -0
  199. package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +10 -5
  200. package/dist/_dts/theme-core/src/palette/curated/high-contrast.d.ts +6 -3
  201. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +31 -236
  202. package/dist/_dts/theme-core/src/palette/curated/soft-natural.d.ts +8 -4
  203. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +14 -12
  204. package/dist/_dts/theme-core/src/palette/curated/warm-dark.d.ts +4 -2
  205. package/dist/_dts/theme-core/src/palette/curated/warm-neutral.d.ts +8 -4
  206. package/dist/_dts/theme-core/src/palette/editorState.d.ts +33 -3
  207. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -4
  208. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +12 -6
  209. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +20 -72
  210. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +29 -4
  211. package/dist/_dts/theme-core/src/palette/selection.d.ts +6 -4
  212. package/dist/_dts/theme-core/src/schema.d.ts +1307 -38
  213. package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +218 -158
  214. package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -6
  215. package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +218 -158
  216. package/dist/_dts/theme-core/src/site-styles/compositionBudget.d.ts +1 -0
  217. package/dist/_dts/theme-core/src/site-styles/contentTemplateRuntimeCompiler.d.ts +2 -1
  218. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +161 -51
  219. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +6 -0
  220. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  221. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  222. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -1
  223. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +24 -1
  224. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +14 -48
  225. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -23
  226. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  227. package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +1 -2
  228. package/dist/_dts/theme-core/src/site-styles/siteStyleTypography.d.ts +456 -0
  229. package/dist/_dts/theme-core/src/site-styles/types.d.ts +52 -3
  230. package/dist/cli/index.mjs +4118 -2278
  231. package/dist/client/{DiscountCodeDisclosure-BXM73_E5.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
  232. package/dist/client/{EventCombined.client-DT5elP7j.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
  233. package/dist/client/{EventListing.client-pTYGfV9C.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
  234. package/dist/client/{LeafletStaticMap-dQrhlUe3.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
  235. package/dist/client/{MagicLinkForm-u6Dul4j5.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
  236. package/dist/client/{StepIndicator-nWqineJ2.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
  237. package/dist/client/{accordion-CSJcTUyH.mjs → accordion-BPy-AJ4_.mjs} +1 -1
  238. package/dist/client/{bookingForm-C73wOuVa.mjs → bookingForm-BL4PGZds.mjs} +7 -7
  239. package/dist/client/bookings.mjs +382 -204
  240. package/dist/client/{buttons-DfYyqt8C.mjs → buttons-EBjyslaX.mjs} +265 -152
  241. package/dist/client/{carousel-fMBb0JSc.mjs → carousel-C2b7Cn9-.mjs} +1 -1
  242. package/dist/client/{cart-BtaCwT3S.mjs → cart-BQcbXIVD.mjs} +3 -3
  243. package/dist/client/{checkout-DkTwZSnh.mjs → checkout-DEmpGRJu.mjs} +3 -3
  244. package/dist/client/client.mjs +5019 -1886
  245. package/dist/client/{colorStyles-Wyl6JujD.mjs → colorStyles-jZS6KfkP.mjs} +1 -1
  246. package/dist/client/{colorTokenParts-dT8MISgJ.mjs → colorTokenParts-CMugwvX_.mjs} +3 -1
  247. package/dist/client/{courseRegistration-DnLmapJu.mjs → courseRegistration-BqRZPmsq.mjs} +56 -21
  248. package/dist/client/{eventCalendar-BvLOc9KY.mjs → eventCalendar-B8N_tSl5.mjs} +29 -21
  249. package/dist/client/{eventCombined-kShgJPQr.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
  250. package/dist/client/{eventDetails-C5NTM0Vo.mjs → eventDetails-M-VCxA-r.mjs} +4 -4
  251. package/dist/client/{eventListing-B82ZdKP6.mjs → eventListing-DR19hqYi.mjs} +2 -2
  252. package/dist/client/{eventRegistration-qJVFqBWo.mjs → eventRegistration-BR02a0k3.mjs} +8 -8
  253. package/dist/client/{form-BvAcKiuu.mjs → form-LY2xIbwg.mjs} +2 -2
  254. package/dist/client/{headerSection-NvAiEHAg.mjs → headerSection-CYwwXJfh.mjs} +3 -3
  255. package/dist/client/hooks.mjs +3335 -2210
  256. package/dist/client/{locationMap-D0j52xfI.mjs → locationMap-DWnBXrFq.mjs} +3 -3
  257. package/dist/client/{media-BCW_g2cQ.mjs → media-DHtSxS5V.mjs} +61 -56
  258. package/dist/client/{newsletterForm-B8_i93qH.mjs → newsletterForm-D9s-fQ2P.mjs} +3 -3
  259. package/dist/client/{pricing-DIYnyHOk.mjs → pricing-DDq80oYc.mjs} +1 -1
  260. package/dist/client/{productDetail-w0eAHkuQ.mjs → productDetail-B0SbWd45.mjs} +3 -3
  261. package/dist/client/{productList-Vsguq5Xt.mjs → productList-PwYlZn0y.mjs} +3 -3
  262. package/dist/client/{propsDecoder-CD2pJ1WB.mjs → propsDecoder-BRWBiH7i.mjs} +225 -68
  263. package/dist/client/rendering/client.mjs +2266 -1267
  264. package/dist/client/rendering/islands.mjs +20 -20
  265. package/dist/client/rendering.mjs +5364 -1979
  266. package/dist/client/{shop-Dgxs-Q8F.mjs → shop-CMwZPYME.mjs} +8 -8
  267. package/dist/client/{shop-commerce-DJAhsTaT.mjs → shop-commerce-BuxsFate.mjs} +6 -6
  268. package/dist/client/{shop-commerce-store-CfCXltXW.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
  269. package/dist/client/{shopShared-CmDcPXUt.mjs → shopShared-D2naaOes.mjs} +3 -3
  270. package/dist/client/{useDiscountCodeUi-CirrT2bM.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
  271. package/dist/client/{useEventFilters-CNZxlCcO.mjs → useEventFilters-igGiK1re.mjs} +6 -6
  272. package/dist/client/{usePolling-Baks_iBI.mjs → usePolling-CI7MbsFB.mjs} +2 -2
  273. package/dist/preview-next/before-render.mjs +218 -1
  274. package/dist/preview-next/client/runtime.mjs +4 -4
  275. package/dist/preview-next/middleware.mjs +218 -1
  276. package/dist/{previewAuthStore-CfquDtTh.mjs → previewAuthStore-a_cBD28m.mjs} +218 -1
  277. package/dist/{sdk-runtime-BfNiFeNJ.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
  278. package/dist/{separator-BhAR_Xmf.mjs → separator-5ahRBC85.mjs} +1 -1
  279. package/dist/server/components.mjs +5218 -2529
  280. package/dist/server/config-validation.mjs +3112 -2210
  281. package/dist/server/config.mjs +3112 -2211
  282. package/dist/server/data.mjs +3758 -2277
  283. package/dist/server/index.mjs +224 -4
  284. package/dist/server/navigation.mjs +9 -3
  285. package/dist/server/next/middleware.mjs +1 -1
  286. package/dist/server/next.mjs +6468 -2749
  287. package/dist/server/page-converter.mjs +3524 -2635
  288. package/dist/server/prebuild.mjs +1 -1
  289. package/dist/server/rendering/server.mjs +5392 -2488
  290. package/dist/server/rendering.mjs +6241 -2851
  291. package/dist/server/routing.mjs +3414 -1826
  292. package/dist/server/server.mjs +4174 -2354
  293. package/dist/server/theme-bridge.mjs +9579 -8132
  294. package/dist/server/theme.mjs +313 -154
  295. package/dist/styles/index.css +1223 -31
  296. package/package.json +1 -1
  297. package/dist/_dts/preview-next/src/client/preview/typographySelectionInput.d.ts +0 -16
  298. package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +0 -44
  299. package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +0 -55
  300. package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +0 -45
  301. package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -232
  302. package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +0 -234
@@ -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
  /**
@@ -8078,7 +8136,6 @@ const editorialLink = defineButtonPersonality({
8078
8136
  buttonSystem: {
8079
8137
  global: {
8080
8138
  cornerStyle: "square",
8081
- shadow: "none",
8082
8139
  textTransform: "none",
8083
8140
  fontWeight: 500,
8084
8141
  borderWidth: 1,
@@ -8094,11 +8151,6 @@ const editorialLink = defineButtonPersonality({
8094
8151
  background: { type: "transparent" },
8095
8152
  textColorToken: "text",
8096
8153
  borderRadius: "rounded-none",
8097
- shadow: {
8098
- elevation: "none",
8099
- softness: null,
8100
- position: "bottom"
8101
- },
8102
8154
  sizes: {
8103
8155
  sm: { padding: "0.25rem 0" },
8104
8156
  md: { padding: "0.5rem 0" },
@@ -8122,11 +8174,6 @@ const editorialLink = defineButtonPersonality({
8122
8174
  background: { type: "transparent" },
8123
8175
  textColorToken: "mutedText",
8124
8176
  borderRadius: "rounded-none",
8125
- shadow: {
8126
- elevation: "none",
8127
- softness: null,
8128
- position: "bottom"
8129
- },
8130
8177
  sizes: {
8131
8178
  sm: { padding: "0.25rem 0" },
8132
8179
  md: { padding: "0.5rem 0" },
@@ -8150,11 +8197,6 @@ const editorialLink = defineButtonPersonality({
8150
8197
  background: { type: "transparent" },
8151
8198
  textColorToken: "accent",
8152
8199
  borderRadius: "rounded-none",
8153
- shadow: {
8154
- elevation: "none",
8155
- softness: null,
8156
- position: "bottom"
8157
- },
8158
8200
  sizes: {
8159
8201
  sm: { padding: "0.25rem 0" },
8160
8202
  md: { padding: "0.5rem 0" },
@@ -8178,11 +8220,6 @@ const editorialLink = defineButtonPersonality({
8178
8220
  background: { type: "transparent" },
8179
8221
  textColorToken: "mutedText",
8180
8222
  borderRadius: "rounded-none",
8181
- shadow: {
8182
- elevation: "none",
8183
- softness: null,
8184
- position: "bottom"
8185
- },
8186
8223
  sizes: {
8187
8224
  sm: { padding: "0.25rem 0" },
8188
8225
  md: { padding: "0.5rem 0" },
@@ -8220,7 +8257,6 @@ const flatInk = defineButtonPersonality({
8220
8257
  buttonSystem: {
8221
8258
  global: {
8222
8259
  cornerStyle: "rounded",
8223
- shadow: "low",
8224
8260
  textTransform: "none",
8225
8261
  fontWeight: 600,
8226
8262
  borderWidth: 1,
@@ -8261,11 +8297,6 @@ const flatInk = defineButtonPersonality({
8261
8297
  iconId: "ArrowRight",
8262
8298
  colorToken: "accent"
8263
8299
  },
8264
- shadow: {
8265
- elevation: "none",
8266
- softness: null,
8267
- position: "bottom"
8268
- },
8269
8300
  effects: { hover: [{
8270
8301
  effectId: "lift",
8271
8302
  options: { translateY: "-2px" }
@@ -8286,11 +8317,6 @@ const flatInk = defineButtonPersonality({
8286
8317
  widthClass: "border",
8287
8318
  colorToken: "border"
8288
8319
  },
8289
- shadow: {
8290
- elevation: "none",
8291
- softness: null,
8292
- position: "bottom"
8293
- },
8294
8320
  effects: { hover: [{
8295
8321
  effectId: "lift",
8296
8322
  options: { translateY: "-2px" }
@@ -8310,11 +8336,6 @@ const flatInk = defineButtonPersonality({
8310
8336
  },
8311
8337
  textColorToken: "accentForeground",
8312
8338
  borderRadius: "rounded-lg",
8313
- shadow: {
8314
- elevation: "none",
8315
- softness: null,
8316
- position: "bottom"
8317
- },
8318
8339
  affordance: {
8319
8340
  iconId: "ArrowRight",
8320
8341
  colorToken: "accentForeground"
@@ -8346,7 +8367,6 @@ const inkStamp = defineButtonPersonality({
8346
8367
  buttonSystem: {
8347
8368
  global: {
8348
8369
  cornerStyle: "rounded",
8349
- shadow: "none",
8350
8370
  textTransform: "uppercase",
8351
8371
  fontWeight: 600,
8352
8372
  borderWidth: 1,
@@ -8581,7 +8601,6 @@ const ornateRitual = defineButtonPersonality({
8581
8601
  buttonSystem: {
8582
8602
  global: {
8583
8603
  cornerStyle: "rounded",
8584
- shadow: "none",
8585
8604
  textTransform: "uppercase",
8586
8605
  fontWeight: 600,
8587
8606
  borderWidth: 1,
@@ -8623,11 +8642,6 @@ const ornateRitual = defineButtonPersonality({
8623
8642
  widthClass: "border",
8624
8643
  colorToken: "primary"
8625
8644
  },
8626
- shadow: {
8627
- elevation: "none",
8628
- softness: null,
8629
- position: "bottom"
8630
- },
8631
8645
  effects: {
8632
8646
  hover: [{
8633
8647
  effectId: "background-on-hover",
@@ -8654,11 +8668,6 @@ const ornateRitual = defineButtonPersonality({
8654
8668
  widthClass: "border",
8655
8669
  colorToken: "primary"
8656
8670
  },
8657
- shadow: {
8658
- elevation: "none",
8659
- softness: null,
8660
- position: "bottom"
8661
- },
8662
8671
  effects: { hover: [{
8663
8672
  effectId: "background-on-hover",
8664
8673
  options: { colorToken: "surface" }
@@ -8676,11 +8685,6 @@ const ornateRitual = defineButtonPersonality({
8676
8685
  widthClass: "border",
8677
8686
  colorToken: "primary"
8678
8687
  },
8679
- shadow: {
8680
- elevation: "none",
8681
- softness: null,
8682
- position: "bottom"
8683
- },
8684
8688
  effects: { hover: [{
8685
8689
  effectId: "background-on-hover",
8686
8690
  options: { colorToken: "muted" }
@@ -8743,7 +8747,6 @@ const pebble = defineButtonPersonality({
8743
8747
  buttonSystem: {
8744
8748
  global: {
8745
8749
  cornerStyle: "pill",
8746
- shadow: "none",
8747
8750
  textTransform: "none",
8748
8751
  fontWeight: 500,
8749
8752
  borderWidth: 2,
@@ -8851,6 +8854,117 @@ const pebble = defineButtonPersonality({
8851
8854
  }
8852
8855
  });
8853
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
8854
8968
  //#region ../theme-core/src/buttons/personalities/showtime-pill.ts
8855
8969
  /**
8856
8970
  * Showtime Pill — bold, spacious, fully rounded buttons with playful pop
@@ -8993,104 +9107,153 @@ const showtimePill = defineButtonPersonality({
8993
9107
  }
8994
9108
  });
8995
9109
  //#endregion
8996
- //#region ../theme-core/src/buttons/personalities/index.ts
8997
- const buttonPersonalities = [
8998
- defineButtonPersonality({
8999
- id: "soft-pill",
9000
- name: "Soft Pill",
9001
- description: "Rounded pills with a gentle lift on hover. Quietly modern.",
9002
- tags: {
9003
- tone: "classic",
9004
- energy: "calm",
9005
- motion: "subtle",
9006
- era: "organic"
9110
+ //#region ../theme-core/src/buttons/personalities/soft-pill.ts
9111
+ /**
9112
+ * Soft Pill — rounded-full pill buttons with a hover lift. The default for
9113
+ * Calm Studio and Modern Wellness; reads as quietly modern and welcoming.
9114
+ */
9115
+ const softPill = defineButtonPersonality({
9116
+ id: "soft-pill",
9117
+ name: "Soft Pill",
9118
+ description: "Rounded pills with a gentle lift on hover. Quietly modern.",
9119
+ tags: {
9120
+ tone: "classic",
9121
+ energy: "calm",
9122
+ motion: "subtle",
9123
+ era: "organic"
9124
+ },
9125
+ buttonSystem: {
9126
+ global: {
9127
+ cornerStyle: "pill",
9128
+ shadow: "low",
9129
+ textTransform: "none",
9130
+ fontWeight: 500,
9131
+ borderWidth: 2,
9132
+ hoverTransform: "lift",
9133
+ hoverColor: "none"
9007
9134
  },
9008
- buttonSystem: {
9009
- global: {
9010
- cornerStyle: "pill",
9011
- shadow: "low",
9012
- textTransform: "none",
9013
- fontWeight: 500,
9014
- borderWidth: 2,
9015
- hoverTransform: "lift",
9016
- hoverColor: "none"
9017
- },
9018
- variants: [
9019
- {
9020
- id: "primary",
9021
- name: "Primary",
9022
- enabled: true,
9023
- priority: 1,
9024
- background: {
9025
- type: "solid",
9026
- colorToken: "primary"
9027
- },
9028
- textColorToken: "primaryForeground",
9029
- borderRadius: "rounded-full",
9030
- shadow: {
9031
- elevation: "low",
9032
- softness: "soft",
9033
- position: "bottom"
9034
- },
9035
- effects: {
9036
- hover: [{
9037
- effectId: "lift",
9038
- options: { translateY: "-1px" }
9039
- }],
9040
- active: [{
9041
- effectId: "scale-down",
9042
- options: { scale: "0.98" }
9043
- }]
9044
- }
9045
- },
9046
- {
9047
- id: "secondary",
9048
- name: "Secondary",
9049
- enabled: true,
9050
- priority: 2,
9051
- background: { type: "transparent" },
9052
- textColorToken: "primary",
9053
- borderRadius: "rounded-full",
9054
- border: {
9055
- widthClass: "border-2",
9056
- colorToken: "primary"
9057
- },
9058
- effects: { hover: [{
9059
- effectId: "background-on-hover",
9060
- options: { colorToken: "surface" }
9061
- }] }
9135
+ variants: [
9136
+ {
9137
+ id: "primary",
9138
+ name: "Primary",
9139
+ enabled: true,
9140
+ priority: 1,
9141
+ background: {
9142
+ type: "solid",
9143
+ colorToken: "primary"
9062
9144
  },
9063
- {
9064
- id: "outline",
9065
- name: "Outline",
9066
- enabled: true,
9067
- priority: 3,
9068
- background: { type: "transparent" },
9069
- textColorToken: "text",
9070
- borderRadius: "rounded-full",
9071
- border: {
9072
- widthClass: "border",
9073
- colorToken: "border"
9074
- },
9075
- effects: { hover: [{
9076
- effectId: "background-on-hover",
9077
- options: { colorToken: "surface" }
9078
- }] }
9145
+ textColorToken: "primaryForeground",
9146
+ borderRadius: "rounded-full",
9147
+ shadow: {
9148
+ elevation: "low",
9149
+ softness: "soft",
9150
+ position: "bottom"
9079
9151
  },
9080
- {
9081
- id: "ghost",
9082
- name: "Ghost",
9083
- enabled: true,
9084
- priority: 3,
9085
- background: { type: "transparent" },
9086
- textColorToken: "text",
9087
- borderRadius: "rounded-full",
9088
- effects: { hover: [{
9089
- effectId: "background-on-hover",
9090
- options: { colorToken: "surface" }
9091
- }] }
9152
+ effects: {
9153
+ hover: [{
9154
+ effectId: "lift",
9155
+ options: { translateY: "-1px" }
9156
+ }],
9157
+ active: [{
9158
+ effectId: "scale-down",
9159
+ options: { scale: "0.98" }
9160
+ }]
9092
9161
  }
9093
- ]
9162
+ },
9163
+ {
9164
+ id: "secondary",
9165
+ name: "Secondary",
9166
+ enabled: true,
9167
+ priority: 2,
9168
+ background: { type: "transparent" },
9169
+ textColorToken: "primary",
9170
+ borderRadius: "rounded-full",
9171
+ border: {
9172
+ widthClass: "border-2",
9173
+ colorToken: "primary"
9174
+ },
9175
+ effects: { hover: [{
9176
+ effectId: "background-on-hover",
9177
+ options: { colorToken: "surface" }
9178
+ }] }
9179
+ },
9180
+ {
9181
+ id: "outline",
9182
+ name: "Outline",
9183
+ enabled: true,
9184
+ priority: 3,
9185
+ background: { type: "transparent" },
9186
+ textColorToken: "text",
9187
+ borderRadius: "rounded-full",
9188
+ border: {
9189
+ widthClass: "border",
9190
+ colorToken: "border"
9191
+ },
9192
+ effects: { hover: [{
9193
+ effectId: "background-on-hover",
9194
+ options: { colorToken: "surface" }
9195
+ }] }
9196
+ },
9197
+ {
9198
+ id: "ghost",
9199
+ name: "Ghost",
9200
+ enabled: true,
9201
+ priority: 3,
9202
+ background: { type: "transparent" },
9203
+ textColorToken: "text",
9204
+ borderRadius: "rounded-full",
9205
+ effects: { hover: [{
9206
+ effectId: "background-on-hover",
9207
+ options: { colorToken: "surface" }
9208
+ }] }
9209
+ }
9210
+ ]
9211
+ }
9212
+ });
9213
+ //#endregion
9214
+ //#region ../theme-core/src/buttons/personalities/two-tone-pill.ts
9215
+ const solidSecondary = {
9216
+ id: "secondary",
9217
+ name: "Secondary",
9218
+ enabled: true,
9219
+ priority: 2,
9220
+ background: {
9221
+ type: "solid",
9222
+ colorToken: "secondary"
9223
+ },
9224
+ textColorToken: "onSecondary",
9225
+ borderRadius: "rounded-full",
9226
+ shadow: {
9227
+ elevation: "none",
9228
+ softness: null,
9229
+ position: "bottom"
9230
+ },
9231
+ effects: {
9232
+ hover: [{
9233
+ effectId: "background-on-hover-alpha",
9234
+ options: {
9235
+ colorToken: "secondary",
9236
+ opacity: 88
9237
+ }
9238
+ }],
9239
+ active: [{
9240
+ effectId: "scale-down",
9241
+ options: { scale: "0.98" }
9242
+ }]
9243
+ }
9244
+ };
9245
+ //#endregion
9246
+ //#region ../theme-core/src/buttons/personalities/index.ts
9247
+ const buttonPersonalities = [
9248
+ softPill,
9249
+ defineButtonPersonality({
9250
+ id: "two-tone-pill",
9251
+ name: "Two-tone Pill",
9252
+ description: "Rounded pills with distinct solid primary and secondary brand colours.",
9253
+ tags: softPill.tags,
9254
+ buttonSystem: {
9255
+ ...softPill.buttonSystem,
9256
+ variants: softPill.buttonSystem.variants.map((variant) => variant.id === "secondary" ? solidSecondary : variant)
9094
9257
  }
9095
9258
  }),
9096
9259
  earthPill,
@@ -9102,7 +9265,8 @@ const buttonPersonalities = [
9102
9265
  brushedWash,
9103
9266
  showtimePill,
9104
9267
  joyStamp,
9105
- ornateRitual
9268
+ ornateRitual,
9269
+ quietArrow
9106
9270
  ];
9107
9271
  new Map(buttonPersonalities.map((p) => [p.id, p]));
9108
9272
  //#endregion
@@ -10623,11 +10787,11 @@ const BookingFormClient$1 = ({ siteId: siteIdProp, render }) => {
10623
10787
  };
10624
10788
  //#endregion
10625
10789
  //#region ../blocks/src/system/runtime/nodes/events/shared/destination.ts
10626
- function isRecord$3(value) {
10790
+ function isRecord$2(value) {
10627
10791
  return typeof value === "object" && value !== null && !Array.isArray(value);
10628
10792
  }
10629
10793
  function isRuntimeEventDestination(value) {
10630
- if (!isRecord$3(value) || typeof value.kind !== "string") return false;
10794
+ if (!isRecord$2(value) || typeof value.kind !== "string") return false;
10631
10795
  if (value.kind === "native") return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
10632
10796
  return value.kind === "external" && typeof value.url === "string" && typeof value.label === "string";
10633
10797
  }
@@ -10690,15 +10854,15 @@ function resolveRuntimeEventPricing(event) {
10690
10854
  function readCurrency(value) {
10691
10855
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY$1;
10692
10856
  }
10693
- function isRecord$2(value) {
10857
+ function isRecord$1(value) {
10694
10858
  return typeof value === "object" && value !== null && !Array.isArray(value);
10695
10859
  }
10696
10860
  function isPublicEventPricing(value) {
10697
- if (!isRecord$2(value) || typeof value.kind !== "string") return false;
10861
+ if (!isRecord$1(value) || typeof value.kind !== "string") return false;
10698
10862
  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";
10699
10863
  }
10700
10864
  function isPublicEventTicketType(value) {
10701
- return isRecord$2(value) && typeof value.id === "string";
10865
+ return isRecord$1(value) && typeof value.id === "string";
10702
10866
  }
10703
10867
  function readTicketTypePriceDisplay(value, currency) {
10704
10868
  const display = readLegacyPriceDisplay(value, currency);
@@ -10708,7 +10872,7 @@ function readTicketTypePriceDisplay(value, currency) {
10708
10872
  } : display;
10709
10873
  }
10710
10874
  function readLegacyPriceDisplay(value, currency) {
10711
- if (!isRecord$2(value) || typeof value.kind !== "string") return {
10875
+ if (!isRecord$1(value) || typeof value.kind !== "string") return {
10712
10876
  kind: "unavailable",
10713
10877
  currency
10714
10878
  };
@@ -10760,7 +10924,7 @@ function readLegacyPriceDisplay(value, currency) {
10760
10924
  kind: "unavailable",
10761
10925
  currency: displayCurrency
10762
10926
  };
10763
- case "course": return isRecord$2(value.display) ? {
10927
+ case "course": return isRecord$1(value.display) ? {
10764
10928
  kind: "course",
10765
10929
  display: readCoursePriceDisplay(value.display, displayCurrency)
10766
10930
  } : {
@@ -12080,6 +12244,7 @@ const coursePricingSchema = z$1.object({
12080
12244
  */
12081
12245
  const publicCourseSchema = z$1.object({
12082
12246
  id: z$1.string(),
12247
+ seriesId: z$1.string(),
12083
12248
  title: z$1.string(),
12084
12249
  slug: z$1.string(),
12085
12250
  description: z$1.unknown().nullable(),
@@ -12114,6 +12279,19 @@ const eventPresetSchema = z$1.enum([
12114
12279
  "performance"
12115
12280
  ]);
12116
12281
  const eventScheduleScopeSchema = z$1.enum(["recurring", "oneOff"]);
12282
+ const publicEventRecurrenceSchema = z$1.discriminatedUnion("kind", [z$1.object({
12283
+ kind: z$1.literal("weekly"),
12284
+ interval: z$1.number().int().positive(),
12285
+ weekdays: z$1.array(z$1.enum([
12286
+ "MO",
12287
+ "TU",
12288
+ "WE",
12289
+ "TH",
12290
+ "FR",
12291
+ "SA",
12292
+ "SU"
12293
+ ]))
12294
+ }).readonly(), z$1.object({ kind: z$1.literal("other") }).readonly()]);
12117
12295
  const eventDestinationModeSchema = z$1.enum(["cms-managed", "system-managed"]);
12118
12296
  const publicEventDestinationSchema = z$1.discriminatedUnion("kind", [z$1.object({
12119
12297
  kind: z$1.literal("native"),
@@ -12366,6 +12544,7 @@ const publicEventSchema = z$1.object({
12366
12544
  eventPreset: eventPresetSchema.optional(),
12367
12545
  eventDestinationMode: eventDestinationModeSchema.optional(),
12368
12546
  scheduleScope: eventScheduleScopeSchema.optional(),
12547
+ recurrence: publicEventRecurrenceSchema.optional(),
12369
12548
  id: z$1.string(),
12370
12549
  occurrenceId: z$1.string(),
12371
12550
  seriesId: z$1.string(),
@@ -12437,44 +12616,33 @@ function isEventContentType(slug) {
12437
12616
  if (!slug) return false;
12438
12617
  return EVENT_CONTENT_TYPE_SLUGS.includes(slug);
12439
12618
  }
12440
- z$1.discriminatedUnion("kind", [z$1.object({
12441
- kind: z$1.literal("eventSeries"),
12442
- eventSeriesId: z$1.string().transform((value, ctx) => {
12443
- const parsed = parseEventSeriesId(value);
12444
- if (!parsed.ok) {
12445
- ctx.addIssue({
12446
- code: z$1.ZodIssueCode.custom,
12447
- message: `Invalid event series id (${parsed.error.kind})`
12448
- });
12449
- return z$1.NEVER;
12450
- }
12451
- return parsed.value;
12452
- })
12453
- }), z$1.object({
12619
+ const unsupportedEventRegistrationPageSurfaceSubjectSchema = z$1.object({
12454
12620
  kind: z$1.literal("unsupported"),
12455
- reason: z$1.enum(["unsupportedSubject", "invalidEventSeriesId"])
12456
- })]);
12457
- function parseEventRegistrationPageSurfaceSubject(value) {
12458
- if (!isRecord$1(value)) return err$1({ kind: "notPageSurfaceSubject" });
12459
- if (value.kind !== "eventSeries") return err$1({
12460
- kind: "unsupportedSubject",
12461
- subjectKind: value.kind
12462
- });
12463
- const parsedSeriesId = parseEventSeriesId(value.eventSeriesId);
12464
- if (!parsedSeriesId.ok) return err$1({
12465
- kind: "invalidEventSeriesId",
12466
- error: parsedSeriesId.error
12467
- });
12468
- return ok({
12469
- kind: "eventSeries",
12470
- eventSeriesId: parsedSeriesId.value
12621
+ reason: z$1.enum([
12622
+ "unsupportedSubject",
12623
+ "invalidEventSeriesId",
12624
+ "invalidEventOfferingId"
12625
+ ])
12626
+ });
12627
+ z$1.unknown().transform((value, ctx) => {
12628
+ const unsupported = unsupportedEventRegistrationPageSurfaceSubjectSchema.safeParse(value);
12629
+ if (unsupported.success) return unsupported.data;
12630
+ const parsed = parseEventPageSurfaceSubject(value);
12631
+ if (parsed.ok) return parsed.value;
12632
+ ctx.addIssue({
12633
+ code: z$1.ZodIssueCode.custom,
12634
+ message: `Invalid event page-surface subject (${parsed.error.kind})`
12471
12635
  });
12636
+ return z$1.NEVER;
12637
+ });
12638
+ function parseEventRegistrationPageSurfaceSubject(value) {
12639
+ return parseEventPageSurfaceSubject(value);
12472
12640
  }
12473
12641
  function normalizeEventRegistrationPageSurfaceSubject(value) {
12474
12642
  const parsed = parseEventRegistrationPageSurfaceSubject(value);
12475
12643
  if (parsed.ok) return parsed.value;
12476
12644
  switch (parsed.error.kind) {
12477
- case "notPageSurfaceSubject": return null;
12645
+ case "notObject": return null;
12478
12646
  case "unsupportedSubject": return {
12479
12647
  kind: "unsupported",
12480
12648
  reason: "unsupportedSubject"
@@ -12483,6 +12651,10 @@ function normalizeEventRegistrationPageSurfaceSubject(value) {
12483
12651
  kind: "unsupported",
12484
12652
  reason: "invalidEventSeriesId"
12485
12653
  };
12654
+ case "invalidEventOfferingId": return {
12655
+ kind: "unsupported",
12656
+ reason: "invalidEventOfferingId"
12657
+ };
12486
12658
  }
12487
12659
  }
12488
12660
  function resolveEventRegistrationScope(context) {
@@ -12495,6 +12667,11 @@ function resolveEventRegistrationScope(context) {
12495
12667
  kind: "pageSurfaceSeries",
12496
12668
  seriesId: context.subject.eventSeriesId
12497
12669
  };
12670
+ if (context.subject?.kind === "eventOffering") return {
12671
+ kind: "pageSurfaceOffering",
12672
+ offeringId: context.subject.eventOfferingId,
12673
+ seriesIds: context.subject.availableEventSeriesIds
12674
+ };
12498
12675
  if (context.subject?.kind === "unsupported") return {
12499
12676
  kind: "unsupportedPageSurfaceSubject",
12500
12677
  reason: context.subject.reason
@@ -12511,6 +12688,10 @@ function applyEventRegistrationScope(events, scope) {
12511
12688
  switch (scope.kind) {
12512
12689
  case "occurrenceSeries":
12513
12690
  case "pageSurfaceSeries": return events.filter((event) => event.seriesId === scope.seriesId);
12691
+ case "pageSurfaceOffering": {
12692
+ const seriesIds = new Set(scope.seriesIds);
12693
+ return events.filter((event) => seriesIds.has(event.seriesId));
12694
+ }
12514
12695
  case "legacyEventSlug": return events.filter((event) => event.slug === scope.slug);
12515
12696
  case "unsupportedPageSurfaceSubject": return [];
12516
12697
  case "unscoped": return [...events];
@@ -12519,9 +12700,6 @@ function applyEventRegistrationScope(events, scope) {
12519
12700
  function resolveEventRegistrationScopedEvents(events, context) {
12520
12701
  return applyEventRegistrationScope(events, resolveEventRegistrationScope(context));
12521
12702
  }
12522
- function isRecord$1(value) {
12523
- return typeof value === "object" && value !== null && !Array.isArray(value);
12524
- }
12525
12703
  //#endregion
12526
12704
  //#region ../blocks/src/system/runtime/nodes/event-registration/event-registration.headless.override.ts
12527
12705
  function createEventRegistrationBlockApiConfig(input) {
@@ -12940,7 +13118,7 @@ function useEventRegistrationWizardWithDeps(options, deps) {
12940
13118
  registrationEvents,
12941
13119
  options.occurrenceContext?.seriesId,
12942
13120
  options.subject?.kind,
12943
- options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.reason,
13121
+ options.subject?.kind === "eventSeries" ? options.subject.eventSeriesId : options.subject?.kind === "eventOffering" ? `${options.subject.eventOfferingId}:${options.subject.availableEventSeriesIds.join(",")}` : options.subject?.reason,
12944
13122
  options.contentEntry?.slug,
12945
13123
  options.contentEntry?.contentTypeSlug
12946
13124
  ]);