@riverbankcms/sdk 0.95.0 → 0.96.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 (149) hide show
  1. package/README.md +27 -4
  2. package/dist/{PreviewEditorSidebar-6FQYKOSB.mjs → PreviewEditorSidebar-46VT4QVU.mjs} +2 -2
  3. package/dist/{PreviewEditorUI-NPO2XMFB.mjs → PreviewEditorUI-JD75GE5F.mjs} +2 -2
  4. package/dist/SdkPreviewModeRuntime-MJUSYUFB.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
  6. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  7. package/dist/_dts/block-form/src/fields/types.d.ts +9 -1
  8. package/dist/_dts/block-form/src/registry/schemas.d.ts +4 -0
  9. package/dist/_dts/block-form/src/registry/widgets.d.ts +1 -0
  10. package/dist/_dts/block-form/src/widgets/InlineTextField/InlineTextField.d.ts +4 -0
  11. package/dist/_dts/block-form/src/widgets/InlineTextField/index.d.ts +3 -0
  12. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldDefaults.d.ts +2 -0
  13. package/dist/_dts/block-form/src/widgets/InlineTextField/inlineTextFieldSchema.d.ts +3 -0
  14. package/dist/_dts/blocks/src/bindings/index.d.ts +1 -0
  15. package/dist/_dts/blocks/src/bindings/types.d.ts +1 -0
  16. package/dist/_dts/blocks/src/index.d.ts +2 -0
  17. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +2 -29631
  18. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -29614
  19. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +2 -29634
  20. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +2 -29627
  21. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +2 -29585
  22. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +2 -29677
  23. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +2 -29655
  24. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +220 -0
  25. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +2 -29655
  26. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -29685
  27. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -29761
  28. package/dist/_dts/blocks/src/system/fragments/library/heroCopy.d.ts +9 -0
  29. package/dist/_dts/blocks/src/system/inlineText.d.ts +78 -0
  30. package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +3 -1
  31. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +15 -3
  32. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +188 -7
  33. package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +2 -1
  34. package/dist/_dts/blocks/src/system/runtime/nodes/renderInlineText.d.ts +3 -0
  35. package/dist/_dts/content-editor/src/index.d.ts +1 -0
  36. package/dist/_dts/content-editor/src/primitives/PreviewInlineTextEditor.d.ts +9 -0
  37. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +1 -1
  38. package/dist/_dts/content-model/src/templates/defaults.d.ts +30 -0
  39. package/dist/_dts/content-model/src/templates/types.d.ts +1 -0
  40. package/dist/_dts/editor/src/inline/FloatingToolbar.d.ts +18 -0
  41. package/dist/_dts/editor/src/inline/InlineTextEditor.d.ts +18 -1
  42. package/dist/_dts/editor/src/inline/InlineTextEditorStyles.d.ts +1 -0
  43. package/dist/_dts/editor/src/inline/domParse.d.ts +3 -0
  44. package/dist/_dts/editor/src/inline/presentation.d.ts +48 -0
  45. package/dist/_dts/editor/src/inline/selection.d.ts +12 -0
  46. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  47. package/dist/_dts/editor-blocks/src/widgets/inline-text/InlineTextField.d.ts +3 -0
  48. package/dist/_dts/editor-blocks/src/widgets/inline-text/index.d.ts +1 -0
  49. package/dist/_dts/path-utils/src/index.d.ts +1 -0
  50. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  51. package/dist/_dts/sdk/src/cli/commands/content.d.ts +56 -0
  52. package/dist/_dts/sdk/src/cli/commands/push/options.d.ts +4 -0
  53. package/dist/_dts/sdk/src/cli/commands/push/scopes/commandBackedDatedOfferingScope.d.ts +2 -6
  54. package/dist/_dts/sdk/src/cli/commands/push/scopes/types.d.ts +2 -0
  55. package/dist/_dts/sdk/src/cli/commands/push/verification.d.ts +56 -0
  56. package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +2 -1
  57. package/dist/_dts/sdk/src/cli/content/edit/format.d.ts +2 -0
  58. package/dist/_dts/sdk/src/cli/content/edit/path.d.ts +14 -0
  59. package/dist/_dts/sdk/src/cli/content/edit/planner.d.ts +46 -0
  60. package/dist/_dts/sdk/src/cli/content/fs-utils.d.ts +4 -0
  61. package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -0
  62. package/dist/_dts/sdk/src/cli/merge-remote/mergeFieldChanges.d.ts +22 -0
  63. package/dist/_dts/sdk/src/cli/merge-remote/pageLocal.d.ts +3 -0
  64. package/dist/_dts/sdk/src/cli/merge-remote/pageMerge.d.ts +78 -0
  65. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePlan.d.ts +36 -0
  66. package/dist/_dts/sdk/src/cli/merge-remote/pageMergePush.d.ts +21 -0
  67. package/dist/_dts/sdk/src/cli/merge-remote/pageMergeReport.d.ts +29 -0
  68. package/dist/_dts/sdk/src/cli/merge-remote/pageSnapshots.d.ts +48 -0
  69. package/dist/_dts/sdk/src/cli/sync/diff.d.ts +3 -6
  70. package/dist/_dts/sdk/src/cli/sync/field-diff.d.ts +39 -0
  71. package/dist/_dts/sdk/src/cli/sync/index.d.ts +1 -0
  72. package/dist/_dts/sdk/src/config/field-definitions.d.ts +8 -3
  73. package/dist/_dts/sdk/src/config/typed-entries.d.ts +5 -3
  74. package/dist/_dts/sdk/src/contracts/bindings.d.ts +1 -0
  75. package/dist/_dts/sdk/src/contracts/content.d.ts +18 -0
  76. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  77. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -2
  78. package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -0
  79. package/dist/_dts/sdk/src/version.d.ts +1 -1
  80. package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
  81. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -1
  82. package/dist/_dts/theme-core/src/cards/types.d.ts +15 -15
  83. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  84. package/dist/_dts/theme-core/src/inputs/types.d.ts +1 -1
  85. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +42 -42
  86. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +2 -2
  87. package/dist/_dts/theme-core/src/schema.d.ts +44 -44
  88. package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
  89. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +16 -16
  90. package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
  91. package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +1 -1
  93. package/dist/{chunk-K2SJTZMX.mjs → chunk-4TLTV7OB.mjs} +1 -1
  94. package/dist/{chunk-4A6NWO3X.mjs → chunk-EL55VV6Q.mjs} +47 -7
  95. package/dist/{chunk-PJPFTVZG.mjs → chunk-VHIMXQ7Z.mjs} +105 -3
  96. package/dist/{chunk-VZBSD4AJ.mjs → chunk-XMATDBXO.mjs} +1633 -225
  97. package/dist/cli/index.mjs +2691 -772
  98. package/dist/cli/init-docs/content/cli-reference.md +43 -4
  99. package/dist/cli/init-docs/content/content-management.md +22 -0
  100. package/dist/client/{accordion-LGO4IO5U.mjs → accordion-GUNXIIZR.mjs} +1 -1
  101. package/dist/client/{bookingForm-MWLS4LGU.mjs → bookingForm-AOU4VHP5.mjs} +3 -3
  102. package/dist/client/{carousel-6AHNP5HA.mjs → carousel-4QSX2JPC.mjs} +1 -1
  103. package/dist/client/{cart-CIXGYAZB.mjs → cart-JKN6C4ZB.mjs} +4 -4
  104. package/dist/client/{checkout-OTX6O3DN.mjs → checkout-YY6YMITW.mjs} +4 -4
  105. package/dist/client/{chunk-Y2PMKCXO.mjs → chunk-6H27K6AA.mjs} +1 -1
  106. package/dist/client/{chunk-R3NQTBWE.mjs → chunk-A3YN7M3G.mjs} +1 -1
  107. package/dist/client/{chunk-TREIML53.mjs → chunk-BFCJZODD.mjs} +3 -3
  108. package/dist/client/{chunk-INRIT6DP.mjs → chunk-CPKMJVBD.mjs} +5 -5
  109. package/dist/client/{chunk-V67AT7ZW.mjs → chunk-GWCRCJLB.mjs} +6 -0
  110. package/dist/client/{chunk-AVBQSUIS.mjs → chunk-H7A6PUGM.mjs} +1 -1
  111. package/dist/client/{chunk-HOP7MKAZ.mjs → chunk-SY543WZ3.mjs} +1 -1
  112. package/dist/client/{chunk-MYCXAKWP.mjs → chunk-VJROUYOQ.mjs} +2 -2
  113. package/dist/client/client.mjs +4007 -3687
  114. package/dist/client/{courseRegistration-2LU6C3JL.mjs → courseRegistration-UU2KMPSQ.mjs} +3 -3
  115. package/dist/client/{eventCalendar-OKUSISBZ.mjs → eventCalendar-WIVNS2TM.mjs} +6 -6
  116. package/dist/client/{eventCombined-CMF6CD4S.mjs → eventCombined-P3G5MW4J.mjs} +6 -6
  117. package/dist/client/{eventDetails-XYWH7WXI.mjs → eventDetails-2VHJ2RDG.mjs} +6 -6
  118. package/dist/client/{eventListing-EK5DJTAH.mjs → eventListing-TGO6JI3R.mjs} +6 -6
  119. package/dist/client/{eventRegistration-XDOSICV6.mjs → eventRegistration-B46HEJES.mjs} +6 -6
  120. package/dist/client/{form-J6GOHKYG.mjs → form-VKRTFUNQ.mjs} +1 -1
  121. package/dist/client/{headerSection-C5SYJTRW.mjs → headerSection-XUX4ZJLO.mjs} +2 -2
  122. package/dist/client/hooks.mjs +20 -3
  123. package/dist/client/{locationMap-QSQIFVVT.mjs → locationMap-NQFI5MJO.mjs} +2 -2
  124. package/dist/client/{newsletterForm-47VXJRWK.mjs → newsletterForm-P2GETCQK.mjs} +1 -1
  125. package/dist/client/{productDetail-5U6ISCC2.mjs → productDetail-7NQ7O5IF.mjs} +4 -4
  126. package/dist/client/{productList-XDZUMR3P.mjs → productList-RX6ZJ7BL.mjs} +4 -4
  127. package/dist/client/rendering/client.mjs +3822 -3600
  128. package/dist/client/rendering/islands.mjs +18 -18
  129. package/dist/client/rendering.mjs +1211 -883
  130. package/dist/client/{shop-ZSZKIY3R.mjs → shop-BHN5AKY6.mjs} +4 -4
  131. package/dist/preview-next/client/runtime.mjs +3 -3
  132. package/dist/{sdk-runtime-PHNM7MRD.mjs → sdk-runtime-X2LXQ5IC.mjs} +4 -4
  133. package/dist/server/components.mjs +3144 -2827
  134. package/dist/server/config-template-validation.mjs +29 -20
  135. package/dist/server/config-validation.mjs +22 -4
  136. package/dist/server/config.mjs +22 -4
  137. package/dist/server/data.mjs +20 -3
  138. package/dist/server/index.mjs +1 -1
  139. package/dist/server/next.mjs +3181 -2858
  140. package/dist/server/page-converter.mjs +20 -3
  141. package/dist/server/prebuild.mjs +1 -1
  142. package/dist/server/rendering/server.mjs +3153 -2837
  143. package/dist/server/rendering.mjs +3168 -2844
  144. package/dist/server/routing.mjs +21 -4
  145. package/dist/server/server.mjs +2299 -2188
  146. package/dist/server/theme-bridge.mjs +43 -0
  147. package/dist/styles/index.css +44 -0
  148. package/package.json +1 -1
  149. package/dist/SdkPreviewModeRuntime-PBEFH5AL.mjs +0 -8
@@ -18538,6 +18538,7 @@ function getFieldSchemaInternal() {
18538
18538
  _fieldSchemaInternal = z31.discriminatedUnion("type", [
18539
18539
  textFieldSchema,
18540
18540
  richTextFieldSchema,
18541
+ inlineTextFieldSchema,
18541
18542
  mediaFieldSchema,
18542
18543
  fileFieldSchema,
18543
18544
  booleanFieldSchema,
@@ -18606,7 +18607,7 @@ function createSdkSelectField(input) {
18606
18607
  })
18607
18608
  );
18608
18609
  }
