@riverbankcms/sdk 0.152.0 → 0.153.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/CHANGELOG.md +15 -0
  2. package/dist/{EventEmbeddedCheckoutStep-DVQXWFm6.mjs → EventEmbeddedCheckoutStep-veN-QiAE.mjs} +1 -1
  3. package/dist/{PreviewEditorSidebar-Dr4NJi3Q.mjs → PreviewEditorSidebar-jI_4DTZY.mjs} +4 -4
  4. package/dist/{PreviewEditorUI-DSZXQbyh.mjs → PreviewEditorUI-ORkVZhfu.mjs} +3 -3
  5. package/dist/{SdkPreviewModeRuntime-Dl4GyMc3.mjs → SdkPreviewModeRuntime-DaNqevI1.mjs} +221 -115
  6. package/dist/{SiteChromeCustomizeContext-DgBe-FlM.mjs → SiteChromeCustomizeContext-CgNuBHC0.mjs} +1798 -2024
  7. package/dist/{ThemedButton-B8ViBnLK.mjs → ThemedButton-X2UxhW6F.mjs} +213 -38
  8. package/dist/_dts/ai/src/contracts/proposals.d.ts +52 -52
  9. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +2357 -7859
  10. package/dist/_dts/api/src/communications.d.ts +19 -5
  11. package/dist/_dts/api/src/indexExtendedTypes.d.ts +1 -1
  12. package/dist/_dts/api/src/sdkThemeWire.d.ts +186 -1434
  13. package/dist/_dts/api/src/shared-contracts.d.ts +10 -0
  14. package/dist/_dts/api/src/siteInfrastructure.d.ts +2 -1
  15. package/dist/_dts/api/src/teamMembers.d.ts +2 -27
  16. package/dist/_dts/block-form/src/widgets/RepeaterField/components/layoutGridDomain.d.ts +3 -13
  17. package/dist/_dts/blocks/src/contracts/index.d.ts +1 -0
  18. package/dist/_dts/blocks/src/index.d.ts +1 -0
  19. package/dist/_dts/blocks/src/lib/media.d.ts +1 -0
  20. package/dist/_dts/blocks/src/lib/picsum.d.ts +2 -2
  21. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +2 -1
  22. package/dist/_dts/blocks/src/system/blocks/events/eventSelectionFields.d.ts +1 -1
  23. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +196 -804
  24. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +2 -2
  25. package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +45 -45
  27. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +4 -7
  28. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +2 -2
  29. package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +6 -6
  30. package/dist/_dts/blocks/src/system/fields/backgroundContent.d.ts +377 -1
  31. package/dist/_dts/blocks/src/system/helpers/backgroundMedia.d.ts +6 -2
  32. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -3
  33. package/dist/_dts/blocks/src/system/layout/repeaterGrid.d.ts +12 -5
  34. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +24 -24
  36. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -0
  37. package/dist/_dts/blocks/src/system/node/fragments/lookSlot.d.ts +1 -1
  38. package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFlowController.d.ts +1 -1
  39. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +2 -0
  40. package/dist/_dts/blocks/src/system/runtime/lookSurfaces.d.ts +2 -2
  41. package/dist/_dts/blocks/src/system/runtime/nodes/ImageResolveContext.d.ts +1 -1
  42. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +50 -202
  43. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +28 -1
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/lookPresentation.d.ts +2 -2
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/presentation.d.ts +1 -1
  46. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CardListItem.d.ts +1 -1
  47. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCollectionContract.d.ts +276 -884
  48. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +3 -2
  49. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +22 -90
  50. package/dist/_dts/blocks/src/system/runtime/nodes/mediaContext.d.ts +69 -0
  51. package/dist/_dts/blocks/src/system/transforms/registry/index.d.ts +1 -0
  52. package/dist/_dts/blocks/src/system/transforms/registry/links.d.ts +3 -3
  53. package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
  54. package/dist/_dts/core/src/mailing-list-runtime.d.ts +2 -2
  55. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +9 -1
  56. package/dist/_dts/core/src/mailing-list-setup.d.ts +9 -1
  57. package/dist/_dts/core/src/mailing-list-submission.d.ts +1 -1
  58. package/dist/_dts/core/src/mailing-list-targeting.d.ts +9 -1
  59. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +55 -4
  60. package/dist/_dts/editor-blocks/src/index.d.ts +1 -0
  61. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -2
  62. package/dist/_dts/editor-blocks/src/media/admitEditorMediaField.d.ts +4 -0
  63. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/targetingState.d.ts +2 -2
  64. package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +6 -0
  65. package/dist/_dts/media-core/src/contentMediaAudit.d.ts +3 -2
  66. package/dist/_dts/media-core/src/index.d.ts +4 -0
  67. package/dist/_dts/media-core/src/media.d.ts +406 -0
  68. package/dist/_dts/media-core/src/mediaIdentifierSchema.d.ts +3 -0
  69. package/dist/_dts/media-core/src/mediaKinds.d.ts +2 -0
  70. package/dist/_dts/media-core/src/mediaUsageProjection.d.ts +13 -1
  71. package/dist/_dts/media-core/src/mediaWriteNormalizer.d.ts +2 -6
  72. package/dist/_dts/media-core/src/portableMediaReferences.d.ts +8 -21
  73. package/dist/_dts/media-core/src/renderableMediaAsset.d.ts +28 -14
  74. package/dist/_dts/media-core/src/renderableMediaAssetAdmission.d.ts +15 -0
  75. package/dist/_dts/media-editor/src/CropDialog.d.ts +6 -3
  76. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  77. package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -3
  78. package/dist/_dts/media-editor/src/cropEditorSource.d.ts +5 -7
  79. package/dist/_dts/media-editor/src/editorMediaState.d.ts +29 -0
  80. package/dist/_dts/media-editor/src/mediaSelection.d.ts +1 -2
  81. package/dist/_dts/media-editor/src/runtimeMediaAssetState.d.ts +4 -5
  82. package/dist/_dts/media-editor/src/types.d.ts +1 -1
  83. package/dist/_dts/media-editor/src/utils.d.ts +0 -1
  84. package/dist/_dts/media-react/src/components/cropChangePolicy.d.ts +4 -1
  85. package/dist/_dts/media-react/src/components/cropGeometry.d.ts +1 -0
  86. package/dist/_dts/media-react/src/components/useImageCropperController.d.ts +1 -0
  87. package/dist/_dts/preview-next/src/client/blocks/BlockBackgroundChooser.d.ts +2 -1
  88. package/dist/_dts/preview-next/src/client/blocks/previewCustomizeSelectedMedia.d.ts +11 -12
  89. package/dist/_dts/sdk/src/contracts/content.d.ts +2 -45
  90. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  91. package/dist/_dts/sdk/src/contracts/rendering.d.ts +3 -3
  92. package/dist/_dts/sdk/src/index.d.ts +1 -0
  93. package/dist/_dts/sdk/src/rendering/image.d.ts +5 -5
  94. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
  95. package/dist/_dts/sdk/src/rendering/link.d.ts +3 -7
  96. package/dist/_dts/sdk/src/rendering/mediaAssets.d.ts +2 -4
  97. package/dist/_dts/sdk/src/version.d.ts +1 -1
  98. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  99. package/dist/_dts/theme-core/src/boxBackgroundSchema.d.ts +397 -26
  100. package/dist/_dts/theme-core/src/buttons/types.d.ts +21 -21
  101. package/dist/_dts/theme-core/src/cards/types.d.ts +34 -34
  102. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  103. package/dist/_dts/theme-core/src/lib/media.d.ts +2 -616
  104. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +261 -2619
  105. package/dist/_dts/theme-core/src/palette/curated/types.d.ts +1 -1
  106. package/dist/_dts/theme-core/src/schema.d.ts +548 -3187
  107. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/site-styles/runtimeBackgroundResolution.d.ts +9 -9
  109. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  110. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  111. package/dist/_dts/theme-core/src/styles/skinTokens.d.ts +2 -2
  112. package/dist/_dts/theme-core/src/typography/schema.d.ts +2 -2
  113. package/dist/client/{BookingMailingListNote-CBuMKN0w.mjs → BookingMailingListNote-DrchYW1m.mjs} +2 -2
  114. package/dist/client/{CardListItem-Dc9XTXhB.mjs → CardListItem-CC_GVmF6.mjs} +5 -4
  115. package/dist/client/{CheckboxChoice-CIqx_o0E.mjs → CheckboxChoice-Dq30m3DO.mjs} +1 -1
  116. package/dist/client/{DemoBookingPortalAccess-D3VQ_kLj.mjs → DemoBookingPortalAccess-ojwbVUmx.mjs} +2 -2
  117. package/dist/client/{EventCombined.client-BHGEKise.mjs → EventCombined.client-DyN0v0Xk.mjs} +5 -6
  118. package/dist/client/{EventEmbeddedCheckoutStep-Bo1Cm23R.mjs → EventEmbeddedCheckoutStep-CgfpKc3n.mjs} +2 -2
  119. package/dist/client/{EventListing.client-D5OQgVPr.mjs → EventListing.client-CuOuvYMz.mjs} +2 -2
  120. package/dist/client/{LeafletStaticMap-CLL5cWrr.mjs → LeafletStaticMap-B0WhRr3j.mjs} +1 -1
  121. package/dist/client/{RichText-BoDmnopf.mjs → RichText-C1fIXBzA.mjs} +45 -32
  122. package/dist/client/{ThemedButton-Ciltp0IK.mjs → ThemedButton-B7HFqFBg.mjs} +1 -2
  123. package/dist/client/{accordion-DOkRS64-.mjs → accordion-DCDVWSye.mjs} +1 -1
  124. package/dist/client/{bookingForm-wlMVwo9h.mjs → bookingForm-BJ3C4GlM.mjs} +42 -15
  125. package/dist/client/bookings.mjs +116989 -22191
  126. package/dist/client/{carousel-CGWk-Z0u.mjs → carousel-BSCBhfHY.mjs} +2 -2
  127. package/dist/client/{carousel.client-kX5mN1Eg.mjs → carousel.client-GEtOGsxo.mjs} +1 -1
  128. package/dist/client/{cart-OBBPlaH4.mjs → cart-Yv-aAtck.mjs} +3 -3
  129. package/dist/client/{checkout-Bmw2WjQX.mjs → checkout-B9xDkl30.mjs} +3 -3
  130. package/dist/client/client.mjs +17577 -17361
  131. package/dist/client/{context-BI77UFAn.mjs → context-BOGe3rIA.mjs} +1 -1
  132. package/dist/client/{eventCalendar-qkej2Edn.mjs → eventCalendar-D6M0T9hs.mjs} +8 -9
  133. package/dist/client/{eventCombined-DApKHvat.mjs → eventCombined-NM4UFBq8.mjs} +4 -4
  134. package/dist/client/{eventDetails-BQyUDPH0.mjs → eventDetails-f_FhV4O8.mjs} +3 -3
  135. package/dist/client/{eventListing-CeAnshlZ.mjs → eventListing-WLkfAROh.mjs} +4 -4
  136. package/dist/client/{eventRegistration-C3A3NyBO.mjs → eventRegistration-D3ejfLvW.mjs} +10 -10
  137. package/dist/client/{form-DW8rU7jO.mjs → form-D5Or2Jyu.mjs} +4 -5
  138. package/dist/client/{headerSection-CkIhsoNm.mjs → headerSection-hWgnv27V.mjs} +3 -3
  139. package/dist/client/hooks.mjs +16014 -15751
  140. package/dist/client/{locationMap-D4O8wbli.mjs → locationMap-Di1K0O2S.mjs} +3 -4
  141. package/dist/client/{media-C5K_0xPd.mjs → media-D29-F1u_.mjs} +183 -362
  142. package/dist/client/mediaContext-CwbbimYB.mjs +135 -0
  143. package/dist/client/{newsletterForm-B7IxSPuz.mjs → newsletterForm-CwxcwTNO.mjs} +4 -4
  144. package/dist/client/{productDetail-Bqxpwy5N.mjs → productDetail-BLSnhPdA.mjs} +3 -3
  145. package/dist/client/{productList-u9Lz8V15.mjs → productList-oGytONOX.mjs} +3 -3
  146. package/dist/client/{propsDecoder-Bf1jucUp.mjs → propsDecoder-lf_dTeZS.mjs} +1467 -125
  147. package/dist/client/renderableMediaAssetAdmission-CHkXYDC_.mjs +143 -0
  148. package/dist/client/rendering/client.mjs +10855 -10689
  149. package/dist/client/rendering/islands.mjs +20 -23
  150. package/dist/client/rendering.mjs +18411 -18181
  151. package/dist/client/{routeIslandApiConfig-BgP-aPMl.mjs → routeIslandApiConfig-Bc_WVPS8.mjs} +1 -1
  152. package/dist/client/{shop-B_eykR-_.mjs → shop-BQ3bR7fA.mjs} +7 -7
  153. package/dist/client/{shop-commerce-CT0APkFV.mjs → shop-commerce-DDPll6ZC.mjs} +8 -8
  154. package/dist/client/{shop-commerce-store-DcvZxdEK.mjs → shop-commerce-store-DO-e1pTe.mjs} +1 -1
  155. package/dist/client/{shopShared-BVJOiUiJ.mjs → shopShared-BylM9jh1.mjs} +5 -5
  156. package/dist/client/{useDiscountCodeUi-DPmYDunz.mjs → useDiscountCodeUi-B1Puub2v.mjs} +1 -1
  157. package/dist/client/{useEventPagination-8-U55vH5.mjs → useEventPagination-BBhkmQaT.mjs} +6 -7
  158. package/dist/preview-next/before-render.mjs +89 -4
  159. package/dist/preview-next/client/runtime.mjs +3 -3
  160. package/dist/{sdk-runtime-C5jPdSrk.mjs → sdk-runtime-DWCvhJGu.mjs} +1 -1
  161. package/dist/server/components.mjs +18663 -18510
  162. package/dist/server/config-validation.mjs +450 -215
  163. package/dist/server/config.mjs +450 -215
  164. package/dist/server/data.mjs +15940 -15705
  165. package/dist/server/index.mjs +227 -2
  166. package/dist/server/next.mjs +18643 -18490
  167. package/dist/server/page-converter.mjs +12588 -12477
  168. package/dist/server/prebuild.mjs +1 -1
  169. package/dist/server/rendering/server.mjs +18007 -17855
  170. package/dist/server/rendering.mjs +18677 -18516
  171. package/dist/server/routing.mjs +17747 -17469
  172. package/dist/server/server.mjs +539 -276
  173. package/dist/server/theme-bridge.mjs +154 -37
  174. package/dist/server/theme.mjs +154 -37
  175. package/dist/{spinner-B-ab2rJp.mjs → spinner-BYM-Y81w.mjs} +1 -1
  176. package/package.json +1 -1
  177. package/dist/client/aspectTransforms-D-TnDdq4.mjs +0 -93
  178. package/dist/client/colorStyles-ECDNPE_P.mjs +0 -1253
