@riverbankcms/sdk 0.145.0 → 0.146.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 (159) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{PreviewEditorSidebar-O-V6Pl5a.mjs → PreviewEditorSidebar-kg2r2Fyi.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-1UlX_9cw.mjs → PreviewEditorUI-sWMLp5dT.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BxGwdOCV.mjs → PreviewQueryProvider-Cg51xq1w.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-DYbA_4iv.mjs → SdkPreviewModeRuntime-h2ti3Hch.mjs} +280 -182
  6. package/dist/{SiteChromeCustomizeContext-CNTKQ9nx.mjs → SiteChromeCustomizeContext-DEACFH9m.mjs} +1330 -734
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +924 -0
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +84 -0
  9. package/dist/_dts/api/src/bookingConfig.d.ts +8 -1
  10. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +8 -14
  11. package/dist/_dts/api/src/bookingManagementEventEndpointTypes.d.ts +45 -1
  12. package/dist/_dts/api/src/clientErrorReporting.d.ts +50 -0
  13. package/dist/_dts/api/src/communications.d.ts +20 -4
  14. package/dist/_dts/api/src/contentRuntime.d.ts +3 -7
  15. package/dist/_dts/api/src/endpoints.d.ts +223 -88
  16. package/dist/_dts/api/src/event-visibility.d.ts +20 -0
  17. package/dist/_dts/api/src/eventManagementContracts.d.ts +56 -3
  18. package/dist/_dts/api/src/eventManagementEndpointDefinitions.d.ts +24 -0
  19. package/dist/_dts/api/src/eventPageWords.d.ts +19 -0
  20. package/dist/_dts/api/src/eventSeriesRegistrationEndpointDefinitions.d.ts +14 -0
  21. package/dist/_dts/api/src/index.d.ts +7 -1
  22. package/dist/_dts/api/src/indexCoreTypes.d.ts +1 -1
  23. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  24. package/dist/_dts/api/src/launchReadiness.d.ts +20 -2
  25. package/dist/_dts/api/src/launchRequirementPriority.d.ts +3 -0
  26. package/dist/_dts/api/src/newsletterCampaignCommandEndpoints.d.ts +13 -0
  27. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +42 -0
  28. package/dist/_dts/api/src/occurrenceScheduling.d.ts +10 -0
  29. package/dist/_dts/api/src/pageSurfaceEndpoints.d.ts +44 -0
  30. package/dist/_dts/api/src/participantMessaging.d.ts +11 -1
  31. package/dist/_dts/api/src/sdk-event-upsert.d.ts +40 -1
  32. package/dist/_dts/api/src/sdkContracts.d.ts +3 -42
  33. package/dist/_dts/api/src/sdkCourseBooking.d.ts +30 -0
  34. package/dist/_dts/api/src/sdkEventEndpointDefinitions.d.ts +76 -0
  35. package/dist/_dts/api/src/sdkEventLifecycle.d.ts +37 -0
  36. package/dist/_dts/api/src/sdkManagedEventContracts.d.ts +18 -0
  37. package/dist/_dts/api/src/sdkPageDesign.d.ts +388 -0
  38. package/dist/_dts/api/src/sdkPageDesignEndpointDefinitions.d.ts +22 -0
  39. package/dist/_dts/api/src/sdkPullEventContracts.d.ts +46 -0
  40. package/dist/_dts/api/src/siteAddressEndpoints.d.ts +29 -0
  41. package/dist/_dts/api/src/siteManagementEndpointDefinitions.d.ts +49 -0
  42. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +2 -32
  43. package/dist/_dts/api/src/siteOnboarding.d.ts +75 -9
  44. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -1
  45. package/dist/_dts/api/src/types.d.ts +7 -1
  46. package/dist/_dts/api/src/wholeSeriesRuns.d.ts +14 -0
  47. package/dist/_dts/blocks/src/index.d.ts +2 -0
  48. package/dist/_dts/blocks/src/pageRenderAdmission.d.ts +10 -0
  49. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +3 -1
  50. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +27 -5
  51. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +14 -1
  52. package/dist/_dts/blocks/src/system/icons/social.d.ts +1 -1
  53. package/dist/_dts/blocks/src/system/registry.d.ts +1 -1
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.d.ts +1 -0
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +20 -4
  56. package/dist/_dts/blocks/src/system/runtime/nodes/form.fields.d.ts +5 -0
  57. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.block-submission.d.ts +36 -0
  58. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.d.ts +1 -1
  59. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +6 -1
  60. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.parts.d.ts +46 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +2 -1
  62. package/dist/_dts/blocks/src/system/runtime/resolver.d.ts +2 -1
  63. package/dist/_dts/blocks/src/system/runtime/shared/components/CheckboxChoice.d.ts +18 -0
  64. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +1 -0
  65. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  66. package/dist/_dts/content-editor/src/primitives/previewEditableOutline.d.ts +2 -0
  67. package/dist/_dts/content-editor/src/ui/editorBlockEquality.d.ts +3 -0
  68. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -5
  69. package/dist/_dts/core/src/block-content-identity.d.ts +5 -0
  70. package/dist/_dts/core/src/editor-state.d.ts +2 -7
  71. package/dist/_dts/core/src/index.d.ts +1 -0
  72. package/dist/_dts/core/src/mailing-list-submission.d.ts +3 -1
  73. package/dist/_dts/core/src/public-event-booking-availability.d.ts +20 -1
  74. package/dist/_dts/core/src/public-profile.d.ts +3 -1
  75. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +49 -2
  76. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +3 -0
  77. package/dist/_dts/editor-blocks/src/block-editor/EmptyState.d.ts +13 -1
  78. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +2 -8
  79. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  80. package/dist/_dts/preview-next/src/client/blocks/composer/types.d.ts +3 -4
  81. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -2
  82. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +0 -1
  83. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +2 -2
  84. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +2 -2
  85. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +6 -1
  86. package/dist/_dts/sdk/src/rendering/helpers/loadPage.d.ts +5 -2
  87. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +6 -1
  88. package/dist/_dts/sdk/src/rendering/helpers/templateContent.d.ts +2 -0
  89. package/dist/_dts/sdk/src/rendering/hooks/useContent.d.ts +5 -1
  90. package/dist/_dts/sdk/src/rendering/hooks/usePage.d.ts +5 -1
  91. package/dist/_dts/sdk/src/version.d.ts +1 -1
  92. package/dist/_dts/surfaces/src/index.d.ts +9 -0
  93. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/inputs/checkable.d.ts +42 -0
  95. package/dist/_dts/theme-core/src/inputs/inputGroup.d.ts +19 -0
  96. package/dist/_dts/ui/src/navigation-tabs.d.ts +2 -1
  97. package/dist/client/{BookingConsentAgreement-DlVOmpW4.mjs → BookingConsentAgreement-BQKL045f.mjs} +2 -2
  98. package/dist/client/CheckboxChoice--W2n6yKs.mjs +24 -0
  99. package/dist/client/{DiscountCodeDisclosure-T9q623PQ.mjs → DiscountCodeDisclosure-CsOtjFY7.mjs} +1 -1
  100. package/dist/client/{EventCombined.client-DnsUeONl.mjs → EventCombined.client-BdRjVbhH.mjs} +6 -6
  101. package/dist/client/{EventListing.client-CNBFqJS4.mjs → EventListing.client-DBxC6xOU.mjs} +2 -2
  102. package/dist/client/{LeafletStaticMap-C7higg52.mjs → LeafletStaticMap-mHEJKrTs.mjs} +1 -1
  103. package/dist/client/{ThemedButton-LAJTNrS8.mjs → ThemedButton-CE5KYT6z.mjs} +1 -1
  104. package/dist/client/{accordion-BcNF9TjX.mjs → accordion-BEQNSptH.mjs} +1 -1
  105. package/dist/client/{bookingForm-BUaQ3S03.mjs → bookingForm-AMr-s5vw.mjs} +33 -52
  106. package/dist/client/bookings.mjs +48 -46
  107. package/dist/client/{carousel-CTdF6e0V.mjs → carousel-Bbt_QgJy.mjs} +1 -1
  108. package/dist/client/{cart-pGtyf_XU.mjs → cart-CnWi30zJ.mjs} +3 -3
  109. package/dist/client/{checkout-Da9WSn7Y.mjs → checkout-f3nkWgd4.mjs} +3 -3
  110. package/dist/client/client.mjs +1611 -815
  111. package/dist/client/{context-BFeY_Wbm.mjs → context-Bc8T6pCe.mjs} +1 -1
  112. package/dist/client/{dates-BhwVSxDg.mjs → dates-DUsCEzLb.mjs} +2 -3
  113. package/dist/client/{eventCalendar-BAtdnR4s.mjs → eventCalendar-CKwgXui5.mjs} +9 -9
  114. package/dist/client/{eventCombined-RksA3tRC.mjs → eventCombined-CBAOSTGR.mjs} +4 -4
  115. package/dist/client/{eventDetails-BB9hB4wR.mjs → eventDetails-Dh-_WiBD.mjs} +4 -4
  116. package/dist/client/{eventListing-BpJBkviM.mjs → eventListing-CA3frIH5.mjs} +4 -4
  117. package/dist/client/{eventRegistration-B18jFq_o.mjs → eventRegistration-BHtsgdcg.mjs} +21 -22
  118. package/dist/client/{form-Dodt8Y8t.mjs → form-C2h3YAcg.mjs} +135 -104
  119. package/dist/client/{headerSection-B0qj9ttg.mjs → headerSection-lwMuMTH9.mjs} +3 -3
  120. package/dist/client/hooks.mjs +489 -65
  121. package/dist/client/{locationMap-gn-iMk7a.mjs → locationMap-DJ2bLODV.mjs} +3 -3
  122. package/dist/client/{newsletterForm-oByLdFkr.mjs → newsletterForm-8Pu5K32g.mjs} +203 -101
  123. package/dist/client/{pricing-BOU0_Hai.mjs → pricing-HHx3IgBz.mjs} +1 -1
  124. package/dist/client/{productDetail-D9v1zH2j.mjs → productDetail-C_1odnAf.mjs} +3 -3
  125. package/dist/client/{productList-D-mItx1n.mjs → productList-CtCv-Nmx.mjs} +3 -3
  126. package/dist/client/{propsDecoder-C3TP_z4x.mjs → propsDecoder-Dcgsncxb.mjs} +40 -23
  127. package/dist/client/rendering/client.mjs +490 -457
  128. package/dist/client/rendering/islands.mjs +17 -17
  129. package/dist/client/rendering.mjs +1515 -628
  130. package/dist/client/{routeIslandApiConfig-DzN1W0sq.mjs → routeIslandApiConfig-CWLP7wu3.mjs} +1 -1
  131. package/dist/client/{scrollToBlock-CWs8EIdo.mjs → scrollToBlock-BNgaEUpo.mjs} +1 -1
  132. package/dist/client/{shop-Dufw7N7o.mjs → shop-DQXrQ8kJ.mjs} +7 -7
  133. package/dist/client/{shop-commerce-gklw_hLF.mjs → shop-commerce-B88zmWWo.mjs} +6 -6
  134. package/dist/client/{shop-commerce-store-Sf1eyTaZ.mjs → shop-commerce-store-DtSfkKuX.mjs} +1 -1
  135. package/dist/client/{shopShared-B5nyA41S.mjs → shopShared-cuaONpkJ.mjs} +4 -4
  136. package/dist/client/{useEventFilters-CLL829vy.mjs → useEventFilters-Bukew6Gb.mjs} +6 -6
  137. package/dist/preview-next/before-render.mjs +368 -103
  138. package/dist/preview-next/client/runtime.mjs +4 -4
  139. package/dist/preview-next/editor-base.css +11 -0
  140. package/dist/preview-next/keepAlive.mjs +328 -103
  141. package/dist/preview-next/middleware.mjs +329 -103
  142. package/dist/{previewAuthStore-BxAFlu-j.mjs → previewAuthStore-h5IgbSp4.mjs} +353 -103
  143. package/dist/{sdk-runtime-D0uZFev7.mjs → sdk-runtime-DTc1uIXn.mjs} +2 -2
  144. package/dist/{separator-EvdCAn4V.mjs → separator-BpHS1KZK.mjs} +1 -1
  145. package/dist/server/components.mjs +1376 -331
  146. package/dist/server/config-validation.mjs +405 -27
  147. package/dist/server/config.mjs +405 -27
  148. package/dist/server/data.mjs +405 -27
  149. package/dist/server/index.mjs +370 -104
  150. package/dist/server/next.mjs +1430 -463
  151. package/dist/server/page-converter.mjs +36 -25
  152. package/dist/server/prebuild.mjs +1 -1
  153. package/dist/server/rendering/server.mjs +1374 -331
  154. package/dist/server/rendering.mjs +1436 -364
  155. package/dist/server/routing.mjs +476 -43
  156. package/dist/server/server.mjs +504 -169
  157. package/dist/server/theme-bridge.mjs +467 -111
  158. package/dist/styles/index.css +186 -65
  159. package/package.json +1 -1
