@riverbankcms/sdk 0.60.6 → 0.60.7

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 (92) hide show
  1. package/dist/_dts/api/src/appointmentSetup.d.ts +2 -2
  2. package/dist/_dts/api/src/bookingConfig.d.ts +6 -0
  3. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +45 -3
  4. package/dist/_dts/api/src/bookingOperations.d.ts +40 -3
  5. package/dist/_dts/api/src/courses.d.ts +1 -5
  6. package/dist/_dts/api/src/endpoints.d.ts +80 -1
  7. package/dist/_dts/api/src/index.d.ts +3 -2
  8. package/dist/_dts/api/src/navigation/contracts.d.ts +9 -9
  9. package/dist/_dts/api/src/public/endpoints.d.ts +1 -1
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -1
  11. package/dist/_dts/api/src/resources.d.ts +1 -1
  12. package/dist/_dts/api/src/siteBanner.d.ts +8 -8
  13. package/dist/_dts/api/src/siteOnboarding.d.ts +1 -0
  14. package/dist/_dts/api/src/teamMembers.d.ts +27 -0
  15. package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +35 -29
  16. package/dist/_dts/blocks/src/system/blocks/courses/shared/types.d.ts +1 -5
  17. package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +40 -34
  18. package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +1 -5
  19. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1 -1
  20. package/dist/_dts/blocks/src/system/blocks/products/shared.d.ts +2 -2
  21. package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
  22. package/dist/_dts/blocks/src/system/blocks/shared/teamMembers.d.ts +24 -0
  23. package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +18 -8
  24. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  25. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  26. package/dist/_dts/blocks/src/system/data/utils.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +201 -201
  28. package/dist/_dts/blocks/src/system/manifest/validation.d.ts +2 -2
  29. package/dist/_dts/blocks/src/system/node/schema.d.ts +5 -5
  30. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +4 -4
  32. package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
  33. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +3 -3
  34. package/dist/_dts/content-model/src/content-types/schema.d.ts +8 -8
  35. package/dist/_dts/content-model/src/metadataConfig.d.ts +1 -0
  36. package/dist/_dts/core/src/branded.d.ts +2 -0
  37. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +124 -8
  38. package/dist/_dts/db/src/schemas/forms.d.ts +61 -61
  39. package/dist/_dts/sdk/src/client/types.d.ts +9 -2
  40. package/dist/_dts/sdk/src/config/types.d.ts +1 -1
  41. package/dist/_dts/sdk/src/config/validation.d.ts +40 -37
  42. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +17 -8
  43. package/dist/_dts/sdk/src/data/prefetchBlockData.d.ts +1 -1
  44. package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +19 -19
  45. package/dist/_dts/sdk/src/public-api/contracts.d.ts +87 -69
  46. package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
  47. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -5
  48. package/dist/_dts/sdk/src/version.d.ts +1 -1
  49. package/dist/_dts/theme-core/src/accordions/types.d.ts +11 -11
  50. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +10 -10
  51. package/dist/_dts/theme-core/src/buttons/types.d.ts +27 -27
  52. package/dist/_dts/theme-core/src/cards/types.d.ts +17 -17
  53. package/dist/_dts/theme-core/src/inputs/types.d.ts +14 -14
  54. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +2 -2
  55. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +438 -438
  56. package/dist/_dts/theme-core/src/navigation/types.d.ts +16 -16
  57. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +15 -15
  58. package/dist/_dts/theme-core/src/schema.d.ts +662 -662
  59. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +4 -4
  60. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +15 -15
  61. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +7 -7
  62. package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
  63. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +5 -5
  64. package/dist/_dts/ui/src/badge.d.ts +1 -1
  65. package/dist/_dts/ui/src/button-group.d.ts +1 -1
  66. package/dist/_dts/ui/src/button.d.ts +2 -2
  67. package/dist/_dts/ui/src/callout.d.ts +1 -1
  68. package/dist/_dts/ui/src/card.d.ts +1 -1
  69. package/dist/_dts/ui/src/surface.d.ts +2 -2
  70. package/dist/_dts/ui/src/toggle.d.ts +4 -4
  71. package/dist/cli/index.mjs +276 -24
  72. package/dist/client/client.mjs +607 -306
  73. package/dist/client/hooks.mjs +272 -23
  74. package/dist/client/rendering/client.mjs +179 -130
  75. package/dist/client/rendering/islands.mjs +68 -43
  76. package/dist/client/rendering.mjs +646 -363
  77. package/dist/preview-next/before-render.mjs +147 -1
  78. package/dist/preview-next/client/runtime.mjs +338 -43
  79. package/dist/preview-next/middleware.mjs +147 -1
  80. package/dist/server/components.mjs +727 -470
  81. package/dist/server/config-validation.mjs +488 -254
  82. package/dist/server/config.mjs +488 -254
  83. package/dist/server/data.mjs +272 -23
  84. package/dist/server/index.mjs +168 -2
  85. package/dist/server/next.mjs +476 -185
  86. package/dist/server/page-converter.mjs +335 -249
  87. package/dist/server/prebuild.mjs +1 -1
  88. package/dist/server/rendering/server.mjs +742 -469
  89. package/dist/server/rendering.mjs +742 -469
  90. package/dist/server/routing.mjs +274 -24
  91. package/dist/server/server.mjs +291 -24
  92. package/package.json +1 -1
@@ -11810,7 +11810,19 @@ var teamMemberFragment = defineFragment({
11810
11810
  bind("photo")
11811
11811
  )
11812
11812
  ]),
11813
- text({ as: "h3" }, bind("name")),
11813
+ link(
11814
+ {
11815
+ href: { $bind: { from: "profilePath" } },
11816
+ className: "rb-team-member-name-link"
11817
+ },
11818
+ [text({ as: "h3" }, bind("name"))],
11819
+ when("profilePath")
11820
+ ),
11821
+ text(
11822
+ { as: "h3" },
11823
+ when("profilePath", { not: true }),
11824
+ bind("name")
11825
+ ),
11814
11826
  text({ as: "p", className: "rb-team-member-role" }, when("role"), bind("role")),