@@ -0,0 +1,135 @@
1
+ import { t as buildRenderableMediaAssetIndex } from "./renderableMediaAssetAdmission-CHkXYDC_.mjs";
2
+ //#region ../blocks/src/system/runtime/nodes/mediaContext.ts
3
+ function buildMediaAssetIndex(assets) {
4
+ return buildRenderableMediaAssetIndex(assets);
5
+ }
6
+ function normalizeSupabaseUrl(value) {
7
+ return value?.replace(/\/$/, "");
8
+ }
9
+ function buildResolveImageUrlContext(input) {
10
+ return {
11
+ supabaseUrl: normalizeSupabaseUrl(input?.supabaseUrl),
12
+ siteId: input?.siteId,
13
+ mediaAssetIndex: input?.mediaAssetIndex ?? buildMediaAssetIndex(input?.mediaAssets)
14
+ };
15
+ }
16
+ /**
17
+ * Server-side: AsyncLocalStorage for request isolation.
18
+ * Prevents race conditions when multiple requests are processed concurrently.
19
+ *
20
+ * Lazy initialization to avoid issues in environments that don't support async_hooks.
21
+ */
22
+ const serverStorageState = {
23
+ storage: null,
24
+ checked: false
25
+ };
26
+ function getServerStorage() {
27
+ if (typeof window !== "undefined") return null;
28
+ if (serverStorageState.checked) return serverStorageState.storage;
29
+ serverStorageState.checked = true;
30
+ try {
31
+ const globalWithNonWebpackRequire = globalThis;
32
+ const AsyncLocalStorage = (typeof globalWithNonWebpackRequire.__non_webpack_require__ === "function" ? globalWithNonWebpackRequire.__non_webpack_require__ : new Function("id", "return require(id)"))("async_hooks").AsyncLocalStorage;
33
+ if (AsyncLocalStorage) {
34
+ serverStorageState.storage = new AsyncLocalStorage();
35
+ return serverStorageState.storage;
36
+ }
37
+ return null;
38
+ } catch {
39
+ console.warn("[blocks] AsyncLocalStorage not available - using module-level state");
40
+ return null;
41
+ }
42
+ }
43
+ /**
44
+ * Client-side context storage.
45
+ * Safe because browsers are single-threaded per tab.
46
+ *
47
+ * IMPORTANT: This must be shared across bundles.
48
+ * SDK preview mode can load multiple independently-bundled entrypoints
49
+ * (e.g. `@riverbankcms/sdk/rendering` + `@riverbankcms/sdk/preview-next/client`),
50
+ * which can otherwise each get their own module-scoped singleton.
51
+ */
52
+ const RB_MEDIA_CONTEXT_KEY = Symbol.for("riverbankcms.blocks.mediaContext");
53
+ function getClientContextStore() {
54
+ const g = globalThis;
55
+ const existing = g[RB_MEDIA_CONTEXT_KEY];
56
+ if (existing && typeof existing === "object") return existing;
57
+ const next = {};
58
+ g[RB_MEDIA_CONTEXT_KEY] = next;
59
+ return next;
60
+ }
61
+ /**
62
+ * Get the current media context.
63
+ * Server-side: Uses AsyncLocalStorage for request isolation.
64
+ * Client-side: Uses module-level state (safe in single-threaded browser).
65
+ */
66
+ function getMediaContext() {
67
+ const storage = getServerStorage();
68
+ if (storage) return storage.getStore() ?? {};
69
+ return getClientContextStore();
70
+ }
71
+ /**
72
+ * Set the Supabase URL in the current context.
73
+ * @deprecated Use runWithMediaContext instead for request isolation.
74
+ */
75
+ function updateMediaContext(patch) {
76
+ const storage = getServerStorage();
77
+ const current = storage?.getStore();
78
+ if (current) Object.assign(current, patch);
79
+ else if (storage?.enterWith) storage.enterWith(patch);
80
+ else Object.assign(getClientContextStore(), patch);
81
+ }
82
+ function setContextSupabaseUrl(url) {
83
+ updateMediaContext({ supabaseUrl: normalizeSupabaseUrl(url) });
84
+ }
85
+ /** @deprecated Use runWithMediaContext for request isolation. */
86
+ function setContextSiteId(siteId) {
87
+ updateMediaContext({ siteId });
88
+ }
89
+ function setContextMediaAssetIndex(index) {
90
+ updateMediaContext({ mediaAssetIndex: index });
91
+ }
92
+ function setContextResolveImageUrlContext(context) {
93
+ setContextSupabaseUrl(context?.supabaseUrl);
94
+ setContextSiteId(context?.siteId);
95
+ setContextMediaAssetIndex(context?.mediaAssetIndex);
96
+ }
97
+ function getCurrentResolveImageUrlContext() {
98
+ const context = getMediaContext();
99
+ if (!context.supabaseUrl && !context.siteId && !context.mediaAssetIndex) return;
100
+ return {
101
+ supabaseUrl: context.supabaseUrl,
102
+ siteId: context.siteId,
103
+ mediaAssetIndex: context.mediaAssetIndex
104
+ };
105
+ }
106
+ /**
107
+ * Get the Supabase URL for constructing direct storage URLs.
108
+ * Used for serving images directly from Supabase storage CDN.
109
+ *
110
+ * Resolution order:
111
+ * 1. Context URL (set via runWithMediaContext or setContextSupabaseUrl)
112
+ * 2. Environment variable NEXT_PUBLIC_SUPABASE_URL
113
+ *
114
+ * SDK sites receive the URL from the API, so they don't need the env var.
115
+ * Dashboard and frontend apps use the env var.
116
+ */
117
+ function getSupabaseUrl() {
118
+ const context = getMediaContext();
119
+ if (context.supabaseUrl) return context.supabaseUrl;
120
+ const url = process.env.NEXT_PUBLIC_SUPABASE_URL;
121
+ if (!url) throw new Error("NEXT_PUBLIC_SUPABASE_URL is not configured. Set it to your Supabase project URL (e.g., https://xxx.supabase.co)");
122
+ return url.replace(/\/$/, "");
123
+ }
124
+ /**
125
+ * Get the site ID for constructing storage paths.
126
+ * Required for relative path resolution.
127
+ */
128
+ function getSiteId() {
129
+ return getMediaContext().siteId;
130
+ }
131
+ function getMediaAssetIndex(context) {
132
+ return context?.mediaAssetIndex ?? getMediaContext().mediaAssetIndex;
133
+ }
134
+ //#endregion
135
+ export { getSupabaseUrl as a, getSiteId as i, getCurrentResolveImageUrlContext as n, setContextResolveImageUrlContext as o, getMediaAssetIndex as r, buildResolveImageUrlContext as t };
@@ -1,9 +1,8 @@
1
1
  "use client";