@@ -6,6 +6,46 @@ import { jsx } from "react/jsx-runtime";
6
6
  //#region ../surfaces/src/index.ts
7
7
  const SURFACE_IDS = ["core", "macadamia"];
8
8
  const DEFAULT_SURFACE_ID = "core";
9
+ /**
10
+ * Root hosts for each surface, keyed by deployment tier. The tier-keyed shape
11
+ * makes it impossible to mis-order entries: callers like
12
+ * `buildSurfaceAwareDashboardOriginForSurfaceId` look up by tier directly
13
+ * rather than relying on positional alignment between arrays.
14
+ */
15
+ const SURFACE_ROOT_HOSTS = {
16
+ core: {
17
+ local: "localhost",
18
+ prod: "riverbankcms.com"
19
+ },
20
+ macadamia: {
21
+ local: "macadamia.localhost",
22
+ prod: "macadamia.studio"
23
+ }
24
+ };
25
+ const SURFACE_SITE_ROOT_HOSTS = {
26
+ core: {
27
+ local: "localhost",
28
+ prod: "riverbanksites.com"
29
+ },
30
+ macadamia: {
31
+ local: "macadamia.localhost",
32
+ prod: "macadamia.studio"
33
+ }
34
+ };
35
+ const SURFACE_SITE_ROOT_HOST_ALIASES = { core: { prod: ["preview.riverbanksites.com"] } };
36
+ function surfaceHostTableValues(table) {
37
+ return Object.values(table).flatMap((byTier) => Object.values(byTier).flat());
38
+ }
39
+ function siteSlugLabelUnderRoot(host, siteRootHost) {
40
+ if (!host.endsWith(`.${siteRootHost}`)) return [];
41
+ return host.slice(0, host.length - siteRootHost.length - 1).split(".").slice(-1);
42
+ }
43
+ function deriveSurfaceOwnedSiteSlugs() {
44
+ const siteRootHosts = [...surfaceHostTableValues(SURFACE_SITE_ROOT_HOSTS), ...surfaceHostTableValues(SURFACE_SITE_ROOT_HOST_ALIASES)];
45
+ const labels = [...surfaceHostTableValues(SURFACE_ROOT_HOSTS), ...siteRootHosts].flatMap((host) => siteRootHosts.flatMap((root) => siteSlugLabelUnderRoot(host, root)));
46
+ return [...new Set(labels)].sort();
47
+ }
48
+ deriveSurfaceOwnedSiteSlugs();
9
49
  [...SURFACE_IDS.filter((surfaceId) => surfaceId !== DEFAULT_SURFACE_ID)];
