@riverbankcms/sdk 0.91.0 → 0.93.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 (118) hide show
  1. package/dist/{PreviewEditorSidebar-3TT47WCF.mjs → PreviewEditorSidebar-D3PAF7NW.mjs} +3 -3
  2. package/dist/{PreviewEditorUI-ORCLLUNZ.mjs → PreviewEditorUI-G5JVJEIJ.mjs} +3 -3
  3. package/dist/SdkPreviewModeRuntime-NHTLRNQD.mjs +8 -0
  4. package/dist/_dts/api/src/bookingConfig.d.ts +13 -1
  5. package/dist/_dts/api/src/bookingOperations.d.ts +1 -0
  6. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +6 -6
  7. package/dist/_dts/api/src/common/envelope.d.ts +10 -0
  8. package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
  9. package/dist/_dts/api/src/index.d.ts +2 -2
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +6 -0
  11. package/dist/_dts/api/src/request.d.ts +1 -1
  12. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -0
  13. package/dist/_dts/blocks/src/system/blocks/courses/shared/pricing.d.ts +12 -1
  14. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +12 -0
  15. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +4 -1
  16. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +44 -0
  17. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +8 -0
  18. package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +8 -1
  19. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.d.ts +8 -1
  20. package/dist/_dts/blocks/src/system/runtime/hooks/useHeadlessBookingFlow.state.d.ts +1 -0
  21. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +4 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +40 -0
  23. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.reserved-fields.d.ts +1 -1
  24. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.state.d.ts +29 -0
  25. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/components.d.ts +6 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +8 -0
  28. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/TicketSelectionStep.d.ts +8 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/hooks.d.ts +1 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationSubmit.d.ts +1 -0
  32. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +9 -0
  33. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +14 -14
  34. package/dist/_dts/content-editor/src/controller/useEntrySyncHelpers.d.ts +1 -1
  35. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +5 -15
  36. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +46 -0
  37. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +43 -36
  38. package/dist/_dts/content-model/src/entry-slots/types.d.ts +110 -2
  39. package/dist/_dts/core/src/branded.d.ts +3 -0
  40. package/dist/_dts/core/src/event-pricing.d.ts +18 -1
  41. package/dist/_dts/core/src/money-input.d.ts +34 -4
  42. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +70 -0
  43. package/dist/_dts/media-core/src/fileAssetCompatibility.d.ts +1 -1
  44. package/dist/_dts/media-core/src/filePersistence.d.ts +5 -1
  45. package/dist/_dts/media-core/src/fileStorage.d.ts +1 -0
  46. package/dist/_dts/media-core/src/fileUploadFinalization.d.ts +29 -1
  47. package/dist/_dts/media-core/src/index.d.ts +1 -0
  48. package/dist/_dts/media-core/src/legacyMediaValue.d.ts +11 -0
  49. package/dist/_dts/media-core/src/videoPrep.d.ts +15 -6
  50. package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +5 -5
  51. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +2 -1
  52. package/dist/_dts/sdk/src/cli/commands/push/execute/diff.d.ts +2 -0
  53. package/dist/_dts/sdk/src/cli/commands/push/execute/localMediaReporting.d.ts +23 -0
  54. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +54 -0
  55. package/dist/_dts/sdk/src/cli/commands/push/scopes/mediaPrep.d.ts +7 -2
  56. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +6 -0
  57. package/dist/_dts/sdk/src/cli/media/local-sync.d.ts +35 -0
  58. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +23 -1
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/{chunk-GDT2QGIL.mjs → chunk-A63UXN3P.mjs} +21 -19
  61. package/dist/{chunk-U5YM4AWE.mjs → chunk-AJZGT6YG.mjs} +1 -1
  62. package/dist/{chunk-AFPMCLS7.mjs → chunk-AQ6RT6LZ.mjs} +2 -2
  63. package/dist/{chunk-ZA2S7H34.mjs → chunk-NT76QGIJ.mjs} +98 -1
  64. package/dist/{chunk-RQUZYSES.mjs → chunk-PCNCETBI.mjs} +1196 -426
  65. package/dist/{chunk-S3YHJWEU.mjs → chunk-XIK2HYI3.mjs} +7 -7
  66. package/dist/cli/index.mjs +749 -166
  67. package/dist/client/{accordion-AFX37652.mjs → accordion-RNQIPG55.mjs} +2 -2
  68. package/dist/client/{bookingForm-32V5QCOW.mjs → bookingForm-HYEEVRLP.mjs} +89 -14
  69. package/dist/client/bookings.mjs +243 -17
  70. package/dist/client/{carousel-TJGQJ7ER.mjs → carousel-W7DQ3YPU.mjs} +3 -3
  71. package/dist/client/{cart-JUU2JEW4.mjs → cart-PXJ3SXXO.mjs} +7 -7
  72. package/dist/client/{checkout-RD6BTFX4.mjs → checkout-X3JYSOXI.mjs} +7 -7
  73. package/dist/client/{chunk-MLBNVN4H.mjs → chunk-6SYGVVWA.mjs} +67 -4
  74. package/dist/client/{chunk-E6VIWZUG.mjs → chunk-DUOHLWLF.mjs} +3 -3
  75. package/dist/client/{chunk-6QZIBNGV.mjs → chunk-IXDSXF2D.mjs} +154 -16
  76. package/dist/client/{chunk-CKXEUWWA.mjs → chunk-J6TMMMXW.mjs} +3 -3
  77. package/dist/client/{chunk-PMNAV6LO.mjs → chunk-JNE6UI6U.mjs} +7 -6
  78. package/dist/client/{chunk-ISAUXU5R.mjs → chunk-OLAOAZEO.mjs} +1 -1
  79. package/dist/client/{chunk-RWYFG625.mjs → chunk-PCHACQEB.mjs} +30 -2
  80. package/dist/client/{chunk-FMZZHAIR.mjs → chunk-PICR3NTQ.mjs} +52 -5
  81. package/dist/client/{chunk-6RN62XBV.mjs → chunk-Q47XGAGS.mjs} +1 -1
  82. package/dist/client/{chunk-WHZQDPBZ.mjs → chunk-TNGL2WJF.mjs} +1 -0
  83. package/dist/client/{chunk-C4LP6BPG.mjs → chunk-WERRJXNJ.mjs} +1 -1
  84. package/dist/client/{chunk-RMOFBBNA.mjs → chunk-YYVGSYBO.mjs} +6 -6
  85. package/dist/client/client.mjs +641 -54
  86. package/dist/client/{courseRegistration-X63QAIVV.mjs → courseRegistration-QZ67PVHO.mjs} +111 -11
  87. package/dist/client/{eventCalendar-5T24GCZL.mjs → eventCalendar-V3BDHQNT.mjs} +9 -9
  88. package/dist/client/{eventCombined-AZVTF22X.mjs → eventCombined-XYFRN2RG.mjs} +9 -9
  89. package/dist/client/{eventDetails-7GPFNLGF.mjs → eventDetails-TFE5TWKV.mjs} +9 -9
  90. package/dist/client/{eventListing-QEUMTMUM.mjs → eventListing-IQ6AGWZ6.mjs} +9 -9
  91. package/dist/client/{eventRegistration-P2EDKCQZ.mjs → eventRegistration-WGJVFKQJ.mjs} +9 -9
  92. package/dist/client/{form-NUJ7H4IN.mjs → form-6UZY6RUA.mjs} +3 -3
  93. package/dist/client/{headerSection-JB7LECPL.mjs → headerSection-RSFXY6V3.mjs} +3 -3
  94. package/dist/client/hooks.mjs +57 -5
  95. package/dist/client/{locationMap-UEYWUCSW.mjs → locationMap-24FH67I4.mjs} +3 -3
  96. package/dist/client/{newsletterForm-S2YZQ2X7.mjs → newsletterForm-QVL3MLTN.mjs} +3 -3
  97. package/dist/client/{productDetail-H5MADGG7.mjs → productDetail-ZDYN3G4T.mjs} +7 -7
  98. package/dist/client/{productList-DK7YON7H.mjs → productList-4BMJLQHZ.mjs} +7 -7
  99. package/dist/client/rendering/client.mjs +503 -36
  100. package/dist/client/rendering/islands.mjs +19 -19
  101. package/dist/client/rendering.mjs +583 -39
  102. package/dist/client/{shop-6PA7RDRJ.mjs → shop-U5C634FF.mjs} +7 -7
  103. package/dist/preview-next/client/runtime.mjs +5 -5
  104. package/dist/{sdk-runtime-JP5347OB.mjs → sdk-runtime-VGV46WVB.mjs} +6 -6
  105. package/dist/server/components.mjs +287 -68
  106. package/dist/server/config-validation.mjs +58 -5
  107. package/dist/server/config.mjs +58 -5
  108. package/dist/server/data.mjs +57 -5
  109. package/dist/server/index.mjs +104 -29
  110. package/dist/server/next.mjs +347 -85
  111. package/dist/server/page-converter.mjs +22 -5
  112. package/dist/server/prebuild.mjs +1 -1
  113. package/dist/server/rendering/server.mjs +287 -68
  114. package/dist/server/rendering.mjs +287 -68
  115. package/dist/server/routing.mjs +131 -67
  116. package/dist/server/server.mjs +189 -94
  117. package/package.json +1 -1
  118. package/dist/SdkPreviewModeRuntime-GMCDQPZZ.mjs +0 -8