2
- import { F as clsx } from "./colorStyles-ECDNPE_P.mjs";
3
- import { Lr as assertNever, g as newsletterBlockSubmissionMessage, h as NEWSLETTER_SIGNUPS_PAUSED_MESSAGE, t as defineIslandPropsDecoder, ti as parseMailingListVisitorSelection, yi as assertNever$1 } from "./propsDecoder-Bf1jucUp.mjs";
4
- import { t as ThemedButton } from "./ThemedButton-Ciltp0IK.mjs";
2
+ import { Lr as assertNever, g as newsletterBlockSubmissionMessage, h as NEWSLETTER_SIGNUPS_PAUSED_MESSAGE, ji as assertNever$1, ni as clsx, pi as parseMailingListVisitorSelection, t as defineIslandPropsDecoder } from "./propsDecoder-lf_dTeZS.mjs";
3
+ import { t as ThemedButton } from "./ThemedButton-B7HFqFBg.mjs";
5
4
  import { t as FeedbackMessage } from "./FeedbackMessage-CtLvvS_d.mjs";
6
- import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-BI77UFAn.mjs";
5
+ import { n as useBlockApi, r as BlockApiError, t as BlockApiProvider } from "./context-BOGe3rIA.mjs";
7
6
  import { n as isSpamProtectionEnabled, r as AltchaWidget, t as getChallengeUrl } from "./src-B833rYRr.mjs";