10
50
  //#endregion
11
51
  //#region ../preview-next/src/auth-contract.ts
@@ -978,6 +1018,13 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
978
1018
  errors: [],
979
1019
  responseKind: "blob"
980
1020
  },
1021
+ exportEventOfferingRegistrationsCsv: {
1022
+ path: "/sites/{siteId}/bookings/event-offerings/{eventOfferingId}/registrations/export.csv",
1023
+ method: "GET",
1024
+ auth: "user",
1025
+ errors: [],
1026
+ responseKind: "blob"
1027
+ },
981
1028
  updateEventSeriesRegistration: {
982
1029
  path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}",
983
1030
  method: "PATCH",
@@ -988,6 +1035,19 @@ const EVENT_SERIES_REGISTRATION_ENDPOINT_DEFINITIONS = defineEndpointDefinitions
988
1035
  "resource:not_found",
989
1036
  "server:internal_error"
990
1037
  ]
1038
+ },
1039
+ saveEventSeriesRegistrationAnswers: {
1040
+ path: "/sites/{siteId}/bookings/event-series/{seriesId}/registrations/{registrationId}/answers",
1041
+ method: "PUT",
1042
+ auth: "user",
1043
+ responseKind: "json",
1044
+ errors: [
1045
+ "validation:invalid_input",
1046
+ "auth:forbidden",
1047
+ "resource:not_found",
1048
+ "resource:conflict",
1049
+ "server:internal_error"
1050
+ ]
991
1051
  }