11815
11827
  richText(
11816
11828
  { className: "rb-prose rb-max-w-none" },
@@ -16201,7 +16213,9 @@ var courseSessionSchema = z38.object({
16201
16213
  var courseTeamMemberSummarySchema = z38.object({
16202
16214
  id: z38.string(),
16203
16215
  name: z38.string(),
16204
- summary: z38.string().nullable()
16216
+ roleLabel: z38.string().nullable(),
16217
+ summary: z38.string().nullable(),
16218
+ profilePath: z38.string().nullable()
16205
16219
  });
16206
16220
  var coursePricingOptionSchema = z38.object({
16207
16221
  id: z38.string(),
@@ -16306,7 +16320,9 @@ var publicEventTicketTypeSchema = z39.object({
16306
16320
  var publicTeamMemberSummarySchema = z39.object({
16307
16321
  id: z39.string(),
16308
16322
  name: z39.string(),
16309
- summary: z39.string().nullable()
16323
+ roleLabel: z39.string().nullable(),
16324
+ summary: z39.string().nullable(),
16325
+ profilePath: z39.string().nullable()
16310
16326
  });
16311
16327
  var publicEventSchema = z39.object({
16312
16328
  kind: z39.enum(["event", "course_session"]).optional(),
@@ -24154,7 +24170,25 @@ var newsletterSignupBlockDefinition = {
24154
24170
  };
24155
24171
 
24156
24172
  // ../blocks/src/system/blocks/team-members.ts
24173
+ import { z as z57 } from "zod";
24157
24174
  var ITEM_NAME2 = "member";
24175
+ var teamMemberPhotoSchema = mediaSchema2.refine((media2) => media2.type === "image", {
24176
+ message: "Team member photos must be image media"
24177
+ }).nullable();
24178
+ var teamMemberDataSchema = z57.object({
24179
+ _type: z57.literal("teamMember"),
24180
+ id: z57.string(),
24181
+ name: z57.string(),
24182
+ role: z57.string().nullable(),
24183
+ roleLabel: z57.string().nullable(),
24184
+ bio: z57.string().nullable(),
24185
+ summary: z57.string().nullable(),
24186
+ photo: teamMemberPhotoSchema,
24187
+ profilePath: z57.string().nullable()
24188
+ });
24189
+ var teamMembersDataSchema = z57.array(teamMemberDataSchema);
24190
+ var dynamicSourceWhen = { equals: "site_staff" };
24191
+ var manualSourceWhen = { equals: "site_staff", not: true };
24158
24192
  var headingNode = text(
24159
24193
  { as: "h2" },
24160
24194
  bind("content.heading"),
@@ -24244,7 +24278,15 @@ var teamMemberStackLayout = el(
24244
24278
  ]
24245
24279
  ),
24246
24280
  stack({ gap: "sm", className: "rb-team-member-body rb-flex-1 rb-min-w-0" }, [
24247
- text({ as: "h3" }, bind("name")),
24281
+ link(
24282
+ {
24283
+ href: { $bind: { from: "profilePath" } },
24284
+ className: "rb-team-member-name-link"
24285
+ },
24286
+ [text({ as: "h3" }, bind("name"))],
24287
+ when("profilePath")
24288
+ ),
24289
+ text({ as: "h3" }, when("profilePath", { not: true }), bind("name")),
24248
24290
  text(
24249
24291
  { as: "p", className: "rb-team-member-role" },
24250
24292
  when("role"),
@@ -24258,12 +24300,18 @@ var teamMemberStackLayout = el(
24258
24300
  ])
24259
24301
  ]
24260
24302
  );
24261
- var gridMembersNode = repeaterFragmentLayout({
24303
+ var manualGridMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
24262
24304
  collectionPath: "content.members",
24263
24305
  itemName: ITEM_NAME2,
24264
24306
  fragments: { teamMember: teamMemberFragment },
24265
24307
  itemGap: "sm"
24266
- });
24308
+ }));
24309
+ var dynamicGridMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
24310
+ collectionPath: "data.members",
24311
+ itemName: ITEM_NAME2,
24312
+ fragments: { teamMember: teamMemberFragment },
24313
+ itemGap: "sm"
24314
+ }));
24267
24315
  var gridVariant = wrapVariant3(
24268
24316
  el(
24269
24317
  "grid",
@@ -24277,22 +24325,29 @@ var gridVariant = wrapVariant3(
24277
24325
  },
24278
24326
  gap: { $bind: { from: "content.gap", fallback: "medium" } }
24279
24327
  },
24280
- [gridMembersNode]
24328
+ [manualGridMembersNode, dynamicGridMembersNode]
24281
24329
  )
24282
24330
  );
24283
- var stackMembersNode = repeaterFragmentLayout({
24331
+ var manualStackMembersNode = when("content.source", manualSourceWhen)(repeaterFragmentLayout({
24284
24332
  collectionPath: "content.members",
24285
24333
  itemName: ITEM_NAME2,
24286
24334
  fragments: { teamMember: teamMemberFragment },
24287
24335
  layoutOverrides: { teamMember: teamMemberStackLayout },
24288
24336
  itemGap: "sm"
24289
- });
24337
+ }));
24338
+ var dynamicStackMembersNode = when("content.source", dynamicSourceWhen)(repeaterFragmentLayout({
24339
+ collectionPath: "data.members",
24340
+ itemName: ITEM_NAME2,
24341
+ fragments: { teamMember: teamMemberFragment },
24342
+ layoutOverrides: { teamMember: teamMemberStackLayout },
24343
+ itemGap: "sm"
24344
+ }));
24290
24345
  var stackVariant = wrapVariant3({
24291
24346
  type: "stack",
24292
24347
  props: {
24293
24348
  gap: { $bind: { from: "content.gap", fallback: "medium" } }
24294
24349
  },
24295
- children: [stackMembersNode]
24350
+ children: [manualStackMembersNode, dynamicStackMembersNode]
24296
24351
  });
24297
24352
  var teamMembersManifest = createBlockManifest({
24298
24353
  id: "block.team-members",
@@ -24307,6 +24362,18 @@ var teamMembersManifest = createBlockManifest({
24307
24362
  required: false,
24308
24363
  maxLength: 120
24309
24364
  }),
24365
+ parseFieldDefinition({
24366
+ id: "source",
24367
+ type: "select",
24368
+ label: "Team members",
24369
+ description: "Choose whether to use the site-wide team or a hand-picked list.",
24370
+ defaultValue: "manual",
24371
+ options: [
24372
+ { value: "manual", label: "Choose manually" },
24373
+ { value: "site_staff", label: "Use all site team members" }
24374
+ ],
24375
+ ui: { intent: "behavior" }
24376
+ }),
24310
24377
  parseFieldDefinition({
24311
24378
  id: "layoutAlign",
24312
24379
  type: "select",
@@ -24409,18 +24476,24 @@ var teamMembersManifest = createBlockManifest({
24409
24476
  ],
24410
24477
  ui: { intent: "display" }
24411
24478
  }),
24412
- fragmentsToRepeaterField(
24413
- "members",
24414
- "Team members",
24415
- { teamMember: teamMemberFragment },
24416
- {
24417
- minItems: 0,
24418
- maxItems: 50,
24419
- itemLabel: "Team member",
24420
- itemLabelSource: "name",
24421
- description: "Add people to this section."
24479
+ {
24480
+ ...fragmentsToRepeaterField(
24481
+ "members",
24482
+ "Team members",
24483
+ { teamMember: teamMemberFragment },
24484
+ {
24485
+ minItems: 0,
24486
+ maxItems: 50,
24487
+ itemLabel: "Team member",
24488
+ itemLabelSource: "name",
24489
+ description: "Add people to this section."
24490
+ }
24491
+ ),
24492
+ ui: {
24493
+ intent: "content",
24494
+ visibleWhen: { field: "source", equals: "manual" }
24422
24495
  }
24423
- )
24496
+ }
24424
24497
  ],
24425
24498
  layout: gridVariant,
24426
24499
  variants: {
@@ -24446,7 +24519,20 @@ var teamMembersManifest = createBlockManifest({
24446
24519
  styleTokens: { spacing: "lg" }
24447
24520
  });
24448
24521
  var teamMembersBlockDefinition = {
24449
- manifest: teamMembersManifest
24522
+ manifest: teamMembersManifest,
24523
+ dataSchemas: {
24524
+ members: teamMembersDataSchema
24525
+ },
24526
+ dataLoaders: {
24527
+ members: {
24528
+ endpoint: "listPublicTeamMembers",
24529
+ params: {
24530
+ siteId: { $bind: { from: "$root.siteId" } },
24531
+ stage: { $bind: { from: "$root.previewStage", fallback: "published" } }
24532
+ },
24533
+ mode: "server"
24534
+ }
24535
+ }
24450
24536
  };
24451
24537
 
24452
24538
  // ../blocks/src/system/runtime/nodes/location-map.shared.ts
@@ -27407,7 +27493,7 @@ function SpinnerNode({
27407
27493
  }
27408
27494
 
27409
27495
  // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
27410
- import { z as z57 } from "zod";
27496
+ import { z as z58 } from "zod";
27411
27497
 
27412
27498
  // ../blocks/src/system/runtime/nodes/booking-form.state.ts
27413
27499
  function toTrimmedString(value) {
@@ -27449,14 +27535,14 @@ function normalizeBookingServices(services) {
27449
27535
  }
27450
27536
 
27451
27537
  // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
27452
- var bookingFieldOptionSchema = z57.object({
27453
- value: z57.string(),
27454
- label: z57.string()
27455
- });
27456
- var bookingFieldSchema = z57.object({
27457
- id: z57.string(),
27458
- label: z57.string(),
27459
- type: z57.enum([
27538
+ var bookingFieldOptionSchema = z58.object({
27539
+ value: z58.string(),
27540
+ label: z58.string()
27541
+ });
27542
+ var bookingFieldSchema = z58.object({
27543
+ id: z58.string(),
27544
+ label: z58.string(),
27545
+ type: z58.enum([
27460
27546
  "text",
27461
27547
  "email",
27462
27548
  "textarea",
@@ -27470,132 +27556,132 @@ var bookingFieldSchema = z57.object({
27470
27556
  "date",
27471
27557
  "time"
27472
27558
  ]),
27473
- required: z57.boolean().optional(),
27474
- placeholder: z57.string().optional(),
27475
- helpText: z57.string().optional(),
27476
- options: z57.array(bookingFieldOptionSchema).optional(),
27477
- multiple: z57.boolean().optional(),
27478
- minLength: z57.number().optional(),
27479
- maxLength: z57.number().optional(),
27480
- pattern: z57.string().optional(),
27481
- min: z57.number().optional(),
27482
- max: z57.number().optional()
27483
- });
27484
- var bookingSettingsSchema = z57.object({
27485
- type: z57.literal("booking"),
27486
- serviceId: z57.string().optional(),
27487
- serviceIds: z57.array(z57.string()).optional(),
27488
- resourceId: z57.string().optional(),
27489
- requiresApproval: z57.boolean().optional(),
27490
- successMessage: z57.string().optional()
27491
- });
27492
- var bookingSourceFormSchema = z57.object({
27493
- id: z57.string(),
27494
- siteId: z57.string(),
27495
- userId: z57.string(),
27496
- name: z57.string(),
27497
- schemaJson: z57.object({
27498
- version: z57.string().optional(),
27499
- fields: z57.array(bookingFieldSchema).optional()
27559
+ required: z58.boolean().optional(),
27560
+ placeholder: z58.string().optional(),
27561
+ helpText: z58.string().optional(),
27562
+ options: z58.array(bookingFieldOptionSchema).optional(),
27563
+ multiple: z58.boolean().optional(),
27564
+ minLength: z58.number().optional(),
27565
+ maxLength: z58.number().optional(),
27566
+ pattern: z58.string().optional(),
27567
+ min: z58.number().optional(),
27568
+ max: z58.number().optional()
27569
+ });
27570
+ var bookingSettingsSchema = z58.object({
27571
+ type: z58.literal("booking"),
27572
+ serviceId: z58.string().optional(),
27573
+ serviceIds: z58.array(z58.string()).optional(),
27574
+ resourceId: z58.string().optional(),
27575
+ requiresApproval: z58.boolean().optional(),
27576
+ successMessage: z58.string().optional()
27577
+ });
27578
+ var bookingSourceFormSchema = z58.object({
27579
+ id: z58.string(),
27580
+ siteId: z58.string(),
27581
+ userId: z58.string(),
27582
+ name: z58.string(),
27583
+ schemaJson: z58.object({
27584
+ version: z58.string().optional(),
27585
+ fields: z58.array(bookingFieldSchema).optional()
27500
27586
  }).optional(),
27501
27587
  settingsJson: bookingSettingsSchema.optional(),
27502
- createdAt: z57.string(),
27503
- updatedAt: z57.string()
27588
+ createdAt: z58.string(),
27589
+ updatedAt: z58.string()
27504
27590
  });
27505
- var blockBookingPaymentTermsAvailabilitySchema = z57.union([
27506
- z57.object({
27507
- kind: z57.literal("available"),
27591
+ var blockBookingPaymentTermsAvailabilitySchema = z58.union([
27592
+ z58.object({
27593
+ kind: z58.literal("available"),
27508
27594
  paymentTerms: blockBookingPaymentTermsSchema
27509
27595
  }),
27510
- z57.object({
27511
- kind: z57.literal("pending_stripe_setup"),
27596
+ z58.object({
27597
+ kind: z58.literal("pending_stripe_setup"),
27512
27598
  paymentTerms: blockBookingPaymentTermsSchema,
27513
- reason: z57.literal("online_payment_configured_before_launch")
27599
+ reason: z58.literal("online_payment_configured_before_launch")
27514
27600
  })
27515
27601
  ]);
27516
- var bookingServiceSchema = z57.object({
27517
- id: z57.string(),
27518
- siteId: z57.string(),
27519
- title: z57.string(),
27520
- description: z57.string().nullable().optional().transform((value) => value ?? void 0),
27521
- durationMinutes: z57.number().optional(),
27522
- priceAmount: z57.number().nullable().optional(),
27523
- priceCurrency: z57.string().nullable().optional(),
27602
+ var bookingServiceSchema = z58.object({
27603
+ id: z58.string(),
27604
+ siteId: z58.string(),
27605
+ title: z58.string(),
27606
+ description: z58.string().nullable().optional().transform((value) => value ?? void 0),
27607
+ durationMinutes: z58.number().optional(),
27608
+ priceAmount: z58.number().nullable().optional(),
27609
+ priceCurrency: z58.string().nullable().optional(),
27524
27610
  paymentTerms: blockBookingPaymentTermsSchema.optional(),
27525
27611
  paymentTermsAvailability: blockBookingPaymentTermsAvailabilitySchema.optional()
27526
27612
  });
27527
- var bookingServicesSourceSchema = z57.union([
27528
- z57.array(bookingServiceSchema),
27529
- z57.object({
27530
- services: z57.array(bookingServiceSchema).optional()
27613
+ var bookingServicesSourceSchema = z58.union([
27614
+ z58.array(bookingServiceSchema),
27615
+ z58.object({
27616
+ services: z58.array(bookingServiceSchema).optional()
27531
27617
  }),
27532
- z57.record(z57.string(), bookingServiceSchema)
27618
+ z58.record(z58.string(), bookingServiceSchema)
27533
27619
  ]);
27534
- var bookingConfigSchema = z57.object({
27535
- id: z57.string(),
27536
- name: z57.string(),
27537
- slug: z57.string(),
27620
+ var bookingConfigSchema = z58.object({
27621
+ id: z58.string(),
27622
+ name: z58.string(),
27623
+ slug: z58.string(),
27538
27624
  settings: bookingSettingsSchema.optional(),
27539
- schema: z57.object({
27540
- version: z57.string().optional(),
27541
- fields: z57.array(bookingFieldSchema)
27625
+ schema: z58.object({
27626
+ version: z58.string().optional(),
27627
+ fields: z58.array(bookingFieldSchema)
27542
27628
  }).optional()
27543
27629
  });
27544
- var bookingSourceSchema = z57.object({
27545
- siteId: z57.string().optional(),
27546
- apiBaseUrl: z57.string().optional(),
27547
- portalToken: z57.string().nullable().optional(),
27548
- formId: z57.string().optional(),
27549
- serviceId: z57.string().nullable().optional(),
27550
- resourceId: z57.string().nullable().optional(),
27551
- initialData: z57.record(z57.string(), z57.unknown()).nullable().optional(),
27552
- noticeMessage: z57.string().nullable().optional(),
27553
- requiresServiceSelection: z57.boolean().optional(),
27554
- requiresResourceSelection: z57.boolean().optional(),
27555
- shouldAutoSelectSingleResource: z57.boolean().optional(),
27556
- rebookContext: z57.object({
27557
- kind: z57.literal("portal_rebook")
27630
+ var bookingSourceSchema = z58.object({
27631
+ siteId: z58.string().optional(),
27632
+ apiBaseUrl: z58.string().optional(),
27633
+ portalToken: z58.string().nullable().optional(),
27634
+ formId: z58.string().optional(),
27635
+ serviceId: z58.string().nullable().optional(),
27636
+ resourceId: z58.string().nullable().optional(),
27637
+ initialData: z58.record(z58.string(), z58.unknown()).nullable().optional(),
27638
+ noticeMessage: z58.string().nullable().optional(),
27639
+ requiresServiceSelection: z58.boolean().optional(),
27640
+ requiresResourceSelection: z58.boolean().optional(),
27641
+ shouldAutoSelectSingleResource: z58.boolean().optional(),
27642
+ rebookContext: z58.object({
27643
+ kind: z58.literal("portal_rebook")
27558
27644
  }).nullable().optional(),
27559
- submitLabel: z57.string().nullable().optional(),
27560
- successMessage: z57.string().nullable().optional(),
27645
+ submitLabel: z58.string().nullable().optional(),
27646
+ successMessage: z58.string().nullable().optional(),
27561
27647
  form: bookingSourceFormSchema.nullable().optional(),
27562
27648
  services: bookingServicesSourceSchema.nullable().optional(),
27563
- spamProtectionEnabled: z57.boolean().optional(),
27564
- className: z57.string().nullable().optional()
27565
- });
27566
- var bookingDisplaySchema = z57.object({
27567
- kind: z57.literal("booking-form"),
27568
- state: z57.enum(["missing", "ready"]),
27569
- className: z57.string().nullable(),
27570
- submitLabel: z57.string(),
27571
- successMessage: z57.string().nullable(),
27572
- message: z57.string().nullable()
27573
- });
27574
- var bookingHydrationSchema = z57.object({
27575
- formId: z57.string().nullable(),
27576
- serviceId: z57.string().nullable(),
27577
- resourceId: z57.string().nullable(),
27578
- initialData: z57.record(z57.string(), z57.unknown()).nullable().optional(),
27579
- noticeMessage: z57.string().nullable().optional(),
27580
- requiresServiceSelection: z57.boolean().optional(),
27581
- requiresResourceSelection: z57.boolean().optional(),
27582
- shouldAutoSelectSingleResource: z57.boolean().optional(),
27583
- rebookContext: z57.object({
27584
- kind: z57.literal("portal_rebook")
27649
+ spamProtectionEnabled: z58.boolean().optional(),
27650
+ className: z58.string().nullable().optional()
27651
+ });
27652
+ var bookingDisplaySchema = z58.object({
27653
+ kind: z58.literal("booking-form"),
27654
+ state: z58.enum(["missing", "ready"]),
27655
+ className: z58.string().nullable(),
27656
+ submitLabel: z58.string(),
27657
+ successMessage: z58.string().nullable(),
27658
+ message: z58.string().nullable()
27659
+ });
27660
+ var bookingHydrationSchema = z58.object({
27661
+ formId: z58.string().nullable(),
27662
+ serviceId: z58.string().nullable(),
27663
+ resourceId: z58.string().nullable(),
27664
+ initialData: z58.record(z58.string(), z58.unknown()).nullable().optional(),
27665
+ noticeMessage: z58.string().nullable().optional(),
27666
+ requiresServiceSelection: z58.boolean().optional(),
27667
+ requiresResourceSelection: z58.boolean().optional(),
27668
+ shouldAutoSelectSingleResource: z58.boolean().optional(),
27669
+ rebookContext: z58.object({
27670
+ kind: z58.literal("portal_rebook")
27585
27671
  }).nullable().optional(),
27586
27672
  form: bookingConfigSchema.nullable(),
27587
- services: z57.array(bookingServiceSchema),
27588
- spamProtectionEnabled: z57.boolean().optional()
27673
+ services: z58.array(bookingServiceSchema),
27674
+ spamProtectionEnabled: z58.boolean().optional()
27589
27675
  });
27590
- var bookingRenderSchema = z57.object({
27676
+ var bookingRenderSchema = z58.object({
27591
27677
  display: bookingDisplaySchema,
27592
27678
  hydration: bookingHydrationSchema
27593
27679
  });
27594
27680
  var bookingFormIslandMetaCodec = createZodCodec(
27595
- z57.object({
27596
- siteId: z57.string().optional(),
27597
- apiBaseUrl: z57.string().optional(),
27598
- portalToken: z57.string().nullable().optional()
27681
+ z58.object({
27682
+ siteId: z58.string().optional(),
27683
+ apiBaseUrl: z58.string().optional(),
27684
+ portalToken: z58.string().nullable().optional()
27599
27685
  })
27600
27686
  );
27601
27687
  var bookingFormIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -27851,6 +27937,12 @@ function CoursePricingDisplay({
27851
27937
 
27852
27938
  // ../blocks/src/system/runtime/nodes/event-details/view.tsx
27853
27939
  import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
27940
+ function TeamMemberName({
27941
+ name,
27942
+ profilePath
27943
+ }) {
27944
+ return profilePath ? /* @__PURE__ */ jsx26("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx26("strong", { children: name }) }) : /* @__PURE__ */ jsx26("strong", { children: name });
27945
+ }
27854
27946
  function EventDetailsView({
27855
27947
  selection,
27856
27948
  showVenue,
@@ -27914,7 +28006,13 @@ function EventDetailsView({
27914
28006
  teamMembers.length > 0 ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
27915
28007
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Team members" }),
27916
28008
  /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs13("div", { children: [
27917
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: teamMember.name }) }),
28009
+ /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26(
28010
+ TeamMemberName,
28011
+ {
28012
+ name: teamMember.name,
28013
+ profilePath: teamMember.profilePath
28014
+ }
28015
+ ) }),
27918
28016
  teamMember.summary ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
27919
28017
  ] }, teamMember.id)) })
27920
28018
  ] }) : null,
@@ -28260,6 +28358,12 @@ function formatCourseDateRange(range) {
28260
28358
 
28261
28359
  // ../blocks/src/system/runtime/nodes/course-details/view.tsx
28262
28360
  import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
28361
+ function TeamMemberName2({
28362
+ name,
28363
+ profilePath
28364
+ }) {
28365
+ return profilePath ? /* @__PURE__ */ jsx30("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx30("strong", { children: name }) }) : /* @__PURE__ */ jsx30("strong", { children: name });
28366
+ }
28263
28367
  function parseLimit2(value, fallback2) {
28264
28368
  if (value === "all") return "all";
28265
28369
  const n = typeof value === "string" ? Number.parseInt(value, 10) : typeof value === "number" ? value : NaN;
@@ -28317,7 +28421,13 @@ function CourseDetailsView(props2) {
28317
28421
  teamMembers.length > 0 && /* @__PURE__ */ jsxs17("div", { children: [
28318
28422
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Team members" }),
28319
28423
  /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs17("div", { children: [
28320
- /* @__PURE__ */ jsx30("p", { children: /* @__PURE__ */ jsx30("strong", { children: teamMember.name }) }),
28424
+ /* @__PURE__ */ jsx30("p", { children: /* @__PURE__ */ jsx30(
28425
+ TeamMemberName2,
28426
+ {
28427
+ name: teamMember.name,
28428
+ profilePath: teamMember.profilePath
28429
+ }
28430
+ ) }),
28321
28431
  teamMember.summary && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: teamMember.summary })
28322
28432
  ] }, teamMember.id)) })
28323
28433
  ] })
@@ -28492,88 +28602,88 @@ var EventSpotlight = ({
28492
28602
  };
28493
28603
 
28494
28604
  // ../blocks/src/system/runtime/nodes/events/EventCombined.interactive.ts
28495
- import { z as z58 } from "zod";
28496
- var eventBlockKindSchema3 = z58.enum(eventBlockKindValues);
28497
- var eventSurfaceScopeSchema3 = z58.enum(eventSurfaceScopeValues);
28498
- var eventScheduleScopeSchema4 = z58.enum(eventScheduleScopeValues);
28499
- var eventCombinedSourceSchema = z58.object(
28605
+ import { z as z59 } from "zod";
28606
+ var eventBlockKindSchema3 = z59.enum(eventBlockKindValues);
28607
+ var eventSurfaceScopeSchema3 = z59.enum(eventSurfaceScopeValues);
28608
+ var eventScheduleScopeSchema4 = z59.enum(eventScheduleScopeValues);
28609
+ var eventCombinedSourceSchema = z59.object(
28500
28610
  {
28501
- events: z58.array(publicEventSchema).nullable().optional(),
28502
- siteId: z58.string(),
28503
- apiBaseUrl: z58.string().optional(),
28611
+ events: z59.array(publicEventSchema).nullable().optional(),
28612
+ siteId: z59.string(),
28613
+ apiBaseUrl: z59.string().optional(),
28504
28614
  stage: previewStageSchema.optional(),
28505
28615
  listLayout: eventLayoutSchema.optional(),
28506
28616
  listColumns: columnOptionSchema.optional(),
28507
- eventsPerPage: z58.string().optional(),
28508
- compactEventsPerPage: z58.string().optional(),
28509
- loadMoreText: z58.string().optional(),
28617
+ eventsPerPage: z59.string().optional(),
28618
+ compactEventsPerPage: z59.string().optional(),
28619
+ loadMoreText: z59.string().optional(),
28510
28620
  startOfWeek: weekStartSchema.optional(),
28511
28621
  calendarTabViews: calendarTabViewsSchema.optional(),
28512
- showFilters: z58.boolean().nullable().optional(),
28622
+ showFilters: z59.boolean().nullable().optional(),
28513
28623
  showCategoryFilter: filterAutoShowSchema.optional(),
28514
- showVenueFilter: z58.boolean().nullable().optional(),
28515
- showStaffFilter: z58.boolean().nullable().optional(),
28624
+ showVenueFilter: z59.boolean().nullable().optional(),
28625
+ showStaffFilter: z59.boolean().nullable().optional(),
28516
28626
  eventKind: eventBlockKindSchema3.nullable().optional(),
28517
28627
  eventSurface: eventSurfaceScopeSchema3.nullable().optional(),
28518
- filterEventPresets: z58.union([z58.string(), z58.array(z58.string())]).nullable().optional(),
28628
+ filterEventPresets: z59.union([z59.string(), z59.array(z59.string())]).nullable().optional(),
28519
28629
  scheduleScope: eventScheduleScopeSchema4.nullable().optional(),
28520
- filterCategoryIds: z58.union([z58.string(), z58.array(z58.string())]).nullable().optional(),
28521
- filterStaffMemberId: z58.string().nullable().optional(),
28522
- filterVenueId: z58.string().nullable().optional(),
28523
- showVenue: z58.boolean().nullable().optional(),
28524
- showMap: z58.boolean().nullable().optional(),
28525
- showCapacity: z58.boolean().nullable().optional(),
28630
+ filterCategoryIds: z59.union([z59.string(), z59.array(z59.string())]).nullable().optional(),
28631
+ filterStaffMemberId: z59.string().nullable().optional(),
28632
+ filterVenueId: z59.string().nullable().optional(),
28633
+ showVenue: z59.boolean().nullable().optional(),
28634
+ showMap: z59.boolean().nullable().optional(),
28635
+ showCapacity: z59.boolean().nullable().optional(),
28526
28636
  buttonVariant: eventButtonVariantSchema.optional(),
28527
- buttonText: z58.string().optional(),
28528
- emptyMessage: z58.string().optional(),
28529
- className: z58.string().optional()
28637
+ buttonText: z59.string().optional(),
28638
+ emptyMessage: z59.string().optional(),
28639
+ className: z59.string().optional()
28530
28640
  }
28531
28641
  );
28532
- var eventCombinedDisplaySchema = z58.object({
28533
- kind: z58.literal("event-combined"),
28534
- className: z58.string().nullable(),
28535
- events: z58.array(publicEventSchema),
28642
+ var eventCombinedDisplaySchema = z59.object({
28643
+ kind: z59.literal("event-combined"),
28644
+ className: z59.string().nullable(),
28645
+ events: z59.array(publicEventSchema),
28536
28646
  listLayout: eventLayoutSchema,
28537
28647
  listColumns: columnOptionSchema,
28538
- eventsPerPage: z58.string(),
28539
- loadMoreText: z58.string(),
28648
+ eventsPerPage: z59.string(),
28649
+ loadMoreText: z59.string(),
28540
28650
  startOfWeek: weekStartSchema,
28541
28651
  calendarTabViews: calendarTabViewsSchema,
28542
- showFilters: z58.boolean(),
28652
+ showFilters: z59.boolean(),
28543
28653
  showCategoryFilter: filterAutoShowSchema,
28544
- showVenueFilter: z58.boolean(),
28545
- showStaffFilter: z58.boolean(),
28654
+ showVenueFilter: z59.boolean(),
28655
+ showStaffFilter: z59.boolean(),
28546
28656
  eventKind: eventBlockKindSchema3,
28547
28657
  eventSurface: eventSurfaceScopeSchema3,
28548
- filterEventPresets: z58.string().nullable(),
28658
+ filterEventPresets: z59.string().nullable(),
28549
28659
  scheduleScope: eventScheduleScopeSchema4,
28550
- filterCategoryIds: z58.string().nullable(),
28551
- filterStaffMemberId: z58.string().nullable(),
28552
- filterVenueId: z58.string().nullable(),
28553
- showVenue: z58.boolean(),
28554
- showMap: z58.boolean(),
28555
- showCapacity: z58.boolean(),
28660
+ filterCategoryIds: z59.string().nullable(),
28661
+ filterStaffMemberId: z59.string().nullable(),
28662
+ filterVenueId: z59.string().nullable(),
28663
+ showVenue: z59.boolean(),
28664
+ showMap: z59.boolean(),
28665
+ showCapacity: z59.boolean(),
28556
28666
  buttonVariant: eventButtonVariantSchema,
28557
- buttonText: z58.string(),
28558
- emptyMessage: z58.string()
28667
+ buttonText: z59.string(),
28668
+ emptyMessage: z59.string()
28559
28669
  });
28560
- var eventCombinedHydrationSchema = z58.object({
28561
- siteId: z58.string(),
28670
+ var eventCombinedHydrationSchema = z59.object({
28671
+ siteId: z59.string(),
28562
28672
  stage: previewStageSchema.optional(),
28563
- prefetchedEvents: z58.boolean(),
28673
+ prefetchedEvents: z59.boolean(),
28564
28674
  eventKind: eventBlockKindSchema3,
28565
28675
  eventSurface: eventSurfaceScopeSchema3,
28566
- filterEventPresets: z58.string().nullable(),
28676
+ filterEventPresets: z59.string().nullable(),
28567
28677
  scheduleScope: eventScheduleScopeSchema4
28568
28678
  });
28569
- var eventCombinedRenderSchema = z58.object({
28679
+ var eventCombinedRenderSchema = z59.object({
28570
28680
  display: eventCombinedDisplaySchema,
28571
28681
  hydration: eventCombinedHydrationSchema
28572
28682
  });
28573
28683
  var eventCombinedIslandMetaCodec = createZodCodec(
28574
- z58.object({
28575
- siteId: z58.string(),
28576
- apiBaseUrl: z58.string().optional(),
28684
+ z59.object({
28685
+ siteId: z59.string(),
28686
+ apiBaseUrl: z59.string().optional(),
28577
28687
  stage: previewStageSchema.optional()
28578
28688
  })
28579
28689
  );
@@ -46170,6 +46280,7 @@ var SUPPORTED_LOADER_ENDPOINTS = [
46170
46280
  "listPublicEvents",
46171
46281
  "getPublicEventDetails",
46172
46282
  "listPublicCourses",
46283
+ "listPublicTeamMembers",
46173
46284
  "listPublicProducts",
46174
46285
  "listPublicPasses",
46175
46286
  "listPublicMemberships",
@@ -47032,13 +47143,150 @@ var ENDPOINT_DEFINITIONS = {
47032
47143
  "server:internal_error"
47033
47144
  ]
47034
47145
  },
47035
- deleteAppointmentResource: {
47146
+ removeAppointmentResource: {
47036
47147
  path: "/sites/{siteId}/bookings/resources/{resourceId}",
47037
47148
  method: "DELETE",
47038
47149
  auth: "user",
47039
47150
  responseKind: "json",
47040
47151
  errors: ["resource:not_found", "server:internal_error"]
47041
47152
  },
47153
+ createTeamMemberProfile: {
47154
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile",
47155
+ method: "POST",
47156
+ auth: "user",
47157
+ responseKind: "json",
47158
+ errors: [
47159
+ "validation:invalid_input",
47160
+ "resource:not_found",
47161
+ "resource:conflict",
47162
+ "server:internal_error"
47163
+ ]
47164
+ },
47165
+ updateTeamMemberProfilePolicy: {
47166
+ path: "/sites/{siteId}/bookings/resources/profile-policy",
47167
+ method: "PUT",
47168
+ auth: "user",
47169
+ responseKind: "json",
47170
+ errors: ["validation:invalid_input", "server:internal_error"]
47171
+ },
47172
+ updateTeamMemberProfileContent: {
47173
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/content",
47174
+ method: "PUT",
47175
+ tags: [
47176
+ "site-{siteId}",
47177
+ "content-{siteId}-team-member",
47178
+ "content-entry-{entryId}"
47179
+ ],
47180
+ auth: "user",
47181
+ responseKind: "json",
47182
+ errors: [
47183
+ "validation:invalid_input",
47184
+ "resource:not_found",
47185
+ "resource:conflict",
47186
+ "server:internal_error"
47187
+ ]
47188
+ },
47189
+ publishTeamMemberProfile: {
47190
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/publish",
47191
+ method: "POST",
47192
+ tags: [
47193
+ "site-{siteId}",
47194
+ "content-{siteId}-team-member",
47195
+ "content-entry-{entryId}"
47196
+ ],
47197
+ auth: "user",
47198
+ responseKind: "json",
47199
+ errors: [
47200
+ "validation:invalid_input",
47201
+ "resource:not_found",
47202
+ "server:internal_error"
47203
+ ]
47204
+ },
47205
+ discardTeamMemberProfileDraft: {
47206
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/discard",
47207
+ method: "POST",
47208
+ tags: [
47209
+ "site-{siteId}",
47210
+ "content-{siteId}-team-member",
47211
+ "content-entry-{entryId}"
47212
+ ],
47213
+ auth: "user",
47214
+ responseKind: "json",
47215
+ errors: [
47216
+ "validation:invalid_input",
47217
+ "resource:not_found",
47218
+ "resource:conflict",
47219
+ "server:internal_error"
47220
+ ]
47221
+ },
47222
+ unpublishTeamMemberProfile: {
47223
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/unpublish",
47224
+ method: "POST",
47225
+ tags: [
47226
+ "site-{siteId}",
47227
+ "content-{siteId}-team-member",
47228
+ "content-entry-{entryId}"
47229
+ ],
47230
+ auth: "user",
47231
+ responseKind: "json",
47232
+ errors: [
47233
+ "validation:invalid_input",
47234
+ "resource:not_found",
47235
+ "resource:conflict",
47236
+ "server:internal_error"
47237
+ ]
47238
+ },
47239
+ scheduleTeamMemberProfile: {
47240
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
47241
+ method: "POST",
47242
+ tags: [
47243
+ "site-{siteId}",
47244
+ "content-{siteId}-team-member",
47245
+ "content-entry-{entryId}"
47246
+ ],
47247
+ auth: "user",
47248
+ responseKind: "json",
47249
+ errors: [
47250
+ "validation:invalid_input",
47251
+ "resource:not_found",
47252
+ "resource:conflict",
47253
+ "server:internal_error"
47254
+ ]
47255
+ },
47256
+ cancelScheduledTeamMemberProfile: {
47257
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/{entryId}/schedule",
47258
+ method: "DELETE",
47259
+ tags: [
47260
+ "site-{siteId}",
47261
+ "content-{siteId}-team-member",
47262
+ "content-entry-{entryId}"
47263
+ ],
47264
+ auth: "user",
47265
+ responseKind: "json",
47266
+ errors: [
47267
+ "validation:invalid_input",
47268
+ "resource:not_found",
47269
+ "resource:conflict",
47270
+ "server:internal_error"
47271
+ ]
47272
+ },
47273
+ updateTeamMemberProfileRouteMetadata: {
47274
+ path: "/sites/{siteId}/bookings/resources/{resourceId}/profile/routes/{routeId}/metadata",
47275
+ method: "PATCH",
47276
+ tags: [
47277
+ TAG_TEMPLATES.siteCollection,
47278
+ TAG_TEMPLATES.siteRoutableContent,
47279
+ TAG_TEMPLATES.routeById
47280
+ ],
47281
+ auth: "user",
47282
+ responseKind: "json",
47283
+ errors: [
47284
+ "validation:invalid_input",
47285
+ "resource:not_found",
47286
+ "resource:conflict",
47287
+ "server:internal_error"
47288
+ ]
47289
+ },
47042
47290
  listAppointmentServices: {
47043
47291
  path: "/sites/{siteId}/bookings/services",
47044
47292
  method: "GET",
@@ -49412,6 +49660,15 @@ var ENDPOINT_DEFINITIONS = {
49412
49660
  auth: "public",
49413
49661
  responseKind: "json"
49414
49662
  },
49663
+ listPublicTeamMembers: {
49664
+ path: "/public/sites/{siteId}/team-members",
49665
+ method: "GET",
49666
+ revalidate: 60,
49667
+ tags: ["public-team-members-{siteId}"],
49668
+ errors: [],
49669
+ auth: "public",
49670
+ responseKind: "json"
49671
+ },
49415
49672
  getPublicCourse: {
49416
49673
  path: "/public/sites/{siteId}/courses/{courseId}",
49417
49674
  method: "GET",
@@ -51703,60 +51960,60 @@ var ENDPOINT_DEFINITIONS = {
51703
51960
  };
51704
51961
 
51705
51962
  // ../api/src/navigation/contracts.ts
51706
- import { z as z59 } from "zod";
51707
- var portalLinkPayloadSchema = z59.object({
51708
- kind: z59.literal("portal"),
51709
- path: z59.string().trim().startsWith("/").optional(),
51710
- labels: z59.object({
51711
- loggedOut: z59.string().trim().min(1).optional(),
51712
- loggedIn: z59.string().trim().min(1).optional()
51963
+ import { z as z60 } from "zod";
51964
+ var portalLinkPayloadSchema = z60.object({
51965
+ kind: z60.literal("portal"),
51966
+ path: z60.string().trim().startsWith("/").optional(),
51967
+ labels: z60.object({
51968
+ loggedOut: z60.string().trim().min(1).optional(),
51969
+ loggedIn: z60.string().trim().min(1).optional()
51713
51970
  }).optional()
51714
51971
  });
51715
- var cartLinkLabelConfigSchema = z59.discriminatedUnion("kind", [
51716
- z59.object({
51717
- kind: z59.literal("icon-only")
51972
+ var cartLinkLabelConfigSchema = z60.discriminatedUnion("kind", [
51973
+ z60.object({
51974
+ kind: z60.literal("icon-only")
51718
51975
  }),
51719
- z59.object({
51720
- kind: z59.literal("icon-with-label"),
51721
- label: z59.string().trim().min(1)
51976
+ z60.object({
51977
+ kind: z60.literal("icon-with-label"),
51978
+ label: z60.string().trim().min(1)
51722
51979
  })
51723
51980
  ]);
51724
- var cartLinkPayloadSchema = z59.object({
51725
- kind: z59.literal("cart"),
51726
- badge: z59.enum(["show-count", "hidden"]),
51981
+ var cartLinkPayloadSchema = z60.object({
51982
+ kind: z60.literal("cart"),
51983
+ badge: z60.enum(["show-count", "hidden"]),
51727
51984
  label: cartLinkLabelConfigSchema
51728
51985
  });
51729
- var internalLinkPayloadSchema = z59.object({
51730
- kind: z59.literal("internal"),
51731
- routeId: z59.string().uuid(),
51732
- entityId: z59.string().uuid(),
51733
- entityType: z59.enum(["page", "content"]),
51734
- href: z59.string().min(1),
51735
- title: z59.string().min(1),
51736
- typeLabel: z59.string().min(1),
51737
- contentTypeKey: z59.string().nullable().optional(),
51738
- contentTypeName: z59.string().nullable().optional(),
51739
- updatedAt: z59.string().nullable().optional()
51986
+ var internalLinkPayloadSchema = z60.object({
51987
+ kind: z60.literal("internal"),
51988
+ routeId: z60.string().uuid(),
51989
+ entityId: z60.string().uuid(),
51990
+ entityType: z60.enum(["page", "content"]),
51991
+ href: z60.string().min(1),
51992
+ title: z60.string().min(1),
51993
+ typeLabel: z60.string().min(1),
51994
+ contentTypeKey: z60.string().nullable().optional(),
51995
+ contentTypeName: z60.string().nullable().optional(),
51996
+ updatedAt: z60.string().nullable().optional()
51740
51997
  }).passthrough();
51741
- var externalLinkSchema2 = z59.object({
51742
- kind: z59.literal("external"),
51998
+ var externalLinkSchema2 = z60.object({
51999
+ kind: z60.literal("external"),
51743
52000
  // Navigation external links are expected to be absolute URLs.
51744
- href: z59.string().url()
52001
+ href: z60.string().url()
51745
52002
  });
51746
- var customLinkSchema2 = z59.object({
51747
- kind: z59.literal("url"),
51748
- href: z59.string().min(1)
52003
+ var customLinkSchema2 = z60.object({
52004
+ kind: z60.literal("url"),
52005
+ href: z60.string().min(1)
51749
52006
  });
51750
- var pageLinkSchema2 = z59.object({
51751
- kind: z59.literal("page"),
51752
- identifier: z59.string().min(1)
52007
+ var pageLinkSchema2 = z60.object({
52008
+ kind: z60.literal("page"),
52009
+ identifier: z60.string().min(1)
51753
52010
  });
51754
- var entryLinkSchema2 = z59.object({
51755
- kind: z59.literal("entry"),
51756
- contentType: z59.string().min(1),
51757
- identifier: z59.string().min(1)
52011
+ var entryLinkSchema2 = z60.object({
52012
+ kind: z60.literal("entry"),
52013
+ contentType: z60.string().min(1),
52014
+ identifier: z60.string().min(1)
51758
52015
  });
51759
- var linkPayloadSchema = z59.discriminatedUnion("kind", [
52016
+ var linkPayloadSchema = z60.discriminatedUnion("kind", [
51760
52017
  internalLinkPayloadSchema,
51761
52018
  pageLinkSchema2,
51762
52019
  entryLinkSchema2,
@@ -51773,27 +52030,27 @@ var navigationLinkInputSchemaOptions = [
51773
52030
  portalLinkPayloadSchema,
51774
52031
  cartLinkPayloadSchema
51775
52032
  ];
51776
- var navigationLinkInputSchema = z59.discriminatedUnion(
52033
+ var navigationLinkInputSchema = z60.discriminatedUnion(
51777
52034
  "kind",
51778
52035
  navigationLinkInputSchemaOptions
51779
52036
  );
51780
52037
 
51781
52038
  // ../api/src/sdkConfig/contracts.ts
51782
- import { z as z60 } from "zod";
52039
+ import { z as z61 } from "zod";
51783
52040
  function unsafeRetypeZodSchema(schema) {
51784
52041
  return schema;
51785
52042
  }
51786
- var navIdListSchema = z60.preprocess((value) => {
52043
+ var navIdListSchema = z61.preprocess((value) => {
51787
52044
  if (!Array.isArray(value)) return void 0;
51788
52045
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
51789
52046
  return filtered.length > 0 ? filtered : void 0;
51790
- }, z60.array(z60.string()).max(200).optional());
51791
- var dashboardNavVisibilityBaseSchema = z60.object({
51792
- mode: z60.enum(["augment", "restrict"]).optional(),
52047
+ }, z61.array(z61.string()).max(200).optional());
52048
+ var dashboardNavVisibilityBaseSchema = z61.object({
52049
+ mode: z61.enum(["augment", "restrict"]).optional(),
51793
52050
  allowIds: navIdListSchema,
51794
52051
  denyIds: navIdListSchema
51795
52052
  }).strip();
51796
- var dashboardNavVisibilityRolesSchema = z60.object({
52053
+ var dashboardNavVisibilityRolesSchema = z61.object({
51797
52054
  administrator: dashboardNavVisibilityBaseSchema.optional(),
51798
52055
  editor: dashboardNavVisibilityBaseSchema.optional(),
51799
52056
  team_member: dashboardNavVisibilityBaseSchema.optional(),
@@ -51802,57 +52059,57 @@ var dashboardNavVisibilityRolesSchema = z60.object({
51802
52059
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
51803
52060
  roles: dashboardNavVisibilityRolesSchema
51804
52061
  }).strip();
51805
- var dashboardNavigationConfigSchema = z60.object({
52062
+ var dashboardNavigationConfigSchema = z61.object({
51806
52063
  siteNav: dashboardNavVisibilitySchema.optional(),
51807
52064
  settingsNav: dashboardNavVisibilitySchema.optional()
51808
52065
  }).strip();
51809
- var dashboardConfigSchema = z60.object({
51810
- previewEditingEnabled: z60.boolean().optional(),
52066
+ var dashboardConfigSchema = z61.object({
52067
+ previewEditingEnabled: z61.boolean().optional(),
51811
52068
  navigation: dashboardNavigationConfigSchema.optional()
51812
52069
  }).strip();
51813
52070
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
51814
52071
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
51815
- var sdkLoaderEndpointSchema = z60.enum(SUPPORTED_LOADER_ENDPOINTS);
51816
- var loaderParamBindingSchema = z60.object({
51817
- $bind: z60.object({
51818
- from: z60.string().min(1, "Binding path is required"),
51819
- fallback: z60.string().optional()
52072
+ var sdkLoaderEndpointSchema = z61.enum(SUPPORTED_LOADER_ENDPOINTS);
52073
+ var loaderParamBindingSchema = z61.object({
52074
+ $bind: z61.object({
52075
+ from: z61.string().min(1, "Binding path is required"),
52076
+ fallback: z61.string().optional()
51820
52077
  })
51821
52078
  });
51822
- var loaderParamValueSchema = z60.union([
51823
- z60.string(),
51824
- z60.number(),
51825
- z60.boolean(),
52079
+ var loaderParamValueSchema = z61.union([
52080
+ z61.string(),
52081
+ z61.number(),
52082
+ z61.boolean(),
51826
52083
  loaderParamBindingSchema
51827
52084
  ]);
51828
- var sdkConfigLoaderSchema = z60.object({
52085
+ var sdkConfigLoaderSchema = z61.object({
51829
52086
  endpoint: sdkLoaderEndpointSchema,
51830
- params: z60.record(z60.string(), loaderParamValueSchema),
51831
- mode: z60.enum(["server", "client"]).default("server")
52087
+ params: z61.record(z61.string(), loaderParamValueSchema),
52088
+ mode: z61.enum(["server", "client"]).default("server")
51832
52089
  });
51833
- var sdkDataLoadersSchema = z60.record(z60.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
51834
- var sdkCustomBlockIdSchema = z60.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
52090
+ var sdkDataLoadersSchema = z61.record(z61.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
52091
+ var sdkCustomBlockIdSchema = z61.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
51835
52092
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
51836
52093
  }).transform((value) => value);
51837
- var sdkCustomBlockInputSchema = z60.object({
52094
+ var sdkCustomBlockInputSchema = z61.object({
51838
52095
  id: sdkCustomBlockIdSchema,
51839
- title: z60.string().min(1),
51840
- titleSource: z60.union([z60.string().min(1), z60.array(z60.string().min(1)).min(1)]).optional(),
51841
- description: z60.string().optional(),
52096
+ title: z61.string().min(1),
52097
+ titleSource: z61.union([z61.string().min(1), z61.array(z61.string().min(1)).min(1)]).optional(),
52098
+ description: z61.string().optional(),
51842
52099
  category: blockCategoryEnum,
51843
- icon: z60.string().optional(),
51844
- tags: z60.array(z60.string()).optional(),
52100
+ icon: z61.string().optional(),
52101
+ tags: z61.array(z61.string()).optional(),
51845
52102
  fields: fieldDefinitionInputSchema.array().min(1),
51846
52103
  dataLoaders: sdkDataLoadersSchema,
51847
52104
  layout: NodeSchema.optional(),
51848
- variants: z60.record(z60.string().min(1), NodeSchema).optional(),
51849
- defaultVariant: z60.string().min(1).optional(),
51850
- variantOptions: z60.record(
51851
- z60.string().min(1),
51852
- z60.object({
51853
- label: z60.string().min(1).optional(),
51854
- description: z60.string().min(1).optional(),
51855
- icon: z60.string().min(1).optional()
52105
+ variants: z61.record(z61.string().min(1), NodeSchema).optional(),
52106
+ defaultVariant: z61.string().min(1).optional(),
52107
+ variantOptions: z61.record(
52108
+ z61.string().min(1),
52109
+ z61.object({
52110
+ label: z61.string().min(1).optional(),
52111
+ description: z61.string().min(1).optional(),
52112
+ icon: z61.string().min(1).optional()
51856
52113
  })
51857
52114
  ).optional()
51858
52115
  }).superRefine((data, ctx) => {
@@ -51862,7 +52119,7 @@ var sdkCustomBlockInputSchema = z60.object({
51862
52119
  const exists = data.fields.some((field) => field.id === source);
51863
52120
  if (!exists) {
51864
52121
  ctx.addIssue({
51865
- code: z60.ZodIssueCode.custom,
52122
+ code: z61.ZodIssueCode.custom,
51866
52123
  message: `titleSource must reference a valid field ID (got "${source}")`,
51867
52124
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
51868
52125
  });
@@ -51871,7 +52128,7 @@ var sdkCustomBlockInputSchema = z60.object({
51871
52128
  }
51872
52129
  if (data.layout && data.variants) {
51873
52130
  ctx.addIssue({
51874
- code: z60.ZodIssueCode.custom,
52131
+ code: z61.ZodIssueCode.custom,
51875
52132
  message: "Custom block must define either `layout` or `variants`, not both",
51876
52133
  path: ["variants"]
51877
52134
  });
@@ -51880,14 +52137,14 @@ var sdkCustomBlockInputSchema = z60.object({
51880
52137
  const keys = Object.keys(data.variants);
51881
52138
  if (keys.length === 0) {
51882
52139
  ctx.addIssue({
51883
- code: z60.ZodIssueCode.custom,
52140
+ code: z61.ZodIssueCode.custom,
51884
52141
  message: "`variants` must contain at least one variant key",
51885
52142
  path: ["variants"]
51886
52143
  });
51887
52144
  }
51888
52145
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
51889
52146
  ctx.addIssue({
51890
- code: z60.ZodIssueCode.custom,
52147
+ code: z61.ZodIssueCode.custom,
51891
52148
  message: "`defaultVariant` must be a key present in `variants`",
51892
52149
  path: ["defaultVariant"]
51893
52150
  });
@@ -51896,7 +52153,7 @@ var sdkCustomBlockInputSchema = z60.object({
51896
52153
  for (const key of Object.keys(data.variantOptions)) {
51897
52154
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
51898
52155
  ctx.addIssue({
51899
- code: z60.ZodIssueCode.custom,
52156
+ code: z61.ZodIssueCode.custom,
51900
52157
  message: "`variantOptions` key must exist in `variants`",
51901
52158
  path: ["variantOptions", key]
51902
52159
  });
@@ -51905,74 +52162,74 @@ var sdkCustomBlockInputSchema = z60.object({
51905
52162
  }
51906
52163
  }
51907
52164
  });
51908
- var sdkBlockFieldExtensionInputSchema = z60.object({
52165
+ var sdkBlockFieldExtensionInputSchema = z61.object({
51909
52166
  fields: fieldDefinitionInputSchema.array().min(1)
51910
52167
  });
51911
- var sdkBlockFieldExtensionsInputSchema = z60.record(
51912
- z60.string().min(1),
52168
+ var sdkBlockFieldExtensionsInputSchema = z61.record(
52169
+ z61.string().min(1),
51913
52170
  sdkBlockFieldExtensionInputSchema
51914
52171
  );
51915
- var sdkThemePaletteSchema = z60.record(z60.string(), z60.string());
51916
- var sdkThemeConfigSchema = z60.object({
52172
+ var sdkThemePaletteSchema = z61.record(z61.string(), z61.string());
52173
+ var sdkThemeConfigSchema = z61.object({
51917
52174
  palette: sdkThemePaletteSchema
51918
52175
  });
51919
- var sdkSectionBackgroundSchema = z60.object({
51920
- id: z60.string().min(1),
51921
- label: z60.string().min(1),
51922
- token: z60.string().min(1)
52176
+ var sdkSectionBackgroundSchema = z61.object({
52177
+ id: z61.string().min(1),
52178
+ label: z61.string().min(1),
52179
+ token: z61.string().min(1)
51923
52180
  });
51924
- var sdkSectionOptionsConfigSchema = z60.object({
51925
- backgroundColor: z60.boolean().optional(),
51926
- backgroundImage: z60.boolean().optional(),
51927
- backgroundGradient: z60.boolean().optional(),
51928
- spacing: z60.union([z60.array(z60.enum(["compact", "default", "spacious"])), z60.boolean()]).optional(),
51929
- textColor: z60.boolean().optional()
52181
+ var sdkSectionOptionsConfigSchema = z61.object({
52182
+ backgroundColor: z61.boolean().optional(),
52183
+ backgroundImage: z61.boolean().optional(),
52184
+ backgroundGradient: z61.boolean().optional(),
52185
+ spacing: z61.union([z61.array(z61.enum(["compact", "default", "spacious"])), z61.boolean()]).optional(),
52186
+ textColor: z61.boolean().optional()
51930
52187
  });
51931
- var sdkContainerOptionsConfigSchema = z60.object({
51932
- maxWidth: z60.union([z60.array(z60.enum(["narrow", "default", "wide", "full"])), z60.boolean()]).optional(),
51933
- alignment: z60.union([z60.array(z60.enum(["left", "center", "right"])), z60.boolean()]).optional()
52188
+ var sdkContainerOptionsConfigSchema = z61.object({
52189
+ maxWidth: z61.union([z61.array(z61.enum(["narrow", "default", "wide", "full"])), z61.boolean()]).optional(),
52190
+ alignment: z61.union([z61.array(z61.enum(["left", "center", "right"])), z61.boolean()]).optional()
51934
52191
  });
51935
- var sdkSiteStyleConfigSchema = z60.object({
51936
- sectionBackgrounds: z60.array(sdkSectionBackgroundSchema).optional(),
52192
+ var sdkSiteStyleConfigSchema = z61.object({
52193
+ sectionBackgrounds: z61.array(sdkSectionBackgroundSchema).optional(),
51937
52194
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
51938
52195
  containerOptions: sdkContainerOptionsConfigSchema.optional()
51939
52196
  });
51940
- var sdkSiteLayoutConfigSchema = z60.object({
51941
- footerBlocks: z60.array(
51942
- z60.object({
51943
- id: z60.string().min(1).optional(),
51944
- kind: z60.string().min(1),
51945
- content: z60.record(z60.string(), z60.unknown()).optional()
52197
+ var sdkSiteLayoutConfigSchema = z61.object({
52198
+ footerBlocks: z61.array(
52199
+ z61.object({
52200
+ id: z61.string().min(1).optional(),
52201
+ kind: z61.string().min(1),
52202
+ content: z61.record(z61.string(), z61.unknown()).optional()
51946
52203
  })
51947
52204
  ).optional()
51948
52205
  });
51949
- var sdkFieldSelectOptionSchema = z60.object({
51950
- value: z60.string(),
51951
- label: z60.string()
52206
+ var sdkFieldSelectOptionSchema = z61.object({
52207
+ value: z61.string(),
52208
+ label: z61.string()
51952
52209
  });
51953
- var sdkBlockFieldConfigSchema = z60.object({
51954
- options: z60.array(sdkFieldSelectOptionSchema).optional()
52210
+ var sdkBlockFieldConfigSchema = z61.object({
52211
+ options: z61.array(sdkFieldSelectOptionSchema).optional()
51955
52212
  });
51956
- var sdkBlockFieldOptionsMapSchema = z60.record(
51957
- z60.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
52213
+ var sdkBlockFieldOptionsMapSchema = z61.record(
52214
+ z61.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
51958
52215
  message: "Block ID must be 'block.*' or 'custom.*' format"
51959
52216
  }),
51960
- z60.record(z60.string().min(1), sdkBlockFieldConfigSchema)
52217
+ z61.record(z61.string().min(1), sdkBlockFieldConfigSchema)
51961
52218
  ).optional();
51962
- var sdkContentTypeTemplateConfigSchema = z60.object({
51963
- blocks: z60.array(z60.unknown())
52219
+ var sdkContentTypeTemplateConfigSchema = z61.object({
52220
+ blocks: z61.array(z61.unknown())
51964
52221
  }).passthrough();
51965
- var sdkContentTypeConfigSchema = z60.object({
51966
- key: z60.string().min(1),
51967
- fields: z60.array(z60.unknown()),
52222
+ var sdkContentTypeConfigSchema = z61.object({
52223
+ key: z61.string().min(1),
52224
+ fields: z61.array(z61.unknown()),
51968
52225
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
51969
52226
  }).passthrough();
51970
- var sdkContentConfigSchema = z60.object({
51971
- contentTypes: z60.array(sdkContentTypeConfigSchema).optional(),
51972
- pages: z60.array(z60.unknown()).optional(),
51973
- entries: z60.array(z60.unknown()).optional(),
51974
- navigationMenus: z60.array(z60.unknown()).optional(),
51975
- settings: z60.unknown().optional()
52227
+ var sdkContentConfigSchema = z61.object({
52228
+ contentTypes: z61.array(sdkContentTypeConfigSchema).optional(),
52229
+ pages: z61.array(z61.unknown()).optional(),
52230
+ entries: z61.array(z61.unknown()).optional(),
52231
+ navigationMenus: z61.array(z61.unknown()).optional(),
52232
+ settings: z61.unknown().optional()
51976
52233
  }).passthrough();
51977
52234
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
51978
52235
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -51985,41 +52242,41 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
51985
52242
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
51986
52243
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
51987
52244
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
51988
- var sdkWorkflowIdSchema = z60.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
52245
+ var sdkWorkflowIdSchema = z61.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
51989
52246
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
51990
52247
  });
51991
- var sdkWorkflowEndpointSchema = z60.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
51992
- var sdkWorkflowManualTriggerSchema = z60.object({
51993
- type: z60.literal("manual")
52248
+ var sdkWorkflowEndpointSchema = z61.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
52249
+ var sdkWorkflowManualTriggerSchema = z61.object({
52250
+ type: z61.literal("manual")
51994
52251
  }).strict();
51995
- var sdkWorkflowTriggerSchema = z60.discriminatedUnion("type", [
52252
+ var sdkWorkflowTriggerSchema = z61.discriminatedUnion("type", [
51996
52253
  sdkWorkflowManualTriggerSchema
51997
52254
  ]);
51998
- var sdkWorkflowConfirmationSchema = z60.object({
51999
- title: z60.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
52000
- body: z60.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
52255
+ var sdkWorkflowConfirmationSchema = z61.object({
52256
+ title: z61.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
52257
+ body: z61.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
52001
52258
  }).strict();
52002
- var sdkWorkflowConfigSchema = z60.object({
52259
+ var sdkWorkflowConfigSchema = z61.object({
52003
52260
  id: sdkWorkflowIdSchema,
52004
- title: z60.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
52005
- description: z60.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
52006
- contentType: z60.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
52261
+ title: z61.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
52262
+ description: z61.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
52263
+ contentType: z61.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
52007
52264
  endpoint: sdkWorkflowEndpointSchema,
52008
- triggers: z60.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
52265
+ triggers: z61.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
52009
52266
  confirmation: sdkWorkflowConfirmationSchema.optional()
52010
52267
  }).strict();
52011
- var sdkWorkflowsSchema = z60.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
52268
+ var sdkWorkflowsSchema = z61.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
52012
52269
  const ids = workflows.map((workflow) => workflow.id);
52013
52270
  return ids.length === new Set(ids).size;
52014
52271
  }, { message: "Workflow IDs must be unique" }).optional();
52015
- var riverbankSiteConfigInputSchema = z60.object({
52016
- siteId: z60.string().uuid(),
52017
- previewUrl: z60.string().url().optional(),
52018
- liveUrl: z60.string().url().optional(),
52272
+ var riverbankSiteConfigInputSchema = z61.object({
52273
+ siteId: z61.string().uuid(),
52274
+ previewUrl: z61.string().url().optional(),
52275
+ liveUrl: z61.string().url().optional(),
52019
52276
  theme: sdkThemeConfigSchema.optional(),
52020
52277
  styles: sdkSiteStyleConfigSchema.optional(),
52021
52278
  layout: sdkSiteLayoutConfigSchema.optional(),
52022
- customBlocks: z60.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
52279
+ customBlocks: z61.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
52023
52280
  const ids = blocks.map((b) => b.id);
52024
52281
  return ids.length === new Set(ids).size;
52025
52282
  }, { message: "Block IDs must be unique" }).optional(),
@@ -52027,43 +52284,43 @@ var riverbankSiteConfigInputSchema = z60.object({
52027
52284
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
52028
52285
  workflows: sdkWorkflowsSchema,
52029
52286
  content: sdkContentConfigSchema.optional(),
52030
- contentDir: z60.string().optional(),
52031
- sync: z60.object({
52032
- existingEntries: z60.enum(["skip", "update"]).optional()
52287
+ contentDir: z61.string().optional(),
52288
+ sync: z61.object({
52289
+ existingEntries: z61.enum(["skip", "update"]).optional()
52033
52290
  }).optional(),
52034
- deploy: z60.object({
52035
- verifyCommand: z60.string().optional(),
52036
- prebuildOutput: z60.string().optional()
52291
+ deploy: z61.object({
52292
+ verifyCommand: z61.string().optional(),
52293
+ prebuildOutput: z61.string().optional()
52037
52294
  }).optional(),
52038
- themeSource: z60.enum(["local", "cms"]).optional(),
52039
- activeTheme: z60.string().optional(),
52040
- enablePortal: z60.boolean().optional(),
52295
+ themeSource: z61.enum(["local", "cms"]).optional(),
52296
+ activeTheme: z61.string().optional(),
52297
+ enablePortal: z61.boolean().optional(),
52041
52298
  dashboard: dashboardConfigSchema.optional()
52042
52299
  }).strict();
52043
- var pushSdkConfigBodySchema = z60.object({
52300
+ var pushSdkConfigBodySchema = z61.object({
52044
52301
  config: riverbankSiteConfigInputSchema,
52045
- forceContentTypes: z60.boolean().optional()
52302
+ forceContentTypes: z61.boolean().optional()
52046
52303
  }).strict();
52047
52304
 
52048
52305
  // ../api/src/siteOnboarding.ts
52049
- import { z as z61 } from "zod";
52306
+ import { z as z62 } from "zod";
52050
52307
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
52051
52308
  configure_appointments: {
52052
52309
  requirementId: "configure_appointments",
52053
52310
  reason: "launch_anyway"
52054
52311
  }
52055
52312
  };
52056
- var acknowledgeLaunchRequirementRequestSchema = z61.discriminatedUnion(
52313
+ var acknowledgeLaunchRequirementRequestSchema = z62.discriminatedUnion(
52057
52314
  "requirementId",
52058
52315
  [
52059
- z61.object({
52060
- requirementId: z61.literal("review_generated_site")
52316
+ z62.object({
52317
+ requirementId: z62.literal("review_generated_site")
52061
52318
  }),
52062
- z61.object({
52063
- requirementId: z61.literal(
52319
+ z62.object({
52320
+ requirementId: z62.literal(
52064
52321
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
52065
52322
  ),
52066
- overrideReason: z61.literal(
52323
+ overrideReason: z62.literal(
52067
52324
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
52068
52325
  )
52069
52326
  })
@@ -52239,79 +52496,79 @@ function isRecord3(value) {
52239
52496
  }
52240
52497
 
52241
52498
  // ../api/src/appointmentSetup.ts
52242
- import { z as z62 } from "zod";
52243
- var appointmentSetupRefSchema = z62.discriminatedUnion("kind", [
52244
- z62.object({ kind: z62.literal("existing"), id: z62.string().min(1) }),
52245
- z62.object({ kind: z62.literal("new"), draftId: z62.string().min(1) })
52499
+ import { z as z63 } from "zod";
52500
+ var appointmentSetupRefSchema = z63.discriminatedUnion("kind", [
52501
+ z63.object({ kind: z63.literal("existing"), id: z63.string().min(1) }),
52502
+ z63.object({ kind: z63.literal("new"), draftId: z63.string().min(1) })
52246
52503
  ]);
52247
- var appointmentSetupVenueChoiceSchema = z62.discriminatedUnion("kind", [
52248
- z62.object({ kind: z62.literal("none") }),
52249
- z62.object({ kind: z62.literal("existing"), venueId: z62.string().min(1) }),
52250
- z62.object({
52251
- kind: z62.literal("create"),
52252
- draftId: z62.string().min(1),
52253
- title: z62.string().trim().min(1),
52254
- description: z62.string().nullable(),
52255
- timezone: z62.string().trim().min(1).nullable(),
52256
- addressJson: z62.record(z62.string(), z62.unknown()),
52257
- locationJson: z62.object({ lat: z62.number(), lng: z62.number() }).nullable()
52504
+ var appointmentSetupVenueChoiceSchema = z63.discriminatedUnion("kind", [
52505
+ z63.object({ kind: z63.literal("none") }),
52506
+ z63.object({ kind: z63.literal("existing"), venueId: z63.string().min(1) }),
52507
+ z63.object({
52508
+ kind: z63.literal("create"),
52509
+ draftId: z63.string().min(1),
52510
+ title: z63.string().trim().min(1),
52511
+ description: z63.string().nullable(),
52512
+ timezone: z63.string().trim().min(1).nullable(),
52513
+ addressJson: z63.record(z63.string(), z63.unknown()),
52514
+ locationJson: z63.object({ lat: z63.number(), lng: z63.number() }).nullable()
52258
52515
  })
52259
52516
  ]);
52260
- var appointmentSetupPaymentDraftSchema = z62.object({
52261
- priceType: z62.union([z62.literal("free"), z62.literal("paid")])
52262
- });
52263
- var appointmentSetupServiceAssignmentDraftSchema = z62.discriminatedUnion("kind", [
52264
- z62.object({ kind: z62.literal("all_practitioners") }),
52265
- z62.object({
52266
- kind: z62.literal("selected_practitioners"),
52267
- resourceRefs: z62.array(appointmentSetupRefSchema)
52517
+ var appointmentSetupPaymentDraftSchema = z63.object({
52518
+ priceType: z63.union([z63.literal("free"), z63.literal("paid")])
52519
+ });
52520
+ var appointmentSetupServiceAssignmentDraftSchema = z63.discriminatedUnion("kind", [
52521
+ z63.object({ kind: z63.literal("all_practitioners") }),
52522
+ z63.object({
52523
+ kind: z63.literal("selected_practitioners"),
52524
+ resourceRefs: z63.array(appointmentSetupRefSchema)
52268
52525
  })
52269
52526
  ]);
52270
- var appointmentSetupServiceDraftSchema = z62.object({
52527
+ var appointmentSetupServiceDraftSchema = z63.object({
52271
52528
  ref: appointmentSetupRefSchema,
52272
- title: z62.string().trim().min(1),
52273
- description: z62.string().nullable(),
52274
- durationMinutes: z62.number().int().positive(),
52275
- priceAmount: z62.number().int().nonnegative().nullable(),
52276
- isActive: z62.boolean(),
52277
- locationType: z62.union([
52278
- z62.literal("virtual"),
52279
- z62.literal("in_person"),
52280
- z62.literal("hybrid")
52529
+ title: z63.string().trim().min(1),
52530
+ description: z63.string().nullable(),
52531
+ durationMinutes: z63.number().int().positive(),
52532
+ priceAmount: z63.number().int().nonnegative().nullable(),
52533
+ isActive: z63.boolean(),
52534
+ locationType: z63.union([
52535
+ z63.literal("virtual"),
52536
+ z63.literal("in_person"),
52537
+ z63.literal("hybrid")
52281
52538
  ]),
52282
52539
  venue: appointmentSetupVenueChoiceSchema,
52283
- timezone: z62.string().trim().min(1).nullable(),
52540
+ timezone: z63.string().trim().min(1).nullable(),
52284
52541
  payment: appointmentSetupPaymentDraftSchema,
52285
52542
  assignment: appointmentSetupServiceAssignmentDraftSchema
52286
52543
  });
52287
- var appointmentSetupPractitionerDraftSchema = z62.object({
52544
+ var appointmentSetupPractitionerDraftSchema = z63.object({
52288
52545
  ref: appointmentSetupRefSchema,
52289
- displayName: z62.string().trim().min(1),
52290
- bio: z62.string().nullable(),
52291
- timezone: z62.string().trim().min(1),
52292
- colorHex: z62.string().nullable()
52293
- });
52294
- var appointmentSetupWeeklyWindowDraftSchema = z62.object({
52295
- weekday: z62.number().int().min(0).max(6),
52296
- startTime: z62.string(),
52297
- endTime: z62.string()
52298
- });
52299
- var appointmentSetupAvailabilityDraftSchema = z62.object({
52300
- kind: z62.literal("weekly_windows"),
52546
+ displayName: z63.string().trim().min(1),
52547
+ bio: z63.string().nullable(),
52548
+ timezone: z63.string().trim().min(1),
52549
+ colorHex: z63.string().nullable()
52550
+ });
52551
+ var appointmentSetupWeeklyWindowDraftSchema = z63.object({
52552
+ weekday: z63.number().int().min(0).max(6),
52553
+ startTime: z63.string(),
52554
+ endTime: z63.string()
52555
+ });
52556
+ var appointmentSetupAvailabilityDraftSchema = z63.object({
52557
+ kind: z63.literal("weekly_windows"),
52301
52558
  resourceRef: appointmentSetupRefSchema,
52302
52559
  serviceRef: appointmentSetupRefSchema.nullable(),
52303
- windows: z62.array(appointmentSetupWeeklyWindowDraftSchema)
52560
+ windows: z63.array(appointmentSetupWeeklyWindowDraftSchema)
52304
52561
  });
52305
52562
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
52306
52563
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
52307
- var appointmentSetupBookingNoticeSchema = z62.object({
52308
- minLeadMinutes: z62.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
52309
- maxBookingNoticeMinutes: z62.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
52310
- });
52311
- var applyAppointmentSetupRequestSchema = z62.object({
52312
- services: z62.array(appointmentSetupServiceDraftSchema),
52313
- practitioners: z62.array(appointmentSetupPractitionerDraftSchema),
52314
- availability: z62.array(appointmentSetupAvailabilityDraftSchema),
52564
+ var appointmentSetupBookingNoticeSchema = z63.object({
52565
+ minLeadMinutes: z63.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
52566
+ maxBookingNoticeMinutes: z63.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
52567
+ });
52568
+ var applyAppointmentSetupRequestSchema = z63.object({
52569
+ services: z63.array(appointmentSetupServiceDraftSchema),
52570
+ practitioners: z63.array(appointmentSetupPractitionerDraftSchema),
52571
+ availability: z63.array(appointmentSetupAvailabilityDraftSchema),
52315
52572
  bookingNotice: appointmentSetupBookingNoticeSchema
52316
52573
  });
52317
52574
 
@@ -52330,24 +52587,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
52330
52587
  ];
52331
52588
 
52332
52589
  // ../api/src/siteBanner.ts
52333
- import { z as z63 } from "zod";
52590
+ import { z as z64 } from "zod";
52334
52591
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
52335
52592
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
52336
52593
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
52337
52594
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
52338
- var siteBannerScopeSchema = z63.enum(SITE_BANNER_SCOPE_VALUES);
52339
- var siteBannerToneSchema = z63.enum(SITE_BANNER_TONE_VALUES);
52340
- var siteBannerBodySchema = z63.unknown().transform(unwrapRichTextValue);
52341
- var siteBannerCtaSchema = z63.object({
52342
- label: z63.string().trim().min(1),
52595
+ var siteBannerScopeSchema = z64.enum(SITE_BANNER_SCOPE_VALUES);
52596
+ var siteBannerToneSchema = z64.enum(SITE_BANNER_TONE_VALUES);
52597
+ var siteBannerBodySchema = z64.unknown().transform(unwrapRichTextValue);
52598
+ var siteBannerCtaSchema = z64.object({
52599
+ label: z64.string().trim().min(1),
52343
52600
  link: linkPayloadSchema
52344
52601
  });
52345
- var siteBannerSettingsSchema = z63.discriminatedUnion("enabled", [
52346
- z63.object({
52347
- enabled: z63.literal(false)
52602
+ var siteBannerSettingsSchema = z64.discriminatedUnion("enabled", [
52603
+ z64.object({
52604
+ enabled: z64.literal(false)
52348
52605
  }),
52349
- z63.object({
52350
- enabled: z63.literal(true),
52606
+ z64.object({
52607
+ enabled: z64.literal(true),
52351
52608
  scope: siteBannerScopeSchema,
52352
52609
  tone: siteBannerToneSchema,
52353
52610
  body: siteBannerBodySchema,
@@ -52361,7 +52618,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
52361
52618
  const analysis = analyzeSiteBannerBody(value.body);
52362
52619
  for (const issue of analysis.issues) {
52363
52620
  ctx.addIssue({
52364
- code: z63.ZodIssueCode.custom,
52621
+ code: z64.ZodIssueCode.custom,
52365
52622
  path: ["body"],
52366
52623
  message: siteBannerBodyIssueMessage(issue)
52367
52624
  });
@@ -52550,71 +52807,71 @@ function collectText(node) {
52550
52807
  }
52551
52808
 
52552
52809
  // ../api/src/aiPlayground.ts
52553
- import { z as z64 } from "zod";
52554
- var Rfc6902PatchOp = z64.discriminatedUnion("op", [
52810
+ import { z as z65 } from "zod";
52811
+ var Rfc6902PatchOp = z65.discriminatedUnion("op", [
52555
52812
  // Standard RFC-6902 operations
52556
- z64.object({
52557
- op: z64.literal("add"),
52558
- path: z64.string(),
52559
- value: z64.unknown()
52813
+ z65.object({
52814
+ op: z65.literal("add"),
52815
+ path: z65.string(),
52816
+ value: z65.unknown()
52560
52817
  }),
52561
- z64.object({
52562
- op: z64.literal("remove"),
52563
- path: z64.string()
52818
+ z65.object({
52819
+ op: z65.literal("remove"),
52820
+ path: z65.string()
52564
52821
  }),
52565
- z64.object({
52566
- op: z64.literal("replace"),
52567
- path: z64.string(),
52568
- value: z64.unknown()
52822
+ z65.object({
52823
+ op: z65.literal("replace"),
52824
+ path: z65.string(),
52825
+ value: z65.unknown()
52569
52826
  }),
52570
- z64.object({
52571
- op: z64.literal("move"),
52572
- from: z64.string(),
52573
- path: z64.string()
52827
+ z65.object({
52828
+ op: z65.literal("move"),
52829
+ from: z65.string(),
52830
+ path: z65.string()
52574
52831
  }),
52575
- z64.object({
52576
- op: z64.literal("copy"),
52577
- from: z64.string(),
52578
- path: z64.string()
52832
+ z65.object({
52833
+ op: z65.literal("copy"),
52834
+ from: z65.string(),
52835
+ path: z65.string()
52579
52836
  }),
52580
52837
  // Block-level operations (Phase 2)
52581
- z64.object({
52582
- op: z64.literal("add_block"),
52583
- blockKind: z64.string(),
52584
- afterBlockId: z64.string().nullable(),
52585
- content: z64.record(z64.string(), z64.unknown()),
52586
- rationale: z64.string()
52838
+ z65.object({
52839
+ op: z65.literal("add_block"),
52840
+ blockKind: z65.string(),
52841
+ afterBlockId: z65.string().nullable(),
52842
+ content: z65.record(z65.string(), z65.unknown()),
52843
+ rationale: z65.string()
52587
52844
  }),
52588
- z64.object({
52589
- op: z64.literal("delete_block"),
52590
- blockId: z64.string(),
52591
- rationale: z64.string()
52845
+ z65.object({
52846
+ op: z65.literal("delete_block"),
52847
+ blockId: z65.string(),
52848
+ rationale: z65.string()
52592
52849
  }),
52593
- z64.object({
52594
- op: z64.literal("reorder_block"),
52595
- blockId: z64.string(),
52596
- afterBlockId: z64.string().nullable(),
52597
- rationale: z64.string()
52850
+ z65.object({
52851
+ op: z65.literal("reorder_block"),
52852
+ blockId: z65.string(),
52853
+ afterBlockId: z65.string().nullable(),
52854
+ rationale: z65.string()
52598
52855
  })
52599
52856
  ]);
52600
- var PlaygroundProposeRequest = z64.object({
52601
- request: z64.string().min(1).max(2e3)
52857
+ var PlaygroundProposeRequest = z65.object({
52858
+ request: z65.string().min(1).max(2e3)
52602
52859
  });
52603
- var MultiPagePatchEnvelope = z64.object({
52604
- pageId: z64.string(),
52605
- blockId: z64.string().optional(),
52860
+ var MultiPagePatchEnvelope = z65.object({
52861
+ pageId: z65.string(),
52862
+ blockId: z65.string().optional(),
52606
52863
  // Not present for page-level ops
52607
- blockKind: z64.string().optional(),
52608
- blockPurpose: z64.string().optional().nullable(),
52609
- ops: z64.array(Rfc6902PatchOp),
52610
- rationale: z64.string(),
52611
- currentContent: z64.record(z64.string(), z64.unknown()).optional()
52612
- });
52613
- var MultiPageUpdateResponse = z64.object({
52614
- patches: z64.array(MultiPagePatchEnvelope),
52615
- assistantMessage: z64.string(),
52616
- pagesModified: z64.number(),
52617
- toolCallsUsed: z64.number()
52864
+ blockKind: z65.string().optional(),
52865
+ blockPurpose: z65.string().optional().nullable(),
52866
+ ops: z65.array(Rfc6902PatchOp),
52867
+ rationale: z65.string(),
52868
+ currentContent: z65.record(z65.string(), z65.unknown()).optional()
52869
+ });
52870
+ var MultiPageUpdateResponse = z65.object({
52871
+ patches: z65.array(MultiPagePatchEnvelope),
52872
+ assistantMessage: z65.string(),
52873
+ pagesModified: z65.number(),
52874
+ toolCallsUsed: z65.number()
52618
52875
  });
52619
52876
 
52620
52877
  // src/rendering/components/Block.shared.tsx