@riverbankcms/sdk 0.124.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 (130) hide show
  1. package/README.md +3 -1
  2. package/dist/{PreviewEditorSidebar-DBmAJJkQ.mjs → PreviewEditorSidebar-DcYJxTgc.mjs} +67 -266
  3. package/dist/{PreviewEditorUI-CfGaz9cY.mjs → PreviewEditorUI-Ctt1yTJr.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BH-3-jSj.mjs → PreviewQueryProvider-DgFDIwvK.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-BW9Z8j8T.mjs → SdkPreviewModeRuntime-CvW1vdQ4.mjs} +38 -30
  6. package/dist/{SiteChromeCustomizeContext-2z8moxYf.mjs → SiteChromeCustomizeContext-C87qlKWw.mjs} +493 -1378
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +1354 -202
  8. package/dist/_dts/api/src/accessAdmin.d.ts +2 -14
  9. package/dist/_dts/api/src/common/envelope.d.ts +1 -1
  10. package/dist/_dts/api/src/contentRuntime.d.ts +0 -2
  11. package/dist/_dts/api/src/endpoints.d.ts +0 -7
  12. package/dist/_dts/api/src/sdk-event-upsert.d.ts +42 -0
  13. package/dist/_dts/api/src/sdkContracts.d.ts +11 -9
  14. package/dist/_dts/api/src/siteAccessAdmin.d.ts +23 -0
  15. package/dist/_dts/api/src/siteOperations.d.ts +18 -1
  16. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +1 -14
  17. package/dist/_dts/billing/src/plans/types.d.ts +24 -5
  18. package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +4 -0
  19. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +2 -0
  20. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  21. package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +2 -0
  22. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +3 -1
  23. package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +2 -1
  24. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationStripeReturn.d.ts +15 -2
  25. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +331 -19
  26. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +1 -2
  27. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -3
  28. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +1 -2
  29. package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -12
  30. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -13
  31. package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +8 -100
  32. package/dist/_dts/preview-next/src/client/preview/siteStylePreviewPlanner.d.ts +1 -4
  33. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +1 -15
  34. package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +11 -21
  35. package/dist/_dts/sdk/src/cli/commands/event.d.ts +2 -2
  36. package/dist/_dts/sdk/src/cli/commands/eventOccurrenceSchedule.d.ts +12 -0
  37. package/dist/_dts/sdk/src/cli/commands/push/pushAllExtras.d.ts +6 -0
  38. package/dist/_dts/sdk/src/cli/commands/style.d.ts +1 -1
  39. package/dist/_dts/sdk/src/cli/content/legacyEventScheduleShapeError.d.ts +5 -0
  40. package/dist/_dts/sdk/src/cli/content/localEventSchedule.d.ts +17 -0
  41. package/dist/_dts/sdk/src/cli/content/reader.d.ts +5 -10
  42. package/dist/_dts/sdk/src/cli/migrations/events.d.ts +1 -1
  43. package/dist/_dts/sdk/src/cli/site-commands/eventScheduleCompiler.d.ts +24 -0
  44. package/dist/_dts/sdk/src/client/management/http.d.ts +1 -1
  45. package/dist/_dts/sdk/src/client/management/types.d.ts +3 -28
  46. package/dist/_dts/sdk/src/config/index.d.ts +1 -1
  47. package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -20
  48. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  49. package/dist/_dts/sdk/src/version.d.ts +1 -1
  50. package/dist/_dts/site-commands/src/commandContract.d.ts +33 -5
  51. package/dist/_dts/site-commands/src/commandDomain.d.ts +2 -2
  52. package/dist/_dts/site-commands/src/commands.d.ts +38 -9
  53. package/dist/_dts/site-commands/src/siteStyleCommandSchema.d.ts +28 -1
  54. package/dist/_dts/site-commands/src/siteStyleSelectionSchemaBuilder.d.ts +4 -4
  55. package/dist/_dts/theme-core/src/palette/concretePalette.d.ts +20 -0
  56. package/dist/_dts/theme-core/src/palette/curated/index.d.ts +2 -17
  57. package/dist/_dts/theme-core/src/palette/index.d.ts +1 -6
  58. package/dist/_dts/theme-core/src/palette/schema.d.ts +39 -0
  59. package/dist/_dts/theme-core/src/schema.d.ts +38 -26
  60. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -6
  61. package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +5 -6
  62. package/dist/cli/index.mjs +631 -525
  63. package/dist/cli/init-docs/content/cli-reference.md +6 -3
  64. package/dist/cli/init-docs/content/content-management.md +24 -13
  65. package/dist/client/{DiscountCodeDisclosure-DxvjKvck.mjs → DiscountCodeDisclosure-DS0AuFWW.mjs} +1 -1
  66. package/dist/client/{EventCombined.client-BydMGc4c.mjs → EventCombined.client-DtMxLr7q.mjs} +2 -2
  67. package/dist/client/{EventListing.client-vpzhhysN.mjs → EventListing.client-BdLSRNg1.mjs} +2 -2
  68. package/dist/client/{LeafletStaticMap-CB07rpf8.mjs → LeafletStaticMap-BrpC6vsT.mjs} +1 -1
  69. package/dist/client/{MagicLinkForm-BzyRJ8VF.mjs → MagicLinkForm-Bt3IuLMy.mjs} +1 -1
  70. package/dist/client/{StepIndicator-CTcGf8Be.mjs → StepIndicator-CBYPFVoy.mjs} +2 -2
  71. package/dist/client/{accordion-B-DUDLRD.mjs → accordion-BqqwPJWM.mjs} +1 -1
  72. package/dist/client/{bookingForm-DSbClLcZ.mjs → bookingForm-SneP3yxC.mjs} +5 -6
  73. package/dist/client/bookings.mjs +190 -24
  74. package/dist/client/{carousel-B6Ccdx8M.mjs → carousel-BTIR9L3I.mjs} +1 -1
  75. package/dist/client/{cart-BZh8G8wM.mjs → cart-bqiqd8SX.mjs} +3 -3
  76. package/dist/client/{checkout-o6zaC-kM.mjs → checkout-WbTFV5v4.mjs} +3 -3
  77. package/dist/client/client.mjs +175 -223
  78. package/dist/client/{courseRegistration-Cf11pNDs.mjs → courseRegistration-BcemLAdN.mjs} +6 -7
  79. package/dist/client/{eventCalendar-BeXrdsSE.mjs → eventCalendar-CsxIw0V_.mjs} +4 -4
  80. package/dist/client/{eventCombined-DA76PZgG.mjs → eventCombined-B6XMoHfa.mjs} +2 -2
  81. package/dist/client/{eventDetails-BLxg0rok.mjs → eventDetails-BJaoPPfo.mjs} +10 -5
  82. package/dist/client/{eventListing-tO9LheBX.mjs → eventListing-DgwdYHRT.mjs} +2 -2
  83. package/dist/client/{eventRegistration-Cnene9D9.mjs → eventRegistration-C0O3folu.mjs} +30 -22
  84. package/dist/client/{form-DZf72CHB.mjs → form-Bk9txGFt.mjs} +1 -1
  85. package/dist/client/{headerSection-Hioja5Cr.mjs → headerSection-yIBt0yTv.mjs} +2 -2
  86. package/dist/client/hooks.mjs +54 -102
  87. package/dist/client/{locationMap-DwhUXEix.mjs → locationMap-C-3KIpv-.mjs} +2 -2
  88. package/dist/client/{newsletterForm-C350bEQf.mjs → newsletterForm-CzB8g8h2.mjs} +1 -1
  89. package/dist/client/{pricing-BYWN_ATa.mjs → pricing-C1QeDes_.mjs} +1 -1
  90. package/dist/client/{productDetail-CCqCyXgU.mjs → productDetail-w7SBp5uc.mjs} +3 -3
  91. package/dist/client/{productList-BAiNJrOU.mjs → productList-D0tGKHGf.mjs} +3 -3
  92. package/dist/client/{propsDecoder-DeunRj6m.mjs → propsDecoder-Bcin2DB3.mjs} +172 -11
  93. package/dist/client/rendering/client.mjs +322 -363
  94. package/dist/client/rendering/islands.mjs +18 -18
  95. package/dist/client/rendering.mjs +231 -272
  96. package/dist/client/{useDiscountCodeUi-I-92-x2V.mjs → scrollToBlock-h-o_STf_.mjs} +18 -2
  97. package/dist/client/{shop-DUmCdBtw.mjs → shop-BGzmL8O_.mjs} +5 -6
  98. package/dist/client/{shop-commerce-CY27mEUr.mjs → shop-commerce-lX8QxjX-.mjs} +4 -4
  99. package/dist/client/{shop-commerce-store-ChXPbWfa.mjs → shop-commerce-store-CEurARtu.mjs} +1 -1
  100. package/dist/client/{shopShared-q0kin1cv.mjs → shopShared-DXxH8xxw.mjs} +2 -2
  101. package/dist/client/{useEventFilters-DlcVluZh.mjs → useEventFilters-B591g9vd.mjs} +2 -2
  102. package/dist/client/{usePolling-Bz7GFV_a.mjs → usePolling-BvnChV4m.mjs} +2 -2
  103. package/dist/preview-next/before-render.mjs +0 -7
  104. package/dist/preview-next/client/runtime.mjs +4 -4
  105. package/dist/preview-next/middleware.mjs +0 -7
  106. package/dist/{previewAuthStore-CJX21dGi.mjs → previewAuthStore-Dev9CdG9.mjs} +0 -7
  107. package/dist/{sdk-runtime-OnPM8Z69.mjs → sdk-runtime-M__i3Jce.mjs} +2 -2
  108. package/dist/{separator-CPtfzHqA.mjs → separator-VSlnI9bc.mjs} +1 -1
  109. package/dist/server/components.mjs +99 -141
  110. package/dist/server/config-validation.mjs +54 -102
  111. package/dist/server/config.mjs +54 -102
  112. package/dist/server/data.mjs +54 -102
  113. package/dist/server/index.mjs +1 -8
  114. package/dist/server/next.mjs +103 -152
  115. package/dist/server/page-converter.mjs +54 -102
  116. package/dist/server/prebuild.mjs +1 -1
  117. package/dist/server/rendering/server.mjs +62 -104
  118. package/dist/server/rendering.mjs +100 -142
  119. package/dist/server/routing.mjs +75 -147
  120. package/dist/server/server.mjs +55 -110
  121. package/dist/server/theme-bridge.mjs +172 -162
  122. package/dist/server/theme.mjs +167 -11
  123. package/package.json +1 -1
  124. package/dist/_dts/theme-core/src/palette/editorState.d.ts +0 -75
  125. package/dist/_dts/theme-core/src/palette/libraryModel.d.ts +0 -64
  126. package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +0 -81
  127. package/dist/_dts/theme-core/src/palette/resolveSelection.d.ts +0 -75
  128. package/dist/_dts/theme-core/src/palette/selection.d.ts +0 -74
  129. package/dist/_dts/theme-core/src/palette/sitePalettePersistence.d.ts +0 -34
  130. package/dist/client/scrollToBlock-C86BYkyV.mjs +0 -17