992
1052
  });
993
1053
  //#endregion
@@ -1408,6 +1468,30 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1408
1468
  responseKind: "json",
1409
1469
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1410
1470
  },
1471
+ scheduleNewsletterCampaign: {
1472
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/schedule",
1473
+ method: "POST",
1474
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1475
+ auth: "user",
1476
+ responseKind: "json",
1477
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1478
+ },
1479
+ unscheduleNewsletterCampaign: {
1480
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/unschedule",
1481
+ method: "POST",
1482
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1483
+ auth: "user",
1484
+ responseKind: "json",
1485
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1486
+ },
1487
+ stopNewsletterCampaign: {
1488
+ path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/stop",
1489
+ method: "POST",
1490
+ tags: [TAG_TEMPLATES.site, TAG_TEMPLATES.siteNewsletter],
1491
+ auth: "user",
1492
+ responseKind: "json",
1493
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1494
+ },
1411
1495
  testSendNewsletterCampaign: {
1412
1496
  path: "/sites/{siteId}/newsletter/campaigns/{campaignId}/test-send",
1413
1497
  method: "POST",
@@ -1417,6 +1501,154 @@ const NEWSLETTER_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1417
1501
  demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1418
1502
  }
1419
1503
  });
1504
+ //#endregion
1505
+ //#region ../api/src/sdkEventEndpointDefinitions.ts
1506
+ /**
1507
+ * The SDK's Event graph: the Events themselves and the occurrences of one run.
1508
+ * Extracted from `endpoints.ts` so this family can be read, and added to, on
1509
+ * its own. New entries here must declare `errors`; the
1510
+ * require-api-endpoint-errors lint enforces that here as in endpoints.ts.
1511
+ */
1512
+ const SDK_EVENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1513
+ sdkListEvents: {
1514
+ path: "/sdk/{siteId}/events",
1515
+ method: "GET",
1516
+ auth: "service",
1517
+ responseKind: "json"
1518
+ },
1519
+ sdkUpsertEvent: {
1520
+ path: "/sdk/{siteId}/events",
1521
+ method: "POST",
1522
+ auth: "service",
1523
+ responseKind: "json",
1524
+ errors: [
1525
+ "validation:invalid_input",
1526
+ "resource:not_found",
1527
+ "resource:conflict",
1528
+ "billing:plan_limit_exceeded",
1529
+ "server:internal_error"
1530
+ ]
1531
+ },
1532
+ sdkGetEvent: {
1533
+ path: "/sdk/{siteId}/events/{identifier}",
1534
+ method: "GET",
1535
+ auth: "service",
1536
+ responseKind: "json"
1537
+ },
1538
+ sdkDeleteEvent: {
1539
+ path: "/sdk/{siteId}/events/{identifier}",
1540
+ method: "DELETE",
1541
+ auth: "service",
1542
+ responseKind: "json",
1543
+ errors: [
1544
+ "resource:not_found",
1545
+ "resource:conflict",
1546
+ "server:internal_error"
1547
+ ]
1548
+ },
1549
+ sdkTakeEventOffline: {
1550
+ path: "/sdk/{siteId}/events/{identifier}/lifecycle",
1551
+ method: "POST",
1552
+ auth: "service",
1553
+ responseKind: "json",
1554
+ errors: [
1555
+ "resource:not_found",
1556
+ "validation:invalid_input",
1557
+ "resource:conflict",
1558
+ "server:internal_error"
1559
+ ]
1560
+ },
1561
+ sdkListEventOccurrences: {
1562
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
1563
+ method: "GET",
1564
+ auth: "service",
1565
+ responseKind: "json",
1566
+ errors: [
1567
+ "resource:not_found",
1568
+ "validation:invalid_input",
1569
+ "server:internal_error"
1570
+ ]
1571
+ },
1572
+ sdkAddEventOccurrence: {
1573
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
1574
+ method: "POST",
1575
+ auth: "service",
1576
+ responseKind: "json",
1577
+ errors: [
1578
+ "resource:not_found",
1579
+ "validation:invalid_input",
1580
+ "resource:conflict",
1581
+ "server:internal_error"
1582
+ ]
1583
+ },
1584
+ sdkUpdateEventOccurrence: {
1585
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
1586
+ method: "PATCH",
1587
+ auth: "service",
1588
+ responseKind: "json",
1589
+ errors: [
1590
+ "resource:not_found",
1591
+ "validation:invalid_input",
1592
+ "resource:conflict",
1593
+ "server:internal_error"
1594
+ ]
1595
+ },
1596
+ sdkCancelEventOccurrence: {
1597
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
1598
+ method: "POST",
1599
+ auth: "service",
1600
+ responseKind: "json",
1601
+ errors: [
1602
+ "resource:not_found",
1603
+ "resource:conflict",
1604
+ "server:internal_error"
1605
+ ]
1606
+ },
1607
+ sdkDeleteEventOccurrence: {
1608
+ path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
1609
+ method: "DELETE",
1610
+ auth: "service",
1611
+ responseKind: "json",
1612
+ errors: [
1613
+ "resource:not_found",
1614
+ "resource:conflict",
1615
+ "server:internal_error"
1616
+ ]
1617
+ }
1618
+ });
1619
+ //#endregion
1620
+ //#region ../api/src/sdkPageDesignEndpointDefinitions.ts
1621
+ /**
1622
+ * SDK management endpoints for a page's draft design (issue 1497), spread into
1623
+ * `ENDPOINT_DEFINITIONS` like the other endpoint-definition modules. New
1624
+ * entries here must declare `errors`, which the require-api-endpoint-errors
1625
+ * lint enforces.
1626
+ */
1627
+ const SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1628
+ sdkGetPageDesign: {
1629
+ path: "/sdk/{siteId}/pages/{identifier}/design",
1630
+ method: "GET",
1631
+ auth: "service",
1632
+ responseKind: "json",
1633
+ errors: [
1634
+ "resource:not_found",
1635
+ "validation:invalid_input",
1636
+ "server:internal_error"
1637
+ ]
1638
+ },
1639
+ sdkSavePageDesign: {
1640
+ path: "/sdk/{siteId}/pages/{identifier}/design",
1641
+ method: "POST",
1642
+ auth: "service",
1643
+ responseKind: "json",
1644
+ errors: [
1645
+ "resource:not_found",
1646
+ "validation:invalid_input",
1647
+ "resource:conflict",
1648
+ "server:internal_error"
1649
+ ]
1650
+ }
1651
+ });
1420
1652
  const PUBLIC_CONTENT_FRESHNESS_SECONDS = 3600;