@@ -6545,6 +6545,104 @@ function resolveApiBaseUrl() {
6545
6545
  return getCmsApiUrl();
6546
6546
  }
6547
6547
 
6548
+ // ../api/src/common/envelope.ts
6549
+ var API_ERROR_CODES = [
6550
+ "auth:unauthenticated",
6551
+ "auth:token_expired",
6552
+ "auth:token_invalid",
6553
+ "auth:forbidden",
6554
+ "auth:mfa_required",
6555
+ "auth:sudo_required",
6556
+ "auth:insufficient_permissions",
6557
+ "auth:impersonation_restricted",
6558
+ "validation:invalid_input",
6559
+ "validation:missing_field",
6560
+ "validation:invalid_format",
6561
+ "validation:payload_too_large",
6562
+ "resource:not_found",
6563
+ "resource:already_exists",
6564
+ "resource:conflict",
6565
+ "resource:gone",
6566
+ "rate_limit:exceeded",
6567
+ "billing:payment_required",
6568
+ "billing:plan_limit_exceeded",
6569
+ "billing:pass_redemption_failed",
6570
+ "server:internal_error",
6571
+ "server:unavailable",
6572
+ "external:service_error",
6573
+ "external:registrar_orphaned_contact_profile",
6574
+ "network:connection_error",
6575
+ "network:timeout",
6576
+ "network:dns_error"
6577
+ ];
6578
+ var API_ERROR_CODE_SET = new Set(API_ERROR_CODES);
6579
+ function isApiErrorCode(value) {
6580
+ return typeof value === "string" && API_ERROR_CODE_SET.has(value);
6581
+ }
6582
+ function isApiError(result) {
6583
+ return result.success === false;
6584
+ }
6585
+ function isApiSuccess(result) {
6586
+ return result.success === true;
6587
+ }
6588
+ function isRecord(value) {
6589
+ return typeof value === "object" && value !== null && !Array.isArray(value);
6590
+ }
6591
+ function isFieldError(value) {
6592
+ return isRecord(value) && typeof value.field === "string" && typeof value.code === "string" && typeof value.message === "string";
6593
+ }
6594
+ function fieldErrorsFromUnknown(value) {
6595
+ if (!Array.isArray(value)) return null;
6596
+ return value.every(isFieldError) ? value : null;
6597
+ }
6598
+ function extractEnvelopeErrorObject(body) {
6599
+ if (!isRecord(body)) return null;
6600
+ const error = body.error;
6601
+ if (!isRecord(error)) return null;
6602
+ if ("success" in body && body.success !== false) {
6603
+ return null;
6604
+ }
6605
+ return error;
6606
+ }
6607
+ function extractApiEnvelopeErrorDetails(body) {
6608
+ const error = extractEnvelopeErrorObject(body);
6609
+ if (!error) {
6610
+ return {
6611
+ rawCode: null,
6612
+ code: null,
6613
+ message: null,
6614
+ status: null,
6615
+ fieldErrors: null
6616
+ };
6617
+ }
6618
+ const rawCode = typeof error.code === "string" ? error.code : null;
6619
+ const message = typeof error.message === "string" && error.message.trim().length > 0 ? error.message : null;
6620
+ return {
6621
+ rawCode,
6622
+ code: isApiErrorCode(rawCode) ? rawCode : null,
6623
+ message,
6624
+ status: typeof error.status === "number" && Number.isFinite(error.status) ? error.status : null,
6625
+ fieldErrors: fieldErrorsFromUnknown(error.fieldErrors)
6626
+ };
6627
+ }
6628
+ var ApiEnvelopeError = class extends Error {
6629
+ constructor(error) {
6630
+ super(error.message);
6631
+ this.name = "ApiEnvelopeError";
6632
+ this.code = error.code;
6633
+ this.requestId = error.requestId;
6634
+ this.timestamp = error.timestamp;
6635
+ this.status = error.status;
6636
+ this.fieldErrors = error.fieldErrors;
6637
+ }
6638
+ };
6639
+ function unwrapResponse(result) {
6640
+ if (isApiSuccess(result)) {
6641
+ return result.data;
6642
+ }
6643
+ throw new ApiEnvelopeError(result.error);
6644
+ }
6645
+
6548
6646
  // ../api/src/request.ts
