@riverbankcms/sdk 0.89.1 → 0.90.1

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 +27 -4
  2. package/dist/{PreviewEditorSidebar-JDR64FEC.mjs → PreviewEditorSidebar-FNFRVSIM.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-67TMJMAF.mjs → PreviewEditorUI-3WXJFQXG.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-2UCIMKUB.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
  6. package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
  7. package/dist/_dts/api/src/bookingConfig.d.ts +3 -0
  8. package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
  9. package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
  10. package/dist/_dts/api/src/bookings.d.ts +3 -1
  11. package/dist/_dts/api/src/event-listing-destination.d.ts +59 -0
  12. package/dist/_dts/api/src/index.d.ts +10 -5
  13. package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +0 -1
  14. package/dist/_dts/api/src/navigation.d.ts +2 -0
  15. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +18 -6
  16. package/dist/_dts/api/src/request.d.ts +21 -0
  17. package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
  18. package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
  19. package/dist/_dts/api/src/settings/permissions.d.ts +273 -0
  20. package/dist/_dts/api/src/types.d.ts +4 -1
  21. package/dist/_dts/api/src/url.d.ts +6 -3
  22. package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
  23. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
  24. package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
  25. package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
  26. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
  27. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
  28. package/dist/_dts/blocks/src/index.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
  30. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +60 -2
  31. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +16 -5
  32. package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
  33. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +9 -9
  34. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
  35. package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
  36. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
  38. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
  39. package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
  40. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +17 -5
  41. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
  42. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
  43. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
  44. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
  45. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
  46. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
  47. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +7 -1
  48. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +48 -0
  49. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
  50. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
  51. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
  52. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
  53. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
  54. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
  56. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
  57. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
  58. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
  59. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/destination.d.ts +8 -0
  60. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
  61. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/pricing.d.ts +3 -0
  62. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
  63. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
  64. package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
  65. package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
  66. package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
  67. package/dist/_dts/content-model/src/entry-slots/types.d.ts +7 -0
  68. package/dist/_dts/core/src/event-pricing.d.ts +12 -2
  69. package/dist/_dts/core/src/money-input.d.ts +18 -0
  70. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -0
  71. package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
  72. package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
  73. package/dist/_dts/media-editor/src/index.d.ts +1 -1
  74. package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
  75. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
  76. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
  77. package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
  78. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
  79. package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
  80. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
  81. package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
  82. package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
  83. package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
  84. package/dist/_dts/sdk/src/components.d.ts +1 -0
  85. package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
  86. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
  87. package/dist/_dts/sdk/src/next/types.d.ts +8 -11
  88. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
  89. package/dist/_dts/sdk/src/public-api/contracts.d.ts +11 -1
  90. package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
  91. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
  92. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
  93. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
  94. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +11 -1
  95. package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
  96. package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
  97. package/dist/_dts/sdk/src/version.d.ts +1 -1
  98. package/dist/_dts/site-commands/src/commands.d.ts +18 -0
  99. package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
  100. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  101. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
  102. package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
  103. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  104. package/dist/_dts/theme-core/src/index.d.ts +2 -0
  105. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
  106. package/dist/_dts/theme-core/src/schema.d.ts +18 -18
  107. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
  108. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
  109. package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
  110. package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
  111. package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
  112. package/dist/{chunk-7YUAXONX.mjs → chunk-CR2VX432.mjs} +1563 -877
  113. package/dist/{chunk-HKJQERFR.mjs → chunk-FA6LVZ7C.mjs} +91 -55
  114. package/dist/{chunk-TGBJWKMP.mjs → chunk-H6TT5ZXI.mjs} +9 -1
  115. package/dist/{chunk-ZQRBLCW5.mjs → chunk-SYYJZPKU.mjs} +2 -2
  116. package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
  117. package/dist/cli/index.mjs +1057 -632
  118. package/dist/cli/init-docs/content/cli-reference.md +6 -1
  119. package/dist/cli/init-docs/content/content-management.md +27 -0
  120. package/dist/client/{accordion-MUCVNGQ7.mjs → accordion-4K7VGZ3I.mjs} +2 -2
  121. package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-3QXA3CIS.mjs} +26 -271
  122. package/dist/client/bookings.mjs +1586 -825
  123. package/dist/client/{carousel-3TKQSNJC.mjs → carousel-BEJKNGQ7.mjs} +3 -3
  124. package/dist/client/{cart-6XHSZK23.mjs → cart-44BBM6XG.mjs} +7 -8
  125. package/dist/client/{checkout-FVSPM6FI.mjs → checkout-THMHEYKF.mjs} +7 -8
  126. package/dist/client/{chunk-25W2EQUN.mjs → chunk-3H5CLFKT.mjs} +8 -0
  127. package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-4COPESPO.mjs} +13 -16
  128. package/dist/client/chunk-5AJIMWKS.mjs +436 -0
  129. package/dist/client/{chunk-UQFY4AHX.mjs → chunk-B4H6QMPY.mjs} +157 -49
  130. package/dist/client/{chunk-VGLXACVK.mjs → chunk-DQIRKNZE.mjs} +1 -1
  131. package/dist/client/{chunk-7DH35FGA.mjs → chunk-EJBHK74Y.mjs} +1 -1
  132. package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
  133. package/dist/client/{chunk-CQKKFEQD.mjs → chunk-JV7ZNAOU.mjs} +378 -111
  134. package/dist/client/{chunk-FHU6PFPM.mjs → chunk-KNTLBQ3N.mjs} +1 -1
  135. package/dist/client/{chunk-RSQWWUAD.mjs → chunk-PEDNDLPB.mjs} +4 -4
  136. package/dist/client/{chunk-EY42X22F.mjs → chunk-SLY6UDAS.mjs} +157 -5
  137. package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
  138. package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-ZIAF2DA4.mjs} +1 -1
  139. package/dist/client/client.mjs +3552 -2898
  140. package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-URX7RCCK.mjs} +20 -58
  141. package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-GTENOQCE.mjs} +10 -11
  142. package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-EZVB72MF.mjs} +10 -11
  143. package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-CH4BJR5Z.mjs} +10 -11
  144. package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-4BVOI5HS.mjs} +10 -11
  145. package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-37LPIKIE.mjs} +10 -11
  146. package/dist/client/{form-WZZFFGMU.mjs → form-FX3Y54YK.mjs} +7 -7
  147. package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-UOZZGVYL.mjs} +3 -3
  148. package/dist/client/hooks.mjs +1169 -1063
  149. package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-VSIPKV35.mjs} +3 -3
  150. package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-6FRJKNAF.mjs} +5 -5
  151. package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-6AHMLXCO.mjs} +7 -8
  152. package/dist/client/{productList-5ABEMKUG.mjs → productList-M2CYIZVH.mjs} +7 -8
  153. package/dist/client/rendering/client.mjs +2912 -2316
  154. package/dist/client/rendering/islands.mjs +19 -19
  155. package/dist/client/rendering.mjs +2874 -2230
  156. package/dist/client/{shop-OMMQZ6YO.mjs → shop-AUOT6GEX.mjs} +7 -8
  157. package/dist/client/spam-protection.mjs +4 -5
  158. package/dist/preview-next/before-render.mjs +2 -2
  159. package/dist/preview-next/client/runtime.mjs +5 -5
  160. package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-6GPJNLU6.mjs} +6 -6
  161. package/dist/server/components.mjs +1856 -1509
  162. package/dist/server/config-validation.mjs +1394 -1288
  163. package/dist/server/config.mjs +1394 -1288
  164. package/dist/server/data.mjs +1169 -1063
  165. package/dist/server/index.mjs +135 -100
  166. package/dist/server/navigation.mjs +20 -30
  167. package/dist/server/next.mjs +1936 -1576
  168. package/dist/server/page-converter.mjs +1081 -967
  169. package/dist/server/prebuild.mjs +1 -1
  170. package/dist/server/rendering/server.mjs +1868 -1521
  171. package/dist/server/rendering.mjs +1878 -1531
  172. package/dist/server/routing.mjs +1248 -1089
  173. package/dist/server/server.mjs +1312 -1171
  174. package/dist/server/theme-bridge.mjs +8 -5
  175. package/package.json +3 -3
  176. package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
  177. package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
  178. package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