1421
1653
  function availability(transport) {
1422
1654
  return {
@@ -1712,6 +1944,45 @@ const SITE_API_KEY_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1712
1944
  }
1713
1945
  });
1714
1946
  //#endregion
1947
+ //#region ../api/src/siteManagementEndpointDefinitions.ts
1948
+ const SITE_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1949
+ createSite: {
1950
+ path: "/sites/manage",
1951
+ method: "POST",
1952
+ tags: ["site"],
1953
+ auth: "user",
1954
+ responseKind: "json"
1955
+ },
1956
+ updateSite: {
1957
+ path: "/sites/manage",
1958
+ method: "PUT",
1959
+ tags: ["site"],
1960
+ auth: "user",
1961
+ responseKind: "json"
1962
+ },
1963
+ changeSiteAddress: {
1964
+ path: "/sites/{siteId}/address",
1965
+ method: "PUT",
1966
+ auth: "user",
1967
+ responseKind: "json",
1968
+ demoMutation: DEMO_MUTATION_BLOCKED_DISABLED
1969
+ },
1970
+ getSiteAddressAvailability: {
1971
+ path: "/sites/{siteId}/address/availability",
1972
+ method: "GET",
1973
+ auth: "user",
1974
+ responseKind: "json"
1975
+ },
1976
+ deleteSite: {
1977
+ path: "/sites/{siteId}",
1978
+ method: "DELETE",
1979
+ tags: ["site", "site-{siteId}"],
1980
+ auth: "user",
1981
+ responseKind: "json",
1982
+ demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
1983
+ }
1984
+ });
1985
+ //#endregion
1715
1986
  //#region ../api/src/eventManagementEndpointDefinitions.ts