@@ -1177,6 +1177,21 @@ const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isTh
1177
1177
  //#region ../theme-core/src/palette/colors.ts
1178
1178
  const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
1179
1179
  const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
1180
+ const THEME_PALETTE_COLOR_ORDER = [
1181
+ "primary",
1182
+ "secondary",
1183
+ "accent",
1184
+ "success",
1185
+ "warning",
1186
+ "destructive",
1187
+ "background",
1188
+ "surface",
1189
+ "surfaceAlt",
1190
+ "muted",
1191
+ "text",
1192
+ "primaryForeground",
1193
+ "border"
1194
+ ];
1180
1195
  const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
1181
1196
  const paletteModeSchema = z$1.enum(["light", "dark"]);
1182
1197
  const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -1254,6 +1269,12 @@ function requirePaletteColorsFromEntries(entries) {
1254
1269
  if (result.ok) return result.colors;
1255
1270
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
1256
1271
  }
1272
+ function paletteColorEntries(colors) {
1273
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
1274
+ name,
1275
+ hex: colors[name]
1276
+ }));
1277
+ }
1257
1278
  function paletteColorFingerprint(colors) {
1258
1279
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
1259
1280
  }
@@ -2587,13 +2608,6 @@ const warmDarkKirtanGold = defineCuratedPalette({
2587
2608
  });