8
7
  import { i as getFieldValidationControlProps, r as FieldValidationMessage, t as MAILING_LIST_CONFIRMATION_MESSAGE } from "./mailingListSignupCopy-DZSHZrm6.mjs";
9
8
  import { t as mountReactIsland } from "./reactMount-SY8AVRof.mjs";
@@ -520,6 +519,7 @@ function publicSignupError(outcome) {
520
519
  switch (outcome.tag) {
521
520
  case "invalid_input": return "Please check your details and try again.";
522
521
  case "unavailable": switch (outcome.reason) {
522
+ case "confirmation_email_failed": return "We couldn’t send your confirmation email. Please try again later.";
523
523
  case "configuration_unavailable":
524
524
  case "authentication_failed":
525
525
  case "target_unavailable": return NEWSLETTER_SIGNUPS_PAUSED_MESSAGE;
@@ -1,6 +1,6 @@
1
- import { t as defineIslandPropsDecoder } from "./propsDecoder-Bf1jucUp.mjs";
2
- import { t as mountShopBlockIsland } from "./shopShared-BVJOiUiJ.mjs";
3
- import { r as ProductDetailController } from "./shop-commerce-CT0APkFV.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-lf_dTeZS.mjs";
2
+ import { t as mountShopBlockIsland } from "./shopShared-BylM9jh1.mjs";
3
+ import { r as ProductDetailController } from "./shop-commerce-DDPll6ZC.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-Bf1jucUp.mjs";
2
- import { t as mountShopBlockIsland } from "./shopShared-BVJOiUiJ.mjs";
3
- import { i as ProductListController } from "./shop-commerce-CT0APkFV.mjs";
1
+ import { t as defineIslandPropsDecoder } from "./propsDecoder-lf_dTeZS.mjs";
2
+ import { t as mountShopBlockIsland } from "./shopShared-BylM9jh1.mjs";
3
+ import { i as ProductListController } from "./shop-commerce-DDPll6ZC.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