1716
1987
  const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1717
1988
  listEvents: {
@@ -1759,6 +2030,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1759
2030
  "server:internal_error"
1760
2031
  ]
1761
2032
  },
2033
+ /**
2034
+ * The web address of an event's own page. A course page belongs to the
2035
+ * event itself, so its address is written here rather than through a run.
2036
+ */
2037
+ updateEventAddress: {
2038
+ path: "/sites/{siteId}/bookings/events/{eventId}/address",
2039
+ method: "PATCH",
2040
+ tags: [
2041
+ "site-{siteId}",
2042
+ "event-series-{siteId}",
2043
+ TAG_TEMPLATES.siteRoutableContent,
2044
+ TAG_TEMPLATES.siteRedirects
2045
+ ],
2046
+ auth: "user",
2047
+ responseKind: "json",
2048
+ errors: [
2049
+ "validation:invalid_input",
2050
+ "resource:not_found",
2051
+ "resource:conflict",
2052
+ "server:internal_error"
2053
+ ]
2054
+ },
1762
2055
  createWholeSeriesRun: {
1763
2056
  path: "/sites/{siteId}/bookings/events/{eventId}/runs",
1764
2057
  method: "POST",
@@ -1785,6 +2078,20 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1785
2078
  "server:internal_error"
1786
2079
  ]
1787
2080
  },
2081
+ updateCourseBookingSettings: {
2082
+ path: "/sites/{siteId}/bookings/events/{eventId}/booking-settings",
2083
+ method: "PATCH",
2084
+ tags: ["site-{siteId}", "event-series-{siteId}"],
2085
+ auth: "user",
2086
+ responseKind: "json",
2087
+ errors: [
2088
+ "validation:invalid_input",
2089
+ "auth:forbidden",
2090
+ "resource:not_found",
2091
+ "resource:conflict",
2092
+ "server:internal_error"
2093
+ ]
2094
+ },
1788
2095
  cancelWholeSeriesRun: {
1789
2096
  path: "/sites/{siteId}/bookings/events/{eventId}/runs/{runId}/cancellation",
1790
2097
  method: "POST",
@@ -1797,6 +2104,28 @@ const EVENT_MANAGEMENT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
1797
2104
  "resource:conflict",
1798
2105
  "server:internal_error"
1799
2106
  ]
2107
+ },
2108
+ /**
2109
+ * The Content tab's one write: the short introduction, image and
2110
+ * description of an event's page, published without its layout.
2111
+ */
2112
+ saveEventPageWords: {
2113
+ path: "/sites/{siteId}/page-surfaces/{pageSurfaceId}/words",
2114
+ method: "PUT",
2115
+ tags: [
2116
+ TAG_TEMPLATES.siteCollection,
2117
+ TAG_TEMPLATES.siteRoutableContent,
2118
+ TAG_TEMPLATES.pageSurfaceById
2119
+ ],
2120
+ auth: "user",
2121
+ responseKind: "json",
2122
+ errors: [
2123
+ "auth:forbidden",
2124
+ "validation:invalid_input",
2125
+ "resource:not_found",
2126
+ "resource:conflict",
2127
+ "server:internal_error"
2128
+ ]
1800
2129
  }
1801
2130
  });
1802
2131
  //#endregion
@@ -2229,7 +2558,43 @@ const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
2229
2558
  responseKind: "json"
2230
2559
  }
2231
2560
  });
