@riverbankcms/sdk 0.125.0 → 0.126.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 (121) hide show
  1. package/README.md +3 -1
  2. package/dist/{PreviewEditorSidebar-BezDOtQ7.mjs → PreviewEditorSidebar-DcYJxTgc.mjs} +67 -266
  3. package/dist/{PreviewEditorUI-CgSqmfo2.mjs → PreviewEditorUI-Ctt1yTJr.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BH-3-jSj.mjs → PreviewQueryProvider-DgFDIwvK.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Co3AHfj0.mjs → SdkPreviewModeRuntime-CvW1vdQ4.mjs} +27 -27
  6. package/dist/{SiteChromeCustomizeContext-BHF-KANn.mjs → SiteChromeCustomizeContext-C87qlKWw.mjs} +412 -1301
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1354 -202
  8. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  9. package/dist/_dts/api/src/contentRuntime.d.ts +0 -2
  10. package/dist/_dts/api/src/endpoints.d.ts +0 -7
  11. package/dist/_dts/api/src/sdk-event-upsert.d.ts +42 -0
  12. package/dist/_dts/api/src/sdkContracts.d.ts +11 -9
  13. package/dist/_dts/api/src/siteOperations.d.ts +18 -1
  14. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -14
  15. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +15 -2
  16. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +182 -19
  17. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +1 -2
  18. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -3
  19. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -2
  20. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -12
  21. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -13
  22. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -100
  23. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -4
  24. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -15
  25. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +11 -21
  26. package/dist/_dts/sdk/src/cli/commands/event.d.ts +2 -2
  27. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +12 -0
  28. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +6 -0
  29. package/dist/_dts/sdk/src/cli/commands/style.d.ts +1 -1
  30. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +5 -0
  31. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +17 -0
  32. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -10
  33. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +1 -1
  34. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +24 -0
  35. package/dist/_dts/sdk/src/client/management/http.d.ts +1 -1
  36. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -28
  37. package/dist/_dts/sdk/src/config/index.d.ts +1 -1
  38. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -20
  39. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  40. package/dist/_dts/sdk/src/version.d.ts +1 -1
  41. package/dist/_dts/site-commands/src/commandContract.d.ts +33 -5
  42. package/dist/_dts/site-commands/src/commandDomain.d.ts +2 -2
  43. package/dist/_dts/site-commands/src/commands.d.ts +38 -9
  44. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +28 -1
  45. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +4 -4
  46. package/dist/_dts/theme-core/src/palette/concretePalette.d.ts +20 -0
  47. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -17
  48. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -6
  49. package/dist/_dts/theme-core/src/palette/schema.d.ts +39 -0
  50. package/dist/_dts/theme-core/src/schema.d.ts +38 -26
  51. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -6
  52. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -6
  53. package/dist/cli/index.mjs +612 -522
  54. package/dist/cli/init-docs/content/cli-reference.md +6 -3
  55. package/dist/cli/init-docs/content/content-management.md +24 -13
  56. package/dist/client/{DiscountCodeDisclosure-CyPpekBp.mjs → DiscountCodeDisclosure-DS0AuFWW.mjs} +1 -1
  57. package/dist/client/{EventCombined.client-zywit-60.mjs → EventCombined.client-DtMxLr7q.mjs} +2 -2
  58. package/dist/client/{EventListing.client-J2nLhkKT.mjs → EventListing.client-BdLSRNg1.mjs} +2 -2
  59. package/dist/client/{LeafletStaticMap-CSubXWt6.mjs → LeafletStaticMap-BrpC6vsT.mjs} +1 -1
  60. package/dist/client/{MagicLinkForm-DDLIfiq9.mjs → MagicLinkForm-Bt3IuLMy.mjs} +1 -1
  61. package/dist/client/{StepIndicator-DE8EvHIp.mjs → StepIndicator-CBYPFVoy.mjs} +2 -2
  62. package/dist/client/{accordion-Ct5T5NiA.mjs → accordion-BqqwPJWM.mjs} +1 -1
  63. package/dist/client/{bookingForm-DMxtLPxw.mjs → bookingForm-SneP3yxC.mjs} +5 -6
  64. package/dist/client/bookings.mjs +190 -24
  65. package/dist/client/{carousel--FMqgvob.mjs → carousel-BTIR9L3I.mjs} +1 -1
  66. package/dist/client/{cart-BKX1bWiU.mjs → cart-bqiqd8SX.mjs} +3 -3
  67. package/dist/client/{checkout-B_jxi4WW.mjs → checkout-WbTFV5v4.mjs} +3 -3
  68. package/dist/client/client.mjs +156 -220
  69. package/dist/client/{courseRegistration-DH4MlkRD.mjs → courseRegistration-BcemLAdN.mjs} +6 -7
  70. package/dist/client/{eventCalendar-BQILwAcL.mjs → eventCalendar-CsxIw0V_.mjs} +4 -4
  71. package/dist/client/{eventCombined-DFFW_Vmo.mjs → eventCombined-B6XMoHfa.mjs} +2 -2
  72. package/dist/client/{eventDetails-B045CTSJ.mjs → eventDetails-BJaoPPfo.mjs} +3 -3
  73. package/dist/client/{eventListing-BDMYNVzS.mjs → eventListing-DgwdYHRT.mjs} +2 -2
  74. package/dist/client/{eventRegistration-CQ2-BSnB.mjs → eventRegistration-C0O3folu.mjs} +30 -22
  75. package/dist/client/{form-DJKuyZgN.mjs → form-Bk9txGFt.mjs} +1 -1
  76. package/dist/client/{headerSection-DeTjfiDo.mjs → headerSection-yIBt0yTv.mjs} +2 -2
  77. package/dist/client/hooks.mjs +50 -102
  78. package/dist/client/{locationMap-i2wDA8gB.mjs → locationMap-C-3KIpv-.mjs} +2 -2
  79. package/dist/client/{newsletterForm-DKiueauk.mjs → newsletterForm-CzB8g8h2.mjs} +1 -1
  80. package/dist/client/{pricing-C01J3Epx.mjs → pricing-C1QeDes_.mjs} +1 -1
  81. package/dist/client/{productDetail-Dfc1sZaX.mjs → productDetail-w7SBp5uc.mjs} +3 -3
  82. package/dist/client/{productList-BXbvXWTF.mjs → productList-D0tGKHGf.mjs} +3 -3
  83. package/dist/client/{propsDecoder-CIR5DQ1l.mjs → propsDecoder-Bcin2DB3.mjs} +167 -11
  84. package/dist/client/rendering/client.mjs +219 -276
  85. package/dist/client/rendering/islands.mjs +18 -18
  86. package/dist/client/rendering.mjs +128 -185
  87. package/dist/client/{useDiscountCodeUi-Bcyh4508.mjs → scrollToBlock-h-o_STf_.mjs} +18 -2
  88. package/dist/client/{shop-BbNwPKM-.mjs → shop-BGzmL8O_.mjs} +5 -6
  89. package/dist/client/{shop-commerce-XO-XMFEt.mjs → shop-commerce-lX8QxjX-.mjs} +4 -4
  90. package/dist/client/{shop-commerce-store-Byh6OUGK.mjs → shop-commerce-store-CEurARtu.mjs} +1 -1
  91. package/dist/client/{shopShared-Bbq39mwr.mjs → shopShared-DXxH8xxw.mjs} +2 -2
  92. package/dist/client/{useEventFilters-C8OOJ3el.mjs → useEventFilters-B591g9vd.mjs} +2 -2
  93. package/dist/client/{usePolling-CyJVo9kF.mjs → usePolling-BvnChV4m.mjs} +2 -2
  94. package/dist/preview-next/before-render.mjs +0 -7
  95. package/dist/preview-next/client/runtime.mjs +4 -4
  96. package/dist/preview-next/middleware.mjs +0 -7
  97. package/dist/{previewAuthStore-CJX21dGi.mjs → previewAuthStore-Dev9CdG9.mjs} +0 -7
  98. package/dist/{sdk-runtime-BGhyuE-E.mjs → sdk-runtime-M__i3Jce.mjs} +2 -2
  99. package/dist/{separator-BFs-Kmv5.mjs → separator-VSlnI9bc.mjs} +1 -1
  100. package/dist/server/components.mjs +87 -139
  101. package/dist/server/config-validation.mjs +50 -102
  102. package/dist/server/config.mjs +50 -102
  103. package/dist/server/data.mjs +50 -102
  104. package/dist/server/index.mjs +1 -8
  105. package/dist/server/next.mjs +91 -150
  106. package/dist/server/page-converter.mjs +50 -102
  107. package/dist/server/prebuild.mjs +1 -1
  108. package/dist/server/rendering/server.mjs +50 -102
  109. package/dist/server/rendering.mjs +88 -140
  110. package/dist/server/routing.mjs +71 -147
  111. package/dist/server/server.mjs +51 -110
  112. package/dist/server/theme-bridge.mjs +172 -162
  113. package/dist/server/theme.mjs +167 -11
  114. package/package.json +1 -1
  115. package/dist/_dts/theme-core/src/palette/editorState.d.ts +0 -75
  116. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +0 -64
  117. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +0 -81
  118. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +0 -75
  119. package/dist/_dts/theme-core/src/palette/selection.d.ts +0 -74
  120. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +0 -34
  121. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
