@riverbankcms/sdk 0.127.0 → 0.129.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 (178) hide show
  1. package/README.md +33 -0
  2. package/dist/{PreviewEditorSidebar-BXtfF7tp.mjs → PreviewEditorSidebar-B43CJ0g_.mjs} +9 -33
  3. package/dist/{PreviewEditorUI-Dou73Q0K.mjs → PreviewEditorUI-DHirVkeM.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-DgFDIwvK.mjs → PreviewQueryProvider-B1kbhaJD.mjs} +1 -1
  5. package/dist/SdkPreviewModeRuntime-BJumZy1B.mjs +11209 -0
  6. package/dist/{SiteChromeCustomizeContext-DZiDBAYu.mjs → SiteChromeCustomizeContext-D9SlpwEj.mjs} +31757 -1621
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +288 -36
  8. package/dist/_dts/api/src/bookingClosures.d.ts +19 -3
  9. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +4 -3
  10. package/dist/_dts/api/src/bookingRecords.d.ts +0 -13
  11. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +2 -2
  12. package/dist/_dts/api/src/communications.d.ts +2 -1
  13. package/dist/_dts/api/src/contactFormSummary.d.ts +15 -0
  14. package/dist/_dts/api/src/contentRuntime.d.ts +2 -5
  15. package/dist/_dts/api/src/endpoints.d.ts +1 -1
  16. package/dist/_dts/api/src/footerSettings.d.ts +11 -0
  17. package/dist/_dts/api/src/index.d.ts +2 -1
  18. package/dist/_dts/api/src/occurrenceScheduling.d.ts +48 -0
  19. package/dist/_dts/api/src/participantMessaging.d.ts +5 -3
  20. package/dist/_dts/api/src/publicExperience/siteEndpoints.d.ts +7 -0
  21. package/dist/_dts/api/src/sdkContracts.d.ts +7 -5
  22. package/dist/_dts/api/src/siteOperations.d.ts +12 -3
  23. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +3 -2
  24. package/dist/_dts/blocks/src/PageRenderer.d.ts +20 -10
  25. package/dist/_dts/blocks/src/client/form.d.ts +1 -0
  26. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +1 -0
  27. package/dist/_dts/blocks/src/client/site-chrome.d.ts +1 -0
  28. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -8
  29. package/dist/_dts/blocks/src/index.d.ts +2 -1
  30. package/dist/_dts/blocks/src/pageRendererBoundaries.d.ts +30 -0
  31. package/dist/_dts/blocks/src/pageRenderingMode.d.ts +37 -0
  32. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -1
  33. package/dist/_dts/blocks/src/server.d.ts +1 -1
  34. package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +41 -0
  35. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +14 -23
  36. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +109 -23
  38. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +42 -108
  40. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +21 -54
  41. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/registrationSurface.d.ts +26 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +8 -0
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  45. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +29 -78
  46. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.server.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -6
  48. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +27 -8
  49. package/dist/_dts/content-editor/src/FooterComposerOverview.d.ts +21 -0
  50. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +3 -1
  51. package/dist/_dts/content-editor/src/FooterEngagementEditorFields.d.ts +31 -0
  52. package/dist/_dts/content-editor/src/FooterEngagementEditorPanel.d.ts +17 -0
  53. package/dist/_dts/content-editor/src/footerComposer.d.ts +3 -0
  54. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +57 -0
  55. package/dist/_dts/content-editor/src/footerEngagementEditor.d.ts +11 -0
  56. package/dist/_dts/content-editor/src/footerPreviewRuntime.d.ts +13 -0
  57. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  58. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +35 -0
  59. package/dist/_dts/core/src/footer-arrangement.d.ts +2 -0
  60. package/dist/_dts/core/src/footer-composition-types.d.ts +118 -0
  61. package/dist/_dts/core/src/footer-composition.d.ts +7 -116
  62. package/dist/_dts/core/src/footer-engagement.d.ts +30 -0
  63. package/dist/_dts/core/src/index.d.ts +4 -0
  64. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +38 -0
  65. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +73 -6
  66. package/dist/_dts/db/src/index.d.ts +1 -0
  67. package/dist/_dts/db/src/schemas/forms.d.ts +72 -2
  68. package/dist/_dts/db/src/schemas/standard-contact.d.ts +114 -0
  69. package/dist/_dts/preview-next/src/client/blocks/pageDesignRuntimePreview.d.ts +2 -0
  70. package/dist/_dts/preview-next/src/client/blocks/previewBatchLoaderParams.d.ts +6 -0
  71. package/dist/_dts/preview-next/src/client/index.d.ts +47 -47
  72. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +2 -5
  73. package/dist/_dts/preview-next/src/client/preview/EntrySlotBlockEditorPanel.d.ts +2 -5
  74. package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
  75. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -4
  76. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +19 -7
  77. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +30 -23
  78. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +18 -5
  79. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +9 -0
  80. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +21 -6
  81. package/dist/_dts/preview-next/src/client/sdk-runtime.d.ts +8 -8
  82. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +6 -5
  83. package/dist/_dts/sdk/src/cli/commands/push/execute/footer.d.ts +9 -0
  84. package/dist/_dts/sdk/src/cli/content/footerFile.d.ts +10 -0
  85. package/dist/_dts/sdk/src/cli/content/reader.d.ts +3 -5
  86. package/dist/_dts/sdk/src/cli/site-commands/footerCommands.d.ts +15 -3
  87. package/dist/_dts/sdk/src/client/combineAbortSignals.d.ts +2 -0
  88. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -15
  89. package/dist/_dts/sdk/src/client/types.d.ts +10 -2
  90. package/dist/_dts/sdk/src/client/wholeSeriesReadOperations.d.ts +11 -0
  91. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  92. package/dist/_dts/sdk/src/config/validation.d.ts +3 -0
  93. package/dist/_dts/sdk/src/contracts/event-registration-content.d.ts +16 -0
  94. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +4 -15
  95. package/dist/_dts/sdk/src/next/catch-all.d.ts +6 -0
  96. package/dist/_dts/sdk/src/next/index.d.ts +2 -1
  97. package/dist/_dts/sdk/src/next/renderSdkContent.d.ts +33 -0
  98. package/dist/_dts/sdk/src/next/types.d.ts +23 -9
  99. package/dist/_dts/sdk/src/preview-next/before-render.d.ts +4 -6
  100. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +3 -3
  101. package/dist/_dts/sdk/src/preview-next/client/runtime.d.ts +1 -1
  102. package/dist/_dts/sdk/src/public-api/contracts.d.ts +4 -18
  103. package/dist/_dts/sdk/src/public-api/teamMemberContracts.d.ts +17 -0
  104. package/dist/_dts/sdk/src/public-api/wholeSeriesContracts.d.ts +2 -0
  105. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +32 -3
  106. package/dist/_dts/sdk/src/rendering/components/Block.shared.d.ts +13 -2
  107. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +31 -18
  108. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +20 -9
  109. package/dist/_dts/sdk/src/rendering/index.d.ts +8 -4
  110. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +8 -2
  111. package/dist/_dts/sdk/src/rendering/renderingMode.d.ts +23 -0
  112. package/dist/_dts/sdk/src/rendering/server.d.ts +5 -3
  113. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +6 -0
  114. package/dist/_dts/sdk/src/version.d.ts +1 -1
  115. package/dist/_dts/site-commands/src/commandContract.d.ts +8 -1
  116. package/dist/_dts/site-commands/src/commands.d.ts +16 -2
  117. package/dist/_dts/theme-core/src/header/paintTargets.d.ts +10 -4
  118. package/dist/_dts/theme-core/src/header/surfaceRules.d.ts +2 -3
  119. package/dist/cli/index.mjs +5535 -4835
  120. package/dist/cli/init-docs/content/workflow-preview-mode.md +24 -11
  121. package/dist/client/{courseRegistration-DTEYWL6Z.mjs → CourseRegistrationWizard-xRmA7REV.mjs} +329 -49
  122. package/dist/client/{DiscountCodeDisclosure-BDFRp8Y7.mjs → DiscountCodeDisclosure-B9vriL5C.mjs} +1 -1
  123. package/dist/client/{EventCombined.client-DJgF1_lf.mjs → EventCombined.client-BgVnVTlz.mjs} +2 -2
  124. package/dist/client/{EventListing.client-CnWGNjOr.mjs → EventListing.client-CqdsO7jO.mjs} +2 -2
  125. package/dist/client/{LeafletStaticMap-BISs9Bl7.mjs → LeafletStaticMap-CKPxot9M.mjs} +1 -1
  126. package/dist/client/{StepIndicator-D8gVYkK-.mjs → StepIndicator-DGCYuBJ1.mjs} +2 -2
  127. package/dist/client/{accordion-DFDajgDz.mjs → accordion-BfN5Eqd-.mjs} +1 -1
  128. package/dist/client/{bookingForm-Bdqj9-52.mjs → bookingForm-DOvCpBFP.mjs} +5 -5
  129. package/dist/client/{carousel-Cvqf-kN8.mjs → carousel-DPNmiH0f.mjs} +1 -1
  130. package/dist/client/{cart-CuH2TJXP.mjs → cart--egVXlrR.mjs} +3 -3
  131. package/dist/client/{checkout-CMNPpejZ.mjs → checkout-DywWtMcq.mjs} +3 -3
  132. package/dist/client/client.mjs +5324 -4942
  133. package/dist/client/courseRegistration-Dk9qFVwt.mjs +46 -0
  134. package/dist/client/{eventCalendar-BW-XoxZ0.mjs → eventCalendar-Bkz2HjlS.mjs} +4 -4
  135. package/dist/client/{eventCombined-Bpn7s0y9.mjs → eventCombined-D4kipYWg.mjs} +2 -2
  136. package/dist/client/{eventDetails-D2uUSTMH.mjs → eventDetails-Dz_5ix2Q.mjs} +56 -35
  137. package/dist/client/{eventListing-CVr1c094.mjs → eventListing-D0vm-zST.mjs} +2 -2
  138. package/dist/client/{eventRegistration-Dv4AvkMw.mjs → eventRegistration-Cw1E4Q4p.mjs} +58 -6
  139. package/dist/client/{form-DxdKf9fs.mjs → form-C2Zf1n3K.mjs} +1 -1
  140. package/dist/client/{headerSection-BaXI5Sro.mjs → headerSection-CP05gzdc.mjs} +2 -2
  141. package/dist/client/hooks.mjs +212 -61
  142. package/dist/client/{locationMap-BEtW2fKz.mjs → locationMap-Cl3x9PYJ.mjs} +2 -2
  143. package/dist/client/{newsletterForm-BKKs0S4R.mjs → newsletterForm-DyEJoClm.mjs} +26 -20
  144. package/dist/client/{pricing-ClkqcElA.mjs → pricing-DGuNR1W4.mjs} +1 -1
  145. package/dist/client/{productDetail-H-ru8dyy.mjs → productDetail-Cq-HrGew.mjs} +3 -3
  146. package/dist/client/{productList-Buyi5c0C.mjs → productList-DbB3jwqd.mjs} +3 -3
  147. package/dist/client/{propsDecoder-BF7i6Ijg.mjs → propsDecoder-CiTuhUwY.mjs} +130 -87
  148. package/dist/client/rendering/client.mjs +416 -208
  149. package/dist/client/rendering/islands.mjs +18 -18
  150. package/dist/client/rendering.mjs +6026 -5596
  151. package/dist/client/{scrollToBlock-D_7t8yWb.mjs → scrollToBlock-CShkRqab.mjs} +1 -1
  152. package/dist/client/{shop-CF7SZQNX.mjs → shop-Cu4Ib-ZA.mjs} +5 -5
  153. package/dist/client/{shop-commerce-DA7_Rq5p.mjs → shop-commerce-BzpsOdh7.mjs} +4 -4
  154. package/dist/client/{shop-commerce-store-BmLqW7Gh.mjs → shop-commerce-store-DaE7Fhj8.mjs} +1 -1
  155. package/dist/client/{shopShared-WL-E1znM.mjs → shopShared-cF0c20vB.mjs} +2 -2
  156. package/dist/client/{useEventFilters-rc8VLeLV.mjs → useEventFilters-QZ3HMgaJ.mjs} +2 -2
  157. package/dist/client/{usePolling-1ncrfd4S.mjs → usePolling-BKf0GcE-.mjs} +2 -2
  158. package/dist/preview-next/before-render.mjs +11 -4
  159. package/dist/preview-next/client/runtime.mjs +4 -4
  160. package/dist/preview-next/middleware.mjs +1 -1
  161. package/dist/{previewAuthStore-Dev9CdG9.mjs → previewAuthStore-BesgU5Xu.mjs} +1 -1
  162. package/dist/{sdk-runtime-BnrCCFJq.mjs → sdk-runtime-CfZd5pAm.mjs} +2 -2
  163. package/dist/{separator-CFvBx2yl.mjs → separator-DkTe68HE.mjs} +1 -1
  164. package/dist/server/components.mjs +950 -639
  165. package/dist/server/config-validation.mjs +209 -61
  166. package/dist/server/config.mjs +209 -61
  167. package/dist/server/data.mjs +212 -61
  168. package/dist/server/index.mjs +40 -16
  169. package/dist/server/next.mjs +1181 -835
  170. package/dist/server/page-converter.mjs +211 -64
  171. package/dist/server/prebuild.mjs +1 -1
  172. package/dist/server/rendering/server.mjs +974 -637
  173. package/dist/server/rendering.mjs +980 -644
  174. package/dist/server/routing.mjs +254 -80
  175. package/dist/server/server.mjs +252 -77
  176. package/package.json +1 -1
  177. package/dist/SdkPreviewModeRuntime-B0HPXr-l.mjs +0 -39546
  178. package/dist/client/MagicLinkForm-b5E_HoG9.mjs +0 -327
