@riverbankcms/sdk 0.108.0 → 0.109.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 (189) hide show
  1. package/README.md +21 -1
  2. package/dist/{PreviewEditorSidebar-BBT-kZAM.mjs → PreviewEditorSidebar-DWqwfy3_.mjs} +7 -22
  3. package/dist/{PreviewEditorUI-D69xNKT2.mjs → PreviewEditorUI-B7OL4sfR.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-RRu7wyQ5.mjs → PreviewQueryProvider-D0y2l8JN.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-CuDjXH6o.mjs → SdkPreviewModeRuntime-D8Gt9Gbe.mjs} +212 -153
  6. package/dist/{SiteChromeCustomizeContext-BQUY2dEk.mjs → SiteChromeCustomizeContext-DUpalEdL.mjs} +1919 -1032
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +11244 -10741
  8. package/dist/_dts/api/src/bookingAdjustments.d.ts +5 -0
  9. package/dist/_dts/api/src/bookingOperations.d.ts +4 -0
  10. package/dist/_dts/api/src/bookingRecords.d.ts +2 -17
  11. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  12. package/dist/_dts/api/src/common/envelope.d.ts +7 -0
  13. package/dist/_dts/api/src/courses.d.ts +1 -0
  14. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +5 -5
  15. package/dist/_dts/api/src/endpoints.d.ts +35 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -2
  17. package/dist/_dts/api/src/participantMessaging.d.ts +18 -12
  18. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  19. package/dist/_dts/api/src/sdkContracts.d.ts +247 -1
  20. package/dist/_dts/api/src/siteInfrastructure.d.ts +13 -0
  21. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +1 -5
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +29 -1
  23. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +33 -27
  24. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientField.d.ts +9 -0
  25. package/dist/_dts/block-form/src/widgets/BackgroundGradientWidget/BackgroundGradientWidget.d.ts +3 -4
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  27. package/dist/_dts/blocks/src/index.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +3 -0
  29. package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +3 -0
  30. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +3 -0
  31. package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +1 -22
  32. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +1 -22
  34. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -0
  35. package/dist/_dts/blocks/src/system/blocks/form.d.ts +3 -0
  36. package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +3 -0
  37. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +3 -0
  38. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +3 -0
  39. package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +3 -0
  40. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
  41. package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +3 -0
  42. package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +3 -0
  43. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  44. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +16 -6
  45. package/dist/_dts/blocks/src/system/defineBlock.d.ts +9 -1
  46. package/dist/_dts/blocks/src/system/fields/ctas.d.ts +8 -0
  47. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +31 -0
  48. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -6
  49. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  50. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  51. package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +31 -0
  52. package/dist/_dts/content-model/src/content-types/scaffold.d.ts +58 -0
  53. package/dist/_dts/content-model/src/content-types/sentinels.d.ts +36 -0
  54. package/dist/_dts/content-model/src/index.d.ts +3 -0
  55. package/dist/_dts/core/src/booking-date-time.d.ts +8 -0
  56. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3071 -3157
  57. package/dist/_dts/media-core/src/fileMimeDetection.d.ts +16 -0
  58. package/dist/_dts/media-core/src/fileStorage.d.ts +8 -0
  59. package/dist/_dts/media-core/src/storagePathDomain.d.ts +2 -0
  60. package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +3 -0
  61. package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +2 -0
  62. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
  63. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -1
  64. package/dist/_dts/sdk/src/cli/commands/audit.d.ts +1 -1
  65. package/dist/_dts/sdk/src/cli/commands/compare.d.ts +1 -1
  66. package/dist/_dts/sdk/src/cli/commands/deploy.d.ts +1 -1
  67. package/dist/_dts/sdk/src/cli/commands/drafts.d.ts +18 -0
  68. package/dist/_dts/sdk/src/cli/commands/entry.d.ts +15 -0
  69. package/dist/_dts/sdk/src/cli/commands/init-docs.d.ts +2 -2
  70. package/dist/_dts/sdk/src/cli/commands/publish-all.d.ts +1 -1
  71. package/dist/_dts/sdk/src/cli/commands/pull.d.ts +1 -0
  72. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +1 -1
  73. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +3 -0
  74. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +12 -1
  75. package/dist/_dts/sdk/src/cli/commands/setup.d.ts +1 -0
  76. package/dist/_dts/sdk/src/cli/commands/verify.d.ts +1 -0
  77. package/dist/_dts/sdk/src/cli/helpers.d.ts +22 -1
  78. package/dist/_dts/sdk/src/cli/index.d.ts +4 -0
  79. package/dist/_dts/sdk/src/cli/output.d.ts +88 -0
  80. package/dist/_dts/sdk/src/cli/program.d.ts +29 -0
  81. package/dist/_dts/sdk/src/cli/push-config.d.ts +1 -1
  82. package/dist/_dts/sdk/src/client/management/catalog.d.ts +10 -0
  83. package/dist/_dts/sdk/src/client/management/http.d.ts +7 -1
  84. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
  85. package/dist/_dts/sdk/src/client/management/types.d.ts +43 -19
  86. package/dist/_dts/sdk/src/date-time/index.d.ts +68 -0
  87. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -0
  88. package/dist/_dts/sdk/src/version.d.ts +1 -1
  89. package/dist/_dts/site-commands/src/commands.d.ts +893 -823
  90. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/buttons/core.d.ts +15 -46
  92. package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +147 -0
  93. package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +2 -3
  94. package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +1 -1
  95. package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
  96. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +44 -32
  97. package/dist/_dts/theme-core/src/buttons/presets.d.ts +4 -25
  98. package/dist/_dts/theme-core/src/buttons/resolveButtonColourStates.d.ts +100 -0
  99. package/dist/_dts/theme-core/src/buttons/resolvedButtonCss.d.ts +16 -0
  100. package/dist/_dts/theme-core/src/buttons/types.d.ts +101 -83
  101. package/dist/_dts/theme-core/src/cards/types.d.ts +16 -16
  102. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  103. package/dist/_dts/theme-core/src/gradients/presets.d.ts +200 -8
  104. package/dist/_dts/theme-core/src/gradients/utils.d.ts +6 -2
  105. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +87 -126
  106. package/dist/_dts/theme-core/src/mock-themes/modern-minimal.d.ts +1 -1
  107. package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +5 -8
  110. package/dist/_dts/theme-core/src/palette/index.d.ts +0 -1
  111. package/dist/_dts/theme-core/src/schema.d.ts +112 -138
  112. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  113. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +10 -10
  114. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +3 -2
  115. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +13 -6
  116. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +29 -8
  117. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +2 -2
  118. package/dist/cli/index.mjs +67956 -66745
  119. package/dist/cli/init-docs/content/cli-reference.md +50 -7
  120. package/dist/cli/init-docs/content/content-management.md +7 -4
  121. package/dist/cli/init-docs/content/workflow-publish.md +5 -1
  122. package/dist/client/{DiscountCodeDisclosure-D6TOf6Hi.mjs → DiscountCodeDisclosure-DU1ygxU2.mjs} +1 -1
  123. package/dist/client/{EventCombined.client-Dao3zxRk.mjs → EventCombined.client-DB5zagCo.mjs} +3 -3
  124. package/dist/client/{EventListing.client-B2NNt4y1.mjs → EventListing.client-CTX9JHBL.mjs} +2 -2
  125. package/dist/client/{LeafletStaticMap-BhwFo16w.mjs → LeafletStaticMap-BYImhgiB.mjs} +1 -1
  126. package/dist/client/{MagicLinkForm-BWnB7cMR.mjs → MagicLinkForm-CRkw_M3l.mjs} +2 -2
  127. package/dist/client/{StepIndicator-TzRiQ0BY.mjs → StepIndicator-BnmVBJJh.mjs} +2 -2
  128. package/dist/client/{accordion-BPy-AJ4_.mjs → accordion-CeGreumd.mjs} +1 -1
  129. package/dist/client/{bookingForm-BL4PGZds.mjs → bookingForm-CSzFNrpN.mjs} +6 -6
  130. package/dist/client/bookings.mjs +512 -252
  131. package/dist/client/{buttons-EBjyslaX.mjs → buttons-DoFV7KDL.mjs} +493 -230
  132. package/dist/client/{carousel-C2b7Cn9-.mjs → carousel-B2jDtogf.mjs} +1 -1
  133. package/dist/client/{cart-BQcbXIVD.mjs → cart-D-jZ-vaY.mjs} +3 -3
  134. package/dist/client/{checkout-DEmpGRJu.mjs → checkout-Dza-LA7N.mjs} +3 -3
  135. package/dist/client/client.mjs +1673 -785
  136. package/dist/client/{colorStyles-jZS6KfkP.mjs → colorStyles-CrgzoXsm.mjs} +1 -30
  137. package/dist/client/{courseRegistration-BqRZPmsq.mjs → courseRegistration-TYkNychb.mjs} +7 -7
  138. package/dist/client/{eventCalendar-B8N_tSl5.mjs → eventCalendar-BI_90SsT.mjs} +5 -5
  139. package/dist/client/{eventCombined-Gjn6gtq7.mjs → eventCombined-mNrpryE9.mjs} +2 -2
  140. package/dist/client/{eventDetails-M-VCxA-r.mjs → eventDetails-D4GVlCIY.mjs} +3 -3
  141. package/dist/client/{eventListing-DR19hqYi.mjs → eventListing-YhKN018y.mjs} +2 -2
  142. package/dist/client/{eventRegistration-BR02a0k3.mjs → eventRegistration-CdHGtilr.mjs} +7 -7
  143. package/dist/client/foregroundContract-xICPq59x.mjs +31 -0
  144. package/dist/client/{form-LY2xIbwg.mjs → form-AcAL45rA.mjs} +2 -2
  145. package/dist/client/{headerSection-CYwwXJfh.mjs → headerSection-uEC52ueD.mjs} +3 -3
  146. package/dist/client/hooks.mjs +890 -497
  147. package/dist/client/{locationMap-DWnBXrFq.mjs → locationMap-_wJDSUYe.mjs} +3 -3
  148. package/dist/client/{media-DHtSxS5V.mjs → media-BK0O3b-U.mjs} +3 -2
  149. package/dist/client/{newsletterForm-D9s-fQ2P.mjs → newsletterForm-DrArsb2B.mjs} +2 -2
  150. package/dist/client/{pricing-DDq80oYc.mjs → pricing-BSYVghwo.mjs} +1 -1
  151. package/dist/client/{productDetail-B0SbWd45.mjs → productDetail-Dyk90sMs.mjs} +3 -3
  152. package/dist/client/{productList-PwYlZn0y.mjs → productList-BCKThwAI.mjs} +3 -3
  153. package/dist/client/{propsDecoder-BRWBiH7i.mjs → propsDecoder-CkXxkdSR.mjs} +63 -24
  154. package/dist/client/rendering/client.mjs +1034 -486
  155. package/dist/client/rendering/islands.mjs +19 -19
  156. package/dist/client/rendering.mjs +1832 -760
  157. package/dist/client/{shop-CMwZPYME.mjs → shop-DeltVH10.mjs} +6 -6
  158. package/dist/client/{shop-commerce-BuxsFate.mjs → shop-commerce-BD9Jsm2Z.mjs} +6 -6
  159. package/dist/client/{shop-commerce-store-boYlEJ91.mjs → shop-commerce-store-CmXD6FDS.mjs} +1 -1
  160. package/dist/client/{shopShared-D2naaOes.mjs → shopShared-B8v-lH_F.mjs} +2 -2
  161. package/dist/client/{useDiscountCodeUi-D9RHpVoj.mjs → useDiscountCodeUi-DbWJN8ld.mjs} +1 -1
  162. package/dist/client/{useEventFilters-igGiK1re.mjs → useEventFilters-EJIMUnqT.mjs} +46 -69
  163. package/dist/client/{usePolling-CI7MbsFB.mjs → usePolling-Cmh14fc7.mjs} +2 -2
  164. package/dist/preview-next/before-render.mjs +35 -0
  165. package/dist/preview-next/client/runtime.mjs +4 -4
  166. package/dist/preview-next/middleware.mjs +35 -0
  167. package/dist/{previewAuthStore-a_cBD28m.mjs → previewAuthStore-CTO7CRPk.mjs} +35 -0
  168. package/dist/{sdk-runtime-MBzD-GmP.mjs → sdk-runtime-Dou0GAav.mjs} +2 -2
  169. package/dist/{separator-5ahRBC85.mjs → separator-CI5wZNXT.mjs} +1 -1
  170. package/dist/server/components.mjs +1832 -784
  171. package/dist/server/config-validation.mjs +890 -497
  172. package/dist/server/config.mjs +890 -497
  173. package/dist/server/data.mjs +890 -497
  174. package/dist/server/date-time.mjs +386 -0
  175. package/dist/server/index.mjs +36 -1
  176. package/dist/server/next.mjs +1868 -785
  177. package/dist/server/page-converter.mjs +849 -285
  178. package/dist/server/prebuild.mjs +1 -1
  179. package/dist/server/rendering/server.mjs +1553 -718
  180. package/dist/server/rendering.mjs +1832 -784
  181. package/dist/server/routing.mjs +933 -522
  182. package/dist/server/server.mjs +929 -501
  183. package/dist/server/theme-bridge.mjs +1408 -392
  184. package/dist/server/theme.mjs +471 -228
  185. package/dist/styles/index.css +5 -0
  186. package/package.json +7 -1
  187. package/dist/_dts/theme-core/src/buttons/presets/types.d.ts +0 -88
  188. package/dist/_dts/theme-core/src/buttons/utils/contrast.d.ts +0 -38
  189. package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +0 -57