@@ -99,7 +99,7 @@ const parseEventOfferingId = (value) => parseUuidBrand$1(value, unsafeAsEventOff
99
99
  const parseEventSeriesId = (value) => parseUuidBrand$1(value, unsafeAsEventSeriesId);
100
100
  //#endregion
101
101
  //#region ../core/src/assert-never.ts
102
- function assertNever$25(value, message = "Unexpected variant") {
102
+ function assertNever$24(value, message = "Unexpected variant") {
103
103
  throw new Error(`${message}: ${String(value)}`);
104
104
  }
105
105
  const CURRENCY_LOCALE_BY_CODE = {
@@ -190,7 +190,7 @@ function formatCoursePriceDisplayLabel(display, options) {
190
190
  case "exact": return `Course (${formatCurrencyAmount(display.amount, display.currency, options)})`;
191
191
  case "from": return `Course (From ${formatCurrencyAmount(display.amount, display.currency, options)})`;
192
192
  case "range": return `Course (${formatCurrencyAmount(display.minAmount, display.currency, options)} - ${formatCurrencyAmount(display.maxAmount, display.currency, options)})`;
193
- default: return assertNever$25(display);
193
+ default: return assertNever$24(display);
194
194
  }
195
195
  }
196
196
  /**
@@ -210,7 +210,7 @@ function formatBookingPriceDisplay(display, options = {}) {
210
210
  case "unavailable": return "Pricing unavailable";
211
211
  case "external": return display.label;
212
212
  case "course": return formatCoursePriceDisplayLabel(display.display, options);
213
- default: return assertNever$25(display);
213
+ default: return assertNever$24(display);
214
214
  }
215
215
  }
216
216
  /** Render an event's price directly from its pricing value. */
@@ -3602,7 +3602,7 @@ const ALLOWED_URL_PROTOCOLS = ["http:", "https:"];
3602
3602
  const DATE_PATTERN = /^(?<year>[1-9]\d{3})-(?<month>\d{2})-(?<day>\d{2})$/;
3603
3603
  const TIME_PATTERN = /^(?<hours>[01]\d|2[0-3]):(?<minutes>[0-5]\d)$/;
3604
3604
  const DATETIME_PATTERN = /^(?<date>[1-9]\d{3}-\d{2}-\d{2})T(?<time>(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d)(?:\.\d+)?(?<offset>Z|[+-](?:[01]\d|2[0-3]):[0-5]\d)$/;
3605
- function assertNever$17(value) {
3605
+ function assertNever$16(value) {
3606
3606
  throw new Error(`Unhandled field validation variant: ${JSON.stringify(value)}`);
3607
3607
  }
3608
3608
  function validationContext(options = {}) {
@@ -3655,7 +3655,7 @@ function fieldIssueToMessage(issue) {
3655
3655
  case "invalidMedia": return `${issue.label} must be a media object with an identifier`;
3656
3656
  case "invalidLink": return `${issue.label} must be a valid link`;
3657
3657
  case "invalidReference": return `${issue.label} must reference a valid item`;
3658
- default: return assertNever$17(issue);
3658
+ default: return assertNever$16(issue);
3659
3659
  }
3660
3660
  }
3661
3661
  function pluralize(label, count) {
@@ -3775,7 +3775,7 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
3775
3775
  case "presetOrCustom":
3776
3776
  case "contentTypeSelect":
3777
3777
  case "entryPicker": return makePlan("passthrough", "unknown", field, path, false, []);
3778
- default: return assertNever$17(field);
3778
+ default: return assertNever$16(field);
3779
3779
  }
3780
3780
  }
3781
3781
  function deriveFieldValidationPlans(fields, parentPath = []) {
@@ -3850,7 +3850,7 @@ function resolveSelectConstraintSource(field) {
3850
3850
  kind: "runtime",
3851
3851
  source: source.kind
3852
3852
  };
3853
- default: return assertNever$17(source);
3853
+ default: return assertNever$16(source);
3854
3854
  }
3855
3855
  }
3856
3856
  function normalizeStoredContentValues(plans, content, options = {}) {
@@ -3869,7 +3869,7 @@ function allGroupChildPlans(plan) {
3869
3869
  switch (plan.childSelection.kind) {
3870
3870
  case "all": return plan.childSelection.fields;
3871
3871
  case "discriminatedTabs": return plan.childSelection.tabs.flatMap((tab) => tab.fields);
3872
- default: return assertNever$17(plan.childSelection);
3872
+ default: return assertNever$16(plan.childSelection);
3873
3873
  }
3874
3874
  }
3875
3875
  function selectedGroupChildPlans(plan, value) {
@@ -3902,7 +3902,7 @@ function canonicalizeFieldValueForWrite(plan, value) {
3902
3902
  case "link":
3903
3903
  case "select":
3904
3904
  case "passthrough": return value;
3905
- default: return assertNever$17(plan);
3905
+ default: return assertNever$16(plan);
3906
3906
  }
3907
3907
  }
3908
3908
  function canonicalizeObjectForWrite(plans, value) {
@@ -3928,7 +3928,7 @@ function normalizeStoredFieldValueWithContext(plan, value, ctx) {
3928
3928
  case "link":
3929
3929
  case "select":
3930
3930
  case "passthrough": return normalizeFieldValue(plan, value, ctx);
3931
- default: return assertNever$17(plan);
3931
+ default: return assertNever$16(plan);
3932
3932
  }
3933
3933
  }
3934
3934
  function normalizeStoredObjectChildren(children, value, ctx) {
@@ -3965,7 +3965,7 @@ function normalizeFieldValue(plan, value, ctx) {
3965
3965
  case "select":
3966
3966
  case "passthrough": return value;
3967
3967
  case "media": return value;
3968
- default: return assertNever$17(plan);
3968
+ default: return assertNever$16(plan);
3969
3969
  }
3970
3970
  }
3971
3971
  function normalizeObjectChildren(children, value, ctx) {
@@ -4024,7 +4024,7 @@ function validateNormalizedFieldValue(plan, value, ctx) {
4024
4024
  case "repeater": return validateRepeaterPlan(plan, value, ctx);
4025
4025
  case "group": return validateGroupPlan(plan, value, ctx);
4026
4026
  case "passthrough": return [];
4027
- default: return assertNever$17(plan);
4027
+ default: return assertNever$16(plan);
4028
4028
  }
4029
4029
  }
4030
4030
  function shouldRequireValue(plan, value, ctx) {
@@ -4066,7 +4066,7 @@ function validateStringConstraint(plan, constraint, value) {
4066
4066
  case "timeFormat": return typeof value === "string" && isValidTimeString(value) ? [] : [issue(plan, "invalidTime")];
4067
4067
  case "datetimeFormat": return typeof value === "string" && isValidDateTimeInstantString(value) ? [] : [issue(plan, "invalidDateTime")];
4068
4068
  case "slugFormat": return typeof value === "string" && SLUG_PATTERN.test(value) ? [] : [issue(plan, "invalidSlug")];
4069
- default: return assertNever$17(constraint);
4069
+ default: return assertNever$16(constraint);
4070
4070
  }
4071
4071
  }
4072
4072
  function isValidIconPickerValue(value) {
@@ -4085,7 +4085,7 @@ function validateNumberConstraint(plan, constraint, value) {
4085
4085
  case "numberType": return [];
4086
4086
  case "numberMin": return value < constraint.minimum ? [issue(plan, "tooSmall", { minimum: constraint.minimum })] : [];
4087
4087
  case "numberMax": return value > constraint.maximum ? [issue(plan, "tooLarge", { maximum: constraint.maximum })] : [];
4088
- default: return assertNever$17(constraint);
4088
+ default: return assertNever$16(constraint);
4089
4089
  }
4090
4090
  }
4091
4091
  function validateSelectPlan(plan, value) {
@@ -4107,7 +4107,7 @@ function validateRepeaterPlan(plan, value, ctx) {
4107
4107
  maximum: constraint.maximum,
4108
4108
  itemLabel: "item"
4109
4109
  })] : [];
4110
- default: return assertNever$17(constraint);
4110
+ default: return assertNever$16(constraint);
4111
4111
  }
4112
4112
  }), ...value.flatMap((item, index) => validateRepeaterItem(plan, item, index, ctx))];
