@riverbankcms/sdk 0.127.0 → 0.128.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 (152) hide show
  1. package/dist/{PreviewEditorSidebar-BXtfF7tp.mjs → PreviewEditorSidebar-Dbvb7GIr.mjs} +9 -33
  2. package/dist/{PreviewEditorUI-Dou73Q0K.mjs → PreviewEditorUI-e9O9l20X.mjs} +3 -3
  3. package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
  4. package/dist/SdkPreviewModeRuntime-BZHt6e9w.mjs +11006 -0
  5. package/dist/{SiteChromeCustomizeContext-DZiDBAYu.mjs → SiteChromeCustomizeContext-CvuGbHJX.mjs} +31619 -1483
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +288 -36
  7. package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
  8. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
  9. package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
  10. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  11. package/dist/_dts/api/src/communications.d.ts +2 -1
  12. package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
  13. package/dist/_dts/api/src/contentRuntime.d.ts +2 -5
  14. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  15. package/dist/_dts/api/src/footerSettings.d.ts +11 -0
  16. package/dist/_dts/api/src/index.d.ts +2 -1
  17. package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
  18. package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
  19. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
  20. package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
  21. package/dist/_dts/api/src/siteOperations.d.ts +12 -3
  22. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
  23. package/dist/_dts/blocks/src/client/form.d.ts +1 -0
  24. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
  25. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
  27. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  28. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
  29. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
  30. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
  32. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
  34. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
  35. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
  37. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  38. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  39. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
  40. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  41. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
  42. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
  43. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
  44. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
  45. package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
  46. package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
  47. package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
  48. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
  49. package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
  50. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
  51. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  52. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
  53. package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
  54. package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
  55. package/dist/_dts/core/src/footer-composition.d.ts +7 -116
  56. package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
  57. package/dist/_dts/core/src/index.d.ts +4 -0
  58. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
  59. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +59 -6
  60. package/dist/_dts/db/src/index.d.ts +1 -0
  61. package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
  62. package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
  63. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
  64. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
  65. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
  66. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  67. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
  68. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +1 -1
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -4
  70. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
  71. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
  72. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
  73. package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
  74. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
  75. package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
  76. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
  77. package/dist/_dts/sdk/src/client/types.d.ts +10 -2
  78. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
  79. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  80. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  81. package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
  82. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
  83. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
  84. package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
  85. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
  86. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +7 -0
  87. package/dist/_dts/sdk/src/rendering/index.d.ts +5 -3
  88. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
  89. package/dist/_dts/sdk/src/version.d.ts +1 -1
  90. package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
  91. package/dist/_dts/site-commands/src/commands.d.ts +16 -2
  92. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +10 -4
  93. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +2 -3
  94. package/dist/cli/index.mjs +5302 -4628
  95. package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
  96. package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
  97. package/dist/client/{EventCombined.client-DJgF1_lf.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
  98. package/dist/client/{EventListing.client-CnWGNjOr.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
  99. package/dist/client/{LeafletStaticMap-BISs9Bl7.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
  100. package/dist/client/{StepIndicator-D8gVYkK-.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
  101. package/dist/client/{accordion-DFDajgDz.mjs → accordion-BfN5Eqd-.mjs} +1 -1
  102. package/dist/client/{bookingForm-Bdqj9-52.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
  103. package/dist/client/{carousel-Cvqf-kN8.mjs → carousel-DPNmiH0f.mjs} +1 -1
  104. package/dist/client/{cart-CuH2TJXP.mjs → cart--egVXlrR.mjs} +3 -3
  105. package/dist/client/{checkout-CMNPpejZ.mjs → checkout-DywWtMcq.mjs} +3 -3
  106. package/dist/client/client.mjs +4912 -4613
  107. package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
  108. package/dist/client/{eventCalendar-BW-XoxZ0.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
  109. package/dist/client/{eventCombined-Bpn7s0y9.mjs → eventCombined-D4kipYWg.mjs} +2 -2
  110. package/dist/client/{eventDetails-D2uUSTMH.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
  111. package/dist/client/{eventListing-CVr1c094.mjs → eventListing-D0vm-zST.mjs} +2 -2
  112. package/dist/client/{eventRegistration-Dv4AvkMw.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
  113. package/dist/client/{form-DxdKf9fs.mjs → form-C2Zf1n3K.mjs} +1 -1
  114. package/dist/client/{headerSection-BaXI5Sro.mjs → headerSection-CP05gzdc.mjs} +2 -2
  115. package/dist/client/hooks.mjs +212 -61
  116. package/dist/client/{locationMap-BEtW2fKz.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
  117. package/dist/client/{newsletterForm-BKKs0S4R.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
  118. package/dist/client/{pricing-ClkqcElA.mjs → pricing-DGuNR1W4.mjs} +1 -1
  119. package/dist/client/{productDetail-H-ru8dyy.mjs → productDetail-Cq-HrGew.mjs} +3 -3
  120. package/dist/client/{productList-Buyi5c0C.mjs → productList-DbB3jwqd.mjs} +3 -3
  121. package/dist/client/{propsDecoder-BF7i6Ijg.mjs → propsDecoder-CiTuhUwY.mjs} +130 -87
  122. package/dist/client/rendering/client.mjs +416 -208
  123. package/dist/client/rendering/islands.mjs +18 -18
  124. package/dist/client/rendering.mjs +5522 -5237
  125. package/dist/client/{scrollToBlock-D_7t8yWb.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
  126. package/dist/client/{shop-CF7SZQNX.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
  127. package/dist/client/{shop-commerce-DA7_Rq5p.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
  128. package/dist/client/{shop-commerce-store-BmLqW7Gh.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
  129. package/dist/client/{shopShared-WL-E1znM.mjs → shopShared-cF0c20vB.mjs} +2 -2
  130. package/dist/client/{useEventFilters-rc8VLeLV.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
  131. package/dist/client/{usePolling-1ncrfd4S.mjs → usePolling-BKf0GcE-.mjs} +2 -2
  132. package/dist/preview-next/before-render.mjs +1 -1
  133. package/dist/preview-next/client/runtime.mjs +4 -4
  134. package/dist/preview-next/middleware.mjs +1 -1
  135. package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
  136. package/dist/{sdk-runtime-BnrCCFJq.mjs → sdk-runtime-Cn_QSCOg.mjs} +2 -2
  137. package/dist/{separator-CFvBx2yl.mjs → separator-CEoGABRc.mjs} +1 -1
  138. package/dist/server/components.mjs +473 -289
  139. package/dist/server/config-validation.mjs +209 -61
  140. package/dist/server/config.mjs +209 -61
  141. package/dist/server/data.mjs +212 -61
  142. package/dist/server/index.mjs +40 -16
  143. package/dist/server/next.mjs +513 -307
  144. package/dist/server/page-converter.mjs +211 -64
  145. package/dist/server/prebuild.mjs +1 -1
  146. package/dist/server/rendering/server.mjs +475 -282
  147. package/dist/server/rendering.mjs +482 -290
  148. package/dist/server/routing.mjs +254 -80
  149. package/dist/server/server.mjs +252 -77
  150. package/package.json +1 -1
  151. package/dist/SdkPreviewModeRuntime-B0HPXr-l.mjs +0 -39546
  152. package/dist/client/MagicLinkForm-b5E_HoG9.mjs +0 -327
@@ -1688,27 +1688,36 @@ export type Database = {
1688
1688
  };
1689
1689
  billing_notifications: {
1690
1690
  Row: {
1691
+ claimed_at: string;
1691
1692
  id: string;
1692
1693
  metadata: Json | null;
1693
1694
  notification_type: string;
1695
+ recipient_email: string | null;
1694
1696
  recipients: Json;
1695
- sent_at: string;
1697
+ sent_at: string | null;
1698
+ status: string;
1696
1699
  subscription_id: string;
1697
1700
  };
1698
1701
  Insert: {
1702
+ claimed_at?: string;
1699
1703
  id?: string;
1700
1704
  metadata?: Json | null;
1701
1705
  notification_type: string;
1706
+ recipient_email?: string | null;
1702
1707
  recipients: Json;
1703
- sent_at?: string;
1708
+ sent_at?: string | null;
1709
+ status?: string;
1704
1710
  subscription_id: string;
1705
1711
  };
1706
1712
  Update: {
1713
+ claimed_at?: string;
1707
1714
  id?: string;
1708
1715
  metadata?: Json | null;
1709
1716
  notification_type?: string;
1717
+ recipient_email?: string | null;
1710
1718
  recipients?: Json;
1711
- sent_at?: string;
1719
+ sent_at?: string | null;
1720
+ status?: string;
1712
1721
  subscription_id?: string;
1713
1722
  };
1714
1723
  Relationships: [];
@@ -4349,10 +4358,11 @@ export type Database = {
4349
4358
  booking_requirement_reminder_deliveries: {
4350
4359
  Row: {
4351
4360
  appointment_id: string | null;
4361
+ claimed_at: string;
4352
4362
  course_enrollment_id: string | null;
4353
4363
  created_at: string;
4354
4364
  customer_email: string;
4355
- delivered_at: string;
4365
+ delivered_at: string | null;
4356
4366
  entity_type: string;
4357
4367
  event_attendee_id: string | null;
4358
4368
  id: string;
@@ -4360,13 +4370,15 @@ export type Database = {
4360
4370
  participant_participation_id: string;
4361
4371
  requirement_id: string;
4362
4372
  site_id: string;
4373
+ status: string;
4363
4374
  };
4364
4375
  Insert: {
4365
4376
  appointment_id?: string | null;
4377
+ claimed_at?: string;
4366
4378
  course_enrollment_id?: string | null;
4367
4379
  created_at?: string;
4368
4380
  customer_email: string;
4369
- delivered_at?: string;
4381
+ delivered_at?: string | null;
4370
4382
  entity_type: string;
4371
4383
  event_attendee_id?: string | null;
4372
4384
  id?: string;
@@ -4374,13 +4386,15 @@ export type Database = {
4374
4386
  participant_participation_id: string;
4375
4387
  requirement_id: string;
4376
4388
  site_id: string;
4389
+ status?: string;
4377
4390
  };
4378
4391
  Update: {
4379
4392
  appointment_id?: string | null;
4393
+ claimed_at?: string;
4380
4394
  course_enrollment_id?: string | null;
4381
4395
  created_at?: string;
4382
4396
  customer_email?: string;
4383
- delivered_at?: string;
4397
+ delivered_at?: string | null;
4384
4398
  entity_type?: string;
4385
4399
  event_attendee_id?: string | null;
4386
4400
  id?: string;
@@ -4388,6 +4402,7 @@ export type Database = {
4388
4402
  participant_participation_id?: string;
4389
4403
  requirement_id?: string;
4390
4404
  site_id?: string;
4405
+ status?: string;
4391
4406
  };
4392
4407
  Relationships: [
4393
4408
  {
@@ -12043,13 +12058,17 @@ export type Database = {
12043
12058
  last_paid_at: string | null;
12044
12059
  order_id: string;
12045
12060
  order_item_id: string;
12061
+ overdue_admin_notification_scheduled_at: string | null;
12046
12062
  overdue_detected_at: string | null;
12047
12063
  paid_amount_cents: number;
12048
12064
  payment_pending_started_at: string | null;
12049
12065
  payment_pending_token: string | null;
12050
12066
  remaining_balance_cents: number;
12067
+ reminder_due_1_day_scheduled_at: string | null;
12051
12068
  reminder_due_1_day_sent_at: string | null;
12069
+ reminder_due_7_days_scheduled_at: string | null;
12052
12070
  reminder_due_7_days_sent_at: string | null;
12071
+ reminder_overdue_1_day_scheduled_at: string | null;
12053
12072
  reminder_overdue_1_day_sent_at: string | null;
12054
12073
  site_id: string;
12055
12074
  status: string;
@@ -12073,13 +12092,17 @@ export type Database = {
12073
12092
  last_paid_at?: string | null;
12074
12093
  order_id: string;
12075
12094
  order_item_id: string;
12095
+ overdue_admin_notification_scheduled_at?: string | null;
12076
12096
  overdue_detected_at?: string | null;
12077
12097
  paid_amount_cents: number;
12078
12098
  payment_pending_started_at?: string | null;
12079
12099
  payment_pending_token?: string | null;
12080
12100
  remaining_balance_cents: number;
12101
+ reminder_due_1_day_scheduled_at?: string | null;
12081
12102
  reminder_due_1_day_sent_at?: string | null;
12103
+ reminder_due_7_days_scheduled_at?: string | null;
12082
12104
  reminder_due_7_days_sent_at?: string | null;
12105
+ reminder_overdue_1_day_scheduled_at?: string | null;
12083
12106
  reminder_overdue_1_day_sent_at?: string | null;
12084
12107
  site_id: string;
12085
12108
  status: string;
@@ -12103,13 +12126,17 @@ export type Database = {
12103
12126
  last_paid_at?: string | null;
12104
12127
  order_id?: string;
12105
12128
  order_item_id?: string;
12129
+ overdue_admin_notification_scheduled_at?: string | null;
12106
12130
  overdue_detected_at?: string | null;
12107
12131
  paid_amount_cents?: number;
12108
12132
  payment_pending_started_at?: string | null;
12109
12133
  payment_pending_token?: string | null;
12110
12134
  remaining_balance_cents?: number;
12135
+ reminder_due_1_day_scheduled_at?: string | null;
12111
12136
  reminder_due_1_day_sent_at?: string | null;
12137
+ reminder_due_7_days_scheduled_at?: string | null;
12112
12138
  reminder_due_7_days_sent_at?: string | null;
12139
+ reminder_overdue_1_day_scheduled_at?: string | null;
12113
12140
  reminder_overdue_1_day_sent_at?: string | null;
12114
12141
  site_id?: string;
12115
12142
  status?: string;
@@ -19088,6 +19115,20 @@ export type Database = {
19088
19115
  enrollment_status: string;
19089
19116
  }[];
19090
19117
  };
19118
+ claim_billing_notification_delivery: {
19119
+ Args: {
19120
+ p_claimed_at: string;
19121
+ p_metadata?: Json;
19122
+ p_notification_type: string;
19123
+ p_recipient: Json;
19124
+ p_recipient_email: string;
19125
+ p_subscription_id: string;
19126
+ };
19127
+ Returns: {
19128
+ claim_kind: string;
19129
+ notification_id: string;
19130
+ }[];
19131
+ };
19091
19132
  claim_dated_offering_non_cash_projections_v1_atomic: {
19092
19133
  Args: {
19093
19134
  p_claim_ttl?: unknown;
@@ -20817,6 +20858,16 @@ export type Database = {
20817
20858
  preparation_outcome: string;
20818
20859
  }[];
20819
20860
  };
20861
+ project_event_reminder_marker_if_current: {
20862
+ Args: {
20863
+ p_attendee_id: string;
20864
+ p_expected_schedule_revision: number;
20865
+ p_expected_starts_at: string;
20866
+ p_marker_at: string;
20867
+ p_marker_kind: Database["public"]["Enums"]["event_reminder_marker_kind"];
20868
+ };
20869
+ Returns: boolean;
20870
+ };
20820
20871
  provision_initial_site_theme_atomic: {
20821
20872
  Args: {
20822
20873
  p_button_style_id: string;
@@ -22220,6 +22271,7 @@ export type Database = {
22220
22271
  content_entry_status: "draft" | "scheduled" | "published" | "archived";
22221
22272
  content_owner_kind: "block" | "entry" | "page" | "entry_slot" | "surface_slot" | "page_surface";
22222
22273
  content_stage: "draft" | "published";
22274
+ event_reminder_marker_kind: "scheduled" | "sent";
22223
22275
  footer_navigation_role: "main" | "legal-policy";
22224
22276
  gsc_property_type: "domain" | "url_prefix";
22225
22277
  impersonation_scope: "read" | "write";
@@ -22964,6 +23016,7 @@ export declare const Constants: {
22964
23016
  readonly content_entry_status: readonly ["draft", "scheduled", "published", "archived"];
22965
23017
  readonly content_owner_kind: readonly ["block", "entry", "page", "entry_slot", "surface_slot", "page_surface"];
22966
23018
  readonly content_stage: readonly ["draft", "published"];
23019
+ readonly event_reminder_marker_kind: readonly ["scheduled", "sent"];
22967
23020
  readonly footer_navigation_role: readonly ["main", "legal-policy"];
22968
23021
  readonly gsc_property_type: readonly ["domain", "url_prefix"];
22969
23022
  readonly impersonation_scope: readonly ["read", "write"];
@@ -5,3 +5,4 @@ export { camelToSnake, fromDbCase, snakeToCamel, toDbCase } from './utils/case';
5
5
  export type { CamelizeKeys, CamelToSnake, DecamelizeKeys, DeepCamelizeKeys, DeepDecamelizeKeys, SnakeToCamel } from './utils/case';
6
6
  export { createPatchApplier } from './utils/patch';
7
7
  export * from './schemas/forms';
8
+ export * from './schemas/standard-contact';
@@ -10,6 +10,19 @@ export declare const formPresentationSettingsSchema: z.ZodObject<{
10
10
  submitLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
11
11
  templateKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
12
12
  }, z.core.$strict>;
13
+ export declare const contactFormDefinitionSettingsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
14
+ kind: z.ZodLiteral<"custom-contact">;
15
+ }, z.core.$strict>, z.ZodObject<{
16
+ kind: z.ZodLiteral<"standard-contact">;
17
+ optionalFields: z.ZodObject<{
18
+ name: z.ZodObject<{
19
+ visible: z.ZodBoolean;
20
+ }, z.core.$strict>;
21
+ phone: z.ZodObject<{
22
+ visible: z.ZodBoolean;
23
+ }, z.core.$strict>;
24
+ }, z.core.$strict>;
25
+ }, z.core.$strict>], "kind">;
13
26
  /**
14
27
  * Contact form settings
15
28
  * Used for general inquiry forms that send notifications to site owners
@@ -45,6 +58,19 @@ export declare const contactFormSettingsSchema: z.ZodObject<{
45
58
  }, z.core.$strict>>;
46
59
  emails: z.ZodOptional<z.ZodArray<z.ZodString>>;
47
60
  }, z.core.$strict>>;
61
+ definition: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
62
+ kind: z.ZodLiteral<"custom-contact">;
63
+ }, z.core.$strict>, z.ZodObject<{
64
+ kind: z.ZodLiteral<"standard-contact">;
65
+ optionalFields: z.ZodObject<{
66
+ name: z.ZodObject<{
67
+ visible: z.ZodBoolean;
68
+ }, z.core.$strict>;
69
+ phone: z.ZodObject<{
70
+ visible: z.ZodBoolean;
71
+ }, z.core.$strict>;
72
+ }, z.core.$strict>;
73
+ }, z.core.$strict>], "kind">>;
48
74
  }, z.core.$strict>;
49
75
  /**
50
76
  * Booking form settings
@@ -168,6 +194,19 @@ export declare const formSettingsSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
168
194
  }, z.core.$strict>>;
169
195
  emails: z.ZodOptional<z.ZodArray<z.ZodString>>;
170
196
  }, z.core.$strict>>;
197
+ definition: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
198
+ kind: z.ZodLiteral<"custom-contact">;
199
+ }, z.core.$strict>, z.ZodObject<{
200
+ kind: z.ZodLiteral<"standard-contact">;
201
+ optionalFields: z.ZodObject<{
202
+ name: z.ZodObject<{
203
+ visible: z.ZodBoolean;
204
+ }, z.core.$strict>;
205
+ phone: z.ZodObject<{
206
+ visible: z.ZodBoolean;
207
+ }, z.core.$strict>;
208
+ }, z.core.$strict>;
209
+ }, z.core.$strict>], "kind">>;
171
210
  }, z.core.$strict>, z.ZodObject<{
172
211
  type: z.ZodLiteral<"booking">;
173
212
  serviceId: z.ZodOptional<z.ZodString>;
@@ -265,6 +304,19 @@ export declare const formSettingsInputSchema: z.ZodDiscriminatedUnion<[z.ZodObje
265
304
  }, z.core.$strict>>;
266
305
  emails: z.ZodOptional<z.ZodArray<z.ZodString>>;
267
306
  }, z.core.$strict>>;
307
+ definition: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
308
+ kind: z.ZodLiteral<"custom-contact">;
309
+ }, z.core.$strict>, z.ZodObject<{
310
+ kind: z.ZodLiteral<"standard-contact">;
311
+ optionalFields: z.ZodObject<{
312
+ name: z.ZodObject<{
313
+ visible: z.ZodBoolean;
314
+ }, z.core.$strict>;
315
+ phone: z.ZodObject<{
316
+ visible: z.ZodBoolean;
317
+ }, z.core.$strict>;
318
+ }, z.core.$strict>;
319
+ }, z.core.$strict>], "kind">>;
268
320
  readonly submitLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
269
321
  readonly templateKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
270
322
  }, z.core.$strict>, z.ZodObject<{
@@ -344,6 +396,7 @@ export type BookingQuestionsFormSettings = z.infer<typeof bookingQuestionsFormSe
344
396
  export type FormSettings = z.infer<typeof formSettingsSchema>;
345
397
  export type FormPresentationSettings = z.infer<typeof formPresentationSettingsSchema>;
346
398
  export type FormSettingsInput = z.infer<typeof formSettingsInputSchema>;
399
+ export type ContactFormDefinitionSettings = z.infer<typeof contactFormDefinitionSettingsSchema>;
347
400
  type JsonRecord = Record<string, unknown>;
348
401
  export declare function stripPresentationKeysFromBehaviorSettings(value: unknown): JsonRecord;
349
402
  export declare function extractFormPresentationSettings(input: Readonly<{
@@ -886,10 +939,14 @@ export declare function parseBookingQuestionsContent(shape: BookingQuestionsForm
886
939
  * Form creation payload schema
887
940
  * Validates the request body when creating a new form via API
888
941
  */
889
- export declare const formSlugSchema: z.ZodString;
942
+ declare const formSlugBrand: unique symbol;
943
+ export type FormSlug = string & {
944
+ readonly [formSlugBrand]: 'FormSlug';
945
+ };
946
+ export declare const formSlugSchema: z.ZodPipe<z.ZodString, z.ZodTransform<FormSlug, string>>;
890
947
  export declare const createFormPayloadSchema: z.ZodObject<{
891
948
  name: z.ZodString;
892
- slug: z.ZodString;
949
+ slug: z.ZodPipe<z.ZodString, z.ZodTransform<FormSlug, string>>;
893
950
  schema: z.ZodObject<{
894
951
  version: z.ZodDefault<z.ZodString>;
895
952
  fields: z.ZodArray<z.ZodObject<{
@@ -961,6 +1018,19 @@ export declare const createFormPayloadSchema: z.ZodObject<{
961
1018
  }, z.core.$strict>>;
962
1019
  emails: z.ZodOptional<z.ZodArray<z.ZodString>>;
963
1020
  }, z.core.$strict>>;
1021
+ definition: z.ZodDefault<z.ZodDiscriminatedUnion<[z.ZodObject<{
1022
+ kind: z.ZodLiteral<"custom-contact">;
1023
+ }, z.core.$strict>, z.ZodObject<{
1024
+ kind: z.ZodLiteral<"standard-contact">;
1025
+ optionalFields: z.ZodObject<{
1026
+ name: z.ZodObject<{
1027
+ visible: z.ZodBoolean;
1028
+ }, z.core.$strict>;
1029
+ phone: z.ZodObject<{
1030
+ visible: z.ZodBoolean;
1031
+ }, z.core.$strict>;
1032
+ }, z.core.$strict>;
1033
+ }, z.core.$strict>], "kind">>;
964
1034
  readonly submitLabel: z.ZodOptional<z.ZodNullable<z.ZodString>>;
965
1035
  readonly templateKey: z.ZodOptional<z.ZodNullable<z.ZodString>>;
966
1036
  }, z.core.$strict>, z.ZodObject<{
@@ -0,0 +1,114 @@
1
+ import { z } from 'zod';
2
+ import { type ContactFormDefinitionSettings, type ContactFormSettings, type FormPresentationSettings, type FormSchema } from './forms';
3
+ export declare const standardContactFormSchemaSchema: z.ZodObject<{
4
+ version: z.ZodLiteral<"1.0">;
5
+ fields: z.ZodTuple<[z.ZodObject<{
6
+ id: z.ZodLiteral<"name">;
7
+ label: z.ZodString;
8
+ type: z.ZodLiteral<"text">;
9
+ required: z.ZodLiteral<false>;
10
+ placeholder: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strict>, z.ZodObject<{
12
+ id: z.ZodLiteral<"email">;
13
+ label: z.ZodString;
14
+ type: z.ZodLiteral<"email">;
15
+ required: z.ZodLiteral<true>;
16
+ placeholder: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strict>, z.ZodObject<{
18
+ id: z.ZodLiteral<"phone">;
19
+ label: z.ZodString;
20
+ type: z.ZodLiteral<"tel">;
21
+ required: z.ZodLiteral<false>;
22
+ placeholder: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strict>, z.ZodObject<{
24
+ id: z.ZodLiteral<"message">;
25
+ label: z.ZodString;
26
+ type: z.ZodLiteral<"textarea">;
27
+ required: z.ZodLiteral<true>;
28
+ placeholder: z.ZodOptional<z.ZodString>;
29
+ }, z.core.$strict>], null>;
30
+ }, z.core.$strict>;
31
+ export type StandardContactFormSchema = z.infer<typeof standardContactFormSchemaSchema>;
32
+ type ContactSettingsFor<TKind extends ContactFormDefinitionSettings['kind']> = ContactFormSettings & Readonly<{
33
+ definition: Extract<ContactFormDefinitionSettings, {
34
+ kind: TKind;
35
+ }>;
36
+ }>;
37
+ export type ContactFormDefinition = Readonly<{
38
+ kind: 'custom-contact';
39
+ settings: ContactSettingsFor<'custom-contact'>;
40
+ schema: FormSchema;
41
+ }> | Readonly<{
42
+ kind: 'standard-contact';
43
+ settings: ContactSettingsFor<'standard-contact'>;
44
+ schema: StandardContactFormSchema;
45
+ }>;
46
+ export type ContactFormDefinitionParseError = Readonly<{
47
+ kind: 'invalid-contact-settings';
48
+ issues: readonly string[];
49
+ }> | Readonly<{
50
+ kind: 'invalid-custom-contact-schema';
51
+ issues: readonly string[];
52
+ }> | Readonly<{
53
+ kind: 'invalid-standard-contact-schema';
54
+ issues: readonly string[];
55
+ }>;
56
+ export type ContactFormDefinitionParseResult = Readonly<{
57
+ ok: true;
58
+ value: ContactFormDefinition;
59
+ }> | Readonly<{
60
+ ok: false;
61
+ error: ContactFormDefinitionParseError;
62
+ }>;
63
+ export declare function parseContactFormDefinition(input: Readonly<{
64
+ settingsJson: unknown;
65
+ schemaJson: unknown;
66
+ }>): ContactFormDefinitionParseResult;
67
+ export type StandardContactFormPatch = Readonly<{
68
+ name?: Readonly<{
69
+ label?: string;
70
+ placeholder?: string;
71
+ visible?: boolean;
72
+ }>;
73
+ email?: Readonly<{
74
+ label?: string;
75
+ placeholder?: string;
76
+ }>;
77
+ phone?: Readonly<{
78
+ label?: string;
79
+ placeholder?: string;
80
+ visible?: boolean;
81
+ }>;
82
+ message?: Readonly<{
83
+ label?: string;
84
+ placeholder?: string;
85
+ }>;
86
+ }>;
87
+ type StandardContactDefinition = Extract<ContactFormDefinition, {
88
+ kind: 'standard-contact';
89
+ }>;
90
+ export type StandardContactFormUpdateResult = Readonly<{
91
+ ok: true;
92
+ value: StandardContactDefinition;
93
+ }> | Readonly<{
94
+ ok: false;
95
+ error: ContactFormDefinitionParseError;
96
+ }>;
97
+ export declare function createStandardContactFormDefinition(): Extract<ContactFormDefinition, {
98
+ kind: 'standard-contact';
99
+ }>;
100
+ export declare function updateStandardContactFormDefinition(current: StandardContactDefinition, patch: StandardContactFormPatch): StandardContactFormUpdateResult;
101
+ export declare function projectStandardContactRenderedSchema(definition: Extract<ContactFormDefinition, {
102
+ kind: 'standard-contact';
103
+ }>): FormSchema;
104
+ export declare function projectStandardContactAsCustom(input: Readonly<{
105
+ definition: Extract<ContactFormDefinition, {
106
+ kind: 'standard-contact';
107
+ }>;
108
+ presentation: FormPresentationSettings;
109
+ }>): Readonly<{
110
+ schema: FormSchema;
111
+ settings: ContactSettingsFor<'custom-contact'>;
112
+ presentation: FormPresentationSettings;
113
+ }>;
114
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type APIEndpoints } from '../../../../api/src/index';
2
+ type BatchBody = NonNullable<APIEndpoints['batchBlockLoaders']['body']>;
3
+ type BatchRequest = BatchBody['requests'][number];
4
+ export type PreviewBatchableLoaderEndpoint = BatchRequest['endpoint'];
5
+ export declare function toPreviewBatchParams(endpoint: PreviewBatchableLoaderEndpoint, params: Record<string, string>): BatchRequest['params'];
6
+ export {};
@@ -2,7 +2,7 @@ import React, { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import { type ContentTypeSchema } from '../../../../content-model/src/index';
4
4
  import { type ZoomLevel } from '../../../../content-editor/src/index';
5
- import type { EntrySubrouteContextData, MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
5
+ import type { EntrySubrouteContextData, Theme } from '../../../../blocks/src/index';
6
6
  import type { FieldWidgetComponent } from '../../../../block-form/src/client/index';
7
7
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
8
8
  import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
@@ -18,12 +18,9 @@ type EntryEditorPanelProps = {
18
18
  currentTemplate?: PreviewTemplateData | null;
19
19
  theme?: Theme | null;
20
20
  apiClient: ApiClient;
21
- bearerToken?: string | null;
22
- supabaseUrl?: string;
23
21
  entrySubrouteContext?: EntrySubrouteContextData | null;
24
22
  metadataPanel: ReactNode;
25
23
  linkedEntrySection?: PreviewLinkedEntrySidebarSection | null;
26
- mediaAssets?: MediaAssetIndexItem[];
27
24
  widgets: Record<string, FieldWidgetComponent>;
28
25
  sdkConfig?: SdkConfigForBlockPicker | null;
29
26
  viewportMode: ViewportMode;
@@ -33,5 +30,5 @@ type EntryEditorPanelProps = {
33
30
  onViewportWidthChange: (width: ViewportWidth) => void;
34
31
  onZoomChange: (zoom: ZoomLevel) => void;
35
32
  };
36
- export declare function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, metadataPanel, linkedEntrySection, mediaAssets, widgets, sdkConfig, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): React.JSX.Element;
33
+ export declare function EntryEditorPanel({ siteId, dashboardBaseUrl, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, entrySubrouteContext, metadataPanel, linkedEntrySection, widgets, sdkConfig, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): React.JSX.Element;
37
34
  export {};
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import type { ApiClient } from "../../../../api/src/request";
3
- import type { MediaAssetIndexItem, Theme } from "../../../../blocks/src/index";
3
+ import type { Theme } from "../../../../blocks/src/index";
4
4
  import type { FieldWidgetComponent } from "../../../../block-form/src/client/index";
5
5
  import type { SdkConfigForBlockPicker } from "../../../../editor-blocks/src/index";
6
6
  type EntrySlotBlockEditorPanelProps = {
@@ -10,11 +10,8 @@ type EntrySlotBlockEditorPanelProps = {
10
10
  entryId: string;
11
11
  theme?: Theme | null;
12
12
  apiClient: ApiClient;
13
- bearerToken?: string | null;
14
- supabaseUrl?: string;
15
13
  sdkConfig?: SdkConfigForBlockPicker | null;
16
- mediaAssets?: MediaAssetIndexItem[];
17
14
  widgets: Record<string, FieldWidgetComponent>;
18
15
  };
19
- export declare function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId, theme, apiClient, bearerToken, supabaseUrl, sdkConfig, mediaAssets, widgets, }: EntrySlotBlockEditorPanelProps): React.JSX.Element | null;
16
+ export declare function EntrySlotBlockEditorPanel({ siteId, dashboardBaseUrl, typeKey, entryId, theme, apiClient, sdkConfig, widgets, }: EntrySlotBlockEditorPanelProps): React.JSX.Element | null;
20
17
  export {};
@@ -2,7 +2,7 @@ import React, { type MutableRefObject, type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
3
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/block-editor/sdkBlockMerger';
4
4
  import type { BlockEditorHandle, BlockItem } from '../../../../editor-blocks/src/block-editor/types';
5
- import type { BookingOfferingPresetSummary, MediaAssetIndexItem, Theme } from '../../../../blocks/src/index';
5
+ import type { BookingOfferingPresetSummary, Theme } from '../../../../blocks/src/index';
6
6
  import { type EditorUiState, type ZoomLevel } from '../../../../content-editor/src/index';
7
7
  import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
8
8
  import type { PreviewZustandStoreApi } from './storeTypes';
@@ -13,8 +13,6 @@ type PageBlockEditorPanelProps = {
13
13
  dashboardBaseUrl?: string | null;
14
14
  theme?: Theme | null;
15
15
  apiClient: ApiClient;
16
- bearerToken?: string | null;
17
- supabaseUrl?: string;
18
16
  blockItems: BlockItem[];
19
17
  uiStoreForBlockEditor: PreviewZustandStoreApi<EditorUiState>;
20
18
  blockEditorRef: MutableRefObject<BlockEditorHandle | null>;
@@ -24,7 +22,6 @@ type PageBlockEditorPanelProps = {
24
22
  designPanel?: ReactNode;
25
23
  designTakeoverActive?: boolean;
26
24
  sdkConfig?: SdkConfigForBlockPicker | null;
27
- mediaAssets?: MediaAssetIndexItem[];
28
25
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
29
26
  viewportMode: ViewportMode;
30
27
  viewportWidth: ViewportWidth;
@@ -33,5 +30,5 @@ type PageBlockEditorPanelProps = {
33
30
  onViewportWidthChange: (width: ViewportWidth) => void;
34
31
  onZoomChange: (zoom: ZoomLevel) => void;
35
32
  };
36
- export declare function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClient, bearerToken, supabaseUrl, blockItems, uiStoreForBlockEditor, blockEditorRef, onBlocksChange, metadataPanel, linkedEntrySection, designPanel, designTakeoverActive, sdkConfig, mediaAssets, bookingOfferingPresets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PageBlockEditorPanelProps): React.JSX.Element;
33
+ export declare function PageBlockEditorPanel({ siteId, pageId, dashboardBaseUrl, theme, apiClient, blockItems, uiStoreForBlockEditor, blockEditorRef, onBlocksChange, metadataPanel, linkedEntrySection, designPanel, designTakeoverActive, sdkConfig, bookingOfferingPresets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PageBlockEditorPanelProps): React.JSX.Element;
37
34
  export {};
@@ -2,7 +2,7 @@ import React, { type ReactNode } from "react";
2
2
  import type { ApiClient } from "../../../../api/src/request";
3
3
  import type { SdkConfigForBlockPicker } from "../../../../editor-blocks/src/index";
4
4
  import type { SurfaceId } from "../../../../surfaces/src/index";
5
- import type { EntrySubrouteContextData, BookingOfferingPresetSummary, MediaAssetIndexItem, Theme } from "../../../../blocks/src/index";
5
+ import type { EntrySubrouteContextData, BookingOfferingPresetSummary, Theme } from "../../../../blocks/src/index";
6
6
  import { type ContentTypeSchema } from "../../../../content-model/src/index";
7
7
  import { type ZoomLevel } from "../../../../content-editor/src/index";
8
8
  import type { ButtonStyleSelection } from "../../../../theme-core/src/buttons/index";
@@ -42,11 +42,9 @@ export type PreviewEditorSidebarProps = {
42
42
  themeSelectionHeaderContext?: Partial<HeaderSelectionContext>;
43
43
  apiClient: ApiClient;
44
44
  bearerToken?: string | null;
45
- supabaseUrl?: string;
46
45
  entrySubrouteContext?: EntrySubrouteContextData | null;
47
46
  assistantPanel?: ReactNode;
48
47
  sdkConfig?: SdkConfigForBlockPicker | null;
49
- mediaAssets?: MediaAssetIndexItem[];
50
48
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
51
49
  siteStyleAccess?: SiteStyleAccess;
52
50
  activeTab: PreviewEditorSidebarTab;
@@ -60,4 +58,4 @@ export type PreviewEditorSidebarProps = {
60
58
  onViewportWidthChange: (width: ViewportWidth) => void;
61
59
  onZoomChange: (zoom: ZoomLevel) => void;
62
60
  };
63
- export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
61
+ export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, apiClient, bearerToken, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
@@ -73,7 +73,7 @@ export type PreviewShellProps = {
73
73
  entrySubrouteContext?: EntrySubrouteContextData | null;
74
74
  assistantPanel?: PreviewEditorSidebarProps['assistantPanel'];
75
75
  sdkConfig?: SdkConfigForBlockPicker | null;
76
- mediaAssets?: MediaAssetIndexItem[];
76
+ mediaAssets?: readonly MediaAssetIndexItem[];
77
77
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
78
78
  supabaseUrl?: string;
79
79
  themeRuntime?: PreviewThemeRuntime;
@@ -1,5 +1,5 @@
1
1
  import React, { type ReactNode } from "react";
2
- import { type EntrySubrouteContextData, type BookingOfferingPresetSummary, type MediaAssetIndexItem, type Theme } from "../../../../blocks/src/index";
2
+ import { type EntrySubrouteContextData, type BookingOfferingPresetSummary, type Theme } from "../../../../blocks/src/index";
3
3
  import type { ButtonStyleSelection } from "../../../../theme-core/src/buttons/index";
4
4
  import type { HeaderSelectionContext, FooterLookId, HeaderLayoutId, HeaderLookId, HeaderStyleId } from "../../../../theme-core/src/site-styles/index";
5
5
  import type { ContentTypeSchema } from "../../../../content-model/src/index";
@@ -39,16 +39,14 @@ export type PreviewShellLayoutProps = {
39
39
  themeSelectionHeaderLookId?: HeaderLookId | null;
40
40
  themeSelectionFooterLookId?: FooterLookId | null;
41
41
  themeSelectionHeaderContext?: Partial<HeaderSelectionContext>;
42
- supabaseUrl?: string;
43
42
  isSiteLaunched: boolean;
44
43
  maintenanceModeEnabled: boolean;
45
44
  entrySubrouteContext?: EntrySubrouteContextData | null;
46
45
  assistantPanel?: ReactNode;
47
46
  sdkConfig?: SdkConfigForBlockPicker | null;
48
- mediaAssets?: MediaAssetIndexItem[];
49
47
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
50
48
  themeRuntime?: PreviewThemeRuntime;
51
49
  siteStyleAccess?: SiteStyleAccess;
52
50
  onFooterSaved?: () => void;
53
51
  };
54
- export declare function PreviewShellLayout({ children, theme, renderTheme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime, siteStyleAccess, onFooterSaved, }: PreviewShellLayoutProps): React.JSX.Element;
52
+ export declare function PreviewShellLayout({ children, theme, renderTheme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonStyleSelection, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, bookingOfferingPresets, themeRuntime, siteStyleAccess, onFooterSaved, }: PreviewShellLayoutProps): React.JSX.Element;
@@ -1,16 +1,17 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '../../../../api/src/request';
3
- import { type BookingOfferingPresetSummary, type MediaAssetIndexItem, type Theme } from '../../../../blocks/src/index';
3
+ import { type BookingOfferingPresetSummary, type Theme } from '../../../../blocks/src/index';
4
4
  import type { FieldWidgetComponent } from '../../../../block-form/src/client/index';
5
5
  import type { SdkConfigForBlockPicker } from '../../../../editor-blocks/src/index';
6
6
  import { __testUtils, createPreviewEntryPickerAdapter, createPreviewLinkAdapters, createPreviewReferenceAdapters, createPreviewSiteOptionAdapters } from './widgetAdapters';
7
- export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bearerToken, supabaseUrl, mediaAssets, bookingOfferingPresets, sdkConfig, children, }: {
7
+ /**
8
+ * Composes preview form widget providers beneath PreviewShell's media authority.
9
+ * Consumers rendering this directly must provide an ancestor MediaEditorProvider.
10
+ */
11
+ export declare function PreviewFormProvider({ siteId: rawSiteId, theme, previewClient, bookingOfferingPresets, sdkConfig, children, }: {
8
12
  siteId: string;
9
13
  theme?: Theme | null;
10
14
  previewClient: ApiClient;
11
- bearerToken?: string | null;
12
- supabaseUrl?: string;
13
- mediaAssets?: MediaAssetIndexItem[];
14
15
  bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
15
16
  sdkConfig?: SdkConfigForBlockPicker | null;
16
17
  children: ReactNode;
@@ -1,3 +1,5 @@
1
+ import type { ManagementFooterContent } from '../../../../client/management/types';
2
+ import { writeFooterContentAfterPush } from '../../../content/footerFile';
1
3
  import type { EnvTarget } from '../../../helpers';
2
4
  import type { OutputContext } from '../../../output';
3
5
  import { type FooterDiff } from '../../../sync/diff';
@@ -5,6 +7,12 @@ import type { PushOptions } from '../options';
5
7
  export type FooterPushExecutionResult = Readonly<{
6
8
  success: boolean;
7
9
  }>;
10
+ export type FooterLocalRefreshResult = Readonly<{
11
+ kind: 'refreshed';
12
+ }> | Readonly<{
13
+ kind: 'failed';
14
+ cause: unknown;
15
+ }>;
8
16
  type FooterPushDecision = Readonly<{
9
17
  kind: 'unchanged';
10
18
  }> | Readonly<{
@@ -21,6 +29,7 @@ export declare function footerDryRunPayload(diff: FooterDiff): Readonly<{
21
29
  dryRun: true;
22
30
  changes: readonly string[];
23
31
  }>;
32
+ export declare function refreshLocalFooterAfterPush(contentDir: string, footer: ManagementFooterContent, writeFooter?: typeof writeFooterContentAfterPush): Promise<FooterLocalRefreshResult>;
24
33
  export declare function executeFooterPush(input: Readonly<{
25
34
  output: OutputContext;
26
35
  target: EnvTarget;