18609
- var visibilityLevels, MEDIA_KINDS, DISPLAY_MEDIA_KINDS, PUBLIC_FILE_FIELD_KINDS, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, visibleWhenPredicateSchema, visibleWhenSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, mediaFieldSchema, fileFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, quickFieldPrioritySchema, previewCustomizeManifestCurationSchema, blockCategoryEnum, manifestSchema;
18610
+ var visibilityLevels, MEDIA_KINDS, DISPLAY_MEDIA_KINDS, PUBLIC_FILE_FIELD_KINDS, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, visibleWhenPredicateSchema, visibleWhenSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, inlineTextFieldSchema, mediaFieldSchema, fileFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, quickFieldPrioritySchema, previewCustomizeManifestCurationSchema, blockCategoryEnum, manifestSchema;
18610
18611
  var init_schema3 = __esm({
18611
18612
  "../blocks/src/system/manifest/schema.ts"() {
18612
18613
  "use strict";
@@ -18808,6 +18809,11 @@ var init_schema3 = __esm({
18808
18809
  richTextFieldSchema = baseFieldSchema.extend({
18809
18810
  type: z31.literal("richText")
18810
18811
  });
18812
+ inlineTextFieldSchema = baseFieldSchema.extend({
18813
+ type: z31.literal("inlineText"),
18814
+ maxLength: z31.number().int().positive().optional(),
18815
+ plainTextField: z31.string().min(1).optional()
18816
+ });
18811
18817
  mediaFieldSchema = baseFieldSchema.extend({
18812
18818
  type: z31.literal("media"),
18813
18819
  // Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
@@ -19732,8 +19738,16 @@ var init_heroCopy = __esm({
19732
19738
  id: "headline",
19733
19739
  type: "text",
19734
19740
  label: "Headline",
19741
+ maxLength: 120,
19742
+ ui: { hidden: true }
19743
+ },
19744
+ {
19745
+ id: "headlineInline",
19746
+ type: "inlineText",
19747
+ label: "Headline",
19735
19748
  required: true,
19736
- maxLength: 120
19749
+ maxLength: 120,
19750
+ plainTextField: "headline"
19737
19751
  },
19738
19752
  {
19739
19753
  id: "subheadline",
@@ -19758,9 +19772,12 @@ var init_heroCopy = __esm({
19758
19772
  as: "h1",
19759
19773
  // heading-display: uses fluid typography from theme (--fs-h1-display-fluid)
19760
19774
  // Color in blocks-static/index.css (.hero-headline)
19761
- className: "hero-headline heading-display"
19775
+ className: "hero-headline heading-display",
19776
+ // Resolved against top-level block content; keep this beside the sibling headline field.
19777
+ inlineTextFallbackPath: "headline",
19778
+ maxLength: 120
19762
19779
  },
19763
- bind("content.headline")
19780
+ bind("content.headlineInline")
19764
19781
  ),
19765
19782
  text(
19766
19783
  {
@@ -56232,7 +56249,7 @@ import * as React35 from "react";
56232
56249
 
56233
56250
  // ../blocks/src/system/manifest/fieldValidation/index.ts
56234
56251
  init_src2();
56235
- import { z as z53 } from "zod";
56252
+ import { z as z54 } from "zod";
56236
56253
 
56237
56254
  // ../blocks/src/system/types/link.ts
56238
56255
  import { z as z52 } from "zod";
@@ -56293,6 +56310,113 @@ var linkSchema = z52.union([
56293
56310
  // ../blocks/src/system/manifest/fieldValidation/index.ts
56294
56311
  init_schema3();
56295
56312
 
56313
+ // ../blocks/src/system/inlineText.ts
56314
+ import { z as z53 } from "zod";
56315
+ var inlineTextAccentTones = ["accent", "brand", "contrast"];
56316
+ var inlineTextHighlightTones = ["soft", "accent", "brand"];
56317
+ var inlineTextMarkSchema = z53.discriminatedUnion("kind", [
56318
+ z53.object({ kind: z53.literal("strong") }),
56319
+ z53.object({ kind: z53.literal("emphasis") }),
56320
+ z53.object({
56321
+ kind: z53.literal("accent"),
56322
+ tone: z53.enum(inlineTextAccentTones)
56323
+ }),
56324
+ z53.object({
56325
+ kind: z53.literal("highlight"),
56326
+ tone: z53.enum(inlineTextHighlightTones)
56327
+ })
56328
+ ]);
56329
+ var inlineTextRunSchema = z53.object({
56330
+ text: z53.string(),
56331
+ marks: z53.array(inlineTextMarkSchema).optional()
56332
+ });
56333
+ var inlineTextSchema = z53.array(inlineTextRunSchema);
56334
+ var MARK_ORDER = {
56335
+ strong: 0,
56336
+ emphasis: 1,
56337
+ accent: 2,
56338
+ highlight: 3
56339
+ };
56340
+ function plainTextToInlineText(value) {
56341
+ return normalizeInlineText(value.length > 0 ? [{ text: value }] : []);
56342
+ }
56343
+ function inlineTextToPlainText(value) {
56344
+ return value.map((run) => run.text).join("");
56345
+ }
56346
+ function isInlineTextEmpty(value) {
56347
+ return inlineTextToPlainText(value).trim().length === 0;
56348
+ }
56349
+ function parseInlineTextFromUnknown(value) {
56350
+ if (!Array.isArray(value)) {
56351
+ return { ok: false, error: { kind: "not-array" } };
56352
+ }
56353
+ const runs = [];
56354
+ for (let index = 0; index < value.length; index += 1) {
56355
+ const parsed = inlineTextRunSchema.safeParse(value[index]);
56356
+ if (!parsed.success) {
56357
+ return { ok: false, error: { kind: "invalid-run", index } };
56358
+ }
56359
+ runs.push(parsed.data);
56360
+ }
56361
+ return { ok: true, value: normalizeInlineText(runs) };
56362
+ }
56363
+ function normalizeInlineText(value) {
56364
+ const normalized = [];
56365
+ for (const run of value) {
56366
+ if (run.text.length === 0) continue;
56367
+ const marks = normalizeInlineTextMarks(run.marks ?? []);
56368
+ const nextRun = marks.length > 0 ? { text: run.text, marks } : { text: run.text };
56369
+ const previous = normalized[normalized.length - 1];
56370
+ if (previous && inlineTextMarksEqual(previous.marks ?? [], nextRun.marks ?? [])) {
56371
+ normalized[normalized.length - 1] = previous.marks && previous.marks.length > 0 ? { text: previous.text + nextRun.text, marks: previous.marks } : { text: previous.text + nextRun.text };
56372
+ continue;
56373
+ }
56374
+ normalized.push(nextRun);
56375
+ }
56376
+ return normalized;
56377
+ }
56378
+ function normalizeInlineTextMarks(marks) {
56379
+ let strong = null;
56380
+ let emphasis = null;
56381
+ let accent = null;
56382
+ let highlight = null;
56383
+ for (const mark of marks) {
56384
+ switch (mark.kind) {
56385
+ case "strong":
56386
+ strong = { kind: "strong" };
56387
+ break;
56388
+ case "emphasis":
56389
+ emphasis = { kind: "emphasis" };
56390
+ break;
56391
+ case "accent":
56392
+ accent = { kind: "accent", tone: mark.tone };
56393
+ break;
56394
+ case "highlight":
56395
+ highlight = { kind: "highlight", tone: mark.tone };
56396
+ break;
56397
+ }
56398
+ }
56399
+ return [strong, emphasis, accent, highlight].filter((mark) => mark !== null).sort((left, right) => MARK_ORDER[left.kind] - MARK_ORDER[right.kind]);
56400
+ }
56401
+ function inlineTextMarksEqual(left, right) {
56402
+ const normalizedLeft = normalizeInlineTextMarks(left);
56403
+ const normalizedRight = normalizeInlineTextMarks(right);
56404
+ if (normalizedLeft.length !== normalizedRight.length) return false;
56405
+ return normalizedLeft.every((mark, index) => inlineTextMarkEqual(mark, normalizedRight[index]));
56406
+ }
56407
+ function inlineTextMarkEqual(left, right) {
56408
+ if (!right || left.kind !== right.kind) return false;
56409
+ switch (left.kind) {
56410
+ case "strong":
56411
+ case "emphasis":
56412
+ return true;
56413
+ case "accent":
56414
+ return right.kind === "accent" && left.tone === right.tone;
56415
+ case "highlight":
56416
+ return right.kind === "highlight" && left.tone === right.tone;
56417
+ }
56418
+ }
56419
+
56296
56420
  // ../blocks/src/system/icons/ids.ts
56297
56421
  var GENERATED_ICON_SET_ID_PATTERN = /^generated-icon-set:[a-z0-9][a-z0-9:_-]{0,107}$/u;
56298
56422
  var GENERATED_ICON_ASSET_ID_PATTERN = /^generated-icon-asset:[a-z0-9][a-z0-9:_-]{0,105}$/u;
@@ -56832,6 +56956,13 @@ function formatFieldPath(path) {
56832
56956
  function toZodIssuePath(path) {
56833
56957
  return [...path];
56834
56958
  }
56959
+ function parseFieldPathKey(key) {
56960
+ if (!key) return [];
56961
+ return key.split(".").map((segment) => {
56962
+ const numeric = Number(segment);
56963
+ return Number.isInteger(numeric) && String(numeric) === segment ? numeric : segment;
56964
+ });
56965
+ }
56835
56966
  function fieldIssueToMessage(issue2) {
56836
56967
  switch (issue2.kind) {
56837
56968
  case "required":
@@ -56870,6 +57001,8 @@ function fieldIssueToMessage(issue2) {
56870
57001
  return `${issue2.label} must have at most ${issue2.maximum} ${pluralize(issue2.itemLabel, issue2.maximum)}`;
56871
57002
  case "invalidRichText":
56872
57003
  return `${issue2.label} must be valid rich text`;
57004
+ case "invalidInlineText":
57005
+ return `${issue2.label} must be valid styled text`;
56873
57006
  case "invalidMedia":
56874
57007
  return `${issue2.label} must be a valid media item`;
56875
57008
  case "invalidLink":
@@ -56958,6 +57091,16 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
56958
57091
  );
56959
57092
  case "richText":
56960
57093
  return makePlan("richText", "object", field, path, required, commonConstraints(required, { kind: "richTextDoc" }));
57094
+ case "inlineText": {
57095
+ const constraints = commonConstraints(required, { kind: "inlineText" });
57096
+ if (typeof field.maxLength === "number") {
57097
+ constraints.push({ kind: "maxPlainTextLength", maximum: field.maxLength });
57098
+ }
57099
+ return {
57100
+ ...makePlan("inlineText", "array", field, path, required, constraints),
57101
+ ...field.plainTextField ? { plainTextFallbackPath: parseFieldPathKey(field.plainTextField) } : {}
57102
+ };
57103
+ }
56961
57104
  case "media":
56962
57105
  case "file":
56963
57106
  return {
@@ -57082,6 +57225,7 @@ function normalizeStoredContentValues(plans, content, options = {}) {
57082
57225
  const plan = planMap.get(key);
57083
57226
  normalized[key] = plan ? normalizeStoredFieldValueWithContext(plan, value, ctx) : value;
57084
57227
  }
57228
+ normalizeInlineTextFallbacks(plans, normalized, ctx);
57085
57229
  return normalized;
57086
57230
  }
57087
57231
  function normalizeStoredFieldValueWithContext(plan, value, ctx) {
@@ -57097,6 +57241,7 @@ function normalizeStoredFieldValueWithContext(plan, value, ctx) {
57097
57241
  case "number":
57098
57242
  case "boolean":
57099
57243
  case "richText":
57244
+ case "inlineText":
57100
57245
  case "media":
57101
57246
  case "link":
57102
57247
  case "select":
@@ -57112,12 +57257,9 @@ function normalizeStoredObjectChildren(children, value, ctx) {
57112
57257
  }
57113
57258
  const normalized = { ...value };
57114
57259
  for (const child of children) {
57115
- normalized[child.fieldId] = normalizeStoredFieldValueWithContext(
57116
- child,
57117
- normalized[child.fieldId],
57118
- ctx
57119
- );
57260
+ normalized[child.fieldId] = normalizeStoredFieldValueWithContext(child, normalized[child.fieldId], ctx);
57120
57261
  }
57262
+ normalizeInlineTextFallbacks(children, normalized, ctx);
57121
57263
  return normalized;
57122
57264
  }
57123
57265
  function normalizeStoredRepeaterItems(plan, value, ctx) {
@@ -57148,6 +57290,7 @@ function normalizeFieldValue(plan, value, ctx) {
57148
57290
  return normalizeRepeaterItems(plan, value, ctx);
57149
57291
  case "boolean":
57150
57292
  case "richText":
57293
+ case "inlineText":
57151
57294
  case "link":
57152
57295
  case "select":
57153
57296
  case "passthrough":
@@ -57173,8 +57316,24 @@ function normalizeObjectChildren(children, value, ctx) {
57173
57316
  for (const child of children) {
57174
57317
  normalized[child.fieldId] = normalizeFieldValue(child, normalized[child.fieldId], ctx);
57175
57318
  }
57319
+ normalizeInlineTextFallbacks(children, normalized, ctx);
57176
57320
  return normalized;
57177
57321
  }
57322
+ function normalizeInlineTextFallbacks(plans, values, ctx) {
57323
+ for (const plan of plans) {
57324
+ if (plan.kind !== "inlineText" || !plan.plainTextFallbackPath) continue;
57325
+ if (!isMissingForPlan(plan, values[plan.fieldId])) continue;
57326
+ const fallback2 = getAtFieldPath(values, plan.plainTextFallbackPath);
57327
+ if (typeof fallback2 !== "string" || fallback2.trim().length === 0) continue;
57328
+ values[plan.fieldId] = normalizeFieldValue(plan, plainTextToInlineText(fallback2), ctx);
57329
+ }
57330
+ }
57331
+ function getAtFieldPath(source, path) {
57332
+ return path.reduce((current, segment) => {
57333
+ if (!current || typeof current !== "object" || Array.isArray(current)) return void 0;
57334
+ return current[String(segment)];
57335
+ }, source);
57336
+ }
57178
57337
  function normalizeRepeaterItems(plan, value, ctx) {
57179
57338
  if (!isUnknownArray2(value)) return value;
57180
57339
  return value.map((item) => {
@@ -57212,6 +57371,8 @@ function validateNormalizedFieldValue(plan, value, ctx) {
57212
57371
  return validateSelectPlan(plan, value);
57213
57372
  case "richText":
57214
57373
  return isValidRichTextDoc(value) ? [] : [issue(plan, "invalidRichText")];
57374
+ case "inlineText":
57375
+ return validateInlineTextPlan(plan, value);
57215
57376
  case "media":
57216
57377
  return isPlainObject(value) ? [] : [issue(plan, "invalidMedia")];
57217
57378
  case "link":
@@ -57385,6 +57546,7 @@ function rebaseFieldPlanPath(plan, fromPrefix, toPrefix) {
57385
57546
  case "number":
57386
57547
  case "boolean":
57387
57548
  case "richText":
57549
+ case "inlineText":
57388
57550
  case "media":
57389
57551
  case "link":
57390
57552
  case "select":
@@ -57397,6 +57559,18 @@ function rebaseFieldPlanPath(plan, fromPrefix, toPrefix) {
57397
57559
  return assertNever7(plan);
57398
57560
  }
57399
57561
  }
57562
+ function validateInlineTextPlan(plan, value) {
57563
+ const parsed = parseInlineTextFromUnknown(value);
57564
+ if (!parsed.ok) return [issue(plan, "invalidInlineText")];
57565
+ const text2 = inlineTextToPlainText(parsed.value);
57566
+ const lengthIssue = plan.constraints.find(
57567
+ (constraint) => constraint.kind === "maxPlainTextLength"
57568
+ );
57569
+ if (lengthIssue && text2.length > lengthIssue.maximum) {
57570
+ return [issue(plan, "tooLong", { maximum: lengthIssue.maximum })];
57571
+ }
57572
+ return [];
57573
+ }
57400
57574
  function rebaseFieldPath(path, fromPrefix, toPrefix) {
57401
57575
  if (!startsWithFieldPath(path, fromPrefix)) {
57402
57576
  throw new Error(`Cannot rebase field path ${formatFieldPath(path)} from ${formatFieldPath(fromPrefix)}`);
@@ -57422,7 +57596,7 @@ function requiredIssue(plan, value) {
57422
57596
  }
57423
57597
  function fieldPlanToZod(plan, options = {}) {
57424
57598
  const ctx = validationContext(options);
57425
- return z53.any().transform((value) => normalizeFieldValue(plan, value, ctx)).superRefine((value, zodCtx) => {
57599
+ return z54.any().transform((value) => normalizeFieldValue(plan, value, ctx)).superRefine((value, zodCtx) => {
57426
57600
  for (const validationIssue of validateNormalizedFieldValue(plan, value, ctx)) {
57427
57601
  addFieldIssueToZodContext(zodCtx, validationIssue, plan.path);
57428
57602
  }
@@ -57490,6 +57664,7 @@ function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
57490
57664
  case "tooFewItems":
57491
57665
  case "tooManyItems":
57492
57666
  case "invalidRichText":
57667
+ case "invalidInlineText":
57493
57668
  case "invalidMedia":
57494
57669
  case "invalidLink":
57495
57670
  case "invalidReference":
@@ -57513,7 +57688,7 @@ function isValidNumber(value) {
57513
57688
  return typeof value === "number" && Number.isFinite(value);
57514
57689
  }
57515
57690
  function isCanonicalEmailValue(value) {
57516
- return z53.email().safeParse(value).success;
57691
+ return z54.email().safeParse(value).success;
57517
57692
  }
57518
57693
  function isCanonicalPhoneValue(value) {
57519
57694
  return TEL_RE.test(value);
@@ -57624,7 +57799,7 @@ function registerManifest(manifest) {
57624
57799
  }
57625
57800
 
57626
57801
  // ../blocks/src/system/manifest/validation.ts
57627
- import { z as z54 } from "zod";
57802
+ import { z as z55 } from "zod";
57628
57803
  function preprocessEmptyValues(content) {
57629
57804
  if (!content || typeof content !== "object" || Array.isArray(content)) {
57630
57805
  return {};
@@ -57640,14 +57815,14 @@ function createManifestValidator(manifestOrFields, options = {}) {
57640
57815
  const plans = derivePlansFromManifestOrFields(manifestOrFields);
57641
57816
  const baseSchema = deriveContentZodFromPlans(plans, options);
57642
57817
  if (isDraft) {
57643
- return z54.preprocess(
57818
+ return z55.preprocess(
57644
57819
  (content) => preprocessEmptyValues(
57645
57820
  normalizeStoredContentValues(plans, content, options)
57646
57821
  ),
57647
57822
  baseSchema
57648
57823
  );
57649
57824
  }
57650
- return z54.preprocess(
57825
+ return z55.preprocess(
57651
57826
  (content) => normalizeStoredContentValues(plans, content, options),
57652
57827
  baseSchema
57653
57828
  );
@@ -57657,7 +57832,7 @@ function deriveContentZodFromPlans(plans, options) {
57657
57832
  for (const plan of plans) {
57658
57833
  shape[plan.fieldId] = fieldPlanToObjectPropertyZod(plan, options);
57659
57834
  }
57660
- return z54.object(shape).catchall(z54.unknown()).passthrough();
57835
+ return z55.object(shape).catchall(z55.unknown()).passthrough();
57661
57836
  }
57662
57837
  function derivePlansFromManifestOrFields(manifestOrFields) {
57663
57838
  const fields3 = Array.isArray(manifestOrFields) ? manifestOrFields : manifestOrFields.fields ?? [];
@@ -58358,7 +58533,7 @@ var bodyTextBlockDefinition = {
58358
58533
  init_builder();
58359
58534
  init_fragments2();
58360
58535
  init_defineBlock();
58361
- import { z as z55 } from "zod";
58536
+ import { z as z56 } from "zod";
58362
58537
  var composition = composeFragments([{ fragment: blogFeaturedPostFragment }]);
58363
58538
  var blogPostLayout = section(
58364
58539
  { background: "background", className: "rb-px-6 rb-py-12" },
@@ -58387,17 +58562,17 @@ var blogPostManifest = createBlockManifest({
58387
58562
  additionalFields: composition.fields,
58388
58563
  layout: blogPostLayout
58389
58564
  });
58390
- var blogPostDataSchema = z55.object({
58391
- id: z55.string(),
58392
- title: z55.string(),
58393
- slug: z55.string(),
58394
- path: z55.string(),
58395
- excerpt: z55.string().nullable().optional(),
58396
- image: z55.object({
58397
- url: z55.string().optional().nullable(),
58398
- alt: z55.string().optional().nullable()
58565
+ var blogPostDataSchema = z56.object({
58566
+ id: z56.string(),
58567
+ title: z56.string(),
58568
+ slug: z56.string(),
58569
+ path: z56.string(),
58570
+ excerpt: z56.string().nullable().optional(),
58571
+ image: z56.object({
58572
+ url: z56.string().optional().nullable(),
58573
+ alt: z56.string().optional().nullable()
58399
58574
  }).nullable().optional(),
58400
- publishedAt: z55.string().nullable().optional()
58575
+ publishedAt: z56.string().nullable().optional()
58401
58576
  });
58402
58577
  var blogPostBlockDefinition = {
58403
58578
  manifest: blogPostManifest,
@@ -58412,7 +58587,7 @@ init_schema3();
58412
58587
  init_builder();
58413
58588
  init_fragments();
58414
58589
  init_colorStyles();
58415
- import { z as z56 } from "zod";
58590
+ import { z as z57 } from "zod";
58416
58591
  var blogListingDataLoader = {
58417
58592
  endpoint: "listPublishedEntries",
58418
58593
  params: {
@@ -58730,24 +58905,24 @@ var blogListingManifest = createBlockManifest({
58730
58905
  spacing: "lg"
58731
58906
  }
58732
58907
  });
58733
- var blogPostListEntrySchema = z56.object({
58734
- id: z56.string(),
58735
- slug: z56.string(),
58736
- path: z56.string(),
58737
- title: z56.string(),
58738
- excerpt: z56.string().nullable().optional(),
58739
- publishedAt: z56.string().nullable().optional(),
58740
- updatedAt: z56.string(),
58741
- status: z56.string(),
58742
- image: z56.object({
58743
- url: z56.string(),
58744
- alt: z56.string().nullable().optional()
58908
+ var blogPostListEntrySchema = z57.object({
58909
+ id: z57.string(),
58910
+ slug: z57.string(),
58911
+ path: z57.string(),
58912
+ title: z57.string(),
58913
+ excerpt: z57.string().nullable().optional(),
58914
+ publishedAt: z57.string().nullable().optional(),
58915
+ updatedAt: z57.string(),
58916
+ status: z57.string(),
58917
+ image: z57.object({
58918
+ url: z57.string(),
58919
+ alt: z57.string().nullable().optional()
58745
58920
  }).nullable().optional()
58746
58921
  });
58747
58922
  var blogListingBlockDefinition = {
58748
58923
  manifest: blogListingManifest,
58749
58924
  dataSchemas: {
58750
- posts: z56.array(blogPostListEntrySchema).optional()
58925
+ posts: z57.array(blogPostListEntrySchema).optional()
58751
58926
  },
58752
58927
  dataLoaders: {
58753
58928
  posts: blogListingDataLoader
@@ -58826,7 +59001,7 @@ init_defineBlock();
58826
59001
  init_fragments2();
58827
59002
  init_form_interactive();
58828
59003
  init_builder();
58829
- import { z as z57 } from "zod";
59004
+ import { z as z58 } from "zod";
58830
59005
  var formComposition = composeFragments([
58831
59006
  { fragment: formCopyFragment },
58832
59007
  { fragment: formEmbedFragment }
@@ -58919,16 +59094,16 @@ var formManifest = createBlockManifest({
58919
59094
  tags: ["form", "contact", "input", "submit", "fields", "signup", "lead-capture"],
58920
59095
  icon: "FormInput"
58921
59096
  });
58922
- var formDataSchema = z57.object({
58923
- id: z57.string(),
58924
- siteId: z57.string(),
58925
- userId: z57.string(),
58926
- name: z57.string(),
58927
- slug: z57.string(),
58928
- schemaJson: z57.any(),
58929
- settingsJson: z57.any().optional(),
58930
- createdAt: z57.string(),
58931
- updatedAt: z57.string()
59097
+ var formDataSchema = z58.object({
59098
+ id: z58.string(),
59099
+ siteId: z58.string(),
59100
+ userId: z58.string(),
59101
+ name: z58.string(),
59102
+ slug: z58.string(),
59103
+ schemaJson: z58.any(),
59104
+ settingsJson: z58.any().optional(),
59105
+ createdAt: z58.string(),
59106
+ updatedAt: z58.string()
58932
59107
  });
58933
59108
  var formBlockDefinition = {
58934
59109
  manifest: formManifest,
@@ -59325,7 +59500,7 @@ init_builder();
59325
59500
  init_fragments();
59326
59501
 
59327
59502
  // ../blocks/src/system/transforms/registry/formatting.ts
59328
- import { z as z58 } from "zod";
59503
+ import { z as z59 } from "zod";
59329
59504
  var uppercaseTransform = {
59330
59505
  id: "string.uppercase",
59331
59506
  kind: "string",
@@ -59336,7 +59511,7 @@ var fallbackTransform = {
59336
59511
  id: "value.fallback",
59337
59512
  kind: "formatter",
59338
59513
  summary: "Provide fallback when value is null or undefined",
59339
- schema: z58.object({ fallback: z58.unknown() }),
59514
+ schema: z59.object({ fallback: z59.unknown() }),
59340
59515
  run: (value, options) => value === null || value === void 0 || value === "" ? options.fallback : value
59341
59516
  };
59342
59517
  var dateFormatShort = {
@@ -59393,8 +59568,8 @@ var csvTransform = {
59393
59568
  return normalized.length > 0 ? Array.from(new Set(normalized)).join(",") : "";
59394
59569
  }
59395
59570
  };
59396
- var marqueeLoopOptionsSchema = z58.object({
59397
- minItems: z58.number().int().min(1).default(10)
59571
+ var marqueeLoopOptionsSchema = z59.object({
59572
+ minItems: z59.number().int().min(1).default(10)
59398
59573
  });
59399
59574
  var marqueeLoopTransform = {
59400
59575
  id: "array.marqueeLoop",
@@ -59432,7 +59607,7 @@ init_site_styles();
59432
59607
  init_colorStyles();
59433
59608
  init_blockColorTokens();
59434
59609
  init_sectionState_shared();
59435
- import { z as z59 } from "zod";
59610
+ import { z as z60 } from "zod";
59436
59611
  var joinClasses6 = (parts) => parts.filter(
59437
59612
  (part) => typeof part === "string" && part.trim().length > 0
59438
59613
  ).join(" ").replace(/\s+/g, " ").trim();
@@ -59519,8 +59694,8 @@ function getNavStyleClasses(navStyle) {
59519
59694
  return baseClasses;
59520
59695
  }
59521
59696
  }
59522
- var headerNavClassOptionsSchema = z59.object({
59523
- base: z59.string().optional()
59697
+ var headerNavClassOptionsSchema = z60.object({
59698
+ base: z60.string().optional()
59524
59699
  });
59525
59700
  var headerNavLinkClassTransform = {
59526
59701
  id: "ui.headerNavLinkClass",
@@ -59639,8 +59814,8 @@ function resolveHeroTitleLength(content) {
59639
59814
  if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
59640
59815
  return "short";
59641
59816
  }
59642
- var heroContentWrapperClassSchema = z59.object({
59643
- base: z59.string().optional()
59817
+ var heroContentWrapperClassSchema = z60.object({
59818
+ base: z60.string().optional()
59644
59819
  });
59645
59820
  var heroContentWrapperClassTransform = {
59646
59821
  id: "ui.heroContentWrapperClass",
@@ -59686,8 +59861,8 @@ var heroStackJustifyFromVerticalAlignmentTransform = {
59686
59861
  return vertical === "top" ? "start" : vertical === "bottom" ? "end" : "center";
59687
59862
  }
59688
59863
  };
59689
- var heroGridClassFromVerticalAlignmentSchema = z59.object({
59690
- base: z59.string()
59864
+ var heroGridClassFromVerticalAlignmentSchema = z60.object({
59865
+ base: z60.string()
59691
59866
  });
59692
59867
  var heroGridClassFromVerticalAlignmentTransform = {
59693
59868
  id: "ui.heroGridClassFromVerticalAlignment",
@@ -59701,10 +59876,10 @@ var heroGridClassFromVerticalAlignmentTransform = {
59701
59876
  return joinClasses6([options.base, itemsClass]);
59702
59877
  }
59703
59878
  };
59704
- var imageFragmentClassOptionsSchema = z59.object({
59705
- base: z59.string(),
59706
- whenAuto: z59.string(),
59707
- whenFixed: z59.string()
59879
+ var imageFragmentClassOptionsSchema = z60.object({
59880
+ base: z60.string(),
59881
+ whenAuto: z60.string(),
59882
+ whenFixed: z60.string()
59708
59883
  });
59709
59884
  var imageFragmentClassTransform = {
59710
59885
  id: "ui.imageFragmentClass",
@@ -59720,9 +59895,9 @@ var imageFragmentClassTransform = {
59720
59895
  ]);
59721
59896
  }
59722
59897
  };
59723
- var imageFragmentSizeOptionsSchema = z59.object({
59724
- max: z59.number().int().positive().default(1920),
59725
- quality: z59.number().int().min(1).max(100).default(85)
59898
+ var imageFragmentSizeOptionsSchema = z60.object({
59899
+ max: z60.number().int().positive().default(1920),
59900
+ quality: z60.number().int().min(1).max(100).default(85)
59726
59901
  });
59727
59902
  var imageFragmentSizeTransform = {
59728
59903
  id: "ui.imageFragmentSize",
@@ -59742,9 +59917,9 @@ var imageFragmentSizeTransform = {
59742
59917
  return { width, height, quality, resize: "cover" };
59743
59918
  }
59744
59919
  };
59745
- var conditionalClassOptionsSchema = z59.object({
59746
- whenTrue: z59.string(),
59747
- whenFalse: z59.string()
59920
+ var conditionalClassOptionsSchema = z60.object({
59921
+ whenTrue: z60.string(),
59922
+ whenFalse: z60.string()
59748
59923
  });
59749
59924
  var conditionalClassTransform = {
59750
59925
  id: "ui.conditionalClass",
@@ -59756,9 +59931,9 @@ var conditionalClassTransform = {
59756
59931
  return isTrue ? options.whenTrue : options.whenFalse;
59757
59932
  }
59758
59933
  };
59759
- var twoColumnContainerClassOptionsSchema = z59.object({
59760
- base: z59.string(),
59761
- reverseClass: z59.string()
59934
+ var twoColumnContainerClassOptionsSchema = z60.object({
59935
+ base: z60.string(),
59936
+ reverseClass: z60.string()
59762
59937
  });
59763
59938
  var twoColumnContainerClassTransform = {
59764
59939
  id: "ui.twoColumnContainerClass",
@@ -59773,8 +59948,8 @@ var twoColumnContainerClassTransform = {
59773
59948
  ]);
59774
59949
  }
59775
59950
  };
59776
- var twoColumnFlexBasisOptionsSchema = z59.object({
59777
- side: z59.enum(["image", "text"])
59951
+ var twoColumnFlexBasisOptionsSchema = z60.object({
59952
+ side: z60.enum(["image", "text"])
59778
59953
  });
59779
59954
  var twoColumnFlexBasisTransform = {
59780
59955
  id: "ui.twoColumnFlexBasis",
@@ -59788,8 +59963,8 @@ var twoColumnFlexBasisTransform = {
59788
59963
  return `${percent}%`;
59789
59964
  }
59790
59965
  };
59791
- var columnsDesktopSpanClassOptionsSchema = z59.object({
59792
- base: z59.string().optional()
59966
+ var columnsDesktopSpanClassOptionsSchema = z60.object({
59967
+ base: z60.string().optional()
59793
59968
  });
59794
59969
  var columnsDesktopSpanClassTransform = {
59795
59970
  id: "ui.columnsDesktopSpanClass",
@@ -59831,8 +60006,8 @@ var columnsColsAtTransform = {
59831
60006
  id: "ui.columnsColsAt",
59832
60007
  kind: "formatter",
59833
60008
  summary: "Resolve columns count for a specific breakpoint",
59834
- schema: z59.object({
59835
- breakpoint: z59.enum(["mobile", "md", "lg", "xl"])
60009
+ schema: z60.object({
60010
+ breakpoint: z60.enum(["mobile", "md", "lg", "xl"])
59836
60011
  }),
59837
60012
  run: (value, options) => {
59838
60013
  const content = asPartialObject(value) ?? {};
@@ -59996,7 +60171,7 @@ var uiTransforms = [
59996
60171
  init_colorConversion();
59997
60172
  init_core();
59998
60173
  init_colorStyles();
59999
- import { z as z60 } from "zod";
60174
+ import { z as z61 } from "zod";
60000
60175
 
60001
60176
  // ../theme-core/src/siteChromePlacement.ts
60002
60177
  init_types3();
@@ -60112,8 +60287,8 @@ function resolveHeaderLogoAccommodationClass(logo) {
60112
60287
  return "header-logo-accommodation-inline";
60113
60288
  }
60114
60289
  }
60115
- var headerLogoClassSchema = z60.object({
60116
- base: z60.string().optional()
60290
+ var headerLogoClassSchema = z61.object({
60291
+ base: z61.string().optional()
60117
60292
  });
60118
60293
  var headerLogoClassTransform = {
60119
60294
  id: "layout.headerLogoClass",
@@ -60154,10 +60329,10 @@ var headerLogoTextVisibleTransform = {
60154
60329
  return resolveHeaderBrandDisplay(logo) !== "logo-only";
60155
60330
  }
60156
60331
  };
60157
- var maxWidthClassSchema = z60.object({
60158
- base: z60.string().optional(),
60159
- container: z60.string().optional(),
60160
- full: z60.string().optional()
60332
+ var maxWidthClassSchema = z61.object({
60333
+ base: z61.string().optional(),
60334
+ container: z61.string().optional(),
60335
+ full: z61.string().optional()
60161
60336
  });
60162
60337
  var maxWidthClassTransform = {
60163
60338
  id: "layout.maxWidthClass",
@@ -60173,11 +60348,11 @@ var maxWidthClassTransform = {
60173
60348
  return joinClasses7([base, chosen]);
60174
60349
  }
60175
60350
  };
60176
- var headerRootClassSchema = z60.object({
60177
- base: z60.string().optional(),
60178
- sticky: z60.string().optional(),
60179
- stickyTransparent: z60.string().optional(),
60180
- invert: z60.string().optional()
60351
+ var headerRootClassSchema = z61.object({
60352
+ base: z61.string().optional(),
60353
+ sticky: z61.string().optional(),
60354
+ stickyTransparent: z61.string().optional(),
60355
+ invert: z61.string().optional()
60181
60356
  });
60182
60357
  function resolveBackgroundVisualStyles(backgroundColor, tokens, defaultToken = "surface") {
60183
60358
  const backgroundToken = typeof backgroundColor === "string" && backgroundColor.trim().length > 0 ? backgroundColor : defaultToken;
@@ -60302,11 +60477,11 @@ var headerRootClassTransform = {
60302
60477
  return joinClasses7(classes);
60303
60478
  }
60304
60479
  };
60305
- var footerRootClassSchema = z60.object({
60306
- base: z60.string().optional(),
60307
- surface: z60.string().optional(),
60308
- tokenPrefix: z60.string().optional(),
60309
- transparent: z60.string().optional()
60480
+ var footerRootClassSchema = z61.object({
60481
+ base: z61.string().optional(),
60482
+ surface: z61.string().optional(),
60483
+ tokenPrefix: z61.string().optional(),
60484
+ transparent: z61.string().optional()
60310
60485
  });
60311
60486
  var footerRootClassTransform = {
60312
60487
  id: "layout.footerRootClass",
@@ -60421,8 +60596,8 @@ var footerAlignClassMap = {
60421
60596
  end: "rb-justify-end",
60422
60597
  "space-between": "rb-justify-between"
60423
60598
  };
60424
- var footerBottomBarClassSchema = z60.object({
60425
- base: z60.string().optional()
60599
+ var footerBottomBarClassSchema = z61.object({
60600
+ base: z61.string().optional()
60426
60601
  });
60427
60602
  var footerBottomBarClassTransform = {
60428
60603
  id: "layout.footerBottomBarClass",
@@ -60444,10 +60619,10 @@ var footerBottomBarClassTransform = {
60444
60619
  ]);
60445
60620
  }
60446
60621
  };
60447
- var footerBottomBarContainerClassSchema = z60.object({
60448
- base: z60.string().optional(),
60449
- fullBleed: z60.string().optional(),
60450
- contained: z60.string().optional()
60622
+ var footerBottomBarContainerClassSchema = z61.object({
60623
+ base: z61.string().optional(),
60624
+ fullBleed: z61.string().optional(),
60625
+ contained: z61.string().optional()
60451
60626
  });
60452
60627
  var footerBottomBarContainerClassTransform = {
60453
60628
  id: "layout.footerBottomBarContainerClass",
@@ -60573,9 +60748,9 @@ var footerSimpleNavClassTransform = {
60573
60748
  ]);
60574
60749
  }
60575
60750
  };
60576
- var footerSplitMainClassSchema = z60.object({
60577
- base: z60.string().optional(),
60578
- reverseClass: z60.string().optional()
60751
+ var footerSplitMainClassSchema = z61.object({
60752
+ base: z61.string().optional(),
60753
+ reverseClass: z61.string().optional()
60579
60754
  });
60580
60755
  var footerSplitMainClassTransform = {
60581
60756
  id: "layout.footerSplitMainClass",
@@ -60593,9 +60768,9 @@ var footerSplitMainClassTransform = {
60593
60768
  ]);
60594
60769
  }
60595
60770
  };
60596
- var footerLogoClassSchema = z60.object({
60597
- base: z60.string().optional(),
60598
- requireExplicitShow: z60.boolean().optional()
60771
+ var footerLogoClassSchema = z61.object({
60772
+ base: z61.string().optional(),
60773
+ requireExplicitShow: z61.boolean().optional()
60599
60774
  });
60600
60775
  var footerLogoClassTransform = {
60601
60776
  id: "layout.footerLogoClass",
@@ -60614,8 +60789,8 @@ var footerLogoClassTransform = {
60614
60789
  ]);
60615
60790
  }
60616
60791
  };
60617
- var footerLogoMediaClassSchema = z60.object({
60618
- base: z60.string().optional()
60792
+ var footerLogoMediaClassSchema = z61.object({
60793
+ base: z61.string().optional()
60619
60794
  });
60620
60795
  var footerLogoMediaClassTransform = {
60621
60796
  id: "layout.footerLogoMediaClass",
@@ -60676,12 +60851,12 @@ var layoutTransforms = [
60676
60851
  ];
60677
60852
 
60678
60853
  // ../blocks/src/system/transforms/registry/media.ts
60679
- import { z as z61 } from "zod";
60680
- var mediaFromUrlOptionsSchema = z61.object({
60681
- width: z61.number().int().positive().optional(),
60682
- height: z61.number().int().positive().optional(),
60683
- quality: z61.number().int().min(1).max(100).optional(),
60684
- resize: z61.enum(["cover", "contain", "fill"]).optional()
60854
+ import { z as z62 } from "zod";
60855
+ var mediaFromUrlOptionsSchema = z62.object({
60856
+ width: z62.number().int().positive().optional(),
60857
+ height: z62.number().int().positive().optional(),
60858
+ quality: z62.number().int().min(1).max(100).optional(),
60859
+ resize: z62.enum(["cover", "contain", "fill"]).optional()
60685
60860
  });
60686
60861
  function maybeBuildSupabaseTransformUrl(inputUrl, options) {
60687
60862
  const width = options.width;
@@ -60730,10 +60905,10 @@ var mediaTransforms = [mediaFromUrl];
60730
60905
 
60731
60906
  // ../blocks/src/system/transforms/registry/content.ts
60732
60907
  init_typeGuards2();
60733
- import { z as z62 } from "zod";
60734
- var supportedRichTextTokenSchema = z62.enum(["year", "site_name"]);
60735
- var interpolateRichTextTokensOptionsSchema = z62.object({
60736
- tokens: z62.array(supportedRichTextTokenSchema).default(["year", "site_name"])
60908
+ import { z as z63 } from "zod";
60909
+ var supportedRichTextTokenSchema = z63.enum(["year", "site_name"]);
60910
+ var interpolateRichTextTokensOptionsSchema = z63.object({
60911
+ tokens: z63.array(supportedRichTextTokenSchema).default(["year", "site_name"])
60737
60912
  });
60738
60913
  var richTextTokenPattern = /\{\{\s*([a-zA-Z0-9_]+)\s*\}\}/g;
60739
60914
  function getSiteName(context) {
@@ -63189,7 +63364,7 @@ init_fragments();
63189
63364
  init_boxStyles2();
63190
63365
  init_defineBlock();
63191
63366
  init_api_bindings();
63192
- import { z as z63 } from "zod";
63367
+ import { z as z64 } from "zod";
63193
63368
  var appointmentBookingManifest = createBlockManifest({
63194
63369
  id: "block.appointment-booking",
63195
63370
  version: "2.0.0",
@@ -63265,11 +63440,11 @@ var appointmentBookingManifest = createBlockManifest({
63265
63440
  })
63266
63441
  ]
63267
63442
  });
63268
- var availabilityDataSchema = z63.object({
63269
- slots: z63.array(z63.object({
63270
- startAt: z63.string(),
63271
- endAt: z63.string(),
63272
- resourceId: z63.string()
63443
+ var availabilityDataSchema = z64.object({
63444
+ slots: z64.array(z64.object({
63445
+ startAt: z64.string(),
63446
+ endAt: z64.string(),
63447
+ resourceId: z64.string()
63273
63448
  }))
63274
63449
  });
63275
63450
  var appointmentBookingBlockDefinition = {
@@ -65048,7 +65223,7 @@ init_boxStyles2();
65048
65223
  init_defineBlock();
65049
65224
  init_shared2();
65050
65225
  init_shared6();
65051
- import { z as z64 } from "zod";
65226
+ import { z as z65 } from "zod";
65052
65227
 
65053
65228
  // ../blocks/src/system/blocks/offerings-preview/model.ts
65054
65229
  init_src();
@@ -65371,13 +65546,13 @@ function normalizeTextOverride(value) {
65371
65546
  }
65372
65547
 
65373
65548
  // ../blocks/src/system/blocks/offerings-preview/index.ts
65374
- var publicRouteCandidatesSchema = z64.object({
65375
- routes: z64.array(z64.object({
65376
- entityId: z64.string(),
65377
- path: z64.string(),
65378
- title: z64.string(),
65379
- kind: z64.enum(["page", "content"]),
65380
- contentTypeKey: z64.string().nullable().optional()
65549
+ var publicRouteCandidatesSchema = z65.object({
65550
+ routes: z65.array(z65.object({
65551
+ entityId: z65.string(),
65552
+ path: z65.string(),
65553
+ title: z65.string(),
65554
+ kind: z65.enum(["page", "content"]),
65555
+ contentTypeKey: z65.string().nullable().optional()
65381
65556
  }))
65382
65557
  });
65383
65558
  var groupOverrideFields = [
@@ -65780,7 +65955,7 @@ init_builder();
65780
65955
  init_fragments();
65781
65956
  init_defineBlock();
65782
65957
  init_colorStyles();
65783
- import { z as z65 } from "zod";
65958
+ import { z as z66 } from "zod";
65784
65959
  var embedFields = [
65785
65960
  // Section heading
65786
65961
  parseFieldDefinition({
@@ -66011,18 +66186,18 @@ var embedManifest = createBlockManifest({
66011
66186
  spacing: "lg"
66012
66187
  }
66013
66188
  });
66014
- var embedEntrySchema = z65.object({
66015
- id: z65.string(),
66016
- identifier: z65.string(),
66017
- title: z65.string(),
66018
- slug: z65.string().nullable().optional(),
66019
- content: z65.record(z65.string(), z65.unknown()).optional(),
66020
- publishedAt: z65.string().nullable().optional()
66189
+ var embedEntrySchema = z66.object({
66190
+ id: z66.string(),
66191
+ identifier: z66.string(),
66192
+ title: z66.string(),
66193
+ slug: z66.string().nullable().optional(),
66194
+ content: z66.record(z66.string(), z66.unknown()).optional(),
66195
+ publishedAt: z66.string().nullable().optional()
66021
66196
  });
66022
66197
  var embedBlockDefinition = {
66023
66198
  manifest: embedManifest,
66024
66199
  dataSchemas: {
66025
- entries: z65.array(embedEntrySchema).optional()
66200
+ entries: z66.array(embedEntrySchema).optional()
66026
66201
  },
66027
66202
  dataLoaders: {
66028
66203
  entries: {
@@ -67462,7 +67637,7 @@ init_api_bindings();
67462
67637
  init_defineBlock();
67463
67638
  init_shop_interactive();
67464
67639
  init_shared4();
67465
- import { z as z66 } from "zod";
67640
+ import { z as z67 } from "zod";
67466
67641
  var productListManifest = createBlockManifest({
67467
67642
  id: "block.product-list",
67468
67643
  version: "1.0.0",
@@ -67595,7 +67770,7 @@ var productListBlockDefinition = {
67595
67770
  }
67596
67771
  }
67597
67772
  };
67598
- var productListDataSchema = z66.object({
67773
+ var productListDataSchema = z67.object({
67599
67774
  products: publicProductsResponseSchema.optional()
67600
67775
  });
67601
67776
 
@@ -68099,24 +68274,24 @@ init_schema3();
68099
68274
  init_defineBlock();
68100
68275
  init_builder();
68101
68276
  init_fragments();
68102
- import { z as z67 } from "zod";
68277
+ import { z as z68 } from "zod";
68103
68278
  init_media();
68104
68279
  var ITEM_NAME2 = "member";
68105
68280
  var teamMemberPhotoSchema = mediaSchema.refine((media2) => media2.type === "image", {
68106
68281
  message: "Team member photos must be image media"
68107
68282
  }).nullable();
68108
- var teamMemberDataSchema = z67.object({
68109
- _type: z67.literal("teamMember"),
68110
- id: z67.string(),
68111
- name: z67.string(),
68112
- role: z67.string().nullable(),
68113
- roleLabel: z67.string().nullable(),
68114
- bio: z67.string().nullable(),
68115
- summary: z67.string().nullable(),
68283
+ var teamMemberDataSchema = z68.object({
68284
+ _type: z68.literal("teamMember"),
68285
+ id: z68.string(),
68286
+ name: z68.string(),
68287
+ role: z68.string().nullable(),
68288
+ roleLabel: z68.string().nullable(),
68289
+ bio: z68.string().nullable(),
68290
+ summary: z68.string().nullable(),
68116
68291
  photo: teamMemberPhotoSchema,
68117
- profilePath: z67.string().nullable()
68292
+ profilePath: z68.string().nullable()
68118
68293
  });
68119
- var teamMembersDataSchema = z67.array(teamMemberDataSchema);
68294
+ var teamMembersDataSchema = z68.array(teamMemberDataSchema);
68120
68295
  var dynamicSourceWhen = { equals: "site_staff" };
68121
68296
  var manualSourceWhen = { equals: "site_staff", not: true };
68122
68297
  var headingNode = text(
@@ -70396,6 +70571,67 @@ var FigureNode = ({
70396
70571
 
70397
70572
  // ../blocks/src/system/runtime/nodes/basic.tsx
70398
70573
  init_buttons();
70574
+
70575
+ // ../path-utils/src/index.ts
70576
+ var PATH_SEPARATOR_REGEX = /\./g;
70577
+ var BRACKET_ACCESS_REGEX = /\[([^\]]+)\]/g;
70578
+ function isRecord15(value) {
70579
+ return typeof value === "object" && value !== null && !Array.isArray(value);
70580
+ }
70581
+ function isPathContainer(value) {
70582
+ return Array.isArray(value) || isRecord15(value);
70583
+ }
70584
+ function getContainerValue(container, segment) {
70585
+ if (typeof segment === "number") {
70586
+ return Array.isArray(container) ? container[segment] : void 0;
70587
+ }
70588
+ if (segment in container) {
70589
+ return Reflect.get(container, segment);
70590
+ }
70591
+ return void 0;
70592
+ }
70593
+ function parsePath(path) {
70594
+ if (Array.isArray(path)) return path;
70595
+ const segments = [];
70596
+ const parts = path.split(PATH_SEPARATOR_REGEX);
70597
+ for (const raw of parts) {
70598
+ if (!raw) continue;
70599
+ const baseMatch = raw.match(/^[^\[]+/);
70600
+ if (baseMatch !== null) {
70601
+ const base = baseMatch[1] ?? baseMatch[0];
70602
+ if (/^\d+$/.test(base)) {
70603
+ segments.push(Number(base));
70604
+ } else {
70605
+ segments.push(base);
70606
+ }
70607
+ }
70608
+ const bracketMatches = raw.matchAll(BRACKET_ACCESS_REGEX);
70609
+ for (const match of bracketMatches) {
70610
+ const token = match[1] ?? "";
70611
+ if (token.startsWith('"') || token.startsWith("'")) {
70612
+ segments.push(token.slice(1, -1));
70613
+ } else if (/^\d+$/.test(token)) {
70614
+ segments.push(Number(token));
70615
+ } else {
70616
+ segments.push(token);
70617
+ }
70618
+ }
70619
+ if (baseMatch === null && !raw.includes("[")) {
70620
+ segments.push(raw);
70621
+ }
70622
+ }
70623
+ return segments;
70624
+ }
70625
+ function getAtPath(source, path) {
70626
+ const segments = parsePath(path);
70627
+ return segments.reduce((current, segment) => {
70628
+ if (current === void 0 || current === null) return void 0;
70629
+ if (!isPathContainer(current)) return void 0;
70630
+ return getContainerValue(current, segment);
70631
+ }, source);
70632
+ }
70633
+
70634
+ // ../blocks/src/system/runtime/nodes/basic.tsx
70399
70635
  init_RichText();
70400
70636
 
70401
70637
  // ../blocks/src/primitives/content/components/Text.tsx
@@ -70413,13 +70649,53 @@ function Text2({
70413
70649
 
70414
70650
  // ../blocks/src/system/runtime/nodes/basic.tsx
70415
70651
  init_richText_coerce();
70652
+
70653
+ // ../blocks/src/system/runtime/nodes/renderInlineText.tsx
70416
70654
  import { jsx as jsx120 } from "react/jsx-runtime";
70417
- var TextNode = ({ value, children, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
70418
- return /* @__PURE__ */ jsx120(Text2, { ...rest, children: value ?? children });
70655
+ function renderInlineText(value) {
70656
+ return value.map((run, index) => renderRun(run, index));
70657
+ }
70658
+ function renderRun(run, key) {
70659
+ return (run.marks ?? []).reduceRight(
70660
+ (child, mark, index) => renderMark(mark, `${String(key)}-${index}`, child),
70661
+ run.text
70662
+ );
70663
+ }
70664
+ function renderMark(mark, key, child) {
70665
+ switch (mark.kind) {
70666
+ case "strong":
70667
+ return /* @__PURE__ */ jsx120("strong", { children: child }, key);
70668
+ case "emphasis":
70669
+ return /* @__PURE__ */ jsx120("em", { children: child }, key);
70670
+ case "accent":
70671
+ return /* @__PURE__ */ jsx120("span", { className: `rb-inline-text-accent rb-inline-text-accent-${mark.tone}`, children: child }, key);
70672
+ case "highlight":
70673
+ return /* @__PURE__ */ jsx120("span", { className: `rb-inline-text-highlight rb-inline-text-highlight-${mark.tone}`, children: child }, key);
70674
+ }
70675
+ }
70676
+
70677
+ // ../blocks/src/system/runtime/nodes/basic.tsx
70678
+ import { jsx as jsx121 } from "react/jsx-runtime";
70679
+ var TextNode = ({ value, children, blockId: _blockId, blockKind: _blockKind, blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, inlineTextFallbackPath, ...rest }) => {
70680
+ const inlineText = parseInlineTextFromUnknown(value);
70681
+ if (inlineText.ok && !isInlineTextEmpty(inlineText.value)) {
70682
+ return /* @__PURE__ */ jsx121(Text2, { ...rest, children: renderInlineText(inlineText.value) });
70683
+ }
70684
+ const fallbackValue = inlineTextFallbackPath ? readStringPath(blockContent, inlineTextFallbackPath) : null;
70685
+ return /* @__PURE__ */ jsx121(Text2, { ...rest, children: fallbackValue ?? textNodeContent(value) ?? children });
70419
70686
  };
70687
+ function textNodeContent(value) {
70688
+ if (value === null || value === void 0) return null;
70689
+ if (typeof value === "string" || typeof value === "number") return value;
70690
+ return null;
70691
+ }
70692
+ function readStringPath(source, path) {
70693
+ const value = getAtPath(source, path);
70694
+ return typeof value === "string" ? value : null;
70695
+ }
70420
70696
  var RichTextNode = ({ value, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
70421
70697
  const doc = coerceRichTextDoc(value);
70422
- return /* @__PURE__ */ jsx120(RichText, { doc: doc ?? void 0, ...rest });
70698
+ return /* @__PURE__ */ jsx121(RichText, { doc: doc ?? void 0, ...rest });
70423
70699
  };
70424
70700
  var ButtonNode = ({
70425
70701
  value,
@@ -70459,7 +70735,7 @@ var ButtonNode = ({
70459
70735
  extraClassName: className
70460
70736
  }) : className;
70461
70737
  if (resolvedHref) {
70462
- return /* @__PURE__ */ jsx120(
70738
+ return /* @__PURE__ */ jsx121(
70463
70739
  "a",
70464
70740
  {
70465
70741
  href: resolvedHref,
@@ -70471,7 +70747,7 @@ var ButtonNode = ({
70471
70747
  }
70472
70748
  );
70473
70749
  }
70474
- return /* @__PURE__ */ jsx120(
70750
+ return /* @__PURE__ */ jsx121(
70475
70751
  "button",
70476
70752
  {
70477
70753
  type,
@@ -70503,9 +70779,9 @@ var LinkNode = ({
70503
70779
  console.warn("[LinkNode] Missing href for link-required link");
70504
70780
  }
70505
70781
  if (linkRequired) return null;
70506
- return /* @__PURE__ */ jsx120("span", { className, ...rest, children });
70782
+ return /* @__PURE__ */ jsx121("span", { className, ...rest, children });
70507
70783
  }
70508
- return /* @__PURE__ */ jsx120("a", { href: resolvedHref, className, target, rel, ...rest, children });
70784
+ return /* @__PURE__ */ jsx121("a", { href: resolvedHref, className, target, rel, ...rest, children });
70509
70785
  };
70510
70786
 
70511
70787
  // ../blocks/src/system/icons/cta.ts
@@ -70605,7 +70881,7 @@ function getIconComponent(name) {
70605
70881
  }
70606
70882
 
70607
70883
  // ../blocks/src/system/runtime/nodes/icon.tsx
70608
- import { jsx as jsx121 } from "react/jsx-runtime";
70884
+ import { jsx as jsx122 } from "react/jsx-runtime";
70609
70885
  var IconNode = ({
70610
70886
  value,
70611
70887
  title,
@@ -70621,7 +70897,7 @@ var IconNode = ({
70621
70897
  if (!Icon2) return null;
70622
70898
  const ariaLabel = rest["aria-label"];
70623
70899
  const decorative = !ariaLabel && !title;
70624
- return /* @__PURE__ */ jsx121(
70900
+ return /* @__PURE__ */ jsx122(
70625
70901
  Icon2,
70626
70902
  {
70627
70903
  className,
@@ -70633,7 +70909,7 @@ var IconNode = ({
70633
70909
  };
70634
70910
 
70635
70911
  // ../blocks/src/system/runtime/nodes/feature-card-icon.tsx
70636
- import { jsx as jsx122 } from "react/jsx-runtime";
70912
+ import { jsx as jsx123 } from "react/jsx-runtime";
70637
70913
  function joinClasses8(...values) {
70638
70914
  const className = values.filter(Boolean).join(" ");
70639
70915
  return className || void 0;
@@ -70657,7 +70933,7 @@ var FeatureCardIconNode = ({
70657
70933
  const iconId = resolvedIcon.kind === "semantic" ? resolvedIcon.iconId : resolvedIcon.kind === "generated_fallback" ? resolvedIcon.semanticFallbackIconId : null;
70658
70934
  const resolvedTreatment = resolveTreatment(treatment);
70659
70935
  const hasIcon = resolvedIcon.kind !== "none";
70660
- return /* @__PURE__ */ jsx122(
70936
+ return /* @__PURE__ */ jsx123(
70661
70937
  "div",
70662
70938
  {
70663
70939
  className: joinClasses8(
@@ -70667,7 +70943,7 @@ var FeatureCardIconNode = ({
70667
70943
  className
70668
70944
  ),
70669
70945
  "aria-hidden": "true",
70670
- children: resolvedIcon.kind === "generated_asset" ? /* @__PURE__ */ jsx122(
70946
+ children: resolvedIcon.kind === "generated_asset" ? /* @__PURE__ */ jsx123(
70671
70947
  "img",
70672
70948
  {
70673
70949
  src: resolvedIcon.asset.src,
@@ -70678,7 +70954,7 @@ var FeatureCardIconNode = ({
70678
70954
  decoding: "async",
70679
70955
  className: "rb-feature-card-icon rb-feature-card-icon--generated"
70680
70956
  }
70681
- ) : iconId ? /* @__PURE__ */ jsx122(
70957
+ ) : iconId ? /* @__PURE__ */ jsx123(
70682
70958
  IconNode,
70683
70959
  {
70684
70960
  value: iconId,
@@ -70698,7 +70974,7 @@ init_colorStyles();
70698
70974
  init_media();
70699
70975
  init_buttons();
70700
70976
  init_media3();
70701
- import { jsx as jsx123, jsxs as jsxs72 } from "react/jsx-runtime";
70977
+ import { jsx as jsx124, jsxs as jsxs72 } from "react/jsx-runtime";
70702
70978
  var FILE_DOWNLOAD_BUTTON_VARIANTS = [
70703
70979
  "primary",
70704
70980
  "secondary",
@@ -70718,13 +70994,13 @@ function displayFilename(value) {
70718
70994
  function iconForMediaType(type) {
70719
70995
  switch (type) {
70720
70996
  case "audio":
70721
- return /* @__PURE__ */ jsx123(FileAudioIcon, { "aria-hidden": "true", size: 24 });
70997
+ return /* @__PURE__ */ jsx124(FileAudioIcon, { "aria-hidden": "true", size: 24 });
70722
70998
  case "document":
70723
- return /* @__PURE__ */ jsx123(FileTextIcon, { "aria-hidden": "true", size: 24 });
70999
+ return /* @__PURE__ */ jsx124(FileTextIcon, { "aria-hidden": "true", size: 24 });
70724
71000
  case "spreadsheet":
70725
- return /* @__PURE__ */ jsx123(FileSpreadsheetIcon, { "aria-hidden": "true", size: 24 });
71001
+ return /* @__PURE__ */ jsx124(FileSpreadsheetIcon, { "aria-hidden": "true", size: 24 });
70726
71002
  case "archive":
70727
- return /* @__PURE__ */ jsx123(FileArchiveIcon, { "aria-hidden": "true", size: 24 });
71003
+ return /* @__PURE__ */ jsx124(FileArchiveIcon, { "aria-hidden": "true", size: 24 });
70728
71004
  }
70729
71005
  }
70730
71006
  function normalizeButtonVariant(value) {
@@ -70746,9 +71022,9 @@ function FileDownloadNode({
70746
71022
  const body = description?.trim();
70747
71023
  const label = buttonLabel?.trim() || "Download";
70748
71024
  const variant = normalizeButtonVariant(buttonVariant);
70749
- return /* @__PURE__ */ jsx123("div", { className, children: /* @__PURE__ */ jsxs72("div", { className: "card-surface rb-flex rb-flex-col rb-gap-4 rb-p-5 rb-sm-flex-row rb-sm-items-center rb-sm-justify-between", children: [
71025
+ return /* @__PURE__ */ jsx124("div", { className, children: /* @__PURE__ */ jsxs72("div", { className: "card-surface rb-flex rb-flex-col rb-gap-4 rb-p-5 rb-sm-flex-row rb-sm-items-center rb-sm-justify-between", children: [
70750
71026
  /* @__PURE__ */ jsxs72("div", { className: "rb-flex rb-min-w-0 rb-items-start rb-gap-3", children: [
70751
- /* @__PURE__ */ jsx123(
71027
+ /* @__PURE__ */ jsx124(
70752
71028
  "span",
70753
71029
  {
70754
71030
  className: "rb-mt-1 rb-flex rb-h-10 rb-w-10 rb-shrink-0 rb-items-center rb-justify-center rb-rounded-full rb-border",
@@ -70757,7 +71033,7 @@ function FileDownloadNode({
70757
71033
  }
70758
71034
  ),
70759
71035
  /* @__PURE__ */ jsxs72("div", { className: "rb-min-w-0 rb-space-y-1", children: [
70760
- /* @__PURE__ */ jsx123(
71036
+ /* @__PURE__ */ jsx124(
70761
71037
  "h2",
70762
71038
  {
70763
71039
  className: "rb-m-0 rb-text-lg rb-font-semibold",
@@ -70765,7 +71041,7 @@ function FileDownloadNode({
70765
71041
  children: heading
70766
71042
  }
70767
71043
  ),
70768
- body ? /* @__PURE__ */ jsx123(
71044
+ body ? /* @__PURE__ */ jsx124(
70769
71045
  "p",
70770
71046
  {
70771
71047
  className: "rb-m-0 rb-text-sm",
@@ -70773,7 +71049,7 @@ function FileDownloadNode({
70773
71049
  children: body
70774
71050
  }
70775
71051
  ) : null,
70776
- /* @__PURE__ */ jsx123(
71052
+ /* @__PURE__ */ jsx124(
70777
71053
  "p",
70778
71054
  {
70779
71055
  className: "rb-m-0 rb-truncate rb-text-xs",
@@ -70794,7 +71070,7 @@ function FileDownloadNode({
70794
71070
  extraClassName: "rb-inline-flex rb-shrink-0 rb-items-center rb-justify-center rb-gap-2"
70795
71071
  }),
70796
71072
  children: [
70797
- /* @__PURE__ */ jsx123(DownloadIcon, { "aria-hidden": "true", size: 24 }),
71073
+ /* @__PURE__ */ jsx124(DownloadIcon, { "aria-hidden": "true", size: 24 }),
70798
71074
  label
70799
71075
  ]
70800
71076
  }
@@ -70947,7 +71223,7 @@ function getVideoEmbed(url) {
70947
71223
 
70948
71224
  // ../blocks/src/system/runtime/nodes/video-embed.tsx
70949
71225
  init_colorStyles();
70950
- import { jsx as jsx124, jsxs as jsxs73 } from "react/jsx-runtime";
71226
+ import { jsx as jsx125, jsxs as jsxs73 } from "react/jsx-runtime";
70951
71227
  var VideoEmbedNode = ({
70952
71228
  value,
70953
71229
  className,
@@ -70967,7 +71243,7 @@ var VideoEmbedNode = ({
70967
71243
  }
70968
71244
  const embedInfo = getVideoEmbed(value);
70969
71245
  if (!embedInfo) {
70970
- return /* @__PURE__ */ jsx124(
71246
+ return /* @__PURE__ */ jsx125(
70971
71247
  "div",
70972
71248
  {
70973
71249
  className,
@@ -70992,7 +71268,7 @@ var VideoEmbedNode = ({
70992
71268
  const title = getVideoTitle(embedInfo);
70993
71269
  const loadingStrategy = getVideoEmbedLoadingStrategy(embedInfo.provider);
70994
71270
  const shouldDeferSrc = loadingStrategy === "defer-until-near-viewport";
70995
- return /* @__PURE__ */ jsx124("div", { ...rest, children: /* @__PURE__ */ jsxs73(
71271
+ return /* @__PURE__ */ jsx125("div", { ...rest, children: /* @__PURE__ */ jsxs73(
70996
71272
  "div",
70997
71273
  {
70998
71274
  className,
@@ -71004,7 +71280,7 @@ var VideoEmbedNode = ({
71004
71280
  width: "100%"
71005
71281
  },
71006
71282
  children: [
71007
- /* @__PURE__ */ jsx124(
71283
+ /* @__PURE__ */ jsx125(
71008
71284
  "iframe",
71009
71285
  {
71010
71286
  src: shouldDeferSrc ? void 0 : embedInfo.embedUrl,
@@ -71025,7 +71301,7 @@ var VideoEmbedNode = ({
71025
71301
  allowFullScreen: true
71026
71302
  }
71027
71303
  ),
71028
- shouldDeferSrc ? /* @__PURE__ */ jsx124("noscript", { children: /* @__PURE__ */ jsx124("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
71304
+ shouldDeferSrc ? /* @__PURE__ */ jsx125("noscript", { children: /* @__PURE__ */ jsx125("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
71029
71305
  ]
71030
71306
  }
71031
71307
  ) });
@@ -71069,7 +71345,7 @@ init_clsx();
71069
71345
  import React32 from "react";
71070
71346
 
71071
71347
  // ../blocks/src/system/runtime/islands/ssr.tsx
71072
- import { jsx as jsx125 } from "react/jsx-runtime";
71348
+ import { jsx as jsx126 } from "react/jsx-runtime";
71073
71349
  function getIslandRootProps(kind, id) {
71074
71350
  const resolved = { "data-rb-island": kind };
71075
71351
  if (id) resolved["data-rb-island-id"] = id;
@@ -71079,7 +71355,7 @@ function serializeIslandProps(value) {
71079
71355
  return JSON.stringify(value).replace(/</g, "\\u003c");
71080
71356
  }
71081
71357
  function IslandPropsScript({ value }) {
71082
- return /* @__PURE__ */ jsx125(
71358
+ return /* @__PURE__ */ jsx126(
71083
71359
  "script",
71084
71360
  {
71085
71361
  type: "application/json",
@@ -71091,7 +71367,7 @@ function IslandPropsScript({ value }) {
71091
71367
 
71092
71368
  // ../blocks/src/system/runtime/nodes/carousel.server.tsx
71093
71369
  init_carousel_shared();
71094
- import { jsx as jsx126, jsxs as jsxs74 } from "react/jsx-runtime";
71370
+ import { jsx as jsx127, jsxs as jsxs74 } from "react/jsx-runtime";
71095
71371
  var CarouselNodeSSR = ({
71096
71372
  blockId,
71097
71373
  children,
@@ -71122,7 +71398,7 @@ var CarouselNodeSSR = ({
71122
71398
  "data-show-controls": controlsEnabled ? "true" : "false",
71123
71399
  ...getIslandRootProps("carousel", blockId),
71124
71400
  children: [
71125
- /* @__PURE__ */ jsx126(
71401
+ /* @__PURE__ */ jsx127(
71126
71402
  IslandPropsScript,
71127
71403
  {
71128
71404
  value: {
@@ -71137,7 +71413,7 @@ var CarouselNodeSSR = ({
71137
71413
  }
71138
71414
  }
71139
71415
  ),
71140
- /* @__PURE__ */ jsx126("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx126(
71416
+ /* @__PURE__ */ jsx127("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx127(
71141
71417
  "div",
71142
71418
  {
71143
71419
  className: clsx_default(
@@ -71145,7 +71421,7 @@ var CarouselNodeSSR = ({
71145
71421
  "rb-overflow-x-auto",
71146
71422
  shouldSnap && "rb-snap-x rb-snap-mandatory"
71147
71423
  ),
71148
- children: /* @__PURE__ */ jsx126("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx126(
71424
+ children: /* @__PURE__ */ jsx127("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx127(
71149
71425
  "div",
71150
71426
  {
71151
71427
  "data-carousel-slide": true,
@@ -71219,7 +71495,7 @@ function assertNever8(value) {
71219
71495
  }
71220
71496
 
71221
71497
  // ../blocks/src/system/runtime/nodes/accordion.server.tsx
71222
- import { jsx as jsx127, jsxs as jsxs75 } from "react/jsx-runtime";
71498
+ import { jsx as jsx128, jsxs as jsxs75 } from "react/jsx-runtime";
71223
71499
  var ACCORDION_ICONS = {
71224
71500
  Plus: PlusIcon,
71225
71501
  Minus: MinusIcon,
@@ -71244,7 +71520,7 @@ var AccordionNodeSSR = ({
71244
71520
  "data-default-value": Array.isArray(defaultValue) ? defaultValue.join(",") : defaultValue,
71245
71521
  ...getIslandRootProps("accordion", blockId),
71246
71522
  children: [
71247
- /* @__PURE__ */ jsx127(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
71523
+ /* @__PURE__ */ jsx128(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
71248
71524
  children
71249
71525
  ]
71250
71526
  }
@@ -71276,7 +71552,7 @@ var AccordionItemNodeSSR = ({
71276
71552
  "data-state": "closed",
71277
71553
  children: [
71278
71554
  /* @__PURE__ */ jsxs75("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
71279
- /* @__PURE__ */ jsx127("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
71555
+ /* @__PURE__ */ jsx128("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
71280
71556
  /* @__PURE__ */ jsxs75(
71281
71557
  "span",
71282
71558
  {
@@ -71286,13 +71562,13 @@ var AccordionItemNodeSSR = ({
71286
71562
  "data-accordion-icon-motion": iconTreatment?.motion,
71287
71563
  style: iconColorStyle,
71288
71564
  children: [
71289
- ClosedIconComponent && /* @__PURE__ */ jsx127(ClosedIconComponent, { className: "accordion-icon-closed" }),
71290
- OpenIconComponent && /* @__PURE__ */ jsx127(OpenIconComponent, { className: "accordion-icon-open" })
71565
+ ClosedIconComponent && /* @__PURE__ */ jsx128(ClosedIconComponent, { className: "accordion-icon-closed" }),
71566
+ OpenIconComponent && /* @__PURE__ */ jsx128(OpenIconComponent, { className: "accordion-icon-open" })
71291
71567
  ]
71292
71568
  }
71293
71569
  )
71294
71570
  ] }),
71295
- /* @__PURE__ */ jsx127(
71571
+ /* @__PURE__ */ jsx128(
71296
71572
  "div",
71297
71573
  {
71298
71574
  className: "accordion-content",
@@ -71301,7 +71577,7 @@ var AccordionItemNodeSSR = ({
71301
71577
  hidden: true,
71302
71578
  "aria-hidden": "true",
71303
71579
  inert: true,
71304
- children: /* @__PURE__ */ jsx127("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
71580
+ children: /* @__PURE__ */ jsx128("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
71305
71581
  }
71306
71582
  )
71307
71583
  ]
@@ -71311,12 +71587,12 @@ var AccordionItemNodeSSR = ({
71311
71587
  function resolveNode(value) {
71312
71588
  if (typeof value === "string" || typeof value === "number") return String(value);
71313
71589
  const doc = coerceRichTextDoc(value);
71314
- if (doc) return /* @__PURE__ */ jsx127(RichText, { doc });
71590
+ if (doc) return /* @__PURE__ */ jsx128(RichText, { doc });
71315
71591
  return value;
71316
71592
  }
71317
71593
 
71318
71594
  // ../blocks/src/system/runtime/nodes/header-section.server.tsx
71319
- import { jsx as jsx128, jsxs as jsxs76 } from "react/jsx-runtime";
71595
+ import { jsx as jsx129, jsxs as jsxs76 } from "react/jsx-runtime";
71320
71596
  function hasShrinkClasses(className) {
71321
71597
  return typeof className === "string" && className.includes("rb-header-shrink");
71322
71598
  }
@@ -71349,8 +71625,8 @@ var HeaderSectionNode = ({
71349
71625
  "data-block-id": blockId ?? void 0,
71350
71626
  "data-preview-site-chrome-surface": previewSiteChromeSurface,
71351
71627
  children: [
71352
- /* @__PURE__ */ jsx128(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
71353
- /* @__PURE__ */ jsx128(
71628
+ /* @__PURE__ */ jsx129(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
71629
+ /* @__PURE__ */ jsx129(
71354
71630
  Section_default,
71355
71631
  {
71356
71632
  as: asProp,
@@ -71373,7 +71649,7 @@ init_spinner2();
71373
71649
 
71374
71650
  // ../blocks/src/system/runtime/nodes/booking-form.server.tsx
71375
71651
  init_booking_form_interactive();
71376
- import { Fragment as Fragment28, jsx as jsx129, jsxs as jsxs77 } from "react/jsx-runtime";
71652
+ import { Fragment as Fragment28, jsx as jsx130, jsxs as jsxs77 } from "react/jsx-runtime";
71377
71653
  function BookingFormSSR({
71378
71654
  blockId,
71379
71655
  siteId,
@@ -71423,10 +71699,10 @@ function BookingFormSSR({
71423
71699
  className: `booking-form-ssr ${className ?? ""}`.trim(),
71424
71700
  ...getIslandRootProps("booking-form", blockId),
71425
71701
  children: [
71426
- /* @__PURE__ */ jsx129(IslandPropsScript, { value: islandProps }),
71427
- /* @__PURE__ */ jsx129("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx129("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs77(Fragment28, { children: [
71428
- /* @__PURE__ */ jsx129("strong", { children: display.submitLabel }),
71429
- display.successMessage ? /* @__PURE__ */ jsx129("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
71702
+ /* @__PURE__ */ jsx130(IslandPropsScript, { value: islandProps }),
71703
+ /* @__PURE__ */ jsx130("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx130("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs77(Fragment28, { children: [
71704
+ /* @__PURE__ */ jsx130("strong", { children: display.submitLabel }),
71705
+ display.successMessage ? /* @__PURE__ */ jsx130("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
71430
71706
  ] }) }),
71431
71707
  children
71432
71708
  ]
@@ -71438,7 +71714,7 @@ var booking_form_server_default = BookingFormSSR;
71438
71714
  // ../blocks/src/system/runtime/nodes/event-details.server.tsx
71439
71715
  init_logic();
71440
71716
  init_view();
71441
- import { jsx as jsx130, jsxs as jsxs78 } from "react/jsx-runtime";
71717
+ import { jsx as jsx131, jsxs as jsxs78 } from "react/jsx-runtime";
71442
71718
  function EventDetailsSSR({
71443
71719
  blockId,
71444
71720
  occurrenceContext,
@@ -71474,7 +71750,7 @@ function EventDetailsSSR({
71474
71750
  "data-block": "event-details",
71475
71751
  ...getIslandRootProps("event-details", blockId),
71476
71752
  children: [
71477
- /* @__PURE__ */ jsx130(
71753
+ /* @__PURE__ */ jsx131(
71478
71754
  IslandPropsScript,
71479
71755
  {
71480
71756
  value: {
@@ -71495,7 +71771,7 @@ function EventDetailsSSR({
71495
71771
  }
71496
71772
  }
71497
71773
  ),
71498
- /* @__PURE__ */ jsx130(
71774
+ /* @__PURE__ */ jsx131(
71499
71775
  EventDetailsView,
71500
71776
  {
71501
71777
  selection,
@@ -71509,7 +71785,7 @@ function EventDetailsSSR({
71509
71785
  applicableMemberships,
71510
71786
  autoApplyDiscount: autoApplyDiscount ?? null,
71511
71787
  mapClassName: "venue-map event-details-map",
71512
- renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx130("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx130(
71788
+ renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx131("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx131(
71513
71789
  "div",
71514
71790
  {
71515
71791
  className: className2,
@@ -71535,7 +71811,7 @@ var event_details_server_default = EventDetailsSSR;
71535
71811
  // ../blocks/src/system/runtime/nodes/location-map.server.tsx
71536
71812
  init_location_map_shared();
71537
71813
  init_location_map_view();
71538
- import { jsx as jsx131, jsxs as jsxs79 } from "react/jsx-runtime";
71814
+ import { jsx as jsx132, jsxs as jsxs79 } from "react/jsx-runtime";
71539
71815
  function LocationMapSSR(props2) {
71540
71816
  const normalized = normalizeLocationMapProps(props2);
71541
71817
  const hydrationProps = toLocationMapHydrationProps(props2);
@@ -71546,8 +71822,8 @@ function LocationMapSSR(props2) {
71546
71822
  "data-block": "location-map",
71547
71823
  ...getIslandRootProps("location-map", props2.blockId),
71548
71824
  children: [
71549
- /* @__PURE__ */ jsx131(IslandPropsScript, { value: hydrationProps }),
71550
- /* @__PURE__ */ jsx131(
71825
+ /* @__PURE__ */ jsx132(IslandPropsScript, { value: hydrationProps }),
71826
+ /* @__PURE__ */ jsx132(
71551
71827
  LocationMapView,
71552
71828
  {
71553
71829
  addressText: normalized.addressText,
@@ -71558,7 +71834,7 @@ function LocationMapSSR(props2) {
71558
71834
  showDirections: normalized.showDirections,
71559
71835
  directionsLabel: normalized.directionsLabel,
71560
71836
  unresolvedMessage: normalized.unresolvedMessage,
71561
- renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx131(
71837
+ renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx132(
71562
71838
  "div",
71563
71839
  {
71564
71840
  className,
@@ -71699,12 +71975,12 @@ init_shared6();
71699
71975
  init_RichText();
71700
71976
  init_richText_coerce();
71701
71977
  init_DateTimeTile();
71702
- import { jsx as jsx132, jsxs as jsxs80 } from "react/jsx-runtime";
71978
+ import { jsx as jsx133, jsxs as jsxs80 } from "react/jsx-runtime";
71703
71979
  function TeamMemberName2({
71704
71980
  name,
71705
71981
  profilePath
71706
71982
  }) {
71707
- return profilePath ? /* @__PURE__ */ jsx132("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx132("strong", { children: name }) }) : /* @__PURE__ */ jsx132("strong", { children: name });
71983
+ return profilePath ? /* @__PURE__ */ jsx133("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx133("strong", { children: name }) }) : /* @__PURE__ */ jsx133("strong", { children: name });
71708
71984
  }
71709
71985
  function parseLimit2(value, fallback2) {
71710
71986
  if (value === "all") return "all";
@@ -71725,7 +72001,7 @@ function CourseDetailsView(props2) {
71725
72001
  showMembershipNote = true
71726
72002
  } = props2;
71727
72003
  if (!course) {
71728
- return /* @__PURE__ */ jsx132("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
72004
+ return /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
71729
72005
  }
71730
72006
  const pricing = resolveCoursePricingState(course);
71731
72007
  const sessionLimit = parseLimit2(sessionsLimit, 10);
@@ -71735,12 +72011,12 @@ function CourseDetailsView(props2) {
71735
72011
  const descriptionDoc = showDescription ? coerceRichTextDoc(course.description) : null;
71736
72012
  const teamMembers = course.teamMembers ?? [];
71737
72013
  return /* @__PURE__ */ jsxs80("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
71738
- showTitle && /* @__PURE__ */ jsx132("h3", { children: course.title }),
72014
+ showTitle && /* @__PURE__ */ jsx133("h3", { children: course.title }),
71739
72015
  /* @__PURE__ */ jsxs80("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
71740
72016
  /* @__PURE__ */ jsxs80("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
71741
72017
  showPrice && /* @__PURE__ */ jsxs80("div", { children: [
71742
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
71743
- pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx132("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs80("div", { children: [
72018
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
72019
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx133("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs80("div", { children: [
71744
72020
  /* @__PURE__ */ jsxs80("strong", { children: [
71745
72021
  option.name,
71746
72022
  ": ",
@@ -71749,47 +72025,47 @@ function CourseDetailsView(props2) {
71749
72025
  pricing.currency
71750
72026
  )
71751
72027
  ] }),
71752
- option.description ? /* @__PURE__ */ jsx132("p", { className: "rb-caption status-muted", children: option.description }) : null
71753
- ] }, option.id)) }) : /* @__PURE__ */ jsx132("div", { children: /* @__PURE__ */ jsx132("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
72028
+ option.description ? /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: option.description }) : null
72029
+ ] }, option.id)) }) : /* @__PURE__ */ jsx133("div", { children: /* @__PURE__ */ jsx133("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
71754
72030
  ] }),
71755
72031
  showCapacity && /* @__PURE__ */ jsxs80("div", { children: [
71756
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: "Spots" }),
71757
- /* @__PURE__ */ jsx132("div", { children: /* @__PURE__ */ jsx132("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
72032
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Spots" }),
72033
+ /* @__PURE__ */ jsx133("div", { children: /* @__PURE__ */ jsx133("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
71758
72034
  ] }),
71759
72035
  showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs80("div", { children: [
71760
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: "Membership" }),
71761
- /* @__PURE__ */ jsx132("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
72036
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Membership" }),
72037
+ /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
71762
72038
  ] }),
71763
72039
  teamMembers.length > 0 && /* @__PURE__ */ jsxs80("div", { children: [
71764
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: "Team members" }),
71765
- /* @__PURE__ */ jsx132("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs80("div", { children: [
71766
- /* @__PURE__ */ jsx132("p", { children: /* @__PURE__ */ jsx132(
72040
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Team members" }),
72041
+ /* @__PURE__ */ jsx133("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs80("div", { children: [
72042
+ /* @__PURE__ */ jsx133("p", { children: /* @__PURE__ */ jsx133(
71767
72043
  TeamMemberName2,
71768
72044
  {
71769
72045
  name: teamMember.name,
71770
72046
  profilePath: teamMember.profilePath
71771
72047
  }
71772
72048
  ) }),
71773
- teamMember.summary && /* @__PURE__ */ jsx132("p", { className: "rb-caption status-muted", children: teamMember.summary })
72049
+ teamMember.summary && /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: teamMember.summary })
71774
72050
  ] }, teamMember.id)) })
71775
72051
  ] })
71776
72052
  ] }),
71777
72053
  /* @__PURE__ */ jsxs80("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
71778
72054
  showVenue && course.venue && /* @__PURE__ */ jsxs80("div", { children: [
71779
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: "Venue" }),
71780
- /* @__PURE__ */ jsx132("h3", { children: course.venue.name }),
71781
- course.venue.address && /* @__PURE__ */ jsx132("p", { className: "rb-caption status-muted", children: course.venue.address })
72055
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Venue" }),
72056
+ /* @__PURE__ */ jsx133("h3", { children: course.venue.name }),
72057
+ course.venue.address && /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: course.venue.address })
71782
72058
  ] }),
71783
72059
  showEnrollmentStatus && /* @__PURE__ */ jsxs80("div", { children: [
71784
- /* @__PURE__ */ jsx132("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
71785
- /* @__PURE__ */ jsx132("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx132("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
72060
+ /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
72061
+ /* @__PURE__ */ jsx133("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx133("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
71786
72062
  ] })
71787
72063
  ] })
71788
72064
  ] }),
71789
- descriptionDoc && /* @__PURE__ */ jsx132("div", { className: "cd-description", children: /* @__PURE__ */ jsx132(RichText, { doc: descriptionDoc }) }),
72065
+ descriptionDoc && /* @__PURE__ */ jsx133("div", { className: "cd-description", children: /* @__PURE__ */ jsx133(RichText, { doc: descriptionDoc }) }),
71790
72066
  showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs80("div", { children: [
71791
- /* @__PURE__ */ jsx132("div", { className: "rb-label", children: "Sessions" }),
71792
- /* @__PURE__ */ jsx132("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx132("div", { className: "rb-tile", children: /* @__PURE__ */ jsx132(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
72067
+ /* @__PURE__ */ jsx133("div", { className: "rb-label", children: "Sessions" }),
72068
+ /* @__PURE__ */ jsx133("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx133("div", { className: "rb-tile", children: /* @__PURE__ */ jsx133(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
71793
72069
  hasMoreSessions && /* @__PURE__ */ jsxs80("p", { className: "cd-sessions__more", children: [
71794
72070
  "Showing ",
71795
72071
  visibleSessions.length,
@@ -71802,7 +72078,7 @@ function CourseDetailsView(props2) {
71802
72078
  }
71803
72079
 
71804
72080
  // ../blocks/src/system/runtime/nodes/course-details.server.tsx
71805
- import { jsx as jsx133, jsxs as jsxs81 } from "react/jsx-runtime";
72081
+ import { jsx as jsx134, jsxs as jsxs81 } from "react/jsx-runtime";
71806
72082
  function CourseDetailsSSR({
71807
72083
  courses,
71808
72084
  contentEntry,
@@ -71841,7 +72117,7 @@ function CourseDetailsSSR({
71841
72117
  const lastPastRun = pastRuns[0] ?? null;
71842
72118
  const nonPastRuns = scopedSorted.filter(({ range }) => !(range.end && range.end <= now));
71843
72119
  return /* @__PURE__ */ jsxs81("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
71844
- selection.selected ? /* @__PURE__ */ jsx133(
72120
+ selection.selected ? /* @__PURE__ */ jsx134(
71845
72121
  CourseDetailsView,
71846
72122
  {
71847
72123
  course: selection.selected,
@@ -71857,30 +72133,30 @@ function CourseDetailsSSR({
71857
72133
  }
71858
72134
  ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs81("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
71859
72135
  /* @__PURE__ */ jsxs81("div", { children: [
71860
- /* @__PURE__ */ jsx133("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
71861
- /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
72136
+ /* @__PURE__ */ jsx134("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
72137
+ /* @__PURE__ */ jsx134("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
71862
72138
  ] }),
71863
- nonPastRuns.length > 0 ? /* @__PURE__ */ jsx133("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
72139
+ nonPastRuns.length > 0 ? /* @__PURE__ */ jsx134("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
71864
72140
  const start = range.start;
71865
72141
  const end = range.end;
71866
72142
  const isInProgress = Boolean(start && end && start <= now && end > now);
71867
72143
  const href = basePath ? `${basePath.replace(/\/$/, "")}/${course.slug}` : null;
71868
- return /* @__PURE__ */ jsx133("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx133("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs81("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
72144
+ return /* @__PURE__ */ jsx134("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx134("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs81("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
71869
72145
  /* @__PURE__ */ jsxs81("div", { className: "rb-min-w-0", children: [
71870
- href ? /* @__PURE__ */ jsx133("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx133("strong", { children: course.title }) }) : /* @__PURE__ */ jsx133("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx133("strong", { children: course.title }) }),
71871
- /* @__PURE__ */ jsx133("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
72146
+ href ? /* @__PURE__ */ jsx134("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx134("strong", { children: course.title }) }) : /* @__PURE__ */ jsx134("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx134("strong", { children: course.title }) }),
72147
+ /* @__PURE__ */ jsx134("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
71872
72148
  ] }),
71873
- /* @__PURE__ */ jsx133("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
72149
+ /* @__PURE__ */ jsx134("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
71874
72150
  ] }) }) }, course.id);
71875
- }) }) : /* @__PURE__ */ jsx133("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
72151
+ }) }) : /* @__PURE__ */ jsx134("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
71876
72152
  lastPastRun ? /* @__PURE__ */ jsxs81("div", { className: "rb-caption status-muted", children: [
71877
72153
  "Last run: ",
71878
- /* @__PURE__ */ jsx133("strong", { children: lastPastRun.course.title }),
72154
+ /* @__PURE__ */ jsx134("strong", { children: lastPastRun.course.title }),
71879
72155
  " (",
71880
72156
  formatCourseDateRange(lastPastRun.range),
71881
72157
  ")"
71882
72158
  ] }) : null
71883
- ] }) : /* @__PURE__ */ jsx133(
72159
+ ] }) : /* @__PURE__ */ jsx134(
71884
72160
  CourseDetailsView,
71885
72161
  {
71886
72162
  course: null,
@@ -71903,7 +72179,7 @@ var course_details_server_default = CourseDetailsSSR;
71903
72179
  // ../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx
71904
72180
  init_shared3();
71905
72181
  init_buttons();
71906
- import { jsx as jsx134, jsxs as jsxs82 } from "react/jsx-runtime";
72182
+ import { jsx as jsx135, jsxs as jsxs82 } from "react/jsx-runtime";
71907
72183
  var EventSpotlight = ({
71908
72184
  events,
71909
72185
  layout = "grid",
@@ -71921,13 +72197,13 @@ var EventSpotlight = ({
71921
72197
  }) => {
71922
72198
  const normalizedEvents = events ?? [];
71923
72199
  if (normalizedEvents.length === 0) {
71924
- return /* @__PURE__ */ jsx134(EmptyState, { message: emptyMessage, className });
72200
+ return /* @__PURE__ */ jsx135(EmptyState, { message: emptyMessage, className });
71925
72201
  }
71926
72202
  const containerClass = getContainerClass(layout, columns);
71927
72203
  const cardOrientation = getCardOrientation(layout);
71928
72204
  const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
71929
72205
  return /* @__PURE__ */ jsxs82("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
71930
- /* @__PURE__ */ jsx134("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx134(
72206
+ /* @__PURE__ */ jsx135("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx135(
71931
72207
  EventCard,
71932
72208
  {
71933
72209
  event,
@@ -71941,7 +72217,7 @@ var EventSpotlight = ({
71941
72217
  },
71942
72218
  event.occurrenceId || event.id
71943
72219
  )) }),
71944
- ctaLabel && ctaUrl ? /* @__PURE__ */ jsx134("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx134("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
72220
+ ctaLabel && ctaUrl ? /* @__PURE__ */ jsx135("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx135("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
71945
72221
  ] });
71946
72222
  };
71947
72223
 
@@ -71952,10 +72228,10 @@ init_shared3();
71952
72228
  // ../blocks/src/system/runtime/nodes/events/shared/renderEventListItem.tsx
71953
72229
  init_EventCard();
71954
72230
  init_EventCompactRow();
71955
- import { jsx as jsx135 } from "react/jsx-runtime";
72231
+ import { jsx as jsx136 } from "react/jsx-runtime";
71956
72232
  function renderEventListItem(event, display) {
71957
72233
  if (display.listLayout === "compact") {
71958
- return /* @__PURE__ */ jsx135(
72234
+ return /* @__PURE__ */ jsx136(
71959
72235
  EventCompactRow,
71960
72236
  {
71961
72237
  event,
@@ -71965,7 +72241,7 @@ function renderEventListItem(event, display) {
71965
72241
  event.occurrenceId || event.id
71966
72242
  );
71967
72243
  }
71968
- return /* @__PURE__ */ jsx135(
72244
+ return /* @__PURE__ */ jsx136(
71969
72245
  EventCard,
71970
72246
  {
71971
72247
  event,
@@ -71983,7 +72259,7 @@ function renderEventListItem(event, display) {
71983
72259
  }
71984
72260
 
71985
72261
  // ../blocks/src/system/runtime/nodes/events/EventCombined.server.tsx
71986
- import { jsx as jsx136, jsxs as jsxs83 } from "react/jsx-runtime";
72262
+ import { jsx as jsx137, jsxs as jsxs83 } from "react/jsx-runtime";
71987
72263
  var EventCombinedSSR = ({
71988
72264
  blockId,
71989
72265
  ...source
@@ -71999,9 +72275,9 @@ var EventCombinedSSR = ({
71999
72275
  "data-block": "event-combined",
72000
72276
  ...getIslandRootProps("event-combined", blockId),
72001
72277
  children: [
72002
- /* @__PURE__ */ jsx136(IslandPropsScript, { value: islandProps }),
72278
+ /* @__PURE__ */ jsx137(IslandPropsScript, { value: islandProps }),
72003
72279
  /* @__PURE__ */ jsxs83("div", { className: "nav-tabs", role: "tablist", children: [
72004
- /* @__PURE__ */ jsx136(
72280
+ /* @__PURE__ */ jsx137(
72005
72281
  "button",
72006
72282
  {
72007
72283
  type: "button",
@@ -72011,7 +72287,7 @@ var EventCombinedSSR = ({
72011
72287
  children: "List"
72012
72288
  }
72013
72289
  ),
72014
- /* @__PURE__ */ jsx136(
72290
+ /* @__PURE__ */ jsx137(
72015
72291
  "button",
72016
72292
  {
72017
72293
  type: "button",
@@ -72022,7 +72298,7 @@ var EventCombinedSSR = ({
72022
72298
  }
72023
72299
  )
72024
72300
  ] }),
72025
- /* @__PURE__ */ jsx136("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx136(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx136("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
72301
+ /* @__PURE__ */ jsx137("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx137(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx137("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
72026
72302
  ]
72027
72303
  }
72028
72304
  );
@@ -72036,7 +72312,7 @@ init_utils3();
72036
72312
  init_shared6();
72037
72313
  init_spacing();
72038
72314
  init_svg();
72039
- import { jsx as jsx137, jsxs as jsxs84 } from "react/jsx-runtime";
72315
+ import { jsx as jsx138, jsxs as jsxs84 } from "react/jsx-runtime";
72040
72316
  function OfferingsPreviewNode(props2) {
72041
72317
  const groups = resolveOfferingsPreviewGroups({
72042
72318
  presets: props2.bookingOfferingPresets,
@@ -72044,7 +72320,7 @@ function OfferingsPreviewNode(props2) {
72044
72320
  overrides: props2.groupOverrides
72045
72321
  });
72046
72322
  if (groups.length === 0) {
72047
- return props2.previewStage === "preview" ? /* @__PURE__ */ jsx137(
72323
+ return props2.previewStage === "preview" ? /* @__PURE__ */ jsx138(
72048
72324
  EmptyState,
72049
72325
  {
72050
72326
  className: "offerings-preview-empty",
@@ -72076,25 +72352,25 @@ function OfferingsPreviewNode(props2) {
72076
72352
  className: "offerings-preview rb-flex rb-flex-col rb-gap-6",
72077
72353
  "data-block": "offerings-preview",
72078
72354
  children: [
72079
- /* @__PURE__ */ jsx137(
72355
+ /* @__PURE__ */ jsx138(
72080
72356
  "div",
72081
72357
  {
72082
72358
  className: "offerings-preview-grid rb-grid rb-items-stretch rb-gap-6",
72083
72359
  style: OFFERINGS_PREVIEW_GRID_STYLE,
72084
- children: states.map((state) => /* @__PURE__ */ jsx137(
72360
+ children: states.map((state) => /* @__PURE__ */ jsx138(
72085
72361
  "section",
72086
72362
  {
72087
72363
  className: groupFrame.containerClassName,
72088
72364
  style: groupFrame.containerStyle,
72089
72365
  children: /* @__PURE__ */ jsxs84("div", { className: groupFrame.contentClassName, children: [
72090
72366
  /* @__PURE__ */ jsxs84("header", { className: "offerings-preview-card-header rb-flex rb-flex-col rb-gap-2 rb-text-center", children: [
72091
- /* @__PURE__ */ jsx137("h3", { className: "offerings-preview-card-title rb-text-xl rb-font-semibold rb-leading-tight", children: state.group.title }),
72092
- state.group.intro ? /* @__PURE__ */ jsx137("p", { className: "offerings-preview-card-intro rb-text-sm rb-leading-6 status-muted", children: state.group.intro }) : null
72367
+ /* @__PURE__ */ jsx138("h3", { className: "offerings-preview-card-title rb-text-xl rb-font-semibold rb-leading-tight", children: state.group.title }),
72368
+ state.group.intro ? /* @__PURE__ */ jsx138("p", { className: "offerings-preview-card-intro rb-text-sm rb-leading-6 status-muted", children: state.group.intro }) : null
72093
72369
  ] }),
72094
72370
  state.kind === "items" ? renderOfferingGroupItems(state.group.presentation, state.items, {
72095
72371
  buttonVariant,
72096
72372
  buttonText
72097
- }) : /* @__PURE__ */ jsx137(
72373
+ }) : /* @__PURE__ */ jsx138(
72098
72374
  EmptyState,
72099
72375
  {
72100
72376
  className: "offerings-preview-card-empty",
@@ -72107,9 +72383,9 @@ function OfferingsPreviewNode(props2) {
72107
72383
  ))
72108
72384
  }
72109
72385
  ),
72110
- blockCta ? /* @__PURE__ */ jsx137("footer", { className: "offerings-preview-footer rb-flex rb-justify-center", children: /* @__PURE__ */ jsxs84("a", { className: blockLinkClass, href: blockCta.href, children: [
72111
- /* @__PURE__ */ jsx137("span", { children: blockCta.label }),
72112
- /* @__PURE__ */ jsx137(ArrowRightIcon, { "aria-hidden": "true", className: "offerings-preview-link-icon rb-h-4 rb-w-4" })
72386
+ blockCta ? /* @__PURE__ */ jsx138("footer", { className: "offerings-preview-footer rb-flex rb-justify-center", children: /* @__PURE__ */ jsxs84("a", { className: blockLinkClass, href: blockCta.href, children: [
72387
+ /* @__PURE__ */ jsx138("span", { children: blockCta.label }),
72388
+ /* @__PURE__ */ jsx138(ArrowRightIcon, { "aria-hidden": "true", className: "offerings-preview-link-icon rb-h-4 rb-w-4" })
72113
72389
  ] }) }) : null
72114
72390
  ]
72115
72391
  }
@@ -72168,14 +72444,14 @@ function courseDataFromMaybeArray(courses, routes) {
72168
72444
  function renderOfferingGroupItems(presentation, items, options) {
72169
72445
  if (presentation === "single-card") {
72170
72446
  const item = items[0];
72171
- return /* @__PURE__ */ jsx137("div", { className: "offerings-preview-card-items rb-flex rb-flex-1 rb-flex-col", children: item ? renderSingleOfferingCard(item, options) : null });
72447
+ return /* @__PURE__ */ jsx138("div", { className: "offerings-preview-card-items rb-flex rb-flex-1 rb-flex-col", children: item ? renderSingleOfferingCard(item, options) : null });
72172
72448
  }
72173
- return /* @__PURE__ */ jsx137("div", { className: "offerings-preview-card-items rb-flex rb-flex-1 rb-flex-col", children: /* @__PURE__ */ jsx137("div", { className: "event-listing-compact-container rb-flex rb-flex-1 rb-flex-col", children: items.map((item) => renderOfferingCompactItem(item, options)) }) });
72449
+ return /* @__PURE__ */ jsx138("div", { className: "offerings-preview-card-items rb-flex rb-flex-1 rb-flex-col", children: /* @__PURE__ */ jsx138("div", { className: "event-listing-compact-container rb-flex rb-flex-1 rb-flex-col", children: items.map((item) => renderOfferingCompactItem(item, options)) }) });
72174
72450
  }
72175
72451
  function renderOfferingCompactItem(item, options) {
72176
72452
  switch (item.kind) {
72177
72453
  case "event":
72178
- return /* @__PURE__ */ jsx137(
72454
+ return /* @__PURE__ */ jsx138(
72179
72455
  EventCompactRow,
72180
72456
  {
72181
72457
  event: item.event,
@@ -72185,13 +72461,13 @@ function renderOfferingCompactItem(item, options) {
72185
72461
  item.event.occurrenceId || item.event.id
72186
72462
  );
72187
72463
  case "course":
72188
- return /* @__PURE__ */ jsx137(CourseCompactRow, { course: item.course, path: item.path }, item.course.id);
72464
+ return /* @__PURE__ */ jsx138(CourseCompactRow, { course: item.course, path: item.path }, item.course.id);
72189
72465
  }
72190
72466
  }
72191
72467
  function renderSingleOfferingCard(item, options) {
72192
72468
  switch (item.kind) {
72193
72469
  case "event":
72194
- return /* @__PURE__ */ jsx137(
72470
+ return /* @__PURE__ */ jsx138(
72195
72471
  EventCard,
72196
72472
  {
72197
72473
  event: item.event,
@@ -72204,7 +72480,7 @@ function renderSingleOfferingCard(item, options) {
72204
72480
  item.event.occurrenceId || item.event.id
72205
72481
  );
72206
72482
  case "course":
72207
- return /* @__PURE__ */ jsx137(
72483
+ return /* @__PURE__ */ jsx138(
72208
72484
  CourseFeatureCard,
72209
72485
  {
72210
72486
  course: item.course,
@@ -72230,19 +72506,19 @@ function CourseCompactRow({
72230
72506
  const ctaClass = themeButtonClassName({ variant: "primary", size: "sm" });
72231
72507
  return /* @__PURE__ */ jsxs84("article", { className: "event-compact-row offerings-preview-course-row", children: [
72232
72508
  dateRail ? /* @__PURE__ */ jsxs84("time", { className: "event-compact-row-date", dateTime: firstSession?.startsAt, "aria-label": dateRail.label, children: [
72233
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-weekday", children: dateRail.weekday }),
72234
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-day", children: dateRail.day }),
72235
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-month", children: dateRail.month })
72509
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-weekday", children: dateRail.weekday }),
72510
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-day", children: dateRail.day }),
72511
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-month", children: dateRail.month })
72236
72512
  ] }) : /* @__PURE__ */ jsxs84("div", { className: "event-compact-row-date", "aria-hidden": "true", children: [
72237
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-weekday", children: "COURSE" }),
72238
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-day", children: course.sessionsCount }),
72239
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-date-month", children: "SESS" })
72513
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-weekday", children: "COURSE" }),
72514
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-day", children: course.sessionsCount }),
72515
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-date-month", children: "SESS" })
72240
72516
  ] }),
72241
72517
  /* @__PURE__ */ jsxs84("div", { className: "event-compact-row-content", children: [
72242
- /* @__PURE__ */ jsx137("h3", { className: "event-compact-row-title", children: course.title }),
72518
+ /* @__PURE__ */ jsx138("h3", { className: "event-compact-row-title", children: course.title }),
72243
72519
  /* @__PURE__ */ jsxs84("div", { className: "event-compact-row-meta", children: [
72244
- course.venue ? /* @__PURE__ */ jsx137("span", { className: "event-compact-row-venue", children: course.venue.name }) : null,
72245
- /* @__PURE__ */ jsx137("span", { className: "event-compact-row-price", children: price }),
72520
+ course.venue ? /* @__PURE__ */ jsx138("span", { className: "event-compact-row-venue", children: course.venue.name }) : null,
72521
+ /* @__PURE__ */ jsx138("span", { className: "event-compact-row-price", children: price }),
72246
72522
  /* @__PURE__ */ jsxs84("span", { className: "event-compact-row-price", children: [
72247
72523
  course.sessionsCount,
72248
72524
  " session",
@@ -72251,8 +72527,8 @@ function CourseCompactRow({
72251
72527
  ] })
72252
72528
  ] }),
72253
72529
  /* @__PURE__ */ jsxs84("div", { className: "event-compact-row-action", children: [
72254
- timeRange ? /* @__PURE__ */ jsx137("span", { className: "event-compact-row-datetime", children: timeRange }) : null,
72255
- statusLabel || !path ? /* @__PURE__ */ jsx137("span", { className: "event-compact-row-status", children: statusLabel ?? "Details coming soon" }) : /* @__PURE__ */ jsx137("a", { href: path, className: `${ctaClass} event-compact-row-cta`, children: /* @__PURE__ */ jsx137("span", { children: "Book course" }) })
72530
+ timeRange ? /* @__PURE__ */ jsx138("span", { className: "event-compact-row-datetime", children: timeRange }) : null,
72531
+ statusLabel || !path ? /* @__PURE__ */ jsx138("span", { className: "event-compact-row-status", children: statusLabel ?? "Details coming soon" }) : /* @__PURE__ */ jsx138("a", { href: path, className: `${ctaClass} event-compact-row-cta`, children: /* @__PURE__ */ jsx138("span", { children: "Book course" }) })
72256
72532
  ] })
72257
72533
  ] });
72258
72534
  }
@@ -72271,17 +72547,17 @@ function CourseFeatureCard({
72271
72547
  const ctaClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
72272
72548
  const statusLabel = course.enrollmentOpen ? null : "Registration closed";
72273
72549
  const description = typeof course.description === "string" ? course.description : null;
72274
- return /* @__PURE__ */ jsx137("article", { className: "card-default group rb-flex rb-h-full rb-flex-col event-card offerings-preview-course-card", children: /* @__PURE__ */ jsxs84("div", { className: "card-content rb-flex rb-flex-1 rb-flex-col", children: [
72275
- /* @__PURE__ */ jsx137("h3", { className: "card-title rb-mb-3", children: course.title }),
72550
+ return /* @__PURE__ */ jsx138("article", { className: "card-default group rb-flex rb-h-full rb-flex-col event-card offerings-preview-course-card", children: /* @__PURE__ */ jsxs84("div", { className: "card-content rb-flex rb-flex-1 rb-flex-col", children: [
72551
+ /* @__PURE__ */ jsx138("h3", { className: "card-title rb-mb-3", children: course.title }),
72276
72552
  /* @__PURE__ */ jsxs84("div", { className: "rb-mb-2 rb-caption", children: [
72277
- /* @__PURE__ */ jsx137("time", { children: formattedDate }),
72278
- timeRange ? /* @__PURE__ */ jsx137("p", { children: timeRange }) : null
72553
+ /* @__PURE__ */ jsx138("time", { children: formattedDate }),
72554
+ timeRange ? /* @__PURE__ */ jsx138("p", { children: timeRange }) : null
72279
72555
  ] }),
72280
- course.venue ? /* @__PURE__ */ jsx137("p", { className: "rb-mb-3 rb-caption status-muted", children: course.venue.name }) : null,
72281
- description ? /* @__PURE__ */ jsx137("p", { className: "card-body rb-mb-3 rb-line-clamp-2 rb-caption", children: description }) : null,
72556
+ course.venue ? /* @__PURE__ */ jsx138("p", { className: "rb-mb-3 rb-caption status-muted", children: course.venue.name }) : null,
72557
+ description ? /* @__PURE__ */ jsx138("p", { className: "card-body rb-mb-3 rb-line-clamp-2 rb-caption", children: description }) : null,
72282
72558
  /* @__PURE__ */ jsxs84("div", { className: "event-card-footer rb-mt-auto rb-pt-4 rb-flex rb-flex-col rb-gap-3", children: [
72283
- /* @__PURE__ */ jsx137("p", { className: "event-card-capacity rb-caption status-muted rb-text-center", children: price }),
72284
- statusLabel || !path ? /* @__PURE__ */ jsx137("span", { className: "event-compact-row-status", children: statusLabel ?? "Details coming soon" }) : /* @__PURE__ */ jsx137("a", { href: path, className: `${ctaClass} event-card-cta`, children: buttonText || "Book course" })
72559
+ /* @__PURE__ */ jsx138("p", { className: "event-card-capacity rb-caption status-muted rb-text-center", children: price }),
72560
+ statusLabel || !path ? /* @__PURE__ */ jsx138("span", { className: "event-compact-row-status", children: statusLabel ?? "Details coming soon" }) : /* @__PURE__ */ jsx138("a", { href: path, className: `${ctaClass} event-card-cta`, children: buttonText || "Book course" })
72285
72561
  ] })
72286
72562
  ] }) });
72287
72563
  }
@@ -72393,10 +72669,10 @@ init_buttons();
72393
72669
  init_RichText();
72394
72670
  init_richText_coerce();
72395
72671
  init_view2();
72396
- import { Fragment as Fragment29, jsx as jsx138, jsxs as jsxs85 } from "react/jsx-runtime";
72672
+ import { Fragment as Fragment29, jsx as jsx139, jsxs as jsxs85 } from "react/jsx-runtime";
72397
72673
  function renderServerPendingAction(label, soldOut) {
72398
72674
  return /* @__PURE__ */ jsxs85(Fragment29, { children: [
72399
- /* @__PURE__ */ jsx138(
72675
+ /* @__PURE__ */ jsx139(
72400
72676
  "button",
72401
72677
  {
72402
72678
  type: "button",
@@ -72406,16 +72682,16 @@ function renderServerPendingAction(label, soldOut) {
72406
72682
  children: soldOut ? "Sold out" : label
72407
72683
  }
72408
72684
  ),
72409
- !soldOut ? /* @__PURE__ */ jsx138("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
72685
+ !soldOut ? /* @__PURE__ */ jsx139("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
72410
72686
  ] });
72411
72687
  }
72412
72688
  function ProductListServerContent(props2) {
72413
- return /* @__PURE__ */ jsx138(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx138(
72689
+ return /* @__PURE__ */ jsx139(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx139(
72414
72690
  ProductCardView,
72415
72691
  {
72416
72692
  display: card,
72417
72693
  layout: props2.render.display.layout,
72418
- variantControl: /* @__PURE__ */ jsx138(
72694
+ variantControl: /* @__PURE__ */ jsx139(
72419
72695
  VariantSelectView,
72420
72696
  {
72421
72697
  options: card.variantOptions,
@@ -72425,7 +72701,7 @@ function ProductListServerContent(props2) {
72425
72701
  ),
72426
72702
  actions: /* @__PURE__ */ jsxs85(Fragment29, { children: [
72427
72703
  renderServerPendingAction(card.actionLabel, card.soldOut),
72428
- card.path ? /* @__PURE__ */ jsx138(
72704
+ card.path ? /* @__PURE__ */ jsx139(
72429
72705
  "a",
72430
72706
  {
72431
72707
  href: card.path,
@@ -72439,18 +72715,18 @@ function ProductListServerContent(props2) {
72439
72715
  )) });
72440
72716
  }
72441
72717
  function ProductDetailServerContent(props2) {
72442
- return /* @__PURE__ */ jsx138(
72718
+ return /* @__PURE__ */ jsx139(
72443
72719
  ProductDetailView,
72444
72720
  {
72445
72721
  display: props2.render.display,
72446
- gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx138(
72722
+ gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx139(
72447
72723
  ProductGalleryFrameView,
72448
72724
  {
72449
72725
  gallery: props2.render.display.gallery,
72450
- renderCarousel: (slides) => /* @__PURE__ */ jsx138(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
72726
+ renderCarousel: (slides) => /* @__PURE__ */ jsx139(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
72451
72727
  }
72452
72728
  ) : null,
72453
- variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx138(
72729
+ variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx139(
72454
72730
  VariantSelectView,
72455
72731
  {
72456
72732
  options: props2.render.display.variantOptions,
@@ -72462,20 +72738,20 @@ function ProductDetailServerContent(props2) {
72462
72738
  props2.render.display.actionLabel,
72463
72739
  props2.render.display.soldOut
72464
72740
  ) : null,
72465
- body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx138("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx138(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
72741
+ body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx139("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx139(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
72466
72742
  }
72467
72743
  );
72468
72744
  }
72469
72745
  function CartServerContent(props2) {
72470
- return /* @__PURE__ */ jsx138(CartShellView, { display: props2.render.display });
72746
+ return /* @__PURE__ */ jsx139(CartShellView, { display: props2.render.display });
72471
72747
  }
72472
72748
  function CheckoutServerContent(props2) {
72473
- return /* @__PURE__ */ jsx138(CheckoutShellView, { display: props2.render.display });
72749
+ return /* @__PURE__ */ jsx139(CheckoutShellView, { display: props2.render.display });
72474
72750
  }
72475
72751
 
72476
72752
  // ../blocks/src/system/runtime/nodes/cart.server.tsx
72477
72753
  init_shop_interactive();
72478
- import { jsx as jsx139, jsxs as jsxs86 } from "react/jsx-runtime";
72754
+ import { jsx as jsx140, jsxs as jsxs86 } from "react/jsx-runtime";
72479
72755
  function CartSSR({
72480
72756
  blockId,
72481
72757
  siteId,
@@ -72500,8 +72776,8 @@ function CartSSR({
72500
72776
  "data-site-id": siteId ?? void 0,
72501
72777
  ...getIslandRootProps("cart", blockId),
72502
72778
  children: [
72503
- /* @__PURE__ */ jsx139(IslandPropsScript, { value: islandProps }),
72504
- /* @__PURE__ */ jsx139(CartServerContent, { render: islandProps.render }),
72779
+ /* @__PURE__ */ jsx140(IslandPropsScript, { value: islandProps }),
72780
+ /* @__PURE__ */ jsx140(CartServerContent, { render: islandProps.render }),
72505
72781
  children
72506
72782
  ]
72507
72783
  }
@@ -72511,7 +72787,7 @@ var cart_server_default = CartSSR;
72511
72787
 
72512
72788
  // ../blocks/src/system/runtime/nodes/checkout.server.tsx
72513
72789
  init_shop_interactive();
72514
- import { jsx as jsx140, jsxs as jsxs87 } from "react/jsx-runtime";
72790
+ import { jsx as jsx141, jsxs as jsxs87 } from "react/jsx-runtime";
72515
72791
  function CheckoutSSR({
72516
72792
  blockId,
72517
72793
  siteId,
@@ -72536,8 +72812,8 @@ function CheckoutSSR({
72536
72812
  "data-site-id": siteId ?? void 0,
72537
72813
  ...getIslandRootProps("checkout", blockId),
72538
72814
  children: [
72539
- /* @__PURE__ */ jsx140(IslandPropsScript, { value: islandProps }),
72540
- /* @__PURE__ */ jsx140(CheckoutServerContent, { render: islandProps.render }),
72815
+ /* @__PURE__ */ jsx141(IslandPropsScript, { value: islandProps }),
72816
+ /* @__PURE__ */ jsx141(CheckoutServerContent, { render: islandProps.render }),
72541
72817
  children
72542
72818
  ]
72543
72819
  }
@@ -72547,7 +72823,7 @@ var checkout_server_default = CheckoutSSR;
72547
72823
 
72548
72824
  // ../blocks/src/system/runtime/nodes/course-registration.server.tsx
72549
72825
  init_course_registration_interactive();
72550
- import { jsx as jsx141, jsxs as jsxs88 } from "react/jsx-runtime";
72826
+ import { jsx as jsx142, jsxs as jsxs88 } from "react/jsx-runtime";
72551
72827
  function CourseRegistrationSSR({
72552
72828
  blockId,
72553
72829
  siteId,
@@ -72595,8 +72871,8 @@ function CourseRegistrationSSR({
72595
72871
  "data-block": "course-registration",
72596
72872
  ...getIslandRootProps("course-registration", blockId),
72597
72873
  children: [
72598
- /* @__PURE__ */ jsx141(IslandPropsScript, { value: islandProps }),
72599
- /* @__PURE__ */ jsx141("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx141("strong", { children: islandProps.render.display.summaryButtonText }) }),
72874
+ /* @__PURE__ */ jsx142(IslandPropsScript, { value: islandProps }),
72875
+ /* @__PURE__ */ jsx142("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx142("strong", { children: islandProps.render.display.summaryButtonText }) }),
72600
72876
  children
72601
72877
  ]
72602
72878
  }
@@ -72606,7 +72882,7 @@ var course_registration_server_default = CourseRegistrationSSR;
72606
72882
 
72607
72883
  // ../blocks/src/system/runtime/nodes/gifting.server.tsx
72608
72884
  init_gifting_interactive();
72609
- import { jsx as jsx142, jsxs as jsxs89 } from "react/jsx-runtime";
72885
+ import { jsx as jsx143, jsxs as jsxs89 } from "react/jsx-runtime";
72610
72886
  function GiftingSSR({ blockId, ...rest }) {
72611
72887
  const islandProps = buildGiftingInteractiveIslandProps(rest);
72612
72888
  const offers = islandProps.render.hydration.offers;
@@ -72623,7 +72899,7 @@ function GiftingSSR({ blockId, ...rest }) {
72623
72899
  },
72624
72900
  ...getIslandRootProps("gifting", blockId),
72625
72901
  children: [
72626
- /* @__PURE__ */ jsx142(IslandPropsScript, { value: islandProps }),
72902
+ /* @__PURE__ */ jsx143(IslandPropsScript, { value: islandProps }),
72627
72903
  /* @__PURE__ */ jsxs89(
72628
72904
  "div",
72629
72905
  {
@@ -72633,13 +72909,13 @@ function GiftingSSR({ blockId, ...rest }) {
72633
72909
  },
72634
72910
  children: [
72635
72911
  /* @__PURE__ */ jsxs89("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
72636
- /* @__PURE__ */ jsx142("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
72637
- islandProps.render.display.intro ? /* @__PURE__ */ jsx142("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
72912
+ /* @__PURE__ */ jsx143("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
72913
+ islandProps.render.display.intro ? /* @__PURE__ */ jsx143("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
72638
72914
  ] }),
72639
72915
  hasOffers ? /* @__PURE__ */ jsxs89("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
72640
72916
  (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs89("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
72641
- /* @__PURE__ */ jsx142("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
72642
- /* @__PURE__ */ jsx142("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs89(
72917
+ /* @__PURE__ */ jsx143("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
72918
+ /* @__PURE__ */ jsx143("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs89(
72643
72919
  "article",
72644
72920
  {
72645
72921
  style: {
@@ -72649,16 +72925,16 @@ function GiftingSSR({ blockId, ...rest }) {
72649
72925
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
72650
72926
  },
72651
72927
  children: [
72652
- /* @__PURE__ */ jsx142("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
72653
- offer.description ? /* @__PURE__ */ jsx142("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
72928
+ /* @__PURE__ */ jsx143("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
72929
+ offer.description ? /* @__PURE__ */ jsx143("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
72654
72930
  ]
72655
72931
  },
72656
72932
  offer.id
72657
72933
  )) })
72658
72934
  ] }) : null,
72659
72935
  (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs89("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
72660
- /* @__PURE__ */ jsx142("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
72661
- /* @__PURE__ */ jsx142("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs89(
72936
+ /* @__PURE__ */ jsx143("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
72937
+ /* @__PURE__ */ jsx143("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs89(
72662
72938
  "article",
72663
72939
  {
72664
72940
  style: {
@@ -72668,14 +72944,14 @@ function GiftingSSR({ blockId, ...rest }) {
72668
72944
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
72669
72945
  },
72670
72946
  children: [
72671
- /* @__PURE__ */ jsx142("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
72672
- offer.description ? /* @__PURE__ */ jsx142("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
72947
+ /* @__PURE__ */ jsx143("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
72948
+ offer.description ? /* @__PURE__ */ jsx143("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
72673
72949
  ]
72674
72950
  },
72675
72951
  offer.id
72676
72952
  )) })
72677
72953
  ] }) : null
72678
- ] }) : /* @__PURE__ */ jsx142("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
72954
+ ] }) : /* @__PURE__ */ jsx143("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
72679
72955
  ]
72680
72956
  }
72681
72957
  )
@@ -72693,7 +72969,7 @@ init_WeekAgendaView();
72693
72969
  init_utils3();
72694
72970
  init_timetableModel();
72695
72971
  init_buttons();
72696
- import { jsx as jsx143, jsxs as jsxs90 } from "react/jsx-runtime";
72972
+ import { jsx as jsx144, jsxs as jsxs90 } from "react/jsx-runtime";
72697
72973
  function assertNeverDisplayMode(value) {
72698
72974
  throw new Error(`Unsupported event-calendar displayMode: ${String(value)}`);
72699
72975
  }
@@ -72707,7 +72983,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
72707
72983
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents, "event-combined-content");
72708
72984
  return /* @__PURE__ */ jsxs90("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
72709
72985
  /* @__PURE__ */ jsxs90("div", { className: "nav-tabs", role: "tablist", children: [
72710
- /* @__PURE__ */ jsx143(
72986
+ /* @__PURE__ */ jsx144(
72711
72987
  "button",
72712
72988
  {
72713
72989
  type: "button",
@@ -72717,7 +72993,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
72717
72993
  children: "List"
72718
72994
  }
72719
72995
  ),
72720
- /* @__PURE__ */ jsx143(
72996
+ /* @__PURE__ */ jsx144(
72721
72997
  "button",
72722
72998
  {
72723
72999
  type: "button",
@@ -72728,7 +73004,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
72728
73004
  }
72729
73005
  )
72730
73006
  ] }),
72731
- /* @__PURE__ */ jsx143(
73007
+ /* @__PURE__ */ jsx144(
72732
73008
  EventListingFrameView,
72733
73009
  {
72734
73010
  display: listDisplay,
@@ -72739,7 +73015,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
72739
73015
  }
72740
73016
  function renderListSsr(display, prefetchedEvents) {
72741
73017
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents);
72742
- return /* @__PURE__ */ jsx143(
73018
+ return /* @__PURE__ */ jsx144(
72743
73019
  EventListingFrameView,
72744
73020
  {
72745
73021
  display: listDisplay,
@@ -72760,27 +73036,27 @@ function renderCalendarSsr(display) {
72760
73036
  return /* @__PURE__ */ jsxs90("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
72761
73037
  /* @__PURE__ */ jsxs90("div", { className: "event-calendar-header", children: [
72762
73038
  /* @__PURE__ */ jsxs90("div", { className: "event-calendar-nav", children: [
72763
- /* @__PURE__ */ jsx143(
73039
+ /* @__PURE__ */ jsx144(
72764
73040
  "button",
72765
73041
  {
72766
73042
  type: "button",
72767
73043
  className: "event-calendar-nav-btn",
72768
73044
  "aria-label": calendarView === "week" ? "Previous week" : "Previous month",
72769
- children: /* @__PURE__ */ jsx143("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx143("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
73045
+ children: /* @__PURE__ */ jsx144("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx144("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
72770
73046
  }
72771
73047
  ),
72772
- /* @__PURE__ */ jsx143("h3", { className: "event-calendar-title", children: viewport.title }),
72773
- /* @__PURE__ */ jsx143(
73048
+ /* @__PURE__ */ jsx144("h3", { className: "event-calendar-title", children: viewport.title }),
73049
+ /* @__PURE__ */ jsx144(
72774
73050
  "button",
72775
73051
  {
72776
73052
  type: "button",
72777
73053
  className: "event-calendar-nav-btn",
72778
73054
  "aria-label": calendarView === "week" ? "Next week" : "Next month",
72779
- children: /* @__PURE__ */ jsx143("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx143("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
73055
+ children: /* @__PURE__ */ jsx144("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx144("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
72780
73056
  }
72781
73057
  )
72782
73058
  ] }),
72783
- /* @__PURE__ */ jsx143(
73059
+ /* @__PURE__ */ jsx144(
72784
73060
  "button",
72785
73061
  {
72786
73062
  type: "button",
@@ -72792,7 +73068,7 @@ function renderCalendarSsr(display) {
72792
73068
  }
72793
73069
  )
72794
73070
  ] }),
72795
- viewport.kind === "week" ? /* @__PURE__ */ jsx143(
73071
+ viewport.kind === "week" ? /* @__PURE__ */ jsx144(
72796
73072
  WeekAgendaView,
72797
73073
  {
72798
73074
  days: viewport.days,
@@ -72801,8 +73077,8 @@ function renderCalendarSsr(display) {
72801
73077
  showCapacity: display.showCapacity
72802
73078
  }
72803
73079
  ) : /* @__PURE__ */ jsxs90("div", { className: "event-calendar-container", children: [
72804
- /* @__PURE__ */ jsx143("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx143("div", { className: "event-calendar-day-header", children: day }, day)) }),
72805
- /* @__PURE__ */ jsx143("div", { className: "event-calendar-grid", children: viewport.days.map((date) => {
73080
+ /* @__PURE__ */ jsx144("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx144("div", { className: "event-calendar-day-header", children: day }, day)) }),
73081
+ /* @__PURE__ */ jsx144("div", { className: "event-calendar-grid", children: viewport.days.map((date) => {
72806
73082
  const dateKey = formatDateKey2(date);
72807
73083
  const dayEvents = eventsByDate.get(dateKey) || [];
72808
73084
  const isCurrentMonth = date.getMonth() === viewDate.getMonth();
@@ -72813,7 +73089,7 @@ function renderCalendarSsr(display) {
72813
73089
  today && "event-calendar-day--today"
72814
73090
  );
72815
73091
  return /* @__PURE__ */ jsxs90("div", { className: dayClasses, children: [
72816
- /* @__PURE__ */ jsx143("div", { className: "event-calendar-day-number", children: date.getDate() }),
73092
+ /* @__PURE__ */ jsx144("div", { className: "event-calendar-day-number", children: date.getDate() }),
72817
73093
  /* @__PURE__ */ jsxs90("div", { className: "event-calendar-events", children: [
72818
73094
  dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs90(
72819
73095
  "a",
@@ -72822,9 +73098,9 @@ function renderCalendarSsr(display) {
72822
73098
  className: "event-calendar-event",
72823
73099
  title: `${event.title} at ${formatTime(event.startsAt, { timeZone: getEventTimeZone(event) })}`,
72824
73100
  children: [
72825
- /* @__PURE__ */ jsx143("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
73101
+ /* @__PURE__ */ jsx144("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
72826
73102
  " ",
72827
- /* @__PURE__ */ jsx143("span", { className: "event-calendar-event-title", children: event.title })
73103
+ /* @__PURE__ */ jsx144("span", { className: "event-calendar-event-title", children: event.title })
72828
73104
  ]
72829
73105
  },
72830
73106
  event.occurrenceId || event.id
@@ -72838,7 +73114,7 @@ function renderCalendarSsr(display) {
72838
73114
  ] }, dateKey);
72839
73115
  }) })
72840
73116
  ] }),
72841
- viewport.kind === "month" && display.events.length === 0 ? /* @__PURE__ */ jsx143("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
73117
+ viewport.kind === "month" && display.events.length === 0 ? /* @__PURE__ */ jsx144("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
72842
73118
  ] });
72843
73119
  }
72844
73120
  function renderTimetableSsr(display) {
@@ -72857,27 +73133,27 @@ function renderTimetableSsr(display) {
72857
73133
  return /* @__PURE__ */ jsxs90("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
72858
73134
  /* @__PURE__ */ jsxs90("div", { className: "event-calendar-header", children: [
72859
73135
  /* @__PURE__ */ jsxs90("div", { className: "event-calendar-nav", children: [
72860
- /* @__PURE__ */ jsx143(
73136
+ /* @__PURE__ */ jsx144(
72861
73137
  "button",
72862
73138
  {
72863
73139
  type: "button",
72864
73140
  className: "event-calendar-nav-btn",
72865
73141
  "aria-label": "Previous week",
72866
- children: /* @__PURE__ */ jsx143("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx143("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
73142
+ children: /* @__PURE__ */ jsx144("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx144("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
72867
73143
  }
72868
73144
  ),
72869
- /* @__PURE__ */ jsx143("h3", { className: "event-calendar-title", children: viewport.title }),
72870
- /* @__PURE__ */ jsx143(
73145
+ /* @__PURE__ */ jsx144("h3", { className: "event-calendar-title", children: viewport.title }),
73146
+ /* @__PURE__ */ jsx144(
72871
73147
  "button",
72872
73148
  {
72873
73149
  type: "button",
72874
73150
  className: "event-calendar-nav-btn",
72875
73151
  "aria-label": "Next week",
72876
- children: /* @__PURE__ */ jsx143("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx143("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
73152
+ children: /* @__PURE__ */ jsx144("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx144("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
72877
73153
  }
72878
73154
  )
72879
73155
  ] }),
72880
- /* @__PURE__ */ jsx143(
73156
+ /* @__PURE__ */ jsx144(
72881
73157
  "button",
72882
73158
  {
72883
73159
  type: "button",
@@ -72890,7 +73166,7 @@ function renderTimetableSsr(display) {
72890
73166
  )
72891
73167
  ] }),
72892
73168
  /* @__PURE__ */ jsxs90("div", { className: "event-timetable", children: [
72893
- /* @__PURE__ */ jsx143("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx143(
73169
+ /* @__PURE__ */ jsx144("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx144(
72894
73170
  "button",
72895
73171
  {
72896
73172
  type: "button",
@@ -72902,10 +73178,10 @@ function renderTimetableSsr(display) {
72902
73178
  },
72903
73179
  day.dateKey
72904
73180
  )) }),
72905
- /* @__PURE__ */ jsx143("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs90("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
73181
+ /* @__PURE__ */ jsx144("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs90("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
72906
73182
  /* @__PURE__ */ jsxs90("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
72907
- /* @__PURE__ */ jsx143("div", { className: "event-timetable-day-heading" }),
72908
- /* @__PURE__ */ jsx143("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx143(
73183
+ /* @__PURE__ */ jsx144("div", { className: "event-timetable-day-heading" }),
73184
+ /* @__PURE__ */ jsx144("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx144(
72909
73185
  "div",
72910
73186
  {
72911
73187
  className: "event-timetable-time-label",
@@ -72926,7 +73202,7 @@ function renderTimetableSsr(display) {
72926
73202
  children: [
72927
73203
  /* @__PURE__ */ jsxs90("h4", { className: "event-timetable-day-heading", children: [
72928
73204
  day.label,
72929
- day.isToday ? /* @__PURE__ */ jsx143("span", { className: "event-timetable-today-badge", children: "Today" }) : null
73205
+ day.isToday ? /* @__PURE__ */ jsx144("span", { className: "event-timetable-today-badge", children: "Today" }) : null
72930
73206
  ] }),
72931
73207
  /* @__PURE__ */ jsxs90(
72932
73208
  "div",
@@ -72934,7 +73210,7 @@ function renderTimetableSsr(display) {
72934
73210
  className: "event-timetable-day-body",
72935
73211
  style: { "--event-timetable-range-minutes": String(model.rangeMinutes) },
72936
73212
  children: [
72937
- model.hourTicks.map((hour) => /* @__PURE__ */ jsx143(
73213
+ model.hourTicks.map((hour) => /* @__PURE__ */ jsx144(
72938
73214
  "div",
72939
73215
  {
72940
73216
  className: "event-timetable-hour-line",
@@ -72943,7 +73219,7 @@ function renderTimetableSsr(display) {
72943
73219
  },
72944
73220
  hour
72945
73221
  )),
72946
- day.events.length === 0 ? /* @__PURE__ */ jsx143("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs90(
73222
+ day.events.length === 0 ? /* @__PURE__ */ jsx144("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs90(
72947
73223
  "a",
72948
73224
  {
72949
73225
  ...resolveEventLinkProps(cell.event),
@@ -72957,11 +73233,11 @@ function renderTimetableSsr(display) {
72957
73233
  borderColor: cell.categoryColor
72958
73234
  },
72959
73235
  children: [
72960
- /* @__PURE__ */ jsx143("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
72961
- /* @__PURE__ */ jsx143("span", { className: "event-timetable-event-title", children: cell.event.title }),
72962
- cell.teacherLine ? /* @__PURE__ */ jsx143("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
72963
- cell.event.venue ? /* @__PURE__ */ jsx143("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
72964
- display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx143(
73236
+ /* @__PURE__ */ jsx144("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
73237
+ /* @__PURE__ */ jsx144("span", { className: "event-timetable-event-title", children: cell.event.title }),
73238
+ cell.teacherLine ? /* @__PURE__ */ jsx144("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
73239
+ cell.event.venue ? /* @__PURE__ */ jsx144("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
73240
+ display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx144(
72965
73241
  "span",
72966
73242
  {
72967
73243
  className: clsx_default(
@@ -72983,7 +73259,7 @@ function renderTimetableSsr(display) {
72983
73259
  day.dateKey
72984
73260
  ))
72985
73261
  ] }) }),
72986
- !model.hasEvents ? /* @__PURE__ */ jsx143("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
73262
+ !model.hasEvents ? /* @__PURE__ */ jsx144("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
72987
73263
  ] })
72988
73264
  ] });
72989
73265
  }
@@ -73020,7 +73296,7 @@ var EventCalendarSSR = (props2) => {
73020
73296
  content = assertNeverDisplayMode(display.displayMode);
73021
73297
  }
73022
73298
  return /* @__PURE__ */ jsxs90("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
73023
- /* @__PURE__ */ jsx143(IslandPropsScript, { value: islandProps }),
73299
+ /* @__PURE__ */ jsx144(IslandPropsScript, { value: islandProps }),
73024
73300
  content
73025
73301
  ] });
73026
73302
  };
@@ -73028,13 +73304,13 @@ var EventCalendarSSR = (props2) => {
73028
73304
  // ../blocks/src/system/runtime/nodes/events/EventListing.server.tsx
73029
73305
  init_EventListing_interactive();
73030
73306
  init_EventListing_view();
73031
- import { jsx as jsx144, jsxs as jsxs91 } from "react/jsx-runtime";
73307
+ import { jsx as jsx145, jsxs as jsxs91 } from "react/jsx-runtime";
73032
73308
  var EventListingSSR = (props2) => {
73033
73309
  const islandProps = buildEventListingInteractiveIslandProps(props2);
73034
73310
  const display = islandProps.render.display;
73035
73311
  return /* @__PURE__ */ jsxs91("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
73036
- /* @__PURE__ */ jsx144(IslandPropsScript, { value: islandProps }),
73037
- /* @__PURE__ */ jsx144(
73312
+ /* @__PURE__ */ jsx145(IslandPropsScript, { value: islandProps }),
73313
+ /* @__PURE__ */ jsx145(
73038
73314
  EventListingFrameView,
73039
73315
  {
73040
73316
  display,
@@ -73047,7 +73323,7 @@ var EventListingSSR = (props2) => {
73047
73323
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
73048
73324
  init_event_registration_interactive();
73049
73325
  init_constants3();
73050
- import { jsx as jsx145, jsxs as jsxs92 } from "react/jsx-runtime";
73326
+ import { jsx as jsx146, jsxs as jsxs92 } from "react/jsx-runtime";
73051
73327
  function cx(...classes) {
73052
73328
  return classes.filter((className) => Boolean(className)).join(" ");
73053
73329
  }
@@ -73110,8 +73386,8 @@ function EventRegistrationSSR({
73110
73386
  "data-rb-island-error-class": "event-registration__hydration-error",
73111
73387
  ...getIslandRootProps("event-registration", blockId),
73112
73388
  children: [
73113
- /* @__PURE__ */ jsx145(IslandPropsScript, { value: islandProps }),
73114
- /* @__PURE__ */ jsx145(EventRegistrationShell, { display }),
73389
+ /* @__PURE__ */ jsx146(IslandPropsScript, { value: islandProps }),
73390
+ /* @__PURE__ */ jsx146(EventRegistrationShell, { display }),
73115
73391
  children
73116
73392
  ]
73117
73393
  }
@@ -73120,7 +73396,7 @@ function EventRegistrationSSR({
73120
73396
  function EventRegistrationShell({
73121
73397
  display
73122
73398
  }) {
73123
- return /* @__PURE__ */ jsx145(
73399
+ return /* @__PURE__ */ jsx146(
73124
73400
  "div",
73125
73401
  {
73126
73402
  id: EVENT_REGISTRATION_ANCHOR_ID,
@@ -73129,38 +73405,38 @@ function EventRegistrationShell({
73129
73405
  role: "status",
73130
73406
  children: /* @__PURE__ */ jsxs92("div", { className: "er-payment-layout er-payment-layout--no-sidebar", children: [
73131
73407
  /* @__PURE__ */ jsxs92("div", { className: "er-payment-layout-main", children: [
73132
- /* @__PURE__ */ jsx145("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx145("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
73408
+ /* @__PURE__ */ jsx146("div", { className: "er-steps-nav er-registration-shell__steps", "aria-hidden": "true", children: /* @__PURE__ */ jsx146("ol", { className: "er-steps", children: display.stepLabels.map((label, index) => {
73133
73409
  const isActive = index === 0;
73134
73410
  return /* @__PURE__ */ jsxs92("li", { className: "er-step", children: [
73135
- /* @__PURE__ */ jsx145("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
73136
- /* @__PURE__ */ jsx145("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
73137
- index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx145("span", { className: "er-step-connector" }) : null
73411
+ /* @__PURE__ */ jsx146("span", { className: cx("er-step-circle", isActive && "er-step-circle--active"), children: index + 1 }),
73412
+ /* @__PURE__ */ jsx146("span", { className: cx("er-step-label", isActive && "er-step-label--active"), children: label }),
73413
+ index < display.stepLabels.length - 1 ? /* @__PURE__ */ jsx146("span", { className: "er-step-connector" }) : null
73138
73414
  ] }, label);
73139
73415
  }) }) }),
73140
73416
  /* @__PURE__ */ jsxs92("div", { className: "er-stack", children: [
73141
73417
  /* @__PURE__ */ jsxs92("div", { children: [
73142
- /* @__PURE__ */ jsx145("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
73143
- /* @__PURE__ */ jsx145("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
73144
- /* @__PURE__ */ jsx145("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
73418
+ /* @__PURE__ */ jsx146("p", { className: "er-registration-shell__eyebrow", children: "Registration" }),
73419
+ /* @__PURE__ */ jsx146("h3", { className: "er-title er-registration-shell__title", children: display.titleText }),
73420
+ /* @__PURE__ */ jsx146("p", { className: "er-text er-text--muted er-registration-shell__copy", children: display.bodyText })
73145
73421
  ] }),
73146
73422
  /* @__PURE__ */ jsxs92("div", { className: "er-event-grid er-registration-shell__cards", "aria-hidden": "true", children: [
73147
73423
  /* @__PURE__ */ jsxs92("div", { className: "er-event-card er-registration-shell__card", children: [
73148
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
73149
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
73424
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--lg" }),
73425
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--sm" })
73150
73426
  ] }),
73151
73427
  /* @__PURE__ */ jsxs92("div", { className: "er-event-card er-registration-shell__card", children: [
73152
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
73153
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
73428
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
73429
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
73154
73430
  ] })
73155
73431
  ] })
73156
73432
  ] })
73157
73433
  ] }),
73158
- /* @__PURE__ */ jsx145("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs92("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
73434
+ /* @__PURE__ */ jsx146("div", { className: "er-payment-layout-footer", children: /* @__PURE__ */ jsxs92("div", { className: "er-summary-bar er-registration-shell__summary", "aria-hidden": "true", children: [
73159
73435
  /* @__PURE__ */ jsxs92("div", { className: "er-summary-bar-info", children: [
73160
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
73161
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
73436
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--md" }),
73437
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__line er-registration-shell__line--xs" })
73162
73438
  ] }),
73163
- /* @__PURE__ */ jsx145("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
73439
+ /* @__PURE__ */ jsx146("div", { className: "er-registration-shell__button-placeholder", children: display.summaryButtonText })
73164
73440
  ] }) })
73165
73441
  ] })
73166
73442
  }
@@ -73173,7 +73449,7 @@ init_clsx();
73173
73449
  init_buttons();
73174
73450
  init_FeedbackMessage();
73175
73451
  init_form_interactive();
73176
- import { jsx as jsx146, jsxs as jsxs93 } from "react/jsx-runtime";
73452
+ import { jsx as jsx147, jsxs as jsxs93 } from "react/jsx-runtime";
73177
73453
  var FormNodeSSR = ({
73178
73454
  blockId,
73179
73455
  value,
@@ -73199,8 +73475,8 @@ var FormNodeSSR = ({
73199
73475
  const form2 = display.form;
73200
73476
  if (!form2) {
73201
73477
  return /* @__PURE__ */ jsxs93("div", { ...getIslandRootProps("form", blockId), children: [
73202
- /* @__PURE__ */ jsx146(IslandPropsScript, { value: islandProps }),
73203
- /* @__PURE__ */ jsx146(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
73478
+ /* @__PURE__ */ jsx147(IslandPropsScript, { value: islandProps }),
73479
+ /* @__PURE__ */ jsx147(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
73204
73480
  ] });
73205
73481
  }
73206
73482
  const groups = display.groups;
@@ -73211,8 +73487,8 @@ var FormNodeSSR = ({
73211
73487
  const type = String(field.type ?? "text");
73212
73488
  if (type === "textarea") {
73213
73489
  return /* @__PURE__ */ jsxs93("div", { className: "fb-field", children: [
73214
- /* @__PURE__ */ jsx146("label", { htmlFor: inputId, className: "form-label", children: label }),
73215
- /* @__PURE__ */ jsx146(
73490
+ /* @__PURE__ */ jsx147("label", { htmlFor: inputId, className: "form-label", children: label }),
73491
+ /* @__PURE__ */ jsx147(
73216
73492
  "textarea",
73217
73493
  {
73218
73494
  id: inputId,
@@ -73229,19 +73505,19 @@ var FormNodeSSR = ({
73229
73505
  const options = field.options ?? [];
73230
73506
  const multiple = Boolean(field.multiple);
73231
73507
  return /* @__PURE__ */ jsxs93("div", { className: "fb-field", children: [
73232
- /* @__PURE__ */ jsx146("label", { htmlFor: inputId, className: "form-label", children: label }),
73508
+ /* @__PURE__ */ jsx147("label", { htmlFor: inputId, className: "form-label", children: label }),
73233
73509
  /* @__PURE__ */ jsxs93("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
73234
- !multiple && /* @__PURE__ */ jsx146("option", { value: "", children: "Select\u2026" }),
73235
- options.map((opt) => /* @__PURE__ */ jsx146("option", { value: opt.value, children: opt.label }, opt.value))
73510
+ !multiple && /* @__PURE__ */ jsx147("option", { value: "", children: "Select\u2026" }),
73511
+ options.map((opt) => /* @__PURE__ */ jsx147("option", { value: opt.value, children: opt.label }, opt.value))
73236
73512
  ] })
73237
73513
  ] }, field.id);
73238
73514
  }
73239
73515
  if (type === "radio") {
73240
73516
  const options = field.options ?? [];
73241
73517
  return /* @__PURE__ */ jsxs93("fieldset", { className: "fb-fieldset", children: [
73242
- /* @__PURE__ */ jsx146("legend", { className: "form-label", children: label }),
73518
+ /* @__PURE__ */ jsx147("legend", { className: "form-label", children: label }),
73243
73519
  options.map((opt) => /* @__PURE__ */ jsxs93("label", { className: "fb-inline form-label", children: [
73244
- /* @__PURE__ */ jsx146(
73520
+ /* @__PURE__ */ jsx147(
73245
73521
  "input",
73246
73522
  {
73247
73523
  type: "radio",
@@ -73251,14 +73527,14 @@ var FormNodeSSR = ({
73251
73527
  className: "form-radio"
73252
73528
  }
73253
73529
  ),
73254
- /* @__PURE__ */ jsx146("span", { children: opt.label })
73530
+ /* @__PURE__ */ jsx147("span", { children: opt.label })
73255
73531
  ] }, opt.value))
73256
73532
  ] }, field.id);
73257
73533
  }
73258
73534
  if (type === "checkbox" || type === "consent") {
73259
73535
  return /* @__PURE__ */ jsxs93("label", { className: "fb-inline form-label", children: [
73260
- /* @__PURE__ */ jsx146("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
73261
- /* @__PURE__ */ jsx146("span", { children: label })
73536
+ /* @__PURE__ */ jsx147("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
73537
+ /* @__PURE__ */ jsx147("span", { children: label })
73262
73538
  ] }, field.id);
73263
73539
  }
73264
73540
  const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
@@ -73273,8 +73549,8 @@ var FormNodeSSR = ({
73273
73549
  if (typeof field.max === "number") extra.max = field.max;
73274
73550
  }
73275
73551
  return /* @__PURE__ */ jsxs93("div", { className: "fb-field", children: [
73276
- /* @__PURE__ */ jsx146("label", { htmlFor: inputId, className: "form-label", children: label }),
73277
- /* @__PURE__ */ jsx146(
73552
+ /* @__PURE__ */ jsx147("label", { htmlFor: inputId, className: "form-label", children: label }),
73553
+ /* @__PURE__ */ jsx147(
73278
73554
  "input",
73279
73555
  {
73280
73556
  id: inputId,
@@ -73289,7 +73565,7 @@ var FormNodeSSR = ({
73289
73565
  ] }, field.id);
73290
73566
  };
73291
73567
  return /* @__PURE__ */ jsxs93("div", { ...getIslandRootProps("form", blockId), children: [
73292
- /* @__PURE__ */ jsx146(IslandPropsScript, { value: islandProps }),
73568
+ /* @__PURE__ */ jsx147(IslandPropsScript, { value: islandProps }),
73293
73569
  /* @__PURE__ */ jsxs93(
73294
73570
  "form",
73295
73571
  {
@@ -73298,15 +73574,15 @@ var FormNodeSSR = ({
73298
73574
  onSubmit,
73299
73575
  className: clsx_default("fb-form", display.className ?? void 0),
73300
73576
  children: [
73301
- /* @__PURE__ */ jsx146("input", { type: "hidden", name: "form_id", value: form2.id }),
73302
- /* @__PURE__ */ jsx146("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
73577
+ /* @__PURE__ */ jsx147("input", { type: "hidden", name: "form_id", value: form2.id }),
73578
+ /* @__PURE__ */ jsx147("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
73303
73579
  groups.map((group) => {
73304
73580
  if (group.type === "row") {
73305
- return /* @__PURE__ */ jsx146("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
73581
+ return /* @__PURE__ */ jsx147("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
73306
73582
  }
73307
73583
  return renderField(group.field);
73308
73584
  }),
73309
- /* @__PURE__ */ jsx146("div", { className: "fb-actions", children: /* @__PURE__ */ jsx146("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx146(
73585
+ /* @__PURE__ */ jsx147("div", { className: "fb-actions", children: /* @__PURE__ */ jsx147("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx147(
73310
73586
  "button",
73311
73587
  {
73312
73588
  type: "submit",
@@ -73328,7 +73604,7 @@ var FormNodeSSR = ({
73328
73604
  init_clsx();
73329
73605
  init_buttons();
73330
73606
  init_newsletter_form_interactive();
73331
- import { jsx as jsx147, jsxs as jsxs94 } from "react/jsx-runtime";
73607
+ import { jsx as jsx148, jsxs as jsxs94 } from "react/jsx-runtime";
73332
73608
  function NewsletterFormSSR({
73333
73609
  blockId,
73334
73610
  siteId,
@@ -73366,9 +73642,9 @@ function NewsletterFormSSR({
73366
73642
  return /* @__PURE__ */ jsxs94("div", { className: "fb-field newsletter-field", children: [
73367
73643
  /* @__PURE__ */ jsxs94("label", { htmlFor: inputId, className: "form-label", children: [
73368
73644
  field.label,
73369
- field.required && /* @__PURE__ */ jsx147("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
73645
+ field.required && /* @__PURE__ */ jsx148("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
73370
73646
  ] }),
73371
- /* @__PURE__ */ jsx147(
73647
+ /* @__PURE__ */ jsx148(
73372
73648
  "input",
73373
73649
  {
73374
73650
  id: inputId,
@@ -73388,9 +73664,9 @@ function NewsletterFormSSR({
73388
73664
  ...getIslandRootProps("newsletter-form", blockId),
73389
73665
  className: clsx_default("newsletter-form-ssr", className),
73390
73666
  children: [
73391
- /* @__PURE__ */ jsx147(IslandPropsScript, { value: islandProps }),
73667
+ /* @__PURE__ */ jsx148(IslandPropsScript, { value: islandProps }),
73392
73668
  /* @__PURE__ */ jsxs94("form", { method: "POST", className: "newsletter-form fb-form", children: [
73393
- /* @__PURE__ */ jsx147(
73669
+ /* @__PURE__ */ jsx148(
73394
73670
  "input",
73395
73671
  {
73396
73672
  type: "text",
@@ -73403,7 +73679,7 @@ function NewsletterFormSSR({
73403
73679
  ),
73404
73680
  /* @__PURE__ */ jsxs94("div", { className: "newsletter-form-fields", children: [
73405
73681
  fields3.map(renderField),
73406
- /* @__PURE__ */ jsx147("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx147(
73682
+ /* @__PURE__ */ jsx148("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx148(
73407
73683
  "button",
73408
73684
  {
73409
73685
  type: "submit",
@@ -73412,7 +73688,7 @@ function NewsletterFormSSR({
73412
73688
  }
73413
73689
  ) })
73414
73690
  ] }),
73415
- display.privacyNote && /* @__PURE__ */ jsx147("p", { className: "newsletter-privacy-note", children: display.privacyNote })
73691
+ display.privacyNote && /* @__PURE__ */ jsx148("p", { className: "newsletter-privacy-note", children: display.privacyNote })
73416
73692
  ] })
73417
73693
  ]
73418
73694
  }
@@ -73422,7 +73698,7 @@ var newsletter_form_server_default = NewsletterFormSSR;
73422
73698
 
73423
73699
  // ../blocks/src/system/runtime/nodes/product-detail.server.tsx
73424
73700
  init_shop_interactive();
73425
- import { jsx as jsx148, jsxs as jsxs95 } from "react/jsx-runtime";
73701
+ import { jsx as jsx149, jsxs as jsxs95 } from "react/jsx-runtime";
73426
73702
  function ProductDetailSSR({
73427
73703
  blockId,
73428
73704
  siteId,
@@ -73447,8 +73723,8 @@ function ProductDetailSSR({
73447
73723
  "data-site-id": siteId ?? void 0,
73448
73724
  ...getIslandRootProps("product-detail", blockId),
73449
73725
  children: [
73450
- /* @__PURE__ */ jsx148(IslandPropsScript, { value: islandProps }),
73451
- /* @__PURE__ */ jsx148(ProductDetailServerContent, { render: islandProps.render }),
73726
+ /* @__PURE__ */ jsx149(IslandPropsScript, { value: islandProps }),
73727
+ /* @__PURE__ */ jsx149(ProductDetailServerContent, { render: islandProps.render }),
73452
73728
  children
73453
73729
  ]
73454
73730
  }
@@ -73458,7 +73734,7 @@ var product_detail_server_default = ProductDetailSSR;
73458
73734
 
73459
73735
  // ../blocks/src/system/runtime/nodes/product-list.server.tsx
73460
73736
  init_shop_interactive();
73461
- import { jsx as jsx149, jsxs as jsxs96 } from "react/jsx-runtime";
73737
+ import { jsx as jsx150, jsxs as jsxs96 } from "react/jsx-runtime";
73462
73738
  function ProductListSSR({
73463
73739
  blockId,
73464
73740
  siteId,
@@ -73483,8 +73759,8 @@ function ProductListSSR({
73483
73759
  "data-site-id": siteId ?? void 0,
73484
73760
  ...getIslandRootProps("product-list", blockId),
73485
73761
  children: [
73486
- /* @__PURE__ */ jsx149(IslandPropsScript, { value: islandProps }),
73487
- /* @__PURE__ */ jsx149(ProductListServerContent, { render: islandProps.render }),
73762
+ /* @__PURE__ */ jsx150(IslandPropsScript, { value: islandProps }),
73763
+ /* @__PURE__ */ jsx150(ProductListServerContent, { render: islandProps.render }),
73488
73764
  children
73489
73765
  ]
73490
73766
  }
@@ -73496,7 +73772,7 @@ var product_list_server_default = ProductListSSR;
73496
73772
  init_buttons();
73497
73773
  init_view2();
73498
73774
  init_shop_interactive();
73499
- import { jsx as jsx150, jsxs as jsxs97 } from "react/jsx-runtime";
73775
+ import { jsx as jsx151, jsxs as jsxs97 } from "react/jsx-runtime";
73500
73776
  function ShopSSR({
73501
73777
  blockId,
73502
73778
  siteId,
@@ -73523,16 +73799,16 @@ function ShopSSR({
73523
73799
  "data-site-id": siteId ?? void 0,
73524
73800
  ...getIslandRootProps("shop", blockId),
73525
73801
  children: [
73526
- /* @__PURE__ */ jsx150(IslandPropsScript, { value: islandProps }),
73527
- /* @__PURE__ */ jsx150(
73802
+ /* @__PURE__ */ jsx151(IslandPropsScript, { value: islandProps }),
73803
+ /* @__PURE__ */ jsx151(
73528
73804
  PassesMembershipsSectionView,
73529
73805
  {
73530
73806
  display: render.display,
73531
- passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx150(
73807
+ passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx151(
73532
73808
  PassCardView,
73533
73809
  {
73534
73810
  display: pass,
73535
- action: /* @__PURE__ */ jsx150(
73811
+ action: /* @__PURE__ */ jsx151(
73536
73812
  "button",
73537
73813
  {
73538
73814
  type: "button",
@@ -73545,11 +73821,11 @@ function ShopSSR({
73545
73821
  },
73546
73822
  pass.id
73547
73823
  )),
73548
- membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx150(
73824
+ membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx151(
73549
73825
  MembershipCardView,
73550
73826
  {
73551
73827
  display: membership,
73552
- action: /* @__PURE__ */ jsx150(
73828
+ action: /* @__PURE__ */ jsx151(
73553
73829
  "button",
73554
73830
  {
73555
73831
  type: "button",
@@ -73734,14 +74010,14 @@ function isDecoratedHeadingBlockKind(blockKind) {
73734
74010
  return blockKind === "block.intro" || blockKind === "block.feature-cards" || blockKind === "block.testimonials" || blockKind === "block.faq";
73735
74011
  }
73736
74012
  function readVariant(blockContent) {
73737
- if (!isRecord15(blockContent)) return void 0;
74013
+ if (!isRecord16(blockContent)) return void 0;
73738
74014
  const variant = blockContent.variant;
73739
74015
  return typeof variant === "string" ? variant : void 0;
73740
74016
  }
73741
74017
  function isFaqDecoratedVariant(variant) {
73742
74018
  return variant === "default" || variant === "question-columns";
73743
74019
  }
73744
- function isRecord15(value) {
74020
+ function isRecord16(value) {
73745
74021
  return typeof value === "object" && value !== null && !Array.isArray(value);
73746
74022
  }
73747
74023
  function buildHeadingDecorationWrapperClassName(className) {
@@ -73766,8 +74042,8 @@ var META_PATH_TO_STORE_KEY = {
73766
74042
  function mapMetaPathToStoreKey(path) {
73767
74043
  return META_PATH_TO_STORE_KEY[path] ?? path;
73768
74044
  }
73769
- var PATH_SEPARATOR_REGEX = /\./g;
73770
- var BRACKET_ACCESS_REGEX = /\[([^\]]+)\]/g;
74045
+ var PATH_SEPARATOR_REGEX2 = /\./g;
74046
+ var BRACKET_ACCESS_REGEX2 = /\[([^\]]+)\]/g;
73771
74047
  function parseBracketToken(token) {
73772
74048
  if (token.startsWith('"') || token.startsWith("'")) {
73773
74049
  return token.slice(1, -1);
@@ -73784,7 +74060,7 @@ function extractSegmentsFromPart(part) {
73784
74060
  if (baseMatch && baseMatch[1]) {
73785
74061
  segments.push(baseMatch[1]);
73786
74062
  }
73787
- const bracketMatches = Array.from(part.matchAll(BRACKET_ACCESS_REGEX));
74063
+ const bracketMatches = Array.from(part.matchAll(BRACKET_ACCESS_REGEX2));
73788
74064
  const bracketSegments = bracketMatches.map((match) => match[1] ?? "").filter((token) => token.length > 0).map(parseBracketToken);
73789
74065
  segments.push(...bracketSegments);
73790
74066
  if (!baseMatch && !part.includes("[")) {
@@ -73793,7 +74069,7 @@ function extractSegmentsFromPart(part) {
73793
74069
  return segments;
73794
74070
  }
73795
74071
  function splitPath(path) {
73796
- return path.split(PATH_SEPARATOR_REGEX).flatMap(extractSegmentsFromPart).filter((segment) => segment !== "");
74072
+ return path.split(PATH_SEPARATOR_REGEX2).flatMap(extractSegmentsFromPart).filter((segment) => segment !== "");
73797
74073
  }
73798
74074
  function segmentsToPath(segments) {
73799
74075
  if (!segments.length) return void 0;
@@ -74703,6 +74979,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path) {
74703
74979
  case "datetime":
74704
74980
  case "entryPicker":
74705
74981
  case "file":
74982
+ case "inlineText":
74706
74983
  case "link":
74707
74984
  case "media":
74708
74985
  case "number":
@@ -78837,7 +79114,7 @@ function sourceLabel(source) {
78837
79114
  // ../blocks/src/PageRenderer.tsx
78838
79115
  init_typeGuards2();
78839
79116
  init_media3();
78840
- import { Fragment as Fragment31, jsx as jsx151, jsxs as jsxs98 } from "react/jsx-runtime";
79117
+ import { Fragment as Fragment31, jsx as jsx152, jsxs as jsxs98 } from "react/jsx-runtime";
78841
79118
  function PageRenderer({
78842
79119
  theme,
78843
79120
  page,
@@ -78861,12 +79138,12 @@ function PageRenderer({
78861
79138
  ]
78862
79139
  );
78863
79140
  if (!page || page.blocks.length === 0) {
78864
- return /* @__PURE__ */ jsx151("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
79141
+ return /* @__PURE__ */ jsx152("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
78865
79142
  }
78866
79143
  const themeTokens = providedThemeTokens ?? buildThemeRuntime(theme).tokens;
78867
79144
  const resolvedRegistry = registry ?? getDefaultComponentRegistry();
78868
79145
  setContextResolveImageUrlContext(imageResolveContext);
78869
- return /* @__PURE__ */ jsx151("div", { children: page.blocks.map((block, index) => {
79146
+ return /* @__PURE__ */ jsx152("div", { children: page.blocks.map((block, index) => {
78870
79147
  const blockPosition = pageBlockPosition(index, page.blocks.length);
78871
79148
  const blockKey = block.id ?? `${block.kind}-${index}`;
78872
79149
  const cleanKind = block.kind.replace(/^block\./, "");
@@ -78891,7 +79168,7 @@ function PageRenderer({
78891
79168
  imageResolveContext
78892
79169
  };
78893
79170
  if (!shouldUseWrapper) {
78894
- return /* @__PURE__ */ jsx151(MemoBlockSection, { ...blockSectionProps }, blockKey);
79171
+ return /* @__PURE__ */ jsx152(MemoBlockSection, { ...blockSectionProps }, blockKey);
78895
79172
  }
78896
79173
  const wrapperClassName = [
78897
79174
  `block-${cleanKind}`,
@@ -78899,7 +79176,7 @@ function PageRenderer({
78899
79176
  ].filter(Boolean).join(" ");
78900
79177
  const styleGroup = typeof renderableContent.styleGroup === "string" ? renderableContent.styleGroup : void 0;
78901
79178
  const blockLook = typeof renderableContent.blockLook === "string" ? renderableContent.blockLook : void 0;
78902
- const blockElement = /* @__PURE__ */ jsx151(
79179
+ const blockElement = /* @__PURE__ */ jsx152(
78903
79180
  "div",
78904
79181
  {
78905
79182
  className: wrapperClassName,
@@ -78911,7 +79188,7 @@ function PageRenderer({
78911
79188
  "data-block-look": blockLook,
78912
79189
  "data-page-block-position": blockPosition,
78913
79190
  "data-style-group": styleGroup,
78914
- children: /* @__PURE__ */ jsx151(MemoBlockSection, { ...blockSectionProps })
79191
+ children: /* @__PURE__ */ jsx152(MemoBlockSection, { ...blockSectionProps })
78915
79192
  },
78916
79193
  blockKey
78917
79194
  );
@@ -78920,7 +79197,7 @@ function PageRenderer({
78920
79197
  }
78921
79198
  return /* @__PURE__ */ jsxs98(React35.Fragment, { children: [
78922
79199
  blockElement,
78923
- /* @__PURE__ */ jsx151(
79200
+ /* @__PURE__ */ jsx152(
78924
79201
  "div",
78925
79202
  {
78926
79203
  "aria-hidden": "true",
@@ -79063,8 +79340,8 @@ var MemoBlockSection = React35.memo(
79063
79340
  blockId: block.id ?? null,
79064
79341
  blockKind: block.kind
79065
79342
  };
79066
- const rendered2 = /* @__PURE__ */ jsx151(OverrideComponent, { ...baseProps });
79067
- const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered2 });
79343
+ const rendered2 = /* @__PURE__ */ jsx152(OverrideComponent, { ...baseProps });
79344
+ const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered2 });
79068
79345
  return finish(node2, {
79069
79346
  outcome: "overrideWithoutDefinition",
79070
79347
  override: true,
@@ -79089,7 +79366,7 @@ var MemoBlockSection = React35.memo(
79089
79366
  const rendered = fallback(
79090
79367
  block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". The custom block definition was not found (missing manifest).` : `No renderer available for block kind "${block.kind}".`
79091
79368
  );
79092
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered });
79369
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered });
79093
79370
  return finish(node, { outcome: "missingDefinition", override: false });
79094
79371
  }
79095
79372
  const manifestHasLayout = Boolean(definition.manifest.layout) || definition.manifest.variants && Object.keys(definition.manifest.variants).length > 0;
@@ -79111,7 +79388,7 @@ var MemoBlockSection = React35.memo(
79111
79388
  const rendered = fallback(
79112
79389
  block.kind.startsWith("custom.") ? `No renderer available for block kind "${block.kind}". This custom block has no layout/variants, so it must be rendered via blockOverrides["${block.kind}"].` : `No renderer available for block kind "${block.kind}".`
79113
79390
  );
79114
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered });
79391
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered });
79115
79392
  return finish(node, { outcome: "missingLayout", override: false });
79116
79393
  }
79117
79394
  const content = getRenderableContent(block);
@@ -79148,14 +79425,14 @@ var MemoBlockSection = React35.memo(
79148
79425
  const rendered = fallback(
79149
79426
  `Unable to render block kind "${block.kind}".`
79150
79427
  );
79151
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered });
79428
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered });
79152
79429
  return finish(node, { outcome: "invalidPlaceholder", override: false });
79153
79430
  }
79154
79431
  } else {
79155
79432
  const rendered = fallback(
79156
79433
  `Invalid content for block kind "${block.kind}".`
79157
79434
  );
79158
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered });
79435
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered });
79159
79436
  return finish(node, { outcome: "invalidContent", override: false });
79160
79437
  }
79161
79438
  try {
@@ -79193,7 +79470,7 @@ var MemoBlockSection = React35.memo(
79193
79470
  };
79194
79471
  let rendered;
79195
79472
  if (OverrideComponent) {
79196
- rendered = /* @__PURE__ */ jsx151(OverrideComponent, { ...baseProps });
79473
+ rendered = /* @__PURE__ */ jsx152(OverrideComponent, { ...baseProps });
79197
79474
  } else {
79198
79475
  const BlockComponent = getCachedBlockComponent(definition.manifest);
79199
79476
  const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
@@ -79218,7 +79495,7 @@ var MemoBlockSection = React35.memo(
79218
79495
  };
79219
79496
  const blockBindings = block.bindings;
79220
79497
  const fragmentRegistry2 = getFragmentRegistry();
79221
- rendered = /* @__PURE__ */ jsx151(
79498
+ rendered = /* @__PURE__ */ jsx152(
79222
79499
  BlockComponent,
79223
79500
  {
79224
79501
  ...baseProps,
@@ -79233,18 +79510,18 @@ var MemoBlockSection = React35.memo(
79233
79510
  );
79234
79511
  }
79235
79512
  if (wrapBlock && block.id) {
79236
- return finish(/* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }), {
79513
+ return finish(/* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }), {
79237
79514
  override: Boolean(OverrideComponent),
79238
79515
  hasResolvedData
79239
79516
  });
79240
79517
  }
79241
- return finish(/* @__PURE__ */ jsx151(Fragment31, { children: rendered }), {
79518
+ return finish(/* @__PURE__ */ jsx152(Fragment31, { children: rendered }), {
79242
79519
  override: Boolean(OverrideComponent),
79243
79520
  hasResolvedData
79244
79521
  });
79245
79522
  } catch {
79246
79523
  const rendered = usePlaceholders ? fallback(`Unable to render block kind "${block.kind}".`) : fallback(`Invalid content for block kind "${block.kind}".`);
79247
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx151(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx151(Fragment31, { children: rendered });
79524
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx152(Fragment31, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx152(Fragment31, { children: rendered });
79248
79525
  return finish(node, { outcome: "exception", override: false });
79249
79526
  }
79250
79527
  },
@@ -79253,7 +79530,7 @@ var MemoBlockSection = React35.memo(
79253
79530
  }
79254
79531
  );
79255
79532
  function fallback(message) {
79256
- return /* @__PURE__ */ jsx151("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
79533
+ return /* @__PURE__ */ jsx152("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
79257
79534
  }
79258
79535
  function shouldDebugCustomBlocks() {
79259
79536
  try {
@@ -86177,6 +86454,49 @@ var containerResponsiveThemeCss = `/*
86177
86454
  margin-top: 0.5rem;
86178
86455
  }
86179
86456
 
86457
+ /* =============================================================================
86458
+ * Shared: Inline Text Marks
86459
+ * =============================================================================
86460
+ */
86461
+
86462
+ :where(.theme-scope) .rb-inline-text-accent,
86463
+ :where(.theme-scope) .rb-inline-text-highlight {
86464
+ font: inherit;
86465
+ letter-spacing: inherit;
86466
+ text-transform: inherit;
86467
+ }
86468
+
86469
+ :where(.theme-scope) .rb-inline-text-accent-accent {
86470
+ color: rgb(var(--tb-accent));
86471
+ }
86472
+
86473
+ :where(.theme-scope) .rb-inline-text-accent-brand {
86474
+ color: rgb(var(--tb-primary));
86475
+ }
86476
+
86477
+ :where(.theme-scope) .rb-inline-text-accent-contrast {
86478
+ color: var(--section-text-color, rgb(var(--tb-text)));
86479
+ }
86480
+
86481
+ :where(.theme-scope) .rb-inline-text-highlight {
86482
+ border-radius: 0.22em;
86483
+ box-decoration-break: clone;
86484
+ -webkit-box-decoration-break: clone;
86485
+ padding: 0.02em 0.12em;
86486
+ }
86487
+
86488
+ :where(.theme-scope) .rb-inline-text-highlight-soft {
86489
+ background: color-mix(in oklab, var(--section-text-color, rgb(var(--tb-text))) 14%, transparent);
86490
+ }
86491
+
86492
+ :where(.theme-scope) .rb-inline-text-highlight-accent {
86493
+ background: color-mix(in oklab, rgb(var(--tb-accent)) 28%, transparent);
86494
+ }
86495
+
86496
+ :where(.theme-scope) .rb-inline-text-highlight-brand {
86497
+ background: color-mix(in oklab, rgb(var(--tb-primary)) 24%, transparent);
86498
+ }
86499
+
86180
86500
  /* =============================================================================
86181
86501
  * Block: Hero (Phase 2)
86182
86502
  * Uses theme palette vars directly (no Tier 3 vars needed)
@@ -90199,7 +90519,7 @@ var containerResponsiveThemeCss = `/*
90199
90519
  }`;
90200
90520
 
90201
90521
  // ../theme-core/src/ThemeScopeCore.tsx
90202
- import { jsx as jsx152, jsxs as jsxs99 } from "react/jsx-runtime";
90522
+ import { jsx as jsx153, jsxs as jsxs99 } from "react/jsx-runtime";
90203
90523
  function ThemeScopeCore({
90204
90524
  cssVars,
90205
90525
  buttonCss,
@@ -90240,7 +90560,7 @@ function ThemeScopeCore({
90240
90560
  ...dataAttrs,
90241
90561
  suppressHydrationWarning,
90242
90562
  children: [
90243
- isContainerResponsive && /* @__PURE__ */ jsx152(
90563
+ isContainerResponsive && /* @__PURE__ */ jsx153(
90244
90564
  "style",
90245
90565
  {
90246
90566
  "data-container-responsive-overrides": true,
@@ -90249,70 +90569,70 @@ function ThemeScopeCore({
90249
90569
  }
90250
90570
  }
90251
90571
  ),
90252
- layoutCss && /* @__PURE__ */ jsx152(
90572
+ layoutCss && /* @__PURE__ */ jsx153(
90253
90573
  "style",
90254
90574
  {
90255
90575
  "data-layout-styles": true,
90256
90576
  dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
90257
90577
  }
90258
90578
  ),
90259
- buttonCss && /* @__PURE__ */ jsx152(
90579
+ buttonCss && /* @__PURE__ */ jsx153(
90260
90580
  "style",
90261
90581
  {
90262
90582
  "data-button-effects": true,
90263
90583
  dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
90264
90584
  }
90265
90585
  ),
90266
- headerCss && /* @__PURE__ */ jsx152(
90586
+ headerCss && /* @__PURE__ */ jsx153(
90267
90587
  "style",
90268
90588
  {
90269
90589
  "data-header-styles": true,
90270
90590
  dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
90271
90591
  }
90272
90592
  ),
90273
- footerCss && /* @__PURE__ */ jsx152(
90593
+ footerCss && /* @__PURE__ */ jsx153(
90274
90594
  "style",
90275
90595
  {
90276
90596
  "data-footer-styles": true,
90277
90597
  dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
90278
90598
  }
90279
90599
  ),
90280
- cardCss && /* @__PURE__ */ jsx152(
90600
+ cardCss && /* @__PURE__ */ jsx153(
90281
90601
  "style",
90282
90602
  {
90283
90603
  "data-card-styles": true,
90284
90604
  dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
90285
90605
  }
90286
90606
  ),
90287
- accordionCss && /* @__PURE__ */ jsx152(
90607
+ accordionCss && /* @__PURE__ */ jsx153(
90288
90608
  "style",
90289
90609
  {
90290
90610
  "data-accordion-styles": true,
90291
90611
  dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
90292
90612
  }
90293
90613
  ),
90294
- inputCss && /* @__PURE__ */ jsx152(
90614
+ inputCss && /* @__PURE__ */ jsx153(
90295
90615
  "style",
90296
90616
  {
90297
90617
  "data-input-styles": true,
90298
90618
  dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
90299
90619
  }
90300
90620
  ),
90301
- statusCss && /* @__PURE__ */ jsx152(
90621
+ statusCss && /* @__PURE__ */ jsx153(
90302
90622
  "style",
90303
90623
  {
90304
90624
  "data-status-styles": true,
90305
90625
  dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
90306
90626
  }
90307
90627
  ),
90308
- progressCss && /* @__PURE__ */ jsx152(
90628
+ progressCss && /* @__PURE__ */ jsx153(
90309
90629
  "style",
90310
90630
  {
90311
90631
  "data-progress-styles": true,
90312
90632
  dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
90313
90633
  }
90314
90634
  ),
90315
- typographyCss && /* @__PURE__ */ jsx152(
90635
+ typographyCss && /* @__PURE__ */ jsx153(
90316
90636
  "style",
90317
90637
  {
90318
90638
  "data-typography-styles": true,
@@ -90321,7 +90641,7 @@ function ThemeScopeCore({
90321
90641
  }
90322
90642
  }
90323
90643
  ),
90324
- eventCalendarCss && /* @__PURE__ */ jsx152(
90644
+ eventCalendarCss && /* @__PURE__ */ jsx153(
90325
90645
  "style",
90326
90646
  {
90327
90647
  "data-event-calendar-styles": true,
@@ -90330,14 +90650,14 @@ function ThemeScopeCore({
90330
90650
  }
90331
90651
  }
90332
90652
  ),
90333
- blockVarsCss && /* @__PURE__ */ jsx152(
90653
+ blockVarsCss && /* @__PURE__ */ jsx153(
90334
90654
  "style",
90335
90655
  {
90336
90656
  "data-block-vars-styles": true,
90337
90657
  dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
90338
90658
  }
90339
90659
  ),
90340
- blockCustomVarsCss && /* @__PURE__ */ jsx152(
90660
+ blockCustomVarsCss && /* @__PURE__ */ jsx153(
90341
90661
  "style",
90342
90662
  {
90343
90663
  "data-block-custom-vars-styles": true,
@@ -90346,7 +90666,7 @@ function ThemeScopeCore({
90346
90666
  }
90347
90667
  }
90348
90668
  ),
90349
- blockCustomCss && /* @__PURE__ */ jsx152(
90669
+ blockCustomCss && /* @__PURE__ */ jsx153(
90350
90670
  "style",
90351
90671
  {
90352
90672
  "data-block-custom-styles": true,
@@ -90355,14 +90675,14 @@ function ThemeScopeCore({
90355
90675
  }
90356
90676
  }
90357
90677
  ),
90358
- atRulesCss && /* @__PURE__ */ jsx152(
90678
+ atRulesCss && /* @__PURE__ */ jsx153(
90359
90679
  "style",
90360
90680
  {
90361
90681
  "data-at-rules-styles": true,
90362
90682
  dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
90363
90683
  }
90364
90684
  ),
90365
- customCss && /* @__PURE__ */ jsx152(
90685
+ customCss && /* @__PURE__ */ jsx153(
90366
90686
  "style",
90367
90687
  {
90368
90688
  "data-custom-theme-styles": true,
@@ -90389,7 +90709,7 @@ function buildThemeDataAttrs(axes, themeId) {
90389
90709
  }
90390
90710
 
90391
90711
  // ../theme-core/src/ThemeScope.tsx
90392
- import { jsx as jsx153 } from "react/jsx-runtime";
90712
+ import { jsx as jsx154 } from "react/jsx-runtime";
90393
90713
  function ThemeScope({
90394
90714
  theme,
90395
90715
  children,
@@ -90399,7 +90719,7 @@ function ThemeScope({
90399
90719
  }) {
90400
90720
  const runtime = buildThemeRuntime(theme, { themeId, responsiveMode });
90401
90721
  const dataAttrs = buildThemeDataAttrs(theme.axes, themeId);
90402
- return /* @__PURE__ */ jsx153(
90722
+ return /* @__PURE__ */ jsx154(
90403
90723
  ThemeScopeCore,
90404
90724
  {
90405
90725
  cssVars: runtime.cssVars,
@@ -90461,10 +90781,10 @@ init_breakpoints();
90461
90781
 
90462
90782
  // ../theme-core/src/ThemeFontLoader.tsx
90463
90783
  import * as React36 from "react";
90464
- import { Fragment as Fragment32, jsx as jsx154, jsxs as jsxs100 } from "react/jsx-runtime";
90784
+ import { Fragment as Fragment32, jsx as jsx155, jsxs as jsxs100 } from "react/jsx-runtime";
90465
90785
 
90466
90786
  // ../theme-core/src/ResponsiveScope.tsx
90467
- import { jsx as jsx155, jsxs as jsxs101 } from "react/jsx-runtime";
90787
+ import { jsx as jsx156, jsxs as jsxs101 } from "react/jsx-runtime";
90468
90788
  function ResponsiveScope({
90469
90789
  children,
90470
90790
  responsiveMode = DEFAULT_THEME_RESPONSIVE_MODE,
@@ -90484,7 +90804,7 @@ function ResponsiveScope({
90484
90804
  "data-rb-responsive-mode": responsiveScope.kind,
90485
90805
  "data-theme-scope": "responsive",
90486
90806
  children: [
90487
- isContainerResponsive && /* @__PURE__ */ jsx155(
90807
+ isContainerResponsive && /* @__PURE__ */ jsx156(
90488
90808
  "style",
90489
90809
  {
90490
90810
  "data-container-responsive-overrides": true,
@@ -90501,40 +90821,40 @@ function ResponsiveScope({
90501
90821
 
90502
90822
  // ../theme-core/src/siteChrome.tsx
90503
90823
  init_types3();
90504
- import { Fragment as Fragment33, jsx as jsx156, jsxs as jsxs102 } from "react/jsx-runtime";
90824
+ import { Fragment as Fragment33, jsx as jsx157, jsxs as jsxs102 } from "react/jsx-runtime";
90505
90825
 
90506
90826
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
90507
90827
  init_colorConversion();
90508
- import { z as z68 } from "zod";
90828
+ import { z as z69 } from "zod";
90509
90829
  init_core2();
90510
90830
  init_core3();
90511
- var themeBridgeConfigSchema = z68.object({
90512
- tokens: z68.record(z68.string(), z68.string()),
90513
- typography: z68.object({
90514
- headingFamily: z68.string().optional(),
90515
- bodyFamily: z68.string().optional(),
90516
- headingWeight: z68.number().optional(),
90517
- bodyWeight: z68.number().optional()
90831
+ var themeBridgeConfigSchema = z69.object({
90832
+ tokens: z69.record(z69.string(), z69.string()),
90833
+ typography: z69.object({
90834
+ headingFamily: z69.string().optional(),
90835
+ bodyFamily: z69.string().optional(),
90836
+ headingWeight: z69.number().optional(),
90837
+ bodyWeight: z69.number().optional()
90518
90838
  }).optional(),
90519
- spacing: z68.enum(["comfortable", "standard", "dense"]).optional(),
90520
- corners: z68.enum(["square", "soft", "rounded", "pill"]).optional(),
90521
- shadows: z68.enum(["none", "low", "medium", "high"]).optional(),
90522
- components: z68.object({
90523
- buttons: z68.union([
90524
- z68.boolean(),
90525
- z68.object({
90526
- variants: z68.array(z68.enum(["primary", "secondary", "outline", "ghost"])).optional()
90839
+ spacing: z69.enum(["comfortable", "standard", "dense"]).optional(),
90840
+ corners: z69.enum(["square", "soft", "rounded", "pill"]).optional(),
90841
+ shadows: z69.enum(["none", "low", "medium", "high"]).optional(),
90842
+ components: z69.object({
90843
+ buttons: z69.union([
90844
+ z69.boolean(),
90845
+ z69.object({
90846
+ variants: z69.array(z69.enum(["primary", "secondary", "outline", "ghost"])).optional()
90527
90847
  })
90528
90848
  ]).optional(),
90529
- cards: z68.union([
90530
- z68.boolean(),
90531
- z68.object({
90532
- variants: z68.array(z68.enum(["default", "elevated", "outlined"])).optional()
90849
+ cards: z69.union([
90850
+ z69.boolean(),
90851
+ z69.object({
90852
+ variants: z69.array(z69.enum(["default", "elevated", "outlined"])).optional()
90533
90853
  })
90534
90854
  ]).optional(),
90535
- inputs: z68.boolean().optional()
90855
+ inputs: z69.boolean().optional()
90536
90856
  }).optional(),
90537
- overrides: z68.record(z68.string(), z68.string()).optional()
90857
+ overrides: z69.record(z69.string(), z69.string()).optional()
90538
90858
  }).passthrough();
90539
90859
 
90540
90860
  // ../theme-core/src/index.ts
@@ -90653,7 +90973,7 @@ function ThemeScope2(props2) {
90653
90973
  }
90654
90974
 
90655
90975
  // src/rendering/themeRuntime.tsx
90656
- import { Fragment as Fragment34, jsx as jsx157 } from "react/jsx-runtime";
90976
+ import { Fragment as Fragment34, jsx as jsx158 } from "react/jsx-runtime";
90657
90977
  var defaultLayoutThemeRuntime = {
90658
90978
  kind: "cms-theme"
90659
90979
  };
@@ -90682,18 +91002,18 @@ function renderWithSdkThemeRuntime({
90682
91002
  }) {
90683
91003
  switch (themeRuntime.kind) {
90684
91004
  case "cms-theme":
90685
- return /* @__PURE__ */ jsx157(ThemeScope2, { theme, responsiveMode: themeRuntime.responsiveMode, children });
91005
+ return /* @__PURE__ */ jsx158(ThemeScope2, { theme, responsiveMode: themeRuntime.responsiveMode, children });
90686
91006
  case "responsive-only":
90687
- return /* @__PURE__ */ jsx157(ResponsiveScope, { responsiveMode: themeRuntime.responsiveMode, children });
91007
+ return /* @__PURE__ */ jsx158(ResponsiveScope, { responsiveMode: themeRuntime.responsiveMode, children });
90688
91008
  case "none":
90689
- return /* @__PURE__ */ jsx157(Fragment34, { children });
91009
+ return /* @__PURE__ */ jsx158(Fragment34, { children });
90690
91010
  default:
90691
91011
  return assertNever(themeRuntime);
90692
91012
  }
90693
91013
  }
90694
91014
 
90695
91015
  // src/rendering/components/pageShared.tsx
90696
- import { jsx as jsx158 } from "react/jsx-runtime";
91016
+ import { jsx as jsx159 } from "react/jsx-runtime";
90697
91017
  function toPageHydrationBootstrapConfig(props2) {
90698
91018
  return {
90699
91019
  siteId: props2.siteId,
@@ -90727,7 +91047,7 @@ function PageContent({
90727
91047
  }) {
90728
91048
  const baseTokens = providedTokens ?? buildThemeRuntime2(theme).tokens;
90729
91049
  const themeTokens = sdkConfig?.theme?.palette ? { ...baseTokens, palette: { ...baseTokens.palette, ...sdkConfig.theme.palette } } : baseTokens;
90730
- const content = /* @__PURE__ */ jsx158(
91050
+ const content = /* @__PURE__ */ jsx159(
90731
91051
  PageRenderer2,
90732
91052
  {
90733
91053
  theme,
@@ -90773,12 +91093,12 @@ function PageContent({
90773
91093
  }
90774
91094
 
90775
91095
  // src/rendering/components/Page.tsx
90776
- import { Fragment as Fragment35, jsx as jsx159, jsxs as jsxs103 } from "react/jsx-runtime";
91096
+ import { Fragment as Fragment35, jsx as jsx160, jsxs as jsxs103 } from "react/jsx-runtime";
90777
91097
  var HydratorWithContextProps = BlocksIslandsHydrator;
90778
91098
  function Page(props2) {
90779
91099
  return /* @__PURE__ */ jsxs103(Fragment35, { children: [
90780
- /* @__PURE__ */ jsx159(HydratorWithContextProps, { ...toPageHydrationBootstrapConfig(props2) }),
90781
- /* @__PURE__ */ jsx159(PageContent, { ...props2 })
91100
+ /* @__PURE__ */ jsx160(HydratorWithContextProps, { ...toPageHydrationBootstrapConfig(props2) }),
91101
+ /* @__PURE__ */ jsx160(PageContent, { ...props2 })
90782
91102
  ] });
90783
91103
  }
90784
91104
 
@@ -91216,7 +91536,7 @@ function buildLogo(logo, fallbackAlt) {
91216
91536
  }
91217
91537
 
91218
91538
  // src/rendering/components/Layout.tsx
91219
- import { Fragment as Fragment36, jsx as jsx160, jsxs as jsxs104 } from "react/jsx-runtime";
91539
+ import { Fragment as Fragment36, jsx as jsx161, jsxs as jsxs104 } from "react/jsx-runtime";
91220
91540
  async function Layout({
91221
91541
  siteData: providedSiteData,
91222
91542
  client,
@@ -91324,7 +91644,7 @@ async function Layout({
91324
91644
  isSdkSite,
91325
91645
  mode: theme.footer?.mode
91326
91646
  });
91327
- const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx160(
91647
+ const footerBlocksElement = footerPlan.renderFooterBlocks && footerBlocks.length > 0 ? /* @__PURE__ */ jsx161(
91328
91648
  PageRenderer2,
91329
91649
  {
91330
91650
  theme,
@@ -91498,17 +91818,17 @@ function resolveBinding(path, vm) {
91498
91818
  return readFromSource2(vm, segments);
91499
91819
  }
91500
91820
  function splitPath2(path) {
91501
- const PATH_SEPARATOR_REGEX2 = /\./g;
91502
- const BRACKET_ACCESS_REGEX2 = /\[(?<token>[^\]]+)\]/g;
91821
+ const PATH_SEPARATOR_REGEX3 = /\./g;
91822
+ const BRACKET_ACCESS_REGEX3 = /\[(?<token>[^\]]+)\]/g;
91503
91823
  const segments = [];
91504
- const parts = path.split(PATH_SEPARATOR_REGEX2);
91824
+ const parts = path.split(PATH_SEPARATOR_REGEX3);
91505
91825
  for (const raw of parts) {
91506
91826
  if (!raw) continue;
91507
91827
  const baseMatch = raw.match(/^([^\[]+)/);
91508
91828
  if (baseMatch && baseMatch[1]) {
91509
91829
  segments.push(baseMatch[1]);
91510
91830
  }
91511
- const bracketMatches = raw.matchAll(BRACKET_ACCESS_REGEX2);
91831
+ const bracketMatches = raw.matchAll(BRACKET_ACCESS_REGEX3);
91512
91832
  for (const match of bracketMatches) {
91513
91833
  const token = match.groups?.token ?? "";
91514
91834
  if (token.startsWith('"') || token.startsWith("'")) {
@@ -98231,16 +98551,16 @@ var ENDPOINT_DEFINITIONS = {
98231
98551
  };
98232
98552
 
98233
98553
  // ../api/src/accessAdmin.ts
98234
- import { z as z69 } from "zod";
98235
- var managedDomainAddOnPricingSnapshotSchema = z69.object({
98236
- formulaVersion: z69.literal("managed-domain-overage-v1"),
98237
- conversionRule: z69.literal("usd-to-gbp-1-to-1-v1"),
98238
- registrarAnnualCost: z69.number().nonnegative(),
98239
- registrarCurrency: z69.literal("USD"),
98240
- includedAnnualAllowance: z69.number().nonnegative(),
98241
- includedAnnualAllowanceCurrency: z69.literal("USD"),
98242
- monthlyAmountCents: z69.number().int().nonnegative(),
98243
- monthlyCurrency: z69.literal("gbp")
98554
+ import { z as z70 } from "zod";
98555
+ var managedDomainAddOnPricingSnapshotSchema = z70.object({
98556
+ formulaVersion: z70.literal("managed-domain-overage-v1"),
98557
+ conversionRule: z70.literal("usd-to-gbp-1-to-1-v1"),
98558
+ registrarAnnualCost: z70.number().nonnegative(),
98559
+ registrarCurrency: z70.literal("USD"),
98560
+ includedAnnualAllowance: z70.number().nonnegative(),
98561
+ includedAnnualAllowanceCurrency: z70.literal("USD"),
98562
+ monthlyAmountCents: z70.number().int().nonnegative(),
98563
+ monthlyCurrency: z70.literal("gbp")
98244
98564
  });
98245
98565
 
98246
98566
  // ../api/src/media.ts
@@ -98258,60 +98578,60 @@ var SITE_BACKGROUND_ASSET_USES2 = [
98258
98578
  ];
98259
98579
 
98260
98580
  // ../api/src/navigation/contracts.ts
98261
- import { z as z70 } from "zod";
98262
- var portalLinkPayloadSchema = z70.object({
98263
- kind: z70.literal("portal"),
98264
- path: z70.string().trim().startsWith("/").optional(),
98265
- labels: z70.object({
98266
- loggedOut: z70.string().trim().min(1).optional(),
98267
- loggedIn: z70.string().trim().min(1).optional()
98581
+ import { z as z71 } from "zod";
98582
+ var portalLinkPayloadSchema = z71.object({
98583
+ kind: z71.literal("portal"),
98584
+ path: z71.string().trim().startsWith("/").optional(),
98585
+ labels: z71.object({
98586
+ loggedOut: z71.string().trim().min(1).optional(),
98587
+ loggedIn: z71.string().trim().min(1).optional()
98268
98588
  }).optional()
98269
98589
  });
98270
- var cartLinkLabelConfigSchema = z70.discriminatedUnion("kind", [
98271
- z70.object({
98272
- kind: z70.literal("icon-only")
98590
+ var cartLinkLabelConfigSchema = z71.discriminatedUnion("kind", [
98591
+ z71.object({
98592
+ kind: z71.literal("icon-only")
98273
98593
  }),
98274
- z70.object({
98275
- kind: z70.literal("icon-with-label"),
98276
- label: z70.string().trim().min(1)
98594
+ z71.object({
98595
+ kind: z71.literal("icon-with-label"),
98596
+ label: z71.string().trim().min(1)
98277
98597
  })
98278
98598
  ]);
98279
- var cartLinkPayloadSchema = z70.object({
98280
- kind: z70.literal("cart"),
98281
- badge: z70.enum(["show-count", "hidden"]),
98599
+ var cartLinkPayloadSchema = z71.object({
98600
+ kind: z71.literal("cart"),
98601
+ badge: z71.enum(["show-count", "hidden"]),
98282
98602
  label: cartLinkLabelConfigSchema
98283
98603
  });
98284
- var internalLinkPayloadSchema = z70.object({
98285
- kind: z70.literal("internal"),
98286
- routeId: z70.string().uuid(),
98287
- entityId: z70.string().uuid(),
98288
- entityType: z70.enum(["page", "content"]),
98289
- href: z70.string().min(1),
98290
- title: z70.string().min(1),
98291
- typeLabel: z70.string().min(1),
98292
- contentTypeKey: z70.string().nullable().optional(),
98293
- contentTypeName: z70.string().nullable().optional(),
98294
- updatedAt: z70.string().nullable().optional()
98604
+ var internalLinkPayloadSchema = z71.object({
98605
+ kind: z71.literal("internal"),
98606
+ routeId: z71.string().uuid(),
98607
+ entityId: z71.string().uuid(),
98608
+ entityType: z71.enum(["page", "content"]),
98609
+ href: z71.string().min(1),
98610
+ title: z71.string().min(1),
98611
+ typeLabel: z71.string().min(1),
98612
+ contentTypeKey: z71.string().nullable().optional(),
98613
+ contentTypeName: z71.string().nullable().optional(),
98614
+ updatedAt: z71.string().nullable().optional()
98295
98615
  }).passthrough();
98296
- var externalLinkSchema2 = z70.object({
98297
- kind: z70.literal("external"),
98616
+ var externalLinkSchema2 = z71.object({
98617
+ kind: z71.literal("external"),
98298
98618
  // Navigation external links are expected to be absolute URLs.
98299
- href: z70.string().url()
98619
+ href: z71.string().url()
98300
98620
  });
98301
- var customLinkSchema2 = z70.object({
98302
- kind: z70.literal("url"),
98303
- href: z70.string().min(1)
98621
+ var customLinkSchema2 = z71.object({
98622
+ kind: z71.literal("url"),
98623
+ href: z71.string().min(1)
98304
98624
  });
98305
- var pageLinkSchema2 = z70.object({
98306
- kind: z70.literal("page"),
98307
- identifier: z70.string().min(1)
98625
+ var pageLinkSchema2 = z71.object({
98626
+ kind: z71.literal("page"),
98627
+ identifier: z71.string().min(1)
98308
98628
  });
98309
- var entryLinkSchema2 = z70.object({
98310
- kind: z70.literal("entry"),
98311
- contentType: z70.string().min(1),
98312
- identifier: z70.string().min(1)
98629
+ var entryLinkSchema2 = z71.object({
98630
+ kind: z71.literal("entry"),
98631
+ contentType: z71.string().min(1),
98632
+ identifier: z71.string().min(1)
98313
98633
  });
98314
- var linkPayloadSchema = z70.discriminatedUnion("kind", [
98634
+ var linkPayloadSchema = z71.discriminatedUnion("kind", [
98315
98635
  internalLinkPayloadSchema,
98316
98636
  pageLinkSchema2,
98317
98637
  entryLinkSchema2,
@@ -98328,27 +98648,27 @@ var navigationLinkInputSchemaOptions = [
98328
98648
  portalLinkPayloadSchema,
98329
98649
  cartLinkPayloadSchema
98330
98650
  ];
98331
- var navigationLinkInputSchema = z70.discriminatedUnion(
98651
+ var navigationLinkInputSchema = z71.discriminatedUnion(
98332
98652
  "kind",
98333
98653
  navigationLinkInputSchemaOptions
98334
98654
  );
98335
98655
 
98336
98656
  // ../api/src/sdkConfig/contracts.ts
98337
- import { z as z71 } from "zod";
98657
+ import { z as z72 } from "zod";
98338
98658
  function unsafeRetypeZodSchema(schema) {
98339
98659
  return schema;
98340
98660
  }
98341
- var navIdListSchema = z71.preprocess((value) => {
98661
+ var navIdListSchema = z72.preprocess((value) => {
98342
98662
  if (!Array.isArray(value)) return void 0;
98343
98663
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
98344
98664
  return filtered.length > 0 ? filtered : void 0;
98345
- }, z71.array(z71.string()).max(200).optional());
98346
- var dashboardNavVisibilityBaseSchema = z71.object({
98347
- mode: z71.enum(["augment", "restrict"]).optional(),
98665
+ }, z72.array(z72.string()).max(200).optional());
98666
+ var dashboardNavVisibilityBaseSchema = z72.object({
98667
+ mode: z72.enum(["augment", "restrict"]).optional(),
98348
98668
  allowIds: navIdListSchema,
98349
98669
  denyIds: navIdListSchema
98350
98670
  }).strip();
98351
- var dashboardNavVisibilityRolesSchema = z71.object({
98671
+ var dashboardNavVisibilityRolesSchema = z72.object({
98352
98672
  administrator: dashboardNavVisibilityBaseSchema.optional(),
98353
98673
  editor: dashboardNavVisibilityBaseSchema.optional(),
98354
98674
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -98356,63 +98676,63 @@ var dashboardNavVisibilityRolesSchema = z71.object({
98356
98676
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
98357
98677
  roles: dashboardNavVisibilityRolesSchema
98358
98678
  }).strip();
98359
- var dashboardNavigationConfigSchema = z71.object({
98679
+ var dashboardNavigationConfigSchema = z72.object({
98360
98680
  siteNav: dashboardNavVisibilitySchema.optional(),
98361
98681
  settingsNav: dashboardNavVisibilitySchema.optional()
98362
98682
  }).strip();
98363
- var dashboardConfigSchema = z71.object({
98364
- previewEditingEnabled: z71.boolean().optional(),
98683
+ var dashboardConfigSchema = z72.object({
98684
+ previewEditingEnabled: z72.boolean().optional(),
98365
98685
  navigation: dashboardNavigationConfigSchema.optional()
98366
98686
  }).strip();
98367
98687
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
98368
98688
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
98369
- var sdkLoaderEndpointSchema = z71.enum(SUPPORTED_LOADER_ENDPOINTS);
98370
- var loaderFallbackScalarSchema = z71.union([
98371
- z71.string(),
98372
- z71.number(),
98373
- z71.boolean(),
98374
- z71.null()
98689
+ var sdkLoaderEndpointSchema = z72.enum(SUPPORTED_LOADER_ENDPOINTS);
98690
+ var loaderFallbackScalarSchema = z72.union([
98691
+ z72.string(),
98692
+ z72.number(),
98693
+ z72.boolean(),
98694
+ z72.null()
98375
98695
  ]);
98376
- var loaderParamBindingSchema = z71.object({
98377
- $bind: z71.object({
98378
- from: z71.string().min(1, "Binding path is required"),
98696
+ var loaderParamBindingSchema = z72.object({
98697
+ $bind: z72.object({
98698
+ from: z72.string().min(1, "Binding path is required"),
98379
98699
  fallback: loaderFallbackScalarSchema.optional()
98380
98700
  })
98381
98701
  });
98382
- var loaderParamValueSchema = z71.union([
98383
- z71.string(),
98384
- z71.number(),
98385
- z71.boolean(),
98702
+ var loaderParamValueSchema = z72.union([
98703
+ z72.string(),
98704
+ z72.number(),
98705
+ z72.boolean(),
98386
98706
  loaderParamBindingSchema
98387
98707
  ]);
98388
- var sdkConfigLoaderSchema = z71.object({
98708
+ var sdkConfigLoaderSchema = z72.object({
98389
98709
  endpoint: sdkLoaderEndpointSchema,
98390
- params: z71.record(z71.string(), loaderParamValueSchema),
98391
- mode: z71.enum(["server", "client"]).default("server")
98710
+ params: z72.record(z72.string(), loaderParamValueSchema),
98711
+ mode: z72.enum(["server", "client"]).default("server")
98392
98712
  });
98393
- var sdkDataLoadersSchema = z71.record(z71.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
98394
- var sdkCustomBlockIdSchema = z71.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
98713
+ var sdkDataLoadersSchema = z72.record(z72.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
98714
+ var sdkCustomBlockIdSchema = z72.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
98395
98715
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
98396
98716
  }).transform((value) => value);
98397
- var sdkCustomBlockInputSchema = z71.object({
98717
+ var sdkCustomBlockInputSchema = z72.object({
98398
98718
  id: sdkCustomBlockIdSchema,
98399
- title: z71.string().min(1),
98400
- titleSource: z71.union([z71.string().min(1), z71.array(z71.string().min(1)).min(1)]).optional(),
98401
- description: z71.string().optional(),
98719
+ title: z72.string().min(1),
98720
+ titleSource: z72.union([z72.string().min(1), z72.array(z72.string().min(1)).min(1)]).optional(),
98721
+ description: z72.string().optional(),
98402
98722
  category: blockCategoryEnum,
98403
- icon: z71.string().optional(),
98404
- tags: z71.array(z71.string()).optional(),
98723
+ icon: z72.string().optional(),
98724
+ tags: z72.array(z72.string()).optional(),
98405
98725
  fields: fieldDefinitionInputSchema.array().min(1),
98406
98726
  dataLoaders: sdkDataLoadersSchema,
98407
98727
  layout: NodeSchema.optional(),
98408
- variants: z71.record(z71.string().min(1), NodeSchema).optional(),
98409
- defaultVariant: z71.string().min(1).optional(),
98410
- variantOptions: z71.record(
98411
- z71.string().min(1),
98412
- z71.object({
98413
- label: z71.string().min(1).optional(),
98414
- description: z71.string().min(1).optional(),
98415
- icon: z71.string().min(1).optional()
98728
+ variants: z72.record(z72.string().min(1), NodeSchema).optional(),
98729
+ defaultVariant: z72.string().min(1).optional(),
98730
+ variantOptions: z72.record(
98731
+ z72.string().min(1),
98732
+ z72.object({
98733
+ label: z72.string().min(1).optional(),
98734
+ description: z72.string().min(1).optional(),
98735
+ icon: z72.string().min(1).optional()
98416
98736
  })
98417
98737
  ).optional(),
98418
98738
  previewCustomize: previewCustomizeManifestCurationSchema.optional()
@@ -98423,7 +98743,7 @@ var sdkCustomBlockInputSchema = z71.object({
98423
98743
  const exists = data.fields.some((field) => field.id === source);
98424
98744
  if (!exists) {
98425
98745
  ctx.addIssue({
98426
- code: z71.ZodIssueCode.custom,
98746
+ code: z72.ZodIssueCode.custom,
98427
98747
  message: `titleSource must reference a valid field ID (got "${source}")`,
98428
98748
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
98429
98749
  });
@@ -98432,7 +98752,7 @@ var sdkCustomBlockInputSchema = z71.object({
98432
98752
  }
98433
98753
  if (data.layout && data.variants) {
98434
98754
  ctx.addIssue({
98435
- code: z71.ZodIssueCode.custom,
98755
+ code: z72.ZodIssueCode.custom,
98436
98756
  message: "Custom block must define either `layout` or `variants`, not both",
98437
98757
  path: ["variants"]
98438
98758
  });
@@ -98441,14 +98761,14 @@ var sdkCustomBlockInputSchema = z71.object({
98441
98761
  const keys = Object.keys(data.variants);
98442
98762
  if (keys.length === 0) {
98443
98763
  ctx.addIssue({
98444
- code: z71.ZodIssueCode.custom,
98764
+ code: z72.ZodIssueCode.custom,
98445
98765
  message: "`variants` must contain at least one variant key",
98446
98766
  path: ["variants"]
98447
98767
  });
98448
98768
  }
98449
98769
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
98450
98770
  ctx.addIssue({
98451
- code: z71.ZodIssueCode.custom,
98771
+ code: z72.ZodIssueCode.custom,
98452
98772
  message: "`defaultVariant` must be a key present in `variants`",
98453
98773
  path: ["defaultVariant"]
98454
98774
  });
@@ -98457,7 +98777,7 @@ var sdkCustomBlockInputSchema = z71.object({
98457
98777
  for (const key of Object.keys(data.variantOptions)) {
98458
98778
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
98459
98779
  ctx.addIssue({
98460
- code: z71.ZodIssueCode.custom,
98780
+ code: z72.ZodIssueCode.custom,
98461
98781
  message: "`variantOptions` key must exist in `variants`",
98462
98782
  path: ["variantOptions", key]
98463
98783
  });
@@ -98466,78 +98786,78 @@ var sdkCustomBlockInputSchema = z71.object({
98466
98786
  }
98467
98787
  }
98468
98788
  });
98469
- var sdkBlockFieldExtensionInputSchema = z71.object({
98789
+ var sdkBlockFieldExtensionInputSchema = z72.object({
98470
98790
  fields: fieldDefinitionInputSchema.array().min(1)
98471
98791
  });
98472
- var sdkBlockFieldExtensionsInputSchema = z71.record(
98473
- z71.string().min(1),
98792
+ var sdkBlockFieldExtensionsInputSchema = z72.record(
98793
+ z72.string().min(1),
98474
98794
  sdkBlockFieldExtensionInputSchema
98475
98795
  );
98476
- var sdkThemePaletteSchema = z71.record(z71.string(), z71.string());
98477
- var sdkThemeConfigSchema = z71.object({
98796
+ var sdkThemePaletteSchema = z72.record(z72.string(), z72.string());
98797
+ var sdkThemeConfigSchema = z72.object({
98478
98798
  palette: sdkThemePaletteSchema
98479
98799
  });
98480
- var sdkSectionBackgroundSchema = z71.object({
98481
- id: z71.string().min(1),
98482
- label: z71.string().min(1),
98483
- token: z71.string().min(1)
98800
+ var sdkSectionBackgroundSchema = z72.object({
98801
+ id: z72.string().min(1),
98802
+ label: z72.string().min(1),
98803
+ token: z72.string().min(1)
98484
98804
  });
98485
- var sdkSectionOptionsConfigSchema = z71.object({
98486
- backgroundColor: z71.boolean().optional(),
98487
- backgroundImage: z71.boolean().optional(),
98488
- backgroundGradient: z71.boolean().optional(),
98489
- spacing: z71.union([z71.array(z71.enum(["compact", "default", "spacious"])), z71.boolean()]).optional(),
98490
- textColor: z71.boolean().optional()
98805
+ var sdkSectionOptionsConfigSchema = z72.object({
98806
+ backgroundColor: z72.boolean().optional(),
98807
+ backgroundImage: z72.boolean().optional(),
98808
+ backgroundGradient: z72.boolean().optional(),
98809
+ spacing: z72.union([z72.array(z72.enum(["compact", "default", "spacious"])), z72.boolean()]).optional(),
98810
+ textColor: z72.boolean().optional()
98491
98811
  });
98492
- var sdkContainerOptionsConfigSchema = z71.object({
98493
- maxWidth: z71.union([z71.array(z71.enum(["narrow", "default", "wide", "full"])), z71.boolean()]).optional(),
98494
- alignment: z71.union([z71.array(z71.enum(["left", "center", "right"])), z71.boolean()]).optional()
98812
+ var sdkContainerOptionsConfigSchema = z72.object({
98813
+ maxWidth: z72.union([z72.array(z72.enum(["narrow", "default", "wide", "full"])), z72.boolean()]).optional(),
98814
+ alignment: z72.union([z72.array(z72.enum(["left", "center", "right"])), z72.boolean()]).optional()
98495
98815
  });
98496
- var sdkSiteStyleConfigSchema = z71.object({
98497
- sectionBackgrounds: z71.array(sdkSectionBackgroundSchema).optional(),
98816
+ var sdkSiteStyleConfigSchema = z72.object({
98817
+ sectionBackgrounds: z72.array(sdkSectionBackgroundSchema).optional(),
98498
98818
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
98499
98819
  containerOptions: sdkContainerOptionsConfigSchema.optional()
98500
98820
  });
98501
- var sdkSiteLayoutConfigSchema = z71.object({
98502
- footerBlocks: z71.array(
98503
- z71.object({
98504
- id: z71.string().min(1).optional(),
98505
- kind: z71.string().min(1),
98506
- content: z71.record(z71.string(), z71.unknown()).optional()
98821
+ var sdkSiteLayoutConfigSchema = z72.object({
98822
+ footerBlocks: z72.array(
98823
+ z72.object({
98824
+ id: z72.string().min(1).optional(),
98825
+ kind: z72.string().min(1),
98826
+ content: z72.record(z72.string(), z72.unknown()).optional()
98507
98827
  })
98508
98828
  ).optional()
98509
98829
  });
98510
- var sdkFieldSelectOptionSchema = z71.object({
98511
- value: z71.string(),
98512
- label: z71.string()
98830
+ var sdkFieldSelectOptionSchema = z72.object({
98831
+ value: z72.string(),
98832
+ label: z72.string()
98513
98833
  });
98514
- var sdkBlockFieldConfigSchema = z71.object({
98515
- options: z71.array(sdkFieldSelectOptionSchema).optional()
98834
+ var sdkBlockFieldConfigSchema = z72.object({
98835
+ options: z72.array(sdkFieldSelectOptionSchema).optional()
98516
98836
  });
98517
- var sdkBlockFieldOptionsMapSchema = z71.record(
98518
- z71.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
98837
+ var sdkBlockFieldOptionsMapSchema = z72.record(
98838
+ z72.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
98519
98839
  message: "Block ID must be 'block.*' or 'custom.*' format"
98520
98840
  }),
98521
- z71.record(z71.string().min(1), sdkBlockFieldConfigSchema)
98841
+ z72.record(z72.string().min(1), sdkBlockFieldConfigSchema)
98522
98842
  ).optional();
98523
- var sdkContentTypeTemplateConfigSchema = z71.object({
98524
- blocks: z71.array(z71.unknown())
98843
+ var sdkContentTypeTemplateConfigSchema = z72.object({
98844
+ blocks: z72.array(z72.unknown())
98525
98845
  }).passthrough();
98526
- var sdkContentTypeOrderingConfigSchema = z71.object({
98527
- mode: z71.enum(["default", "manual"]).optional()
98846
+ var sdkContentTypeOrderingConfigSchema = z72.object({
98847
+ mode: z72.enum(["default", "manual"]).optional()
98528
98848
  }).optional();
98529
- var sdkContentTypeConfigSchema = z71.object({
98530
- key: z71.string().min(1),
98531
- fields: z71.array(z71.unknown()),
98849
+ var sdkContentTypeConfigSchema = z72.object({
98850
+ key: z72.string().min(1),
98851
+ fields: z72.array(z72.unknown()),
98532
98852
  ordering: sdkContentTypeOrderingConfigSchema,
98533
98853
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
98534
98854
  }).passthrough();
98535
- var sdkContentConfigSchema = z71.object({
98536
- contentTypes: z71.array(sdkContentTypeConfigSchema).optional(),
98537
- pages: z71.array(z71.unknown()).optional(),
98538
- entries: z71.array(z71.unknown()).optional(),
98539
- navigationMenus: z71.array(z71.unknown()).optional(),
98540
- settings: z71.unknown().optional()
98855
+ var sdkContentConfigSchema = z72.object({
98856
+ contentTypes: z72.array(sdkContentTypeConfigSchema).optional(),
98857
+ pages: z72.array(z72.unknown()).optional(),
98858
+ entries: z72.array(z72.unknown()).optional(),
98859
+ navigationMenus: z72.array(z72.unknown()).optional(),
98860
+ settings: z72.unknown().optional()
98541
98861
  }).passthrough();
98542
98862
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
98543
98863
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -98552,62 +98872,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
98552
98872
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
98553
98873
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
98554
98874
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
98555
- var sdkWorkflowIdSchema = z71.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
98875
+ var sdkWorkflowIdSchema = z72.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
98556
98876
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
98557
98877
  });
98558
- var sdkWorkflowEndpointSchema = z71.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 "/"' });
98559
- var sdkWorkflowManualTriggerSchema = z71.object({
98560
- type: z71.literal("manual")
98878
+ var sdkWorkflowEndpointSchema = z72.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 "/"' });
98879
+ var sdkWorkflowManualTriggerSchema = z72.object({
98880
+ type: z72.literal("manual")
98561
98881
  }).strict();
98562
- var sdkWorkflowTriggerFieldSchema = z71.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
98882
+ var sdkWorkflowTriggerFieldSchema = z72.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
98563
98883
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
98564
98884
  });
98565
- var sdkWorkflowFieldChangedConditionSchema = z71.object({
98885
+ var sdkWorkflowFieldChangedConditionSchema = z72.object({
98566
98886
  field: sdkWorkflowTriggerFieldSchema,
98567
- changed: z71.literal(true)
98887
+ changed: z72.literal(true)
98568
98888
  }).strict();
98569
- var sdkWorkflowFieldEmptyConditionSchema = z71.object({
98889
+ var sdkWorkflowFieldEmptyConditionSchema = z72.object({
98570
98890
  field: sdkWorkflowTriggerFieldSchema,
98571
- isEmpty: z71.boolean()
98891
+ isEmpty: z72.boolean()
98572
98892
  }).strict();
98573
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z71.object({
98574
- type: z71.literal("entry.draft.updated"),
98575
- when: z71.array(
98576
- z71.union([
98893
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z72.object({
98894
+ type: z72.literal("entry.draft.updated"),
98895
+ when: z72.array(
98896
+ z72.union([
98577
98897
  sdkWorkflowFieldChangedConditionSchema,
98578
98898
  sdkWorkflowFieldEmptyConditionSchema
98579
98899
  ])
98580
98900
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
98581
98901
  }).strict();
98582
- var sdkWorkflowTriggerSchema = z71.discriminatedUnion("type", [
98902
+ var sdkWorkflowTriggerSchema = z72.discriminatedUnion("type", [
98583
98903
  sdkWorkflowManualTriggerSchema,
98584
98904
  sdkWorkflowEntryDraftUpdatedTriggerSchema
98585
98905
  ]);
98586
- var sdkWorkflowConfirmationSchema = z71.object({
98587
- title: z71.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
98588
- body: z71.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
98906
+ var sdkWorkflowConfirmationSchema = z72.object({
98907
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
98908
+ body: z72.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
98589
98909
  }).strict();
98590
- var sdkWorkflowConfigSchema = z71.object({
98910
+ var sdkWorkflowConfigSchema = z72.object({
98591
98911
  id: sdkWorkflowIdSchema,
98592
- title: z71.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
98593
- description: z71.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
98594
- contentType: z71.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
98912
+ title: z72.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
98913
+ description: z72.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
98914
+ contentType: z72.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
98595
98915
  endpoint: sdkWorkflowEndpointSchema,
98596
- triggers: z71.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
98916
+ triggers: z72.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
98597
98917
  confirmation: sdkWorkflowConfirmationSchema.optional()
98598
98918
  }).strict();
98599
- var sdkWorkflowsSchema = z71.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
98919
+ var sdkWorkflowsSchema = z72.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
98600
98920
  const ids = workflows.map((workflow) => workflow.id);
98601
98921
  return ids.length === new Set(ids).size;
98602
98922
  }, { message: "Workflow IDs must be unique" }).optional();
98603
- var riverbankSiteConfigInputSchema = z71.object({
98604
- siteId: z71.string().uuid(),
98605
- previewUrl: z71.string().url().optional(),
98606
- liveUrl: z71.string().url().optional(),
98923
+ var riverbankSiteConfigInputSchema = z72.object({
98924
+ siteId: z72.string().uuid(),
98925
+ previewUrl: z72.string().url().optional(),
98926
+ liveUrl: z72.string().url().optional(),
98607
98927
  theme: sdkThemeConfigSchema.optional(),
98608
98928
  styles: sdkSiteStyleConfigSchema.optional(),
98609
98929
  layout: sdkSiteLayoutConfigSchema.optional(),
98610
- customBlocks: z71.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
98930
+ customBlocks: z72.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
98611
98931
  const ids = blocks.map((b2) => b2.id);
98612
98932
  return ids.length === new Set(ids).size;
98613
98933
  }, { message: "Block IDs must be unique" }).optional(),
@@ -98615,50 +98935,50 @@ var riverbankSiteConfigInputSchema = z71.object({
98615
98935
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
98616
98936
  workflows: sdkWorkflowsSchema,
98617
98937
  content: sdkContentConfigSchema.optional(),
98618
- contentDir: z71.string().optional(),
98619
- sync: z71.object({
98620
- existingEntries: z71.enum(["skip", "update"]).optional()
98938
+ contentDir: z72.string().optional(),
98939
+ sync: z72.object({
98940
+ existingEntries: z72.enum(["skip", "update"]).optional()
98621
98941
  }).optional(),
98622
- deploy: z71.object({
98623
- verifyCommand: z71.string().optional(),
98624
- prebuildOutput: z71.string().optional()
98942
+ deploy: z72.object({
98943
+ verifyCommand: z72.string().optional(),
98944
+ prebuildOutput: z72.string().optional()
98625
98945
  }).optional(),
98626
- themeSource: z71.enum(["local", "cms"]).optional(),
98627
- activeTheme: z71.string().optional(),
98628
- enablePortal: z71.boolean().optional(),
98946
+ themeSource: z72.enum(["local", "cms"]).optional(),
98947
+ activeTheme: z72.string().optional(),
98948
+ enablePortal: z72.boolean().optional(),
98629
98949
  dashboard: dashboardConfigSchema.optional()
98630
98950
  }).strict();
98631
- var pushSdkConfigBodySchema = z71.object({
98951
+ var pushSdkConfigBodySchema = z72.object({
98632
98952
  config: riverbankSiteConfigInputSchema,
98633
- forceContentTypes: z71.boolean().optional()
98953
+ forceContentTypes: z72.boolean().optional()
98634
98954
  }).strict();
98635
98955
 
98636
98956
  // ../api/src/siteOnboarding.ts
98637
- import { z as z72 } from "zod";
98957
+ import { z as z73 } from "zod";
98638
98958
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
98639
98959
  configure_appointments: {
98640
98960
  requirementId: "configure_appointments",
98641
98961
  reason: "launch_anyway"
98642
98962
  }
98643
98963
  };
98644
- var acknowledgeLaunchRequirementRequestSchema = z72.discriminatedUnion(
98964
+ var acknowledgeLaunchRequirementRequestSchema = z73.discriminatedUnion(
98645
98965
  "requirementId",
98646
98966
  [
98647
- z72.object({
98648
- requirementId: z72.literal("review_generated_site")
98967
+ z73.object({
98968
+ requirementId: z73.literal("review_generated_site")
98649
98969
  }),
98650
- z72.object({
98651
- requirementId: z72.literal(
98970
+ z73.object({
98971
+ requirementId: z73.literal(
98652
98972
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
98653
98973
  ),
98654
- overrideReason: z72.literal(
98974
+ overrideReason: z73.literal(
98655
98975
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
98656
98976
  )
98657
98977
  })
98658
98978
  ]
98659
98979
  );
98660
- var goLiveSiteRequestSchema = z72.object({
98661
- acceptExtraSiteCharge: z72.boolean().optional()
98980
+ var goLiveSiteRequestSchema = z73.object({
98981
+ acceptExtraSiteCharge: z73.boolean().optional()
98662
98982
  });
98663
98983
 
98664
98984
  // ../surfaces/src/index.ts
@@ -98777,7 +99097,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
98777
99097
  ];
98778
99098
 
98779
99099
  // ../api/src/bookingVerticals.ts
98780
- import { z as z73 } from "zod";
99100
+ import { z as z74 } from "zod";
98781
99101
  var VERTICAL_IDS = [
98782
99102
  "yoga_wellness",
98783
99103
  "fitness_pt",
@@ -98942,39 +99262,39 @@ function getSiteVerticalConfigIssues(rawConfig, config) {
98942
99262
  }
98943
99263
  return [...issues];
98944
99264
  }
98945
- var VerticalIdSchema = z73.string().trim().transform((value, ctx) => {
99265
+ var VerticalIdSchema = z74.string().trim().transform((value, ctx) => {
98946
99266
  const parsed = parseVerticalId(value);
98947
99267
  if (!parsed) {
98948
99268
  ctx.addIssue({
98949
- code: z73.ZodIssueCode.custom,
99269
+ code: z74.ZodIssueCode.custom,
98950
99270
  message: "Unknown booking vertical"
98951
99271
  });
98952
- return z73.NEVER;
99272
+ return z74.NEVER;
98953
99273
  }
98954
99274
  return parsed;
98955
99275
  });
98956
- var VerticalPresetIdSchema = z73.string().trim().transform((value, ctx) => {
99276
+ var VerticalPresetIdSchema = z74.string().trim().transform((value, ctx) => {
98957
99277
  const parsed = parseVerticalPresetId(value);
98958
99278
  if (!parsed) {
98959
99279
  ctx.addIssue({
98960
- code: z73.ZodIssueCode.custom,
99280
+ code: z74.ZodIssueCode.custom,
98961
99281
  message: "Unknown booking preset"
98962
99282
  });
98963
- return z73.NEVER;
99283
+ return z74.NEVER;
98964
99284
  }
98965
99285
  return parsed;
98966
99286
  });
98967
- var BookingVerticalConfigSchema = z73.object({
99287
+ var BookingVerticalConfigSchema = z74.object({
98968
99288
  verticalId: VerticalIdSchema.nullable(),
98969
- selectedPresetIds: z73.array(VerticalPresetIdSchema).max(20)
99289
+ selectedPresetIds: z74.array(VerticalPresetIdSchema).max(20)
98970
99290
  }).transform((value, ctx) => {
98971
99291
  const resolved = resolveSiteVerticalBookingConfig(value);
98972
99292
  if (resolved.kind === "invalid") {
98973
99293
  ctx.addIssue({
98974
- code: z73.ZodIssueCode.custom,
99294
+ code: z74.ZodIssueCode.custom,
98975
99295
  message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
98976
99296
  });
98977
- return z73.NEVER;
99297
+ return z74.NEVER;
98978
99298
  }
98979
99299
  return resolved.config;
98980
99300
  });
@@ -98996,56 +99316,56 @@ function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, descript
98996
99316
  }
98997
99317
 
98998
99318
  // ../api/src/utils/isRecord.ts
98999
- function isRecord16(value) {
99319
+ function isRecord17(value) {
99000
99320
  return typeof value === "object" && value !== null && !Array.isArray(value);
99001
99321
  }
99002
99322
 
99003
99323
  // ../api/src/appointmentSetup.ts
99004
- import { z as z74 } from "zod";
99324
+ import { z as z75 } from "zod";
99005
99325
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
99006
- var appointmentSetupRefSchema = z74.discriminatedUnion("kind", [
99007
- z74.object({ kind: z74.literal("existing"), id: z74.string().min(1) }),
99008
- z74.object({ kind: z74.literal("new"), draftId: z74.string().min(1) })
99326
+ var appointmentSetupRefSchema = z75.discriminatedUnion("kind", [
99327
+ z75.object({ kind: z75.literal("existing"), id: z75.string().min(1) }),
99328
+ z75.object({ kind: z75.literal("new"), draftId: z75.string().min(1) })
99009
99329
  ]);
99010
- var appointmentSetupVenueChoiceSchema = z74.discriminatedUnion("kind", [
99011
- z74.object({ kind: z74.literal("none") }),
99012
- z74.object({ kind: z74.literal("existing"), venueId: z74.string().min(1) }),
99013
- z74.object({
99014
- kind: z74.literal("create"),
99015
- draftId: z74.string().min(1),
99016
- title: z74.string().trim().min(1),
99017
- description: z74.string().nullable(),
99018
- timezone: z74.string().trim().min(1).nullable(),
99019
- addressJson: z74.record(z74.string(), z74.unknown()),
99020
- locationJson: z74.object({ lat: z74.number(), lng: z74.number() }).nullable()
99330
+ var appointmentSetupVenueChoiceSchema = z75.discriminatedUnion("kind", [
99331
+ z75.object({ kind: z75.literal("none") }),
99332
+ z75.object({ kind: z75.literal("existing"), venueId: z75.string().min(1) }),
99333
+ z75.object({
99334
+ kind: z75.literal("create"),
99335
+ draftId: z75.string().min(1),
99336
+ title: z75.string().trim().min(1),
99337
+ description: z75.string().nullable(),
99338
+ timezone: z75.string().trim().min(1).nullable(),
99339
+ addressJson: z75.record(z75.string(), z75.unknown()),
99340
+ locationJson: z75.object({ lat: z75.number(), lng: z75.number() }).nullable()
99021
99341
  })
99022
99342
  ]);
99023
- var appointmentSetupPaymentDraftSchema = z74.object({
99024
- priceType: z74.union([z74.literal("free"), z74.literal("paid")])
99025
- });
99026
- var appointmentSetupServiceAssignmentDraftSchema = z74.discriminatedUnion("kind", [
99027
- z74.object({ kind: z74.literal("all_practitioners") }),
99028
- z74.object({
99029
- kind: z74.literal("selected_practitioners"),
99030
- resourceRefs: z74.array(appointmentSetupRefSchema)
99343
+ var appointmentSetupPaymentDraftSchema = z75.object({
99344
+ priceType: z75.union([z75.literal("free"), z75.literal("paid")])
99345
+ });
99346
+ var appointmentSetupServiceAssignmentDraftSchema = z75.discriminatedUnion("kind", [
99347
+ z75.object({ kind: z75.literal("all_practitioners") }),
99348
+ z75.object({
99349
+ kind: z75.literal("selected_practitioners"),
99350
+ resourceRefs: z75.array(appointmentSetupRefSchema)
99031
99351
  })
99032
99352
  ]);
99033
- var appointmentSetupServiceDraftSchema = z74.object({
99353
+ var appointmentSetupServiceDraftSchema = z75.object({
99034
99354
  ref: appointmentSetupRefSchema,
99035
- title: z74.string().trim().min(1),
99036
- description: z74.string().nullable(),
99037
- durationMinutes: z74.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
99038
- prepMinutes: z74.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
99039
- cleanupMinutes: z74.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
99040
- priceAmount: z74.number().int().nonnegative().nullable(),
99041
- isActive: z74.boolean(),
99042
- locationType: z74.union([
99043
- z74.literal("virtual"),
99044
- z74.literal("in_person"),
99045
- z74.literal("hybrid")
99355
+ title: z75.string().trim().min(1),
99356
+ description: z75.string().nullable(),
99357
+ durationMinutes: z75.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
99358
+ prepMinutes: z75.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
99359
+ cleanupMinutes: z75.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
99360
+ priceAmount: z75.number().int().nonnegative().nullable(),
99361
+ isActive: z75.boolean(),
99362
+ locationType: z75.union([
99363
+ z75.literal("virtual"),
99364
+ z75.literal("in_person"),
99365
+ z75.literal("hybrid")
99046
99366
  ]),
99047
99367
  venue: appointmentSetupVenueChoiceSchema,
99048
- timezone: z74.string().trim().min(1).nullable(),
99368
+ timezone: z75.string().trim().min(1).nullable(),
99049
99369
  payment: appointmentSetupPaymentDraftSchema,
99050
99370
  assignment: appointmentSetupServiceAssignmentDraftSchema
99051
99371
  }).superRefine((service, ctx) => {
@@ -99064,49 +99384,49 @@ var appointmentSetupServiceDraftSchema = z74.object({
99064
99384
  });
99065
99385
  }
99066
99386
  });
99067
- var appointmentSetupPractitionerDraftSchema = z74.object({
99387
+ var appointmentSetupPractitionerDraftSchema = z75.object({
99068
99388
  ref: appointmentSetupRefSchema,
99069
- displayName: z74.string().trim().min(1),
99070
- bio: z74.string().nullable(),
99071
- timezone: z74.string().trim().min(1),
99072
- colorHex: z74.string().nullable()
99073
- });
99074
- var appointmentSetupWeeklyWindowDraftSchema = z74.object({
99075
- weekday: z74.number().int().min(0).max(6),
99076
- startTime: z74.string(),
99077
- endTime: z74.string()
99078
- });
99079
- var appointmentSetupStartTimePolicyDraftSchema = z74.discriminatedUnion("kind", [
99080
- z74.object({ kind: z74.literal("automatic_spacing") }),
99081
- z74.object({
99082
- kind: z74.literal("regular_interval"),
99083
- intervalMinutes: z74.union([
99084
- z74.literal(10),
99085
- z74.literal(15),
99086
- z74.literal(20),
99087
- z74.literal(30),
99088
- z74.literal(45),
99089
- z74.literal(60)
99389
+ displayName: z75.string().trim().min(1),
99390
+ bio: z75.string().nullable(),
99391
+ timezone: z75.string().trim().min(1),
99392
+ colorHex: z75.string().nullable()
99393
+ });
99394
+ var appointmentSetupWeeklyWindowDraftSchema = z75.object({
99395
+ weekday: z75.number().int().min(0).max(6),
99396
+ startTime: z75.string(),
99397
+ endTime: z75.string()
99398
+ });
99399
+ var appointmentSetupStartTimePolicyDraftSchema = z75.discriminatedUnion("kind", [
99400
+ z75.object({ kind: z75.literal("automatic_spacing") }),
99401
+ z75.object({
99402
+ kind: z75.literal("regular_interval"),
99403
+ intervalMinutes: z75.union([
99404
+ z75.literal(10),
99405
+ z75.literal(15),
99406
+ z75.literal(20),
99407
+ z75.literal(30),
99408
+ z75.literal(45),
99409
+ z75.literal(60)
99090
99410
  ])
99091
99411
  })
99092
99412
  ]);
99093
- var appointmentSetupAvailabilityDraftSchema = z74.object({
99094
- kind: z74.literal("weekly_windows"),
99413
+ var appointmentSetupAvailabilityDraftSchema = z75.object({
99414
+ kind: z75.literal("weekly_windows"),
99095
99415
  resourceRef: appointmentSetupRefSchema,
99096
99416
  serviceRef: appointmentSetupRefSchema.nullable(),
99097
- windows: z74.array(appointmentSetupWeeklyWindowDraftSchema),
99417
+ windows: z75.array(appointmentSetupWeeklyWindowDraftSchema),
99098
99418
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
99099
99419
  });
99100
99420
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
99101
99421
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
99102
- var appointmentSetupBookingNoticeSchema = z74.object({
99103
- minLeadMinutes: z74.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
99104
- maxBookingNoticeMinutes: z74.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
99105
- });
99106
- var applyAppointmentSetupRequestSchema = z74.object({
99107
- services: z74.array(appointmentSetupServiceDraftSchema),
99108
- practitioners: z74.array(appointmentSetupPractitionerDraftSchema),
99109
- availability: z74.array(appointmentSetupAvailabilityDraftSchema),
99422
+ var appointmentSetupBookingNoticeSchema = z75.object({
99423
+ minLeadMinutes: z75.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
99424
+ maxBookingNoticeMinutes: z75.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
99425
+ });
99426
+ var applyAppointmentSetupRequestSchema = z75.object({
99427
+ services: z75.array(appointmentSetupServiceDraftSchema),
99428
+ practitioners: z75.array(appointmentSetupPractitionerDraftSchema),
99429
+ availability: z75.array(appointmentSetupAvailabilityDraftSchema),
99110
99430
  bookingNotice: appointmentSetupBookingNoticeSchema
99111
99431
  });
99112
99432
 
@@ -99139,24 +99459,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
99139
99459
  ];
99140
99460
 
99141
99461
  // ../api/src/siteBanner.ts
99142
- import { z as z75 } from "zod";
99462
+ import { z as z76 } from "zod";
99143
99463
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
99144
99464
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
99145
99465
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
99146
99466
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
99147
- var siteBannerScopeSchema = z75.enum(SITE_BANNER_SCOPE_VALUES);
99148
- var siteBannerToneSchema = z75.enum(SITE_BANNER_TONE_VALUES);
99149
- var siteBannerBodySchema = z75.unknown().transform(unwrapRichTextValue);
99150
- var siteBannerCtaSchema = z75.object({
99151
- label: z75.string().trim().min(1),
99467
+ var siteBannerScopeSchema = z76.enum(SITE_BANNER_SCOPE_VALUES);
99468
+ var siteBannerToneSchema = z76.enum(SITE_BANNER_TONE_VALUES);
99469
+ var siteBannerBodySchema = z76.unknown().transform(unwrapRichTextValue);
99470
+ var siteBannerCtaSchema = z76.object({
99471
+ label: z76.string().trim().min(1),
99152
99472
  link: linkPayloadSchema
99153
99473
  });
99154
- var siteBannerSettingsSchema = z75.discriminatedUnion("enabled", [
99155
- z75.object({
99156
- enabled: z75.literal(false)
99474
+ var siteBannerSettingsSchema = z76.discriminatedUnion("enabled", [
99475
+ z76.object({
99476
+ enabled: z76.literal(false)
99157
99477
  }),
99158
- z75.object({
99159
- enabled: z75.literal(true),
99478
+ z76.object({
99479
+ enabled: z76.literal(true),
99160
99480
  scope: siteBannerScopeSchema,
99161
99481
  tone: siteBannerToneSchema,
99162
99482
  body: siteBannerBodySchema,
@@ -99170,7 +99490,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
99170
99490
  const analysis = analyzeSiteBannerBody(value.body);
99171
99491
  for (const issue2 of analysis.issues) {
99172
99492
  ctx.addIssue({
99173
- code: z75.ZodIssueCode.custom,
99493
+ code: z76.ZodIssueCode.custom,
99174
99494
  path: ["body"],
99175
99495
  message: siteBannerBodyIssueMessage(issue2)
99176
99496
  });
@@ -99303,7 +99623,7 @@ function sanitizeMarks(marks) {
99303
99623
  if (mark.type === "bold" || mark.type === "strong" || mark.type === "italic" || mark.type === "em") {
99304
99624
  return [{ type: mark.type }];
99305
99625
  }
99306
- if (mark.type === "link" && isRecord16(mark.attrs) && typeof mark.attrs.href === "string") {
99626
+ if (mark.type === "link" && isRecord17(mark.attrs) && typeof mark.attrs.href === "string") {
99307
99627
  const attrs = { href: mark.attrs.href };
99308
99628
  if (typeof mark.attrs.target === "string" && mark.attrs.target.trim().length > 0) {
99309
99629
  attrs.target = mark.attrs.target;
@@ -99318,10 +99638,10 @@ function sanitizeMarks(marks) {
99318
99638
  return sanitized.length > 0 ? sanitized : void 0;
99319
99639
  }
99320
99640
  function unwrapRichTextValue(value) {
99321
- if (isRecord16(value) && isRecord16(value.doc)) {
99641
+ if (isRecord17(value) && isRecord17(value.doc)) {
99322
99642
  return unwrapRichTextValue(value.doc);
99323
99643
  }
99324
- if (isRecord16(value) && value.type === "doc") {
99644
+ if (isRecord17(value) && value.type === "doc") {
99325
99645
  return {
99326
99646
  type: "doc",
99327
99647
  content: Array.isArray(value.content) ? value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) : []
@@ -99330,7 +99650,7 @@ function unwrapRichTextValue(value) {
99330
99650
  return EMPTY_SITE_BANNER_BODY;
99331
99651
  }
99332
99652
  function isTipTapNodeLike(value) {
99333
- return isRecord16(value) && typeof value.type === "string";
99653
+ return isRecord17(value) && typeof value.type === "string";
99334
99654
  }
99335
99655
  function coerceTipTapNode(value) {
99336
99656
  return {
@@ -99338,9 +99658,9 @@ function coerceTipTapNode(value) {
99338
99658
  ...Array.isArray(value.content) ? { content: value.content.filter(isTipTapNodeLike).map(coerceTipTapNode) } : {},
99339
99659
  ...typeof value.text === "string" ? { text: value.text } : {},
99340
99660
  ...Array.isArray(value.marks) ? {
99341
- marks: value.marks.filter((mark) => isRecord16(mark) && typeof mark.type === "string").map((mark) => ({
99661
+ marks: value.marks.filter((mark) => isRecord17(mark) && typeof mark.type === "string").map((mark) => ({
99342
99662
  type: mark.type,
99343
- ...isRecord16(mark.attrs) ? { attrs: mark.attrs } : {}
99663
+ ...isRecord17(mark.attrs) ? { attrs: mark.attrs } : {}
99344
99664
  }))
99345
99665
  } : {}
99346
99666
  };
@@ -99432,71 +99752,71 @@ function unsafeAsNavigationMenuIdentifier(identifier) {
99432
99752
  var MAIN_NAVIGATION_MENU_IDENTIFIER = unsafeAsNavigationMenuIdentifier("main");
99433
99753
 
99434
99754
  // ../api/src/aiPlayground.ts
99435
- import { z as z76 } from "zod";
99436
- var Rfc6902PatchOp = z76.discriminatedUnion("op", [
99755
+ import { z as z77 } from "zod";
99756
+ var Rfc6902PatchOp = z77.discriminatedUnion("op", [
99437
99757
  // Standard RFC-6902 operations
99438
- z76.object({
99439
- op: z76.literal("add"),
99440
- path: z76.string(),
99441
- value: z76.unknown()
99758
+ z77.object({
99759
+ op: z77.literal("add"),
99760
+ path: z77.string(),
99761
+ value: z77.unknown()
99442
99762
  }),
99443
- z76.object({
99444
- op: z76.literal("remove"),
99445
- path: z76.string()
99763
+ z77.object({
99764
+ op: z77.literal("remove"),
99765
+ path: z77.string()
99446
99766
  }),
99447
- z76.object({
99448
- op: z76.literal("replace"),
99449
- path: z76.string(),
99450
- value: z76.unknown()
99767
+ z77.object({
99768
+ op: z77.literal("replace"),
99769
+ path: z77.string(),
99770
+ value: z77.unknown()
99451
99771
  }),
99452
- z76.object({
99453
- op: z76.literal("move"),
99454
- from: z76.string(),
99455
- path: z76.string()
99772
+ z77.object({
99773
+ op: z77.literal("move"),
99774
+ from: z77.string(),
99775
+ path: z77.string()
99456
99776
  }),
99457
- z76.object({
99458
- op: z76.literal("copy"),
99459
- from: z76.string(),
99460
- path: z76.string()
99777
+ z77.object({
99778
+ op: z77.literal("copy"),
99779
+ from: z77.string(),
99780
+ path: z77.string()
99461
99781
  }),
99462
99782
  // Block-level operations (Phase 2)
99463
- z76.object({
99464
- op: z76.literal("add_block"),
99465
- blockKind: z76.string(),
99466
- afterBlockId: z76.string().nullable(),
99467
- content: z76.record(z76.string(), z76.unknown()),
99468
- rationale: z76.string()
99783
+ z77.object({
99784
+ op: z77.literal("add_block"),
99785
+ blockKind: z77.string(),
99786
+ afterBlockId: z77.string().nullable(),
99787
+ content: z77.record(z77.string(), z77.unknown()),
99788
+ rationale: z77.string()
99469
99789
  }),
99470
- z76.object({
99471
- op: z76.literal("delete_block"),
99472
- blockId: z76.string(),
99473
- rationale: z76.string()
99790
+ z77.object({
99791
+ op: z77.literal("delete_block"),
99792
+ blockId: z77.string(),
99793
+ rationale: z77.string()
99474
99794
  }),
99475
- z76.object({
99476
- op: z76.literal("reorder_block"),
99477
- blockId: z76.string(),
99478
- afterBlockId: z76.string().nullable(),
99479
- rationale: z76.string()
99795
+ z77.object({
99796
+ op: z77.literal("reorder_block"),
99797
+ blockId: z77.string(),
99798
+ afterBlockId: z77.string().nullable(),
99799
+ rationale: z77.string()
99480
99800
  })
99481
99801
  ]);
99482
- var PlaygroundProposeRequest = z76.object({
99483
- request: z76.string().min(1).max(2e3)
99802
+ var PlaygroundProposeRequest = z77.object({
99803
+ request: z77.string().min(1).max(2e3)
99484
99804
  });
99485
- var MultiPagePatchEnvelope = z76.object({
99486
- pageId: z76.string(),
99487
- blockId: z76.string().optional(),
99805
+ var MultiPagePatchEnvelope = z77.object({
99806
+ pageId: z77.string(),
99807
+ blockId: z77.string().optional(),
99488
99808
  // Not present for page-level ops
99489
- blockKind: z76.string().optional(),
99490
- blockPurpose: z76.string().optional().nullable(),
99491
- ops: z76.array(Rfc6902PatchOp),
99492
- rationale: z76.string(),
99493
- currentContent: z76.record(z76.string(), z76.unknown()).optional()
99809
+ blockKind: z77.string().optional(),
99810
+ blockPurpose: z77.string().optional().nullable(),
99811
+ ops: z77.array(Rfc6902PatchOp),
99812
+ rationale: z77.string(),
99813
+ currentContent: z77.record(z77.string(), z77.unknown()).optional()
99494
99814
  });
99495
- var MultiPageUpdateResponse = z76.object({
99496
- patches: z76.array(MultiPagePatchEnvelope),
99497
- assistantMessage: z76.string(),
99498
- pagesModified: z76.number(),
99499
- toolCallsUsed: z76.number()
99815
+ var MultiPageUpdateResponse = z77.object({
99816
+ patches: z77.array(MultiPagePatchEnvelope),
99817
+ assistantMessage: z77.string(),
99818
+ pagesModified: z77.number(),
99819
+ toolCallsUsed: z77.number()
99500
99820
  });
99501
99821
 
99502
99822
  // src/data/prefetchBlockData.ts
@@ -99510,7 +99830,7 @@ var ENTRY_REF_KEYS = [
99510
99830
  "entryId",
99511
99831
  "slug"
99512
99832
  ];
99513
- function isRecord17(value) {
99833
+ function isRecord18(value) {
99514
99834
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
99515
99835
  }
99516
99836
  function extractManualEntryRef(item) {
@@ -99518,7 +99838,7 @@ function extractManualEntryRef(item) {
99518
99838
  const trimmed = item.trim();
99519
99839
  return trimmed.length > 0 ? trimmed : null;
99520
99840
  }
99521
- if (!isRecord17(item)) return null;
99841
+ if (!isRecord18(item)) return null;
99522
99842
  for (const key of ENTRY_REF_KEYS) {
99523
99843
  const raw = item[key];
99524
99844
  if (typeof raw === "string" && raw.trim().length > 0) {
@@ -99796,7 +100116,7 @@ async function prefetchBlockData2(page, context, client, options) {
99796
100116
  }
99797
100117
 
99798
100118
  // src/rendering/components/Block.shared.tsx
99799
- import { jsx as jsx161, jsxs as jsxs105 } from "react/jsx-runtime";
100119
+ import { jsx as jsx162, jsxs as jsxs105 } from "react/jsx-runtime";
99800
100120
  function toBlockHydrationBootstrapConfig(props2) {
99801
100121
  return {
99802
100122
  siteId: props2.siteId,
@@ -99805,7 +100125,7 @@ function toBlockHydrationBootstrapConfig(props2) {
99805
100125
  };
99806
100126
  }
99807
100127
  function renderUnknownBlock(blockKind) {
99808
- return /* @__PURE__ */ jsx161("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs105("p", { className: "text-red-800 font-semibold", children: [
100128
+ return /* @__PURE__ */ jsx162("div", { className: "p-4 border border-red-300 bg-red-50 rounded", children: /* @__PURE__ */ jsxs105("p", { className: "text-red-800 font-semibold", children: [
99809
100129
  "Unknown block type: ",
99810
100130
  blockKind
99811
100131
  ] }) });
@@ -99887,7 +100207,7 @@ function renderBlockOverride({
99887
100207
  runtime,
99888
100208
  resolvedData
99889
100209
  }) {
99890
- return /* @__PURE__ */ jsx161(
100210
+ return /* @__PURE__ */ jsx162(
99891
100211
  OverrideComponent,
99892
100212
  {
99893
100213
  content: props2.content,
@@ -99913,7 +100233,7 @@ function renderManifestBlock({
99913
100233
  const BlockComponent = makeDefaultBlockComponent({ manifest: definition.manifest });
99914
100234
  const registry = getDefaultComponentRegistry();
99915
100235
  const blocksThemeConfig = runtime.blocksTheme;
99916
- return /* @__PURE__ */ jsx161(
100236
+ return /* @__PURE__ */ jsx162(
99917
100237
  BlockComponent,
99918
100238
  {
99919
100239
  blockId: props2.blockId ?? void 0,
@@ -99950,12 +100270,12 @@ async function BlockContent(props2) {
99950
100270
  }
99951
100271
 
99952
100272
  // src/rendering/components/Block.tsx
99953
- import { Fragment as Fragment37, jsx as jsx162, jsxs as jsxs106 } from "react/jsx-runtime";
100273
+ import { Fragment as Fragment37, jsx as jsx163, jsxs as jsxs106 } from "react/jsx-runtime";
99954
100274
  var HydratorWithContextProps2 = BlocksIslandsHydrator;
99955
100275
  function Block(props2) {
99956
100276
  return /* @__PURE__ */ jsxs106(Fragment37, { children: [
99957
- /* @__PURE__ */ jsx162(HydratorWithContextProps2, { ...toBlockHydrationBootstrapConfig(props2) }),
99958
- /* @__PURE__ */ jsx162(BlockContent, { ...props2 })
100277
+ /* @__PURE__ */ jsx163(HydratorWithContextProps2, { ...toBlockHydrationBootstrapConfig(props2) }),
100278
+ /* @__PURE__ */ jsx163(BlockContent, { ...props2 })
99959
100279
  ] });
99960
100280
  }
99961
100281
 
@@ -100039,7 +100359,7 @@ function collectMediaAssetSidecar(mediaAssets) {
100039
100359
  return Array.isArray(mediaAssets) && mediaAssets.length > 0 ? mediaAssets : void 0;
100040
100360
  }
100041
100361
  function convertPageResponseBlock(block) {
100042
- if (!isRecord18(block)) {
100362
+ if (!isRecord19(block)) {
100043
100363
  throw new Error("Invalid block format in page API response");
100044
100364
  }
100045
100365
  if (typeof block.id !== "string" && block.id !== null) {
@@ -100070,20 +100390,20 @@ function buildPageOutline(input) {
100070
100390
  blocks: input.blocks.map(convertPageResponseBlock)
100071
100391
  };
100072
100392
  }
100073
- function isRecord18(value) {
100393
+ function isRecord19(value) {
100074
100394
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
100075
100395
  }
100076
100396
  function readContentRecord(value) {
100077
- return isRecord18(value) ? value : void 0;
100397
+ return isRecord19(value) ? value : void 0;
100078
100398
  }
100079
100399
  function readNestedContentRecord(value) {
100080
- if (!isRecord18(value)) return null;
100400
+ if (!isRecord19(value)) return null;
100081
100401
  return readContentRecord(value.data) ?? null;
100082
100402
  }
100083
100403
  function sanitizeSdkRuntimeBlockContent(blockKind, content) {
100084
100404
  if (blockKind !== "block.newsletter-signup") return content;
100085
100405
  const sanitized = sanitizeNewsletterSignupPublicContent(content);
100086
- return isRecord18(sanitized) ? sanitized : {};
100406
+ return isRecord19(sanitized) ? sanitized : {};
100087
100407
  }
100088
100408
  function sanitizeNullableSdkRuntimeBlockContent(blockKind, content) {
100089
100409
  return content ? sanitizeSdkRuntimeBlockContent(blockKind, content) : null;
@@ -100154,7 +100474,8 @@ async function loadPage(params) {
100154
100474
  var TRANSFORMS = {
100155
100475
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
100156
100476
  DATE_FORMAT_SHORT: "date.formatShort",
100157
- DATE_FORMAT_LONG: "date.formatLong"
100477
+ DATE_FORMAT_LONG: "date.formatLong",
100478
+ TEXT_INLINE_TEXT: "text.inlineText"
100158
100479
  };
100159
100480
  var BINDING_SOURCES = ["field", "meta", "literal", "transform", "fallback"];
100160
100481
 
@@ -100289,10 +100610,16 @@ function applyTransform(name, value) {
100289
100610
  return formatDate5(value, { dateStyle: "medium" });
100290
100611
  case TRANSFORMS.DATE_FORMAT_LONG:
100291
100612
  return formatDate5(value, { dateStyle: "long", timeStyle: "short" });
100613
+ case TRANSFORMS.TEXT_INLINE_TEXT:
100614
+ return textToInlineText(value);
100292
100615
  default:
100293
100616
  return value;
100294
100617
  }
100295
100618
  }
100619
+ function textToInlineText(value) {
100620
+ if (typeof value !== "string") return null;
100621
+ return plainTextToInlineText(value);
100622
+ }
100296
100623
  function extractFirstParagraph(value) {
100297
100624
  const unwrapped = unwrapRichTextRoot(value);
100298
100625
  if (!isRecord2(unwrapped)) return null;
@@ -100673,7 +101000,8 @@ function normalizeNullableEntrySlotContent(content) {
100673
101000
  var BINDING_TRANSFORMS = {
100674
101001
  RICHTEXT_FIRST_PARAGRAPH: "richtext.firstParagraph",
100675
101002
  DATE_FORMAT_SHORT: "date.formatShort",
100676
- DATE_FORMAT_LONG: "date.formatLong"
101003
+ DATE_FORMAT_LONG: "date.formatLong",
101004
+ TEXT_INLINE_TEXT: "text.inlineText"
100677
101005
  };
100678
101006
  var BINDING_TRANSFORM_VALUES = Object.values(BINDING_TRANSFORMS);
100679
101007
  var BINDING_TRANSFORM_LIST = BINDING_TRANSFORM_VALUES.join(", ");
@@ -100687,9 +101015,9 @@ var ImagePresets2 = {
100687
101015
  };
100688
101016
 
100689
101017
  // src/rendering/primitives/RichText.tsx
100690
- import { jsx as jsx163 } from "react/jsx-runtime";
101018
+ import { jsx as jsx164 } from "react/jsx-runtime";
100691
101019
  function RichText3(props2) {
100692
- return /* @__PURE__ */ jsx163(RichText2, { ...props2 });
101020
+ return /* @__PURE__ */ jsx164(RichText2, { ...props2 });
100693
101021
  }
100694
101022
 
100695
101023
  // src/rendering/image.ts