2588
2609
  //#endregion
2589
2610
  //#region ../theme-core/src/palette/curated/index.ts
2590
- /**
2591
- * Curated palette library.
2592
- *
2593
- * Authoring keys are readable source aliases. Value keys are derived from the
2594
- * complete mode and semantic colours and are the only curated identity used at
2595
- * persistence and runtime boundaries.
2596
- */
2597
2611
  function admitCuratedPaletteDefinition(definition) {
2598
2612
  return {
2599
2613
  ...definition,
@@ -2620,11 +2634,8 @@ const curatedPalettes = [
2620
2634
  admitCuratedPaletteDefinition(warmDarkEmber),
2621
2635
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
2622
2636
  ];
2623
- const curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
2637
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
2624
2638
  const curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
2625
- function findCuratedPalette(valueKey) {
2626
- return curatedPalettesByValueKey.get(valueKey);
2627
- }
2628
2639
  function findCuratedPaletteByAuthoringKey(authoringKey) {
2629
2640
  return curatedPalettesByAuthoringKey.get(authoringKey);
2630
2641
  }
@@ -2633,87 +2644,6 @@ function requireCuratedPaletteValueKey(authoringKey) {
2633
2644
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
2634
2645
  return palette.valueKey;
2635
2646
  }
2636
- /** Parses a raw persisted key into catalogue-proven curated membership. */
2637
- const knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
2638
- const valueKey = parsePaletteValueKey(value);
2639
- if (!valueKey) {
2640
- ctx.addIssue({
2641
- code: "custom",
2642
- message: "Invalid canonical palette value key"
2643
- });
2644
- return z$1.NEVER;
2645
- }
2646
- const palette = findCuratedPalette(valueKey);
2647
- if (!palette) {
2648
- ctx.addIssue({
2649
- code: "custom",
2650
- message: "Unknown curated palette value key"
2651
- });
2652
- return z$1.NEVER;
2653
- }
2654
- return palette.valueKey;
2655
- });
2656
- //#endregion
2657
- //#region ../theme-core/src/palette/selection.ts
2658
- const sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
2659
- const sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
2660
- const paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
2661
- kind: z$1.literal("curated"),
2662
- valueKey: knownCuratedPaletteValueKeySchema
2663
- }), z$1.object({
2664
- kind: z$1.literal("site"),
2665
- paletteId: sitePaletteIdSchema
2666
- })]);
2667
- const onboardingPaletteOriginSchema = z$1.object({
2668
- kind: z$1.literal("onboarding"),
2669
- sourceKey: z$1.string().min(1).nullable()
2670
- });
2671
- const curatedForkPaletteOriginSchema = z$1.object({
2672
- kind: z$1.literal("curated-fork"),
2673
- sourceValueKey: paletteValueKeySchema
2674
- });
2675
- const manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
2676
- const legacyCustomizedPaletteOriginSchema = z$1.object({
2677
- kind: z$1.literal("legacy-customized"),
2678
- sourceKey: z$1.string().min(1).nullable()
2679
- });
2680
- const sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
2681
- onboardingPaletteOriginSchema,
2682
- curatedForkPaletteOriginSchema,
2683
- manualPaletteOriginSchema,
2684
- legacyCustomizedPaletteOriginSchema
2685
- ]);
2686
- const editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
2687
- kind: z$1.literal("curated-fork"),
2688
- sourceValueKey: knownCuratedPaletteValueKeySchema
2689
- }), manualPaletteOriginSchema]);
2690
- z$1.object({
2691
- id: sitePaletteIdSchema,
2692
- colors: paletteColorsSchema,
2693
- mode: paletteModeSchema,
2694
- origin: sitePaletteOriginSchema,
2695
- version: sitePaletteVersionSchema
2696
- });
2697
- z$1.discriminatedUnion("kind", [
2698
- z$1.object({ kind: z$1.literal("preserve") }),
2699
- z$1.object({
2700
- kind: z$1.literal("select"),
2701
- selection: paletteSelectionSchema
2702
- }),
2703
- z$1.object({
2704
- kind: z$1.literal("create-site"),
2705
- colors: paletteColorsSchema,
2706
- mode: paletteModeSchema,
2707
- origin: editorSitePaletteOriginSchema
2708
- }),
2709
- z$1.object({
2710
- kind: z$1.literal("update-site"),
2711
- paletteId: sitePaletteIdSchema,
2712
- expectedVersion: sitePaletteVersionSchema,
2713
- colors: paletteColorsSchema,
2714
- mode: paletteModeSchema
2715
- })
2716
- ]);
2717
2647
  //#endregion