4113
4113
  }
@@ -4198,7 +4198,7 @@ function rebaseFieldPlanPath(plan, fromPrefix, toPrefix) {
4198
4198
  ...plan,
4199
4199
  path
4200
4200
  };
4201
- default: return assertNever$17(plan);
4201
+ default: return assertNever$16(plan);
4202
4202
  }
4203
4203
  }
4204
4204
  function validateInlineTextPlan(plan, value) {
@@ -4245,7 +4245,7 @@ function fieldPlanToObjectPropertyZod(plan, options = {}) {
4245
4245
  switch (presence.kind) {
4246
4246
  case "required": return schema;
4247
4247
  case "optional": return schema.optional();
4248
- default: return assertNever$17(presence);
4248
+ default: return assertNever$16(presence);
4249
4249
  }
4250
4250
  }
4251
4251
  function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
@@ -4315,7 +4315,7 @@ function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
4315
4315
  message
4316
4316
  });
4317
4317
  return;
4318
- default: assertNever$17(validationIssue);
4318
+ default: assertNever$16(validationIssue);
4319
4319
  }
4320
4320
  }
4321
4321
  function relativeZodIssuePath(path, rootPath) {
@@ -4346,7 +4346,7 @@ function findNestedFieldValidationPlan(plan, path) {
4346
4346
  case "link":
4347
4347
  case "select":
4348
4348
  case "passthrough": return null;
4349
- default: return assertNever$17(plan);
4349
+ default: return assertNever$16(plan);
4350
4350
  }
4351
4351
  }