@@ -18944,12 +18944,15 @@ import { jsx as jsx2 } from "react/jsx-runtime";
18944
18944
  import * as React from "react";
18945
18945
  import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
18946
18946
 
18947
+ // ../theme-core/src/ResponsiveScope.tsx
18948
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
18949
+
18947
18950
  // ../theme-core/src/siteChromeOverlayClearance.ts
18948
18951
  var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
18949
18952
  var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
18950
18953
 
18951
18954
  // ../theme-core/src/siteChrome.tsx
18952
- import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
18955
+ import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
18953
18956
 
18954
18957
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
18955
18958
  import { z as z20 } from "zod";
@@ -19578,10 +19581,10 @@ function buildBridgeGeneratorTheme(corners2) {
19578
19581
  }
19579
19582
 
19580
19583
  // ../theme-core/src/mock-themes/components/swatch.tsx
19581
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
19584
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
19582
19585
 
19583
19586
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
19584
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
19587
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
19585
19588
 
19586
19589
  // src/theme-bridge/generateCssVars.ts
19587
19590
  function generateThemeBridgeCss(config) {
@@ -19609,7 +19612,7 @@ ${cssLines}
19609
19612
  }
19610
19613
 
19611
19614
  // src/theme-bridge/ThemeBridgeProvider.tsx