2718
2648
  //#region ../theme-core/src/lib/media.ts
2719
2649
  const hotspotSchema$1 = z.object({
@@ -2772,6 +2702,34 @@ const mediaSchema$1 = z.object({
2772
2702
  transform: transformSchema$1.optional()
2773
2703
  });
2774
2704
  //#endregion
2705
+ //#region ../theme-core/src/palette/schema.ts
2706
+ const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
2707
+ const paletteColorSchema = z$1.object({
2708
+ name: z$1.string().min(1),
2709
+ hex: colourHexString
2710
+ });
2711
+ const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
2712
+ const paletteSchema = z$1.object({
2713
+ colors: z$1.array(paletteColorSchema),
2714
+ meta: paletteMetaSchema
2715
+ }).transform((palette, ctx) => {
2716
+ const colors = paletteColorsFromEntries(palette.colors);
2717
+ if (!colors.ok) {
2718
+ ctx.addIssue({
2719
+ code: "custom",
2720
+ message: `Invalid complete palette: ${colors.error.kind}`
2721
+ });
2722
+ return z$1.NEVER;
2723
+ }
2724
+ return {
2725
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
2726
+ name: String(name),
2727
+ hex: String(hex)
2728
+ })),
2729
+ meta: palette.meta
2730
+ };
2731
+ });
2732
+ //#endregion
2775
2733
  //#region ../theme-core/src/buttons/types.ts