4352
4352
  function sameFieldPath(left, right) {
@@ -4370,7 +4370,7 @@ function validateExplicitNullForPushPlan(plan, value, ctx) {
4370
4370
  case "link":
4371
4371
  case "select":
4372
4372
  case "passthrough": return [];
4373
- default: return assertNever$17(plan);
4373
+ default: return assertNever$16(plan);
4374
4374
  }
4375
4375
  }
4376
4376
  function validateExplicitNullsForPushRepeater(plan, value, ctx) {
@@ -4790,7 +4790,7 @@ function asDesignSystemTemplateId(value) {
4790
4790
  function makeBoundaryId(previousBlockId, nextBlockId) {
4791
4791
  return asDesignBoundaryId(`boundary:${encodeURIComponent(previousBlockId)}:${encodeURIComponent(nextBlockId)}`);
4792
4792
  }
4793
- function assertNever$16(value, message = "Unhandled Theme V2 variant") {
4793
+ function assertNever$15(value, message = "Unhandled Theme V2 variant") {
4794
4794
  throw new Error(`${message}: ${String(value)}`);
4795
4795
  }
4796
4796
  function brandNonEmptyString(value, label) {
@@ -7052,6 +7052,21 @@ const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isTh
7052
7052
  //#region ../theme-core/src/palette/colors.ts
7053
7053
  const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
7054
7054
  const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
7055
+ const THEME_PALETTE_COLOR_ORDER = [
7056
+ "primary",
7057
+ "secondary",
7058
+ "accent",
7059
+ "success",
7060
+ "warning",
7061
+ "destructive",
7062
+ "background",
7063
+ "surface",
7064
+ "surfaceAlt",
7065
+ "muted",
7066
+ "text",
7067
+ "primaryForeground",
7068
+ "border"
7069
+ ];
7055
7070
  const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
7056
7071
  const paletteModeSchema = z$1.enum(["light", "dark"]);
7057
7072
  const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -7129,6 +7144,12 @@ function requirePaletteColorsFromEntries(entries) {
7129
7144
  if (result.ok) return result.colors;
7130
7145
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
7131
7146
  }
7147
+ function paletteColorEntries(colors) {
7148
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
7149
+ name,
7150
+ hex: colors[name]
7151
+ }));
7152
+ }
7132
7153
  function paletteColorFingerprint(colors) {
7133
7154
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
7134
7155
  }
@@ -8462,13 +8483,6 @@ const warmDarkKirtanGold = defineCuratedPalette({
8462
8483
  });
8463
8484
  //#endregion
8464
8485
  //#region ../theme-core/src/palette/curated/index.ts
8465
- /**
8466
- * Curated palette library.
8467
- *
8468
- * Authoring keys are readable source aliases. Value keys are derived from the
8469
- * complete mode and semantic colours and are the only curated identity used at
8470
- * persistence and runtime boundaries.
8471
- */
8472
8486
  function admitCuratedPaletteDefinition(definition) {
8473
8487
  return {
8474
8488
  ...definition,
@@ -8495,11 +8509,8 @@ const curatedPalettes = [
8495
8509
  admitCuratedPaletteDefinition(warmDarkEmber),
8496
8510
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
8497
8511
  ];
8498
- const curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
8512
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
8499
8513
  const curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
8500
- function findCuratedPalette(valueKey) {
8501
- return curatedPalettesByValueKey.get(valueKey);
8502
- }
8503
8514
  function findCuratedPaletteByAuthoringKey(authoringKey) {
8504
8515
  return curatedPalettesByAuthoringKey.get(authoringKey);
8505
8516
  }
@@ -8508,87 +8519,6 @@ function requireCuratedPaletteValueKey(authoringKey) {
8508
8519
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
8509
8520
  return palette.valueKey;
8510
8521
  }
8511
- /** Parses a raw persisted key into catalogue-proven curated membership. */
8512
- const knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
8513
- const valueKey = parsePaletteValueKey(value);
8514
- if (!valueKey) {
8515
- ctx.addIssue({
8516
- code: "custom",
8517
- message: "Invalid canonical palette value key"
8518
- });
8519
- return z$1.NEVER;
8520
- }
8521
- const palette = findCuratedPalette(valueKey);
8522
- if (!palette) {
8523
- ctx.addIssue({
8524
- code: "custom",
8525
- message: "Unknown curated palette value key"
8526
- });
8527
- return z$1.NEVER;
8528
- }
8529
- return palette.valueKey;
8530
- });
8531
- //#endregion
8532
- //#region ../theme-core/src/palette/selection.ts
8533
- const sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
8534
- const sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
8535
- const paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
8536
- kind: z$1.literal("curated"),
8537
- valueKey: knownCuratedPaletteValueKeySchema
8538
- }), z$1.object({
8539
- kind: z$1.literal("site"),
8540
- paletteId: sitePaletteIdSchema
8541
- })]);
8542
- const onboardingPaletteOriginSchema = z$1.object({
8543
- kind: z$1.literal("onboarding"),
8544
- sourceKey: z$1.string().min(1).nullable()
8545
- });
8546
- const curatedForkPaletteOriginSchema = z$1.object({
8547
- kind: z$1.literal("curated-fork"),
8548
- sourceValueKey: paletteValueKeySchema
8549
- });
8550
- const manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
8551
- const legacyCustomizedPaletteOriginSchema = z$1.object({
8552
- kind: z$1.literal("legacy-customized"),
8553
- sourceKey: z$1.string().min(1).nullable()
8554
- });
8555
- const sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
8556
- onboardingPaletteOriginSchema,
8557
- curatedForkPaletteOriginSchema,
8558
- manualPaletteOriginSchema,
8559
- legacyCustomizedPaletteOriginSchema
8560
- ]);
8561
- const editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
8562
- kind: z$1.literal("curated-fork"),
8563
- sourceValueKey: knownCuratedPaletteValueKeySchema
8564
- }), manualPaletteOriginSchema]);
8565
- z$1.object({
8566
- id: sitePaletteIdSchema,
8567
- colors: paletteColorsSchema,
8568
- mode: paletteModeSchema,
8569
- origin: sitePaletteOriginSchema,
8570
- version: sitePaletteVersionSchema
8571
- });
8572
- z$1.discriminatedUnion("kind", [
8573
- z$1.object({ kind: z$1.literal("preserve") }),
8574
- z$1.object({
8575
- kind: z$1.literal("select"),
8576
- selection: paletteSelectionSchema
8577
- }),
8578
- z$1.object({
8579
- kind: z$1.literal("create-site"),
8580
- colors: paletteColorsSchema,
8581
- mode: paletteModeSchema,
8582
- origin: editorSitePaletteOriginSchema
8583
- }),
8584
- z$1.object({
8585
- kind: z$1.literal("update-site"),
8586
- paletteId: sitePaletteIdSchema,
8587
- expectedVersion: sitePaletteVersionSchema,
8588
- colors: paletteColorsSchema,
8589
- mode: paletteModeSchema
8590
- })
8591
- ]);
8592
8522
  const defaultThemeTokens = {
8593
8523
  color: {
8594
8524
  "background/base": "#ffffff",
@@ -9452,7 +9382,7 @@ function applyNavTypography(style, typography) {
9452
9382
  textSize: "sm",
9453
9383
  letterSpacing: "wider"
9454
9384
  };
9455
- default: return assertNever$16(typography, "Unhandled header nav typography");
9385
+ default: return assertNever$15(typography, "Unhandled header nav typography");
9456
9386
  }
9457
9387
  }