6549
6647
  var revalidateTag = null;
6550
6648
  var revalidateTagResolved = false;
@@ -6923,6 +7021,7 @@ function createParsedClient(rawClient) {
6923
7021
  const auth = config.auth ?? "user";
6924
7022
  if (!response.ok) {
6925
7023
  const body = await parseErrorBody(response);
7024
+ const envelopeError = extractApiEnvelopeErrorDetails(body);
6926
7025
  const requestId = response.headers.get("x-request-id") ?? void 0;
6927
7026
  const retryAfterMs = parseRetryAfterHeader(response.headers.get("retry-after"));
6928
7027
  throw new ApiRequestError(
@@ -6934,6 +7033,7 @@ function createParsedClient(rawClient) {
6934
7033
  auth,
6935
7034
  requestId,
6936
7035
  body,
7036
+ errorCode: envelopeError.code ?? void 0,
6937
7037
  retryAfterMs
6938
7038
  }
6939
7039
  );
@@ -6954,31 +7054,6 @@ function createBearerAPIClient(token, baseUrl) {
6954
7054
  return createCMSClient(authHeaders, baseUrl);
6955
7055
  }
6956
7056
 
6957
- // ../api/src/common/envelope.ts
6958
- function isApiError(result) {
6959
- return result.success === false;
6960
- }
6961
- function isApiSuccess(result) {
6962
- return result.success === true;
6963
- }
6964
- var ApiEnvelopeError = class extends Error {
6965
- constructor(error) {
6966
- super(error.message);
6967
- this.name = "ApiEnvelopeError";
6968
- this.code = error.code;
6969
- this.requestId = error.requestId;
6970
- this.timestamp = error.timestamp;
6971
- this.status = error.status;
6972
- this.fieldErrors = error.fieldErrors;
6973
- }
6974
- };
6975
- function unwrapResponse(result) {
6976
- if (isApiSuccess(result)) {
6977
- return result.data;
6978
- }
6979
- throw new ApiEnvelopeError(result.error);
6980
- }
6981
-
6982
7057
  // src/client/cache.ts
6983
7058
  var SimpleCache = class {
6984
7059
  constructor(options = {}) {
@@ -7095,7 +7170,7 @@ var SimpleCache = class {
7095
7170
  };
7096
7171
 
7097
7172
  // src/version.ts
7098
- var SDK_VERSION = "0.91.0";
7173
+ var SDK_VERSION = "0.93.0";
7099
7174
 
7100
7175
  // src/client/error.ts
7101
7176
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -9272,6 +9347,7 @@ function publicEventPricingType(pricing) {
9272
9347
  return "free";
9273
9348
  case "single_paid":
9274
9349
  case "ticket_types":
9350
+ case "sliding_scale":
9275
9351
  case "course":
9276
9352
  return isFreePublicEventPriceDisplay(pricing.display) ? "free" : "paid";
9277
9353
  case "external":
@@ -9599,9 +9675,6 @@ function formatKeyAsLabel(key) {
9599
9675
  return key.replace(/([A-Z])/g, " $1").replace(/[-_]/g, " ").trim().split(" ").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" ");
9600
9676
  }
9601
9677
 
9602
- // ../blocks/src/system/manifest/schema.ts
9603
- import { z as z4 } from "zod";
9604
-
9605
9678
  // ../media-core/src/transformRect.ts
9606
9679
  function isValidTransformRectStructure(rect) {
9607
9680
  if (!Array.isArray(rect) || rect.length !== 4) return false;
@@ -9695,6 +9768,9 @@ function rotateNormalizedPoint(point, rotation) {
9695
9768
  }
9696
9769
  }
9697
9770
 
9771
+ // ../blocks/src/system/manifest/schema.ts
9772
+ import { z as z4 } from "zod";
9773
+
9698
9774
  // ../blocks/src/system/node/schema.ts
9699
9775
  import { z as z3 } from "zod";
9700
9776
  var transformStepSchema = z3.object({
@@ -28134,7 +28210,7 @@ var mediaTransforms = [mediaFromUrl];
28134
28210
  import { z as z37 } from "zod";
28135
28211
 
28136
28212
  // ../blocks/src/lib/typeGuards.ts
28137
- function isRecord2(value) {
28213
+ function isRecord3(value) {
28138
28214
  return typeof value === "object" && value !== null && !Array.isArray(value);
28139
28215
  }
28140
28216
  function isObjectRecord2(value) {
@@ -28149,16 +28225,16 @@ var interpolateRichTextTokensOptionsSchema = z37.object({
28149
28225
  var richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
28150
28226
  function getSiteName(context) {
28151
28227
  const viewModel = context.viewModel;
28152
- if (!isRecord2(viewModel)) return null;
28228
+ if (!isRecord3(viewModel)) return null;
28153
28229
  const site = viewModel.site;
28154
- if (isRecord2(site) && typeof site.title === "string") {
28230
+ if (isRecord3(site) && typeof site.title === "string") {
28155
28231
  const title = site.title.trim();
28156
28232
  return title.length > 0 ? title : null;
28157
28233
  }
28158
28234
  const root = viewModel.$root;
28159
- if (isRecord2(root)) {
28235
+ if (isRecord3(root)) {
28160
28236
  const rootSite = root.site;
28161
- if (isRecord2(rootSite) && typeof rootSite.title === "string") {
28237
+ if (isRecord3(rootSite) && typeof rootSite.title === "string") {
28162
28238
  const title = rootSite.title.trim();
28163
28239
  if (title.length > 0) return title;
28164
28240
  }
@@ -28180,7 +28256,7 @@ function replaceTokenText(input, allowedTokens, tokenValues) {
28180
28256
  });
28181
28257
  }
28182
28258
  function visitRichTextNode(node, allowedTokens, tokenValues) {
28183
- if (!isRecord2(node)) return node;
28259
+ if (!isRecord3(node)) return node;
28184
28260
  let changed = false;
28185
28261
  const nextNode = { ...node };
28186
28262
  if (nextNode.type === "text" && typeof nextNode.text === "string") {
@@ -28206,13 +28282,13 @@ function visitRichTextNode(node, allowedTokens, tokenValues) {
28206
28282
  return changed ? nextNode : node;
28207
28283
  }
28208
28284
  function interpolateRichTextTokens(value, options, context) {
28209
- if (!isRecord2(value)) return value;
28285
+ if (!isRecord3(value)) return value;
28210
28286
  const allowedTokens = new Set(options.tokens);
28211
28287
  const tokenValues = {
28212
28288
  year: String((/* @__PURE__ */ new Date()).getFullYear()),
28213
28289
  site_name: getSiteName(context)
28214
28290
  };
28215
- if (isRecord2(value.doc)) {
28291
+ if (isRecord3(value.doc)) {
28216
28292
  const nextDoc = visitRichTextNode(value.doc, allowedTokens, tokenValues);
28217
28293
  if (nextDoc === value.doc) return value;
28218
28294
  return { ...value, doc: nextDoc };
@@ -30719,10 +30795,10 @@ var RichTextDocSchema = z40.object({
30719
30795
  content: z40.array(TipTapNodeSchema)
30720
30796
  });
30721
30797
  function unwrapRichTextRoot(value) {
30722
- if (!isRecord2(value)) return value;
30798
+ if (!isRecord3(value)) return value;
30723
30799
  if (!("doc" in value)) return value;
30724
30800
  const inner = value.doc;
30725
- if (isRecord2(inner) && inner.type === "doc") return inner;
30801
+ if (isRecord3(inner) && inner.type === "doc") return inner;
30726
30802
  return value;
30727
30803
  }
30728
30804
 
@@ -30826,9 +30902,12 @@ var coursePricingOptionSchema = z42.object({
30826
30902
  });
30827
30903
  var coursePricingSchema = z42.object({
30828
30904
  bookingRequirement: z42.enum(["none", "required"]),
30829
- pricingStrategy: z42.enum(["free", "single", "tiered"]),
30905
+ pricingStrategy: z42.enum(["free", "single", "tiered", "sliding_scale"]),
30830
30906
  currency: z42.string(),
30831
30907
  singlePriceAmount: z42.number().nullable(),
30908
+ slidingMinAmount: z42.number().nullable().optional(),
30909
+ slidingMaxAmount: z42.number().nullable().optional(),
30910
+ slidingSuggestedAmount: z42.number().nullable().optional(),
30832
30911
  paymentTerms: blockBookingPaymentTermsSchema,
30833
30912
  options: z42.array(coursePricingOptionSchema)
30834
30913
  });
@@ -30982,6 +31061,19 @@ var publicEventPricingSchema = z43.discriminatedUnion("kind", [
30982
31061
  ticketTypes: z43.array(publicEventTicketTypeSchema),
30983
31062
  display: publicEventTicketTypePriceDisplaySchema
30984
31063
  }),
31064
+ z43.object({
31065
+ kind: z43.literal("sliding_scale"),
31066
+ minAmount: z43.number(),
31067
+ maxAmount: z43.number(),
31068
+ suggestedAmount: z43.number().nullable(),
31069
+ currency: z43.string(),
31070
+ display: z43.object({
31071
+ kind: z43.literal("range"),
31072
+ minAmount: z43.number(),
31073
+ maxAmount: z43.number(),
31074
+ currency: z43.string()
31075
+ })
31076
+ }),
30985
31077
  z43.object({
30986
31078
  kind: z43.literal("course"),
30987
31079
  display: z43.object({ kind: z43.literal("course"), display: publicCoursePriceDisplaySchema })
@@ -31323,11 +31415,11 @@ function isEventContentType(slug) {
31323
31415
  }
31324
31416
 
31325
31417
  // ../blocks/src/system/runtime/nodes/events/shared/destination.ts
31326
- function isRecord3(value) {
31418
+ function isRecord4(value) {
31327
31419
  return typeof value === "object" && value !== null && !Array.isArray(value);
31328
31420
  }
31329
31421
  function isRuntimeEventDestination(value) {
31330
- if (!isRecord3(value) || typeof value.kind !== "string") return false;
31422
+ if (!isRecord4(value) || typeof value.kind !== "string") return false;
31331
31423
  if (value.kind === "native") {
31332
31424
  return (value.mode === "cms-managed" || value.mode === "system-managed") && typeof value.path === "string";
31333
31425
  }
@@ -31393,22 +31485,22 @@ function resolveRuntimeEventPricing(event) {
31393
31485
  function readCurrency(value) {
31394
31486
  return typeof value === "string" && value.trim().length > 0 ? value : DEFAULT_EVENT_CURRENCY;
31395
31487
  }
31396
- function isRecord4(value) {
31488
+ function isRecord5(value) {
31397
31489
  return typeof value === "object" && value !== null && !Array.isArray(value);
31398
31490
  }
31399
31491
  function isPublicEventPricing(value) {
31400
- if (!isRecord4(value) || typeof value.kind !== "string") return false;
31401
- return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
31492
+ if (!isRecord5(value) || typeof value.kind !== "string") return false;
31493
+ return value.kind === "drop_in" || value.kind === "free_registration" || value.kind === "single_paid" || value.kind === "sliding_scale" || value.kind === "ticket_types" || value.kind === "course" || value.kind === "external";
31402
31494
  }
31403
31495
  function isPublicEventTicketType(value) {
31404
- return isRecord4(value) && typeof value.id === "string";
31496
+ return isRecord5(value) && typeof value.id === "string";
31405
31497
  }
31406
31498
  function readTicketTypePriceDisplay(value, currency) {
31407
31499
  const display = readLegacyPriceDisplay(value, currency);
31408
31500
  return display.kind === "course" || display.kind === "external" ? { kind: "unavailable", currency } : display;
31409
31501
  }
31410
31502
  function readLegacyPriceDisplay(value, currency) {
31411
- if (!isRecord4(value) || typeof value.kind !== "string") {
31503
+ if (!isRecord5(value) || typeof value.kind !== "string") {
31412
31504
  return { kind: "unavailable", currency };
31413
31505
  }
31414
31506
  const displayCurrency = readCurrency(value.currency);
@@ -31447,7 +31539,7 @@ function readLegacyPriceDisplay(value, currency) {
31447
31539
  case "unavailable":
31448
31540
  return { kind: "unavailable", currency: displayCurrency };
31449
31541
  case "course":
31450
- return isRecord4(value.display) ? {
31542
+ return isRecord5(value.display) ? {
31451
31543
  kind: "course",
31452
31544
  display: readCoursePriceDisplay(value.display, displayCurrency)
31453
31545
  } : {
@@ -31731,7 +31823,7 @@ var eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
31731
31823
  })
31732
31824
  });
31733
31825
  function normalizeEventRegistrationEventInput(value) {
31734
- if (!isRecord5(value)) {
31826
+ if (!isRecord6(value)) {
31735
31827
  return value;
31736
31828
  }
31737
31829
  return {
@@ -31740,7 +31832,7 @@ function normalizeEventRegistrationEventInput(value) {
31740
31832
  pricing: resolveRuntimeEventPricing(value)
31741
31833
  };
31742
31834
  }
31743
- function isRecord5(value) {
31835
+ function isRecord6(value) {
31744
31836
  return typeof value === "object" && value !== null && !Array.isArray(value);
31745
31837
  }
31746
31838
  var eventRegistrationInteractiveIslandPropsCodec = createInteractiveIslandCodec({
@@ -34302,7 +34394,7 @@ function inferLegacyOfferingsPreviewGroupOrder(overrides) {
34302
34394
  return keys.length >= 2 ? keys : [];
34303
34395
  }
34304
34396
  function normalizeOfferingsPreviewContentForWrite(value) {
34305
- if (!isRecord6(value)) return null;
34397
+ if (!isRecord7(value)) return null;
34306
34398
  const groupOrderValue = value.groupOrder;
34307
34399
  if (Array.isArray(groupOrderValue)) {
34308
34400
  const normalized = normalizeOfferingsPreviewGroupOrder(groupOrderValue);
@@ -34315,7 +34407,7 @@ function normalizeOfferingsPreviewContentForWrite(value) {
34315
34407
  return { ...value, groupOrder: [] };
34316
34408
  }
34317
34409
  const legacyOrder = inferLegacyOfferingsPreviewGroupOrder(
34318
- Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord6) : []
34410
+ Array.isArray(value.groupOverrides) ? value.groupOverrides.filter(isRecord7) : []
34319
34411
  );
34320
34412
  return legacyOrder.length > 0 ? { ...value, groupOrder: legacyOrder } : value;
34321
34413
  }
@@ -34329,7 +34421,7 @@ function uniqueOfferingsPreviewSourceKeys(values) {
34329
34421
  }
34330
34422
  return keys;
34331
34423
  }
34332
- function isRecord6(value) {
34424
+ function isRecord7(value) {
34333
34425
  return typeof value === "object" && value !== null && !Array.isArray(value);
34334
34426
  }
34335
34427
 
@@ -34696,7 +34788,7 @@ function isOfferingsPreviewItemLimit(value) {
34696
34788
  return value === "1" || value === "2" || value === "3" || value === "4" || value === "5" || value === "6" || value === null;
34697
34789
  }
34698
34790
  function normalizeOfferingsPreviewGroupOverride(value) {
34699
- if (!isRecord7(value)) return [];
34791
+ if (!isRecord8(value)) return [];
34700
34792
  const override = {};
34701
34793
  if (isOfferingsPreviewSourceKey(value.sourceKey) || value.sourceKey === null) {
34702
34794
  override.sourceKey = value.sourceKey;
@@ -34728,12 +34820,12 @@ function isButtonVariant(value) {
34728
34820
  return value === "primary" || value === "secondary" || value === "outline" || value === "link" || value === null;
34729
34821
  }
34730
34822
  function normalizeCardStylesContent(value) {
34731
- return isRecord7(value) || value === null ? value : void 0;
34823
+ return isRecord8(value) || value === null ? value : void 0;
34732
34824
  }
34733
34825
  function normalizeSectionStylesContent(value) {
34734
- return isRecord7(value) || value === null ? value : void 0;
34826
+ return isRecord8(value) || value === null ? value : void 0;
34735
34827
  }
34736
- function isRecord7(value) {
34828
+ function isRecord8(value) {
34737
34829
  return typeof value === "object" && value !== null && !Array.isArray(value);
34738
34830
  }
34739
34831
 
@@ -37813,7 +37905,7 @@ function deriveNewsletterSignupRuntimeSource(values) {
37813
37905
  };
37814
37906
  }
37815
37907
  function sanitizeNewsletterSignupPublicContent(content) {
37816
- if (!isRecord8(content)) return content;
37908
+ if (!isRecord9(content)) return content;
37817
37909
  const provider = parseNewsletterSignupDestinationProvider(content.destinationProvider) ?? getProviderFromExplicitDestination(content.destination);
37818
37910
  const {
37819
37911
  destination: _destination,
@@ -37832,7 +37924,7 @@ function sanitizeNewsletterSignupPublicContent(content) {
37832
37924
  return mutablePublicContent;
37833
37925
  }
37834
37926
  function getProviderFromExplicitDestination(destination) {
37835
- if (!isRecord8(destination) || typeof destination.tag !== "string") return null;
37927
+ if (!isRecord9(destination) || typeof destination.tag !== "string") return null;
37836
37928
  if (destination.tag === "riverbank_list") return "riverbank";
37837
37929
  if (destination.tag === "mailchimp_audience") return "mailchimp";
37838
37930
  return null;
@@ -37844,7 +37936,7 @@ function parseTrimmedString(value) {
37844
37936
  const trimmed = value.trim();
37845
37937
  return trimmed.length > 0 ? trimmed : null;
37846
37938
  }
37847
- function isRecord8(value) {
37939
+ function isRecord9(value) {
37848
37940
  return typeof value === "object" && value !== null;
37849
37941
  }
37850
37942
 
@@ -40001,7 +40093,7 @@ var defaultTransforms = createTransformRegistry(builtinTransformDefinitions);
40001
40093
  // ../blocks/src/system/data/linkedContentEntries.ts
40002
40094
  var LINKED_CONTENT_ENTRY_META_KEY = "__rbLinkedContentEntry";
40003
40095
  function coerceLinkedContentEntriesPayload(payload) {
40004
- if (!isRecord9(payload)) return payload;
40096
+ if (!isRecord10(payload)) return payload;
40005
40097
  const response = payload;
40006
40098
  if (!Array.isArray(response.entries)) return payload;
40007
40099
  const contentType = parsePublicContentTypeMeta(response.contentType);
@@ -40009,12 +40101,12 @@ function coerceLinkedContentEntriesPayload(payload) {
40009
40101
  return response.entries.map((entry) => enrichLinkedContentEntry(entry, contentType));
40010
40102
  }
40011
40103
  function enrichLinkedContentEntry(entry, contentType) {
40012
- if (!isRecord9(entry)) return entry;
40104
+ if (!isRecord10(entry)) return entry;
40013
40105
  const entryId = typeof entry.id === "string" ? entry.id : null;
40014
40106
  if (!entryId) return entry;
40015
40107
  const title = typeof entry.title === "string" && entry.title.trim().length > 0 ? entry.title : entryId;
40016
40108
  const optimisticHash = typeof entry.optimisticHash === "string" && entry.optimisticHash.length > 0 ? entry.optimisticHash : null;
40017
- const content = isRecord9(entry.content) ? entry.content : {};
40109
+ const content = isRecord10(entry.content) ? entry.content : {};
40018
40110
  const meta = {
40019
40111
  kind: "linked-content-entry",
40020
40112
  entryId,
@@ -40107,7 +40199,7 @@ function capitalize(value) {
40107
40199
  return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
40108
40200
  }
40109
40201
  function parsePublicContentTypeMeta(value) {
40110
- if (!isRecord9(value)) return null;
40202
+ if (!isRecord10(value)) return null;
40111
40203
  if (typeof value.key !== "string" || value.key.trim().length === 0) return null;
40112
40204
  return {
40113
40205
  key: value.key,
@@ -40117,7 +40209,7 @@ function parsePublicContentTypeMeta(value) {
40117
40209
  };
40118
40210
  }
40119
40211
  function parsePublicContentTypeLinkedEntryEditing(value) {
40120
- if (!isRecord9(value) || typeof value.kind !== "string") return null;
40212
+ if (!isRecord10(value) || typeof value.kind !== "string") return null;
40121
40213
  switch (value.kind) {
40122
40214
  case "generic":
40123
40215
  return { kind: "generic" };
@@ -40131,7 +40223,7 @@ function parsePublicContentTypeLinkedEntryEditing(value) {
40131
40223
  }
40132
40224
  }
40133
40225
  function parsePublicContentTypeFieldMeta(value) {
40134
- if (!isRecord9(value)) return [];
40226
+ if (!isRecord10(value)) return [];
40135
40227
  if (typeof value.id !== "string" || typeof value.type !== "string") return [];
40136
40228
  return [{
40137
40229
  id: value.id,
@@ -40145,7 +40237,7 @@ function parseStringArray(value) {
40145
40237
  if (!Array.isArray(value)) return null;
40146
40238
  return value.filter((item) => typeof item === "string");
40147
40239
  }
40148
- function isRecord9(value) {
40240
+ function isRecord10(value) {
40149
40241
  return typeof value === "object" && value !== null && !Array.isArray(value);
40150
40242
  }
40151
40243
 
@@ -41629,6 +41721,7 @@ var CANONICAL_REFUND_CONFLICT_CODES = [
41629
41721
  ];
41630
41722
  var CANONICAL_REFUND_PLANNER_ERROR_CODES = [
41631
41723
  ...CANONICAL_REFUND_CONFLICT_CODES,
41724
+ "invalid_amount",
41632
41725
  "amount_exceeds_remaining",
41633
41726
  "pass_revoke_requires_full_refund",
41634
41727
  "refund_failed"
@@ -41655,6 +41748,7 @@ var CUSTOMER_MEMBERSHIP_PAYMENT_REFUND_FAILED_CODES = [
41655
41748
  // ../api/src/bookingRefundOutcomes.ts
41656
41749
  var STANDARD_LINE_ITEM_REFUND_INVALID_CODES = [
41657
41750
  "missing_amount",
41751
+ "invalid_amount",
41658
41752
  "amount_exceeds_remaining",
41659
41753
  "credit_refunds_disabled",
41660
41754
  "missing_credit_customer",
@@ -41669,6 +41763,7 @@ var EVENT_ATTENDEE_REFUND_INVALID_CODES = [
41669
41763
  var MANAGED_PRODUCT_REFUND_INVALID_CODES = [
41670
41764
  "credit_refunds_disabled",
41671
41765
  "not_refundable",
41766
+ "invalid_amount",
41672
41767
  "amount_exceeds_remaining"
41673
41768
  ];
41674
41769
  var CUSTOMER_PASS_REFUND_INVALID_CODES = [
@@ -41913,7 +42008,7 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
41913
42008
  }
41914
42009
 
41915
42010
  // ../api/src/utils/isRecord.ts
41916
- function isRecord10(value) {
42011
+ function isRecord11(value) {
41917
42012
  return typeof value === "object" && value !== null && !Array.isArray(value);
41918
42013
  }
41919
42014
 
@@ -42220,7 +42315,7 @@ function sanitizeMarks(marks) {
42220
42315
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
42221
42316
  return [{ type: mark.type }];
42222
42317
  }
42223
- if (mark.type === "link" && isRecord10(mark.attrs) && typeof mark.attrs.href === "string") {
42318
+ if (mark.type === "link" && isRecord11(mark.attrs) && typeof mark.attrs.href === "string") {
42224
42319
  const attrs = { href: mark.attrs.href };
42225
42320
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
42226
42321
  attrs.target = mark.attrs.target;
@@ -42235,10 +42330,10 @@ function sanitizeMarks(marks) {
42235
42330
  return sanitized.length > 0 ? sanitized : void 0;
42236
42331
  }
42237
42332
  function unwrapRichTextValue(value) {
42238
- if (isRecord10(value) && isRecord10(value.doc)) {
42333
+ if (isRecord11(value) && isRecord11(value.doc)) {
42239
42334
  return unwrapRichTextValue(value.doc);
42240
42335
  }
42241
- if (isRecord10(value) && value.type === "doc") {
42336
+ if (isRecord11(value) && value.type === "doc") {
42242
42337
  return {
42243
42338
  type: "doc",
42244
42339
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -42247,7 +42342,7 @@ function unwrapRichTextValue(value) {
42247
42342
  return EMPTY_SITE_BANNER_BODY;
42248
42343
  }
42249
42344
  function isTipTapNodeLike(value) {
42250
- return isRecord10(value) && typeof value.type === "string";
42345
+ return isRecord11(value) && typeof value.type === "string";
42251
42346
  }
42252
42347
  function coerceTipTapNode(value) {
42253
42348
  return {
@@ -42255,9 +42350,9 @@ function coerceTipTapNode(value) {
42255
42350
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
42256
42351
  ...typeof value.text === "string" ? { text: value.text } : {},
42257
42352
  ...Array.isArray(value.marks) ? {
42258
- marks: value.marks.filter((mark) => isRecord10(mark) && typeof mark.type === "string").map((mark) => ({
42353
+ marks: value.marks.filter((mark) => isRecord11(mark) && typeof mark.type === "string").map((mark) => ({
42259
42354
  type: mark.type,
42260
- ...isRecord10(mark.attrs) ? { attrs: mark.attrs } : {}
42355
+ ...isRecord11(mark.attrs) ? { attrs: mark.attrs } : {}
42261
42356
  }))
42262
42357
  } : {}
42263
42358
  };
@@ -42392,7 +42487,7 @@ var ENTRY_REF_KEYS = [
42392
42487
  "entryId",
42393
42488
  "slug"
42394
42489
  ];
42395
- function isRecord11(value) {
42490
+ function isRecord12(value) {
42396
42491
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
42397
42492
  }
42398
42493
  function extractManualEntryRef(item) {
@@ -42400,7 +42495,7 @@ function extractManualEntryRef(item) {
42400
42495
  const trimmed = item.trim();
42401
42496
  return trimmed.length > 0 ? trimmed : null;
42402
42497
  }
42403
- if (!isRecord11(item)) return null;
42498
+ if (!isRecord12(item)) return null;
42404
42499
  for (const key of ENTRY_REF_KEYS) {
42405
42500
  const raw = item[key];
42406
42501
  if (typeof raw === "string" && raw.trim().length > 0) {
@@ -42757,7 +42852,7 @@ function collectMediaAssetSidecar(mediaAssets) {
42757
42852
  return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
42758
42853
  }
42759
42854
  function convertPageResponseBlock(block) {
42760
- if (!isRecord12(block)) {
42855
+ if (!isRecord13(block)) {
42761
42856
  throw new Error("Invalid block format in page API response");
42762
42857
  }
42763
42858
  if (typeof block.id !== "string" && block.id !== null) {
@@ -42788,20 +42883,20 @@ function buildPageOutline(input) {
42788
42883
  blocks: input.blocks.map(convertPageResponseBlock)
42789
42884
  };
42790
42885
  }
42791
- function isRecord12(value) {
42886
+ function isRecord13(value) {
42792
42887
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
42793
42888
  }
42794
42889
  function readContentRecord(value) {
42795
- return isRecord12(value) ? value : void 0;
42890
+ return isRecord13(value) ? value : void 0;
42796
42891
  }
42797
42892
  function readNestedContentRecord(value) {
42798
- if (!isRecord12(value)) return null;
42893
+ if (!isRecord13(value)) return null;
42799
42894
  return readContentRecord(value.data) ?? null;
42800
42895
  }
42801
42896
  function sanitizeSdkRuntimeBlockContent(blockKind, content) {
42802
42897
  if (blockKind !== "block.newsletter-signup") return content;
42803
42898
  const sanitized = sanitizeNewsletterSignupPublicContent(content);
42804
- return isRecord12(sanitized) ? sanitized : {};
42899
+ return isRecord13(sanitized) ? sanitized : {};
42805
42900
  }
42806
42901
  function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
42807
42902
  return content ? sanitizeSdkRuntimeBlockContent(blockKind, content) : null;
@@ -42894,7 +42989,7 @@ function applyBindings(bindings, context) {
42894
42989
  }
42895
42990
  continue;
42896
42991
  }
42897
- if (isRecord2(bindingSpec)) {
42992
+ if (isRecord3(bindingSpec)) {
42898
42993
  const nested = applyBindings(bindingSpec, context);
42899
42994
  if (Object.keys(nested).length > 0) {
42900
42995
  setBindingValue(result, key, nested);
@@ -42927,7 +43022,7 @@ function setBindingValue(target, path, value) {
42927
43022
  current[Number(segment)] = value;
42928
43023
  return;
42929
43024
  }
42930
- if (isRecord2(current)) {
43025
+ if (isRecord3(current)) {
42931
43026
  current[segment] = value;
42932
43027
  }
42933
43028
  return;
@@ -42939,17 +43034,17 @@ function setBindingValue(target, path, value) {
42939
43034
  if (nextWantsArray) {
42940
43035
  if (!Array.isArray(existing)) current[index] = [];
42941
43036
  } else {
42942
- if (!isRecord2(existing)) current[index] = {};
43037
+ if (!isRecord3(existing)) current[index] = {};
42943
43038
  }
42944
43039
  current = current[index];
42945
43040
  continue;
42946
43041
  }
42947
- if (isRecord2(current)) {
43042
+ if (isRecord3(current)) {
42948
43043
  const existing = current[segment];
42949
43044
  if (nextWantsArray) {
42950
43045
  if (!Array.isArray(existing)) current[segment] = [];
42951
43046
  } else {
42952
- if (!isRecord2(existing)) current[segment] = {};
43047
+ if (!isRecord3(existing)) current[segment] = {};
42953
43048
  }
42954
43049
  current = current[segment];
42955
43050
  continue;
@@ -42989,7 +43084,7 @@ function getPath(source, path) {
42989
43084
  const segments = path.split(".").map((segment) => segment.trim()).filter(Boolean);
42990
43085
  let current = source;
42991
43086
  for (const segment of segments) {
42992
- if (!isRecord2(current)) return void 0;
43087
+ if (!isRecord3(current)) return void 0;
42993
43088
  current = current[segment];
42994
43089
  }
42995
43090
  return current;
@@ -43009,13 +43104,13 @@ function applyTransform(name, value) {
43009
43104
  }
43010
43105
  function extractFirstParagraph(value) {
43011
43106
  const unwrapped = unwrapRichTextRoot(value);
43012
- if (!isRecord2(unwrapped)) return null;
43107
+ if (!isRecord3(unwrapped)) return null;
43013
43108
  const doc = unwrapped;
43014
43109
  if (!Array.isArray(doc.content)) return null;
43015
43110
  for (const node of doc.content) {
43016
- if (!isRecord2(node)) continue;
43111
+ if (!isRecord3(node)) continue;
43017
43112
  if (node.type !== "paragraph" || !Array.isArray(node.content)) continue;
43018
- const text2 = node.content.filter((item) => isRecord2(item) && item.type === "text").map((item) => typeof item.text === "string" ? item.text : "").join("").trim();
43113
+ const text2 = node.content.filter((item) => isRecord3(item) && item.type === "text").map((item) => typeof item.text === "string" ? item.text : "").join("").trim();
43019
43114
  if (text2.length > 0) {
43020
43115
  return text2;
43021
43116
  }
@@ -43029,7 +43124,7 @@ function formatDate(value, options) {
43029
43124
  return new Intl.DateTimeFormat(void 0, options).format(date);
43030
43125
  }
43031
43126
  function isBindingDescriptor(value) {
43032
- if (!isRecord2(value) || typeof value.source !== "string") {
43127
+ if (!isRecord3(value) || typeof value.source !== "string") {
43033
43128
  return false;
43034
43129
  }
43035
43130
  if (!BINDING_SOURCES.includes(value.source)) {
@@ -43050,7 +43145,7 @@ function isBindingDescriptor(value) {
43050
43145
  }
43051
43146
  }
43052
43147
  function isBindingDescriptorLike(value) {
43053
- return isBindingDescriptor(value) || typeof value === "string" || isRecord2(value) && typeof value.source === "string" && typeof value.path === "string";
43148
+ return isBindingDescriptor(value) || typeof value === "string" || isRecord3(value) && typeof value.source === "string" && typeof value.path === "string";
43054
43149
  }
43055
43150
  function normalizeBindingInput(value) {
43056
43151
  if (isBindingDescriptor(value)) return value;
@@ -43066,7 +43161,7 @@ function normalizeValue(value) {
43066
43161
  if (Array.isArray(value)) {
43067
43162
  return value.map((item) => normalizeValue(item));
43068
43163
  }
43069
- if (!isRecord2(value)) {
43164
+ if (!isRecord3(value)) {
43070
43165
  return value;
43071
43166
  }
43072
43167
  if (isDocWrapper(value)) {
@@ -43080,7 +43175,7 @@ function isDocWrapper(value) {
43080
43175
  const keys = Object.keys(value);
43081
43176
  if (keys.length !== 1) return false;
43082
43177
  const doc = value.doc;
43083
- return isRecord2(doc) && typeof doc.type === "string" && doc.type === "doc";
43178
+ return isRecord3(doc) && typeof doc.type === "string" && doc.type === "doc";
43084
43179
  }
43085
43180
 
43086
43181
  // src/rendering/helpers/bindings.ts