2776
2734
  /**
2777
2735
  * Standard semantic variant roles a theme exposes.
@@ -5966,16 +5924,6 @@ const axesSchema = z$1.object({
5966
5924
  "expressive"
5967
5925
  ])
5968
5926
  });
5969
- const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
5970
- const paletteColorSchema = z$1.object({
5971
- name: z$1.string().min(1),
5972
- hex: colourHexString
5973
- });
5974
- const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
5975
- const paletteSchema = z$1.object({
5976
- colors: z$1.array(paletteColorSchema),
5977
- meta: paletteMetaSchema
5978
- });
5979
5927
  const typographyStyleSchema = z$1.object({
5980
5928
  family: z$1.string().min(1),
5981
5929
  weight: z$1.enum([
@@ -23933,6 +23881,10 @@ const eventDetailsManifest = createBlockManifest({
23933
23881
  from: "$root.occurrenceContext",
23934
23882
  fallback: null
23935
23883
  } },
23884
+ subject: { $bind: {
23885
+ from: "$root.subject",
23886
+ fallback: null
23887
+ } },
23936
23888
  events: { $bind: { from: "data.eventDetailsData.events" } },
23937
23889
  showVenue: { $bind: { from: "content.showVenue" } },
23938
23890
  showMap: { $bind: { from: "content.showMap" } },
@@ -12,7 +12,7 @@ import * as crypto from "crypto";
12
12
  * 1. This constant
13
13
  * 2. The "version" field in package.json
14
14
  */
15
- const SDK_VERSION = "0.124.0";
15
+ const SDK_VERSION = "0.126.0";
16
16
  //#endregion
17
17
  //#region src/constants.ts