9458
9388
  function underlineNavLinkStyle(colorToken, underlineColorToken, typography = "plain") {
@@ -9481,7 +9411,7 @@ function themedHeaderShadow(theme) {
9481
9411
  case "low": return { elevation: "sm" };
9482
9412
  case "medium": return { elevation: "md" };
9483
9413
  case "high": return { elevation: "lg" };
9484
- default: return assertNever$16(theme.shadow.elevation, "Unhandled theme shadow elevation");
9414
+ default: return assertNever$15(theme.shadow.elevation, "Unhandled theme shadow elevation");
9485
9415
  }
9486
9416
  }
9487
9417
  function solidBrandHeader(theme) {
@@ -13357,6 +13287,34 @@ const mediaSchema$1 = z.object({
13357
13287
  transform: transformSchema$1.optional()
13358
13288
  });
13359
13289
  //#endregion
13290
+ //#region ../theme-core/src/palette/schema.ts
13291
+ const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
13292
+ const paletteColorSchema = z$1.object({
13293
+ name: z$1.string().min(1),
13294
+ hex: colourHexString
13295
+ });
13296
+ const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
13297
+ const paletteSchema = z$1.object({
13298
+ colors: z$1.array(paletteColorSchema),
13299
+ meta: paletteMetaSchema
13300
+ }).transform((palette, ctx) => {
13301
+ const colors = paletteColorsFromEntries(palette.colors);
13302
+ if (!colors.ok) {
13303
+ ctx.addIssue({
13304
+ code: "custom",
13305
+ message: `Invalid complete palette: ${colors.error.kind}`
13306
+ });
13307
+ return z$1.NEVER;
13308
+ }
13309
+ return {
13310
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
13311
+ name: String(name),
13312
+ hex: String(hex)
13313
+ })),
13314
+ meta: palette.meta
13315
+ };
13316
+ });
13317
+ //#endregion
13360
13318
  //#region ../theme-core/src/surfaces/foregroundRoles.ts