@@ -1,4 +1,5 @@
1
- import type { FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, SiteFooterContent, Theme } from '../../blocks/src/index';
1
+ import type { BlockContentSource, BlockContentSourceKind, FieldDefinition, FieldDefinitionInput, SdkCustomBlock, SdkCustomBlockInput, SiteFooterContent, Theme } from '../../blocks/src/index';
2
+ import type { ContentTypeSchema } from '../../content-model/src/index';
2
3
  import type { LinkPayload } from './navigation/types';
3
4
  import type { JsonValue } from './shared-contracts';
4
5
  import type { SdkEventPricing, SdkEventPricingInput } from './sdk-event-pricing';
@@ -405,6 +406,14 @@ export type SdkPatchPageBlockOperation = Readonly<{
405
406
  export interface SdkPatchPageBlockBody {
406
407
  operations: readonly SdkPatchPageBlockOperation[];
407
408
  baseContentHash: string;
409
+ /**
410
+ * Optional catalog-coherence precondition: the `activeTheme.selectionVersion`
411
+ * from `catalog/blocks`. When provided and the site's current style-selection
412
+ * version differs (the theme changed since the catalog was read), the write is
413
+ * rejected with 409 and error tag `STALE_CATALOG` instead of risking a
414
+ * confusing validation failure on a variant the stale catalog advertised.
415
+ */
416
+ baseSelectionVersion?: number;
408
417
  }
409
418
  export declare const SDK_PATCH_STALE_CONTENT_FIELD = "baseContentHash";
410
419
  export declare const SDK_PATCH_STALE_CONTENT_CODE = "STALE_CONTENT";
@@ -421,12 +430,28 @@ export interface SdkPatchPageBlockStaleContentFieldError {
421
430
  /** Exactly the current draft content hash. */
422
431
  message: string;
423
432
  }
433
+ /**
434
+ * Non-blocking warning emitted on a block write. Currently used for button-variant
435
+ * values that ARE valid manifest options but the ACTIVE theme does not implement:
436
+ * the write is accepted (themes can change under content), but the variant will not
437
+ * render until a personality that provides it is selected.
438
+ */
439
+ export interface SdkBlockContentWarning {
440
+ /** Data path of the value (e.g. `ctas[0].variant`). */
441
+ field: string;
442
+ code: 'theme-unavailable-variant';
443
+ message: string;
444
+ /** The offending value. */
445
+ value: string;
446
+ }
424
447
  /**
425
448
  * Success response mirrors the block GET shape; `block.contentHash` is the
426
449
  * NEW draft content hash (use it as `baseContentHash` for the next patch).
427
450
  */
428
451
  export interface SdkPatchPageBlockResponse {
429
452
  block: SdkGetPageBlock;
453
+ /** Non-blocking content warnings (e.g. theme-unavailable button variants). */
454
+ warnings?: SdkBlockContentWarning[];
430
455
  }
431
456
  export interface SdkPullNavigationItem {
432
457
  id: string;
@@ -457,6 +482,8 @@ export interface SdkPullNavigationResponse {
457
482
  meta: SdkPullMeta;
458
483
  }
459
484
  export interface SdkPullSettings {
485
+ /** Site title (stored on `sites.title`). Present on pull; writable via PATCH. */
486
+ siteTitle?: string;
460
487
  homepageId: string | null;
461
488
  seoDefaults: {
462
489
  title?: string;
@@ -524,6 +551,223 @@ export interface SdkPullThemeResponse {
524
551
  selectionVersion: number;
525
552
  meta: SdkPullThemeMeta;
526
553
  }
554
+ /** One curated-style recommendation choice; the catalog lists them in preference order. */
555
+ export interface SdkCatalogChoice {
556
+ id: string;
557
+ note?: string;
558
+ }
559
+ export interface SdkCatalogHeaderLayoutStyleChoice {
560
+ layoutId: string;
561
+ styleId: string;
562
+ }
563
+ export interface SdkCatalogSiteStyle {
564
+ id: string;
565
+ name: string;
566
+ description: string;
567
+ /** Button personality recommendations in preference order (first = default). */
568
+ buttonPersonalityChoices: SdkCatalogChoice[];
569
+ defaultButtonPersonalityId: string;
570
+ /** Curated palette recommendations (value-keys) in preference order (first = default). */
571
+ paletteRecommendations: SdkCatalogChoice[];
572
+ defaultPaletteValueKey: string;
573
+ /**
574
+ * Concrete typography the style applies. NOTE: current theme-core carries a resolved
575
+ * `typography` object per style, not a preset-choice list (see deviation notes).
576
+ */
577
+ typography: Theme['typography'];
578
+ /** Canonical header layout+style pair (replaces the older single `defaultHeaderSelection` look id). */
579
+ defaultHeaderSelection: SdkCatalogHeaderLayoutStyleChoice;
580
+ recommendedHeaderLookIds: string[];
581
+ recommendedFooterLookIds: string[];
582
+ }
583
+ export interface SdkCatalogButtonPersonality {
584
+ id: string;
585
+ name: string;
586
+ description: string;
587
+ /** Enabled variant ids this personality provides. */
588
+ variantIds: string[];
589
+ }
590
+ export interface SdkCatalogPalette {
591
+ /** Human-readable source alias. */
592
+ authoringKey: string;
593
+ /** Canonical persistence/runtime identity (colors+mode hash). */
594
+ valueKey: string;
595
+ name: string;
596
+ description: string;
597
+ mode: string;
598
+ }
599
+ export interface SdkCatalogTypographyPreset {
600
+ /** Recipe id: `serif-editorial` | `clean-sans` | `classic-serif` | `friendly-sans`. */
601
+ id: string;
602
+ /** Concrete typography this preset resolves to. */
603
+ typography: Theme['typography'];
604
+ }
605
+ /**
606
+ * The site's current resolved selection, so one catalog read primes an apply.
607
+ * Carries everything the apply endpoint requires — including `siteStyleId`
608
+ * (read from the active compiled theme). This is the single wire shape;
609
+ * services map to it explicitly (no structural pass-through of domain rows).
610
+ */
611
+ export interface SdkCatalogCurrentSelection {
612
+ /** Pass as `baseSelectionVersion` on apply; 0 when no selection exists. */
613
+ selectionVersion: number;
614
+ /** The curated site style the active theme was compiled from (null when unknown). */
615
+ siteStyleId: string | null;
616
+ buttonPersonalityId: string | null;
617
+ paletteValueKey: string | null;
618
+ headerLayoutId: string | null;
619
+ headerStyleId: string | null;
620
+ headerLookId: string | null;
621
+ footerLookId: string | null;
622
+ typographyPresetId: string | null;
623
+ }
624
+ export interface SdkCatalogThemeResponse {
625
+ siteStyles: SdkCatalogSiteStyle[];
626
+ buttonPersonalities: SdkCatalogButtonPersonality[];
627
+ palettes: SdkCatalogPalette[];
628
+ typographyPresets: SdkCatalogTypographyPreset[];
629
+ headerLookIds: string[];
630
+ footerLookIds: string[];
631
+ headerLayoutIds: string[];
632
+ headerStyleIds: string[];
633
+ currentSelection: SdkCatalogCurrentSelection;
634
+ meta: SdkPullMeta;
635
+ }
636
+ /**
637
+ * Content-source classification, derived DIRECTLY from the blocks package's
638
+ * authoring type (`BlockContentSource` / `blockContentSourceKinds`) so the wire
639
+ * union can never drift from what block definitions declare.
640
+ */
641
+ export type SdkCatalogContentSourceKind = BlockContentSourceKind;
642
+ export type SdkCatalogContentSource = BlockContentSource;
643
+ export interface SdkCatalogSelectOption {
644
+ value: string;
645
+ label: string;
646
+ }
647
+ export interface SdkCatalogField {
648
+ id: string;
649
+ type: string;
650
+ label?: string;
651
+ required: boolean;
652
+ /** Present for `select` fields. */
653
+ options?: SdkCatalogSelectOption[];
654
+ /** Present for container fields (group/repeater/tabGroup/modal). */
655
+ fields?: SdkCatalogField[];
656
+ }
657
+ /** Machine-readable reason a manifest variant option is not currently renderable. */
658
+ export type SdkCatalogVariantUnavailableReason = 'not-implemented-by-personality';
659
+ /** Where a resolved variant value originates. */
660
+ export type SdkCatalogVariantSource = 'manifest' | 'theme' | 'both';
661
+ /**
662
+ * One button-variant option, discriminated on `availability`:
663
+ * - `available` — the active theme implements it (never carries a reason).
664
+ * - `unavailable` — a manifest option the active theme does NOT implement;
665
+ * always carries a machine-readable `reason`. Writes accept it
666
+ * with a warning.
667
+ * - `unknown` — the site has no active theme/button system, so availability
668
+ * cannot be determined; only manifest options appear.
669
+ */
670
+ export type SdkCatalogVariantOption = Readonly<{
671
+ value: string;
672
+ availability: 'available';
673
+ source: SdkCatalogVariantSource;
674
+ }> | Readonly<{
675
+ value: string;
676
+ availability: 'unavailable';
677
+ source: 'manifest';
678
+ reason: SdkCatalogVariantUnavailableReason;
679
+ }> | Readonly<{
680
+ value: string;
681
+ availability: 'unknown';
682
+ source: 'manifest';
683
+ }>;
684
+ export interface SdkCatalogVariantAvailability {
685
+ /** Structural field-id path of the button-variant field (e.g. `ctas.variant`). */
686
+ fieldPath: string;
687
+ variants: SdkCatalogVariantOption[];
688
+ }
689
+ export interface SdkCatalogBlock {
690
+ identifier: string;
691
+ title: string;
692
+ category?: string;
693
+ contentSource: SdkCatalogContentSource;
694
+ fields: SdkCatalogField[];
695
+ /** Button-variant availability against the active theme (shared resolver). */
696
+ variantAvailability: SdkCatalogVariantAvailability[];
697
+ }
698
+ /**
699
+ * The active-theme context the blocks catalog was computed against. `selectionVersion`
700
+ * doubles as an optional write precondition: pass it as `baseSelectionVersion` on block
701
+ * upsert/PATCH to fail loudly (409, tag `STALE_CATALOG`) if the theme changed since
702
+ * the catalog was read — a catalog-advertised theme-only variant may otherwise be
703
+ * rejected after a mid-air theme change.
704
+ */
705
+ export type SdkCatalogActiveTheme = Readonly<{
706
+ state: 'active';
707
+ selectionVersion: number;
708
+ }> | Readonly<{
709
+ state: 'none';
710
+ }>;
711
+ export interface SdkCatalogBlocksResponse {
712
+ blocks: SdkCatalogBlock[];
713
+ /** Theme context the variant availability was computed against. */
714
+ activeTheme: SdkCatalogActiveTheme;
715
+ meta: SdkPullMeta;
716
+ }
717
+ export interface SdkCatalogContentType {
718
+ key: string;
719
+ name: string;
720
+ hasPages: boolean;
721
+ routePattern: string | null;
722
+ isSingleton: boolean;
723
+ /** Normalized stored field DSL (NOT generated JSON Schema). */
724
+ schema: ContentTypeSchema;
725
+ }
726
+ export interface SdkCatalogContentTypesResponse {
727
+ contentTypes: SdkCatalogContentType[];
728
+ meta: SdkPullMeta;
729
+ }
730
+ export interface SdkCapabilityCatalogLink {
731
+ /** Relative path under `/api/sdk/{siteId}`. */
732
+ path: string;
733
+ /** Stable content hash of the catalog body, for caching + drift detection. */
734
+ contentHash: string;
735
+ }
736
+ export interface SdkCapabilitiesResponse {
737
+ apiVersion: string;
738
+ catalogs: {
739
+ theme: SdkCapabilityCatalogLink;
740
+ blocks: SdkCapabilityCatalogLink;
741
+ contentTypes: SdkCapabilityCatalogLink;
742
+ };
743
+ meta: SdkPullMeta;
744
+ }
745
+ /** One provenance ledger row: a resource a demo recipe run created/linked on this site. */
746
+ export interface SdkDemoSeedProvenanceEntry {
747
+ id: string;
748
+ /** The recipe run that created/linked the resource. */
749
+ runId: string;
750
+ /** The command ref within the run (e.g. `content:testimonial-ava`). */
751
+ commandKey: string;
752
+ /** The command type (e.g. `upsertContentEntry`). */
753
+ commandType: string;
754
+ /** Closed resource kind (e.g. `content`, `customer`, `page`, `staff`). */
755
+ resourceKind: string;
756
+ /** The recipe resource ref (e.g. `content:testimonial-ava`). */
757
+ resourceRef: string;
758
+ /** The concrete resource id. */
759
+ resourceId: string;
760
+ /**
761
+ * `created` — the run authored this resource (a cleanup candidate);
762
+ * `existing` — the run only linked/configured a pre-existing resource.
763
+ */
764
+ disposition: 'created' | 'existing';
765
+ createdAt: string;
766
+ }
767
+ export interface SdkDemoContentResponse {
768
+ items: SdkDemoSeedProvenanceEntry[];
769
+ meta: SdkPullMeta;
770
+ }
527
771
  export interface SdkPullFooterMeta extends SdkPullMeta {
528
772
  updatedAt: string | null;
529
773
  }
@@ -824,6 +1068,8 @@ export interface SdkPullDraftsResponse {
824
1068
  }
825
1069
  export interface SdkUpsertBlockResponse {
826
1070
  block: SdkManagementBlock;
1071
+ /** Non-blocking content warnings (e.g. theme-unavailable button variants). */
1072
+ warnings?: SdkBlockContentWarning[];
827
1073
  }
828
1074
  export interface SdkDeleteResponse {
829
1075
  deleted: true;
@@ -250,11 +250,16 @@ export type CreateSitePreviewKeyResponse = {
250
250
  keyId: string;
251
251
  message: string;
252
252
  };
253
+ /** Access mode for a management API key: read-only or full write access. */
254
+ export type ManagementKeyAccessMode = 'read' | 'write';
253
255
  export type ManagementKeyRecord = {
254
256
  id: string;
255
257
  name: string | null;
256
258
  keyPrefix: string;
257
259
  keyHint: string | null;
260
+ accessMode: ManagementKeyAccessMode;
261
+ /** ISO timestamp when the key expires, or null if it never expires. */
262
+ expiresAt: string | null;
258
263
  createdAt: string;
259
264
  lastUsedAt: string | null;
260
265
  };
@@ -263,10 +268,18 @@ export type ListManagementKeysResponse = {
263
268
  };
264
269
  export type CreateManagementKeyRequest = {
265
270
  name?: string;
271
+ /** Defaults to 'write' when omitted (preserves prior all-access behavior). */
272
+ accessMode?: ManagementKeyAccessMode;
273
+ /** Optional ISO timestamp; must be in the future. Null/omitted = never expires. */
274
+ expiresAt?: string | null;
266
275
  };
267
276
  export type CreateManagementKeyResponse = {
268
277
  key: string;
269
278
  keyId: string;
279
+ /** Normalized access mode the key was issued with. */
280
+ accessMode: ManagementKeyAccessMode;
281
+ /** Normalized expiry (ISO) or null when the key never expires. */
282
+ expiresAt: string | null;
270
283
  message: string;
271
284
  };
272
285
  export type RevokeManagementKeyRequest = {
@@ -1054,12 +1054,8 @@ export type SiteManagementAPIEndpoints = {
1054
1054
  siteId: string;
1055
1055
  ids?: string;
1056
1056
  }, {
1057
- services: Array<{
1058
- id: string;
1059
- siteId: string;
1060
- title: string;
1057
+ services: Array<Omit<PublicBookingService, 'description'> & {
1061
1058
  description?: string;
1062
- durationMinutes?: number;
1063
1059
  }>;
1064
1060
  }>;
1065
1061
  getPublicBookingService: APIEndpoint<never, {
@@ -10,7 +10,7 @@ import type { CreateManagementKeyRequest, CreateManagementKeyResponse, CreateSit
10
10
  import type { GetSiteInspirationAnalysisResponse, ListSiteInspirationAnalysesResponse } from './siteGeneration';
11
11
  import type { ListGscPropertiesAdminResponse, AuthStatusResponse, CronAppointmentRemindersResponse, CronBillingStatusResponse, CronEventFeedbackEmailsResponse, CronEventOccurrencesResponse, CronEventRemindersResponse, CronMediaJobsQuery, CronMediaJobsResponse, CronNewsletterSendResponse, CronPaymentReconciliationResponse, CronSeoIngestResponse, CronWaitlistExpiryResponse } from './siteOperations';
12
12
  import type { ApplySiteStyleSelectionBody, ApplySiteStyleSelectionResponse } from './siteRuntimeEndpoints';
13
- import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkBackfillIdentifiersResult, SdkGetCourseResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListCoursesResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkPullCourseProgram, SdkPullCourseSession, SdkPullCoursesResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpsertBlockResponse, SdkUpsertCourseResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
13
+ import type { ManagementMediaAsset, MediaResolveResponse, PushSdkConfigRequest, PushSdkConfigResponse, SdkBackfillIdentifiersResult, SdkGetCourseResponse, SdkGetEntryResponse, SdkGetEventCategoryResponse, SdkGetEventResponse, SdkGetFormResponse, SdkGetPageBlockResponse, SdkPatchPageBlockBody, SdkPatchPageBlockResponse, SdkGetVenueResponse, SdkListCoursesResponse, SdkListEntriesResponse, SdkListEventCategoriesResponse, SdkListEventsResponse, SdkListFormsResponse, SdkListVenuesResponse, SdkMediaFinalizeUploadResponse, SdkMediaUploadUrlResponse, SdkPageResponse, SdkEntryUpsertSlotBlock, SdkPublishOrUnpublishEntryResponse, SdkPullContentTypesResponse, SdkCatalogThemeResponse, SdkCatalogBlocksResponse, SdkCatalogContentTypesResponse, SdkCapabilitiesResponse, SdkDemoContentResponse, SdkPullCourseProgram, SdkPullCourseSession, SdkPullCoursesResponse, SdkPullEntriesAllResponse, SdkPullEntriesByTypeResponse, SdkPullEntriesResponse, SdkPullEventCategoriesResponse, SdkPullEventsResponse, SdkPullFooterResponse, SdkPullFormSchema, SdkPullFormsResponse, SdkPullFormSettings, SdkPullDraftsResponse, SdkPullNavigationResponse, SdkPullPagesResponse, SdkPullSettings, SdkPullSettingsResponse, SdkPullSiteInfoResponse, SdkPullThemeResponse, SdkPullVenue, SdkPullVenuesResponse, SdkUpdateSettingsResponse, SdkUpsertBlockResponse, SdkUpsertCourseResponse, SdkUpsertEntryResponse, SdkUpsertPageResponse, SdkUpsertEventCategoryResponse, SdkUpsertEventResponse, SdkUpsertFooterResponse, SdkUpsertFormResponse, SdkUpsertNavigationMenuResponse, SdkUpsertThemeResponse, SdkUpsertVenueResponse } from './sdkContracts';
14
14
  import type { SdkEventUpsertBody } from './sdk-event-upsert';
15
15
  import type { StripeConnectDisconnectResponse, StripeConnectStartResponse, StripeConnectStatusResponse, UpdateStripeAutomaticTaxRequest } from './billing';
16
16
  import type { NavigationLinkInput } from './navigation/types';
@@ -186,6 +186,21 @@ export type SitePlatformAPIEndpoints = {
186
186
  sdkPullContentTypes: APIEndpoint<never, {
187
187
  siteId: string;
188
188
  }, SdkPullContentTypesResponse>;
189
+ sdkCatalogTheme: APIEndpoint<never, {
190
+ siteId: string;
191
+ }, SdkCatalogThemeResponse>;
192
+ sdkCatalogBlocks: APIEndpoint<never, {
193
+ siteId: string;
194
+ }, SdkCatalogBlocksResponse>;
195
+ sdkCatalogContentTypes: APIEndpoint<never, {
196
+ siteId: string;
197
+ }, SdkCatalogContentTypesResponse>;
198
+ sdkCapabilities: APIEndpoint<never, {
199
+ siteId: string;
200
+ }, SdkCapabilitiesResponse>;
201
+ sdkListDemoContent: APIEndpoint<never, {
202
+ siteId: string;
203
+ }, SdkDemoContentResponse>;
189
204
  sdkPullPages: APIEndpoint<never, {
190
205
  siteId: string;
191
206
  }, SdkPullPagesResponse>;
@@ -262,6 +277,11 @@ export type SitePlatformAPIEndpoints = {
262
277
  kind: string;
263
278
  data: Record<string, unknown>;
264
279
  position?: number;
280
+ /**
281
+ * Optional catalog-coherence precondition (`catalog/blocks`
282
+ * `activeTheme.selectionVersion`); mismatch → 409 tag `STALE_CATALOG`.
283
+ */
284
+ baseSelectionVersion?: number;
265
285
  }, {
266
286
  siteId: string;
267
287
  identifier: string;
@@ -449,6 +469,13 @@ export type SitePlatformAPIEndpoints = {
449
469
  contentType: string;
450
470
  data: Record<string, unknown>;
451
471
  slug?: string;
472
+ /**
473
+ * Raw display ordinal, only accepted for content types with
474
+ * `ordering.mode: 'manual'` (400 fieldError otherwise). The server never
475
+ * displaces other entries; equal ordinals resolve deterministically by
476
+ * (manualOrder ASC, createdAt ASC, id ASC). Callers wanting insert-at-
477
+ * position semantics reassign ordinals for the affected entries.
478
+ */
452
479
  manualOrder?: number;
453
480
  blocks?: Record<string, SdkEntryUpsertSlotBlock[]>;
454
481
  publication?: 'draft' | 'publish';
@@ -484,6 +511,7 @@ export type SitePlatformAPIEndpoints = {
484
511
  identifier: string;
485
512
  }, SdkPublishOrUnpublishEntryResponse>;
486
513
  sdkUpdateSettings: APIEndpoint<{
514
+ siteTitle?: string;
487
515
  homepageId?: string | null;
488
516
  seoDefaults?: SdkPullSettings['seoDefaults'];
489
517
  logoIdentifier?: string | null;
@@ -26,37 +26,43 @@ export type SiteThemeSelectionsPayload = {
26
26
  headerLookId?: HeaderLookId | null;
27
27
  footerLookId?: FooterLookId | null;
28
28
  };
29
- export type ApplySiteStyleSelectionCommonBody = Readonly<{
30
- siteStyleId: SiteStyleId;
31
- /** Omitted or `null` selects the first button personality recommended by the site style; a value selects that personality. */
32
- buttonPersonalityId?: ButtonPersonalityId | null;
33
- /** Omitted selects the site style's authoritative concrete typography; a value applies submitted concrete typography. */
34
- typography?: Theme['typography'];
35
- /** Omitted or `null` selects the first header Look recommended by the site style; a value selects that Look. When both header pair fields are omitted, a supplied Look derives the canonical pair when it has one. */
36
- headerLookId?: HeaderLookId | null;
37
- /** Omitted or `null` selects the first footer Look recommended by the site style; a value selects that Look. */
38
- footerLookId?: FooterLookId | null;
39
- baseSelectionVersion: number;
40
- /** Omitted or `null` lets the server target the current selection; a value targets that selection row. */
41
- selectionId?: string | null;
29
+ export type SiteStyleHeaderSelectionChange = Readonly<{
30
+ kind: 'default';
31
+ }> | Readonly<{
32
+ kind: 'legacy';
33
+ headerLookId: HeaderLookId | null;
34
+ }> | Readonly<{
35
+ kind: 'canonical';
36
+ headerLookId: HeaderLookId | null;
37
+ layoutId: HeaderLayoutId;
38
+ styleId: HeaderStyleId;
42
39
  }>;
43
- export type ApplySiteStyleSelectionHeaderBody = Readonly<{
44
- /** Omit both fields to use the curated site style's canonical header default; when `headerLookId` is supplied, derive the pair from that Look when it has a canonical alias. */
45
- headerLayoutId?: undefined;
46
- headerStyleId?: undefined;
40
+ export type SiteStyleSelectionChange = Readonly<{
41
+ kind: 'set-site-style';
42
+ siteStyleId: SiteStyleId;
47
43
  }> | Readonly<{
48
- /** Send both fields as `null` to use the legacy header default. */
49
- headerLayoutId: null;
50
- headerStyleId: null;
44
+ kind: 'set-button-personality';
45
+ buttonPersonalityId: ButtonPersonalityId | null;
51
46
  }> | Readonly<{
52
- /** Canonical header selections are atomic: layout and style must be supplied together. */
53
- headerLayoutId: HeaderLayoutId;
54
- headerStyleId: HeaderStyleId;
47
+ kind: 'set-palette';
48
+ command: PaletteCommand;
49
+ }> | Readonly<{
50
+ kind: 'set-typography';
51
+ typography: Theme['typography'] | null;
52
+ }> | Readonly<{
53
+ kind: 'set-header';
54
+ selection: SiteStyleHeaderSelectionChange;
55
+ }> | Readonly<{
56
+ kind: 'set-footer-look';
57
+ footerLookId: FooterLookId | null;
58
+ }>;
59
+ export type ApplySiteStyleSelectionBody = Readonly<{
60
+ baseSelectionVersion: number;
61
+ /** Omitted or `null` lets the server target the current selection. */
62
+ selectionId?: string | null;
63
+ /** A non-empty, unique-axis batch. Unmentioned axes are preserved. */
64
+ changes: readonly [SiteStyleSelectionChange, ...SiteStyleSelectionChange[]];
55
65
  }>;
56
- export type ApplySiteStyleSelectionBody = ApplySiteStyleSelectionCommonBody & Readonly<{
57
- /** Omitted selects the site style's recommended curated palette; a command applies that palette operation. */
58
- paletteCommand?: PaletteCommand;
59
- }> & ApplySiteStyleSelectionHeaderBody;
60
66
  export type ApplySiteStyleSelectionResponse = Readonly<{
61
67
  success: boolean;
62
68
  themeId: string;
@@ -1,6 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { FieldWidgetProps } from '../../fields/props';
3
3
  import type { TextFieldConfig } from '../../fields/types';
4
+ import { type GradientConfig } from '../../../../blocks/src/index';
4
5
  /**
5
6
  * BackgroundGradientField
6
7
  *
@@ -11,3 +12,11 @@ import type { TextFieldConfig } from '../../fields/types';
11
12
  * This is registered as a widget override with key 'backgroundGradient'.
12
13
  */
13
14
  export declare function BackgroundGradientField({ path, backend, config, }: FieldWidgetProps<string | null, TextFieldConfig>): ReactNode;
15
+ /**
16
+ * Attempts to find a preset that matches the given CSS gradient string.
17
+ *
18
+ * This is a best-effort reverse lookup - if the CSS was generated from a preset,
19
+ * we can find and highlight that preset. If it's custom CSS, we return null
20
+ * and the widget shows no selection.
21
+ */
22
+ export declare function findPresetFromCss(css: string | null, tokens: Record<string, string>): GradientConfig | null;
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { GradientConfig } from '../../../../blocks/src/index';
2
+ import { type GradientConfig, type GradientPreset } from '../../../../blocks/src/index';
3
3
  export type BackgroundGradientWidgetProps = {
4
4
  label: string;
5
5
  value: GradientConfig | null;
@@ -9,9 +9,8 @@ export type BackgroundGradientWidgetProps = {
9
9
  dataPath?: string;
10
10
  };
11
11
  /**
12
- * BackgroundGradientWidget
13
- *
14
12
  * Select a curated gradient from the theme-based library.
15
13
  * Gradients use theme color tokens, so they adapt to the site's palette.
16
14
  */
17
- export declare function BackgroundGradientWidget(props: BackgroundGradientWidgetProps): import("react").JSX.Element;
15
+ export declare function BackgroundGradientWidget({ label, value, onChange, description, error, dataPath, }: BackgroundGradientWidgetProps): import("react").JSX.Element;
16
+ export declare function gradientConfigFromPreset(preset: GradientPreset): GradientConfig;
@@ -256,7 +256,7 @@ export declare const proofBlockIslandCodecs: {
256
256
  className: string | null;
257
257
  titleText: string;
258
258
  bodyText: string;
259
- stepLabels: readonly ("Details" | "Date" | "Event" | "Tickets" | "Payment")[];
259
+ stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
260
260
  summaryButtonText: string;
261
261
  }>;
262
262
  hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -279,7 +279,7 @@ export declare const proofBlockIslandCodecs: {
279
279
  className: string | null;
280
280
  titleText: string;
281
281
  bodyText: string;
282
- stepLabels: readonly ("Details" | "Date" | "Event" | "Tickets" | "Payment")[];
282
+ stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
283
283
  summaryButtonText: string;
284
284
  }>;
285
285
  hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -1342,7 +1342,7 @@ export declare const runtimeIslandCodecs: {
1342
1342
  className: string | null;
1343
1343
  titleText: string;
1344
1344
  bodyText: string;
1345
- stepLabels: readonly ("Details" | "Date" | "Event" | "Tickets" | "Payment")[];
1345
+ stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
1346
1346
  summaryButtonText: string;
1347
1347
  }>;
1348
1348
  hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -1365,7 +1365,7 @@ export declare const runtimeIslandCodecs: {
1365
1365
  className: string | null;
1366
1366
  titleText: string;
1367
1367
  bodyText: string;
1368
- stepLabels: readonly ("Details" | "Date" | "Event" | "Tickets" | "Payment")[];
1368
+ stepLabels: readonly ("Date" | "Event" | "Tickets" | "Details" | "Payment")[];
1369
1369
  summaryButtonText: string;
1370
1370
  }>;
1371
1371
  hydration: Readonly<Omit<import("../system/runtime/nodes/event-registration").EventRegistrationClientProps, "siteId" | "stage" | "className" | "buttonText" | "registrationEndpoint" | "eligibilityEndpoint" | "checkoutEndpoint">>;
@@ -13,7 +13,7 @@ export * from '../../theme-core/src/schema';
13
13
  export * from '../../theme-core/src/site-styles/index';
14
14
  export * from '../../theme-core/src/styles/buttons';
15
15
  export * from '../../theme-core/src/styles/buttonsLibrary';
16
- export { type ButtonBackground, type ButtonBorder, type ButtonGlobalSettings, type ButtonSystem, type ButtonVariant, type CornerStyle, type EffectApplication, type FontWeight, type GradientSharpness, type GradientStyle, type HoverColor, type HoverTransform, type ShadowSize, type TextTransform, buttonBackgroundSchema, buttonBorderSchema, buttonGlobalSettingsSchema, buttonSystemSchema, buttonVariantSchema, cornerStyleSchema, effectApplicationSchema, fontWeightSchema, gradientSharpnessSchema, gradientStyleSchema, hoverColorSchema, hoverTransformSchema, shadowSizeSchema, textTransformSchema, generateButtonCss, generateDefaultButtonSystem, buttonPresets, type ButtonPreset, EFFECT_PRESETS, getEffectPreset, getEffectPresetsByCategory, getAllEffectPresets, type EffectCategory, type EffectPreset, type EffectContext, type StateGroup, generateButtonCoreCss, getDefaultButtonVariants, type ButtonVariantCore, type ButtonCoreSettings, type ButtonBackgroundType, type GradientDirection, } from '../../theme-core/src/buttons/index';
16
+ export { type ButtonBackground, type ButtonBorder, type ButtonGlobalSettings, type ButtonSystem, type ButtonVariant, type CornerStyle, type EffectApplication, type FontWeight, type GradientSharpness, type GradientStyle, type HoverColor, type HoverTransform, type ShadowSize, type TextTransform, buttonBackgroundSchema, buttonBorderSchema, buttonGlobalSettingsSchema, buttonSystemSchema, buttonVariantSchema, cornerStyleSchema, effectApplicationSchema, fontWeightSchema, gradientSharpnessSchema, gradientStyleSchema, hoverColorSchema, hoverTransformSchema, shadowSizeSchema, textTransformSchema, generateButtonCss, generateDefaultButtonSystem, buttonPresets, type ButtonPreset, EFFECT_PRESETS, getEffectPreset, getEffectPresetsByCategory, getAllEffectPresets, type EffectCategory, type EffectPreset, type EffectContext, type StateGroup, generateButtonCoreCss, getDefaultButtonVariants, type ButtonVariantCore, type ButtonCoreSettings, type GradientDirection, } from '../../theme-core/src/buttons/index';
17
17
  export { type CardBackground, type CardBorder, type CardSpacing, type CardSystem, type CardVariant, type CardVariantRole, type BoxStylesCardVariant, cardBackgroundSchema, cardBorderSchema, cardSpacingSchema, cardSystemSchema, cardVariantSchema, cardVariantRoleSchema, boxStylesCardVariantSchema, normalizeCardVariantRole, normalizeBoxStylesCardVariant, generateCardCss, generateDefaultCardSystem, generateCardCoreCss, getDefaultCardVariants, type CardVariantCore, type CardCoreSettings, type CardBackgroundType, type CardSpacingCore, } from '../../theme-core/src/cards/index';
18
18
  export { generateInputCoreCss, getDefaultInputSettings, type InputCoreSettings, } from '../../theme-core/src/inputs/core';
19
19
  export * from '../../theme-core/src/tokens/index';
@@ -5,6 +5,9 @@ export declare const audioPlayerManifest: import("..").DefinedBlockManifest<impo
5
5
  readonly title: "Audio Player";
6
6
  readonly titleSource: "title";
7
7
  readonly category: "media";
8
+ readonly contentSource: {
9
+ readonly kind: "inline";
10
+ };
8
11
  readonly description: "Add a branded audio player for a single track.";
9
12
  readonly tags: readonly ["audio", "player", "music", "podcast", "media"];
10
13
  readonly icon: "AudioLines";
@@ -5,6 +5,9 @@ export declare const bodyTextManifest: import("..").DefinedBlockManifest<import(
5
5
  readonly title: "Body Text";
6
6
  readonly titleSource: "heading";
7
7
  readonly category: "content";
8
+ readonly contentSource: {
9
+ readonly kind: "inline";
10
+ };
8
11
  readonly fragments: readonly [{
9
12
  readonly fragment: import("..").DefinedFragment<{
10
13
  readonly fields: readonly [{
@@ -8,6 +8,9 @@ export declare const contactNewsletterManifest: import("..").DefinedBlockManifes
8
8
  readonly titleSource: "contactTitle";
9
9
  readonly description: "Two-column newsletter signup and contact form section.";
10
10
  readonly category: "interactive";
11
+ readonly contentSource: {
12
+ readonly kind: "inline";
13
+ };
11
14
  readonly layout: import("..").NodeDefinition;
12
15
  readonly defaultVariant: "default";
13
16
  readonly variants: {
@@ -111,28 +111,7 @@ export declare const courseRegistrationManifest: import("..").DefinedBlockManife
111
111
  readonly multiline: false;
112
112
  readonly defaultValue: "Sign up";
113
113
  readonly maxLength: 40;
114
- }, {
115
- readonly id: "buttonVariant";
116
- readonly type: "select";
117
- readonly label: "Button style";
118
- readonly description: "Choose a button style from your theme";
119
- readonly required: false;
120
- readonly multiple: false;
121
- readonly defaultValue: "primary";
122
- readonly options: [{
123
- readonly value: "primary";
124
- readonly label: "Primary";
125
- }, {
126
- readonly value: "secondary";
127
- readonly label: "Secondary";
128
- }, {
129
- readonly value: "outline";
130
- readonly label: "Outline";
131
- }];
132
- readonly ui: {
133
- readonly intent: "style";
134
- };
135
- }];
114
+ }, import("../../../../block-form/src/backend/index").FieldDefinition];
136
115
  }>;
137
116
  export type CourseRegistrationContent = {
138
117
  heading?: string | null;
@@ -5,6 +5,9 @@ declare const ctaFullConfig: {
5
5
  readonly id: "block.cta-full";
6
6
  readonly title: "Full-width CTA";
7
7
  readonly category: "marketing";
8
+ readonly contentSource: {
9
+ readonly kind: "inline";
10
+ };
8
11
  readonly fragments: readonly [{
9
12
  readonly fragment: import("..").DefinedFragment<{
10
13
  readonly fields: readonly [{