18
18
  /**
@@ -6388,6 +6388,21 @@ const themeColorTokenSchema = z$1.string().min(1).refine((value) => Boolean(isTh
6388
6388
  //#region ../theme-core/src/palette/colors.ts
6389
6389
  const HEX_COLOR_REGEX = /^#[0-9a-f]{6}$/;
6390
6390
  const NORMALIZABLE_HEX_REGEX = /^#(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
6391
+ const THEME_PALETTE_COLOR_ORDER = [
6392
+ "primary",
6393
+ "secondary",
6394
+ "accent",
6395
+ "success",
6396
+ "warning",
6397
+ "destructive",
6398
+ "background",
6399
+ "surface",
6400
+ "surfaceAlt",
6401
+ "muted",
6402
+ "text",
6403
+ "primaryForeground",
6404
+ "border"
6405
+ ];
6391
6406
  const hexColorSchema = z$1.string().regex(HEX_COLOR_REGEX, "Hex must be #RRGGBB (lowercase)").transform((value) => value);
6392
6407
  const paletteModeSchema = z$1.enum(["light", "dark"]);
6393
6408
  const PALETTE_VALUE_KEY_PREFIX = "palette-value:v1|";
@@ -6465,6 +6480,12 @@ function requirePaletteColorsFromEntries(entries) {
6465
6480
  if (result.ok) return result.colors;
6466
6481
  throw new Error(`Invalid complete palette: ${result.error.kind}`);
6467
6482
  }
6483
+ function paletteColorEntries(colors) {
6484
+ return THEME_PALETTE_COLOR_ORDER.map((name) => ({
6485
+ name,
6486
+ hex: colors[name]
6487
+ }));
6488
+ }
6468
6489
  function paletteColorFingerprint(colors) {
6469
6490
  return PALETTE_TOKEN_NAMES.map((name) => `${name}:${colors[name]}`).join("|");
6470
6491
  }
@@ -7798,13 +7819,6 @@ const warmDarkKirtanGold = defineCuratedPalette({
7798
7819
  });
7799
7820
  //#endregion
7800
7821
  //#region ../theme-core/src/palette/curated/index.ts
7801
- /**
7802
- * Curated palette library.
7803
- *
7804
- * Authoring keys are readable source aliases. Value keys are derived from the
7805
- * complete mode and semantic colours and are the only curated identity used at
7806
- * persistence and runtime boundaries.
7807
- */
7808
7822
  function admitCuratedPaletteDefinition(definition) {
7809
7823
  return {
7810
7824
  ...definition,
@@ -7831,11 +7845,8 @@ const curatedPalettes = [
7831
7845
  admitCuratedPaletteDefinition(warmDarkEmber),
7832
7846
  admitCuratedPaletteDefinition(warmDarkKirtanGold)
7833
7847
  ];
7834
- const curatedPalettesByValueKey = new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
7848
+ new Map(curatedPalettes.map((palette) => [palette.valueKey, palette]));
7835
7849
  const curatedPalettesByAuthoringKey = new Map(curatedPalettes.map((palette) => [palette.authoringKey, palette]));
7836
- function findCuratedPalette(valueKey) {
7837
- return curatedPalettesByValueKey.get(valueKey);
7838
- }
7839
7850
  function findCuratedPaletteByAuthoringKey(authoringKey) {
7840
7851
  return curatedPalettesByAuthoringKey.get(authoringKey);
7841
7852
  }
@@ -7844,87 +7855,6 @@ function requireCuratedPaletteValueKey(authoringKey) {
7844
7855
  if (!palette) throw new Error(`Unknown curated palette authoring key "${authoringKey}"`);
7845
7856
  return palette.valueKey;
7846
7857
  }
7847
- /** Parses a raw persisted key into catalogue-proven curated membership. */
7848
- const knownCuratedPaletteValueKeySchema = z$1.string().transform((value, ctx) => {
7849
- const valueKey = parsePaletteValueKey(value);
7850
- if (!valueKey) {
7851
- ctx.addIssue({
7852
- code: "custom",
7853
- message: "Invalid canonical palette value key"
7854
- });
7855
- return z$1.NEVER;
7856
- }
7857
- const palette = findCuratedPalette(valueKey);
7858
- if (!palette) {
7859
- ctx.addIssue({
7860
- code: "custom",
7861
- message: "Unknown curated palette value key"
7862
- });
7863
- return z$1.NEVER;
7864
- }
7865
- return palette.valueKey;
7866
- });
7867
- //#endregion
7868
- //#region ../theme-core/src/palette/selection.ts
7869
- const sitePaletteIdSchema = z$1.string().uuid().transform((value) => value);
7870
- const sitePaletteVersionSchema = z$1.number().int().nonnegative().transform((value) => value);
7871
- const paletteSelectionSchema = z$1.discriminatedUnion("kind", [z$1.object({
7872
- kind: z$1.literal("curated"),
7873
- valueKey: knownCuratedPaletteValueKeySchema
7874
- }), z$1.object({
7875
- kind: z$1.literal("site"),
7876
- paletteId: sitePaletteIdSchema
7877
- })]);
7878
- const onboardingPaletteOriginSchema = z$1.object({
7879
- kind: z$1.literal("onboarding"),
7880
- sourceKey: z$1.string().min(1).nullable()
7881
- });
7882
- const curatedForkPaletteOriginSchema = z$1.object({
7883
- kind: z$1.literal("curated-fork"),
7884
- sourceValueKey: paletteValueKeySchema
7885
- });
7886
- const manualPaletteOriginSchema = z$1.object({ kind: z$1.literal("manual") });
7887
- const legacyCustomizedPaletteOriginSchema = z$1.object({
7888
- kind: z$1.literal("legacy-customized"),
7889
- sourceKey: z$1.string().min(1).nullable()
7890
- });
7891
- const sitePaletteOriginSchema = z$1.discriminatedUnion("kind", [
7892
- onboardingPaletteOriginSchema,
7893
- curatedForkPaletteOriginSchema,
7894
- manualPaletteOriginSchema,
7895
- legacyCustomizedPaletteOriginSchema
7896
- ]);
7897
- const editorSitePaletteOriginSchema = z$1.discriminatedUnion("kind", [z$1.object({
7898
- kind: z$1.literal("curated-fork"),
7899
- sourceValueKey: knownCuratedPaletteValueKeySchema
7900
- }), manualPaletteOriginSchema]);
7901
- z$1.object({
7902
- id: sitePaletteIdSchema,
7903
- colors: paletteColorsSchema,
7904
- mode: paletteModeSchema,
7905
- origin: sitePaletteOriginSchema,
7906
- version: sitePaletteVersionSchema
7907
- });
7908
- z$1.discriminatedUnion("kind", [
7909
- z$1.object({ kind: z$1.literal("preserve") }),
7910
- z$1.object({
7911
- kind: z$1.literal("select"),
7912
- selection: paletteSelectionSchema
7913
- }),
7914
- z$1.object({
7915
- kind: z$1.literal("create-site"),
7916
- colors: paletteColorsSchema,
7917
- mode: paletteModeSchema,
7918
- origin: editorSitePaletteOriginSchema
7919
- }),
7920
- z$1.object({
7921
- kind: z$1.literal("update-site"),
7922
- paletteId: sitePaletteIdSchema,
7923
- expectedVersion: sitePaletteVersionSchema,
7924
- colors: paletteColorsSchema,
7925
- mode: paletteModeSchema
7926
- })
7927
- ]);
7928
7858
  //#endregion
7929
7859
  //#region ../theme-core/src/tokens/tokens.ts
7930
7860
  const defaultThemeTokens = {
@@ -12707,6 +12637,34 @@ const mediaSchema$1 = z.object({
12707
12637
  transform: transformSchema$1.optional()
12708
12638
  });
12709
12639
  //#endregion
12640
+ //#region ../theme-core/src/palette/schema.ts
12641
+ const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
12642
+ const paletteColorSchema = z$1.object({
12643
+ name: z$1.string().min(1),
12644
+ hex: colourHexString
12645
+ });
12646
+ const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
12647
+ const paletteSchema = z$1.object({
12648
+ colors: z$1.array(paletteColorSchema),
12649
+ meta: paletteMetaSchema
12650
+ }).transform((palette, ctx) => {
12651
+ const colors = paletteColorsFromEntries(palette.colors);
12652
+ if (!colors.ok) {
12653
+ ctx.addIssue({
12654
+ code: "custom",
12655
+ message: `Invalid complete palette: ${colors.error.kind}`
12656
+ });
12657
+ return z$1.NEVER;
12658
+ }
12659
+ return {
12660
+ colors: paletteColorEntries(colors.colors).map(({ name, hex }) => ({
12661
+ name: String(name),
12662
+ hex: String(hex)
12663
+ })),
12664
+ meta: palette.meta
12665
+ };
12666
+ });
12667
+ //#endregion
12710
12668
  //#region ../theme-core/src/surfaces/foregroundRoles.ts
12711
12669
  const SURFACE_FOREGROUND_ROLES = [
12712
12670
  "text",
@@ -16797,16 +16755,6 @@ const axesSchema = z$1.object({
16797
16755
  "expressive"
16798
16756
  ])
16799
16757
  });
16800
- const colourHexString = z$1.string().regex(/^#([0-9A-Fa-f]{3}){1,2}$/);
16801
- const paletteColorSchema = z$1.object({
16802
- name: z$1.string().min(1),
16803
- hex: colourHexString
16804
- });
16805
- const paletteMetaSchema = z$1.object({ mode: z$1.enum(["light", "dark"]) });
16806
- const paletteSchema = z$1.object({
16807
- colors: z$1.array(paletteColorSchema),
16808
- meta: paletteMetaSchema
16809
- });
16810
16758
  const typographyStyleSchema = z$1.object({
16811
16759
  family: z$1.string().min(1),
16812
16760
  weight: z$1.enum([
@@ -32480,6 +32428,10 @@ const eventDetailsManifest = createBlockManifest({
32480
32428
  from: "$root.occurrenceContext",
32481
32429
  fallback: null
32482
32430
  } },
32431
+ subject: { $bind: {
32432
+ from: "$root.subject",
32433
+ fallback: null
32434
+ } },
32483
32435
  events: { $bind: { from: "data.eventDetailsData.events" } },
32484
32436
  showVenue: { $bind: { from: "content.showVenue" } },
32485
32437
  showMap: { $bind: { from: "content.showMap" } },
@@ -45894,7 +45846,10 @@ function uniqByOccurrenceId(events) {
45894
45846
  return out;
45895
45847
  }
45896
45848
  function selectEventDetails(args) {
45897
- const all = uniqByOccurrenceId((args.events ?? []).filter(Boolean));
45849
+ const all = uniqByOccurrenceId(resolveEventRegistrationScopedEvents((args.events ?? []).filter(Boolean), {
45850
+ occurrenceContext: args.occurrenceContext,
45851
+ subject: args.subject
45852
+ }));
45898
45853
  const occurrenceContext = args.occurrenceContext ?? null;
45899
45854
  const otherLimit = parseLimit$1(args.otherDatesLimit, 5);
45900
45855
  const selectedFromContext = (() => {
@@ -46183,11 +46138,13 @@ function EventDetailsView({ selection, showVenue, showMap, showOtherDates, showC
46183
46138
  }
46184
46139
  //#endregion
46185
46140
  //#region ../blocks/src/system/runtime/nodes/event-details.server.tsx
46186
- function EventDetailsSSR({ blockId, occurrenceContext, events, showVenue = true, showMap = true, showOtherDates = true, otherDatesLimit, showCost = true, showAcceptedPasses = true, showAcceptedMemberships = true, sitePasses, siteMemberships, autoApplyDiscount, className, children }) {
46141
+ function EventDetailsSSR({ blockId, occurrenceContext, subject, events, showVenue = true, showMap = true, showOtherDates = true, otherDatesLimit, showCost = true, showAcceptedPasses = true, showAcceptedMemberships = true, sitePasses, siteMemberships, autoApplyDiscount, className, children }) {
46187
46142
  const nowIso = (/* @__PURE__ */ new Date()).toISOString();
46143
+ const normalizedSubject = normalizeEventRegistrationPageSurfaceSubject(subject);
46188
46144
  const selection = selectEventDetails({
46189
46145
  events: events ?? null,
46190
46146
  occurrenceContext: occurrenceContext ?? null,
46147
+ subject: normalizedSubject,
46191
46148
  nowIso,
46192
46149
  otherDatesLimit
46193
46150
  });
@@ -46202,6 +46159,7 @@ function EventDetailsSSR({ blockId, occurrenceContext, events, showVenue = true,
46202
46159
  children: [
46203
46160
  /* @__PURE__ */ jsx(IslandPropsScript, { value: {
46204
46161
  occurrenceContext,
46162
+ subject: normalizedSubject,
46205
46163
  events,
46206
46164
  showVenue,
46207
46165
  showMap,