13361
13319
  const SURFACE_FOREGROUND_ROLES = [
13362
13320
  "text",
@@ -17447,16 +17405,6 @@ const axesSchema = z$1.object({
17447
17405
  "expressive"
17448
17406
  ])
17449
17407
  });
17450
- const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
17451
- const paletteColorSchema = z$1.object({
17452
- name: z$1.string().min(1),
17453
- hex: colourHexString
17454
- });
17455
- const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
17456
- const paletteSchema = z$1.object({
17457
- colors: z$1.array(paletteColorSchema),
17458
- meta: paletteMetaSchema
17459
- });
17460
17408
  const typographyStyleSchema = z$1.object({
17461
17409
  family: z$1.string().min(1),
17462
17410
  weight: z$1.enum([
@@ -28223,7 +28171,7 @@ function planSiteChromePlacement(positioning) {
28223
28171
  headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
28224
28172
  standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
28225
28173
  };
28226
- default: return assertNever$16(positioning);
28174
+ default: return assertNever$15(positioning);
28227
28175
  }
28228
28176
  }
28229
28177
  function splitSiteChromePlacementClasses(className) {
@@ -38368,10 +38316,10 @@ function preferredPathsForSource(source) {
38368
38316
  case "workshop": return ["/workshops", "/workshop"];
38369
38317
  case "retreat": return ["/retreats", "/retreat"];
38370
38318
  case "performance": return ["/performances", "/performance"];
38371
- default: return assertNever$25(source.preset, "Unhandled offerings preview event preset");
38319
+ default: return assertNever$24(source.preset, "Unhandled offerings preview event preset");
38372
38320
  }
38373
38321
  case "course": return ["/courses", "/course"];
38374
- default: return assertNever$25(source, "Unhandled offerings preview source");
38322
+ default: return assertNever$24(source, "Unhandled offerings preview source");
38375
38323
  }
38376
38324
  }
38377
38325
  function normalizeRoutePath(value) {
@@ -46961,7 +46909,7 @@ function eventSeriesIdsForSubject(subject) {
46961
46909
  switch (subject.kind) {
46962
46910
  case "eventSeries": return [subject.eventSeriesId];
46963
46911
  case "eventOffering": return subject.availableEventSeriesIds;
46964
- default: return assertNever$25(subject);
46912
+ default: return assertNever$24(subject);
46965
46913
  }
46966
46914
  }
46967
46915
  //#endregion
@@ -47678,7 +47626,7 @@ function renderOfferingGroupItems(presentation, items, options) {
47678
47626
  children: items.map((item) => renderOfferingCompactItem(item, options))
47679
47627
  })
47680
47628
  });