@@ -1599,6 +1599,11 @@ function toLocationCoordinates(value) {
1599
1599
  lng: value.lng
1600
1600
  };
1601
1601
  }
1602
+ //#endregion
1603
+ //#region ../core/src/newsletter-signup-destination.ts
1604
+ function parseNewsletterSignupDestinationProvider(value) {
1605
+ return value === "riverbank" || value === "mailchimp" ? value : null;
1606
+ }
1602
1607
  z$1.object({
1603
1608
  formulaVersion: z$1.literal("managed-domain-overage-v1"),
1604
1609
  conversionRule: z$1.literal("usd-to-gbp-1-to-1-v1"),
@@ -19293,6 +19298,7 @@ const newsletterFormFragment = defineFragment({
19293
19298
  }
19294
19299
  ],
19295
19300
  layout: [el("newsletter-form", withApiBindings({
19301
+ source: "block",
19296
19302
  destinationProvider: { $bind: { from: "destinationProvider" } },
19297
19303
  listId: { $bind: { from: "listId" } },
19298
19304
  preset: { $bind: { from: "preset" } },
@@ -21412,6 +21418,7 @@ const contactNewsletterLayout = styledSection({
21412
21418
  as: "h2",
21413
21419
  className: "newsletter-copy-title"
21414
21420
  }, when("newsletterTitle"), bind("newsletterTitle")), richText({ className: "newsletter-copy-subtitle rb-prose rb-max-w-none" }, when("newsletterSubtitle"), bind("newsletterSubtitle"))]), el("newsletter-form", withApiBindings({
21421
+ source: "block",
21415
21422
  listId: { $bind: { from: "listId" } },
21416
21423
  preset: { $bind: { from: "preset" } },
21417
21424
  includePhone: { $bind: { from: "includePhone" } },
@@ -23346,6 +23353,22 @@ const footerNavGroupsLayout = stack({
23346
23353
  }, [text({ as: "span" }, bind("entry.label"))], repeat("group.children", "entry"))])], repeat("footerMenu.groups", "group"))], whenCollectionHasItems("footerMenu.groups"));
23347
23354
  //#endregion
23348
23355
  //#region ../blocks/src/system/blocks/site-footer.ts
23356
+ const footerStandardContactBindings = {
23357
+ value: { $bind: { from: "module.engagement.runtime.value" } },
23358
+ submitLabel: { $bind: { from: "module.engagement.runtime.submitLabel" } },
23359
+ successMessage: { $bind: { from: "module.engagement.runtime.successMessage" } }
23360
+ };
23361
+ const footerMailingListBindings = {
23362
+ source: { $bind: { from: "module.engagement.runtime.source" } },
23363
+ destinationRef: { $bind: { from: "module.engagement.runtime.destinationRef" } },
23364
+ listId: { $bind: { from: "module.engagement.runtime.listId" } },
23365
+ preset: { $bind: { from: "module.engagement.runtime.preset" } },
23366
+ includePhone: { $bind: { from: "module.engagement.runtime.includePhone" } },
23367
+ buttonLabel: { $bind: { from: "module.engagement.runtime.buttonLabel" } },
23368
+ successMessage: { $bind: { from: "module.engagement.runtime.successMessage" } },
23369
+ privacyNote: { $bind: { from: "module.engagement.runtime.privacyNote" } }
23370
+ };
23371
+ const footerSpamProtectionBinding = { spamProtectionEnabled: { $bind: { from: "$root.spamProtectionEnabled" } } };
23349
23372
  const brandLogo = link({
23350
23373
  href: "/",
23351
23374
  className: { $bind: {
@@ -23423,6 +23446,23 @@ const authoredCopy = richText({
23423
23446
  id: "content.interpolateRichTextTokens",
23424
23447
  options: { tokens: ["year", "site_name"] }
23425
23448
  }] }));
23449
+ const footerEngagement = stack({
23450
+ gap: "md",
23451
+ className: "rb-w-full"
23452
+ }, [
23453
+ text({
23454
+ as: "p",
23455
+ className: "rb-body rb-opacity-80"
23456
+ }, bind("module.engagement.intro"), when("module.engagement.intro")),
23457
+ form(withApiBindings({
23458
+ ...footerStandardContactBindings,
23459
+ ...footerSpamProtectionBinding
23460
+ }), [], when("module.engagement.kind", { equals: "standard-contact" })),
23461
+ el("newsletter-form", withApiBindings({
23462
+ ...footerMailingListBindings,
23463
+ ...footerSpamProtectionBinding
23464
+ }), [], when("module.engagement.kind", { equals: "mailing-list" }))
23465
+ ], when("module.kind", { equals: "engagement" }));
23426
23466
  const footerGroup = stack({
23427
23467
  gap: "md",
23428
23468
  align: "stretch",
@@ -23448,6 +23488,7 @@ const footerGroup = stack({
23448
23488
  contact,
23449
23489
  hours,
23450
23490
  socials,
23491
+ footerEngagement,
23451
23492
  stack({ className: "rb-w-full" }, [authoredCopy], when("module.kind", { equals: "supporting-text" })),
23452
23493
  stack({ className: "rb-w-full rb-lg-col-span-3" }, [authoredCopy], when("module.kind", { equals: "legal" }))
23453
23494
  ], repeat("group.modules", "module"))], repeat("region.groups", "group"));
@@ -23455,6 +23496,10 @@ const footerMainRegion = stack({
23455
23496
  className: { $bind: { from: "region.className" } },
23456
23497
  "data-footer-region": { $bind: { from: "region.kind" } }
23457
23498
  }, [footerGroup], when("region.kind", { equals: "main" }), repeat("content.footerRuntime.regions", "region"));
23499
+ const footerEngagementRegion = stack({
23500
+ className: { $bind: { from: "region.className" } },
23501
+ "data-footer-region": "engagement-row"
23502
+ }, [footerGroup], when("region.kind", { equals: "engagement-row" }), repeat("content.footerRuntime.regions", "region"));
23458
23503
  const footerBottomRegion = stack({ className: { $bind: {
23459
23504
  from: "$root.theme.footer",
23460
23505
  transforms: [{ id: "layout.footerBottomBarContainerClass" }],
@@ -23490,7 +23535,11 @@ const siteFooterBlockDefinition = { manifest: createBlockManifest({
23490
23535
  fallback: mergeStyles(backgroundColorStyle("surface"), surfaceForegroundStyle({ text: "rgb(var(--tb-text))" }), borderColorStyle("border"))
23491
23536
  } },
23492
23537
  "data-footer-membership": { $bind: { from: "content.footerRuntime.membershipKey" } }
23493
- }, [footerMainRegion, footerBottomRegion]),
23538
+ }, [
23539
+ footerEngagementRegion,
23540
+ footerMainRegion,
23541
+ footerBottomRegion
23542
+ ]),
23494
23543
  description: "Site-wide composed footer with canonical shared details.",
23495
23544
  styleTokens: { spacing: "md" },
23496
23545
  paletteHidden: true
@@ -26186,7 +26235,7 @@ const publicMembershipProductCollectionSchema = z$1.object({ memberships: z$1.ar
26186
26235
  * Kept in a shared module so the block definition and runtime contracts can
26187
26236
  * depend on the same schema without creating an initialization cycle.
26188
26237
  */
26189
- const occurrenceContextSchema$1 = z$1.object({
26238
+ const occurrenceContextSchema = z$1.object({
26190
26239
  id: z$1.string(),
26191
26240
  seriesId: z$1.string(),
26192
26241
  startsAt: z$1.string(),
@@ -26567,28 +26616,37 @@ const EVENT_REGISTRATION_SHELL_STEP_LABELS = [
26567
26616
  "Payment"
26568
26617
  ];
26569
26618
  const eventRegistrationPublicEventSchema = z$1.preprocess(normalizeEventRegistrationEventInput, publicEventSchema);
26570
- const eventRegistrationSourceSchema = z$1.object({
26571
- siteId: z$1.string().optional(),
26572
- apiBaseUrl: z$1.string().optional(),
26573
- portalToken: z$1.string().nullable().optional(),
26574
- previewToken: z$1.string().nullable().optional(),
26575
- occurrenceContext: occurrenceContextSchema$1.optional(),
26619
+ const eventRegistrationHydrationSchemaShape = {
26620
+ occurrenceContext: occurrenceContextSchema.optional(),
26576
26621
  subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
26577
26622
  events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
26578
- className: z$1.string().nullable().optional(),
26579
- buttonText: z$1.string().nullable().optional(),
26580
- maxTickets: z$1.string().nullable().optional(),
26623
+ wholeSeriesOfferings: publicCoursesArraySchema.nullable().optional(),
26624
+ wholeSeriesOffering: publicCourseSchema.nullable().optional(),
26625
+ maxTickets: z$1.string().optional(),
26581
26626
  showVenue: z$1.boolean().optional(),
26582
26627
  showCapacity: z$1.boolean().optional(),
26628
+ showSessions: z$1.boolean().optional(),
26629
+ showPrice: z$1.boolean().optional(),
26583
26630
  successMessage: z$1.string().optional(),
26584
26631
  waitlistMessage: z$1.string().optional(),
26632
+ membershipMessage: z$1.string().optional(),
26585
26633
  buttonVariant: registrationButtonVariantSchema.optional(),
26586
26634
  overlayEnabled: z$1.boolean().optional(),
26587
26635
  spamProtectionEnabled: z$1.boolean().optional(),
26588
- stage: previewStageSchema.optional(),
26589
26636
  supportEmail: z$1.string().optional(),
26590
26637
  sitePasses: publicPassProductCollectionSchema.nullable().optional(),
26591
26638
  siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
26639
+ };
26640
+ const eventRegistrationSourceSchema = z$1.object({
26641
+ siteId: z$1.string().optional(),
26642
+ apiBaseUrl: z$1.string().optional(),
26643
+ portalToken: z$1.string().nullable().optional(),
26644
+ previewToken: z$1.string().nullable().optional(),
26645
+ ...eventRegistrationHydrationSchemaShape,
26646
+ className: z$1.string().nullable().optional(),
26647
+ buttonText: z$1.string().nullable().optional(),
26648
+ maxTickets: z$1.string().nullable().optional(),
26649
+ stage: previewStageSchema.optional()
26592
26650
  });
26593
26651
  const eventRegistrationDisplaySchema = z$1.object({
26594
26652
  kind: z$1.literal("event-registration"),
@@ -26599,22 +26657,7 @@ const eventRegistrationDisplaySchema = z$1.object({
26599
26657
  stepLabels: z$1.array(z$1.enum(EVENT_REGISTRATION_SHELL_STEP_LABELS)).min(1),
26600
26658
  summaryButtonText: z$1.string()
26601
26659
  });
26602
- const eventRegistrationHydrationSchema = z$1.object({
26603
- occurrenceContext: occurrenceContextSchema$1.optional(),
26604
- subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
26605
- events: z$1.array(eventRegistrationPublicEventSchema).nullable().optional(),
26606
- maxTickets: z$1.string().optional(),
26607
- showVenue: z$1.boolean().optional(),
26608
- showCapacity: z$1.boolean().optional(),
26609
- successMessage: z$1.string().optional(),
26610
- waitlistMessage: z$1.string().optional(),
26611
- buttonVariant: registrationButtonVariantSchema.optional(),
26612
- overlayEnabled: z$1.boolean().optional(),
26613
- spamProtectionEnabled: z$1.boolean().optional(),
26614
- supportEmail: z$1.string().optional(),
26615
- sitePasses: publicPassProductCollectionSchema.nullable().optional(),
26616
- siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
26617
- });
26660
+ const eventRegistrationHydrationSchema = z$1.object(eventRegistrationHydrationSchemaShape);
26618
26661
  const eventRegistrationRenderSchema = z$1.object({
26619
26662
  display: eventRegistrationDisplaySchema,
26620
26663
  hydration: eventRegistrationHydrationSchema
@@ -26694,11 +26737,16 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
26694
26737
  occurrenceContext: source.occurrenceContext ?? null,
26695
26738
  subject: source.subject ?? null,
26696
26739
  events: source.events ?? null,
26740
+ wholeSeriesOfferings: source.wholeSeriesOfferings ?? null,
26741
+ wholeSeriesOffering: source.wholeSeriesOffering ?? null,
26697
26742
  maxTickets: source.maxTickets ?? void 0,
26698
26743
  showVenue: source.showVenue,
26699
26744
  showCapacity: source.showCapacity,
26745
+ showSessions: source.showSessions,
26746
+ showPrice: source.showPrice,
26700
26747
  successMessage: source.successMessage,
26701
26748
  waitlistMessage: source.waitlistMessage,
26749
+ membershipMessage: source.membershipMessage,
26702
26750
  buttonVariant: source.buttonVariant,
26703
26751
  overlayEnabled: source.overlayEnabled,
26704
26752
  spamProtectionEnabled: source.spamProtectionEnabled,
@@ -26814,6 +26862,24 @@ const eventRegistrationBlockDefinition = {
26814
26862
  defaultValue: true,
26815
26863
  ui: { intent: "display" }
26816
26864
  },
26865
+ {
26866
+ id: "showSessions",
26867
+ type: "boolean",
26868
+ label: "Show complete schedule",
26869
+ description: "Display every session for whole-series registrations",
26870
+ required: false,
26871
+ defaultValue: true,
26872
+ ui: { intent: "display" }
26873
+ },
26874
+ {
26875
+ id: "showPrice",
26876
+ type: "boolean",
26877
+ label: "Show price",
26878
+ description: "Display the whole-series price",
26879
+ required: false,
26880
+ defaultValue: true,
26881
+ ui: { intent: "display" }
26882
+ },
26817
26883
  {
26818
26884
  id: "successMessage",
26819
26885
  type: "text",
@@ -26824,6 +26890,26 @@ const eventRegistrationBlockDefinition = {
26824
26890
  defaultValue: "Thank you for registering! Check your email for confirmation details.",
26825
26891
  maxLength: 500
26826
26892
  },
26893
+ {
26894
+ id: "waitlistMessage",
26895
+ type: "text",
26896
+ label: "Waitlist message",
26897
+ description: "Message shown after joining a whole-series waitlist",
26898
+ required: false,
26899
+ multiline: true,
26900
+ defaultValue: "You've been added to the waitlist. We'll email you if a place becomes available.",
26901
+ maxLength: 500
26902
+ },
26903
+ {
26904
+ id: "membershipMessage",
26905
+ type: "text",
26906
+ label: "Membership registration message",
26907
+ description: "Message shown when a whole-series place is covered by membership",
26908
+ required: false,
26909
+ multiline: true,
26910
+ defaultValue: "Registered using your membership. Check your email for session details.",
26911
+ maxLength: 500
26912
+ },
26827
26913
  {
26828
26914
  id: "buttonText",
26829
26915
  type: "text",
@@ -26855,8 +26941,11 @@ const eventRegistrationBlockDefinition = {
26855
26941
  } },
26856
26942
  showVenue: { $bind: { from: "content.showVenue" } },
26857
26943
  showCapacity: { $bind: { from: "content.showCapacity" } },
26944
+ showSessions: { $bind: { from: "content.showSessions" } },
26945
+ showPrice: { $bind: { from: "content.showPrice" } },
26858
26946
  successMessage: { $bind: { from: "content.successMessage" } },
26859
26947
  waitlistMessage: { $bind: { from: "content.waitlistMessage" } },
26948
+ membershipMessage: { $bind: { from: "content.membershipMessage" } },
26860
26949
  buttonText: { $bind: {
26861
26950
  from: "content.buttonText",
26862
26951
  fallback: "Complete Registration"
@@ -26870,6 +26959,7 @@ const eventRegistrationBlockDefinition = {
26870
26959
  fallback: false
26871
26960
  } },
26872
26961
  events: { $bind: { from: "data.events" } },
26962
+ wholeSeriesOffering: { $bind: { from: "data.wholeSeriesOffering.offering" } },
26873
26963
  sitePasses: { $bind: { from: "data.sitePasses" } },
26874
26964
  siteMemberships: { $bind: { from: "data.siteMemberships" } },
26875
26965
  stage: { $bind: {
@@ -26883,9 +26973,10 @@ const eventRegistrationBlockDefinition = {
26883
26973
  runtime: eventRegistrationBlockRuntime,
26884
26974
  dataSchemas: {
26885
26975
  events: publicEventsArraySchema.optional(),
26976
+ wholeSeriesOffering: z$1.object({ offering: publicCourseSchema }).optional(),
26886
26977
  sitePasses: publicPassProductCollectionSchema.optional(),
26887
26978
  siteMemberships: publicMembershipProductCollectionSchema.optional(),
26888
- occurrenceContext: occurrenceContextSchema$1.optional()
26979
+ occurrenceContext: occurrenceContextSchema.optional()
26889
26980
  },
26890
26981
  dataLoaders: {
26891
26982
  events: {
@@ -26898,11 +26989,23 @@ const eventRegistrationBlockDefinition = {
26898
26989
  fallback: "published"
26899
26990
  } },
26900
26991
  readProfile: "registration",
26901
- seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
26992
+ seriesId: { $bind: { from: "$root.subject.eventSeriesId" } },
26902
26993
  includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
26903
26994
  },
26904
26995
  mode: "server"
26905
26996
  },
26997
+ wholeSeriesOffering: {
26998
+ endpoint: "getPublicWholeSeriesOffering",
26999
+ params: {
27000
+ siteId: { $bind: { from: "$root.siteId" } },
27001
+ eventSeriesId: { $bind: { from: "$root.subject.eventSeriesId" } },
27002
+ stage: { $bind: {
27003
+ from: "$root.previewStage",
27004
+ fallback: "published"
27005
+ } }
27006
+ },
27007
+ mode: "server"
27008
+ },
26906
27009
  sitePasses: {
26907
27010
  endpoint: "listPublicPasses",
26908
27011
  params: { siteId: { $bind: { from: "$root.siteId" } } },
@@ -27337,15 +27440,6 @@ const eventDetailsManifest = createBlockManifest({
27337
27440
  })], { gap: "lg" })
27338
27441
  })]
27339
27442
  });
27340
- const occurrenceContextSchema = z$1.object({
27341
- id: z$1.string(),
27342
- seriesId: z$1.string(),
27343
- startsAt: z$1.string(),
27344
- endsAt: z$1.string(),
27345
- timeZone: z$1.string(),
27346
- capacityOverride: z$1.number().nullable().optional(),
27347
- overrides: z$1.record(z$1.string(), z$1.unknown()).nullable().optional()
27348
- }).nullable();
27349
27443
  const eventAutoApplyDiscountPreviewBaseSchema = z$1.object({
27350
27444
  id: z$1.string(),
27351
27445
  publicLabel: z$1.string(),
@@ -27380,8 +27474,9 @@ const eventDetailsBlockDefinition = {
27380
27474
  from: "$root.previewStage",
27381
27475
  fallback: "published"
27382
27476
  } },
27383
- limit: "25",
27384
- seriesId: { $bind: { from: "$root.occurrenceContext.seriesId" } },
27477
+ limit: "100",
27478
+ readProfile: "details",
27479
+ seriesId: { $bind: { from: "$root.subject.eventSeriesId" } },
27385
27480
  includeOccurrenceId: { $bind: { from: "$root.occurrenceContext.id" } }
27386
27481
  },
27387
27482
  mode: "server"
@@ -33523,9 +33618,6 @@ function parseSignedNewsletterDestinationRef(value) {
33523
33618
  const trimmed = parseTrimmedString(value);
33524
33619
  return trimmed && SIGNED_DESTINATION_REF_PATTERN.test(trimmed) ? trimmed : null;
33525
33620
  }
33526
- function parseNewsletterSignupDestinationProvider(value) {
33527
- return value === "riverbank" || value === "mailchimp" ? value : null;
33528
- }
33529
33621
  function buildNewsletterSignupBlockRef(blockId) {
33530
33622
  const parsed = parseNewsletterSignupBlockId(blockId);
33531
33623
  return parsed ? {
@@ -33672,19 +33764,9 @@ const newsletterFieldSchema = z$1.object({
33672
33764
  });
33673
33765
  const newsletterSignupBlockIdSchema = z$1.string().trim().min(1).transform(parseRequiredNewsletterSignupBlockId);
33674
33766
  const signedNewsletterDestinationRefSchema = z$1.string().trim().min(1).transform(parseRequiredSignedNewsletterDestinationRef);
33675
- const newsletterPublicDestinationRefSchema = z$1.discriminatedUnion("tag", [z$1.object({
33676
- tag: z$1.literal("block_ref"),
33677
- blockId: newsletterSignupBlockIdSchema
33678
- }), z$1.object({
33679
- tag: z$1.literal("signed_destination_ref"),
33680
- token: signedNewsletterDestinationRefSchema
33681
- })]);
33682
- const newsletterSourceSchema = z$1.object({
33683
- blockId: z$1.string().nullable().optional(),
33767
+ const newsletterSourceCommonSchema = z$1.object({
33684
33768
  siteId: z$1.string().optional(),
33685
33769
  apiBaseUrl: z$1.string().optional(),
33686
- listId: z$1.string().nullable().optional(),
33687
- destinationProvider: newsletterDestinationProviderSchema.nullable().optional(),
33688
33770
  preset: newsletterPresetSchema.optional(),
33689
33771
  includePhone: z$1.boolean().optional(),
33690
33772
  buttonLabel: z$1.string().nullable().optional(),
@@ -33695,6 +33777,25 @@ const newsletterSourceSchema = z$1.object({
33695
33777
  spamProtectionEnabled: z$1.boolean().optional(),
33696
33778
  className: z$1.string().nullable().optional()
33697
33779
  });
33780
+ const newsletterSourceSchema = z$1.discriminatedUnion("source", [
33781
+ newsletterSourceCommonSchema.extend({
33782
+ source: z$1.literal("block"),
33783
+ blockId: z$1.string().nullable().optional(),
33784
+ listId: z$1.string().nullable().optional(),
33785
+ destinationProvider: newsletterDestinationProviderSchema.nullable().optional()
33786
+ }),
33787
+ newsletterSourceCommonSchema.extend({
33788
+ source: z$1.literal("signed-footer"),
33789
+ destinationRef: z$1.object({
33790
+ tag: z$1.literal("signed_destination_ref"),
33791
+ token: signedNewsletterDestinationRefSchema
33792
+ })
33793
+ }),
33794
+ newsletterSourceCommonSchema.extend({
33795
+ source: z$1.literal("legacy-direct-list"),
33796
+ listId: z$1.string().nullable()
33797
+ })
33798
+ ]);
33698
33799
  const newsletterDisplaySchema = z$1.object({
33699
33800
  kind: z$1.literal("newsletter-form"),
33700
33801
  className: z$1.string().nullable(),
@@ -33705,8 +33806,26 @@ const newsletterDisplaySchema = z$1.object({
33705
33806
  fields: z$1.array(newsletterFieldSchema)
33706
33807
  });
33707
33808
  const newsletterHydrationSchema = z$1.object({
33708
- destinationRef: newsletterPublicDestinationRefSchema.nullable().optional(),
33709
- listId: z$1.string().nullable().optional(),
33809
+ target: z$1.discriminatedUnion("tag", [
33810
+ z$1.object({
33811
+ tag: z$1.literal("block-source"),
33812
+ destinationRef: z$1.object({
33813
+ tag: z$1.literal("block_ref"),
33814
+ blockId: newsletterSignupBlockIdSchema
33815
+ }).nullable()
33816
+ }),
33817
+ z$1.object({
33818
+ tag: z$1.literal("signed-footer-source"),
33819
+ destinationRef: z$1.object({
33820
+ tag: z$1.literal("signed_destination_ref"),
33821
+ token: signedNewsletterDestinationRefSchema
33822
+ })
33823
+ }),
33824
+ z$1.object({
33825
+ tag: z$1.literal("legacy-direct-list"),
33826
+ listId: z$1.string().nullable()
33827
+ })
33828
+ ]),
33710
33829
  preset: newsletterPresetSchema,
33711
33830
  includePhone: z$1.boolean(),
33712
33831
  tags: z$1.string().nullable().optional(),
@@ -33740,20 +33859,43 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
33740
33859
  render: createZodCodec(newsletterRenderSchema)
33741
33860
  },
33742
33861
  buildRender: (source) => {
33743
- const runtimeSource = deriveNewsletterSignupRuntimeSource(source);
33862
+ const runtimeSource = source.source === "block" ? deriveNewsletterSignupRuntimeSource(source) : null;
33744
33863
  return {
33745
33864
  display: buildNewsletterDisplay(source),
33746
33865
  hydration: {
33747
- destinationRef: buildNewsletterSignupBlockRef(source.blockId),
33748
- listId: runtimeSource.listId,
33866
+ target: projectNewsletterFormHydrationTarget(source),
33749
33867
  preset: source.preset ?? "emailOnly",
33750
33868
  includePhone: source.includePhone ?? false,
33751
- tags: runtimeSource.tags,
33869
+ tags: runtimeSource ? runtimeSource.tags : source.tags,
33752
33870
  spamProtectionEnabled: source.spamProtectionEnabled
33753
33871
  }
33754
33872
  };
33755
33873
  }
33756
33874
  });
33875
+ function projectNewsletterFormHydrationTarget(source) {
33876
+ switch (source.source) {
33877
+ case "block": {
33878
+ const destinationRef = buildNewsletterSignupBlockRef(source.blockId);
33879
+ if (destinationRef?.tag === "block_ref") return {
33880
+ tag: "block-source",
33881
+ destinationRef
33882
+ };
33883
+ return {
33884
+ tag: "legacy-direct-list",
33885
+ listId: source.listId ?? null
33886
+ };
33887
+ }
33888
+ case "signed-footer": return {
33889
+ tag: "signed-footer-source",
33890
+ destinationRef: source.destinationRef
33891
+ };
33892
+ case "legacy-direct-list": return {
33893
+ tag: "legacy-direct-list",
33894
+ listId: source.listId
33895
+ };
33896
+ default: return assertNever$2(source);
33897
+ }
33898
+ }
33757
33899
  function parseRequiredNewsletterSignupBlockId(value) {
33758
33900
  const parsed = parseNewsletterSignupBlockId(value);
33759
33901
  if (!parsed) throw new Error("Newsletter signup block destination ref requires blockId");
@@ -36283,6 +36425,7 @@ const SUPPORTED_LOADER_ENDPOINTS$1 = [
36283
36425
  "listPublicRecurringSchedule",
36284
36426
  "getPublicEventDetails",
36285
36427
  "listPublicWholeSeriesOfferings",
36428
+ "getPublicWholeSeriesOffering",
36286
36429
  "listPublicRouteCandidates",
36287
36430
  "listPublicTeamMembers",
36288
36431
  "listPublicProducts",
@@ -37335,6 +37478,7 @@ const loaderAdapters = {
37335
37478
  listPublicEvents,
37336
37479
  listPublicRecurringSchedule,
37337
37480
  getPublicEventDetails,
37481
+ getPublicWholeSeriesOffering,
37338
37482
  listPublicRouteCandidates,
37339
37483
  listPublicTeamMembers,
37340
37484
  listPublicProducts,
@@ -37429,6 +37573,13 @@ async function listPublicEvents({ client, params }) {
37429
37573
  async function listPublicRecurringSchedule(input) {
37430
37574
  return projectRecurringSchedule(await listPublicEvents(input));
37431
37575
  }
37576
+ async function getPublicWholeSeriesOffering({ client, params }) {
37577
+ return await client.getPublicWholeSeriesOffering({
37578
+ siteId: requireStringParam(params, "siteId", "getPublicWholeSeriesOffering"),
37579
+ eventSeriesId: requireStringParam(params, "eventSeriesId", "getPublicWholeSeriesOffering"),
37580
+ stage: readStringParam(params, "stage")
37581
+ });
37582
+ }
37432
37583
  async function getPublicEventDetails({ client, params }) {
37433
37584
  return await client.getPublicEventDetails({
37434
37585
  siteId: requireStringParam(params, "siteId", "getPublicEventDetails"),
@@ -1,7 +1,7 @@
1
1
  import { i as textColorStyle } from "./colorStyles-BWpj_h4C.mjs";
2
- import { X as themeButtonClassName, t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
2
+ import { X as themeButtonClassName, t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
3
3
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
4
- import { t as LeafletStaticMap } from "./LeafletStaticMap-BISs9Bl7.mjs";
4
+ import { t as LeafletStaticMap } from "./LeafletStaticMap-CKPxot9M.mjs";
5
5
  import "react";
6
6
  import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region ../core/src/location.ts
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import { t as clsx } from "./clsx-DgIEfj3H.mjs";
3
- import { X as themeButtonClassName, t as defineIslandPropsDecoder, yt as assertNever } from "./propsDecoder-BF7i6Ijg.mjs";
3
+ import { Gt as assertNever$1, X as themeButtonClassName, t as defineIslandPropsDecoder, yt as assertNever } from "./propsDecoder-CiTuhUwY.mjs";
4
4
  import { n as useBlockApi, t as BlockApiProvider } from "./context-CJz1Vlsz.mjs";
5
5
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
6
6
  import { t as FeedbackMessage } from "./FeedbackMessage-ByMrs3cr.mjs";
@@ -70,24 +70,34 @@ function mapNewsletterFormFieldsToSubscriberInput(fields) {
70
70
  };
71
71
  }
72
72
  function resolveNewsletterSubmitTarget(input) {
73
- const listId = input.listId?.trim();
74
- if (input.destinationRef) return {
75
- tag: "ready",
76
- target: {
77
- tag: "published_block_ref",
78
- destinationRef: input.destinationRef
73
+ switch (input.tag) {
74
+ case "block-source": return input.destinationRef ? publishedDestinationTarget(input.destinationRef) : {
75
+ tag: "unavailable",
76
+ reason: "missing_block_source"
77
+ };
78
+ case "signed-footer-source": return publishedDestinationTarget(input.destinationRef);
79
+ case "legacy-direct-list": {
80
+ const listId = input.listId?.trim();
81
+ return listId ? {
82
+ tag: "ready",
83
+ target: {
84
+ tag: "legacy_riverbank_list",
85
+ listId
86
+ }
87
+ } : {
88
+ tag: "unavailable",
89
+ reason: "missing_legacy_list"
90
+ };
79
91
  }
80
- };
81
- if (!listId) return {
82
- tag: "unavailable",
83
- reason: "missing_legacy_list"
84
- };
92
+ default: return assertNever$1(input);
93
+ }
94
+ }
95
+ function publishedDestinationTarget(destinationRef) {
85
96
  return {
86
97
  tag: "ready",
87
98
  target: {
88
- tag: "legacy_riverbank_list",
89
- listId,
90
- destinationRef: input.destinationRef ?? void 0
99
+ tag: "published_block_ref",
100
+ destinationRef
91
101
  }
92
102
  };
93
103
  }
@@ -130,10 +140,7 @@ function NewsletterFormClient({ render }) {
130
140
  });
131
141
  return;
132
142
  }
133
- const submitTarget = resolveNewsletterSubmitTarget({
134
- listId: render.hydration.listId,
135
- destinationRef: render.hydration.destinationRef
136
- });
143
+ const submitTarget = resolveNewsletterSubmitTarget(render.hydration.target);
137
144
  if (submitTarget.tag === "unavailable") {
138
145
  dispatchSubmission({
139
146
  type: "failed",
@@ -295,7 +302,6 @@ const enhance = (root, props) => {
295
302
  const { siteId, apiBaseUrl, render } = props;
296
303
  if (!siteId) throw new Error("[sdk:islands] newsletter-form requires siteId");
297
304
  if (!apiBaseUrl) throw new Error("[sdk:islands] newsletter-form requires apiBaseUrl");
298
- if (!render.hydration.listId) throw new Error("[sdk:islands] newsletter-form requires listId");
299
305
  const apiConfig = {
300
306
  baseUrl: apiBaseUrl,
301
307
  auth: { type: "none" },
@@ -1,4 +1,4 @@
1
- import { Rt as formatBookingPriceDisplay } from "./propsDecoder-BF7i6Ijg.mjs";
1
+ import { Rt as formatBookingPriceDisplay } from "./propsDecoder-CiTuhUwY.mjs";
2
2
  //#region ../core/src/planner.ts
3
3
  /** Default clock for production callers that do not inject time explicitly. */
4
4
  const systemPlanningClock = { now: () => Date.now() };
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
2
- import { r as ProductDetailController } from "./shop-commerce-DA7_Rq5p.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-WL-E1znM.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
2
+ import { r as ProductDetailController } from "./shop-commerce-BzpsOdh7.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-cF0c20vB.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/product-detail.client.tsx
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-BF7i6Ijg.mjs";
2
- import { i as ProductListController } from "./shop-commerce-DA7_Rq5p.mjs";
3
- import { t as mountShopBlockIsland } from "./shopShared-WL-E1znM.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-CiTuhUwY.mjs";
2
+ import { i as ProductListController } from "./shop-commerce-BzpsOdh7.mjs";
3
+ import { t as mountShopBlockIsland } from "./shopShared-cF0c20vB.mjs";
4
4
  import "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region ../blocks/src/system/runtime/nodes/product-list.client.tsx