19612
- import { jsx as jsx7 } from "react/jsx-runtime";
19615
+ import { jsx as jsx8 } from "react/jsx-runtime";
19613
19616
  function ThemeBridgeProvider({
19614
19617
  config,
19615
19618
  children,
@@ -19620,7 +19623,7 @@ function ThemeBridgeProvider({
19620
19623
  [config]
19621
19624
  );
19622
19625
  const cssVarsStyle = runtime.cssVars;
19623
- return /* @__PURE__ */ jsx7(
19626
+ return /* @__PURE__ */ jsx8(
19624
19627
  ThemeScopeCore,
19625
19628
  {
19626
19629
  cssVars: cssVarsStyle,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.89.1",
3
+ "version": "0.90.1",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",
@@ -222,11 +222,11 @@
222
222
  "clean:dist": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
223
223
  "build": "pnpm clean:dist && node --max-old-space-size=4096 node_modules/tsup/dist/cli-default.js && node --max-old-space-size=4096 scripts/generate-types.mjs",
224
224
  "dev": "pnpm clean:dist && node --max-old-space-size=4096 node_modules/tsup/dist/cli-default.js --watch",
225
- "typecheck": "tsc --noEmit",
225
+ "typecheck": "tsgo --noEmit",
226
226
  "check:declaration-hygiene": "node scripts/check-declaration-hygiene.mjs",
227
227
  "check:packed-exports": "node scripts/check-packed-exports.mjs",
228
228
  "measure:public-bundles": "node scripts/measure-public-bundles.mjs --pretty",
229
- "lint": "eslint --cache --cache-location node_modules/.cache/eslint/.eslintcache src",
229
+ "lint": "node ../../scripts/run-package-lint.mjs src",
230
230
  "test": "vitest run",
231
231
  "test:edge-smoke": "sh -c \"cd src/next/__fixtures__/edge-theme-smoke && mkdir -p node_modules/@riverbankcms && ln -sfn ../../../../../.. node_modules/@riverbankcms/sdk && NEXT_TELEMETRY_DISABLED=1 next build\"",
232
232
  "test:preview-client-smoke": "node scripts/preview-client-smoke.mjs",
@@ -1,8 +0,0 @@
1
- "use client";
2
- export { SdkPreviewModeRuntime } from './chunk-HKJQERFR.mjs';
3
- import './chunk-7N46MZHI.mjs';
4
- import './chunk-TGBJWKMP.mjs';
5
- import './chunk-ZQRBLCW5.mjs';
6
- import './chunk-7YUAXONX.mjs';
7
- import './chunk-F645A5UV.mjs';
8
- import './chunk-R7POPVJR.mjs';
@@ -1,184 +0,0 @@
1
- "use client";
2
- import { assertNever11 } from './chunk-UQFY4AHX.mjs';
3
- import { useReducer, useRef, useCallback, useEffect } from 'react';
4
-
5
- // ../blocks/src/system/runtime/hooks/usePolling.state.ts
6
- function createInitialPollingState() {
7
- return {
8
- tag: "idle",
9
- result: null,
10
- error: null
11
- };
12
- }
13
- function pollingReducer(state, action) {
14
- switch (action.type) {
15
- case "polling-went-idle":
16
- return createInitialPollingState();
17
- case "polling-reset":
18
- return {
19
- tag: "polling",
20
- result: null,
21
- error: null
22
- };
23
- case "polling-progressed":
24
- return {
25
- tag: "polling",
26
- result: action.result,
27
- error: null
28
- };
29
- case "polling-completed":
30
- return {
31
- tag: "completed",
32
- result: action.result,
33
- error: null
34
- };
35
- case "polling-failed":
36
- return {
37
- tag: "failed",
38
- result: action.result,
39
- error: null
40
- };
41
- case "polling-request-failed":
42
- switch (state.tag) {
43
- case "idle":
44
- return {
45
- tag: "polling",
46
- result: null,
47
- error: action.error
48
- };
49
- case "polling":
50
- return {
51
- tag: "polling",
52
- result: state.result,
53
- error: action.error
54
- };
55
- case "completed":
56
- case "failed":
57
- case "timeout":
58
- return state;
59
- default:
60
- return assertNever11(state);
61
- }
62
- case "polling-timed-out":
63
- return {
64
- tag: "timeout",
65
- result: state.result,
66
- error: new Error("Polling timed out")
67
- };
68
- default:
69
- return assertNever11(action);
70
- }
71
- }
72
-
73
- // ../blocks/src/system/runtime/hooks/usePolling.ts
74
- var DEFAULT_MAX_ATTEMPTS = 10;
75
- var DEFAULT_POLL_INTERVAL = 1e3;
76
- function usePolling(config) {
77
- const [state, dispatch] = useReducer(
78
- pollingReducer,
79
- void 0,
80
- createInitialPollingState
81
- );
82
- const attemptsRef = useRef(0);
83
- const timeoutRef = useRef(null);
84
- const isPollingRef = useRef(false);
85
- const isActiveRef = useRef(false);
86
- const generationRef = useRef(0);
87
- const configRef = useRef(config);
88
- configRef.current = config;
89
- const cleanup = useCallback(() => {
90
- isActiveRef.current = false;
91
- generationRef.current += 1;
92
- if (timeoutRef.current) {
93
- clearTimeout(timeoutRef.current);
94
- timeoutRef.current = null;
95
- }
96
- isPollingRef.current = false;
97
- }, []);
98
- const resetState = useCallback(() => {
99
- dispatch({ type: "polling-reset" });
100
- attemptsRef.current = 0;
101
- }, []);
102
- const poll = useCallback(async () => {
103
- const cfg = configRef.current;
104
- if (!cfg) return true;
105
- if (isPollingRef.current) return false;
106
- const maxAttempts = cfg.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
107
- if (attemptsRef.current >= maxAttempts) {
108
- dispatch({ type: "polling-timed-out" });
109
- cleanup();
110
- return true;
111
- }
112
- isPollingRef.current = true;
113
- attemptsRef.current += 1;
114
- const generation = generationRef.current;
115
- try {
116
- const data = await cfg.pollFn();
117
- if (generation !== generationRef.current || !isActiveRef.current) {
118
- isPollingRef.current = false;
119
- return true;
120
- }
121
- if (cfg.isFailed?.(data)) {
122
- dispatch({ type: "polling-failed", result: data });
123
- cleanup();
124
- return true;
125
- }
126
- if (cfg.isComplete(data)) {
127
- dispatch({ type: "polling-completed", result: data });
128
- cleanup();
129
- return true;
130
- }
131
- dispatch({ type: "polling-progressed", result: data });
132
- isPollingRef.current = false;
133
- return false;
134
- } catch (err) {
135
- if (generation !== generationRef.current || !isActiveRef.current) {
136
- isPollingRef.current = false;
137
- return true;
138
- }
139
- if (err instanceof Error) {
140
- dispatch({ type: "polling-request-failed", error: err });
141
- }
142
- isPollingRef.current = false;
143
- return false;
144
- }
145
- }, [cleanup]);
146
- const schedulePoll = useCallback(() => {
147
- if (!isActiveRef.current) return;
148
- const cfg = configRef.current;
149
- const pollInterval = cfg?.interval ?? DEFAULT_POLL_INTERVAL;
150
- const doPoll = async () => {
151
- const shouldStop = await poll();
152
- if (!shouldStop && isActiveRef.current) {
153
- timeoutRef.current = setTimeout(doPoll, pollInterval);
154
- }
155
- };
156
- void doPoll();
157
- }, [poll]);
158
- useEffect(() => {
159
- if (!config) {
160
- cleanup();
161
- dispatch({ type: "polling-went-idle" });
162
- return;
163
- }
164
- resetState();
165
- isActiveRef.current = true;
166
- schedulePoll();
167
- return cleanup;
168
- }, [config, cleanup, resetState, schedulePoll]);
169
- const retry = useCallback(() => {
170
- if (!configRef.current) return;
171
- cleanup();
172
- resetState();
173
- isActiveRef.current = true;
174
- schedulePoll();
175
- }, [cleanup, resetState, schedulePoll]);
176
- return {
177
- status: config ? state.tag : "idle",
178
- result: config ? state.result : null,
179
- error: config ? state.error : null,
180
- retry
181
- };
182
- }
183
-
184
- export { usePolling };
@@ -1,66 +0,0 @@
1
- "use client";
2
- import { useState, useEffect } from 'react';
3
-
4
- // ../blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.ts
5
- function useDiscountCodeUi(options) {
6
- const [discountUiOpen, setDiscountUiOpen] = useState(false);
7
- const [discountCode, setDiscountCode] = useState("");
8
- const [discountsAvailable, setDiscountsAvailable] = useState(false);
9
- const [manualCodeEntryAllowed, setManualCodeEntryAllowed] = useState(false);
10
- const [autoAppliedDiscount, setAutoAppliedDiscount] = useState(null);
11
- const [discountsAvailableLoading, setDiscountsAvailableLoading] = useState(false);
12
- useEffect(() => {
13
- let cancelled = false;
14
- async function checkDiscountAvailability() {
15
- if (!options.discountContext) {
16
- setDiscountsAvailable(false);
17
- setManualCodeEntryAllowed(false);
18
- setAutoAppliedDiscount(null);
19
- setDiscountsAvailableLoading(false);
20
- setDiscountUiOpen(false);
21
- setDiscountCode("");
22
- return;
23
- }
24
- setDiscountsAvailableLoading(true);
25
- try {
26
- const res = await options.api.getDiscountsAvailable({
27
- context: options.discountContext,
28
- subtotalCents: options.subtotalCents
29
- });
30
- if (cancelled) return;
31
- setDiscountsAvailable(res.hasDiscounts);
32
- setManualCodeEntryAllowed(res.manualCodeEntryAllowed);
33
- setAutoAppliedDiscount(res.autoAppliedDiscount);
34
- if (!res.hasDiscounts || !res.manualCodeEntryAllowed) {
35
- setDiscountUiOpen(false);
36
- setDiscountCode("");
37
- }
38
- } catch {
39
- if (cancelled) return;
40
- setDiscountsAvailable(false);
41
- setManualCodeEntryAllowed(false);
42
- setAutoAppliedDiscount(null);
43
- setDiscountUiOpen(false);
44
- setDiscountCode("");
45
- } finally {
46
- if (!cancelled) setDiscountsAvailableLoading(false);
47
- }
48
- }
49
- void checkDiscountAvailability();
50
- return () => {
51
- cancelled = true;
52
- };
53
- }, [options.api, options.discountContext, options.subtotalCents]);
54
- return {
55
- discountUiOpen,
56
- setDiscountUiOpen,
57
- discountCode,
58
- setDiscountCode,
59
- discountsAvailable,
60
- manualCodeEntryAllowed,
61
- autoAppliedDiscount,
62
- discountsAvailableLoading
63
- };
64
- }
65
-
66
- export { useDiscountCodeUi };