47681
- default: return assertNever$25(presentation, "Unhandled offerings preview presentation");
47629
+ default: return assertNever$24(presentation, "Unhandled offerings preview presentation");
47682
47630
  }
47683
47631
  }
47684
47632
  function compareCoursesByNextSession(left, right) {
@@ -47723,7 +47671,7 @@ function featuredSummaryDetails(item) {
47723
47671
  const summary = deriveCourseScheduleSummary(item.course);
47724
47672
  return summary ? formatFeaturedSummary(summary, item.course.venue?.name ?? null) : null;
47725
47673
  }
47726
- default: return assertNever$25(item, "Unhandled offerings preview item");
47674
+ default: return assertNever$24(item, "Unhandled offerings preview item");
47727
47675
  }
47728
47676
  }
47729
47677
  function formatFeaturedSummary(summary, venue) {
@@ -47732,7 +47680,7 @@ function formatFeaturedSummary(summary, venue) {
47732
47680
  case "multi-day-span": return detailsFromOccurrences(summary.occurrence, summary.occurrence, venue, null, null, true);
47733
47681
  case "fixed-recurring-run": return detailsFromOccurrences(summary.first, summary.last, venue, summary.recurrenceLabel, null);
47734
47682
  case "irregular-multi-session-run": return detailsFromOccurrences(summary.first, summary.last, venue, null, `${summary.sessionCount} dates`);
47735
- default: return assertNever$25(summary, "Unhandled offerings preview schedule summary");
47683
+ default: return assertNever$24(summary, "Unhandled offerings preview schedule summary");
47736
47684
  }
47737
47685
  }