2561
+ //#endregion
2562
+ //#region ../api/src/clientErrorReporting.ts
2563
+ const CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({ reportClientError: {
2564
+ path: "/client/error-report",
2565
+ method: "POST",
2566
+ auth: "user",
2567
+ errors: [],
2568
+ responseKind: "json"
2569
+ } });
2570
+ const CLIENT_ERROR_REPORT_LIMITS = {
2571
+ pathname: 1024,
2572
+ name: 120,
2573
+ message: 2e3,
2574
+ stack: 8e3,
2575
+ digest: 128,
2576
+ componentStack: 8e3,
2577
+ sourceLocation: 1024
2578
+ };
2579
+ const clientErrorEventSchema = z.enum([
2580
+ "dashboard:route-error",
2581
+ "dashboard:app-error",
2582
+ "client:error-boundary",
2583
+ "client:window-error",
2584
+ "client:unhandled-rejection"
2585
+ ]);
2586
+ z.object({
2587
+ event: clientErrorEventSchema,
2588
+ pathname: z.string().startsWith("/").max(CLIENT_ERROR_REPORT_LIMITS.pathname),
2589
+ name: z.string().max(CLIENT_ERROR_REPORT_LIMITS.name),
2590
+ message: z.string().max(CLIENT_ERROR_REPORT_LIMITS.message),
2591
+ stack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.stack).nullable(),
2592
+ digest: z.string().max(CLIENT_ERROR_REPORT_LIMITS.digest).nullable(),
2593
+ componentStack: z.string().max(CLIENT_ERROR_REPORT_LIMITS.componentStack).nullable(),
2594
+ sourceLocation: z.string().max(CLIENT_ERROR_REPORT_LIMITS.sourceLocation).nullable()
2595
+ }).strict();
2232
2596
  const API_ENDPOINTS = {
2597
+ ...CLIENT_ERROR_REPORT_ENDPOINT_DEFINITIONS,
2233
2598
  ...PUBLIC_NEWSLETTER_ENDPOINT_DEFINITIONS,
2234
2599
  ...ACCOUNT_ENDPOINT_DEFINITIONS,
2235
2600
  ...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
@@ -2237,6 +2602,7 @@ const API_ENDPOINTS = {
2237
2602
  ...GIFTING_ENDPOINT_DEFINITIONS,
2238
2603
  ...PUBLIC_READ_ENDPOINT_DEFINITIONS,
2239
2604
  ...BILLING_ENDPOINT_DEFINITIONS,
2605
+ ...SITE_MANAGEMENT_ENDPOINT_DEFINITIONS,
2240
2606
  aiContentUpdateChat: {
2241
2607
  path: "/ai/content-update-chat",
2242
2608
  method: "POST",
@@ -2763,13 +3129,6 @@ const API_ENDPOINTS = {
2763
3129
  auth: "user",
2764
3130
  responseKind: "json"
2765
3131
  },
2766
- createSite: {
2767
- path: "/sites/manage",
2768
- method: "POST",
2769
- tags: ["site"],
2770
- auth: "user",
2771
- responseKind: "json"
2772
- },
2773
3132
  createSiteManual: {
2774
3133
  path: "/sites/manual",
2775
3134
  method: "POST",
@@ -2777,21 +3136,6 @@ const API_ENDPOINTS = {
2777
3136
  auth: "user",
2778
3137
  responseKind: "json"
2779
3138
  },
2780
- updateSite: {
2781
- path: "/sites/manage",
2782
- method: "PUT",
2783
- tags: ["site"],
2784
- auth: "user",
2785
- responseKind: "json"
2786
- },
2787
- deleteSite: {
2788
- path: "/sites/{siteId}",
2789
- method: "DELETE",
2790
- tags: ["site", "site-{siteId}"],
2791
- auth: "user",
2792
- responseKind: "json",
2793
- demoMutation: DEMO_MUTATION_BLOCKED_HIDDEN
2794
- },
2795
3139
  listSiteMembers: {
2796
3140
  path: "/sites/{siteId}/members",
2797
3141
  method: "GET",
@@ -7024,6 +7368,7 @@ const API_ENDPOINTS = {
7024
7368
  auth: "service",
7025
7369
  responseKind: "json"
7026
7370
  },
7371
+ ...SDK_PAGE_DESIGN_ENDPOINT_DEFINITIONS,
7027
7372
  sdkUpsertPageBlock: {
7028
7373
  path: "/sdk/{siteId}/pages/{identifier}/blocks",
7029
7374
  method: "POST",
@@ -7146,87 +7491,7 @@ const API_ENDPOINTS = {
7146
7491
  auth: "service",
7147
7492
  responseKind: "json"
7148
7493
  },
7149
- sdkListEvents: {
7150
- path: "/sdk/{siteId}/events",
7151
- method: "GET",
7152
- auth: "service",
7153
- responseKind: "json"
7154
- },
7155
- sdkUpsertEvent: {
7156
- path: "/sdk/{siteId}/events",
7157
- method: "POST",
7158
- auth: "service",
7159
- responseKind: "json"
7160
- },
7161
- sdkGetEvent: {
7162
- path: "/sdk/{siteId}/events/{identifier}",
7163
- method: "GET",
7164
- auth: "service",
7165
- responseKind: "json"
7166
- },
7167
- sdkDeleteEvent: {
7168
- path: "/sdk/{siteId}/events/{identifier}",
7169
- method: "DELETE",
7170
- auth: "service",
7171
- responseKind: "json"
7172
- },
7173
- sdkListEventOccurrences: {
7174
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
7175
- method: "GET",
7176
- auth: "service",
7177
- responseKind: "json",
7178
- errors: [
7179
- "resource:not_found",
7180
- "validation:invalid_input",
7181
- "server:internal_error"
7182
- ]
7183
- },
7184
- sdkAddEventOccurrence: {
7185
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences",
7186
- method: "POST",
7187
- auth: "service",
7188
- responseKind: "json",
7189
- errors: [
7190
- "resource:not_found",
7191
- "validation:invalid_input",
7192
- "resource:conflict",
7193
- "server:internal_error"
7194
- ]
7195
- },
7196
- sdkUpdateEventOccurrence: {
7197
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
7198
- method: "PATCH",
7199
- auth: "service",
7200
- responseKind: "json",
7201
- errors: [
7202
- "resource:not_found",
7203
- "validation:invalid_input",
7204
- "resource:conflict",
7205
- "server:internal_error"
7206
- ]
7207
- },
7208
- sdkCancelEventOccurrence: {
7209
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}/cancel",
7210
- method: "POST",
7211
- auth: "service",
7212
- responseKind: "json",
7213
- errors: [
7214
- "resource:not_found",
7215
- "resource:conflict",
7216
- "server:internal_error"
7217
- ]
7218
- },
7219
- sdkDeleteEventOccurrence: {
7220
- path: "/sdk/{siteId}/events/{identifier}/runs/{runIdentifier}/occurrences/{occurrenceId}",
7221
- method: "DELETE",
7222
- auth: "service",
7223
- responseKind: "json",
7224
- errors: [
7225
- "resource:not_found",
7226
- "resource:conflict",
7227
- "server:internal_error"
7228
- ]
7229
- },
7494
+ ...SDK_EVENT_ENDPOINT_DEFINITIONS,
7230
7495
  sdkUpsertEntry: {
7231
7496
  path: "/sdk/{siteId}/entries",
7232
7497
  method: "POST",
@@ -1,16 +1,16 @@
1
1
  "use client";
2
- import { a as usePreviewLayout, i as useOptionalPreviewLayout, n as createPreviewQueryClient, r as PreviewLayoutProvider, t as PreviewQueryProvider } from "../../PreviewQueryProvider-BxGwdOCV.mjs";
2
+ import { a as usePreviewLayout, i as useOptionalPreviewLayout, n as createPreviewQueryClient, r as PreviewLayoutProvider, t as PreviewQueryProvider } from "../../PreviewQueryProvider-Cg51xq1w.mjs";
3
3
  import React from "react";
4
4
  import { jsx } from "react/jsx-runtime";
5
5
  //#region src/preview-next/client/runtime.tsx
6
6
  const LazySdkPreviewMode = React.lazy(async () => {
7
- return { default: (await import("../../SdkPreviewModeRuntime-DYbA_4iv.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
7
+ return { default: (await import("../../SdkPreviewModeRuntime-h2ti3Hch.mjs").then((n) => n.n)).SdkPreviewModeRuntime };
8
8
  });
9
9
  const LazyPreviewShell = React.lazy(async () => {
10
- return { default: (await import("../../sdk-runtime-D0uZFev7.mjs")).PreviewShell };
10
+ return { default: (await import("../../sdk-runtime-DTc1uIXn.mjs")).PreviewShell };
11
11
  });
12
12
  const LazyPreviewShellLayout = React.lazy(async () => {
13
- return { default: (await import("../../sdk-runtime-D0uZFev7.mjs")).PreviewShellLayout };
13
+ return { default: (await import("../../sdk-runtime-DTc1uIXn.mjs")).PreviewShellLayout };
14
14
  });
15
15
  function SdkPreviewMode(props) {
16
16
  return /* @__PURE__ */ jsx(React.Suspense, {
@@ -33,6 +33,11 @@
33
33
  --surface: oklch(0.96 0.012 185);
34
34
  --surface-foreground: oklch(0.35 0.02 30);
35
35
 
36
+ /* Inverse - a dark band with light text (launch address panel). Surfaces
37
+ with a brand ink override it. */
38
+ --inverse: var(--foreground);
39
+ --inverse-foreground: var(--background);
40
+
36
41
  /* Accent - Light teal tint */
37
42
  --accent: oklch(0.96 0.02 180);
38
43
  --accent-foreground: oklch(0.35 0.02 30);
@@ -148,6 +153,10 @@
148
153
  --surface: oklch(0.26 0.02 185);
149
154
  --surface-foreground: oklch(0.92 0.02 55);
150
155
 
156
+ /* Inverse - Dark mode keeps a darker band than the page */
157
+ --inverse: oklch(0.14 0.02 30);
158
+ --inverse-foreground: var(--foreground);
159
+
151
160
  --accent: oklch(0.30 0.03 180);
152
161
  --accent-foreground: oklch(0.92 0.02 55);
153
162
 
@@ -265,6 +274,8 @@
265
274
  --color-sidebar-ring: var(--sidebar-ring);
266
275
  --color-surface: var(--surface);
267
276
  --color-surface-foreground: var(--surface-foreground);
277
+ --color-inverse: var(--inverse);
278
+ --color-inverse-foreground: var(--inverse-foreground);
268
279
  --color-editor-chrome-surface: var(--editor-chrome-surface);
269
280
  --color-field-background: var(--field-background);
270
281
  --color-field-border: var(--field-border-subtle);