47738
47686
  function detailsFromOccurrences(first, last, venue, recurrence, sessionCount, spanUsesEndDate = false) {
@@ -48129,7 +48077,7 @@ function bookingActionContent(input) {
48129
48077
  children: input.buttonText
48130
48078
  });
48131
48079
  case "unavailable": return null;
48132
- default: return assertNever$25(input.booking);
48080
+ default: return assertNever$24(input.booking);
48133
48081
  }
48134
48082
  }
48135
48083
  function RecurringSchedule({ schedule, buttonText = "Book", buttonVariant = "primary", showVenue = true, emptyMessage = "Regular schedule details will be added shortly." }) {
@@ -50307,7 +50255,7 @@ function previewEditableTargetToPath(target) {
50307
50255
  case "current-entry-field":
50308
50256
  case "current-entry-metadata": return target.path;
50309
50257
  case "read-only": return;
50310
- default: return assertNever$25(target);
50258
+ default: return assertNever$24(target);
50311
50259
  }
50312
50260
  }
50313
50261
  function previewEditableTargetToFieldKey(target) {
@@ -51382,7 +51330,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
51382
51330
  case "text":
51383
51331
  case "time":
51384
51332
  case "url": return [];
51385
- default: return assertNever$25(field);
51333
+ default: return assertNever$24(field);
51386
51334
  }
51387
51335
  }
51388
51336
  function makeDefaultBlockComponent(args) {
@@ -55537,7 +55485,7 @@ function sourceLabel(source) {
55537
55485
  case "managed-database": return "DB";
55538
55486
  case "sdk-synced": return "SDK-synced DB";
55539
55487
  case "sdk-config": return "SDK config";
55540
- default: return assertNever$25(source);
55488
+ default: return assertNever$24(source);
55541
55489
  }
55542
55490
  }
55543
55491
  //#endregion
@@ -69284,7 +69232,7 @@ function renderWithSdkThemeRuntime({ themeRuntime, theme, children }) {
69284
69232
  children
69285
69233
  });
69286
69234
  case "none": return /* @__PURE__ */ jsx(Fragment, { children });
69287
- default: return assertNever$25(themeRuntime);
69235
+ default: return assertNever$24(themeRuntime);
69288
69236
  }
69289
69237
  }
69290
69238
  //#endregion
@@ -71710,7 +71658,7 @@ function navigationAuthoringLinkToCommandLink(link) {
71710
71658
  badge: link.badge,
71711
71659
  label: link.label
71712
71660
  };
71713
- default: return assertNever$25(link);
71661
+ default: return assertNever$24(link);
71714
71662
  }
71715
71663
  }
71716
71664
  function portalLabelsForCommand(labels) {
@@ -71753,7 +71701,7 @@ function navigationReadLinkToLocalLink(item) {
71753
71701
  badge: link.badge,
71754
71702
  label: link.label
71755
71703
  };
71756
- default: return assertNever$25(link);
71704
+ default: return assertNever$24(link);
71757
71705
  }
71758
71706
  }
71759
71707
  function internalNavigationLinkToLocalLink(item) {