@riverbankcms/sdk 0.74.0 → 0.76.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 (145) hide show
  1. package/README.md +2 -0
  2. package/dist/{PreviewEditorSidebar-5XL7M3OM.mjs → PreviewEditorSidebar-X2HWXFOL.mjs} +172 -89
  3. package/dist/{PreviewEditorUI-ZDFRDJID.mjs → PreviewEditorUI-AQXIXPOH.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-ZQNDCASH.mjs +8 -0
  5. package/dist/_dts/api/src/bookingOperations.d.ts +12 -0
  6. package/dist/_dts/api/src/cache-tags.d.ts +22 -0
  7. package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
  8. package/dist/_dts/api/src/endpoints.d.ts +24 -24
  9. package/dist/_dts/api/src/index.d.ts +1 -1
  10. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +13 -4
  11. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +4 -2
  12. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  13. package/dist/_dts/block-form/src/manifest/utils.d.ts +24 -0
  14. package/dist/_dts/blocks/src/client/booking-form.d.ts +2 -0
  15. package/dist/_dts/blocks/src/client/carousel.d.ts +1 -0
  16. package/dist/_dts/blocks/src/client/course-registration.d.ts +2 -0
  17. package/dist/_dts/blocks/src/client/events.d.ts +6 -0
  18. package/dist/_dts/blocks/src/client/form.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/header.d.ts +1 -0
  20. package/dist/_dts/blocks/src/client/location-map.d.ts +1 -0
  21. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +2 -0
  22. package/dist/_dts/blocks/src/client/shop.d.ts +6 -0
  23. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +4 -4
  24. package/dist/_dts/blocks/src/lib/video.d.ts +2 -0
  25. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +21 -1
  26. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -6
  27. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
  28. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -2
  29. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.interactive.d.ts +3 -27
  30. package/dist/_dts/blocks/src/system/runtime/nodes/booking-runtime-sources.d.ts +163 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +5 -5
  32. package/dist/_dts/blocks/src/system/runtime/nodes/events/index.d.ts +3 -0
  33. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +1 -0
  34. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +1 -0
  35. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionCompactRow.d.ts +29 -0
  36. package/dist/_dts/blocks/src/system/runtime/shared/components/BookingOptionList.d.ts +13 -0
  37. package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +4 -0
  38. package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +4 -3
  39. package/dist/_dts/blocks/src/system/runtime/shared/utils/bookingRoute.d.ts +20 -0
  40. package/dist/_dts/blocks/src/system/runtime/shared/utils/index.d.ts +2 -1
  41. package/dist/_dts/blocks/src/system/types/link.d.ts +12 -0
  42. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +5 -0
  43. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +2 -0
  44. package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +3 -1
  45. package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +3 -1
  46. package/dist/_dts/editor-blocks/src/block-editor/BlockSettingsModal.d.ts +5 -1
  47. package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +2 -0
  48. package/dist/_dts/editor-blocks/src/block-editor/actionControlMode.d.ts +2 -0
  49. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  50. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +12 -2
  51. package/dist/_dts/preview-next/src/client/preview/themeOverlay.d.ts +21 -3
  52. package/dist/_dts/sdk/src/components.d.ts +2 -2
  53. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  54. package/dist/_dts/sdk/src/rendering/index.d.ts +2 -2
  55. package/dist/_dts/sdk/src/rendering/islands/deferredVideoEmbeds.d.ts +2 -0
  56. package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +6 -0
  57. package/dist/_dts/sdk/src/rendering/overrides.d.ts +21 -1
  58. package/dist/_dts/sdk/src/rendering/server.d.ts +4 -0
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  61. package/dist/{chunk-2MIWNFJM.mjs → chunk-LYI7TEMH.mjs} +494 -171
  62. package/dist/{chunk-YY7K3QD2.mjs → chunk-Q4OLG66B.mjs} +9 -9
  63. package/dist/{chunk-CEQBBLMJ.mjs → chunk-TW2Y4RR5.mjs} +69 -14
  64. package/dist/{chunk-CBD47MTM.mjs → chunk-V5VORNEJ.mjs} +2 -2
  65. package/dist/{chunk-7RX72SK2.mjs → chunk-VX7B5VAC.mjs} +36 -25
  66. package/dist/{chunk-YRJKZEQ3.mjs → chunk-Z7JLNTJR.mjs} +1 -1
  67. package/dist/cli/index.mjs +3395 -3753
  68. package/dist/client/{accordion-ZZVXWV3N.mjs → accordion-2YHIBOZH.mjs} +1 -1
  69. package/dist/client/bookingForm-35IBDWAS.mjs +3012 -0
  70. package/dist/client/bookings.mjs +30 -21
  71. package/dist/client/{carousel-25WK2H7G.mjs → carousel-K6XG7NZQ.mjs} +3 -2
  72. package/dist/client/cart-HCFYUTTU.mjs +18 -0
  73. package/dist/client/checkout-J3U4XR7K.mjs +18 -0
  74. package/dist/client/chunk-3DCJ45Z2.mjs +36 -0
  75. package/dist/client/chunk-3PEDD5KJ.mjs +146 -0
  76. package/dist/client/{chunk-6VGXRE34.mjs → chunk-7UOSCYY4.mjs} +76 -29
  77. package/dist/client/chunk-BOIHIU7E.mjs +106 -0
  78. package/dist/client/chunk-F7LHOKEH.mjs +146 -0
  79. package/dist/client/chunk-FGUIVT2B.mjs +204 -0
  80. package/dist/client/chunk-I2MMZO53.mjs +6 -0
  81. package/dist/client/chunk-II7O4XN3.mjs +2206 -0
  82. package/dist/client/chunk-J227A3CQ.mjs +245 -0
  83. package/dist/client/chunk-JEZECJ3W.mjs +383 -0
  84. package/dist/client/chunk-M3L3KYYR.mjs +1181 -0
  85. package/dist/client/chunk-OJPZEZU2.mjs +31 -0
  86. package/dist/client/chunk-PFBX3IQL.mjs +1378 -0
  87. package/dist/client/chunk-RTZ3JKKX.mjs +178 -0
  88. package/dist/client/chunk-SNSWVZEP.mjs +5592 -0
  89. package/dist/client/chunk-TQ5MSPDX.mjs +74 -0
  90. package/dist/client/chunk-YLMKMCSJ.mjs +86 -0
  91. package/dist/client/client.mjs +54052 -54518
  92. package/dist/client/courseRegistration-ZBXS7VGI.mjs +1737 -0
  93. package/dist/client/{eventCalendar-X6GIPYFM.mjs → eventCalendar-EQQZHJBA.mjs} +13 -2
  94. package/dist/client/{eventCombined-EZUOPM3G.mjs → eventCombined-JCFTGBFQ.mjs} +13 -2
  95. package/dist/client/eventDetails-HLUTQSYY.mjs +25 -0
  96. package/dist/client/{eventListing-HEFGAETC.mjs → eventListing-FG4MICVB.mjs} +13 -2
  97. package/dist/client/{eventRegistration-3LCP2V3P.mjs → eventRegistration-GUEB7LBT.mjs} +13 -2
  98. package/dist/client/form-YQEW4YIT.mjs +300 -0
  99. package/dist/client/headerSection-GTR3TTRM.mjs +729 -0
  100. package/dist/client/hooks.mjs +49 -33
  101. package/dist/client/locationMap-SPC7VGUH.mjs +227 -0
  102. package/dist/client/newsletterForm-4IW5BLID.mjs +208 -0
  103. package/dist/client/productDetail-KP5H2WJO.mjs +18 -0
  104. package/dist/client/productList-3M3M72XZ.mjs +18 -0
  105. package/dist/client/rendering/client.mjs +15580 -16277
  106. package/dist/client/rendering/islands.mjs +98 -21
  107. package/dist/client/rendering.mjs +48730 -49191
  108. package/dist/client/shop-ACQKVGOM.mjs +20 -0
  109. package/dist/preview-next/before-render.mjs +37 -25
  110. package/dist/preview-next/chrome.css +1 -1
  111. package/dist/preview-next/client/runtime.mjs +5 -5
  112. package/dist/preview-next/editor-base.css +2 -148
  113. package/dist/preview-next/editor-chrome.css +179 -0
  114. package/dist/preview-next/middleware.mjs +37 -25
  115. package/dist/{sdk-runtime-OHNONZ5U.mjs → sdk-runtime-K7HNB4U2.mjs} +6 -6
  116. package/dist/server/components.mjs +1294 -1103
  117. package/dist/server/config-validation.mjs +49 -33
  118. package/dist/server/config.mjs +49 -33
  119. package/dist/server/data.mjs +49 -33
  120. package/dist/server/index.mjs +45 -33
  121. package/dist/server/next.mjs +1240 -1050
  122. package/dist/server/page-converter.mjs +12 -8
  123. package/dist/server/prebuild.mjs +1 -1
  124. package/dist/server/rendering/server.mjs +1389 -1104
  125. package/dist/server/rendering.mjs +1300 -1109
  126. package/dist/server/routing.mjs +49 -33
  127. package/dist/server/server.mjs +50 -34
  128. package/dist/server/theme-bridge.mjs +5 -0
  129. package/dist/styles/index.css +5 -0
  130. package/package.json +2 -1
  131. package/dist/SdkPreviewModeRuntime-CRYNDSPL.mjs +0 -8
  132. package/dist/client/bookingForm-4X77HKDS.mjs +0 -34
  133. package/dist/client/cart-JWD2VRFU.mjs +0 -11
  134. package/dist/client/checkout-V7KYGWL7.mjs +0 -11
  135. package/dist/client/chunk-5IYGMTUE.mjs +0 -18614
  136. package/dist/client/chunk-RKCFVIMS.mjs +0 -26
  137. package/dist/client/courseRegistration-O6ZPK4YT.mjs +0 -29
  138. package/dist/client/eventDetails-3WODIXET.mjs +0 -14
  139. package/dist/client/form-AKXQMY6Z.mjs +0 -85
  140. package/dist/client/headerSection-5KHCMU6B.mjs +0 -12
  141. package/dist/client/locationMap-7HIADW76.mjs +0 -14
  142. package/dist/client/newsletterForm-5N4YTMU3.mjs +0 -60
  143. package/dist/client/productDetail-IZUA7ZP3.mjs +0 -11
  144. package/dist/client/productList-KWIIJE6I.mjs +0 -11
  145. package/dist/client/shop-XZQFRQWZ.mjs +0 -13
@@ -63,6 +63,18 @@ var TAG_TEMPLATES = {
63
63
  siteForms: "riverbank:site:{siteId}:forms",
64
64
  formById: "riverbank:form:{formId}",
65
65
  formSubmissionsBySlug: "riverbank:form-submissions:{slug}",
66
+ // Public data loaders
67
+ publicEvents: "riverbank:site:{siteId}:public-events",
68
+ publicEventFilters: "riverbank:site:{siteId}:public-event-filters",
69
+ publicCourses: "riverbank:site:{siteId}:public-courses",
70
+ publicTeamMembers: "riverbank:site:{siteId}:public-team-members",
71
+ publicProducts: "riverbank:site:{siteId}:public-products",
72
+ publicPasses: "riverbank:site:{siteId}:public-passes",
73
+ publicMemberships: "riverbank:site:{siteId}:public-memberships",
74
+ publicGifting: "riverbank:site:{siteId}:public-gifting",
75
+ publicShop: "riverbank:site:{siteId}:public-shop",
76
+ publicCheckout: "riverbank:site:{siteId}:public-checkout",
77
+ publicBookingServices: "riverbank:site:{siteId}:public-booking-services",
66
78
  // Navigation
67
79
  siteNavigation: "riverbank:site:{siteId}:navigation",
68
80
  navigationMenuById: "riverbank:navigation-menu:{menuId}",
@@ -3749,7 +3761,7 @@ var ENDPOINT_DEFINITIONS = {
3749
3761
  path: "/public/sites/{siteId}/events",
3750
3762
  method: "GET",
3751
3763
  revalidate: 60,
3752
- tags: ["public-events-{siteId}"],
3764
+ tags: [TAG_TEMPLATES.publicEvents],
3753
3765
  auth: "public",
3754
3766
  responseKind: "json"
3755
3767
  },
@@ -3758,7 +3770,7 @@ var ENDPOINT_DEFINITIONS = {
3758
3770
  path: "/public/sites/{siteId}/events/filters",
3759
3771
  method: "GET",
3760
3772
  revalidate: 60,
3761
- tags: ["public-event-filters-{siteId}"],
3773
+ tags: [TAG_TEMPLATES.publicEventFilters],
3762
3774
  auth: "public",
3763
3775
  responseKind: "json"
3764
3776
  },
@@ -3767,7 +3779,7 @@ var ENDPOINT_DEFINITIONS = {
3767
3779
  path: "/public/sites/{siteId}/courses",
3768
3780
  method: "GET",
3769
3781
  revalidate: 60,
3770
- tags: ["public-courses-{siteId}"],
3782
+ tags: [TAG_TEMPLATES.publicCourses],
3771
3783
  auth: "public",
3772
3784
  responseKind: "json"
3773
3785
  },
@@ -3775,7 +3787,7 @@ var ENDPOINT_DEFINITIONS = {
3775
3787
  path: "/public/sites/{siteId}/team-members",
3776
3788
  method: "GET",
3777
3789
  revalidate: 60,
3778
- tags: ["public-team-members-{siteId}"],
3790
+ tags: [TAG_TEMPLATES.publicTeamMembers],
3779
3791
  errors: [],
3780
3792
  auth: "public",
3781
3793
  responseKind: "json"
@@ -3784,21 +3796,21 @@ var ENDPOINT_DEFINITIONS = {
3784
3796
  path: "/public/sites/{siteId}/courses/{courseId}",
3785
3797
  method: "GET",
3786
3798
  revalidate: 60,
3787
- tags: ["public-courses-{siteId}"],
3799
+ tags: [TAG_TEMPLATES.publicCourses],
3788
3800
  auth: "public",
3789
3801
  responseKind: "json"
3790
3802
  },
3791
3803
  enrollInCourse: {
3792
3804
  path: "/public/sites/{siteId}/courses/enroll",
3793
3805
  method: "POST",
3794
- tags: ["public-courses-{siteId}", "course-enrollment"],
3806
+ tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
3795
3807
  auth: "public",
3796
3808
  responseKind: "json"
3797
3809
  },
3798
3810
  checkCourseEligibility: {
3799
3811
  path: "/public/sites/{siteId}/courses/check-eligibility",
3800
3812
  method: "POST",
3801
- tags: ["public-courses-{siteId}", "course-enrollment"],
3813
+ tags: [TAG_TEMPLATES.publicCourses, "course-enrollment"],
3802
3814
  auth: "public",
3803
3815
  responseKind: "json"
3804
3816
  },
@@ -3806,8 +3818,8 @@ var ENDPOINT_DEFINITIONS = {
3806
3818
  path: "/public/sites/{siteId}/waitlists/claim/resolve",
3807
3819
  method: "POST",
3808
3820
  tags: [
3809
- "public-courses-{siteId}",
3810
- "public-events-{siteId}",
3821
+ TAG_TEMPLATES.publicCourses,
3822
+ TAG_TEMPLATES.publicEvents,
3811
3823
  "waitlist-claims"
3812
3824
  ],
3813
3825
  auth: "public",
@@ -3822,7 +3834,7 @@ var ENDPOINT_DEFINITIONS = {
3822
3834
  createCourseCheckout: {
3823
3835
  path: "/public/sites/{siteId}/courses/checkout",
3824
3836
  method: "POST",
3825
- tags: ["public-courses-{siteId}", "course-checkout"],
3837
+ tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
3826
3838
  auth: "public",
3827
3839
  responseKind: "json",
3828
3840
  errors: [
@@ -3836,7 +3848,7 @@ var ENDPOINT_DEFINITIONS = {
3836
3848
  getCourseRegistrationStatus: {
3837
3849
  path: "/public/sites/{siteId}/courses/registration-status",
3838
3850
  method: "GET",
3839
- tags: ["public-courses-{siteId}", "course-checkout"],
3851
+ tags: [TAG_TEMPLATES.publicCourses, "course-checkout"],
3840
3852
  auth: "public",
3841
3853
  responseKind: "json"
3842
3854
  },
@@ -3845,7 +3857,7 @@ var ENDPOINT_DEFINITIONS = {
3845
3857
  path: "/public/sites/{siteId}/bookings/products/passes",
3846
3858
  method: "GET",
3847
3859
  revalidate: 300,
3848
- tags: ["public-passes-{siteId}"],
3860
+ tags: [TAG_TEMPLATES.publicPasses],
3849
3861
  auth: "public",
3850
3862
  responseKind: "json"
3851
3863
  },
@@ -3854,7 +3866,7 @@ var ENDPOINT_DEFINITIONS = {
3854
3866
  path: "/public/sites/{siteId}/bookings/products/memberships",
3855
3867
  method: "GET",
3856
3868
  revalidate: 300,
3857
- tags: ["public-memberships-{siteId}"],
3869
+ tags: [TAG_TEMPLATES.publicMemberships],
3858
3870
  auth: "public",
3859
3871
  responseKind: "json"
3860
3872
  },
@@ -3863,7 +3875,7 @@ var ENDPOINT_DEFINITIONS = {
3863
3875
  path: "/public/sites/{siteId}/products",
3864
3876
  method: "GET",
3865
3877
  revalidate: 300,
3866
- tags: ["public-products-{siteId}"],
3878
+ tags: [TAG_TEMPLATES.publicProducts],
3867
3879
  errors: [],
3868
3880
  auth: "public",
3869
3881
  responseKind: "json"
@@ -3872,7 +3884,7 @@ var ENDPOINT_DEFINITIONS = {
3872
3884
  path: "/public/sites/{siteId}/gifting/offers",
3873
3885
  method: "GET",
3874
3886
  revalidate: 300,
3875
- tags: ["public-gifting-{siteId}"],
3887
+ tags: [TAG_TEMPLATES.publicGifting],
3876
3888
  errors: [],
3877
3889
  auth: "public",
3878
3890
  responseKind: "json"
@@ -3880,7 +3892,7 @@ var ENDPOINT_DEFINITIONS = {
3880
3892
  createPublicGiftingCheckout: {
3881
3893
  path: "/public/sites/{siteId}/gifting/checkout",
3882
3894
  method: "POST",
3883
- tags: ["public-gifting-{siteId}"],
3895
+ tags: [TAG_TEMPLATES.publicGifting],
3884
3896
  errors: [],
3885
3897
  auth: "public",
3886
3898
  responseKind: "json"
@@ -3888,7 +3900,7 @@ var ENDPOINT_DEFINITIONS = {
3888
3900
  claimGiftCardPublic: {
3889
3901
  path: "/public/sites/{siteId}/gifting/claim",
3890
3902
  method: "POST",
3891
- tags: ["public-gifting-{siteId}"],
3903
+ tags: [TAG_TEMPLATES.publicGifting],
3892
3904
  errors: [],
3893
3905
  auth: "public",
3894
3906
  responseKind: "json"
@@ -3896,14 +3908,14 @@ var ENDPOINT_DEFINITIONS = {
3896
3908
  createShopCheckout: {
3897
3909
  path: "/public/sites/{siteId}/bookings/checkout",
3898
3910
  method: "POST",
3899
- tags: ["public-shop-{siteId}", "shop-checkout"],
3911
+ tags: [TAG_TEMPLATES.publicShop, "shop-checkout"],
3900
3912
  auth: "public",
3901
3913
  responseKind: "json"
3902
3914
  },
3903
3915
  createUnifiedCheckout: {
3904
3916
  path: "/public/sites/{siteId}/checkout",
3905
3917
  method: "POST",
3906
- tags: ["public-checkout-{siteId}"],
3918
+ tags: [TAG_TEMPLATES.publicCheckout],
3907
3919
  auth: "public",
3908
3920
  responseKind: "json",
3909
3921
  errors: [
@@ -3942,7 +3954,7 @@ var ENDPOINT_DEFINITIONS = {
3942
3954
  path: "/public/sites/{siteId}/events/occurrences/resolve",
3943
3955
  method: "GET",
3944
3956
  revalidate: 60,
3945
- tags: ["public-events-{siteId}", "event-occurrence"],
3957
+ tags: [TAG_TEMPLATES.publicEvents, "event-occurrence"],
3946
3958
  auth: "public",
3947
3959
  responseKind: "json"
3948
3960
  },
@@ -3950,7 +3962,7 @@ var ENDPOINT_DEFINITIONS = {
3950
3962
  registerForEvent: {
3951
3963
  path: "/public/sites/{siteId}/events/register",
3952
3964
  method: "POST",
3953
- tags: ["public-events-{siteId}", "event-registration"],
3965
+ tags: [TAG_TEMPLATES.publicEvents, "event-registration"],
3954
3966
  auth: "public",
3955
3967
  responseKind: "json"
3956
3968
  },
@@ -3958,7 +3970,7 @@ var ENDPOINT_DEFINITIONS = {
3958
3970
  createPublicEventCheckout: {
3959
3971
  path: "/public/sites/{siteId}/events/checkout",
3960
3972
  method: "POST",
3961
- tags: ["public-events-{siteId}", "event-checkout"],
3973
+ tags: [TAG_TEMPLATES.publicEvents, "event-checkout"],
3962
3974
  auth: "public",
3963
3975
  responseKind: "json"
3964
3976
  },
@@ -3966,7 +3978,7 @@ var ENDPOINT_DEFINITIONS = {
3966
3978
  checkPublicEventEligibility: {
3967
3979
  path: "/public/sites/{siteId}/events/check-eligibility",
3968
3980
  method: "POST",
3969
- tags: ["public-events-{siteId}", "event-eligibility"],
3981
+ tags: [TAG_TEMPLATES.publicEvents, "event-eligibility"],
3970
3982
  auth: "public",
3971
3983
  responseKind: "json"
3972
3984
  },
@@ -3974,7 +3986,7 @@ var ENDPOINT_DEFINITIONS = {
3974
3986
  getPublicEventRegistrationStatus: {
3975
3987
  path: "/public/sites/{siteId}/events/registration-status",
3976
3988
  method: "GET",
3977
- tags: ["public-events-{siteId}", "event-registration"],
3989
+ tags: [TAG_TEMPLATES.publicEvents, "event-registration"],
3978
3990
  auth: "public",
3979
3991
  responseKind: "json"
3980
3992
  },
@@ -3982,7 +3994,7 @@ var ENDPOINT_DEFINITIONS = {
3982
3994
  getPublicEventTicketQrSvg: {
3983
3995
  path: "/public/sites/{siteId}/events/tickets/qr",
3984
3996
  method: "GET",
3985
- tags: ["public-events-{siteId}", "event-ticket-qr"],
3997
+ tags: [TAG_TEMPLATES.publicEvents, "event-ticket-qr"],
3986
3998
  auth: "public",
3987
3999
  responseKind: "text"
3988
4000
  },
@@ -6351,7 +6363,7 @@ var navigationLinkInputSchema = z2.discriminatedUnion(
6351
6363
  );
6352
6364
 
6353
6365
  // ../api/src/sdkConfig/contracts.ts
6354
- import { z as z67 } from "zod";
6366
+ import { z as z68 } from "zod";
6355
6367
 
6356
6368
  // ../blocks/src/PageRenderer.tsx
6357
6369
  import * as React6 from "react";
@@ -7780,6 +7792,9 @@ function validationContext(options = {}) {
7780
7792
  function formatFieldPath(path) {
7781
7793
  return path.map((segment) => String(segment)).join(".");
7782
7794
  }
7795
+ function toZodIssuePath(path) {
7796
+ return [...path];
7797
+ }
7783
7798
  function fieldIssueToMessage(issue2) {
7784
7799
  switch (issue2.kind) {
7785
7800
  case "required":
@@ -7908,6 +7923,9 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
7908
7923
  return assertNever(field);
7909
7924
  }
7910
7925
  }
7926
+ function deriveFieldValidationPlans(fields3, parentPath = []) {
7927
+ return fields3.map((field) => deriveFieldValidationPlan(field, [...parentPath, field.id]));
7928
+ }
7911
7929
  function commonConstraints(required, ...specific) {
7912
7930
  return required ? [{ kind: "required" }, ...specific] : [...specific];
7913
7931
  }
@@ -7923,9 +7941,19 @@ function makePlan(kind, valueKind, field, path, required, constraints) {
7923
7941
  fieldType: field.type,
7924
7942
  path,
7925
7943
  required,
7944
+ visibility: fieldVisibility(field),
7926
7945
  constraints
7927
7946
  };
7928
7947
  }
7948
+ function fieldVisibility(field) {
7949
+ if (field.ui?.hidden) {
7950
+ return { kind: "hidden" };
7951
+ }
7952
+ if (field.visibleRoles && field.visibleRoles.length > 0) {
7953
+ return { kind: "roleRestricted", roles: field.visibleRoles };
7954
+ }
7955
+ return { kind: "visible" };
7956
+ }
7929
7957
  function withRepeaterItemConstraints(field, constraints) {
7930
7958
  const next = [...constraints];
7931
7959
  if (typeof field.minItems === "number") next.push({ kind: "minItems", minimum: field.minItems });
@@ -7939,7 +7967,7 @@ function deriveRepeatedItemVariants(field, parentPath) {
7939
7967
  }));
7940
7968
  }
7941
7969
  function deriveNestedFieldPlans(fields3, parentPath) {
7942
- return fields3.map((field) => deriveFieldValidationPlan(field, [...parentPath, field.id]));
7970
+ return deriveFieldValidationPlans(fields3, parentPath);
7943
7971
  }
7944
7972
  function getRepeaterFields(field) {
7945
7973
  const fields3 = field.polymorphic && field.itemTypes ? Object.values(field.itemTypes).flatMap((itemType) => itemType.fields) : field.schema?.fields ?? [];
@@ -7965,6 +7993,71 @@ function resolveSelectConstraintSource(field) {
7965
7993
  return assertNever(source);
7966
7994
  }
7967
7995
  }
7996
+ function normalizeStoredContentValues(plans, content, options = {}) {
7997
+ if (!content || typeof content !== "object" || Array.isArray(content)) {
7998
+ return {};
7999
+ }
8000
+ const planMap = new Map(plans.map((plan) => [plan.fieldId, plan]));
8001
+ const normalized = {};
8002
+ const ctx = validationContext(options);
8003
+ for (const [key, value] of Object.entries(content)) {
8004
+ const plan = planMap.get(key);
8005
+ normalized[key] = plan ? normalizeStoredFieldValueWithContext(plan, value, ctx) : value;
8006
+ }
8007
+ return normalized;
8008
+ }
8009
+ function normalizeStoredFieldValueWithContext(plan, value, ctx) {
8010
+ if (value === null && !plan.required) {
8011
+ return void 0;
8012
+ }
8013
+ switch (plan.kind) {
8014
+ case "group":
8015
+ return normalizeStoredObjectChildren(plan.children, value, childValidationContext(plan, ctx));
8016
+ case "repeater":
8017
+ return normalizeStoredRepeaterItems(plan, value, ctx);
8018
+ case "string":
8019
+ case "number":
8020
+ case "boolean":
8021
+ case "richText":
8022
+ case "media":
8023
+ case "link":
8024
+ case "select":
8025
+ case "passthrough":
8026
+ return normalizeFieldValue(plan, value, ctx);
8027
+ default:
8028
+ return assertNever(plan);
8029
+ }
8030
+ }
8031
+ function normalizeStoredObjectChildren(children, value, ctx) {
8032
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
8033
+ return value;
8034
+ }
8035
+ const normalized = { ...value };
8036
+ for (const child of children) {
8037
+ normalized[child.fieldId] = normalizeStoredFieldValueWithContext(
8038
+ child,
8039
+ normalized[child.fieldId],
8040
+ ctx
8041
+ );
8042
+ }
8043
+ return normalized;
8044
+ }
8045
+ function normalizeStoredRepeaterItems(plan, value, ctx) {
8046
+ if (!Array.isArray(value)) {
8047
+ return value;
8048
+ }
8049
+ return value.map((item) => {
8050
+ if (!item || typeof item !== "object" || Array.isArray(item)) {
8051
+ return item;
8052
+ }
8053
+ const itemRecord = item;
8054
+ const fields3 = plan.repeatedItemVariants ? plan.repeatedItemVariants.find((variant) => variant.typeId === itemRecord._type)?.fields : plan.repeatedItemPlan;
8055
+ if (!fields3) {
8056
+ return item;
8057
+ }
8058
+ return normalizeStoredObjectChildren(fields3, itemRecord, ctx);
8059
+ });
8060
+ }
7968
8061
  function normalizeFieldValue(plan, value, ctx) {
7969
8062
  switch (plan.kind) {
7970
8063
  case "number":
@@ -8219,16 +8312,19 @@ function fieldPlanToZod(plan, options = {}) {
8219
8312
  const ctx = validationContext(options);
8220
8313
  return z6.any().transform((value) => normalizeFieldValue(plan, value, ctx)).superRefine((value, zodCtx) => {
8221
8314
  for (const validationIssue of validateNormalizedFieldValue(plan, value, ctx)) {
8222
- addFieldIssueToZodContext(zodCtx, validationIssue);
8315
+ addFieldIssueToZodContext(zodCtx, validationIssue, plan.path);
8223
8316
  }
8224
8317
  });
8225
8318
  }
8226
- function addFieldIssueToZodContext(zodCtx, validationIssue) {
8319
+ function addFieldIssueToZodContext(zodCtx, validationIssue, rootPath) {
8227
8320
  const message = fieldIssueToMessage(validationIssue);
8321
+ const path = relativeZodIssuePath(validationIssue.path, rootPath);
8322
+ const issuePath = path.length > 0 ? { path: toZodIssuePath(path) } : {};
8228
8323
  switch (validationIssue.kind) {
8229
8324
  case "required":
8230
8325
  if (validationIssue.emptyOrigin) {
8231
8326
  zodCtx.addIssue({
8327
+ ...issuePath,
8232
8328
  code: "too_small",
8233
8329
  origin: validationIssue.emptyOrigin,
8234
8330
  minimum: 1,
@@ -8237,10 +8333,11 @@ function addFieldIssueToZodContext(zodCtx, validationIssue) {
8237
8333
  });
8238
8334
  return;
8239
8335
  }
8240
- zodCtx.addIssue({ code: "invalid_type", expected: "nonoptional", message });
8336
+ zodCtx.addIssue({ ...issuePath, code: "invalid_type", expected: "nonoptional", message });
8241
8337
  return;
8242
8338
  case "tooLong":
8243
8339
  zodCtx.addIssue({
8340
+ ...issuePath,
8244
8341
  code: "too_big",
8245
8342
  origin: "string",
8246
8343
  maximum: validationIssue.maximum,
@@ -8249,7 +8346,7 @@ function addFieldIssueToZodContext(zodCtx, validationIssue) {
8249
8346
  });
8250
8347
  return;
8251
8348
  case "invalidOption":
8252
- zodCtx.addIssue({ code: "invalid_value", values: [], message });
8349
+ zodCtx.addIssue({ ...issuePath, code: "invalid_value", values: [], message });
8253
8350
  return;
8254
8351
  case "wrongType":
8255
8352
  case "invalidEmail":
@@ -8266,12 +8363,15 @@ function addFieldIssueToZodContext(zodCtx, validationIssue) {
8266
8363
  case "invalidMedia":
8267
8364
  case "invalidLink":
8268
8365
  case "invalidReference":
8269
- zodCtx.addIssue({ code: "custom", message });
8366
+ zodCtx.addIssue({ ...issuePath, code: "custom", message });
8270
8367
  return;
8271
8368
  default:
8272
8369
  assertNever(validationIssue);
8273
8370
  }
8274
8371
  }
8372
+ function relativeZodIssuePath(path, rootPath) {
8373
+ return startsWithFieldPath(path, rootPath) ? path.slice(rootPath.length) : path;
8374
+ }
8275
8375
  function compilePattern(pattern) {
8276
8376
  try {
8277
8377
  return new RegExp(pattern);
@@ -8349,24 +8449,33 @@ function preprocessEmptyValues(content) {
8349
8449
  }
8350
8450
  return result;
8351
8451
  }
8352
- function deriveContentZodFromManifest(manifestOrFields, options = {}) {
8353
- const shape = {};
8354
- const fields3 = Array.isArray(manifestOrFields) ? manifestOrFields : manifestOrFields.fields ?? [];
8355
- for (const field of fields3) {
8356
- shape[field.id] = buildFieldSchema(field, options);
8357
- }
8358
- return z7.object(shape).catchall(z7.unknown()).passthrough();
8359
- }
8360
8452
  function createManifestValidator(manifestOrFields, options = {}) {
8361
8453
  const isDraft = options.mode === "draft";
8362
- const baseSchema = deriveContentZodFromManifest(manifestOrFields, options);
8454
+ const plans = derivePlansFromManifestOrFields(manifestOrFields);
8455
+ const baseSchema = deriveContentZodFromPlans(plans, options);
8363
8456
  if (isDraft) {
8364
- return z7.preprocess(preprocessEmptyValues, baseSchema);
8457
+ return z7.preprocess(
8458
+ (content) => preprocessEmptyValues(
8459
+ normalizeStoredContentValues(plans, content, options)
8460
+ ),
8461
+ baseSchema
8462
+ );
8463
+ }
8464
+ return z7.preprocess(
8465
+ (content) => normalizeStoredContentValues(plans, content, options),
8466
+ baseSchema
8467
+ );
8468
+ }
8469
+ function deriveContentZodFromPlans(plans, options) {
8470
+ const shape = {};
8471
+ for (const plan of plans) {
8472
+ shape[plan.fieldId] = fieldPlanToZod(plan, options);
8365
8473
  }
8366
- return baseSchema;
8474
+ return z7.object(shape).catchall(z7.unknown()).passthrough();
8367
8475
  }
8368
- function buildFieldSchema(field, options) {
8369
- return fieldPlanToZod(deriveFieldValidationPlan(field), options);
8476
+ function derivePlansFromManifestOrFields(manifestOrFields) {
8477
+ const fields3 = Array.isArray(manifestOrFields) ? manifestOrFields : manifestOrFields.fields ?? [];
8478
+ return deriveFieldValidationPlans(fields3);
8370
8479
  }
8371
8480
 
8372
8481
  // ../blocks/src/system/manifest/variantKey.ts
@@ -24812,7 +24921,7 @@ var cardStylingFields = [
24812
24921
  description: "Text for the event action button",
24813
24922
  required: false,
24814
24923
  multiline: false,
24815
- defaultValue: "View event",
24924
+ defaultValue: "Book now",
24816
24925
  maxLength: 40
24817
24926
  }
24818
24927
  ];
@@ -25324,6 +25433,7 @@ var eventRegistrationBlockDefinition = {
25324
25433
  limit: "50",
25325
25434
  // Get more events for selection
25326
25435
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
25436
+ readProfile: "registration",
25327
25437
  // When rendering on an event content entry page, scope the list to that entry so
25328
25438
  // the wizard always includes the current event (and avoids stale cached "all events" responses).
25329
25439
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
@@ -26272,7 +26382,7 @@ var eventSpotlightLayout = [
26272
26382
  columns: { $bind: { from: "content.columns", fallback: "3" } },
26273
26383
  cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
26274
26384
  buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
26275
- buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
26385
+ buttonText: { $bind: { from: "content.buttonText", fallback: "Book now" } },
26276
26386
  ctaLabel: { $bind: { from: "content.ctaLabel" } },
26277
26387
  ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
26278
26388
  showVenue: { $bind: { from: "content.showVenue" } },
@@ -26316,7 +26426,8 @@ var eventSpotlightBlockDefinition = {
26316
26426
  siteId: { $bind: { from: "$root.siteId" } },
26317
26427
  limit: { $bind: { from: "content.maxEvents", fallback: "3" } },
26318
26428
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
26319
- detailLevel: "listing"
26429
+ detailLevel: "listing",
26430
+ readProfile: "spotlight"
26320
26431
  },
26321
26432
  mode: "server"
26322
26433
  }
@@ -26788,7 +26899,7 @@ var COLUMN_CLASSES = {
26788
26899
  };
26789
26900
  function getContainerClass(layout, columns) {
26790
26901
  if (layout === "compact") {
26791
- return "rb-flex rb-flex-col rb-gap-2";
26902
+ return "event-listing-compact-container rb-flex rb-flex-col rb-gap-2";
26792
26903
  }
26793
26904
  if (layout === "stack") {
26794
26905
  return "rb-flex rb-flex-col rb-gap-6";
@@ -26919,7 +27030,7 @@ function formatEventPrice(event) {
26919
27030
  }
26920
27031
  function resolveEventCta(event, buttonText) {
26921
27032
  const { isFull: isSoldOut } = getEventAvailability(event);
26922
- const defaultButtonText = event.kind === "course_session" ? "View course" : "View event";
27033
+ const defaultButtonText = event.kind === "course_session" ? "Book course" : "Book now";
26923
27034
  const effectiveButtonText = buttonText ?? defaultButtonText;
26924
27035
  if (isSoldOut) {
26925
27036
  return { label: "Sold out", href: event.path, hidden: true };
@@ -28353,8 +28464,42 @@ function pickReadableTextColor(background) {
28353
28464
  }
28354
28465
  }
28355
28466
 
28356
- // ../blocks/src/system/runtime/nodes/events/shared/EventCompactRow.tsx
28467
+ // ../blocks/src/system/runtime/shared/components/BookingOptionCompactRow.tsx
28357
28468
  import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
28469
+ function BookingOptionCompactRow({
28470
+ option,
28471
+ buttonVariant = "primary"
28472
+ }) {
28473
+ const primaryMeta = option.primaryMeta?.filter((item) => item.length > 0) ?? [];
28474
+ const secondaryMeta = option.secondaryMeta?.filter((item) => item.label.length > 0) ?? [];
28475
+ const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
28476
+ return /* @__PURE__ */ jsxs3("div", { className: "event-compact-row", children: [
28477
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-content", children: [
28478
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-top", children: [
28479
+ /* @__PURE__ */ jsx5("span", { className: "event-compact-row-title", children: option.title }),
28480
+ primaryMeta.length > 0 && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-datetime", children: primaryMeta.join(" \xB7 ") })
28481
+ ] }),
28482
+ /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-bottom", children: [
28483
+ secondaryMeta.map((item) => /* @__PURE__ */ jsxs3(
28484
+ "span",
28485
+ {
28486
+ className: item.className,
28487
+ children: [
28488
+ item.icon,
28489
+ item.label
28490
+ ]
28491
+ },
28492
+ item.id ?? `${item.className ?? "meta"}:${item.label}`
28493
+ )),
28494
+ option.priceLabel && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-price", children: option.priceLabel })
28495
+ ] })
28496
+ ] }),
28497
+ option.action.kind === "status" ? /* @__PURE__ */ jsx5("span", { className: "event-compact-row-status", children: option.action.label }) : /* @__PURE__ */ jsx5("a", { href: option.action.href, className: `${buttonClass} event-compact-row-cta`, children: option.action.label })
28498
+ ] });
28499
+ }
28500
+
28501
+ // ../blocks/src/system/runtime/nodes/events/shared/EventCompactRow.tsx
28502
+ import { jsx as jsx6 } from "react/jsx-runtime";
28358
28503
  var EventCompactRow = ({
28359
28504
  event,
28360
28505
  buttonVariant = "primary",
@@ -28366,32 +28511,35 @@ var EventCompactRow = ({
28366
28511
  const price = formatEventPrice(event);
28367
28512
  const teacherLine = formatEventTeacherLine(event);
28368
28513
  const cta = resolveEventCta(event, buttonText);
28369
- const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "sm" });
28370
- return /* @__PURE__ */ jsxs3("div", { className: "event-compact-row", children: [
28371
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-content", children: [
28372
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-top", children: [
28373
- /* @__PURE__ */ jsx5("span", { className: "event-compact-row-title", children: event.title }),
28374
- /* @__PURE__ */ jsxs3("span", { className: "event-compact-row-datetime", children: [
28375
- formattedDate,
28376
- " \xB7 ",
28377
- formattedTime
28378
- ] })
28379
- ] }),
28380
- /* @__PURE__ */ jsxs3("div", { className: "event-compact-row-bottom", children: [
28381
- event.venue && /* @__PURE__ */ jsxs3("span", { className: "event-compact-row-venue", children: [
28382
- /* @__PURE__ */ jsx5(MapPinIcon, { className: "rb-shrink-0" }),
28383
- event.venue.name
28384
- ] }),
28385
- teacherLine && /* @__PURE__ */ jsx5("span", { className: "event-compact-row-teacher", children: teacherLine }),
28386
- /* @__PURE__ */ jsx5("span", { className: "event-compact-row-price", children: price })
28387
- ] })
28388
- ] }),
28389
- cta.hidden ? /* @__PURE__ */ jsx5("span", { className: "event-compact-row-status", children: cta.label }) : /* @__PURE__ */ jsx5("a", { href: cta.href, className: `${buttonClass} event-compact-row-cta`, children: cta.label })
28390
- ] });
28514
+ const option = {
28515
+ id: event.occurrenceId ?? event.id,
28516
+ title: event.title,
28517
+ primaryMeta: [formattedDate, formattedTime],
28518
+ secondaryMeta: [
28519
+ ...event.venue ? [
28520
+ {
28521
+ id: "venue",
28522
+ label: event.venue.name,
28523
+ icon: /* @__PURE__ */ jsx6(MapPinIcon, { className: "rb-shrink-0" }),
28524
+ className: "event-compact-row-venue"
28525
+ }
28526
+ ] : [],
28527
+ ...teacherLine ? [
28528
+ {
28529
+ id: "teacher",
28530
+ label: teacherLine,
28531
+ className: "event-compact-row-teacher"
28532
+ }
28533
+ ] : []
28534
+ ],
28535
+ priceLabel: price,
28536
+ action: cta.hidden ? { kind: "status", label: cta.label } : { kind: "action", label: cta.label, href: cta.href }
28537
+ };
28538
+ return /* @__PURE__ */ jsx6(BookingOptionCompactRow, { buttonVariant, option });
28391
28539
  };
28392
28540
 
28393
28541
  // ../blocks/src/system/runtime/nodes/events/shared/EmptyState.tsx
28394
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
28542
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
28395
28543
  var EmptyState = ({
28396
28544
  message = "No upcoming events scheduled.",
28397
28545
  className,
@@ -28400,8 +28548,8 @@ var EmptyState = ({
28400
28548
  resetFiltersText = "Reset filters"
28401
28549
  }) => {
28402
28550
  return /* @__PURE__ */ jsxs4("div", { className: `event-list-empty ${className || ""}`, children: [
28403
- /* @__PURE__ */ jsx6("p", { className: "rb-caption status-muted", children: message }),
28404
- hasActiveFilters && onResetFilters && /* @__PURE__ */ jsx6(
28551
+ /* @__PURE__ */ jsx7("p", { className: "rb-caption status-muted", children: message }),
28552
+ hasActiveFilters && onResetFilters && /* @__PURE__ */ jsx7(
28405
28553
  "button",
28406
28554
  {
28407
28555
  type: "button",
@@ -28414,12 +28562,12 @@ var EmptyState = ({
28414
28562
  };
28415
28563
 
28416
28564
  // ../blocks/src/system/runtime/nodes/events/shared/DateTimeTile.tsx
28417
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
28565
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
28418
28566
  function DateTimeTile({ startsAt, endsAt, timeZone }) {
28419
28567
  const { date, timeRange } = formatEventDateParts({ startsAt, endsAt, timeZone });
28420
28568
  return /* @__PURE__ */ jsxs5("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
28421
- /* @__PURE__ */ jsx7("strong", { className: "rb-caption", children: date }),
28422
- /* @__PURE__ */ jsx7("div", { className: "rb-caption", children: timeRange })
28569
+ /* @__PURE__ */ jsx8("strong", { className: "rb-caption", children: date }),
28570
+ /* @__PURE__ */ jsx8("div", { className: "rb-caption", children: timeRange })
28423
28571
  ] });
28424
28572
  }
28425
28573
 
@@ -28531,7 +28679,7 @@ var eventListingBlockRuntime = defineProgressiveBlockRuntime({
28531
28679
  containerClass: getContainerClass(layout, source.columns ?? "3"),
28532
28680
  cardVariant: source.cardVariant ?? "default",
28533
28681
  buttonVariant: source.buttonVariant ?? "primary",
28534
- buttonText: source.buttonText ?? "View event",
28682
+ buttonText: source.buttonText ?? "Book now",
28535
28683
  showVenue: source.showVenue ?? true,
28536
28684
  showMap: source.showMap ?? true,
28537
28685
  showCapacity: source.showCapacity ?? true,
@@ -28778,7 +28926,7 @@ var eventListingLayout = [
28778
28926
  loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
28779
28927
  cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
28780
28928
  buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
28781
- buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
28929
+ buttonText: { $bind: { from: "content.buttonText", fallback: "Book now" } },
28782
28930
  showVenue: { $bind: { from: "content.showVenue" } },
28783
28931
  showMap: { $bind: { from: "content.showMap" } },
28784
28932
  showCapacity: { $bind: { from: "content.showCapacity" } },
@@ -28856,6 +29004,7 @@ var eventListingBlockDefinition = {
28856
29004
  limit: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
28857
29005
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
28858
29006
  detailLevel: "listing",
29007
+ readProfile: { $bind: { from: "content.layout", fallback: "listing-card" } },
28859
29008
  kind: { $bind: { from: "content.kind" } },
28860
29009
  eventSurface: { $bind: { from: "content.eventSurface" } },
28861
29010
  eventPresets: {
@@ -28995,7 +29144,7 @@ function buildEventCalendarDisplay(source) {
28995
29144
  ),
28996
29145
  filterVenueId: normalizeEventVenueId(source.filterVenueId),
28997
29146
  buttonVariant: source.buttonVariant ?? "primary",
28998
- buttonText: source.buttonText ?? "View event",
29147
+ buttonText: source.buttonText ?? "Book now",
28999
29148
  showVenue: source.showVenue ?? true,
29000
29149
  showMap: source.showMap ?? true,
29001
29150
  showCapacity: source.showCapacity ?? true,
@@ -29184,7 +29333,7 @@ var eventCalendarLayout = [
29184
29333
  $bind: { from: "content.buttonVariant", fallback: "primary" }
29185
29334
  },
29186
29335
  buttonText: {
29187
- $bind: { from: "content.buttonText", fallback: "View event" }
29336
+ $bind: { from: "content.buttonText", fallback: "Book now" }
29188
29337
  },
29189
29338
  emptyMessage: { $bind: { from: "content.emptyMessage" } }
29190
29339
  })
@@ -29645,6 +29794,7 @@ var eventCalendarBlockDefinition = {
29645
29794
  limit: 100,
29646
29795
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
29647
29796
  detailLevel: "listing",
29797
+ readProfile: { $bind: { from: "content.variant", fallback: "listing-card" } },
29648
29798
  // Pass filter params if configured
29649
29799
  kind: { $bind: { from: "content.kind" } },
29650
29800
  eventSurface: { $bind: { from: "content.eventSurface" } },
@@ -34778,7 +34928,7 @@ import React4 from "react";
34778
34928
 
34779
34929
  // ../blocks/src/primitives/layout/Section.tsx
34780
34930
  import { forwardRef } from "react";
34781
- import { jsx as jsx8 } from "react/jsx-runtime";
34931
+ import { jsx as jsx9 } from "react/jsx-runtime";
34782
34932
  var Section = forwardRef(function Section2({
34783
34933
  as: Comp = "section",
34784
34934
  children,
@@ -34791,7 +34941,7 @@ var Section = forwardRef(function Section2({
34791
34941
  const overflowClass = allowOverflow ? "rb-overflow-visible" : "rb-overflow-hidden";
34792
34942
  const alwaysClass = clsx_default("rb-relative rb-isolate", overflowClass, className);
34793
34943
  const backgroundStyle = typeof background === "string" && background.trim().length > 0 ? backgroundColorStyle(background.trim()) : void 0;
34794
- return /* @__PURE__ */ jsx8(
34944
+ return /* @__PURE__ */ jsx9(
34795
34945
  Comp,
34796
34946
  {
34797
34947
  ref,
@@ -34805,7 +34955,7 @@ var Section = forwardRef(function Section2({
34805
34955
  var Section_default = Section;
34806
34956
 
34807
34957
  // ../blocks/src/primitives/layout/Stack.tsx
34808
- import { jsx as jsx9 } from "react/jsx-runtime";
34958
+ import { jsx as jsx10 } from "react/jsx-runtime";
34809
34959
  function Stack({
34810
34960
  as: Comp = "div",
34811
34961
  gap = "md",
@@ -34816,7 +34966,7 @@ function Stack({
34816
34966
  "data-slot": dataSlot,
34817
34967
  ...rest
34818
34968
  }) {
34819
- return /* @__PURE__ */ jsx9(
34969
+ return /* @__PURE__ */ jsx10(
34820
34970
  Comp,
34821
34971
  {
34822
34972
  ...rest,
@@ -34846,7 +34996,7 @@ function Stack({
34846
34996
  }
34847
34997
 
34848
34998
  // ../blocks/src/primitives/layout/Inline.tsx
34849
- import { jsx as jsx10 } from "react/jsx-runtime";
34999
+ import { jsx as jsx11 } from "react/jsx-runtime";
34850
35000
  function Inline({
34851
35001
  as: Comp = "div",
34852
35002
  gap = "md",
@@ -34858,7 +35008,7 @@ function Inline({
34858
35008
  "data-slot": dataSlot,
34859
35009
  ...rest
34860
35010
  }) {
34861
- return /* @__PURE__ */ jsx10(
35011
+ return /* @__PURE__ */ jsx11(
34862
35012
  Comp,
34863
35013
  {
34864
35014
  ...rest,
@@ -34890,7 +35040,7 @@ function Inline({
34890
35040
  }
34891
35041
 
34892
35042
  // ../blocks/src/primitives/layout/Grid.tsx
34893
- import { jsx as jsx11 } from "react/jsx-runtime";
35043
+ import { jsx as jsx12 } from "react/jsx-runtime";
34894
35044
  function Grid({
34895
35045
  as: Comp = "div",
34896
35046
  cols = { base: 1, md: 2 },
@@ -34908,7 +35058,7 @@ function Grid({
34908
35058
  colsObj.lg && `rb-lg-grid-cols-${colsObj.lg}`,
34909
35059
  colsObj.xl && `rb-xl-grid-cols-${colsObj.xl}`
34910
35060
  ];
34911
- return /* @__PURE__ */ jsx11(
35061
+ return /* @__PURE__ */ jsx12(
34912
35062
  Comp,
34913
35063
  {
34914
35064
  ...rest,
@@ -34938,7 +35088,7 @@ function Grid({
34938
35088
  }
34939
35089
 
34940
35090
  // ../blocks/src/system/runtime/nodes/layout.tsx
34941
- import { jsx as jsx12 } from "react/jsx-runtime";
35091
+ import { jsx as jsx13 } from "react/jsx-runtime";
34942
35092
  var SectionNode = ({
34943
35093
  blockId: _blockId,
34944
35094
  blockKind: _blockKind,
@@ -34947,7 +35097,7 @@ var SectionNode = ({
34947
35097
  pathBase: _pathBase,
34948
35098
  allowOverflow,
34949
35099
  ...props2
34950
- }) => /* @__PURE__ */ jsx12(Section_default, { ...props2, allowOverflow });
35100
+ }) => /* @__PURE__ */ jsx13(Section_default, { ...props2, allowOverflow });
34951
35101
  var StackNode = ({
34952
35102
  blockId: _blockId,
34953
35103
  blockKind: _blockKind,
@@ -34955,7 +35105,7 @@ var StackNode = ({
34955
35105
  fragmentRegistry: _fragmentRegistry,
34956
35106
  pathBase: _pathBase,
34957
35107
  ...props2
34958
- }) => /* @__PURE__ */ jsx12(Stack, { ...props2 });
35108
+ }) => /* @__PURE__ */ jsx13(Stack, { ...props2 });
34959
35109
  var InlineNode = ({
34960
35110
  blockId: _blockId,
34961
35111
  blockKind: _blockKind,
@@ -34963,7 +35113,7 @@ var InlineNode = ({
34963
35113
  fragmentRegistry: _fragmentRegistry,
34964
35114
  pathBase: _pathBase,
34965
35115
  ...props2
34966
- }) => /* @__PURE__ */ jsx12(Inline, { ...props2 });
35116
+ }) => /* @__PURE__ */ jsx13(Inline, { ...props2 });
34967
35117
  var GridNode = ({
34968
35118
  blockId: _blockId,
34969
35119
  blockKind: _blockKind,
@@ -34971,7 +35121,7 @@ var GridNode = ({
34971
35121
  fragmentRegistry: _fragmentRegistry,
34972
35122
  pathBase: _pathBase,
34973
35123
  ...props2
34974
- }) => /* @__PURE__ */ jsx12(Grid, { ...props2 });
35124
+ }) => /* @__PURE__ */ jsx13(Grid, { ...props2 });
34975
35125
  var DivNode = ({
34976
35126
  blockId: _blockId,
34977
35127
  blockKind: _blockKind,
@@ -34979,7 +35129,7 @@ var DivNode = ({
34979
35129
  fragmentRegistry: _fragmentRegistry,
34980
35130
  pathBase: _pathBase,
34981
35131
  ...props2
34982
- }) => /* @__PURE__ */ jsx12("div", { ...props2 });
35132
+ }) => /* @__PURE__ */ jsx13("div", { ...props2 });
34983
35133
  var FigureNode = ({
34984
35134
  blockId: _blockId,
34985
35135
  blockKind: _blockKind,
@@ -34987,7 +35137,7 @@ var FigureNode = ({
34987
35137
  fragmentRegistry: _fragmentRegistry,
34988
35138
  pathBase: _pathBase,
34989
35139
  ...props2
34990
- }) => /* @__PURE__ */ jsx12("figure", { ...props2 });
35140
+ }) => /* @__PURE__ */ jsx13("figure", { ...props2 });
34991
35141
 
34992
35142
  // ../blocks/src/primitives/content/components/RichText.tsx
34993
35143
  import React2 from "react";
@@ -35031,7 +35181,7 @@ function sanitizeHref(raw) {
35031
35181
  }
35032
35182
 
35033
35183
  // ../blocks/src/primitives/content/components/RichText.tsx
35034
- import { Fragment, jsx as jsx13 } from "react/jsx-runtime";
35184
+ import { Fragment, jsx as jsx14 } from "react/jsx-runtime";
35035
35185
  function parseDimension(value) {
35036
35186
  if (typeof value === "number" && Number.isFinite(value) && value > 0) {
35037
35187
  return Math.round(value);
@@ -35062,10 +35212,10 @@ function renderMarks(text2, marks, key) {
35062
35212
  switch (mark.type) {
35063
35213
  case "bold":
35064
35214
  case "strong":
35065
- return /* @__PURE__ */ jsx13("strong", { children: acc }, `${key}-b`);
35215
+ return /* @__PURE__ */ jsx14("strong", { children: acc }, `${key}-b`);
35066
35216
  case "italic":
35067
35217
  case "em":
35068
- return /* @__PURE__ */ jsx13("em", { children: acc }, `${key}-i`);
35218
+ return /* @__PURE__ */ jsx14("em", { children: acc }, `${key}-i`);
35069
35219
  case "link": {
35070
35220
  if (typeof acc === "string" && acc.length === 0) return acc;
35071
35221
  const attrs = mark.attrs ?? {};
@@ -35073,7 +35223,7 @@ function renderMarks(text2, marks, key) {
35073
35223
  if (!href) return acc;
35074
35224
  const target = typeof attrs.target === "string" && attrs.target.trim().length > 0 ? attrs.target.trim() : void 0;
35075
35225
  const rel = typeof attrs.rel === "string" ? attrs.rel : void 0;
35076
- return /* @__PURE__ */ jsx13("a", { href, target, rel: normalizeRel(target, rel), children: acc }, `${key}-l`);
35226
+ return /* @__PURE__ */ jsx14("a", { href, target, rel: normalizeRel(target, rel), children: acc }, `${key}-l`);
35077
35227
  }
35078
35228
  default:
35079
35229
  return acc;
@@ -35085,25 +35235,25 @@ function renderDoc(node, key, imageResolveContext) {
35085
35235
  const children = node.content?.map((child, index) => renderDoc(child, `${key}-${index}`, imageResolveContext));
35086
35236
  switch (node.type) {
35087
35237
  case "doc":
35088
- return /* @__PURE__ */ jsx13(Fragment, { children });
35238
+ return /* @__PURE__ */ jsx14(Fragment, { children });
35089
35239
  case "paragraph":
35090
- if (!children && !node.text) return /* @__PURE__ */ jsx13("p", {}, key);
35091
- return /* @__PURE__ */ jsx13("p", { children: children ?? renderMarks(node.text ?? "", node.marks, key) }, key);
35240
+ if (!children && !node.text) return /* @__PURE__ */ jsx14("p", {}, key);
35241
+ return /* @__PURE__ */ jsx14("p", { children: children ?? renderMarks(node.text ?? "", node.marks, key) }, key);
35092
35242
  case "heading": {
35093
35243
  const level = Math.min(Math.max(node.attrs?.level ?? 2, 1), 6);
35094
35244
  const headingTag = `h${level}`;
35095
35245
  return React2.createElement(headingTag, { key }, children);
35096
35246
  }
35097
35247
  case "bulletList":
35098
- return /* @__PURE__ */ jsx13("ul", { children }, key);
35248
+ return /* @__PURE__ */ jsx14("ul", { children }, key);
35099
35249
  case "orderedList":
35100
- return /* @__PURE__ */ jsx13("ol", { children }, key);
35250
+ return /* @__PURE__ */ jsx14("ol", { children }, key);
35101
35251
  case "listItem":
35102
- return /* @__PURE__ */ jsx13("li", { children }, key);
35252
+ return /* @__PURE__ */ jsx14("li", { children }, key);
35103
35253
  case "blockquote":
35104
- return /* @__PURE__ */ jsx13("blockquote", { children }, key);
35254
+ return /* @__PURE__ */ jsx14("blockquote", { children }, key);
35105
35255
  case "horizontalRule":
35106
- return /* @__PURE__ */ jsx13("hr", {}, key);
35256
+ return /* @__PURE__ */ jsx14("hr", {}, key);
35107
35257
  case "image": {
35108
35258
  const attrs = node.attrs ?? {};
35109
35259
  const src = typeof attrs.src === "string" ? attrs.src.trim() : "";
@@ -35118,7 +35268,7 @@ function renderDoc(node, key, imageResolveContext) {
35118
35268
  imageResolveContext ?? void 0
35119
35269
  ) ?? "" : "");
35120
35270
  if (!resolvedSrc) return null;
35121
- return /* @__PURE__ */ jsx13(
35271
+ return /* @__PURE__ */ jsx14(
35122
35272
  "img",
35123
35273
  {
35124
35274
  src: resolvedSrc,
@@ -35144,14 +35294,14 @@ function RichText({ as: Comp = "div", className, doc, path }) {
35144
35294
  const content = doc ? renderDoc(doc, "doc", imageResolveContext) : null;
35145
35295
  const dataAttributes = path ? { "data-builder-richtext": path } : void 0;
35146
35296
  const resolvedClassName = className?.trim() || DEFAULT_RICH_TEXT_CLASS;
35147
- return /* @__PURE__ */ jsx13(Comp, { className: resolvedClassName, ...dataAttributes, children: content });
35297
+ return /* @__PURE__ */ jsx14(Comp, { className: resolvedClassName, ...dataAttributes, children: content });
35148
35298
  }
35149
35299
 
35150
35300
  // ../blocks/src/primitives/content/components/Text.tsx
35151
- import { jsx as jsx14 } from "react/jsx-runtime";
35301
+ import { jsx as jsx15 } from "react/jsx-runtime";
35152
35302
  function Text({ as: Comp = "span", children, className = "", path }) {
35153
35303
  const dataAttributes = path ? { "data-builder-text": path } : void 0;
35154
- return /* @__PURE__ */ jsx14(Comp, { className, ...dataAttributes, children });
35304
+ return /* @__PURE__ */ jsx15(Comp, { className, ...dataAttributes, children });
35155
35305
  }
35156
35306
 
35157
35307
  // ../blocks/src/system/manifest/richTextSchema.ts
@@ -35240,13 +35390,13 @@ function coerceRichTextDoc(value) {
35240
35390
  }
35241
35391
 
35242
35392
  // ../blocks/src/system/runtime/nodes/basic.tsx
35243
- import { jsx as jsx15 } from "react/jsx-runtime";
35393
+ import { jsx as jsx16 } from "react/jsx-runtime";
35244
35394
  var TextNode = ({ value, children, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
35245
- return /* @__PURE__ */ jsx15(Text, { ...rest, children: value ?? children });
35395
+ return /* @__PURE__ */ jsx16(Text, { ...rest, children: value ?? children });
35246
35396
  };
35247
35397
  var RichTextNode = ({ value, blockId: _blockId, blockKind: _blockKind, blockContent: _blockContent, fragmentRegistry: _fragmentRegistry, pathBase: _pathBase, ...rest }) => {
35248
35398
  const doc = coerceRichTextDoc(value);
35249
- return /* @__PURE__ */ jsx15(RichText, { doc: doc ?? void 0, ...rest });
35399
+ return /* @__PURE__ */ jsx16(RichText, { doc: doc ?? void 0, ...rest });
35250
35400
  };
35251
35401
  var ButtonNode = ({
35252
35402
  value,
@@ -35286,7 +35436,7 @@ var ButtonNode = ({
35286
35436
  extraClassName: className
35287
35437
  }) : className;
35288
35438
  if (resolvedHref) {
35289
- return /* @__PURE__ */ jsx15(
35439
+ return /* @__PURE__ */ jsx16(
35290
35440
  "a",
35291
35441
  {
35292
35442
  href: resolvedHref,
@@ -35298,7 +35448,7 @@ var ButtonNode = ({
35298
35448
  }
35299
35449
  );
35300
35450
  }
35301
- return /* @__PURE__ */ jsx15(
35451
+ return /* @__PURE__ */ jsx16(
35302
35452
  "button",
35303
35453
  {
35304
35454
  type,
@@ -35330,9 +35480,9 @@ var LinkNode = ({
35330
35480
  console.warn("[LinkNode] Missing href for link-required link");
35331
35481
  }
35332
35482
  if (linkRequired) return null;
35333
- return /* @__PURE__ */ jsx15("span", { className, ...rest, children });
35483
+ return /* @__PURE__ */ jsx16("span", { className, ...rest, children });
35334
35484
  }
35335
- return /* @__PURE__ */ jsx15("a", { href: resolvedHref, className, target, rel, ...rest, children });
35485
+ return /* @__PURE__ */ jsx16("a", { href: resolvedHref, className, target, rel, ...rest, children });
35336
35486
  };
35337
35487
 
35338
35488
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/createLucideIcon.js
@@ -35737,7 +35887,7 @@ function getCtaIconComponent(name) {
35737
35887
  }
35738
35888
 
35739
35889
  // ../blocks/src/system/runtime/nodes/icon.tsx
35740
- import { jsx as jsx16 } from "react/jsx-runtime";
35890
+ import { jsx as jsx17 } from "react/jsx-runtime";
35741
35891
  var IconNode = ({
35742
35892
  value,
35743
35893
  title,
@@ -35753,7 +35903,7 @@ var IconNode = ({
35753
35903
  if (!Icon2) return null;
35754
35904
  const ariaLabel = rest["aria-label"];
35755
35905
  const decorative = !ariaLabel && !title;
35756
- return /* @__PURE__ */ jsx16(
35906
+ return /* @__PURE__ */ jsx17(
35757
35907
  Icon2,
35758
35908
  {
35759
35909
  className,
@@ -35765,7 +35915,7 @@ var IconNode = ({
35765
35915
  };
35766
35916
 
35767
35917
  // ../blocks/src/system/runtime/nodes/file-download.tsx
35768
- import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
35918
+ import { jsx as jsx18, jsxs as jsxs6 } from "react/jsx-runtime";
35769
35919
  var FILE_DOWNLOAD_BUTTON_VARIANTS = [
35770
35920
  "primary",
35771
35921
  "secondary",
@@ -35785,13 +35935,13 @@ function displayFilename(value) {
35785
35935
  function iconForMediaType(type) {
35786
35936
  switch (type) {
35787
35937
  case "audio":
35788
- return /* @__PURE__ */ jsx17(FileHeadphone, { "aria-hidden": "true" });
35938
+ return /* @__PURE__ */ jsx18(FileHeadphone, { "aria-hidden": "true" });
35789
35939
  case "document":
35790
- return /* @__PURE__ */ jsx17(FileText, { "aria-hidden": "true" });
35940
+ return /* @__PURE__ */ jsx18(FileText, { "aria-hidden": "true" });
35791
35941
  case "spreadsheet":
35792
- return /* @__PURE__ */ jsx17(FileSpreadsheet, { "aria-hidden": "true" });
35942
+ return /* @__PURE__ */ jsx18(FileSpreadsheet, { "aria-hidden": "true" });
35793
35943
  case "archive":
35794
- return /* @__PURE__ */ jsx17(FileArchive, { "aria-hidden": "true" });
35944
+ return /* @__PURE__ */ jsx18(FileArchive, { "aria-hidden": "true" });
35795
35945
  }
35796
35946
  }
35797
35947
  function normalizeButtonVariant(value) {
@@ -35813,9 +35963,9 @@ function FileDownloadNode({
35813
35963
  const body = description?.trim();
35814
35964
  const label = buttonLabel?.trim() || "Download";
35815
35965
  const variant = normalizeButtonVariant(buttonVariant);
35816
- return /* @__PURE__ */ jsx17("div", { className, children: /* @__PURE__ */ jsxs6("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: [
35966
+ return /* @__PURE__ */ jsx18("div", { className, children: /* @__PURE__ */ jsxs6("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: [
35817
35967
  /* @__PURE__ */ jsxs6("div", { className: "rb-flex rb-min-w-0 rb-items-start rb-gap-3", children: [
35818
- /* @__PURE__ */ jsx17(
35968
+ /* @__PURE__ */ jsx18(
35819
35969
  "span",
35820
35970
  {
35821
35971
  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",
@@ -35824,7 +35974,7 @@ function FileDownloadNode({
35824
35974
  }
35825
35975
  ),
35826
35976
  /* @__PURE__ */ jsxs6("div", { className: "rb-min-w-0 rb-space-y-1", children: [
35827
- /* @__PURE__ */ jsx17(
35977
+ /* @__PURE__ */ jsx18(
35828
35978
  "h2",
35829
35979
  {
35830
35980
  className: "rb-m-0 rb-text-lg rb-font-semibold",
@@ -35832,7 +35982,7 @@ function FileDownloadNode({
35832
35982
  children: heading
35833
35983
  }
35834
35984
  ),
35835
- body ? /* @__PURE__ */ jsx17(
35985
+ body ? /* @__PURE__ */ jsx18(
35836
35986
  "p",
35837
35987
  {
35838
35988
  className: "rb-m-0 rb-text-sm",
@@ -35840,7 +35990,7 @@ function FileDownloadNode({
35840
35990
  children: body
35841
35991
  }
35842
35992
  ) : null,
35843
- /* @__PURE__ */ jsx17(
35993
+ /* @__PURE__ */ jsx18(
35844
35994
  "p",
35845
35995
  {
35846
35996
  className: "rb-m-0 rb-truncate rb-text-xs",
@@ -35861,7 +36011,7 @@ function FileDownloadNode({
35861
36011
  extraClassName: "rb-inline-flex rb-shrink-0 rb-items-center rb-justify-center rb-gap-2"
35862
36012
  }),
35863
36013
  children: [
35864
- /* @__PURE__ */ jsx17(Download, { "aria-hidden": "true" }),
36014
+ /* @__PURE__ */ jsx18(Download, { "aria-hidden": "true" }),
35865
36015
  label
35866
36016
  ]
35867
36017
  }
@@ -35973,9 +36123,9 @@ function getEmbedUrl(info) {
35973
36123
  const kind = info.kind ?? "p";
35974
36124
  return `https://www.instagram.com/${kind}/${info.id}/embed`;
35975
36125
  }
35976
- default:
35977
- return "";
35978
36126
  }
36127
+ const exhaustive = info.provider;
36128
+ return exhaustive;
35979
36129
  }
35980
36130
  function getThumbnailUrl(info) {
35981
36131
  switch (info.provider) {
@@ -35985,9 +36135,20 @@ function getThumbnailUrl(info) {
35985
36135
  return `https://vumbnail.com/${info.id}.jpg`;
35986
36136
  case "instagram":
35987
36137
  return "";
35988
- default:
35989
- return "";
35990
36138
  }
36139
+ const exhaustive = info.provider;
36140
+ return exhaustive;
36141
+ }
36142
+ function getVideoEmbedLoadingStrategy(provider) {
36143
+ switch (provider) {
36144
+ case "youtube":
36145
+ case "vimeo":
36146
+ return "native-lazy";
36147
+ case "instagram":
36148
+ return "defer-until-near-viewport";
36149
+ }
36150
+ const exhaustive = provider;
36151
+ return exhaustive;
35991
36152
  }
35992
36153
  function getVideoEmbed(url) {
35993
36154
  const info = parseVideoUrl(url);
@@ -36002,7 +36163,7 @@ function getVideoEmbed(url) {
36002
36163
  }
36003
36164
 
36004
36165
  // ../blocks/src/system/runtime/nodes/video-embed.tsx
36005
- import { jsx as jsx18 } from "react/jsx-runtime";
36166
+ import { jsx as jsx19, jsxs as jsxs7 } from "react/jsx-runtime";
36006
36167
  var VideoEmbedNode = ({
36007
36168
  value,
36008
36169
  className,
@@ -36022,7 +36183,7 @@ var VideoEmbedNode = ({
36022
36183
  }
36023
36184
  const embedInfo = getVideoEmbed(value);
36024
36185
  if (!embedInfo) {
36025
- return /* @__PURE__ */ jsx18(
36186
+ return /* @__PURE__ */ jsx19(
36026
36187
  "div",
36027
36188
  {
36028
36189
  className,
@@ -36045,35 +36206,43 @@ var VideoEmbedNode = ({
36045
36206
  );
36046
36207
  }
36047
36208
  const title = getVideoTitle(embedInfo);
36048
- return /* @__PURE__ */ jsx18("div", { ...rest, children: /* @__PURE__ */ jsx18(
36209
+ const loadingStrategy = getVideoEmbedLoadingStrategy(embedInfo.provider);
36210
+ const shouldDeferSrc = loadingStrategy === "defer-until-near-viewport";
36211
+ return /* @__PURE__ */ jsx19("div", { ...rest, children: /* @__PURE__ */ jsxs7(
36049
36212
  "div",
36050
36213
  {
36051
36214
  className,
36215
+ "data-rb-video-embed-wrapper": shouldDeferSrc ? "true" : void 0,
36052
36216
  style: {
36053
36217
  ...style,
36054
36218
  aspectRatio: resolvedAspectRatio,
36055
36219
  position: "relative",
36056
36220
  width: "100%"
36057
36221
  },
36058
- children: /* @__PURE__ */ jsx18(
36059
- "iframe",
36060
- {
36061
- src: embedInfo.embedUrl,
36062
- title,
36063
- style: {
36064
- position: "absolute",
36065
- top: 0,
36066
- left: 0,
36067
- width: "100%",
36068
- height: "100%",
36069
- border: "none"
36070
- },
36071
- loading: "lazy",
36072
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
36073
- referrerPolicy: "no-referrer-when-downgrade",
36074
- allowFullScreen: true
36075
- }
36076
- )
36222
+ children: [
36223
+ /* @__PURE__ */ jsx19(
36224
+ "iframe",
36225
+ {
36226
+ src: shouldDeferSrc ? void 0 : embedInfo.embedUrl,
36227
+ title,
36228
+ loading: "lazy",
36229
+ "data-rb-video-embed-deferred": shouldDeferSrc ? "true" : void 0,
36230
+ "data-rb-video-embed-src": shouldDeferSrc ? embedInfo.embedUrl : void 0,
36231
+ style: {
36232
+ position: "absolute",
36233
+ top: 0,
36234
+ left: 0,
36235
+ width: "100%",
36236
+ height: "100%",
36237
+ border: "none"
36238
+ },
36239
+ allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
36240
+ referrerPolicy: "no-referrer-when-downgrade",
36241
+ allowFullScreen: true
36242
+ }
36243
+ ),
36244
+ shouldDeferSrc ? /* @__PURE__ */ jsx19("noscript", { children: /* @__PURE__ */ jsx19("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
36245
+ ]
36077
36246
  }
36078
36247
  ) });
36079
36248
  };
@@ -36088,9 +36257,9 @@ function getVideoTitle(info) {
36088
36257
  const label = kind === "reel" ? "reel" : kind === "tv" ? "video" : "post";
36089
36258
  return `Instagram ${label} ${info.id}`;
36090
36259
  }
36091
- default:
36092
- return "Embedded video";
36093
36260
  }
36261
+ const exhaustive = info.provider;
36262
+ return exhaustive;
36094
36263
  }
36095
36264
  function getAspectRatio(propAspectRatio, style) {
36096
36265
  const styleAspectRatio = style?.aspectRatio;
@@ -36115,7 +36284,7 @@ function normalizeAspectRatio(value) {
36115
36284
  import React3 from "react";
36116
36285
 
36117
36286
  // ../blocks/src/system/runtime/islands/ssr.tsx
36118
- import { jsx as jsx19 } from "react/jsx-runtime";
36287
+ import { jsx as jsx20 } from "react/jsx-runtime";
36119
36288
  function getIslandRootProps(kind, id) {
36120
36289
  const resolved = { "data-rb-island": kind };
36121
36290
  if (id) resolved["data-rb-island-id"] = id;
@@ -36125,7 +36294,7 @@ function serializeIslandProps(value) {
36125
36294
  return JSON.stringify(value).replace(/</g, "\\u003c");
36126
36295
  }
36127
36296
  function IslandPropsScript({ value }) {
36128
- return /* @__PURE__ */ jsx19(
36297
+ return /* @__PURE__ */ jsx20(
36129
36298
  "script",
36130
36299
  {
36131
36300
  type: "application/json",
@@ -36172,7 +36341,7 @@ function getCarouselSlidesToShowCssVars(value) {
36172
36341
  }
36173
36342
 
36174
36343
  // ../blocks/src/system/runtime/nodes/carousel.server.tsx
36175
- import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
36344
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
36176
36345
  var CarouselNodeSSR = ({
36177
36346
  blockId,
36178
36347
  children,
@@ -36191,7 +36360,7 @@ var CarouselNodeSSR = ({
36191
36360
  const resolvedSlides = resolveSlidesToShowMobile(normalizedSlidesToShow);
36192
36361
  const controlsEnabled = arrowVisibility === "never" ? false : normalizeBoolean2(showControls);
36193
36362
  const shouldSnap = transition === "slide";
36194
- return /* @__PURE__ */ jsxs7(
36363
+ return /* @__PURE__ */ jsxs8(
36195
36364
  "div",
36196
36365
  {
36197
36366
  className: clsx_default("carousel-root rb-relative", className),
@@ -36203,7 +36372,7 @@ var CarouselNodeSSR = ({
36203
36372
  "data-show-controls": controlsEnabled ? "true" : "false",
36204
36373
  ...getIslandRootProps("carousel", blockId),
36205
36374
  children: [
36206
- /* @__PURE__ */ jsx20(
36375
+ /* @__PURE__ */ jsx21(
36207
36376
  IslandPropsScript,
36208
36377
  {
36209
36378
  value: {
@@ -36218,7 +36387,7 @@ var CarouselNodeSSR = ({
36218
36387
  }
36219
36388
  }
36220
36389
  ),
36221
- /* @__PURE__ */ jsx20("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx20(
36390
+ /* @__PURE__ */ jsx21("div", { className: "carousel-frame rb-overflow-hidden rb-w-full", children: /* @__PURE__ */ jsx21(
36222
36391
  "div",
36223
36392
  {
36224
36393
  className: clsx_default(
@@ -36226,7 +36395,7 @@ var CarouselNodeSSR = ({
36226
36395
  "rb-overflow-x-auto",
36227
36396
  shouldSnap && "rb-snap-x rb-snap-mandatory"
36228
36397
  ),
36229
- children: /* @__PURE__ */ jsx20("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx20(
36398
+ children: /* @__PURE__ */ jsx21("div", { className: "carousel-track rb-flex rb-w-full", children: slides.map((slide, index) => /* @__PURE__ */ jsx21(
36230
36399
  "div",
36231
36400
  {
36232
36401
  "data-carousel-slide": true,
@@ -36255,7 +36424,7 @@ function normalizeBoolean2(value) {
36255
36424
  }
36256
36425
 
36257
36426
  // ../blocks/src/system/runtime/nodes/accordion.server.tsx
36258
- import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
36427
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
36259
36428
  var ACCORDION_ICONS = {
36260
36429
  Plus,
36261
36430
  Minus,
@@ -36272,7 +36441,7 @@ var AccordionNodeSSR = ({
36272
36441
  defaultValue,
36273
36442
  collapsible
36274
36443
  }) => {
36275
- return /* @__PURE__ */ jsxs8(
36444
+ return /* @__PURE__ */ jsxs9(
36276
36445
  "div",
36277
36446
  {
36278
36447
  className: clsx_default("accordion-root", className),
@@ -36280,7 +36449,7 @@ var AccordionNodeSSR = ({
36280
36449
  "data-default-value": Array.isArray(defaultValue) ? defaultValue.join(",") : defaultValue,
36281
36450
  ...getIslandRootProps("accordion", blockId),
36282
36451
  children: [
36283
- /* @__PURE__ */ jsx21(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
36452
+ /* @__PURE__ */ jsx22(IslandPropsScript, { value: { type, defaultValue, collapsible } }),
36284
36453
  children
36285
36454
  ]
36286
36455
  }
@@ -36302,21 +36471,21 @@ var AccordionItemNodeSSR = ({
36302
36471
  const iconConfig = ICON_CONFIG[resolvedIconStyle];
36303
36472
  const ClosedIconComponent = ACCORDION_ICONS[iconConfig.closedIcon];
36304
36473
  const OpenIconComponent = iconConfig.openIcon ? ACCORDION_ICONS[iconConfig.openIcon] : null;
36305
- return /* @__PURE__ */ jsxs8(
36474
+ return /* @__PURE__ */ jsxs9(
36306
36475
  "div",
36307
36476
  {
36308
36477
  className: clsx_default("accordion-item", className),
36309
36478
  "data-accordion-value": resolvedValue,
36310
36479
  "data-state": "closed",
36311
36480
  children: [
36312
- /* @__PURE__ */ jsxs8("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
36313
- /* @__PURE__ */ jsx21("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
36314
- /* @__PURE__ */ jsxs8("span", { className: "accordion-icon", "aria-hidden": "true", children: [
36315
- ClosedIconComponent && /* @__PURE__ */ jsx21(ClosedIconComponent, { className: "accordion-icon-closed" }),
36316
- OpenIconComponent && /* @__PURE__ */ jsx21(OpenIconComponent, { className: "accordion-icon-open" })
36481
+ /* @__PURE__ */ jsxs9("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
36482
+ /* @__PURE__ */ jsx22("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
36483
+ /* @__PURE__ */ jsxs9("span", { className: "accordion-icon", "aria-hidden": "true", children: [
36484
+ ClosedIconComponent && /* @__PURE__ */ jsx22(ClosedIconComponent, { className: "accordion-icon-closed" }),
36485
+ OpenIconComponent && /* @__PURE__ */ jsx22(OpenIconComponent, { className: "accordion-icon-open" })
36317
36486
  ] })
36318
36487
  ] }),
36319
- /* @__PURE__ */ jsx21(
36488
+ /* @__PURE__ */ jsx22(
36320
36489
  "div",
36321
36490
  {
36322
36491
  className: "accordion-content",
@@ -36325,7 +36494,7 @@ var AccordionItemNodeSSR = ({
36325
36494
  hidden: true,
36326
36495
  "aria-hidden": "true",
36327
36496
  inert: true,
36328
- children: /* @__PURE__ */ jsx21("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
36497
+ children: /* @__PURE__ */ jsx22("div", { className: "accordion-content-inner", children: resolveNode(contentSource) })
36329
36498
  }
36330
36499
  )
36331
36500
  ]
@@ -36335,12 +36504,12 @@ var AccordionItemNodeSSR = ({
36335
36504
  function resolveNode(value) {
36336
36505
  if (typeof value === "string" || typeof value === "number") return String(value);
36337
36506
  const doc = coerceRichTextDoc(value);
36338
- if (doc) return /* @__PURE__ */ jsx21(RichText, { doc });
36507
+ if (doc) return /* @__PURE__ */ jsx22(RichText, { doc });
36339
36508
  return value;
36340
36509
  }
36341
36510
 
36342
36511
  // ../blocks/src/system/runtime/nodes/header-section.server.tsx
36343
- import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
36512
+ import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
36344
36513
  function hasShrinkClasses(className) {
36345
36514
  return typeof className === "string" && className.includes("rb-header-shrink");
36346
36515
  }
@@ -36348,16 +36517,21 @@ var HeaderSectionNode = ({
36348
36517
  blockId,
36349
36518
  children,
36350
36519
  className,
36520
+ "data-preview-site-chrome-surface": previewSiteChromeSurface,
36351
36521
  ...rest
36352
36522
  }) => {
36353
36523
  const { wrapperClasses, sectionClasses } = splitPositioningClasses(className);
36354
- const wrapperClassName = `block-site-header${wrapperClasses ? ` ${wrapperClasses}` : ""}`;
36524
+ const wrapperClassName = [
36525
+ "block-site-header",
36526
+ wrapperClasses,
36527
+ previewSiteChromeSurface ? "group/site-chrome rb-relative" : ""
36528
+ ].filter(Boolean).join(" ");
36355
36529
  const asProp = rest.as;
36356
36530
  const styleProp = rest.style;
36357
36531
  const backgroundProp = typeof rest.background === "string" ? rest.background : void 0;
36358
36532
  const allowOverflowProp = typeof rest.allowOverflow === "boolean" ? rest.allowOverflow : void 0;
36359
36533
  const dataSlotProp = typeof rest["data-slot"] === "string" ? rest["data-slot"] : void 0;
36360
- return /* @__PURE__ */ jsxs9(
36534
+ return /* @__PURE__ */ jsxs10(
36361
36535
  "nav",
36362
36536
  {
36363
36537
  ...getIslandRootProps("headerSection", blockId),
@@ -36367,9 +36541,10 @@ var HeaderSectionNode = ({
36367
36541
  "data-block": "site-header",
36368
36542
  "data-block-kind": "block.site-header",
36369
36543
  "data-block-id": blockId ?? void 0,
36544
+ "data-preview-site-chrome-surface": previewSiteChromeSurface,
36370
36545
  children: [
36371
- /* @__PURE__ */ jsx22(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
36372
- /* @__PURE__ */ jsx22(
36546
+ /* @__PURE__ */ jsx23(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
36547
+ /* @__PURE__ */ jsx23(
36373
36548
  Section_default,
36374
36549
  {
36375
36550
  as: asProp,
@@ -36388,7 +36563,7 @@ var HeaderSectionNode = ({
36388
36563
  var header_section_server_default = HeaderSectionNode;
36389
36564
 
36390
36565
  // ../blocks/src/system/runtime/nodes/spinner.tsx
36391
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
36566
+ import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
36392
36567
  function resolveColorStyle(color) {
36393
36568
  switch (color) {
36394
36569
  case "inherit":
@@ -36415,7 +36590,7 @@ function SpinnerNode({
36415
36590
  const accessibilityProps = srLabel ? { role: "status", "aria-live": "polite" } : hasExplicitAriaLabel ? {} : { "aria-hidden": true };
36416
36591
  const trackStroke = color === "inherit" ? "currentColor" : "var(--rb-spinner-track-color)";
36417
36592
  const trackOpacity = color === "inherit" ? 0.25 : 1;
36418
- return /* @__PURE__ */ jsxs10(
36593
+ return /* @__PURE__ */ jsxs11(
36419
36594
  "span",
36420
36595
  {
36421
36596
  ...accessibilityProps,
@@ -36431,8 +36606,8 @@ function SpinnerNode({
36431
36606
  },
36432
36607
  ...rest,
36433
36608
  children: [
36434
- /* @__PURE__ */ jsxs10("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36435
- /* @__PURE__ */ jsx23(
36609
+ /* @__PURE__ */ jsxs11("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36610
+ /* @__PURE__ */ jsx24(
36436
36611
  "circle",
36437
36612
  {
36438
36613
  cx: "12",
@@ -36443,7 +36618,7 @@ function SpinnerNode({
36443
36618
  opacity: trackOpacity
36444
36619
  }
36445
36620
  ),
36446
- /* @__PURE__ */ jsx23(
36621
+ /* @__PURE__ */ jsx24(
36447
36622
  "path",
36448
36623
  {
36449
36624
  d: "M12 2a10 10 0 0 1 10 10",
@@ -36453,14 +36628,14 @@ function SpinnerNode({
36453
36628
  }
36454
36629
  )
36455
36630
  ] }),
36456
- srLabel ? /* @__PURE__ */ jsx23("span", { className: "rb-sr-only", children: srLabel }) : null
36631
+ srLabel ? /* @__PURE__ */ jsx24("span", { className: "rb-sr-only", children: srLabel }) : null
36457
36632
  ]
36458
36633
  }
36459
36634
  );
36460
36635
  }
36461
36636
 
36462
36637
  // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36463
- import { z as z64 } from "zod";
36638
+ import { z as z65 } from "zod";
36464
36639
 
36465
36640
  // ../blocks/src/system/runtime/nodes/booking-form.state.ts
36466
36641
  function toTrimmedString(value) {
@@ -36597,7 +36772,8 @@ function isRecord4(value) {
36597
36772
  return typeof value === "object" && value !== null;
36598
36773
  }
36599
36774
 
36600
- // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36775
+ // ../blocks/src/system/runtime/nodes/booking-runtime-sources.ts
36776
+ import { z as z64 } from "zod";
36601
36777
  var bookingFieldOptionSchema = z64.object({
36602
36778
  value: z64.string(),
36603
36779
  label: z64.string()
@@ -36651,100 +36827,102 @@ var bookingSourceFormSchema = z64.object({
36651
36827
  createdAt: z64.string(),
36652
36828
  updatedAt: z64.string()
36653
36829
  });
36654
- var blockBookingPaymentTermsAvailabilitySchema = z64.union([
36655
- z64.object({
36656
- kind: z64.literal("available"),
36830
+
36831
+ // ../blocks/src/system/runtime/nodes/booking-form.interactive.ts
36832
+ var blockBookingPaymentTermsAvailabilitySchema = z65.union([
36833
+ z65.object({
36834
+ kind: z65.literal("available"),
36657
36835
  paymentTerms: blockBookingPaymentTermsSchema
36658
36836
  }),
36659
- z64.object({
36660
- kind: z64.literal("pending_stripe_setup"),
36837
+ z65.object({
36838
+ kind: z65.literal("pending_stripe_setup"),
36661
36839
  paymentTerms: blockBookingPaymentTermsSchema,
36662
- reason: z64.literal("online_payment_configured_before_launch")
36840
+ reason: z65.literal("online_payment_configured_before_launch")
36663
36841
  })
36664
36842
  ]);
36665
- var bookingServiceSchema = z64.object({
36666
- id: z64.string(),
36667
- siteId: z64.string(),
36668
- title: z64.string(),
36669
- description: z64.string().nullable().optional().transform((value) => value ?? void 0),
36670
- durationMinutes: z64.number().optional(),
36671
- priceAmount: z64.number().nullable().optional(),
36672
- priceCurrency: z64.string().nullable().optional(),
36843
+ var bookingServiceSchema = z65.object({
36844
+ id: z65.string(),
36845
+ siteId: z65.string(),
36846
+ title: z65.string(),
36847
+ description: z65.string().nullable().optional().transform((value) => value ?? void 0),
36848
+ durationMinutes: z65.number().optional(),
36849
+ priceAmount: z65.number().nullable().optional(),
36850
+ priceCurrency: z65.string().nullable().optional(),
36673
36851
  paymentTerms: blockBookingPaymentTermsSchema.optional(),
36674
36852
  paymentTermsAvailability: blockBookingPaymentTermsAvailabilitySchema.optional()
36675
36853
  });
36676
- var bookingServicesSourceSchema = z64.union([
36677
- z64.array(bookingServiceSchema),
36678
- z64.object({
36679
- services: z64.array(bookingServiceSchema).optional()
36854
+ var bookingServicesSourceSchema = z65.union([
36855
+ z65.array(bookingServiceSchema),
36856
+ z65.object({
36857
+ services: z65.array(bookingServiceSchema).optional()
36680
36858
  }),
36681
- z64.record(z64.string(), bookingServiceSchema)
36859
+ z65.record(z65.string(), bookingServiceSchema)
36682
36860
  ]);
36683
- var bookingConfigSchema = z64.object({
36684
- id: z64.string(),
36685
- name: z64.string(),
36686
- slug: z64.string(),
36861
+ var bookingConfigSchema = z65.object({
36862
+ id: z65.string(),
36863
+ name: z65.string(),
36864
+ slug: z65.string(),
36687
36865
  settings: bookingSettingsSchema.optional(),
36688
- schema: z64.object({
36689
- version: z64.string().optional(),
36690
- fields: z64.array(bookingFieldSchema)
36866
+ schema: z65.object({
36867
+ version: z65.string().optional(),
36868
+ fields: z65.array(bookingFieldSchema)
36691
36869
  }).optional()
36692
36870
  });
36693
- var bookingSourceSchema = z64.object({
36694
- siteId: z64.string().optional(),
36695
- apiBaseUrl: z64.string().optional(),
36696
- portalToken: z64.string().nullable().optional(),
36697
- formId: z64.string().optional(),
36698
- serviceId: z64.string().nullable().optional(),
36699
- resourceId: z64.string().nullable().optional(),
36700
- initialData: z64.record(z64.string(), z64.unknown()).nullable().optional(),
36701
- noticeMessage: z64.string().nullable().optional(),
36702
- requiresServiceSelection: z64.boolean().optional(),
36703
- requiresResourceSelection: z64.boolean().optional(),
36704
- shouldAutoSelectSingleResource: z64.boolean().optional(),
36705
- rebookContext: z64.object({
36706
- kind: z64.literal("portal_rebook")
36871
+ var bookingSourceSchema = z65.object({
36872
+ siteId: z65.string().optional(),
36873
+ apiBaseUrl: z65.string().optional(),
36874
+ portalToken: z65.string().nullable().optional(),
36875
+ formId: z65.string().optional(),
36876
+ serviceId: z65.string().nullable().optional(),
36877
+ resourceId: z65.string().nullable().optional(),
36878
+ initialData: z65.record(z65.string(), z65.unknown()).nullable().optional(),
36879
+ noticeMessage: z65.string().nullable().optional(),
36880
+ requiresServiceSelection: z65.boolean().optional(),
36881
+ requiresResourceSelection: z65.boolean().optional(),
36882
+ shouldAutoSelectSingleResource: z65.boolean().optional(),
36883
+ rebookContext: z65.object({
36884
+ kind: z65.literal("portal_rebook")
36707
36885
  }).nullable().optional(),
36708
- submitLabel: z64.string().nullable().optional(),
36709
- successMessage: z64.string().nullable().optional(),
36886
+ submitLabel: z65.string().nullable().optional(),
36887
+ successMessage: z65.string().nullable().optional(),
36710
36888
  form: bookingSourceFormSchema.nullable().optional(),
36711
36889
  services: bookingServicesSourceSchema.nullable().optional(),
36712
- spamProtectionEnabled: z64.boolean().optional(),
36713
- className: z64.string().nullable().optional()
36714
- });
36715
- var bookingDisplaySchema = z64.object({
36716
- kind: z64.literal("booking-form"),
36717
- state: z64.enum(["missing", "ready"]),
36718
- className: z64.string().nullable(),
36719
- submitLabel: z64.string(),
36720
- successMessage: z64.string().nullable(),
36721
- message: z64.string().nullable()
36722
- });
36723
- var bookingHydrationSchema = z64.object({
36724
- formId: z64.string().nullable(),
36725
- serviceId: z64.string().nullable(),
36726
- resourceId: z64.string().nullable(),
36727
- initialData: z64.record(z64.string(), z64.unknown()).nullable().optional(),
36728
- noticeMessage: z64.string().nullable().optional(),
36729
- requiresServiceSelection: z64.boolean().optional(),
36730
- requiresResourceSelection: z64.boolean().optional(),
36731
- shouldAutoSelectSingleResource: z64.boolean().optional(),
36732
- rebookContext: z64.object({
36733
- kind: z64.literal("portal_rebook")
36890
+ spamProtectionEnabled: z65.boolean().optional(),
36891
+ className: z65.string().nullable().optional()
36892
+ });
36893
+ var bookingDisplaySchema = z65.object({
36894
+ kind: z65.literal("booking-form"),
36895
+ state: z65.enum(["missing", "ready"]),
36896
+ className: z65.string().nullable(),
36897
+ submitLabel: z65.string(),
36898
+ successMessage: z65.string().nullable(),
36899
+ message: z65.string().nullable()
36900
+ });
36901
+ var bookingHydrationSchema = z65.object({
36902
+ formId: z65.string().nullable(),
36903
+ serviceId: z65.string().nullable(),
36904
+ resourceId: z65.string().nullable(),
36905
+ initialData: z65.record(z65.string(), z65.unknown()).nullable().optional(),
36906
+ noticeMessage: z65.string().nullable().optional(),
36907
+ requiresServiceSelection: z65.boolean().optional(),
36908
+ requiresResourceSelection: z65.boolean().optional(),
36909
+ shouldAutoSelectSingleResource: z65.boolean().optional(),
36910
+ rebookContext: z65.object({
36911
+ kind: z65.literal("portal_rebook")
36734
36912
  }).nullable().optional(),
36735
36913
  form: bookingConfigSchema.nullable(),
36736
- services: z64.array(bookingServiceSchema),
36737
- spamProtectionEnabled: z64.boolean().optional()
36914
+ services: z65.array(bookingServiceSchema),
36915
+ spamProtectionEnabled: z65.boolean().optional()
36738
36916
  });
36739
- var bookingRenderSchema = z64.object({
36917
+ var bookingRenderSchema = z65.object({
36740
36918
  display: bookingDisplaySchema,
36741
36919
  hydration: bookingHydrationSchema
36742
36920
  });
36743
36921
  var bookingFormIslandMetaCodec = createZodCodec(
36744
- z64.object({
36745
- siteId: z64.string().optional(),
36746
- apiBaseUrl: z64.string().optional(),
36747
- portalToken: z64.string().nullable().optional()
36922
+ z65.object({
36923
+ siteId: z65.string().optional(),
36924
+ apiBaseUrl: z65.string().optional(),
36925
+ portalToken: z65.string().nullable().optional()
36748
36926
  })
36749
36927
  );
36750
36928
  var bookingFormIslandMetaKeys = defineInteractiveIslandMetaKeys(
@@ -36815,7 +36993,7 @@ function buildBookingFormInteractiveIslandProps(props2) {
36815
36993
  }
36816
36994
 
36817
36995
  // ../blocks/src/system/runtime/nodes/booking-form.server.tsx
36818
- import { Fragment as Fragment2, jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
36996
+ import { Fragment as Fragment2, jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
36819
36997
  function BookingFormSSR({
36820
36998
  blockId,
36821
36999
  siteId,
@@ -36859,16 +37037,16 @@ function BookingFormSSR({
36859
37037
  className
36860
37038
  });
36861
37039
  const display = islandProps.render.display;
36862
- return /* @__PURE__ */ jsxs11(
37040
+ return /* @__PURE__ */ jsxs12(
36863
37041
  "div",
36864
37042
  {
36865
37043
  className: `booking-form-ssr ${className ?? ""}`.trim(),
36866
37044
  ...getIslandRootProps("booking-form", blockId),
36867
37045
  children: [
36868
- /* @__PURE__ */ jsx24(IslandPropsScript, { value: islandProps }),
36869
- /* @__PURE__ */ jsx24("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs11(Fragment2, { children: [
36870
- /* @__PURE__ */ jsx24("strong", { children: display.submitLabel }),
36871
- display.successMessage ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
37046
+ /* @__PURE__ */ jsx25(IslandPropsScript, { value: islandProps }),
37047
+ /* @__PURE__ */ jsx25("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx25("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
37048
+ /* @__PURE__ */ jsx25("strong", { children: display.submitLabel }),
37049
+ display.successMessage ? /* @__PURE__ */ jsx25("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
36872
37050
  ] }) }),
36873
37051
  children
36874
37052
  ]
@@ -36976,22 +37154,22 @@ function filterMembershipsForEvent(siteMemberships, event) {
36976
37154
  }
36977
37155
 
36978
37156
  // ../blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.tsx
36979
- import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
37157
+ import { jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
36980
37158
  function CoursePricingDisplay({
36981
37159
  pricing,
36982
37160
  acceptedItems
36983
37161
  }) {
36984
- return /* @__PURE__ */ jsxs12("div", { className: "rb-mt-6", children: [
36985
- /* @__PURE__ */ jsx25("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 1 ? "Pricing" : "Cost" }),
36986
- pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx25("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs12("div", { children: [
36987
- /* @__PURE__ */ jsxs12("strong", { children: [
37162
+ return /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37163
+ /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 1 ? "Pricing" : "Cost" }),
37164
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs13("div", { children: [
37165
+ /* @__PURE__ */ jsxs13("strong", { children: [
36988
37166
  option.name,
36989
37167
  ": ",
36990
37168
  formatCoursePriceAmount(option.priceAmount, pricing.currency)
36991
37169
  ] }),
36992
- option.description ? /* @__PURE__ */ jsx25("p", { className: "rb-caption status-muted", children: option.description }) : null
36993
- ] }, option.id)) }) : /* @__PURE__ */ jsx25("p", { children: /* @__PURE__ */ jsx25("strong", { children: formatCoursePriceDisplay(pricing.display) }) }),
36994
- acceptedItems.length > 0 ? /* @__PURE__ */ jsxs12("p", { className: "rb-caption rb-mt-1", children: [
37170
+ option.description ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: option.description }) : null
37171
+ ] }, option.id)) }) : /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: formatCoursePriceDisplay(pricing.display) }) }),
37172
+ acceptedItems.length > 0 ? /* @__PURE__ */ jsxs13("p", { className: "rb-caption rb-mt-1", children: [
36995
37173
  "You can also attend with: ",
36996
37174
  acceptedItems.join(", ")
36997
37175
  ] }) : null
@@ -36999,7 +37177,7 @@ function CoursePricingDisplay({
36999
37177
  }
37000
37178
 
37001
37179
  // ../blocks/src/system/runtime/nodes/event-details/view.tsx
37002
- import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
37180
+ import { Fragment as Fragment3, jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
37003
37181
  function formatAutoApplyDiscountLine(preview, currency) {
37004
37182
  const rate = preview.discountType === "percent" ? `${preview.discountPercent}% off` : `${formatCoursePriceAmount(preview.discountAmountCents, currency)} off`;
37005
37183
  const label = preview.publicLabel.trim() || "Discount";
@@ -37009,7 +37187,7 @@ function TeamMemberName({
37009
37187
  name,
37010
37188
  profilePath
37011
37189
  }) {
37012
- return profilePath ? /* @__PURE__ */ jsx26("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx26("strong", { children: name }) }) : /* @__PURE__ */ jsx26("strong", { children: name });
37190
+ return profilePath ? /* @__PURE__ */ jsx27("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx27("strong", { children: name }) }) : /* @__PURE__ */ jsx27("strong", { children: name });
37013
37191
  }
37014
37192
  function EventDetailsView({
37015
37193
  selection,
@@ -37028,7 +37206,7 @@ function EventDetailsView({
37028
37206
  }) {
37029
37207
  const selected = selection.selected;
37030
37208
  if (!selected) {
37031
- return /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "No upcoming dates scheduled." });
37209
+ return /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "No upcoming dates scheduled." });
37032
37210
  }
37033
37211
  const venue = showVenue ? selected.venue : void 0;
37034
37212
  const isDropIn = selected.kind !== "course_session" && selected.requiresRegistration === false;
@@ -37050,73 +37228,73 @@ function EventDetailsView({
37050
37228
  acceptedItems.push(...applicableMemberships.map((m) => m.name));
37051
37229
  }
37052
37230
  const hasAcceptedItems = acceptedItems.length > 0;
37053
- return /* @__PURE__ */ jsxs13("div", { className: "rb-flex rb-flex-col rb-gap-6 rb-text-left", children: [
37054
- /* @__PURE__ */ jsxs13("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37055
- /* @__PURE__ */ jsxs13("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37056
- /* @__PURE__ */ jsxs13("div", { children: [
37057
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: selection.mode === "next" ? "Next date" : "Date" }),
37231
+ return /* @__PURE__ */ jsxs14("div", { className: "rb-flex rb-flex-col rb-gap-6 rb-text-left", children: [
37232
+ /* @__PURE__ */ jsxs14("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37233
+ /* @__PURE__ */ jsxs14("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37234
+ /* @__PURE__ */ jsxs14("div", { children: [
37235
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: selection.mode === "next" ? "Next date" : "Date" }),
37058
37236
  (() => {
37059
37237
  const { date, timeRange } = formatEventDateParts({
37060
37238
  startsAt: selected.startsAt,
37061
37239
  endsAt: selected.endsAt,
37062
37240
  timeZone: selection.timeZone
37063
37241
  });
37064
- return /* @__PURE__ */ jsxs13(Fragment3, { children: [
37065
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: date }) }),
37066
- /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: timeRange })
37242
+ return /* @__PURE__ */ jsxs14(Fragment3, { children: [
37243
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: date }) }),
37244
+ /* @__PURE__ */ jsx27("p", { className: "rb-caption", children: timeRange })
37067
37245
  ] });
37068
37246
  })()
37069
37247
  ] }),
37070
- venue ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37071
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37072
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: venue.name }) }),
37073
- venue.address ? /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: venue.address }) : null
37248
+ venue ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37249
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37250
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: venue.name }) }),
37251
+ venue.address ? /* @__PURE__ */ jsx27("p", { className: "rb-caption", children: venue.address }) : null
37074
37252
  ] }) : null,
37075
- teamMembers.length > 0 ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37076
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37077
- /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs13("div", { children: [
37078
- /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26(
37253
+ teamMembers.length > 0 ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37254
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37255
+ /* @__PURE__ */ jsx27("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs14("div", { children: [
37256
+ /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27(
37079
37257
  TeamMemberName,
37080
37258
  {
37081
37259
  name: teamMember.name,
37082
37260
  profilePath: teamMember.profilePath
37083
37261
  }
37084
37262
  ) }),
37085
- teamMember.summary ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
37263
+ teamMember.summary ? /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
37086
37264
  ] }, teamMember.id)) })
37087
37265
  ] }) : null,
37088
- isDropIn ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37089
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Registration" }),
37090
- /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "No registration required - just show up" })
37091
- ] }) : shouldShowCoursePricing ? /* @__PURE__ */ jsx26(
37266
+ isDropIn ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37267
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Registration" }),
37268
+ /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "No registration required - just show up" })
37269
+ ] }) : shouldShowCoursePricing ? /* @__PURE__ */ jsx27(
37092
37270
  CoursePricingDisplay,
37093
37271
  {
37094
37272
  pricing: coursePricing,
37095
37273
  acceptedItems
37096
37274
  }
37097
- ) : shouldShowEventCost ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37098
- /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Cost" }),
37099
- eventPrice !== null ? /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
37100
- autoApplyDiscount ? /* @__PURE__ */ jsx26("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
37101
- hasAcceptedItems ? /* @__PURE__ */ jsxs13("p", { className: "rb-caption rb-mt-1", children: [
37275
+ ) : shouldShowEventCost ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37276
+ /* @__PURE__ */ jsx27("div", { className: "rb-label rb-mb-2", children: "Cost" }),
37277
+ eventPrice !== null ? /* @__PURE__ */ jsx27("p", { children: /* @__PURE__ */ jsx27("strong", { children: formatCoursePriceAmount(eventPrice, selected.currency ?? "USD") }) }) : /* @__PURE__ */ jsx27("p", { className: "rb-caption status-muted", children: "See checkout for details" }),
37278
+ autoApplyDiscount ? /* @__PURE__ */ jsx27("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
37279
+ hasAcceptedItems ? /* @__PURE__ */ jsxs14("p", { className: "rb-caption rb-mt-1", children: [
37102
37280
  "You can also attend with: ",
37103
37281
  acceptedItems.join(", ")
37104
37282
  ] }) : null
37105
- ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx26("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs13("p", { className: "rb-caption", children: [
37283
+ ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx27("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs14("p", { className: "rb-caption", children: [
37106
37284
  "You can also attend with: ",
37107
37285
  acceptedItems.join(", ")
37108
37286
  ] }) }) : null
37109
37287
  ] }),
37110
- showMap && renderVenueMap && venue?.location ? /* @__PURE__ */ jsx26(Fragment3, { children: renderVenueMap({ venueName: venue.name, location: venue.location, className: mapClassName, height: mapHeight }) }) : null
37288
+ showMap && renderVenueMap && venue?.location ? /* @__PURE__ */ jsx27(Fragment3, { children: renderVenueMap({ venueName: venue.name, location: venue.location, className: mapClassName, height: mapHeight }) }) : null
37111
37289
  ] }),
37112
- showOtherDates && selection.otherDates.length > 0 ? /* @__PURE__ */ jsxs13("div", { children: [
37113
- /* @__PURE__ */ jsx26("div", { className: "rb-label", children: "Other dates" }),
37114
- /* @__PURE__ */ jsx26("div", { className: "rb-mt-2 rb-tiles-grid", children: selection.otherDates.map((e) => /* @__PURE__ */ jsx26(
37290
+ showOtherDates && selection.otherDates.length > 0 ? /* @__PURE__ */ jsxs14("div", { children: [
37291
+ /* @__PURE__ */ jsx27("div", { className: "rb-label", children: "Other dates" }),
37292
+ /* @__PURE__ */ jsx27("div", { className: "rb-mt-2 rb-tiles-grid", children: selection.otherDates.map((e) => /* @__PURE__ */ jsx27(
37115
37293
  "a",
37116
37294
  {
37117
37295
  className: "rb-tile rb-tile--interactive",
37118
37296
  href: e.path,
37119
- children: /* @__PURE__ */ jsx26(
37297
+ children: /* @__PURE__ */ jsx27(
37120
37298
  DateTimeTile,
37121
37299
  {
37122
37300
  startsAt: e.startsAt,
@@ -37132,7 +37310,7 @@ function EventDetailsView({
37132
37310
  }
37133
37311
 
37134
37312
  // ../blocks/src/system/runtime/nodes/event-details.server.tsx
37135
- import { jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
37313
+ import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
37136
37314
  function EventDetailsSSR({
37137
37315
  blockId,
37138
37316
  occurrenceContext,
@@ -37161,14 +37339,14 @@ function EventDetailsSSR({
37161
37339
  const membershipsArray = siteMemberships?.memberships ?? null;
37162
37340
  const applicablePasses = filterPassesForEvent(passesArray, selection.selected);
37163
37341
  const applicableMemberships = filterMembershipsForEvent(membershipsArray, selection.selected);
37164
- return /* @__PURE__ */ jsxs14(
37342
+ return /* @__PURE__ */ jsxs15(
37165
37343
  "div",
37166
37344
  {
37167
37345
  className: `event-details ${className ?? ""}`.trim(),
37168
37346
  "data-block": "event-details",
37169
37347
  ...getIslandRootProps("event-details", blockId),
37170
37348
  children: [
37171
- /* @__PURE__ */ jsx27(
37349
+ /* @__PURE__ */ jsx28(
37172
37350
  IslandPropsScript,
37173
37351
  {
37174
37352
  value: {
@@ -37189,7 +37367,7 @@ function EventDetailsSSR({
37189
37367
  }
37190
37368
  }
37191
37369
  ),
37192
- /* @__PURE__ */ jsx27(
37370
+ /* @__PURE__ */ jsx28(
37193
37371
  EventDetailsView,
37194
37372
  {
37195
37373
  selection,
@@ -37203,7 +37381,7 @@ function EventDetailsSSR({
37203
37381
  applicableMemberships,
37204
37382
  autoApplyDiscount: autoApplyDiscount ?? null,
37205
37383
  mapClassName: "venue-map event-details-map",
37206
- renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx27("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx27(
37384
+ renderVenueMap: ({ venueName, className: className2, height }) => /* @__PURE__ */ jsx28("div", { className: "event-details-map-wrap rb-w-full rb-ml-auto", children: /* @__PURE__ */ jsx28(
37207
37385
  "div",
37208
37386
  {
37209
37387
  className: className2,
@@ -37227,7 +37405,7 @@ function EventDetailsSSR({
37227
37405
  var event_details_server_default = EventDetailsSSR;
37228
37406
 
37229
37407
  // ../blocks/src/system/runtime/nodes/location-map.view.tsx
37230
- import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
37408
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
37231
37409
  function LocationMapView({
37232
37410
  addressText,
37233
37411
  location: location2,
@@ -37241,9 +37419,9 @@ function LocationMapView({
37241
37419
  }) {
37242
37420
  const directionsUrl = buildGoogleMapsDirectionsUrl({ addressText, location: location2 });
37243
37421
  if (!location2 && !addressText && !directionsUrl) {
37244
- return /* @__PURE__ */ jsx28("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
37422
+ return /* @__PURE__ */ jsx29("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
37245
37423
  }
37246
- return /* @__PURE__ */ jsxs15("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
37424
+ return /* @__PURE__ */ jsxs16("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
37247
37425
  location2 && renderMap ? renderMap({
37248
37426
  addressText,
37249
37427
  location: location2,
@@ -37251,8 +37429,8 @@ function LocationMapView({
37251
37429
  height: heightPx,
37252
37430
  zoom
37253
37431
  }) : null,
37254
- showAddressText && addressText ? /* @__PURE__ */ jsx28("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: addressText }) : null,
37255
- showDirections && directionsUrl ? /* @__PURE__ */ jsx28(
37432
+ showAddressText && addressText ? /* @__PURE__ */ jsx29("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: addressText }) : null,
37433
+ showDirections && directionsUrl ? /* @__PURE__ */ jsx29(
37256
37434
  "a",
37257
37435
  {
37258
37436
  href: directionsUrl,
@@ -37271,19 +37449,19 @@ function LocationMapView({
37271
37449
  }
37272
37450
 
37273
37451
  // ../blocks/src/system/runtime/nodes/location-map.server.tsx
37274
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
37452
+ import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
37275
37453
  function LocationMapSSR(props2) {
37276
37454
  const normalized = normalizeLocationMapProps(props2);
37277
37455
  const hydrationProps = toLocationMapHydrationProps(props2);
37278
- return /* @__PURE__ */ jsxs16(
37456
+ return /* @__PURE__ */ jsxs17(
37279
37457
  "div",
37280
37458
  {
37281
37459
  className: `location-map ${normalized.className ?? ""}`.trim(),
37282
37460
  "data-block": "location-map",
37283
37461
  ...getIslandRootProps("location-map", props2.blockId),
37284
37462
  children: [
37285
- /* @__PURE__ */ jsx29(IslandPropsScript, { value: hydrationProps }),
37286
- /* @__PURE__ */ jsx29(
37463
+ /* @__PURE__ */ jsx30(IslandPropsScript, { value: hydrationProps }),
37464
+ /* @__PURE__ */ jsx30(
37287
37465
  LocationMapView,
37288
37466
  {
37289
37467
  addressText: normalized.addressText,
@@ -37294,7 +37472,7 @@ function LocationMapSSR(props2) {
37294
37472
  showDirections: normalized.showDirections,
37295
37473
  directionsLabel: normalized.directionsLabel,
37296
37474
  unresolvedMessage: normalized.unresolvedMessage,
37297
- renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx29(
37475
+ renderMap: ({ addressText, className, height }) => /* @__PURE__ */ jsx30(
37298
37476
  "div",
37299
37477
  {
37300
37478
  className,
@@ -37430,12 +37608,12 @@ function formatCourseDateRange(range) {
37430
37608
  }
37431
37609
 
37432
37610
  // ../blocks/src/system/runtime/nodes/course-details/view.tsx
37433
- import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
37611
+ import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
37434
37612
  function TeamMemberName2({
37435
37613
  name,
37436
37614
  profilePath
37437
37615
  }) {
37438
- return profilePath ? /* @__PURE__ */ jsx30("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx30("strong", { children: name }) }) : /* @__PURE__ */ jsx30("strong", { children: name });
37616
+ return profilePath ? /* @__PURE__ */ jsx31("a", { href: profilePath, className: "rb-hover-opacity-80", children: /* @__PURE__ */ jsx31("strong", { children: name }) }) : /* @__PURE__ */ jsx31("strong", { children: name });
37439
37617
  }
37440
37618
  function parseLimit2(value, fallback2) {
37441
37619
  if (value === "all") return "all";
@@ -37456,7 +37634,7 @@ function CourseDetailsView(props2) {
37456
37634
  showMembershipNote = true
37457
37635
  } = props2;
37458
37636
  if (!course) {
37459
- return /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
37637
+ return /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Course details unavailable." });
37460
37638
  }
37461
37639
  const pricing = resolveCoursePricingState(course);
37462
37640
  const sessionLimit = parseLimit2(sessionsLimit, 10);
@@ -37465,14 +37643,14 @@ function CourseDetailsView(props2) {
37465
37643
  const hasMoreSessions = sessionLimit !== "all" && sortedSessions.length > sessionLimit;
37466
37644
  const descriptionDoc = showDescription ? coerceRichTextDoc(course.description) : null;
37467
37645
  const teamMembers = course.teamMembers ?? [];
37468
- return /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
37469
- showTitle && /* @__PURE__ */ jsx30("h3", { children: course.title }),
37470
- /* @__PURE__ */ jsxs17("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37471
- /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37472
- showPrice && /* @__PURE__ */ jsxs17("div", { children: [
37473
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
37474
- pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs17("div", { children: [
37475
- /* @__PURE__ */ jsxs17("strong", { children: [
37646
+ return /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
37647
+ showTitle && /* @__PURE__ */ jsx31("h3", { children: course.title }),
37648
+ /* @__PURE__ */ jsxs18("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37649
+ /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37650
+ showPrice && /* @__PURE__ */ jsxs18("div", { children: [
37651
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
37652
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs18("div", { children: [
37653
+ /* @__PURE__ */ jsxs18("strong", { children: [
37476
37654
  option.name,
37477
37655
  ": ",
37478
37656
  formatCoursePriceAmount(
@@ -37480,48 +37658,48 @@ function CourseDetailsView(props2) {
37480
37658
  pricing.currency
37481
37659
  )
37482
37660
  ] }),
37483
- option.description ? /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: option.description }) : null
37484
- ] }, option.id)) }) : /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
37661
+ option.description ? /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: option.description }) : null
37662
+ ] }, option.id)) }) : /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsx31("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
37485
37663
  ] }),
37486
- showCapacity && /* @__PURE__ */ jsxs17("div", { children: [
37487
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Spots" }),
37488
- /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
37664
+ showCapacity && /* @__PURE__ */ jsxs18("div", { children: [
37665
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Spots" }),
37666
+ /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsx31("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
37489
37667
  ] }),
37490
- showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs17("div", { children: [
37491
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Membership" }),
37492
- /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
37668
+ showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs18("div", { children: [
37669
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Membership" }),
37670
+ /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
37493
37671
  ] }),
37494
- teamMembers.length > 0 && /* @__PURE__ */ jsxs17("div", { children: [
37495
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37496
- /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs17("div", { children: [
37497
- /* @__PURE__ */ jsx30("p", { children: /* @__PURE__ */ jsx30(
37672
+ teamMembers.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37673
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37674
+ /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs18("div", { children: [
37675
+ /* @__PURE__ */ jsx31("p", { children: /* @__PURE__ */ jsx31(
37498
37676
  TeamMemberName2,
37499
37677
  {
37500
37678
  name: teamMember.name,
37501
37679
  profilePath: teamMember.profilePath
37502
37680
  }
37503
37681
  ) }),
37504
- teamMember.summary && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: teamMember.summary })
37682
+ teamMember.summary && /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: teamMember.summary })
37505
37683
  ] }, teamMember.id)) })
37506
37684
  ] })
37507
37685
  ] }),
37508
- /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37509
- showVenue && course.venue && /* @__PURE__ */ jsxs17("div", { children: [
37510
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37511
- /* @__PURE__ */ jsx30("h3", { children: course.venue.name }),
37512
- course.venue.address && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: course.venue.address })
37686
+ /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37687
+ showVenue && course.venue && /* @__PURE__ */ jsxs18("div", { children: [
37688
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37689
+ /* @__PURE__ */ jsx31("h3", { children: course.venue.name }),
37690
+ course.venue.address && /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: course.venue.address })
37513
37691
  ] }),
37514
- showEnrollmentStatus && /* @__PURE__ */ jsxs17("div", { children: [
37515
- /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
37516
- /* @__PURE__ */ jsx30("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
37692
+ showEnrollmentStatus && /* @__PURE__ */ jsxs18("div", { children: [
37693
+ /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
37694
+ /* @__PURE__ */ jsx31("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx31("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
37517
37695
  ] })
37518
37696
  ] })
37519
37697
  ] }),
37520
- descriptionDoc && /* @__PURE__ */ jsx30("div", { className: "cd-description", children: /* @__PURE__ */ jsx30(RichText, { doc: descriptionDoc }) }),
37521
- showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs17("div", { children: [
37522
- /* @__PURE__ */ jsx30("div", { className: "rb-label", children: "Sessions" }),
37523
- /* @__PURE__ */ jsx30("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx30("div", { className: "rb-tile", children: /* @__PURE__ */ jsx30(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
37524
- hasMoreSessions && /* @__PURE__ */ jsxs17("p", { className: "cd-sessions__more", children: [
37698
+ descriptionDoc && /* @__PURE__ */ jsx31("div", { className: "cd-description", children: /* @__PURE__ */ jsx31(RichText, { doc: descriptionDoc }) }),
37699
+ showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37700
+ /* @__PURE__ */ jsx31("div", { className: "rb-label", children: "Sessions" }),
37701
+ /* @__PURE__ */ jsx31("div", { className: "rb-mt-2 rb-tiles-grid", children: visibleSessions.map((s) => /* @__PURE__ */ jsx31("div", { className: "rb-tile", children: /* @__PURE__ */ jsx31(DateTimeTile, { startsAt: s.startsAt, endsAt: s.endsAt }) }, s.id)) }),
37702
+ hasMoreSessions && /* @__PURE__ */ jsxs18("p", { className: "cd-sessions__more", children: [
37525
37703
  "Showing ",
37526
37704
  visibleSessions.length,
37527
37705
  " of ",
@@ -37533,7 +37711,7 @@ function CourseDetailsView(props2) {
37533
37711
  }
37534
37712
 
37535
37713
  // ../blocks/src/system/runtime/nodes/course-details.server.tsx
37536
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
37714
+ import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
37537
37715
  function CourseDetailsSSR({
37538
37716
  courses,
37539
37717
  contentEntry,
@@ -37571,8 +37749,8 @@ function CourseDetailsSSR({
37571
37749
  const pastRuns = scopedWithRange.filter(({ range }) => Boolean(range.end && range.end <= now)).sort((a, b) => (b.range.end?.getTime() ?? 0) - (a.range.end?.getTime() ?? 0));
37572
37750
  const lastPastRun = pastRuns[0] ?? null;
37573
37751
  const nonPastRuns = scopedSorted.filter(({ range }) => !(range.end && range.end <= now));
37574
- return /* @__PURE__ */ jsxs18("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
37575
- selection.selected ? /* @__PURE__ */ jsx31(
37752
+ return /* @__PURE__ */ jsxs19("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
37753
+ selection.selected ? /* @__PURE__ */ jsx32(
37576
37754
  CourseDetailsView,
37577
37755
  {
37578
37756
  course: selection.selected,
@@ -37586,32 +37764,32 @@ function CourseDetailsSSR({
37586
37764
  showEnrollmentStatus,
37587
37765
  showMembershipNote
37588
37766
  }
37589
- ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
37590
- /* @__PURE__ */ jsxs18("div", { children: [
37591
- /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
37592
- /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
37767
+ ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
37768
+ /* @__PURE__ */ jsxs19("div", { children: [
37769
+ /* @__PURE__ */ jsx32("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
37770
+ /* @__PURE__ */ jsx32("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
37593
37771
  ] }),
37594
- nonPastRuns.length > 0 ? /* @__PURE__ */ jsx31("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
37772
+ nonPastRuns.length > 0 ? /* @__PURE__ */ jsx32("ul", { className: "rb-flex rb-flex-col rb-gap-2", children: nonPastRuns.map(({ course, range }) => {
37595
37773
  const start = range.start;
37596
37774
  const end = range.end;
37597
37775
  const isInProgress = Boolean(start && end && start <= now && end > now);
37598
37776
  const href = basePath ? `${basePath.replace(/\/$/, "")}/${course.slug}` : null;
37599
- return /* @__PURE__ */ jsx31("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx31("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
37600
- /* @__PURE__ */ jsxs18("div", { className: "rb-min-w-0", children: [
37601
- href ? /* @__PURE__ */ jsx31("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx31("strong", { children: course.title }) }) : /* @__PURE__ */ jsx31("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx31("strong", { children: course.title }) }),
37602
- /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
37777
+ return /* @__PURE__ */ jsx32("li", { className: "rb-rounded-md rb-border rb-p-3", children: /* @__PURE__ */ jsx32("div", { className: "rb-flex rb-flex-col rb-gap-1", children: /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
37778
+ /* @__PURE__ */ jsxs19("div", { className: "rb-min-w-0", children: [
37779
+ href ? /* @__PURE__ */ jsx32("a", { href, className: "rb-truncate", children: /* @__PURE__ */ jsx32("strong", { children: course.title }) }) : /* @__PURE__ */ jsx32("div", { className: "rb-truncate", children: /* @__PURE__ */ jsx32("strong", { children: course.title }) }),
37780
+ /* @__PURE__ */ jsx32("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
37603
37781
  ] }),
37604
- /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
37782
+ /* @__PURE__ */ jsx32("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
37605
37783
  ] }) }) }, course.id);
37606
- }) }) : /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
37607
- lastPastRun ? /* @__PURE__ */ jsxs18("div", { className: "rb-caption status-muted", children: [
37784
+ }) }) : /* @__PURE__ */ jsx32("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
37785
+ lastPastRun ? /* @__PURE__ */ jsxs19("div", { className: "rb-caption status-muted", children: [
37608
37786
  "Last run: ",
37609
- /* @__PURE__ */ jsx31("strong", { children: lastPastRun.course.title }),
37787
+ /* @__PURE__ */ jsx32("strong", { children: lastPastRun.course.title }),
37610
37788
  " (",
37611
37789
  formatCourseDateRange(lastPastRun.range),
37612
37790
  ")"
37613
37791
  ] }) : null
37614
- ] }) : /* @__PURE__ */ jsx31(
37792
+ ] }) : /* @__PURE__ */ jsx32(
37615
37793
  CourseDetailsView,
37616
37794
  {
37617
37795
  course: null,
@@ -37632,14 +37810,14 @@ function CourseDetailsSSR({
37632
37810
  var course_details_server_default = CourseDetailsSSR;
37633
37811
 
37634
37812
  // ../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx
37635
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
37813
+ import { jsx as jsx33, jsxs as jsxs20 } from "react/jsx-runtime";
37636
37814
  var EventSpotlight = ({
37637
37815
  events,
37638
37816
  layout = "grid",
37639
37817
  columns = "3",
37640
37818
  cardVariant = "default",
37641
37819
  buttonVariant = "primary",
37642
- buttonText = "View event",
37820
+ buttonText = "Book now",
37643
37821
  ctaLabel,
37644
37822
  ctaUrl,
37645
37823
  showVenue = true,
@@ -37650,13 +37828,13 @@ var EventSpotlight = ({
37650
37828
  }) => {
37651
37829
  const normalizedEvents = events ?? [];
37652
37830
  if (normalizedEvents.length === 0) {
37653
- return /* @__PURE__ */ jsx32(EmptyState, { message: emptyMessage, className });
37831
+ return /* @__PURE__ */ jsx33(EmptyState, { message: emptyMessage, className });
37654
37832
  }
37655
37833
  const containerClass = getContainerClass(layout, columns);
37656
37834
  const cardOrientation = getCardOrientation(layout);
37657
37835
  const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
37658
- return /* @__PURE__ */ jsxs19("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
37659
- /* @__PURE__ */ jsx32("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx32(
37836
+ return /* @__PURE__ */ jsxs20("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
37837
+ /* @__PURE__ */ jsx33("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx33(
37660
37838
  EventCard,
37661
37839
  {
37662
37840
  event,
@@ -37670,93 +37848,93 @@ var EventSpotlight = ({
37670
37848
  },
37671
37849
  event.occurrenceId || event.id
37672
37850
  )) }),
37673
- ctaLabel && ctaUrl ? /* @__PURE__ */ jsx32("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx32("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
37851
+ ctaLabel && ctaUrl ? /* @__PURE__ */ jsx33("div", { className: "rb-mt-8 rb-text-center", children: /* @__PURE__ */ jsx33("a", { href: ctaUrl, className: buttonClass, children: ctaLabel }) }) : null
37674
37852
  ] });
37675
37853
  };
37676
37854
 
37677
37855
  // ../blocks/src/system/runtime/nodes/events/EventCombined.interactive.ts
37678
- import { z as z65 } from "zod";
37679
- var eventBlockKindSchema3 = z65.enum(eventBlockKindValues);
37680
- var eventSurfaceScopeSchema3 = z65.enum(eventSurfaceScopeValues);
37681
- var eventScheduleScopeSchema4 = z65.enum(eventScheduleScopeValues);
37682
- var eventCombinedSourceSchema = z65.object(
37856
+ import { z as z66 } from "zod";
37857
+ var eventBlockKindSchema3 = z66.enum(eventBlockKindValues);
37858
+ var eventSurfaceScopeSchema3 = z66.enum(eventSurfaceScopeValues);
37859
+ var eventScheduleScopeSchema4 = z66.enum(eventScheduleScopeValues);
37860
+ var eventCombinedSourceSchema = z66.object(
37683
37861
  {
37684
- events: z65.array(publicEventSchema).nullable().optional(),
37685
- siteId: z65.string(),
37686
- apiBaseUrl: z65.string().optional(),
37862
+ events: z66.array(publicEventSchema).nullable().optional(),
37863
+ siteId: z66.string(),
37864
+ apiBaseUrl: z66.string().optional(),
37687
37865
  stage: previewStageSchema.optional(),
37688
37866
  listLayout: eventLayoutSchema.optional(),
37689
37867
  listColumns: columnOptionSchema.optional(),
37690
- eventsPerPage: z65.string().optional(),
37691
- compactEventsPerPage: z65.string().optional(),
37692
- loadMoreText: z65.string().optional(),
37868
+ eventsPerPage: z66.string().optional(),
37869
+ compactEventsPerPage: z66.string().optional(),
37870
+ loadMoreText: z66.string().optional(),
37693
37871
  startOfWeek: weekStartSchema.optional(),
37694
37872
  calendarTabViews: calendarTabViewsSchema.optional(),
37695
- showFilters: z65.boolean().nullable().optional(),
37873
+ showFilters: z66.boolean().nullable().optional(),
37696
37874
  showCategoryFilter: filterAutoShowSchema.optional(),
37697
- showVenueFilter: z65.boolean().nullable().optional(),
37698
- showStaffFilter: z65.boolean().nullable().optional(),
37875
+ showVenueFilter: z66.boolean().nullable().optional(),
37876
+ showStaffFilter: z66.boolean().nullable().optional(),
37699
37877
  eventKind: eventBlockKindSchema3.nullable().optional(),
37700
37878
  eventSurface: eventSurfaceScopeSchema3.nullable().optional(),
37701
- filterEventPresets: z65.union([z65.string(), z65.array(z65.string())]).nullable().optional(),
37879
+ filterEventPresets: z66.union([z66.string(), z66.array(z66.string())]).nullable().optional(),
37702
37880
  scheduleScope: eventScheduleScopeSchema4.nullable().optional(),
37703
- filterCategoryIds: z65.union([z65.string(), z65.array(z65.string())]).nullable().optional(),
37704
- filterStaffMemberId: z65.string().nullable().optional(),
37705
- filterVenueId: z65.string().nullable().optional(),
37706
- showVenue: z65.boolean().nullable().optional(),
37707
- showMap: z65.boolean().nullable().optional(),
37708
- showCapacity: z65.boolean().nullable().optional(),
37881
+ filterCategoryIds: z66.union([z66.string(), z66.array(z66.string())]).nullable().optional(),
37882
+ filterStaffMemberId: z66.string().nullable().optional(),
37883
+ filterVenueId: z66.string().nullable().optional(),
37884
+ showVenue: z66.boolean().nullable().optional(),
37885
+ showMap: z66.boolean().nullable().optional(),
37886
+ showCapacity: z66.boolean().nullable().optional(),
37709
37887
  buttonVariant: eventButtonVariantSchema.optional(),
37710
- buttonText: z65.string().optional(),
37711
- emptyMessage: z65.string().optional(),
37712
- className: z65.string().optional()
37888
+ buttonText: z66.string().optional(),
37889
+ emptyMessage: z66.string().optional(),
37890
+ className: z66.string().optional()
37713
37891
  }
37714
37892
  );
37715
- var eventCombinedDisplaySchema = z65.object({
37716
- kind: z65.literal("event-combined"),
37717
- className: z65.string().nullable(),
37718
- events: z65.array(publicEventSchema),
37893
+ var eventCombinedDisplaySchema = z66.object({
37894
+ kind: z66.literal("event-combined"),
37895
+ className: z66.string().nullable(),
37896
+ events: z66.array(publicEventSchema),
37719
37897
  listLayout: eventLayoutSchema,
37720
37898
  listColumns: columnOptionSchema,
37721
- eventsPerPage: z65.string(),
37722
- loadMoreText: z65.string(),
37899
+ eventsPerPage: z66.string(),
37900
+ loadMoreText: z66.string(),
37723
37901
  startOfWeek: weekStartSchema,
37724
37902
  calendarTabViews: calendarTabViewsSchema,
37725
- showFilters: z65.boolean(),
37903
+ showFilters: z66.boolean(),
37726
37904
  showCategoryFilter: filterAutoShowSchema,
37727
- showVenueFilter: z65.boolean(),
37728
- showStaffFilter: z65.boolean(),
37905
+ showVenueFilter: z66.boolean(),
37906
+ showStaffFilter: z66.boolean(),
37729
37907
  eventKind: eventBlockKindSchema3,
37730
37908
  eventSurface: eventSurfaceScopeSchema3,
37731
- filterEventPresets: z65.string().nullable(),
37909
+ filterEventPresets: z66.string().nullable(),
37732
37910
  scheduleScope: eventScheduleScopeSchema4,
37733
- filterCategoryIds: z65.string().nullable(),
37734
- filterStaffMemberId: z65.string().nullable(),
37735
- filterVenueId: z65.string().nullable(),
37736
- showVenue: z65.boolean(),
37737
- showMap: z65.boolean(),
37738
- showCapacity: z65.boolean(),
37911
+ filterCategoryIds: z66.string().nullable(),
37912
+ filterStaffMemberId: z66.string().nullable(),
37913
+ filterVenueId: z66.string().nullable(),
37914
+ showVenue: z66.boolean(),
37915
+ showMap: z66.boolean(),
37916
+ showCapacity: z66.boolean(),
37739
37917
  buttonVariant: eventButtonVariantSchema,
37740
- buttonText: z65.string(),
37741
- emptyMessage: z65.string()
37918
+ buttonText: z66.string(),
37919
+ emptyMessage: z66.string()
37742
37920
  });
37743
- var eventCombinedHydrationSchema = z65.object({
37744
- siteId: z65.string(),
37921
+ var eventCombinedHydrationSchema = z66.object({
37922
+ siteId: z66.string(),
37745
37923
  stage: previewStageSchema.optional(),
37746
- prefetchedEvents: z65.boolean(),
37924
+ prefetchedEvents: z66.boolean(),
37747
37925
  eventKind: eventBlockKindSchema3,
37748
37926
  eventSurface: eventSurfaceScopeSchema3,
37749
- filterEventPresets: z65.string().nullable(),
37927
+ filterEventPresets: z66.string().nullable(),
37750
37928
  scheduleScope: eventScheduleScopeSchema4
37751
37929
  });
37752
- var eventCombinedRenderSchema = z65.object({
37930
+ var eventCombinedRenderSchema = z66.object({
37753
37931
  display: eventCombinedDisplaySchema,
37754
37932
  hydration: eventCombinedHydrationSchema
37755
37933
  });
37756
37934
  var eventCombinedIslandMetaCodec = createZodCodec(
37757
- z65.object({
37758
- siteId: z65.string(),
37759
- apiBaseUrl: z65.string().optional(),
37935
+ z66.object({
37936
+ siteId: z66.string(),
37937
+ apiBaseUrl: z66.string().optional(),
37760
37938
  stage: previewStageSchema.optional()
37761
37939
  })
37762
37940
  );
@@ -37793,7 +37971,7 @@ function buildEventCombinedDisplay(source) {
37793
37971
  showMap: source.showMap ?? true,
37794
37972
  showCapacity: source.showCapacity ?? true,
37795
37973
  buttonVariant: source.buttonVariant ?? "primary",
37796
- buttonText: source.buttonText ?? "View event",
37974
+ buttonText: source.buttonText ?? "Book now",
37797
37975
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
37798
37976
  };
37799
37977
  }
@@ -37863,10 +38041,10 @@ function buildEventCombinedInteractiveIslandProps(props2) {
37863
38041
  }
37864
38042
 
37865
38043
  // ../blocks/src/system/runtime/nodes/events/shared/renderEventListItem.tsx
37866
- import { jsx as jsx33 } from "react/jsx-runtime";
38044
+ import { jsx as jsx34 } from "react/jsx-runtime";
37867
38045
  function renderEventListItem(event, display) {
37868
38046
  if (display.listLayout === "compact") {
37869
- return /* @__PURE__ */ jsx33(
38047
+ return /* @__PURE__ */ jsx34(
37870
38048
  EventCompactRow,
37871
38049
  {
37872
38050
  event,
@@ -37876,7 +38054,7 @@ function renderEventListItem(event, display) {
37876
38054
  event.occurrenceId || event.id
37877
38055
  );
37878
38056
  }
37879
- return /* @__PURE__ */ jsx33(
38057
+ return /* @__PURE__ */ jsx34(
37880
38058
  EventCard,
37881
38059
  {
37882
38060
  event,
@@ -37894,7 +38072,7 @@ function renderEventListItem(event, display) {
37894
38072
  }
37895
38073
 
37896
38074
  // ../blocks/src/system/runtime/nodes/events/EventCombined.server.tsx
37897
- import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
38075
+ import { jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
37898
38076
  var EventCombinedSSR = ({
37899
38077
  blockId,
37900
38078
  ...source
@@ -37903,16 +38081,16 @@ var EventCombinedSSR = ({
37903
38081
  const listDisplay = buildEventCombinedListingDisplay(render);
37904
38082
  const islandProps = buildEventCombinedInteractiveIslandProps(source);
37905
38083
  const ssrEmptyMessage = render.hydration.prefetchedEvents ? render.display.emptyMessage : listDisplay.loadingMessage;
37906
- return /* @__PURE__ */ jsxs20(
38084
+ return /* @__PURE__ */ jsxs21(
37907
38085
  "div",
37908
38086
  {
37909
38087
  className: `event-combined ${render.display.className || ""}`,
37910
38088
  "data-block": "event-combined",
37911
38089
  ...getIslandRootProps("event-combined", blockId),
37912
38090
  children: [
37913
- /* @__PURE__ */ jsx34(IslandPropsScript, { value: islandProps }),
37914
- /* @__PURE__ */ jsxs20("div", { className: "nav-tabs", role: "tablist", children: [
37915
- /* @__PURE__ */ jsx34(
38091
+ /* @__PURE__ */ jsx35(IslandPropsScript, { value: islandProps }),
38092
+ /* @__PURE__ */ jsxs21("div", { className: "nav-tabs", role: "tablist", children: [
38093
+ /* @__PURE__ */ jsx35(
37916
38094
  "button",
37917
38095
  {
37918
38096
  type: "button",
@@ -37922,7 +38100,7 @@ var EventCombinedSSR = ({
37922
38100
  children: "List"
37923
38101
  }
37924
38102
  ),
37925
- /* @__PURE__ */ jsx34(
38103
+ /* @__PURE__ */ jsx35(
37926
38104
  "button",
37927
38105
  {
37928
38106
  type: "button",
@@ -37933,17 +38111,17 @@ var EventCombinedSSR = ({
37933
38111
  }
37934
38112
  )
37935
38113
  ] }),
37936
- /* @__PURE__ */ jsx34("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx34(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx34("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
38114
+ /* @__PURE__ */ jsx35("div", { className: "event-combined-content", children: listDisplay.events.length === 0 ? /* @__PURE__ */ jsx35(EmptyState, { message: ssrEmptyMessage }) : /* @__PURE__ */ jsx35("div", { className: listDisplay.containerClass, children: listDisplay.events.map((event) => renderEventListItem(event, listDisplay)) }) })
37937
38115
  ]
37938
38116
  }
37939
38117
  );
37940
38118
  };
37941
38119
 
37942
38120
  // ../blocks/src/system/runtime/nodes/commerce/shared/view.tsx
37943
- import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
38121
+ import { Fragment as Fragment4, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
37944
38122
  function ProductBadgesView({ badges }) {
37945
38123
  if (badges.length === 0) return null;
37946
- return /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-wrap rb-gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx35(
38124
+ return /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-wrap rb-gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx36(
37947
38125
  "span",
37948
38126
  {
37949
38127
  className: "rb-inline-flex rb-items-center rb-rounded-full rb-border rb-px-3 rb-py-1 rb-text-xs",
@@ -37955,16 +38133,16 @@ function ProductBadgesView({ badges }) {
37955
38133
  function VariantSelectView(props2) {
37956
38134
  const { options, selectedVariantId, disabled = false, onChange } = props2;
37957
38135
  if (options.length === 0) return null;
37958
- return /* @__PURE__ */ jsxs21("label", { className: "rb-flex rb-flex-col rb-gap-1", children: [
37959
- /* @__PURE__ */ jsx35("span", { className: "rb-label", children: "Variant" }),
37960
- /* @__PURE__ */ jsx35(
38136
+ return /* @__PURE__ */ jsxs22("label", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38137
+ /* @__PURE__ */ jsx36("span", { className: "rb-label", children: "Variant" }),
38138
+ /* @__PURE__ */ jsx36(
37961
38139
  "select",
37962
38140
  {
37963
38141
  className: "form-input",
37964
38142
  value: selectedVariantId ?? "",
37965
38143
  disabled,
37966
38144
  onChange: onChange ? (event) => onChange(event.target.value || null) : void 0,
37967
- children: options.map((variant) => /* @__PURE__ */ jsxs21("option", { value: variant.id, children: [
38145
+ children: options.map((variant) => /* @__PURE__ */ jsxs22("option", { value: variant.id, children: [
37968
38146
  variant.label,
37969
38147
  " ",
37970
38148
  variant.soldOut ? "(Sold out)" : ""
@@ -37975,31 +38153,31 @@ function VariantSelectView(props2) {
37975
38153
  }
37976
38154
  function ProductCardView(props2) {
37977
38155
  const { display, layout, variantControl, actions, feedback } = props2;
37978
- return /* @__PURE__ */ jsxs21("article", { className: `rb-flex rb-gap-4 rb-rounded-2xl rb-border rb-p-4 ${layout === "list" ? "rb-flex-row" : "rb-flex-col"}`, children: [
37979
- display.image ? /* @__PURE__ */ jsx35("a", { href: display.path ?? void 0, className: "rb-block rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx35("img", { src: display.image.url, alt: display.image.alt ?? "", className: "rb-h-48 rb-w-full rb-object-cover" }) }) : null,
37980
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-1 rb-flex-col rb-gap-3", children: [
37981
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
37982
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-start rb-justify-between rb-gap-3", children: [
37983
- /* @__PURE__ */ jsxs21("div", { children: [
37984
- display.path ? /* @__PURE__ */ jsx35("a", { href: display.path, children: /* @__PURE__ */ jsx35("h3", { children: display.title }) }) : /* @__PURE__ */ jsx35("h3", { children: display.title }),
37985
- display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null
38156
+ return /* @__PURE__ */ jsxs22("article", { className: `rb-flex rb-gap-4 rb-rounded-2xl rb-border rb-p-4 ${layout === "list" ? "rb-flex-row" : "rb-flex-col"}`, children: [
38157
+ display.image ? /* @__PURE__ */ jsx36("a", { href: display.path ?? void 0, className: "rb-block rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx36("img", { src: display.image.url, alt: display.image.alt ?? "", className: "rb-h-48 rb-w-full rb-object-cover" }) }) : null,
38158
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-1 rb-flex-col rb-gap-3", children: [
38159
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38160
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-start rb-justify-between rb-gap-3", children: [
38161
+ /* @__PURE__ */ jsxs22("div", { children: [
38162
+ display.path ? /* @__PURE__ */ jsx36("a", { href: display.path, children: /* @__PURE__ */ jsx36("h3", { children: display.title }) }) : /* @__PURE__ */ jsx36("h3", { children: display.title }),
38163
+ display.summary ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.summary }) : null
37986
38164
  ] }),
37987
- display.priceLabel ? /* @__PURE__ */ jsx35("div", { className: "rb-text-right", children: /* @__PURE__ */ jsx35("strong", { children: display.priceLabel }) }) : null
38165
+ display.priceLabel ? /* @__PURE__ */ jsx36("div", { className: "rb-text-right", children: /* @__PURE__ */ jsx36("strong", { children: display.priceLabel }) }) : null
37988
38166
  ] }),
37989
- /* @__PURE__ */ jsx35(ProductBadgesView, { badges: display.badges })
38167
+ /* @__PURE__ */ jsx36(ProductBadgesView, { badges: display.badges })
37990
38168
  ] }),
37991
38169
  variantControl,
37992
- /* @__PURE__ */ jsx35("div", { className: "rb-mt-auto rb-flex rb-items-center rb-gap-3", children: actions }),
38170
+ /* @__PURE__ */ jsx36("div", { className: "rb-mt-auto rb-flex rb-items-center rb-gap-3", children: actions }),
37993
38171
  feedback,
37994
- /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: display.selectionLabel })
38172
+ /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: display.selectionLabel })
37995
38173
  ] })
37996
38174
  ] });
37997
38175
  }
37998
38176
  function ProductListSectionView(props2) {
37999
38177
  const { display, children } = props2;
38000
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--product-list ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38001
- display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
38002
- display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }) : /* @__PURE__ */ jsx35(
38178
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--product-list ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38179
+ display.heading ? /* @__PURE__ */ jsx36("h2", { children: display.heading }) : null,
38180
+ display.state === "empty" ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }) : /* @__PURE__ */ jsx36(
38003
38181
  "div",
38004
38182
  {
38005
38183
  className: `rb-grid rb-gap-4 ${display.layout === "list" ? "rb-grid-cols-1" : ""}`,
@@ -38012,22 +38190,22 @@ function ProductListSectionView(props2) {
38012
38190
  function ProductDetailView(props2) {
38013
38191
  const { display, gallery, variantControl, actions, feedback, body } = props2;
38014
38192
  if (display.state === "empty") {
38015
- return /* @__PURE__ */ jsx35("div", { className: `shop shop--product-detail ${display.className ?? ""}`.trim(), "data-block": "shop", children: /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }) });
38016
- }
38017
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--product-detail rb-grid rb-gap-6 rb-md-grid-cols-2 ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38018
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-col rb-gap-4", children: gallery }),
38019
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38020
- display.heading ? /* @__PURE__ */ jsx35("p", { className: "rb-label", children: display.heading }) : null,
38021
- /* @__PURE__ */ jsxs21("div", { children: [
38022
- /* @__PURE__ */ jsx35("h2", { children: display.title }),
38023
- /* @__PURE__ */ jsx35("div", { className: "rb-mt-2", children: /* @__PURE__ */ jsx35("strong", { children: display.priceLabel }) })
38193
+ return /* @__PURE__ */ jsx36("div", { className: `shop shop--product-detail ${display.className ?? ""}`.trim(), "data-block": "shop", children: /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }) });
38194
+ }
38195
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--product-detail rb-grid rb-gap-6 rb-md-grid-cols-2 ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38196
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-col rb-gap-4", children: gallery }),
38197
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38198
+ display.heading ? /* @__PURE__ */ jsx36("p", { className: "rb-label", children: display.heading }) : null,
38199
+ /* @__PURE__ */ jsxs22("div", { children: [
38200
+ /* @__PURE__ */ jsx36("h2", { children: display.title }),
38201
+ /* @__PURE__ */ jsx36("div", { className: "rb-mt-2", children: /* @__PURE__ */ jsx36("strong", { children: display.priceLabel }) })
38024
38202
  ] }),
38025
- /* @__PURE__ */ jsx35(ProductBadgesView, { badges: display.badges }),
38026
- display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null,
38203
+ /* @__PURE__ */ jsx36(ProductBadgesView, { badges: display.badges }),
38204
+ display.summary ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.summary }) : null,
38027
38205
  variantControl,
38028
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-center rb-gap-3", children: [
38206
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-gap-3", children: [
38029
38207
  actions,
38030
- display.categoryLabel ? /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: display.categoryLabel }) : null
38208
+ display.categoryLabel ? /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: display.categoryLabel }) : null
38031
38209
  ] }),
38032
38210
  feedback,
38033
38211
  body
@@ -38037,7 +38215,7 @@ function ProductDetailView(props2) {
38037
38215
  function ProductGalleryFrameView(props2) {
38038
38216
  const { gallery, renderCarousel } = props2;
38039
38217
  if (gallery.length === 0) return null;
38040
- const slides = gallery.map((image, index) => /* @__PURE__ */ jsx35("div", { className: "rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx35(
38218
+ const slides = gallery.map((image, index) => /* @__PURE__ */ jsx36("div", { className: "rb-overflow-hidden rb-rounded-xl rb-border", children: /* @__PURE__ */ jsx36(
38041
38219
  "img",
38042
38220
  {
38043
38221
  src: image.url,
@@ -38048,39 +38226,39 @@ function ProductGalleryFrameView(props2) {
38048
38226
  if (slides.length === 1) {
38049
38227
  return slides[0] ?? null;
38050
38228
  }
38051
- return /* @__PURE__ */ jsx35(Fragment4, { children: renderCarousel(slides) });
38229
+ return /* @__PURE__ */ jsx36(Fragment4, { children: renderCarousel(slides) });
38052
38230
  }
38053
38231
  function PassCardView(props2) {
38054
- return /* @__PURE__ */ jsxs21("article", { className: "shop__card shop__card--pass", children: [
38055
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-header", children: [
38056
- /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38057
- /* @__PURE__ */ jsx35("div", { className: "shop__card-price", children: props2.display.priceLabel })
38232
+ return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--pass", children: [
38233
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38234
+ /* @__PURE__ */ jsx36("h4", { className: "shop__card-name", children: props2.display.title }),
38235
+ /* @__PURE__ */ jsx36("div", { className: "shop__card-price", children: props2.display.priceLabel })
38058
38236
  ] }),
38059
- props2.display.description ? /* @__PURE__ */ jsx35("p", { className: "shop__card-description", children: props2.display.description }) : null,
38060
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-details", children: [
38061
- /* @__PURE__ */ jsx35("span", { className: "shop__card-credits", children: props2.display.creditsLabel }),
38062
- props2.display.perCreditLabel ? /* @__PURE__ */ jsxs21("span", { className: "shop__card-per-credit", children: [
38237
+ props2.display.description ? /* @__PURE__ */ jsx36("p", { className: "shop__card-description", children: props2.display.description }) : null,
38238
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-details", children: [
38239
+ /* @__PURE__ */ jsx36("span", { className: "shop__card-credits", children: props2.display.creditsLabel }),
38240
+ props2.display.perCreditLabel ? /* @__PURE__ */ jsxs22("span", { className: "shop__card-per-credit", children: [
38063
38241
  "(",
38064
38242
  props2.display.perCreditLabel,
38065
38243
  ")"
38066
38244
  ] }) : null,
38067
- props2.display.validityLabel ? /* @__PURE__ */ jsx35("span", { className: "shop__card-validity", children: props2.display.validityLabel }) : null
38245
+ props2.display.validityLabel ? /* @__PURE__ */ jsx36("span", { className: "shop__card-validity", children: props2.display.validityLabel }) : null
38068
38246
  ] }),
38069
38247
  props2.action,
38070
38248
  props2.feedback
38071
38249
  ] });
38072
38250
  }
38073
38251
  function MembershipCardView(props2) {
38074
- return /* @__PURE__ */ jsxs21("article", { className: "shop__card shop__card--membership", children: [
38075
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-header", children: [
38076
- /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38077
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-price", children: [
38252
+ return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--membership", children: [
38253
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38254
+ /* @__PURE__ */ jsx36("h4", { className: "shop__card-name", children: props2.display.title }),
38255
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-price", children: [
38078
38256
  props2.display.priceLabel,
38079
- /* @__PURE__ */ jsx35("span", { className: "shop__card-interval", children: props2.display.intervalLabel })
38257
+ /* @__PURE__ */ jsx36("span", { className: "shop__card-interval", children: props2.display.intervalLabel })
38080
38258
  ] })
38081
38259
  ] }),
38082
- props2.display.description ? /* @__PURE__ */ jsx35("p", { className: "shop__card-description", children: props2.display.description }) : null,
38083
- /* @__PURE__ */ jsx35("div", { className: "shop__card-details", children: /* @__PURE__ */ jsx35("span", { className: "shop__card-unlimited", children: "Unlimited classes" }) }),
38260
+ props2.display.description ? /* @__PURE__ */ jsx36("p", { className: "shop__card-description", children: props2.display.description }) : null,
38261
+ /* @__PURE__ */ jsx36("div", { className: "shop__card-details", children: /* @__PURE__ */ jsx36("span", { className: "shop__card-unlimited", children: "Unlimited classes" }) }),
38084
38262
  props2.action
38085
38263
  ] });
38086
38264
  }
@@ -38088,7 +38266,7 @@ function PassesMembershipsSectionView(props2) {
38088
38266
  const { display, beforeContent, passCards, membershipCards } = props2;
38089
38267
  const productsClass = `shop__products shop__products--${display.layout}`;
38090
38268
  const gridStyle = display.state === "ready" ? { "--shop-columns": display.columns } : void 0;
38091
- return /* @__PURE__ */ jsxs21(
38269
+ return /* @__PURE__ */ jsxs22(
38092
38270
  "div",
38093
38271
  {
38094
38272
  className: `shop ${display.state === "ready" ? `shop--${display.layout}` : "shop--empty"} ${display.className ?? ""}`.trim(),
@@ -38097,14 +38275,14 @@ function PassesMembershipsSectionView(props2) {
38097
38275
  style: gridStyle,
38098
38276
  children: [
38099
38277
  beforeContent,
38100
- display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "shop__empty-text", children: display.emptyMessage }) : null,
38101
- display.passes.length > 0 ? /* @__PURE__ */ jsxs21("section", { className: "shop__section shop__section--passes", children: [
38102
- /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.passesHeading }),
38103
- /* @__PURE__ */ jsx35("div", { className: productsClass, children: passCards })
38278
+ display.state === "empty" ? /* @__PURE__ */ jsx36("p", { className: "shop__empty-text", children: display.emptyMessage }) : null,
38279
+ display.passes.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--passes", children: [
38280
+ /* @__PURE__ */ jsx36("h3", { className: "shop__section-heading", children: display.passesHeading }),
38281
+ /* @__PURE__ */ jsx36("div", { className: productsClass, children: passCards })
38104
38282
  ] }) : null,
38105
- display.memberships.length > 0 ? /* @__PURE__ */ jsxs21("section", { className: "shop__section shop__section--memberships", children: [
38106
- /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.membershipsHeading }),
38107
- /* @__PURE__ */ jsx35("div", { className: productsClass, children: membershipCards })
38283
+ display.memberships.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--memberships", children: [
38284
+ /* @__PURE__ */ jsx36("h3", { className: "shop__section-heading", children: display.membershipsHeading }),
38285
+ /* @__PURE__ */ jsx36("div", { className: productsClass, children: membershipCards })
38108
38286
  ] }) : null
38109
38287
  ]
38110
38288
  }
@@ -38112,42 +38290,42 @@ function PassesMembershipsSectionView(props2) {
38112
38290
  }
38113
38291
  function CartShellView(props2) {
38114
38292
  const { display, renderControls, footerActions } = props2;
38115
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--cart ${display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-cart", children: [
38116
- display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
38117
- display.state === "empty" ? /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38118
- /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }),
38119
- display.supportText ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.supportText }) : null
38120
- ] }) : /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38121
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-col rb-gap-3", children: display.items.map((item) => /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4 rb-rounded-xl rb-border rb-p-4", children: [
38122
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38123
- /* @__PURE__ */ jsx35("strong", { children: item.title }),
38124
- /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: item.priceLabel })
38293
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--cart ${display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-cart", children: [
38294
+ display.heading ? /* @__PURE__ */ jsx36("h2", { children: display.heading }) : null,
38295
+ display.state === "empty" ? /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38296
+ /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.emptyMessage }),
38297
+ display.supportText ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: display.supportText }) : null
38298
+ ] }) : /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38299
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-flex-col rb-gap-3", children: display.items.map((item) => /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4 rb-rounded-xl rb-border rb-p-4", children: [
38300
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38301
+ /* @__PURE__ */ jsx36("strong", { children: item.title }),
38302
+ /* @__PURE__ */ jsx36("span", { className: "rb-caption status-muted", children: item.priceLabel })
38125
38303
  ] }),
38126
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-items-center rb-gap-2", children: renderControls ? renderControls(item) : null })
38304
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-items-center rb-gap-2", children: renderControls ? renderControls(item) : null })
38127
38305
  ] }, item.key)) }),
38128
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4", children: [
38129
- /* @__PURE__ */ jsxs21("div", { children: [
38130
- /* @__PURE__ */ jsx35("strong", { children: "Subtotal" }),
38131
- /* @__PURE__ */ jsx35("div", { children: display.subtotalLabel })
38306
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4", children: [
38307
+ /* @__PURE__ */ jsxs22("div", { children: [
38308
+ /* @__PURE__ */ jsx36("strong", { children: "Subtotal" }),
38309
+ /* @__PURE__ */ jsx36("div", { children: display.subtotalLabel })
38132
38310
  ] }),
38133
- /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-gap-2", children: footerActions })
38311
+ /* @__PURE__ */ jsx36("div", { className: "rb-flex rb-gap-2", children: footerActions })
38134
38312
  ] })
38135
38313
  ] })
38136
38314
  ] });
38137
38315
  }
38138
38316
  function CheckoutShellView(props2) {
38139
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--checkout ${props2.display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-checkout", children: [
38140
- props2.display.heading ? /* @__PURE__ */ jsx35("h2", { children: props2.display.heading }) : null,
38317
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--checkout ${props2.display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-checkout", children: [
38318
+ props2.display.heading ? /* @__PURE__ */ jsx36("h2", { children: props2.display.heading }) : null,
38141
38319
  props2.notice,
38142
- props2.display.state === "ready" ? props2.body : /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: props2.display.message })
38320
+ props2.display.state === "ready" ? props2.body : /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: props2.display.message })
38143
38321
  ] });
38144
38322
  }
38145
38323
 
38146
38324
  // ../blocks/src/system/runtime/nodes/shop-commerce.server.tsx
38147
- import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
38325
+ import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
38148
38326
  function renderServerPendingAction(label, soldOut) {
38149
- return /* @__PURE__ */ jsxs22(Fragment5, { children: [
38150
- /* @__PURE__ */ jsx36(
38327
+ return /* @__PURE__ */ jsxs23(Fragment5, { children: [
38328
+ /* @__PURE__ */ jsx37(
38151
38329
  "button",
38152
38330
  {
38153
38331
  type: "button",
@@ -38157,16 +38335,16 @@ function renderServerPendingAction(label, soldOut) {
38157
38335
  children: soldOut ? "Sold out" : label
38158
38336
  }
38159
38337
  ),
38160
- !soldOut ? /* @__PURE__ */ jsx36("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
38338
+ !soldOut ? /* @__PURE__ */ jsx37("p", { className: "rb-caption status-muted", children: "Cart actions become interactive after page load." }) : null
38161
38339
  ] });
38162
38340
  }
38163
38341
  function ProductListServerContent(props2) {
38164
- return /* @__PURE__ */ jsx36(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx36(
38342
+ return /* @__PURE__ */ jsx37(ProductListSectionView, { display: props2.render.display, children: props2.render.display.cards.map((card) => /* @__PURE__ */ jsx37(
38165
38343
  ProductCardView,
38166
38344
  {
38167
38345
  display: card,
38168
38346
  layout: props2.render.display.layout,
38169
- variantControl: /* @__PURE__ */ jsx36(
38347
+ variantControl: /* @__PURE__ */ jsx37(
38170
38348
  VariantSelectView,
38171
38349
  {
38172
38350
  options: card.variantOptions,
@@ -38174,9 +38352,9 @@ function ProductListServerContent(props2) {
38174
38352
  disabled: true
38175
38353
  }
38176
38354
  ),
38177
- actions: /* @__PURE__ */ jsxs22(Fragment5, { children: [
38355
+ actions: /* @__PURE__ */ jsxs23(Fragment5, { children: [
38178
38356
  renderServerPendingAction(card.actionLabel, card.soldOut),
38179
- card.path ? /* @__PURE__ */ jsx36(
38357
+ card.path ? /* @__PURE__ */ jsx37(
38180
38358
  "a",
38181
38359
  {
38182
38360
  href: card.path,
@@ -38190,18 +38368,18 @@ function ProductListServerContent(props2) {
38190
38368
  )) });
38191
38369
  }
38192
38370
  function ProductDetailServerContent(props2) {
38193
- return /* @__PURE__ */ jsx36(
38371
+ return /* @__PURE__ */ jsx37(
38194
38372
  ProductDetailView,
38195
38373
  {
38196
38374
  display: props2.render.display,
38197
- gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx36(
38375
+ gallery: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx37(
38198
38376
  ProductGalleryFrameView,
38199
38377
  {
38200
38378
  gallery: props2.render.display.gallery,
38201
- renderCarousel: (slides) => /* @__PURE__ */ jsx36(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
38379
+ renderCarousel: (slides) => /* @__PURE__ */ jsx37(CarouselNodeSSR, { slidesToShow: 1, showDots: true, showControls: true, className: "rb-w-full", children: slides })
38202
38380
  }
38203
38381
  ) : null,
38204
- variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx36(
38382
+ variantControl: props2.render.display.state === "ready" ? /* @__PURE__ */ jsx37(
38205
38383
  VariantSelectView,
38206
38384
  {
38207
38385
  options: props2.render.display.variantOptions,
@@ -38213,19 +38391,19 @@ function ProductDetailServerContent(props2) {
38213
38391
  props2.render.display.actionLabel,
38214
38392
  props2.render.display.soldOut
38215
38393
  ) : null,
38216
- body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx36("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx36(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
38394
+ body: props2.render.display.state === "ready" && props2.render.display.body ? /* @__PURE__ */ jsx37("div", { className: "rb-prose rb-max-w-none", children: /* @__PURE__ */ jsx37(RichText, { doc: coerceRichTextDoc(props2.render.display.body) }) }) : null
38217
38395
  }
38218
38396
  );
38219
38397
  }
38220
38398
  function CartServerContent(props2) {
38221
- return /* @__PURE__ */ jsx36(CartShellView, { display: props2.render.display });
38399
+ return /* @__PURE__ */ jsx37(CartShellView, { display: props2.render.display });
38222
38400
  }
38223
38401
  function CheckoutServerContent(props2) {
38224
- return /* @__PURE__ */ jsx36(CheckoutShellView, { display: props2.render.display });
38402
+ return /* @__PURE__ */ jsx37(CheckoutShellView, { display: props2.render.display });
38225
38403
  }
38226
38404
 
38227
38405
  // ../blocks/src/system/runtime/nodes/cart.server.tsx
38228
- import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
38406
+ import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
38229
38407
  function CartSSR({
38230
38408
  blockId,
38231
38409
  siteId,
@@ -38240,7 +38418,7 @@ function CartSSR({
38240
38418
  stage,
38241
38419
  ...rest
38242
38420
  });
38243
- return /* @__PURE__ */ jsxs23(
38421
+ return /* @__PURE__ */ jsxs24(
38244
38422
  "div",
38245
38423
  {
38246
38424
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -38250,8 +38428,8 @@ function CartSSR({
38250
38428
  "data-site-id": siteId ?? void 0,
38251
38429
  ...getIslandRootProps("cart", blockId),
38252
38430
  children: [
38253
- /* @__PURE__ */ jsx37(IslandPropsScript, { value: islandProps }),
38254
- /* @__PURE__ */ jsx37(CartServerContent, { render: islandProps.render }),
38431
+ /* @__PURE__ */ jsx38(IslandPropsScript, { value: islandProps }),
38432
+ /* @__PURE__ */ jsx38(CartServerContent, { render: islandProps.render }),
38255
38433
  children
38256
38434
  ]
38257
38435
  }
@@ -38260,7 +38438,7 @@ function CartSSR({
38260
38438
  var cart_server_default = CartSSR;
38261
38439
 
38262
38440
  // ../blocks/src/system/runtime/nodes/checkout.server.tsx
38263
- import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
38441
+ import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
38264
38442
  function CheckoutSSR({
38265
38443
  blockId,
38266
38444
  siteId,
@@ -38275,7 +38453,7 @@ function CheckoutSSR({
38275
38453
  stage,
38276
38454
  ...rest
38277
38455
  });
38278
- return /* @__PURE__ */ jsxs24(
38456
+ return /* @__PURE__ */ jsxs25(
38279
38457
  "div",
38280
38458
  {
38281
38459
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -38285,8 +38463,8 @@ function CheckoutSSR({
38285
38463
  "data-site-id": siteId ?? void 0,
38286
38464
  ...getIslandRootProps("checkout", blockId),
38287
38465
  children: [
38288
- /* @__PURE__ */ jsx38(IslandPropsScript, { value: islandProps }),
38289
- /* @__PURE__ */ jsx38(CheckoutServerContent, { render: islandProps.render }),
38466
+ /* @__PURE__ */ jsx39(IslandPropsScript, { value: islandProps }),
38467
+ /* @__PURE__ */ jsx39(CheckoutServerContent, { render: islandProps.render }),
38290
38468
  children
38291
38469
  ]
38292
38470
  }
@@ -38295,7 +38473,7 @@ function CheckoutSSR({
38295
38473
  var checkout_server_default = CheckoutSSR;
38296
38474
 
38297
38475
  // ../blocks/src/system/runtime/nodes/course-registration.server.tsx
38298
- import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
38476
+ import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
38299
38477
  function CourseRegistrationSSR({
38300
38478
  blockId,
38301
38479
  siteId,
@@ -38336,15 +38514,15 @@ function CourseRegistrationSSR({
38336
38514
  buttonVariant,
38337
38515
  stage
38338
38516
  });
38339
- return /* @__PURE__ */ jsxs25(
38517
+ return /* @__PURE__ */ jsxs26(
38340
38518
  "div",
38341
38519
  {
38342
38520
  className: `course-registration ${className ?? ""}`.trim(),
38343
38521
  "data-block": "course-registration",
38344
38522
  ...getIslandRootProps("course-registration", blockId),
38345
38523
  children: [
38346
- /* @__PURE__ */ jsx39(IslandPropsScript, { value: islandProps }),
38347
- /* @__PURE__ */ jsx39("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx39("strong", { children: islandProps.render.display.summaryButtonText }) }),
38524
+ /* @__PURE__ */ jsx40(IslandPropsScript, { value: islandProps }),
38525
+ /* @__PURE__ */ jsx40("div", { className: "course-registration__summary", children: /* @__PURE__ */ jsx40("strong", { children: islandProps.render.display.summaryButtonText }) }),
38348
38526
  children
38349
38527
  ]
38350
38528
  }
@@ -38353,14 +38531,14 @@ function CourseRegistrationSSR({
38353
38531
  var course_registration_server_default = CourseRegistrationSSR;
38354
38532
 
38355
38533
  // ../blocks/src/system/runtime/nodes/gifting.server.tsx
38356
- import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
38534
+ import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
38357
38535
  function GiftingSSR({ blockId, ...rest }) {
38358
38536
  const islandProps = buildGiftingInteractiveIslandProps(rest);
38359
38537
  const offers = islandProps.render.hydration.offers;
38360
38538
  const hasOffers = Boolean(
38361
38539
  (offers?.giftCards.length ?? 0) > 0 || (offers?.vouchers.length ?? 0) > 0
38362
38540
  );
38363
- return /* @__PURE__ */ jsxs26(
38541
+ return /* @__PURE__ */ jsxs27(
38364
38542
  "section",
38365
38543
  {
38366
38544
  className: rest.className ?? void 0,
@@ -38370,8 +38548,8 @@ function GiftingSSR({ blockId, ...rest }) {
38370
38548
  },
38371
38549
  ...getIslandRootProps("gifting", blockId),
38372
38550
  children: [
38373
- /* @__PURE__ */ jsx40(IslandPropsScript, { value: islandProps }),
38374
- /* @__PURE__ */ jsxs26(
38551
+ /* @__PURE__ */ jsx41(IslandPropsScript, { value: islandProps }),
38552
+ /* @__PURE__ */ jsxs27(
38375
38553
  "div",
38376
38554
  {
38377
38555
  className: "rb-grid",
@@ -38379,14 +38557,14 @@ function GiftingSSR({ blockId, ...rest }) {
38379
38557
  gap: "1.5rem"
38380
38558
  },
38381
38559
  children: [
38382
- /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
38383
- /* @__PURE__ */ jsx40("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
38384
- islandProps.render.display.intro ? /* @__PURE__ */ jsx40("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
38560
+ /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
38561
+ /* @__PURE__ */ jsx41("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
38562
+ islandProps.render.display.intro ? /* @__PURE__ */ jsx41("p", { style: { margin: 0, color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: islandProps.render.display.intro }) : null
38385
38563
  ] }),
38386
- hasOffers ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
38387
- (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38388
- /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
38389
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs26(
38564
+ hasOffers ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
38565
+ (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38566
+ /* @__PURE__ */ jsx41("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
38567
+ /* @__PURE__ */ jsx41("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs27(
38390
38568
  "article",
38391
38569
  {
38392
38570
  style: {
@@ -38396,16 +38574,16 @@ function GiftingSSR({ blockId, ...rest }) {
38396
38574
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
38397
38575
  },
38398
38576
  children: [
38399
- /* @__PURE__ */ jsx40("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38400
- offer.description ? /* @__PURE__ */ jsx40("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38577
+ /* @__PURE__ */ jsx41("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38578
+ offer.description ? /* @__PURE__ */ jsx41("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38401
38579
  ]
38402
38580
  },
38403
38581
  offer.id
38404
38582
  )) })
38405
38583
  ] }) : null,
38406
- (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38407
- /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
38408
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs26(
38584
+ (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38585
+ /* @__PURE__ */ jsx41("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
38586
+ /* @__PURE__ */ jsx41("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs27(
38409
38587
  "article",
38410
38588
  {
38411
38589
  style: {
@@ -38415,14 +38593,14 @@ function GiftingSSR({ blockId, ...rest }) {
38415
38593
  background: "rgb(var(--tb-surface, 255 255 255) / 0.92)"
38416
38594
  },
38417
38595
  children: [
38418
- /* @__PURE__ */ jsx40("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38419
- offer.description ? /* @__PURE__ */ jsx40("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38596
+ /* @__PURE__ */ jsx41("h4", { style: { margin: 0, fontSize: "1.05rem", fontWeight: 700 }, children: offer.title }),
38597
+ offer.description ? /* @__PURE__ */ jsx41("p", { style: { margin: "0.5rem 0 0", color: "rgb(var(--tb-text, 17 24 39) / 0.72)" }, children: offer.description }) : null
38420
38598
  ]
38421
38599
  },
38422
38600
  offer.id
38423
38601
  )) })
38424
38602
  ] }) : null
38425
- ] }) : /* @__PURE__ */ jsx40("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
38603
+ ] }) : /* @__PURE__ */ jsx41("p", { style: { margin: 0 }, children: islandProps.render.display.emptyStateText })
38426
38604
  ]
38427
38605
  }
38428
38606
  )
@@ -38433,12 +38611,12 @@ function GiftingSSR({ blockId, ...rest }) {
38433
38611
  var gifting_server_default = GiftingSSR;
38434
38612
 
38435
38613
  // ../blocks/src/system/runtime/nodes/events/EventListing.view.tsx
38436
- import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
38614
+ import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
38437
38615
  function EventListingFrameView(props2) {
38438
38616
  const { display, filters, emptyState: emptyState4, footer, renderEventCard: renderEventCard2 } = props2;
38439
- return /* @__PURE__ */ jsxs27("div", { className: `event-listing ${display.className ?? ""}`, "data-block": "event-listing", children: [
38617
+ return /* @__PURE__ */ jsxs28("div", { className: `event-listing ${display.className ?? ""}`, "data-block": "event-listing", children: [
38440
38618
  filters,
38441
- display.state === "loading" ? /* @__PURE__ */ jsx41(EmptyState, { message: display.loadingMessage }) : display.state === "empty" ? emptyState4 ?? /* @__PURE__ */ jsx41(EmptyState, { message: display.emptyMessage }) : /* @__PURE__ */ jsx41("div", { className: display.containerClass, children: display.events.map((event) => renderEventCard2(event)) }),
38619
+ display.state === "loading" ? /* @__PURE__ */ jsx42(EmptyState, { message: display.loadingMessage }) : display.state === "empty" ? emptyState4 ?? /* @__PURE__ */ jsx42(EmptyState, { message: display.emptyMessage }) : /* @__PURE__ */ jsx42("div", { className: display.containerClass, children: display.events.map((event) => renderEventCard2(event)) }),
38442
38620
  footer
38443
38621
  ] });
38444
38622
  }
@@ -38515,7 +38693,7 @@ function formatShortDayLabel(date) {
38515
38693
  }
38516
38694
 
38517
38695
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.server.tsx
38518
- import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
38696
+ import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
38519
38697
  function assertNeverDisplayMode(value) {
38520
38698
  throw new Error(`Unsupported event-calendar displayMode: ${String(value)}`);
38521
38699
  }
@@ -38527,9 +38705,9 @@ function renderEventCard(event, display) {
38527
38705
  }
38528
38706
  function renderCombinedSsr(display, prefetchedEvents) {
38529
38707
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents, "event-combined-content");
38530
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
38531
- /* @__PURE__ */ jsxs28("div", { className: "nav-tabs", role: "tablist", children: [
38532
- /* @__PURE__ */ jsx42(
38708
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
38709
+ /* @__PURE__ */ jsxs29("div", { className: "nav-tabs", role: "tablist", children: [
38710
+ /* @__PURE__ */ jsx43(
38533
38711
  "button",
38534
38712
  {
38535
38713
  type: "button",
@@ -38539,7 +38717,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38539
38717
  children: "List"
38540
38718
  }
38541
38719
  ),
38542
- /* @__PURE__ */ jsx42(
38720
+ /* @__PURE__ */ jsx43(
38543
38721
  "button",
38544
38722
  {
38545
38723
  type: "button",
@@ -38550,7 +38728,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38550
38728
  }
38551
38729
  )
38552
38730
  ] }),
38553
- /* @__PURE__ */ jsx42(
38731
+ /* @__PURE__ */ jsx43(
38554
38732
  EventListingFrameView,
38555
38733
  {
38556
38734
  display: listDisplay,
@@ -38561,7 +38739,7 @@ function renderCombinedSsr(display, prefetchedEvents) {
38561
38739
  }
38562
38740
  function renderListSsr(display, prefetchedEvents) {
38563
38741
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents);
38564
- return /* @__PURE__ */ jsx42(
38742
+ return /* @__PURE__ */ jsx43(
38565
38743
  EventListingFrameView,
38566
38744
  {
38567
38745
  display: listDisplay,
@@ -38576,30 +38754,30 @@ function renderCalendarGrid(display) {
38576
38754
  const eventsByDate = groupEventsByDate([...display.events]);
38577
38755
  const dayNames = getOrderedDayNames(display.startOfWeek);
38578
38756
  const headerTitle = formatCalendarTitle(viewDate, calendarView, calendarDays);
38579
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
38580
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-header", children: [
38581
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-nav", children: [
38582
- /* @__PURE__ */ jsx42(
38757
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
38758
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38759
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38760
+ /* @__PURE__ */ jsx43(
38583
38761
  "button",
38584
38762
  {
38585
38763
  type: "button",
38586
38764
  className: "event-calendar-nav-btn",
38587
38765
  "aria-label": calendarView === "week" ? "Previous week" : "Previous month",
38588
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38766
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38589
38767
  }
38590
38768
  ),
38591
- /* @__PURE__ */ jsx42("h3", { className: "event-calendar-title", children: headerTitle }),
38592
- /* @__PURE__ */ jsx42(
38769
+ /* @__PURE__ */ jsx43("h3", { className: "event-calendar-title", children: headerTitle }),
38770
+ /* @__PURE__ */ jsx43(
38593
38771
  "button",
38594
38772
  {
38595
38773
  type: "button",
38596
38774
  className: "event-calendar-nav-btn",
38597
38775
  "aria-label": calendarView === "week" ? "Next week" : "Next month",
38598
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38776
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38599
38777
  }
38600
38778
  )
38601
38779
  ] }),
38602
- /* @__PURE__ */ jsx42(
38780
+ /* @__PURE__ */ jsx43(
38603
38781
  "button",
38604
38782
  {
38605
38783
  type: "button",
@@ -38611,9 +38789,9 @@ function renderCalendarGrid(display) {
38611
38789
  }
38612
38790
  )
38613
38791
  ] }),
38614
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-container", children: [
38615
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-header", children: day }, day)) }),
38616
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
38792
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-container", children: [
38793
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-header", children: day }, day)) }),
38794
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
38617
38795
  const dateKey = formatDateKey2(date);
38618
38796
  const dayEvents = eventsByDate.get(dateKey) || [];
38619
38797
  const isCurrentMonth = date.getMonth() === viewDate.getMonth();
@@ -38623,24 +38801,24 @@ function renderCalendarGrid(display) {
38623
38801
  !isCurrentMonth && "event-calendar-day--other-month",
38624
38802
  today && "event-calendar-day--today"
38625
38803
  );
38626
- return /* @__PURE__ */ jsxs28("div", { className: dayClasses, children: [
38627
- /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-number", children: date.getDate() }),
38628
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-events", children: [
38629
- dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs28(
38804
+ return /* @__PURE__ */ jsxs29("div", { className: dayClasses, children: [
38805
+ /* @__PURE__ */ jsx43("div", { className: "event-calendar-day-number", children: date.getDate() }),
38806
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-events", children: [
38807
+ dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs29(
38630
38808
  "a",
38631
38809
  {
38632
38810
  href: event.path,
38633
38811
  className: "event-calendar-event",
38634
38812
  title: `${event.title} at ${formatTime(event.startsAt, { timeZone: getEventTimeZone(event) })}`,
38635
38813
  children: [
38636
- /* @__PURE__ */ jsx42("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
38814
+ /* @__PURE__ */ jsx43("span", { className: "event-calendar-event-time", children: formatTime(event.startsAt, { timeZone: getEventTimeZone(event) }) }),
38637
38815
  " ",
38638
- /* @__PURE__ */ jsx42("span", { className: "event-calendar-event-title", children: event.title })
38816
+ /* @__PURE__ */ jsx43("span", { className: "event-calendar-event-title", children: event.title })
38639
38817
  ]
38640
38818
  },
38641
38819
  event.occurrenceId || event.id
38642
38820
  )),
38643
- dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */ jsxs28("div", { className: "event-calendar-more", children: [
38821
+ dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */ jsxs29("div", { className: "event-calendar-more", children: [
38644
38822
  "+",
38645
38823
  dayEvents.length - MAX_EVENTS_PER_DAY,
38646
38824
  " more"
@@ -38649,7 +38827,7 @@ function renderCalendarGrid(display) {
38649
38827
  ] }, dateKey);
38650
38828
  }) })
38651
38829
  ] }),
38652
- display.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
38830
+ display.events.length === 0 ? /* @__PURE__ */ jsx43("p", { className: "event-calendar-empty", children: display.emptyMessage }) : null
38653
38831
  ] });
38654
38832
  }
38655
38833
  function renderTimetableSsr(display) {
@@ -38662,30 +38840,30 @@ function renderTimetableSsr(display) {
38662
38840
  const calendarDays = getWeekCalendarDays(viewDate, display.startOfWeek);
38663
38841
  const headerTitle = formatCalendarTitle(viewDate, "week", calendarDays);
38664
38842
  const selectedDayKey = model.days.find((day) => day.isToday)?.dateKey ?? model.days[0]?.dateKey ?? "";
38665
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
38666
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-header", children: [
38667
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-nav", children: [
38668
- /* @__PURE__ */ jsx42(
38843
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
38844
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38845
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38846
+ /* @__PURE__ */ jsx43(
38669
38847
  "button",
38670
38848
  {
38671
38849
  type: "button",
38672
38850
  className: "event-calendar-nav-btn",
38673
38851
  "aria-label": "Previous week",
38674
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38852
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 19l-7-7 7-7" }) })
38675
38853
  }
38676
38854
  ),
38677
- /* @__PURE__ */ jsx42("h3", { className: "event-calendar-title", children: headerTitle }),
38678
- /* @__PURE__ */ jsx42(
38855
+ /* @__PURE__ */ jsx43("h3", { className: "event-calendar-title", children: headerTitle }),
38856
+ /* @__PURE__ */ jsx43(
38679
38857
  "button",
38680
38858
  {
38681
38859
  type: "button",
38682
38860
  className: "event-calendar-nav-btn",
38683
38861
  "aria-label": "Next week",
38684
- children: /* @__PURE__ */ jsx42("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx42("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38862
+ children: /* @__PURE__ */ jsx43("svg", { width: "20", height: "20", fill: "none", stroke: "currentColor", strokeWidth: 2, viewBox: "0 0 24 24", children: /* @__PURE__ */ jsx43("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M9 5l7 7-7 7" }) })
38685
38863
  }
38686
38864
  )
38687
38865
  ] }),
38688
- /* @__PURE__ */ jsx42(
38866
+ /* @__PURE__ */ jsx43(
38689
38867
  "button",
38690
38868
  {
38691
38869
  type: "button",
@@ -38697,8 +38875,8 @@ function renderTimetableSsr(display) {
38697
38875
  }
38698
38876
  )
38699
38877
  ] }),
38700
- /* @__PURE__ */ jsxs28("div", { className: "event-timetable", children: [
38701
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx42(
38878
+ /* @__PURE__ */ jsxs29("div", { className: "event-timetable", children: [
38879
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx43(
38702
38880
  "button",
38703
38881
  {
38704
38882
  type: "button",
@@ -38710,10 +38888,10 @@ function renderTimetableSsr(display) {
38710
38888
  },
38711
38889
  day.dateKey
38712
38890
  )) }),
38713
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs28("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38714
- /* @__PURE__ */ jsxs28("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
38715
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-heading" }),
38716
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx42(
38891
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs29("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38892
+ /* @__PURE__ */ jsxs29("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
38893
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-day-heading" }),
38894
+ /* @__PURE__ */ jsx43("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx43(
38717
38895
  "div",
38718
38896
  {
38719
38897
  className: "event-timetable-time-label",
@@ -38723,7 +38901,7 @@ function renderTimetableSsr(display) {
38723
38901
  hour
38724
38902
  )) })
38725
38903
  ] }),
38726
- model.days.map((day) => /* @__PURE__ */ jsxs28(
38904
+ model.days.map((day) => /* @__PURE__ */ jsxs29(
38727
38905
  "section",
38728
38906
  {
38729
38907
  className: clsx_default(
@@ -38732,17 +38910,17 @@ function renderTimetableSsr(display) {
38732
38910
  ),
38733
38911
  "data-selected": day.dateKey === selectedDayKey ? "true" : "false",
38734
38912
  children: [
38735
- /* @__PURE__ */ jsxs28("h4", { className: "event-timetable-day-heading", children: [
38913
+ /* @__PURE__ */ jsxs29("h4", { className: "event-timetable-day-heading", children: [
38736
38914
  day.label,
38737
- day.isToday ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-today-badge", children: "Today" }) : null
38915
+ day.isToday ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-today-badge", children: "Today" }) : null
38738
38916
  ] }),
38739
- /* @__PURE__ */ jsxs28(
38917
+ /* @__PURE__ */ jsxs29(
38740
38918
  "div",
38741
38919
  {
38742
38920
  className: "event-timetable-day-body",
38743
38921
  style: { "--event-timetable-range-minutes": String(model.rangeMinutes) },
38744
38922
  children: [
38745
- model.hourTicks.map((hour) => /* @__PURE__ */ jsx42(
38923
+ model.hourTicks.map((hour) => /* @__PURE__ */ jsx43(
38746
38924
  "div",
38747
38925
  {
38748
38926
  className: "event-timetable-hour-line",
@@ -38751,7 +38929,7 @@ function renderTimetableSsr(display) {
38751
38929
  },
38752
38930
  hour
38753
38931
  )),
38754
- day.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs28(
38932
+ day.events.length === 0 ? /* @__PURE__ */ jsx43("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs29(
38755
38933
  "a",
38756
38934
  {
38757
38935
  href: cell.event.path,
@@ -38765,11 +38943,11 @@ function renderTimetableSsr(display) {
38765
38943
  borderColor: cell.categoryColor
38766
38944
  },
38767
38945
  children: [
38768
- /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
38769
- /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-title", children: cell.event.title }),
38770
- cell.teacherLine ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
38771
- cell.event.venue ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
38772
- display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx42(
38946
+ /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-time", children: cell.timeLabel }),
38947
+ /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-title", children: cell.event.title }),
38948
+ cell.teacherLine ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-teacher", children: cell.teacherLine }) : null,
38949
+ cell.event.venue ? /* @__PURE__ */ jsx43("span", { className: "event-timetable-event-meta", children: cell.event.venue.name }) : null,
38950
+ display.showCapacity && cell.capacityLabel ? /* @__PURE__ */ jsx43(
38773
38951
  "span",
38774
38952
  {
38775
38953
  className: clsx_default(
@@ -38791,7 +38969,7 @@ function renderTimetableSsr(display) {
38791
38969
  day.dateKey
38792
38970
  ))
38793
38971
  ] }) }),
38794
- !model.hasEvents ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
38972
+ !model.hasEvents ? /* @__PURE__ */ jsx43("p", { className: "event-timetable-empty", children: display.emptyMessage }) : null
38795
38973
  ] })
38796
38974
  ] });
38797
38975
  }
@@ -38828,20 +39006,20 @@ var EventCalendarSSR = (props2) => {
38828
39006
  default:
38829
39007
  content = assertNeverDisplayMode(display.displayMode);
38830
39008
  }
38831
- return /* @__PURE__ */ jsxs28("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
38832
- /* @__PURE__ */ jsx42(IslandPropsScript, { value: islandProps }),
39009
+ return /* @__PURE__ */ jsxs29("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
39010
+ /* @__PURE__ */ jsx43(IslandPropsScript, { value: islandProps }),
38833
39011
  content
38834
39012
  ] });
38835
39013
  };
38836
39014
 
38837
39015
  // ../blocks/src/system/runtime/nodes/events/EventListing.server.tsx
38838
- import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
39016
+ import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
38839
39017
  var EventListingSSR = (props2) => {
38840
39018
  const islandProps = buildEventListingInteractiveIslandProps(props2);
38841
39019
  const display = islandProps.render.display;
38842
- return /* @__PURE__ */ jsxs29("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
38843
- /* @__PURE__ */ jsx43(IslandPropsScript, { value: islandProps }),
38844
- /* @__PURE__ */ jsx43(
39020
+ return /* @__PURE__ */ jsxs30("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
39021
+ /* @__PURE__ */ jsx44(IslandPropsScript, { value: islandProps }),
39022
+ /* @__PURE__ */ jsx44(
38845
39023
  EventListingFrameView,
38846
39024
  {
38847
39025
  display,
@@ -38852,7 +39030,7 @@ var EventListingSSR = (props2) => {
38852
39030
  };
38853
39031
 
38854
39032
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
38855
- import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
39033
+ import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
38856
39034
  function EventRegistrationSSR({
38857
39035
  blockId,
38858
39036
  siteId,
@@ -38893,14 +39071,14 @@ function EventRegistrationSSR({
38893
39071
  stage,
38894
39072
  supportEmail
38895
39073
  });
38896
- return /* @__PURE__ */ jsxs30(
39074
+ return /* @__PURE__ */ jsxs31(
38897
39075
  "div",
38898
39076
  {
38899
39077
  className: `event-registration ${className ?? ""}`.trim(),
38900
39078
  ...getIslandRootProps("event-registration", blockId),
38901
39079
  children: [
38902
- /* @__PURE__ */ jsx44(IslandPropsScript, { value: islandProps }),
38903
- /* @__PURE__ */ jsx44("div", { className: "event-registration__summary", children: /* @__PURE__ */ jsx44("strong", { children: islandProps.render.display.summaryButtonText }) }),
39080
+ /* @__PURE__ */ jsx45(IslandPropsScript, { value: islandProps }),
39081
+ /* @__PURE__ */ jsx45("div", { className: "event-registration__summary", children: /* @__PURE__ */ jsx45("strong", { children: islandProps.render.display.summaryButtonText }) }),
38904
39082
  children
38905
39083
  ]
38906
39084
  }
@@ -38909,7 +39087,7 @@ function EventRegistrationSSR({
38909
39087
  var event_registration_server_default = EventRegistrationSSR;
38910
39088
 
38911
39089
  // ../blocks/src/system/runtime/shared/components/FeedbackMessage.tsx
38912
- import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
39090
+ import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
38913
39091
  function joinClasses5(...parts) {
38914
39092
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
38915
39093
  }
@@ -38925,7 +39103,7 @@ function FeedbackMessage({
38925
39103
  }) {
38926
39104
  const resolvedLive = live ?? (role === "alert" ? "assertive" : "polite");
38927
39105
  const shouldWrapBody = Boolean(title || bodyClassName);
38928
- return /* @__PURE__ */ jsxs31(
39106
+ return /* @__PURE__ */ jsxs32(
38929
39107
  "div",
38930
39108
  {
38931
39109
  className,
@@ -38933,15 +39111,15 @@ function FeedbackMessage({
38933
39111
  role,
38934
39112
  "aria-live": resolvedLive === "off" ? void 0 : resolvedLive,
38935
39113
  children: [
38936
- title ? /* @__PURE__ */ jsx45("p", { className: joinClasses5(titleClassName), "data-feedback-title": true, children: title }) : null,
38937
- shouldWrapBody ? /* @__PURE__ */ jsx45("div", { className: joinClasses5(bodyClassName), "data-feedback-body": true, children }) : children
39114
+ title ? /* @__PURE__ */ jsx46("p", { className: joinClasses5(titleClassName), "data-feedback-title": true, children: title }) : null,
39115
+ shouldWrapBody ? /* @__PURE__ */ jsx46("div", { className: joinClasses5(bodyClassName), "data-feedback-body": true, children }) : children
38938
39116
  ]
38939
39117
  }
38940
39118
  );
38941
39119
  }
38942
39120
 
38943
39121
  // ../blocks/src/system/runtime/nodes/form.server.tsx
38944
- import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
39122
+ import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
38945
39123
  var FormNodeSSR = ({
38946
39124
  blockId,
38947
39125
  value,
@@ -38966,9 +39144,9 @@ var FormNodeSSR = ({
38966
39144
  const display = islandProps.render.display;
38967
39145
  const form2 = display.form;
38968
39146
  if (!form2) {
38969
- return /* @__PURE__ */ jsxs32("div", { ...getIslandRootProps("form", blockId), children: [
38970
- /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
38971
- /* @__PURE__ */ jsx46(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
39147
+ return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
39148
+ /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39149
+ /* @__PURE__ */ jsx47(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
38972
39150
  ] });
38973
39151
  }
38974
39152
  const groups = display.groups;
@@ -38978,9 +39156,9 @@ var FormNodeSSR = ({
38978
39156
  const required = Boolean(field.required);
38979
39157
  const type = String(field.type ?? "text");
38980
39158
  if (type === "textarea") {
38981
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
38982
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
38983
- /* @__PURE__ */ jsx46(
39159
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39160
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39161
+ /* @__PURE__ */ jsx47(
38984
39162
  "textarea",
38985
39163
  {
38986
39164
  id: inputId,
@@ -38996,20 +39174,20 @@ var FormNodeSSR = ({
38996
39174
  if (type === "select") {
38997
39175
  const options = field.options ?? [];
38998
39176
  const multiple = Boolean(field.multiple);
38999
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
39000
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39001
- /* @__PURE__ */ jsxs32("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
39002
- !multiple && /* @__PURE__ */ jsx46("option", { value: "", children: "Select\u2026" }),
39003
- options.map((opt) => /* @__PURE__ */ jsx46("option", { value: opt.value, children: opt.label }, opt.value))
39177
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39178
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39179
+ /* @__PURE__ */ jsxs33("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
39180
+ !multiple && /* @__PURE__ */ jsx47("option", { value: "", children: "Select\u2026" }),
39181
+ options.map((opt) => /* @__PURE__ */ jsx47("option", { value: opt.value, children: opt.label }, opt.value))
39004
39182
  ] })
39005
39183
  ] }, field.id);
39006
39184
  }
39007
39185
  if (type === "radio") {
39008
39186
  const options = field.options ?? [];
39009
- return /* @__PURE__ */ jsxs32("fieldset", { className: "fb-fieldset", children: [
39010
- /* @__PURE__ */ jsx46("legend", { className: "form-label", children: label }),
39011
- options.map((opt) => /* @__PURE__ */ jsxs32("label", { className: "fb-inline form-label", children: [
39012
- /* @__PURE__ */ jsx46(
39187
+ return /* @__PURE__ */ jsxs33("fieldset", { className: "fb-fieldset", children: [
39188
+ /* @__PURE__ */ jsx47("legend", { className: "form-label", children: label }),
39189
+ options.map((opt) => /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
39190
+ /* @__PURE__ */ jsx47(
39013
39191
  "input",
39014
39192
  {
39015
39193
  type: "radio",
@@ -39019,14 +39197,14 @@ var FormNodeSSR = ({
39019
39197
  className: "form-radio"
39020
39198
  }
39021
39199
  ),
39022
- /* @__PURE__ */ jsx46("span", { children: opt.label })
39200
+ /* @__PURE__ */ jsx47("span", { children: opt.label })
39023
39201
  ] }, opt.value))
39024
39202
  ] }, field.id);
39025
39203
  }
39026
39204
  if (type === "checkbox" || type === "consent") {
39027
- return /* @__PURE__ */ jsxs32("label", { className: "fb-inline form-label", children: [
39028
- /* @__PURE__ */ jsx46("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
39029
- /* @__PURE__ */ jsx46("span", { children: label })
39205
+ return /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
39206
+ /* @__PURE__ */ jsx47("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
39207
+ /* @__PURE__ */ jsx47("span", { children: label })
39030
39208
  ] }, field.id);
39031
39209
  }
39032
39210
  const inputType = type === "email" || type === "url" || type === "tel" || type === "number" ? type : "text";
@@ -39040,9 +39218,9 @@ var FormNodeSSR = ({
39040
39218
  if (typeof field.min === "number") extra.min = field.min;
39041
39219
  if (typeof field.max === "number") extra.max = field.max;
39042
39220
  }
39043
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
39044
- /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39045
- /* @__PURE__ */ jsx46(
39221
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39222
+ /* @__PURE__ */ jsx47("label", { htmlFor: inputId, className: "form-label", children: label }),
39223
+ /* @__PURE__ */ jsx47(
39046
39224
  "input",
39047
39225
  {
39048
39226
  id: inputId,
@@ -39056,9 +39234,9 @@ var FormNodeSSR = ({
39056
39234
  )
39057
39235
  ] }, field.id);
39058
39236
  };
39059
- return /* @__PURE__ */ jsxs32("div", { ...getIslandRootProps("form", blockId), children: [
39060
- /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
39061
- /* @__PURE__ */ jsxs32(
39237
+ return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
39238
+ /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39239
+ /* @__PURE__ */ jsxs33(
39062
39240
  "form",
39063
39241
  {
39064
39242
  method: "POST",
@@ -39066,15 +39244,15 @@ var FormNodeSSR = ({
39066
39244
  onSubmit,
39067
39245
  className: clsx_default("fb-form", display.className ?? void 0),
39068
39246
  children: [
39069
- /* @__PURE__ */ jsx46("input", { type: "hidden", name: "form_id", value: form2.id }),
39070
- /* @__PURE__ */ jsx46("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
39247
+ /* @__PURE__ */ jsx47("input", { type: "hidden", name: "form_id", value: form2.id }),
39248
+ /* @__PURE__ */ jsx47("input", { type: "text", name: "company", className: "hidden", tabIndex: -1, autoComplete: "off" }),
39071
39249
  groups.map((group) => {
39072
39250
  if (group.type === "row") {
39073
- return /* @__PURE__ */ jsx46("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
39251
+ return /* @__PURE__ */ jsx47("div", { className: "fb-row fb-row-2", children: group.fields.map(renderField) }, group.key);
39074
39252
  }
39075
39253
  return renderField(group.field);
39076
39254
  }),
39077
- /* @__PURE__ */ jsx46("div", { className: "fb-actions", children: /* @__PURE__ */ jsx46("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx46(
39255
+ /* @__PURE__ */ jsx47("div", { className: "fb-actions", children: /* @__PURE__ */ jsx47("div", { className: "fb-actions-inner", children: /* @__PURE__ */ jsx47(
39078
39256
  "button",
39079
39257
  {
39080
39258
  type: "submit",
@@ -39093,7 +39271,7 @@ var FormNodeSSR = ({
39093
39271
  };
39094
39272
 
39095
39273
  // ../blocks/src/system/runtime/nodes/newsletter-form.server.tsx
39096
- import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
39274
+ import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
39097
39275
  function NewsletterFormSSR({
39098
39276
  blockId,
39099
39277
  siteId,
@@ -39125,12 +39303,12 @@ function NewsletterFormSSR({
39125
39303
  const fields3 = display.fields;
39126
39304
  const renderField = (field) => {
39127
39305
  const inputId = `newsletter_${field.id}`;
39128
- return /* @__PURE__ */ jsxs33("div", { className: "fb-field newsletter-field", children: [
39129
- /* @__PURE__ */ jsxs33("label", { htmlFor: inputId, className: "form-label", children: [
39306
+ return /* @__PURE__ */ jsxs34("div", { className: "fb-field newsletter-field", children: [
39307
+ /* @__PURE__ */ jsxs34("label", { htmlFor: inputId, className: "form-label", children: [
39130
39308
  field.label,
39131
- field.required && /* @__PURE__ */ jsx47("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
39309
+ field.required && /* @__PURE__ */ jsx48("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
39132
39310
  ] }),
39133
- /* @__PURE__ */ jsx47(
39311
+ /* @__PURE__ */ jsx48(
39134
39312
  "input",
39135
39313
  {
39136
39314
  id: inputId,
@@ -39144,15 +39322,15 @@ function NewsletterFormSSR({
39144
39322
  )
39145
39323
  ] }, field.id);
39146
39324
  };
39147
- return /* @__PURE__ */ jsxs33(
39325
+ return /* @__PURE__ */ jsxs34(
39148
39326
  "div",
39149
39327
  {
39150
39328
  ...getIslandRootProps("newsletter-form", blockId),
39151
39329
  className: clsx_default("newsletter-form-ssr", className),
39152
39330
  children: [
39153
- /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39154
- /* @__PURE__ */ jsxs33("form", { method: "POST", className: "newsletter-form fb-form", children: [
39155
- /* @__PURE__ */ jsx47(
39331
+ /* @__PURE__ */ jsx48(IslandPropsScript, { value: islandProps }),
39332
+ /* @__PURE__ */ jsxs34("form", { method: "POST", className: "newsletter-form fb-form", children: [
39333
+ /* @__PURE__ */ jsx48(
39156
39334
  "input",
39157
39335
  {
39158
39336
  type: "text",
@@ -39163,9 +39341,9 @@ function NewsletterFormSSR({
39163
39341
  "aria-hidden": "true"
39164
39342
  }
39165
39343
  ),
39166
- /* @__PURE__ */ jsxs33("div", { className: "newsletter-form-fields", children: [
39344
+ /* @__PURE__ */ jsxs34("div", { className: "newsletter-form-fields", children: [
39167
39345
  fields3.map(renderField),
39168
- /* @__PURE__ */ jsx47("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx47(
39346
+ /* @__PURE__ */ jsx48("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx48(
39169
39347
  "button",
39170
39348
  {
39171
39349
  type: "submit",
@@ -39174,7 +39352,7 @@ function NewsletterFormSSR({
39174
39352
  }
39175
39353
  ) })
39176
39354
  ] }),
39177
- display.privacyNote && /* @__PURE__ */ jsx47("p", { className: "newsletter-privacy-note", children: display.privacyNote })
39355
+ display.privacyNote && /* @__PURE__ */ jsx48("p", { className: "newsletter-privacy-note", children: display.privacyNote })
39178
39356
  ] })
39179
39357
  ]
39180
39358
  }
@@ -39183,7 +39361,7 @@ function NewsletterFormSSR({
39183
39361
  var newsletter_form_server_default = NewsletterFormSSR;
39184
39362
 
39185
39363
  // ../blocks/src/system/runtime/nodes/product-detail.server.tsx
39186
- import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
39364
+ import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
39187
39365
  function ProductDetailSSR({
39188
39366
  blockId,
39189
39367
  siteId,
@@ -39198,7 +39376,7 @@ function ProductDetailSSR({
39198
39376
  stage,
39199
39377
  ...rest
39200
39378
  });
39201
- return /* @__PURE__ */ jsxs34(
39379
+ return /* @__PURE__ */ jsxs35(
39202
39380
  "div",
39203
39381
  {
39204
39382
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39208,8 +39386,8 @@ function ProductDetailSSR({
39208
39386
  "data-site-id": siteId ?? void 0,
39209
39387
  ...getIslandRootProps("product-detail", blockId),
39210
39388
  children: [
39211
- /* @__PURE__ */ jsx48(IslandPropsScript, { value: islandProps }),
39212
- /* @__PURE__ */ jsx48(ProductDetailServerContent, { render: islandProps.render }),
39389
+ /* @__PURE__ */ jsx49(IslandPropsScript, { value: islandProps }),
39390
+ /* @__PURE__ */ jsx49(ProductDetailServerContent, { render: islandProps.render }),
39213
39391
  children
39214
39392
  ]
39215
39393
  }
@@ -39218,7 +39396,7 @@ function ProductDetailSSR({
39218
39396
  var product_detail_server_default = ProductDetailSSR;
39219
39397
 
39220
39398
  // ../blocks/src/system/runtime/nodes/product-list.server.tsx
39221
- import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
39399
+ import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
39222
39400
  function ProductListSSR({
39223
39401
  blockId,
39224
39402
  siteId,
@@ -39233,7 +39411,7 @@ function ProductListSSR({
39233
39411
  stage,
39234
39412
  ...rest
39235
39413
  });
39236
- return /* @__PURE__ */ jsxs35(
39414
+ return /* @__PURE__ */ jsxs36(
39237
39415
  "div",
39238
39416
  {
39239
39417
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39243,8 +39421,8 @@ function ProductListSSR({
39243
39421
  "data-site-id": siteId ?? void 0,
39244
39422
  ...getIslandRootProps("product-list", blockId),
39245
39423
  children: [
39246
- /* @__PURE__ */ jsx49(IslandPropsScript, { value: islandProps }),
39247
- /* @__PURE__ */ jsx49(ProductListServerContent, { render: islandProps.render }),
39424
+ /* @__PURE__ */ jsx50(IslandPropsScript, { value: islandProps }),
39425
+ /* @__PURE__ */ jsx50(ProductListServerContent, { render: islandProps.render }),
39248
39426
  children
39249
39427
  ]
39250
39428
  }
@@ -39253,7 +39431,7 @@ function ProductListSSR({
39253
39431
  var product_list_server_default = ProductListSSR;
39254
39432
 
39255
39433
  // ../blocks/src/system/runtime/nodes/shop.server.tsx
39256
- import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
39434
+ import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
39257
39435
  function ShopSSR({
39258
39436
  blockId,
39259
39437
  siteId,
@@ -39270,7 +39448,7 @@ function ShopSSR({
39270
39448
  ...rest
39271
39449
  });
39272
39450
  const render = islandProps.render;
39273
- return /* @__PURE__ */ jsxs36(
39451
+ return /* @__PURE__ */ jsxs37(
39274
39452
  "div",
39275
39453
  {
39276
39454
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39280,16 +39458,16 @@ function ShopSSR({
39280
39458
  "data-site-id": siteId ?? void 0,
39281
39459
  ...getIslandRootProps("shop", blockId),
39282
39460
  children: [
39283
- /* @__PURE__ */ jsx50(IslandPropsScript, { value: islandProps }),
39284
- /* @__PURE__ */ jsx50(
39461
+ /* @__PURE__ */ jsx51(IslandPropsScript, { value: islandProps }),
39462
+ /* @__PURE__ */ jsx51(
39285
39463
  PassesMembershipsSectionView,
39286
39464
  {
39287
39465
  display: render.display,
39288
- passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx50(
39466
+ passCards: render.display.passes.map((pass) => /* @__PURE__ */ jsx51(
39289
39467
  PassCardView,
39290
39468
  {
39291
39469
  display: pass,
39292
- action: /* @__PURE__ */ jsx50(
39470
+ action: /* @__PURE__ */ jsx51(
39293
39471
  "button",
39294
39472
  {
39295
39473
  type: "button",
@@ -39302,11 +39480,11 @@ function ShopSSR({
39302
39480
  },
39303
39481
  pass.id
39304
39482
  )),
39305
- membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx50(
39483
+ membershipCards: render.display.memberships.map((membership) => /* @__PURE__ */ jsx51(
39306
39484
  MembershipCardView,
39307
39485
  {
39308
39486
  display: membership,
39309
- action: /* @__PURE__ */ jsx50(
39487
+ action: /* @__PURE__ */ jsx51(
39310
39488
  "button",
39311
39489
  {
39312
39490
  type: "button",
@@ -43693,7 +43871,7 @@ function transformSdkBlockToDefinition(sdkBlock) {
43693
43871
  }
43694
43872
 
43695
43873
  // ../blocks/src/PageRenderer.tsx
43696
- import { Fragment as Fragment6, jsx as jsx51 } from "react/jsx-runtime";
43874
+ import { Fragment as Fragment6, jsx as jsx52 } from "react/jsx-runtime";
43697
43875
  function PageRenderer({
43698
43876
  theme,
43699
43877
  page,
@@ -43717,12 +43895,12 @@ function PageRenderer({
43717
43895
  ]
43718
43896
  );
43719
43897
  if (!page || page.blocks.length === 0) {
43720
- return /* @__PURE__ */ jsx51("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
43898
+ return /* @__PURE__ */ jsx52("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: "No blocks found." });
43721
43899
  }
43722
43900
  const themeTokens = providedThemeTokens ?? buildThemeRuntime(theme).tokens;
43723
43901
  const resolvedRegistry = registry ?? getDefaultComponentRegistry();
43724
43902
  setContextResolveImageUrlContext(imageResolveContext);
43725
- return /* @__PURE__ */ jsx51("div", { children: page.blocks.map((block, index) => {
43903
+ return /* @__PURE__ */ jsx52("div", { children: page.blocks.map((block, index) => {
43726
43904
  const blockKey = block.id ?? `${block.kind}-${index}`;
43727
43905
  const cleanKind = block.kind.replace(/^block\./, "");
43728
43906
  const definition = getBlockDefinition(block.kind);
@@ -43745,14 +43923,14 @@ function PageRenderer({
43745
43923
  customBlocks
43746
43924
  };
43747
43925
  if (!shouldUseWrapper) {
43748
- return /* @__PURE__ */ jsx51(MemoBlockSection, { ...blockSectionProps }, blockKey);
43926
+ return /* @__PURE__ */ jsx52(MemoBlockSection, { ...blockSectionProps }, blockKey);
43749
43927
  }
43750
43928
  const wrapperClassName = [
43751
43929
  `block-${cleanKind}`,
43752
43930
  wrapBlock ? "group relative" : null
43753
43931
  ].filter(Boolean).join(" ");
43754
43932
  const styleGroup = typeof renderableContent.styleGroup === "string" ? renderableContent.styleGroup : void 0;
43755
- return /* @__PURE__ */ jsx51(
43933
+ return /* @__PURE__ */ jsx52(
43756
43934
  "div",
43757
43935
  {
43758
43936
  className: wrapperClassName,
@@ -43762,7 +43940,7 @@ function PageRenderer({
43762
43940
  "data-variant": variantKey ?? void 0,
43763
43941
  "data-block-variant": variantKey ?? void 0,
43764
43942
  "data-style-group": styleGroup,
43765
- children: /* @__PURE__ */ jsx51(MemoBlockSection, { ...blockSectionProps })
43943
+ children: /* @__PURE__ */ jsx52(MemoBlockSection, { ...blockSectionProps })
43766
43944
  },
43767
43945
  blockKey
43768
43946
  );
@@ -43886,8 +44064,8 @@ var MemoBlockSection = React6.memo(
43886
44064
  blockId: block.id ?? null,
43887
44065
  blockKind: block.kind
43888
44066
  };
43889
- const rendered2 = /* @__PURE__ */ jsx51(OverrideComponent, { ...baseProps });
43890
- const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered2 });
44067
+ const rendered2 = /* @__PURE__ */ jsx52(OverrideComponent, { ...baseProps });
44068
+ const node2 = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered2) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered2 });
43891
44069
  return finish(node2, {
43892
44070
  outcome: "overrideWithoutDefinition",
43893
44071
  override: true,
@@ -43909,7 +44087,7 @@ var MemoBlockSection = React6.memo(
43909
44087
  const rendered = fallback(
43910
44088
  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}".`
43911
44089
  );
43912
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44090
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
43913
44091
  return finish(node, { outcome: "missingDefinition", override: false });
43914
44092
  }
43915
44093
  const manifestHasLayout = Boolean(definition.manifest.layout) || definition.manifest.variants && Object.keys(definition.manifest.variants).length > 0;
@@ -43928,7 +44106,7 @@ var MemoBlockSection = React6.memo(
43928
44106
  const rendered = fallback(
43929
44107
  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}".`
43930
44108
  );
43931
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44109
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
43932
44110
  return finish(node, { outcome: "missingLayout", override: false });
43933
44111
  }
43934
44112
  const content = getRenderableContent(block);
@@ -43964,14 +44142,14 @@ var MemoBlockSection = React6.memo(
43964
44142
  const rendered = fallback(
43965
44143
  `Unable to render block kind "${block.kind}".`
43966
44144
  );
43967
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44145
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
43968
44146
  return finish(node, { outcome: "invalidPlaceholder", override: false });
43969
44147
  }
43970
44148
  } else {
43971
44149
  const rendered = fallback(
43972
44150
  `Invalid content for block kind "${block.kind}".`
43973
44151
  );
43974
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44152
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
43975
44153
  return finish(node, { outcome: "invalidContent", override: false });
43976
44154
  }
43977
44155
  try {
@@ -44004,7 +44182,7 @@ var MemoBlockSection = React6.memo(
44004
44182
  };
44005
44183
  let rendered;
44006
44184
  if (OverrideComponent) {
44007
- rendered = /* @__PURE__ */ jsx51(OverrideComponent, { ...baseProps });
44185
+ rendered = /* @__PURE__ */ jsx52(OverrideComponent, { ...baseProps });
44008
44186
  } else {
44009
44187
  const BlockComponent = getCachedBlockComponent(definition.manifest);
44010
44188
  const pathBase = typeof block.id === "string" && block.id.length > 0 ? `blocks.${block.id}.` : void 0;
@@ -44027,7 +44205,7 @@ var MemoBlockSection = React6.memo(
44027
44205
  };
44028
44206
  const blockBindings = block.bindings;
44029
44207
  const fragmentRegistry2 = getFragmentRegistry();
44030
- rendered = /* @__PURE__ */ jsx51(
44208
+ rendered = /* @__PURE__ */ jsx52(
44031
44209
  BlockComponent,
44032
44210
  {
44033
44211
  ...baseProps,
@@ -44041,18 +44219,18 @@ var MemoBlockSection = React6.memo(
44041
44219
  );
44042
44220
  }
44043
44221
  if (wrapBlock && block.id) {
44044
- return finish(/* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }), {
44222
+ return finish(/* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }), {
44045
44223
  override: Boolean(OverrideComponent),
44046
44224
  hasResolvedData
44047
44225
  });
44048
44226
  }
44049
- return finish(/* @__PURE__ */ jsx51(Fragment6, { children: rendered }), {
44227
+ return finish(/* @__PURE__ */ jsx52(Fragment6, { children: rendered }), {
44050
44228
  override: Boolean(OverrideComponent),
44051
44229
  hasResolvedData
44052
44230
  });
44053
44231
  } catch {
44054
44232
  const rendered = usePlaceholders ? fallback(`Unable to render block kind "${block.kind}".`) : fallback(`Invalid content for block kind "${block.kind}".`);
44055
- const node = wrapBlock && block.id ? /* @__PURE__ */ jsx51(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx51(Fragment6, { children: rendered });
44233
+ const node = wrapBlock && block.id ? /* @__PURE__ */ jsx52(Fragment6, { children: wrapBlock(block.id, rendered) }) : /* @__PURE__ */ jsx52(Fragment6, { children: rendered });
44056
44234
  return finish(node, { outcome: "exception", override: false });
44057
44235
  }
44058
44236
  },
@@ -44061,7 +44239,7 @@ var MemoBlockSection = React6.memo(
44061
44239
  }
44062
44240
  );
44063
44241
  function fallback(message) {
44064
- return /* @__PURE__ */ jsx51("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
44242
+ return /* @__PURE__ */ jsx52("div", { className: "rb-p-6 rb-caption", style: textColorStyle("mutedText"), children: message });
44065
44243
  }
44066
44244
  function shouldDebugCustomBlocks() {
44067
44245
  try {
@@ -44124,10 +44302,10 @@ function summarizeValue(value) {
44124
44302
  }
44125
44303
 
44126
44304
  // ../theme-core/src/mock-themes/components/swatch.tsx
44127
- import { jsx as jsx52, jsxs as jsxs37 } from "react/jsx-runtime";
44305
+ import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
44128
44306
 
44129
44307
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
44130
- import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
44308
+ import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
44131
44309
 
44132
44310
  // ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
44133
44311
  var Histogram = class {
@@ -54181,6 +54359,11 @@ var containerResponsiveThemeCss = `/*
54181
54359
  * Dense row layout for event-calendar compact list mode
54182
54360
  * ============================================================================= */
54183
54361
 
54362
+ :where(.theme-scope) .event-listing-compact-container {
54363
+ width: min(100%, 56rem);
54364
+ margin-inline: auto;
54365
+ }
54366
+
54184
54367
  :where(.theme-scope) .event-compact-row {
54185
54368
  display: flex;
54186
54369
  align-items: center;
@@ -54306,7 +54489,7 @@ var containerResponsiveThemeCss = `/*
54306
54489
  }`;
54307
54490
 
54308
54491
  // ../theme-core/src/ThemeScopeCore.tsx
54309
- import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
54492
+ import { jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
54310
54493
  function ThemeScopeCore({
54311
54494
  cssVars,
54312
54495
  buttonCss,
@@ -54338,7 +54521,7 @@ function ThemeScopeCore({
54338
54521
  containerType: "inline-size",
54339
54522
  containerName: responsiveScope.containerName
54340
54523
  } : cssVars;
54341
- return /* @__PURE__ */ jsxs39(
54524
+ return /* @__PURE__ */ jsxs40(
54342
54525
  "div",
54343
54526
  {
54344
54527
  className: className ? `theme-scope ${className}` : "theme-scope",
@@ -54347,7 +54530,7 @@ function ThemeScopeCore({
54347
54530
  ...dataAttrs,
54348
54531
  suppressHydrationWarning,
54349
54532
  children: [
54350
- isContainerResponsive && /* @__PURE__ */ jsx54(
54533
+ isContainerResponsive && /* @__PURE__ */ jsx55(
54351
54534
  "style",
54352
54535
  {
54353
54536
  "data-container-responsive-overrides": true,
@@ -54356,70 +54539,70 @@ function ThemeScopeCore({
54356
54539
  }
54357
54540
  }
54358
54541
  ),
54359
- layoutCss && /* @__PURE__ */ jsx54(
54542
+ layoutCss && /* @__PURE__ */ jsx55(
54360
54543
  "style",
54361
54544
  {
54362
54545
  "data-layout-styles": true,
54363
54546
  dangerouslySetInnerHTML: { __html: escapeStyleContent(layoutCss) }
54364
54547
  }
54365
54548
  ),
54366
- buttonCss && /* @__PURE__ */ jsx54(
54549
+ buttonCss && /* @__PURE__ */ jsx55(
54367
54550
  "style",
54368
54551
  {
54369
54552
  "data-button-effects": true,
54370
54553
  dangerouslySetInnerHTML: { __html: escapeStyleContent(buttonCss) }
54371
54554
  }
54372
54555
  ),
54373
- headerCss && /* @__PURE__ */ jsx54(
54556
+ headerCss && /* @__PURE__ */ jsx55(
54374
54557
  "style",
54375
54558
  {
54376
54559
  "data-header-styles": true,
54377
54560
  dangerouslySetInnerHTML: { __html: escapeStyleContent(headerCss) }
54378
54561
  }
54379
54562
  ),
54380
- footerCss && /* @__PURE__ */ jsx54(
54563
+ footerCss && /* @__PURE__ */ jsx55(
54381
54564
  "style",
54382
54565
  {
54383
54566
  "data-footer-styles": true,
54384
54567
  dangerouslySetInnerHTML: { __html: escapeStyleContent(footerCss) }
54385
54568
  }
54386
54569
  ),
54387
- cardCss && /* @__PURE__ */ jsx54(
54570
+ cardCss && /* @__PURE__ */ jsx55(
54388
54571
  "style",
54389
54572
  {
54390
54573
  "data-card-styles": true,
54391
54574
  dangerouslySetInnerHTML: { __html: escapeStyleContent(cardCss) }
54392
54575
  }
54393
54576
  ),
54394
- accordionCss && /* @__PURE__ */ jsx54(
54577
+ accordionCss && /* @__PURE__ */ jsx55(
54395
54578
  "style",
54396
54579
  {
54397
54580
  "data-accordion-styles": true,
54398
54581
  dangerouslySetInnerHTML: { __html: escapeStyleContent(accordionCss) }
54399
54582
  }
54400
54583
  ),
54401
- inputCss && /* @__PURE__ */ jsx54(
54584
+ inputCss && /* @__PURE__ */ jsx55(
54402
54585
  "style",
54403
54586
  {
54404
54587
  "data-input-styles": true,
54405
54588
  dangerouslySetInnerHTML: { __html: escapeStyleContent(inputCss) }
54406
54589
  }
54407
54590
  ),
54408
- statusCss && /* @__PURE__ */ jsx54(
54591
+ statusCss && /* @__PURE__ */ jsx55(
54409
54592
  "style",
54410
54593
  {
54411
54594
  "data-status-styles": true,
54412
54595
  dangerouslySetInnerHTML: { __html: escapeStyleContent(statusCss) }
54413
54596
  }
54414
54597
  ),
54415
- progressCss && /* @__PURE__ */ jsx54(
54598
+ progressCss && /* @__PURE__ */ jsx55(
54416
54599
  "style",
54417
54600
  {
54418
54601
  "data-progress-styles": true,
54419
54602
  dangerouslySetInnerHTML: { __html: escapeStyleContent(progressCss) }
54420
54603
  }
54421
54604
  ),
54422
- typographyCss && /* @__PURE__ */ jsx54(
54605
+ typographyCss && /* @__PURE__ */ jsx55(
54423
54606
  "style",
54424
54607
  {
54425
54608
  "data-typography-styles": true,
@@ -54428,7 +54611,7 @@ function ThemeScopeCore({
54428
54611
  }
54429
54612
  }
54430
54613
  ),
54431
- eventCalendarCss && /* @__PURE__ */ jsx54(
54614
+ eventCalendarCss && /* @__PURE__ */ jsx55(
54432
54615
  "style",
54433
54616
  {
54434
54617
  "data-event-calendar-styles": true,
@@ -54437,14 +54620,14 @@ function ThemeScopeCore({
54437
54620
  }
54438
54621
  }
54439
54622
  ),
54440
- blockVarsCss && /* @__PURE__ */ jsx54(
54623
+ blockVarsCss && /* @__PURE__ */ jsx55(
54441
54624
  "style",
54442
54625
  {
54443
54626
  "data-block-vars-styles": true,
54444
54627
  dangerouslySetInnerHTML: { __html: escapeStyleContent(blockVarsCss) }
54445
54628
  }
54446
54629
  ),
54447
- blockCustomVarsCss && /* @__PURE__ */ jsx54(
54630
+ blockCustomVarsCss && /* @__PURE__ */ jsx55(
54448
54631
  "style",
54449
54632
  {
54450
54633
  "data-block-custom-vars-styles": true,
@@ -54453,7 +54636,7 @@ function ThemeScopeCore({
54453
54636
  }
54454
54637
  }
54455
54638
  ),
54456
- blockCustomCss && /* @__PURE__ */ jsx54(
54639
+ blockCustomCss && /* @__PURE__ */ jsx55(
54457
54640
  "style",
54458
54641
  {
54459
54642
  "data-block-custom-styles": true,
@@ -54462,14 +54645,14 @@ function ThemeScopeCore({
54462
54645
  }
54463
54646
  }
54464
54647
  ),
54465
- atRulesCss && /* @__PURE__ */ jsx54(
54648
+ atRulesCss && /* @__PURE__ */ jsx55(
54466
54649
  "style",
54467
54650
  {
54468
54651
  "data-at-rules-styles": true,
54469
54652
  dangerouslySetInnerHTML: { __html: escapeStyleContent(atRulesCss) }
54470
54653
  }
54471
54654
  ),
54472
- customCss && /* @__PURE__ */ jsx54(
54655
+ customCss && /* @__PURE__ */ jsx55(
54473
54656
  "style",
54474
54657
  {
54475
54658
  "data-custom-theme-styles": true,
@@ -54496,7 +54679,7 @@ function buildThemeDataAttrs(axes, themeId) {
54496
54679
  }
54497
54680
 
54498
54681
  // ../theme-core/src/ThemeScope.tsx
54499
- import { jsx as jsx55 } from "react/jsx-runtime";
54682
+ import { jsx as jsx56 } from "react/jsx-runtime";
54500
54683
  function ThemeScope({
54501
54684
  theme,
54502
54685
  children,
@@ -54506,7 +54689,7 @@ function ThemeScope({
54506
54689
  }) {
54507
54690
  const runtime = buildThemeRuntime(theme, { themeId, responsiveMode });
54508
54691
  const dataAttrs = buildThemeDataAttrs(theme.axes, themeId);
54509
- return /* @__PURE__ */ jsx55(
54692
+ return /* @__PURE__ */ jsx56(
54510
54693
  ThemeScopeCore,
54511
54694
  {
54512
54695
  cssVars: runtime.cssVars,
@@ -54537,41 +54720,41 @@ function ThemeScope({
54537
54720
 
54538
54721
  // ../theme-core/src/ThemeFontLoader.tsx
54539
54722
  import * as React7 from "react";
54540
- import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs40 } from "react/jsx-runtime";
54723
+ import { Fragment as Fragment7, jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
54541
54724
 
54542
54725
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
54543
- import { z as z66 } from "zod";
54544
- var themeBridgeConfigSchema = z66.object({
54545
- tokens: z66.record(z66.string(), z66.string()),
54546
- typography: z66.object({
54547
- headingFamily: z66.string().optional(),
54548
- bodyFamily: z66.string().optional(),
54549
- headingWeight: z66.number().optional(),
54550
- bodyWeight: z66.number().optional()
54726
+ import { z as z67 } from "zod";
54727
+ var themeBridgeConfigSchema = z67.object({
54728
+ tokens: z67.record(z67.string(), z67.string()),
54729
+ typography: z67.object({
54730
+ headingFamily: z67.string().optional(),
54731
+ bodyFamily: z67.string().optional(),
54732
+ headingWeight: z67.number().optional(),
54733
+ bodyWeight: z67.number().optional()
54551
54734
  }).optional(),
54552
- spacing: z66.enum(["comfortable", "standard", "dense"]).optional(),
54553
- corners: z66.enum(["square", "soft", "rounded", "pill"]).optional(),
54554
- shadows: z66.enum(["none", "low", "medium", "high"]).optional(),
54555
- components: z66.object({
54556
- buttons: z66.union([
54557
- z66.boolean(),
54558
- z66.object({
54559
- variants: z66.array(z66.enum(["primary", "secondary", "outline", "ghost"])).optional()
54735
+ spacing: z67.enum(["comfortable", "standard", "dense"]).optional(),
54736
+ corners: z67.enum(["square", "soft", "rounded", "pill"]).optional(),
54737
+ shadows: z67.enum(["none", "low", "medium", "high"]).optional(),
54738
+ components: z67.object({
54739
+ buttons: z67.union([
54740
+ z67.boolean(),
54741
+ z67.object({
54742
+ variants: z67.array(z67.enum(["primary", "secondary", "outline", "ghost"])).optional()
54560
54743
  })
54561
54744
  ]).optional(),
54562
- cards: z66.union([
54563
- z66.boolean(),
54564
- z66.object({
54565
- variants: z66.array(z66.enum(["default", "elevated", "outlined"])).optional()
54745
+ cards: z67.union([
54746
+ z67.boolean(),
54747
+ z67.object({
54748
+ variants: z67.array(z67.enum(["default", "elevated", "outlined"])).optional()
54566
54749
  })
54567
54750
  ]).optional(),
54568
- inputs: z66.boolean().optional()
54751
+ inputs: z67.boolean().optional()
54569
54752
  }).optional(),
54570
- overrides: z66.record(z66.string(), z66.string()).optional()
54753
+ overrides: z67.record(z67.string(), z67.string()).optional()
54571
54754
  }).passthrough();
54572
54755
 
54573
54756
  // ../theme-core/src/siteChrome.tsx
54574
- import { Fragment as Fragment8, jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
54757
+ import { Fragment as Fragment8, jsx as jsx58, jsxs as jsxs42 } from "react/jsx-runtime";
54575
54758
 
54576
54759
  // ../blocks/src/system/runtime/bindings.ts
54577
54760
  var shouldLogWarnings = isNonProductionEnv();
@@ -54926,17 +55109,17 @@ function normalizeLoaderParams(endpoint, params, context) {
54926
55109
  function unsafeRetypeZodSchema(schema) {
54927
55110
  return schema;
54928
55111
  }
54929
- var navIdListSchema = z67.preprocess((value) => {
55112
+ var navIdListSchema = z68.preprocess((value) => {
54930
55113
  if (!Array.isArray(value)) return void 0;
54931
55114
  const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
54932
55115
  return filtered.length > 0 ? filtered : void 0;
54933
- }, z67.array(z67.string()).max(200).optional());
54934
- var dashboardNavVisibilityBaseSchema = z67.object({
54935
- mode: z67.enum(["augment", "restrict"]).optional(),
55116
+ }, z68.array(z68.string()).max(200).optional());
55117
+ var dashboardNavVisibilityBaseSchema = z68.object({
55118
+ mode: z68.enum(["augment", "restrict"]).optional(),
54936
55119
  allowIds: navIdListSchema,
54937
55120
  denyIds: navIdListSchema
54938
55121
  }).strip();
54939
- var dashboardNavVisibilityRolesSchema = z67.object({
55122
+ var dashboardNavVisibilityRolesSchema = z68.object({
54940
55123
  administrator: dashboardNavVisibilityBaseSchema.optional(),
54941
55124
  editor: dashboardNavVisibilityBaseSchema.optional(),
54942
55125
  team_member: dashboardNavVisibilityBaseSchema.optional()
@@ -54944,57 +55127,57 @@ var dashboardNavVisibilityRolesSchema = z67.object({
54944
55127
  var dashboardNavVisibilitySchema = dashboardNavVisibilityBaseSchema.extend({
54945
55128
  roles: dashboardNavVisibilityRolesSchema
54946
55129
  }).strip();
54947
- var dashboardNavigationConfigSchema = z67.object({
55130
+ var dashboardNavigationConfigSchema = z68.object({
54948
55131
  siteNav: dashboardNavVisibilitySchema.optional(),
54949
55132
  settingsNav: dashboardNavVisibilitySchema.optional()
54950
55133
  }).strip();
54951
- var dashboardConfigSchema = z67.object({
54952
- previewEditingEnabled: z67.boolean().optional(),
55134
+ var dashboardConfigSchema = z68.object({
55135
+ previewEditingEnabled: z68.boolean().optional(),
54953
55136
  navigation: dashboardNavigationConfigSchema.optional()
54954
55137
  }).strip();
54955
55138
  var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
54956
55139
  var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
54957
- var sdkLoaderEndpointSchema = z67.enum(SUPPORTED_LOADER_ENDPOINTS);
54958
- var loaderParamBindingSchema = z67.object({
54959
- $bind: z67.object({
54960
- from: z67.string().min(1, "Binding path is required"),
54961
- fallback: z67.string().optional()
55140
+ var sdkLoaderEndpointSchema = z68.enum(SUPPORTED_LOADER_ENDPOINTS);
55141
+ var loaderParamBindingSchema = z68.object({
55142
+ $bind: z68.object({
55143
+ from: z68.string().min(1, "Binding path is required"),
55144
+ fallback: z68.string().optional()
54962
55145
  })
54963
55146
  });
54964
- var loaderParamValueSchema = z67.union([
54965
- z67.string(),
54966
- z67.number(),
54967
- z67.boolean(),
55147
+ var loaderParamValueSchema = z68.union([
55148
+ z68.string(),
55149
+ z68.number(),
55150
+ z68.boolean(),
54968
55151
  loaderParamBindingSchema
54969
55152
  ]);
54970
- var sdkConfigLoaderSchema = z67.object({
55153
+ var sdkConfigLoaderSchema = z68.object({
54971
55154
  endpoint: sdkLoaderEndpointSchema,
54972
- params: z67.record(z67.string(), loaderParamValueSchema),
54973
- mode: z67.enum(["server", "client"]).default("server")
55155
+ params: z68.record(z68.string(), loaderParamValueSchema),
55156
+ mode: z68.enum(["server", "client"]).default("server")
54974
55157
  });
54975
- var sdkDataLoadersSchema = z67.record(z67.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
54976
- var sdkCustomBlockIdSchema = z67.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
55158
+ var sdkDataLoadersSchema = z68.record(z68.string(), sdkConfigLoaderSchema).refine((loaders) => Object.keys(loaders).length <= 5, { message: "Maximum 5 data loaders per block" }).optional();
55159
+ var sdkCustomBlockIdSchema = z68.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
54977
55160
  message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
54978
55161
  }).transform((value) => value);
54979
- var sdkCustomBlockInputSchema = z67.object({
55162
+ var sdkCustomBlockInputSchema = z68.object({
54980
55163
  id: sdkCustomBlockIdSchema,
54981
- title: z67.string().min(1),
54982
- titleSource: z67.union([z67.string().min(1), z67.array(z67.string().min(1)).min(1)]).optional(),
54983
- description: z67.string().optional(),
55164
+ title: z68.string().min(1),
55165
+ titleSource: z68.union([z68.string().min(1), z68.array(z68.string().min(1)).min(1)]).optional(),
55166
+ description: z68.string().optional(),
54984
55167
  category: blockCategoryEnum,
54985
- icon: z67.string().optional(),
54986
- tags: z67.array(z67.string()).optional(),
55168
+ icon: z68.string().optional(),
55169
+ tags: z68.array(z68.string()).optional(),
54987
55170
  fields: fieldDefinitionInputSchema.array().min(1),
54988
55171
  dataLoaders: sdkDataLoadersSchema,
54989
55172
  layout: NodeSchema.optional(),
54990
- variants: z67.record(z67.string().min(1), NodeSchema).optional(),
54991
- defaultVariant: z67.string().min(1).optional(),
54992
- variantOptions: z67.record(
54993
- z67.string().min(1),
54994
- z67.object({
54995
- label: z67.string().min(1).optional(),
54996
- description: z67.string().min(1).optional(),
54997
- icon: z67.string().min(1).optional()
55173
+ variants: z68.record(z68.string().min(1), NodeSchema).optional(),
55174
+ defaultVariant: z68.string().min(1).optional(),
55175
+ variantOptions: z68.record(
55176
+ z68.string().min(1),
55177
+ z68.object({
55178
+ label: z68.string().min(1).optional(),
55179
+ description: z68.string().min(1).optional(),
55180
+ icon: z68.string().min(1).optional()
54998
55181
  })
54999
55182
  ).optional()
55000
55183
  }).superRefine((data, ctx) => {
@@ -55004,7 +55187,7 @@ var sdkCustomBlockInputSchema = z67.object({
55004
55187
  const exists = data.fields.some((field) => field.id === source);
55005
55188
  if (!exists) {
55006
55189
  ctx.addIssue({
55007
- code: z67.ZodIssueCode.custom,
55190
+ code: z68.ZodIssueCode.custom,
55008
55191
  message: `titleSource must reference a valid field ID (got "${source}")`,
55009
55192
  path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
55010
55193
  });
@@ -55013,7 +55196,7 @@ var sdkCustomBlockInputSchema = z67.object({
55013
55196
  }
55014
55197
  if (data.layout && data.variants) {
55015
55198
  ctx.addIssue({
55016
- code: z67.ZodIssueCode.custom,
55199
+ code: z68.ZodIssueCode.custom,
55017
55200
  message: "Custom block must define either `layout` or `variants`, not both",
55018
55201
  path: ["variants"]
55019
55202
  });
@@ -55022,14 +55205,14 @@ var sdkCustomBlockInputSchema = z67.object({
55022
55205
  const keys = Object.keys(data.variants);
55023
55206
  if (keys.length === 0) {
55024
55207
  ctx.addIssue({
55025
- code: z67.ZodIssueCode.custom,
55208
+ code: z68.ZodIssueCode.custom,
55026
55209
  message: "`variants` must contain at least one variant key",
55027
55210
  path: ["variants"]
55028
55211
  });
55029
55212
  }
55030
55213
  if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
55031
55214
  ctx.addIssue({
55032
- code: z67.ZodIssueCode.custom,
55215
+ code: z68.ZodIssueCode.custom,
55033
55216
  message: "`defaultVariant` must be a key present in `variants`",
55034
55217
  path: ["defaultVariant"]
55035
55218
  });
@@ -55038,7 +55221,7 @@ var sdkCustomBlockInputSchema = z67.object({
55038
55221
  for (const key of Object.keys(data.variantOptions)) {
55039
55222
  if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
55040
55223
  ctx.addIssue({
55041
- code: z67.ZodIssueCode.custom,
55224
+ code: z68.ZodIssueCode.custom,
55042
55225
  message: "`variantOptions` key must exist in `variants`",
55043
55226
  path: ["variantOptions", key]
55044
55227
  });
@@ -55047,74 +55230,74 @@ var sdkCustomBlockInputSchema = z67.object({
55047
55230
  }
55048
55231
  }
55049
55232
  });
55050
- var sdkBlockFieldExtensionInputSchema = z67.object({
55233
+ var sdkBlockFieldExtensionInputSchema = z68.object({
55051
55234
  fields: fieldDefinitionInputSchema.array().min(1)
55052
55235
  });
55053
- var sdkBlockFieldExtensionsInputSchema = z67.record(
55054
- z67.string().min(1),
55236
+ var sdkBlockFieldExtensionsInputSchema = z68.record(
55237
+ z68.string().min(1),
55055
55238
  sdkBlockFieldExtensionInputSchema
55056
55239
  );
55057
- var sdkThemePaletteSchema = z67.record(z67.string(), z67.string());
55058
- var sdkThemeConfigSchema = z67.object({
55240
+ var sdkThemePaletteSchema = z68.record(z68.string(), z68.string());
55241
+ var sdkThemeConfigSchema = z68.object({
55059
55242
  palette: sdkThemePaletteSchema
55060
55243
  });
55061
- var sdkSectionBackgroundSchema = z67.object({
55062
- id: z67.string().min(1),
55063
- label: z67.string().min(1),
55064
- token: z67.string().min(1)
55244
+ var sdkSectionBackgroundSchema = z68.object({
55245
+ id: z68.string().min(1),
55246
+ label: z68.string().min(1),
55247
+ token: z68.string().min(1)
55065
55248
  });
55066
- var sdkSectionOptionsConfigSchema = z67.object({
55067
- backgroundColor: z67.boolean().optional(),
55068
- backgroundImage: z67.boolean().optional(),
55069
- backgroundGradient: z67.boolean().optional(),
55070
- spacing: z67.union([z67.array(z67.enum(["compact", "default", "spacious"])), z67.boolean()]).optional(),
55071
- textColor: z67.boolean().optional()
55249
+ var sdkSectionOptionsConfigSchema = z68.object({
55250
+ backgroundColor: z68.boolean().optional(),
55251
+ backgroundImage: z68.boolean().optional(),
55252
+ backgroundGradient: z68.boolean().optional(),
55253
+ spacing: z68.union([z68.array(z68.enum(["compact", "default", "spacious"])), z68.boolean()]).optional(),
55254
+ textColor: z68.boolean().optional()
55072
55255
  });
55073
- var sdkContainerOptionsConfigSchema = z67.object({
55074
- maxWidth: z67.union([z67.array(z67.enum(["narrow", "default", "wide", "full"])), z67.boolean()]).optional(),
55075
- alignment: z67.union([z67.array(z67.enum(["left", "center", "right"])), z67.boolean()]).optional()
55256
+ var sdkContainerOptionsConfigSchema = z68.object({
55257
+ maxWidth: z68.union([z68.array(z68.enum(["narrow", "default", "wide", "full"])), z68.boolean()]).optional(),
55258
+ alignment: z68.union([z68.array(z68.enum(["left", "center", "right"])), z68.boolean()]).optional()
55076
55259
  });
55077
- var sdkSiteStyleConfigSchema = z67.object({
55078
- sectionBackgrounds: z67.array(sdkSectionBackgroundSchema).optional(),
55260
+ var sdkSiteStyleConfigSchema = z68.object({
55261
+ sectionBackgrounds: z68.array(sdkSectionBackgroundSchema).optional(),
55079
55262
  sectionOptions: sdkSectionOptionsConfigSchema.optional(),
55080
55263
  containerOptions: sdkContainerOptionsConfigSchema.optional()
55081
55264
  });
55082
- var sdkSiteLayoutConfigSchema = z67.object({
55083
- footerBlocks: z67.array(
55084
- z67.object({
55085
- id: z67.string().min(1).optional(),
55086
- kind: z67.string().min(1),
55087
- content: z67.record(z67.string(), z67.unknown()).optional()
55265
+ var sdkSiteLayoutConfigSchema = z68.object({
55266
+ footerBlocks: z68.array(
55267
+ z68.object({
55268
+ id: z68.string().min(1).optional(),
55269
+ kind: z68.string().min(1),
55270
+ content: z68.record(z68.string(), z68.unknown()).optional()
55088
55271
  })
55089
55272
  ).optional()
55090
55273
  });
55091
- var sdkFieldSelectOptionSchema = z67.object({
55092
- value: z67.string(),
55093
- label: z67.string()
55274
+ var sdkFieldSelectOptionSchema = z68.object({
55275
+ value: z68.string(),
55276
+ label: z68.string()
55094
55277
  });
55095
- var sdkBlockFieldConfigSchema = z67.object({
55096
- options: z67.array(sdkFieldSelectOptionSchema).optional()
55278
+ var sdkBlockFieldConfigSchema = z68.object({
55279
+ options: z68.array(sdkFieldSelectOptionSchema).optional()
55097
55280
  });
55098
- var sdkBlockFieldOptionsMapSchema = z67.record(
55099
- z67.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55281
+ var sdkBlockFieldOptionsMapSchema = z68.record(
55282
+ z68.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
55100
55283
  message: "Block ID must be 'block.*' or 'custom.*' format"
55101
55284
  }),
55102
- z67.record(z67.string().min(1), sdkBlockFieldConfigSchema)
55285
+ z68.record(z68.string().min(1), sdkBlockFieldConfigSchema)
55103
55286
  ).optional();
55104
- var sdkContentTypeTemplateConfigSchema = z67.object({
55105
- blocks: z67.array(z67.unknown())
55287
+ var sdkContentTypeTemplateConfigSchema = z68.object({
55288
+ blocks: z68.array(z68.unknown())
55106
55289
  }).passthrough();
55107
- var sdkContentTypeConfigSchema = z67.object({
55108
- key: z67.string().min(1),
55109
- fields: z67.array(z67.unknown()),
55290
+ var sdkContentTypeConfigSchema = z68.object({
55291
+ key: z68.string().min(1),
55292
+ fields: z68.array(z68.unknown()),
55110
55293
  template: sdkContentTypeTemplateConfigSchema.nullable().optional()
55111
55294
  }).passthrough();
55112
- var sdkContentConfigSchema = z67.object({
55113
- contentTypes: z67.array(sdkContentTypeConfigSchema).optional(),
55114
- pages: z67.array(z67.unknown()).optional(),
55115
- entries: z67.array(z67.unknown()).optional(),
55116
- navigationMenus: z67.array(z67.unknown()).optional(),
55117
- settings: z67.unknown().optional()
55295
+ var sdkContentConfigSchema = z68.object({
55296
+ contentTypes: z68.array(sdkContentTypeConfigSchema).optional(),
55297
+ pages: z68.array(z68.unknown()).optional(),
55298
+ entries: z68.array(z68.unknown()).optional(),
55299
+ navigationMenus: z68.array(z68.unknown()).optional(),
55300
+ settings: z68.unknown().optional()
55118
55301
  }).passthrough();
55119
55302
  var SDK_WORKFLOW_ID_MAX_LENGTH = 120;
55120
55303
  var SDK_WORKFLOW_TITLE_MAX_LENGTH = 120;
@@ -55129,62 +55312,62 @@ var SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH = 120;
55129
55312
  var SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH = 500;
55130
55313
  var SDK_WORKFLOW_ID_PATTERN = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/;
55131
55314
  var SDK_WORKFLOW_ENDPOINT_PATTERN = /^\//;
55132
- var sdkWorkflowIdSchema = z67.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55315
+ var sdkWorkflowIdSchema = z68.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
55133
55316
  message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
55134
55317
  });
55135
- var sdkWorkflowEndpointSchema = z67.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 "/"' });
55136
- var sdkWorkflowManualTriggerSchema = z67.object({
55137
- type: z67.literal("manual")
55318
+ var sdkWorkflowEndpointSchema = z68.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 "/"' });
55319
+ var sdkWorkflowManualTriggerSchema = z68.object({
55320
+ type: z68.literal("manual")
55138
55321
  }).strict();
55139
- var sdkWorkflowTriggerFieldSchema = z67.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55322
+ var sdkWorkflowTriggerFieldSchema = z68.string().trim().min(1).max(SDK_WORKFLOW_TRIGGER_FIELD_MAX_LENGTH).refine((field) => !field.includes("."), {
55140
55323
  message: "Workflow trigger fields must be top-level content field IDs, not paths"
55141
55324
  });
55142
- var sdkWorkflowFieldChangedConditionSchema = z67.object({
55325
+ var sdkWorkflowFieldChangedConditionSchema = z68.object({
55143
55326
  field: sdkWorkflowTriggerFieldSchema,
55144
- changed: z67.literal(true)
55327
+ changed: z68.literal(true)
55145
55328
  }).strict();
55146
- var sdkWorkflowFieldEmptyConditionSchema = z67.object({
55329
+ var sdkWorkflowFieldEmptyConditionSchema = z68.object({
55147
55330
  field: sdkWorkflowTriggerFieldSchema,
55148
- isEmpty: z67.boolean()
55331
+ isEmpty: z68.boolean()
55149
55332
  }).strict();
55150
- var sdkWorkflowEntryDraftUpdatedTriggerSchema = z67.object({
55151
- type: z67.literal("entry.draft.updated"),
55152
- when: z67.array(
55153
- z67.union([
55333
+ var sdkWorkflowEntryDraftUpdatedTriggerSchema = z68.object({
55334
+ type: z68.literal("entry.draft.updated"),
55335
+ when: z68.array(
55336
+ z68.union([
55154
55337
  sdkWorkflowFieldChangedConditionSchema,
55155
55338
  sdkWorkflowFieldEmptyConditionSchema
55156
55339
  ])
55157
55340
  ).min(1).max(SDK_WORKFLOW_TRIGGER_CONDITION_MAX_COUNT)
55158
55341
  }).strict();
55159
- var sdkWorkflowTriggerSchema = z67.discriminatedUnion("type", [
55342
+ var sdkWorkflowTriggerSchema = z68.discriminatedUnion("type", [
55160
55343
  sdkWorkflowManualTriggerSchema,
55161
55344
  sdkWorkflowEntryDraftUpdatedTriggerSchema
55162
55345
  ]);
55163
- var sdkWorkflowConfirmationSchema = z67.object({
55164
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55165
- body: z67.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55346
+ var sdkWorkflowConfirmationSchema = z68.object({
55347
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
55348
+ body: z68.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
55166
55349
  }).strict();
55167
- var sdkWorkflowConfigSchema = z67.object({
55350
+ var sdkWorkflowConfigSchema = z68.object({
55168
55351
  id: sdkWorkflowIdSchema,
55169
- title: z67.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55170
- description: z67.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55171
- contentType: z67.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55352
+ title: z68.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
55353
+ description: z68.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
55354
+ contentType: z68.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
55172
55355
  endpoint: sdkWorkflowEndpointSchema,
55173
- triggers: z67.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55356
+ triggers: z68.array(sdkWorkflowTriggerSchema).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
55174
55357
  confirmation: sdkWorkflowConfirmationSchema.optional()
55175
55358
  }).strict();
55176
- var sdkWorkflowsSchema = z67.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55359
+ var sdkWorkflowsSchema = z68.array(sdkWorkflowConfigSchema).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
55177
55360
  const ids = workflows.map((workflow) => workflow.id);
55178
55361
  return ids.length === new Set(ids).size;
55179
55362
  }, { message: "Workflow IDs must be unique" }).optional();
55180
- var riverbankSiteConfigInputSchema = z67.object({
55181
- siteId: z67.string().uuid(),
55182
- previewUrl: z67.string().url().optional(),
55183
- liveUrl: z67.string().url().optional(),
55363
+ var riverbankSiteConfigInputSchema = z68.object({
55364
+ siteId: z68.string().uuid(),
55365
+ previewUrl: z68.string().url().optional(),
55366
+ liveUrl: z68.string().url().optional(),
55184
55367
  theme: sdkThemeConfigSchema.optional(),
55185
55368
  styles: sdkSiteStyleConfigSchema.optional(),
55186
55369
  layout: sdkSiteLayoutConfigSchema.optional(),
55187
- customBlocks: z67.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55370
+ customBlocks: z68.array(sdkCustomBlockInputSchema).max(100, "Maximum 100 custom blocks per site").refine((blocks) => {
55188
55371
  const ids = blocks.map((b) => b.id);
55189
55372
  return ids.length === new Set(ids).size;
55190
55373
  }, { message: "Block IDs must be unique" }).optional(),
@@ -55192,50 +55375,50 @@ var riverbankSiteConfigInputSchema = z67.object({
55192
55375
  blockFieldExtensions: sdkBlockFieldExtensionsInputSchema.optional(),
55193
55376
  workflows: sdkWorkflowsSchema,
55194
55377
  content: sdkContentConfigSchema.optional(),
55195
- contentDir: z67.string().optional(),
55196
- sync: z67.object({
55197
- existingEntries: z67.enum(["skip", "update"]).optional()
55378
+ contentDir: z68.string().optional(),
55379
+ sync: z68.object({
55380
+ existingEntries: z68.enum(["skip", "update"]).optional()
55198
55381
  }).optional(),
55199
- deploy: z67.object({
55200
- verifyCommand: z67.string().optional(),
55201
- prebuildOutput: z67.string().optional()
55382
+ deploy: z68.object({
55383
+ verifyCommand: z68.string().optional(),
55384
+ prebuildOutput: z68.string().optional()
55202
55385
  }).optional(),
55203
- themeSource: z67.enum(["local", "cms"]).optional(),
55204
- activeTheme: z67.string().optional(),
55205
- enablePortal: z67.boolean().optional(),
55386
+ themeSource: z68.enum(["local", "cms"]).optional(),
55387
+ activeTheme: z68.string().optional(),
55388
+ enablePortal: z68.boolean().optional(),
55206
55389
  dashboard: dashboardConfigSchema.optional()
55207
55390
  }).strict();
55208
- var pushSdkConfigBodySchema = z67.object({
55391
+ var pushSdkConfigBodySchema = z68.object({
55209
55392
  config: riverbankSiteConfigInputSchema,
55210
- forceContentTypes: z67.boolean().optional()
55393
+ forceContentTypes: z68.boolean().optional()
55211
55394
  }).strict();
55212
55395
 
55213
55396
  // ../api/src/siteOnboarding.ts
55214
- import { z as z68 } from "zod";
55397
+ import { z as z69 } from "zod";
55215
55398
  var LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS = {
55216
55399
  configure_appointments: {
55217
55400
  requirementId: "configure_appointments",
55218
55401
  reason: "launch_anyway"
55219
55402
  }
55220
55403
  };
55221
- var acknowledgeLaunchRequirementRequestSchema = z68.discriminatedUnion(
55404
+ var acknowledgeLaunchRequirementRequestSchema = z69.discriminatedUnion(
55222
55405
  "requirementId",
55223
55406
  [
55224
- z68.object({
55225
- requirementId: z68.literal("review_generated_site")
55407
+ z69.object({
55408
+ requirementId: z69.literal("review_generated_site")
55226
55409
  }),
55227
- z68.object({
55228
- requirementId: z68.literal(
55410
+ z69.object({
55411
+ requirementId: z69.literal(
55229
55412
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.requirementId
55230
55413
  ),
55231
- overrideReason: z68.literal(
55414
+ overrideReason: z69.literal(
55232
55415
  LAUNCH_REQUIREMENT_OVERRIDE_DEFINITIONS.configure_appointments.reason
55233
55416
  )
55234
55417
  })
55235
55418
  ]
55236
55419
  );
55237
- var goLiveSiteRequestSchema = z68.object({
55238
- acceptExtraSiteCharge: z68.boolean().optional()
55420
+ var goLiveSiteRequestSchema = z69.object({
55421
+ acceptExtraSiteCharge: z69.boolean().optional()
55239
55422
  });
55240
55423
 
55241
55424
  // ../surfaces/src/index.ts
@@ -55840,51 +56023,51 @@ function isRecord5(value) {
55840
56023
  }
55841
56024
 
55842
56025
  // ../api/src/appointmentSetup.ts
55843
- import { z as z69 } from "zod";
56026
+ import { z as z70 } from "zod";
55844
56027
  var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
55845
- var appointmentSetupRefSchema = z69.discriminatedUnion("kind", [
55846
- z69.object({ kind: z69.literal("existing"), id: z69.string().min(1) }),
55847
- z69.object({ kind: z69.literal("new"), draftId: z69.string().min(1) })
56028
+ var appointmentSetupRefSchema = z70.discriminatedUnion("kind", [
56029
+ z70.object({ kind: z70.literal("existing"), id: z70.string().min(1) }),
56030
+ z70.object({ kind: z70.literal("new"), draftId: z70.string().min(1) })
55848
56031
  ]);
55849
- var appointmentSetupVenueChoiceSchema = z69.discriminatedUnion("kind", [
55850
- z69.object({ kind: z69.literal("none") }),
55851
- z69.object({ kind: z69.literal("existing"), venueId: z69.string().min(1) }),
55852
- z69.object({
55853
- kind: z69.literal("create"),
55854
- draftId: z69.string().min(1),
55855
- title: z69.string().trim().min(1),
55856
- description: z69.string().nullable(),
55857
- timezone: z69.string().trim().min(1).nullable(),
55858
- addressJson: z69.record(z69.string(), z69.unknown()),
55859
- locationJson: z69.object({ lat: z69.number(), lng: z69.number() }).nullable()
56032
+ var appointmentSetupVenueChoiceSchema = z70.discriminatedUnion("kind", [
56033
+ z70.object({ kind: z70.literal("none") }),
56034
+ z70.object({ kind: z70.literal("existing"), venueId: z70.string().min(1) }),
56035
+ z70.object({
56036
+ kind: z70.literal("create"),
56037
+ draftId: z70.string().min(1),
56038
+ title: z70.string().trim().min(1),
56039
+ description: z70.string().nullable(),
56040
+ timezone: z70.string().trim().min(1).nullable(),
56041
+ addressJson: z70.record(z70.string(), z70.unknown()),
56042
+ locationJson: z70.object({ lat: z70.number(), lng: z70.number() }).nullable()
55860
56043
  })
55861
56044
  ]);
55862
- var appointmentSetupPaymentDraftSchema = z69.object({
55863
- priceType: z69.union([z69.literal("free"), z69.literal("paid")])
55864
- });
55865
- var appointmentSetupServiceAssignmentDraftSchema = z69.discriminatedUnion("kind", [
55866
- z69.object({ kind: z69.literal("all_practitioners") }),
55867
- z69.object({
55868
- kind: z69.literal("selected_practitioners"),
55869
- resourceRefs: z69.array(appointmentSetupRefSchema)
56045
+ var appointmentSetupPaymentDraftSchema = z70.object({
56046
+ priceType: z70.union([z70.literal("free"), z70.literal("paid")])
56047
+ });
56048
+ var appointmentSetupServiceAssignmentDraftSchema = z70.discriminatedUnion("kind", [
56049
+ z70.object({ kind: z70.literal("all_practitioners") }),
56050
+ z70.object({
56051
+ kind: z70.literal("selected_practitioners"),
56052
+ resourceRefs: z70.array(appointmentSetupRefSchema)
55870
56053
  })
55871
56054
  ]);
55872
- var appointmentSetupServiceDraftSchema = z69.object({
56055
+ var appointmentSetupServiceDraftSchema = z70.object({
55873
56056
  ref: appointmentSetupRefSchema,
55874
- title: z69.string().trim().min(1),
55875
- description: z69.string().nullable(),
55876
- durationMinutes: z69.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
55877
- prepMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
55878
- cleanupMinutes: z69.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
55879
- priceAmount: z69.number().int().nonnegative().nullable(),
55880
- isActive: z69.boolean(),
55881
- locationType: z69.union([
55882
- z69.literal("virtual"),
55883
- z69.literal("in_person"),
55884
- z69.literal("hybrid")
56057
+ title: z70.string().trim().min(1),
56058
+ description: z70.string().nullable(),
56059
+ durationMinutes: z70.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
56060
+ prepMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56061
+ cleanupMinutes: z70.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
56062
+ priceAmount: z70.number().int().nonnegative().nullable(),
56063
+ isActive: z70.boolean(),
56064
+ locationType: z70.union([
56065
+ z70.literal("virtual"),
56066
+ z70.literal("in_person"),
56067
+ z70.literal("hybrid")
55885
56068
  ]),
55886
56069
  venue: appointmentSetupVenueChoiceSchema,
55887
- timezone: z69.string().trim().min(1).nullable(),
56070
+ timezone: z70.string().trim().min(1).nullable(),
55888
56071
  payment: appointmentSetupPaymentDraftSchema,
55889
56072
  assignment: appointmentSetupServiceAssignmentDraftSchema
55890
56073
  }).superRefine((service, ctx) => {
@@ -55903,49 +56086,49 @@ var appointmentSetupServiceDraftSchema = z69.object({
55903
56086
  });
55904
56087
  }
55905
56088
  });
55906
- var appointmentSetupPractitionerDraftSchema = z69.object({
56089
+ var appointmentSetupPractitionerDraftSchema = z70.object({
55907
56090
  ref: appointmentSetupRefSchema,
55908
- displayName: z69.string().trim().min(1),
55909
- bio: z69.string().nullable(),
55910
- timezone: z69.string().trim().min(1),
55911
- colorHex: z69.string().nullable()
55912
- });
55913
- var appointmentSetupWeeklyWindowDraftSchema = z69.object({
55914
- weekday: z69.number().int().min(0).max(6),
55915
- startTime: z69.string(),
55916
- endTime: z69.string()
55917
- });
55918
- var appointmentSetupStartTimePolicyDraftSchema = z69.discriminatedUnion("kind", [
55919
- z69.object({ kind: z69.literal("automatic_spacing") }),
55920
- z69.object({
55921
- kind: z69.literal("regular_interval"),
55922
- intervalMinutes: z69.union([
55923
- z69.literal(10),
55924
- z69.literal(15),
55925
- z69.literal(20),
55926
- z69.literal(30),
55927
- z69.literal(45),
55928
- z69.literal(60)
56091
+ displayName: z70.string().trim().min(1),
56092
+ bio: z70.string().nullable(),
56093
+ timezone: z70.string().trim().min(1),
56094
+ colorHex: z70.string().nullable()
56095
+ });
56096
+ var appointmentSetupWeeklyWindowDraftSchema = z70.object({
56097
+ weekday: z70.number().int().min(0).max(6),
56098
+ startTime: z70.string(),
56099
+ endTime: z70.string()
56100
+ });
56101
+ var appointmentSetupStartTimePolicyDraftSchema = z70.discriminatedUnion("kind", [
56102
+ z70.object({ kind: z70.literal("automatic_spacing") }),
56103
+ z70.object({
56104
+ kind: z70.literal("regular_interval"),
56105
+ intervalMinutes: z70.union([
56106
+ z70.literal(10),
56107
+ z70.literal(15),
56108
+ z70.literal(20),
56109
+ z70.literal(30),
56110
+ z70.literal(45),
56111
+ z70.literal(60)
55929
56112
  ])
55930
56113
  })
55931
56114
  ]);
55932
- var appointmentSetupAvailabilityDraftSchema = z69.object({
55933
- kind: z69.literal("weekly_windows"),
56115
+ var appointmentSetupAvailabilityDraftSchema = z70.object({
56116
+ kind: z70.literal("weekly_windows"),
55934
56117
  resourceRef: appointmentSetupRefSchema,
55935
56118
  serviceRef: appointmentSetupRefSchema.nullable(),
55936
- windows: z69.array(appointmentSetupWeeklyWindowDraftSchema),
56119
+ windows: z70.array(appointmentSetupWeeklyWindowDraftSchema),
55937
56120
  startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
55938
56121
  });
55939
56122
  var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
55940
56123
  var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
55941
- var appointmentSetupBookingNoticeSchema = z69.object({
55942
- minLeadMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
55943
- maxBookingNoticeMinutes: z69.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
55944
- });
55945
- var applyAppointmentSetupRequestSchema = z69.object({
55946
- services: z69.array(appointmentSetupServiceDraftSchema),
55947
- practitioners: z69.array(appointmentSetupPractitionerDraftSchema),
55948
- availability: z69.array(appointmentSetupAvailabilityDraftSchema),
56124
+ var appointmentSetupBookingNoticeSchema = z70.object({
56125
+ minLeadMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
56126
+ maxBookingNoticeMinutes: z70.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
56127
+ });
56128
+ var applyAppointmentSetupRequestSchema = z70.object({
56129
+ services: z70.array(appointmentSetupServiceDraftSchema),
56130
+ practitioners: z70.array(appointmentSetupPractitionerDraftSchema),
56131
+ availability: z70.array(appointmentSetupAvailabilityDraftSchema),
55949
56132
  bookingNotice: appointmentSetupBookingNoticeSchema
55950
56133
  });
55951
56134
 
@@ -55978,24 +56161,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
55978
56161
  ];
55979
56162
 
55980
56163
  // ../api/src/siteBanner.ts
55981
- import { z as z70 } from "zod";
56164
+ import { z as z71 } from "zod";
55982
56165
  var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
55983
56166
  var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
55984
56167
  var SITE_BANNER_MAX_TEXT_LENGTH = 320;
55985
56168
  var SITE_BANNER_MAX_PARAGRAPHS = 2;
55986
- var siteBannerScopeSchema = z70.enum(SITE_BANNER_SCOPE_VALUES);
55987
- var siteBannerToneSchema = z70.enum(SITE_BANNER_TONE_VALUES);
55988
- var siteBannerBodySchema = z70.unknown().transform(unwrapRichTextValue);
55989
- var siteBannerCtaSchema = z70.object({
55990
- label: z70.string().trim().min(1),
56169
+ var siteBannerScopeSchema = z71.enum(SITE_BANNER_SCOPE_VALUES);
56170
+ var siteBannerToneSchema = z71.enum(SITE_BANNER_TONE_VALUES);
56171
+ var siteBannerBodySchema = z71.unknown().transform(unwrapRichTextValue);
56172
+ var siteBannerCtaSchema = z71.object({
56173
+ label: z71.string().trim().min(1),
55991
56174
  link: linkPayloadSchema
55992
56175
  });
55993
- var siteBannerSettingsSchema = z70.discriminatedUnion("enabled", [
55994
- z70.object({
55995
- enabled: z70.literal(false)
56176
+ var siteBannerSettingsSchema = z71.discriminatedUnion("enabled", [
56177
+ z71.object({
56178
+ enabled: z71.literal(false)
55996
56179
  }),
55997
- z70.object({
55998
- enabled: z70.literal(true),
56180
+ z71.object({
56181
+ enabled: z71.literal(true),
55999
56182
  scope: siteBannerScopeSchema,
56000
56183
  tone: siteBannerToneSchema,
56001
56184
  body: siteBannerBodySchema,
@@ -56009,7 +56192,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
56009
56192
  const analysis = analyzeSiteBannerBody(value.body);
56010
56193
  for (const issue2 of analysis.issues) {
56011
56194
  ctx.addIssue({
56012
- code: z70.ZodIssueCode.custom,
56195
+ code: z71.ZodIssueCode.custom,
56013
56196
  path: ["body"],
56014
56197
  message: siteBannerBodyIssueMessage(issue2)
56015
56198
  });
@@ -56253,71 +56436,71 @@ function parsePublicProductCategorySelector(value) {
56253
56436
  }
56254
56437
 
56255
56438
  // ../api/src/aiPlayground.ts
56256
- import { z as z71 } from "zod";
56257
- var Rfc6902PatchOp = z71.discriminatedUnion("op", [
56439
+ import { z as z72 } from "zod";
56440
+ var Rfc6902PatchOp = z72.discriminatedUnion("op", [
56258
56441
  // Standard RFC-6902 operations
56259
- z71.object({
56260
- op: z71.literal("add"),
56261
- path: z71.string(),
56262
- value: z71.unknown()
56442
+ z72.object({
56443
+ op: z72.literal("add"),
56444
+ path: z72.string(),
56445
+ value: z72.unknown()
56263
56446
  }),
56264
- z71.object({
56265
- op: z71.literal("remove"),
56266
- path: z71.string()
56447
+ z72.object({
56448
+ op: z72.literal("remove"),
56449
+ path: z72.string()
56267
56450
  }),
56268
- z71.object({
56269
- op: z71.literal("replace"),
56270
- path: z71.string(),
56271
- value: z71.unknown()
56451
+ z72.object({
56452
+ op: z72.literal("replace"),
56453
+ path: z72.string(),
56454
+ value: z72.unknown()
56272
56455
  }),
56273
- z71.object({
56274
- op: z71.literal("move"),
56275
- from: z71.string(),
56276
- path: z71.string()
56456
+ z72.object({
56457
+ op: z72.literal("move"),
56458
+ from: z72.string(),
56459
+ path: z72.string()
56277
56460
  }),
56278
- z71.object({
56279
- op: z71.literal("copy"),
56280
- from: z71.string(),
56281
- path: z71.string()
56461
+ z72.object({
56462
+ op: z72.literal("copy"),
56463
+ from: z72.string(),
56464
+ path: z72.string()
56282
56465
  }),
56283
56466
  // Block-level operations (Phase 2)
56284
- z71.object({
56285
- op: z71.literal("add_block"),
56286
- blockKind: z71.string(),
56287
- afterBlockId: z71.string().nullable(),
56288
- content: z71.record(z71.string(), z71.unknown()),
56289
- rationale: z71.string()
56467
+ z72.object({
56468
+ op: z72.literal("add_block"),
56469
+ blockKind: z72.string(),
56470
+ afterBlockId: z72.string().nullable(),
56471
+ content: z72.record(z72.string(), z72.unknown()),
56472
+ rationale: z72.string()
56290
56473
  }),
56291
- z71.object({
56292
- op: z71.literal("delete_block"),
56293
- blockId: z71.string(),
56294
- rationale: z71.string()
56474
+ z72.object({
56475
+ op: z72.literal("delete_block"),
56476
+ blockId: z72.string(),
56477
+ rationale: z72.string()
56295
56478
  }),
56296
- z71.object({
56297
- op: z71.literal("reorder_block"),
56298
- blockId: z71.string(),
56299
- afterBlockId: z71.string().nullable(),
56300
- rationale: z71.string()
56479
+ z72.object({
56480
+ op: z72.literal("reorder_block"),
56481
+ blockId: z72.string(),
56482
+ afterBlockId: z72.string().nullable(),
56483
+ rationale: z72.string()
56301
56484
  })
56302
56485
  ]);
56303
- var PlaygroundProposeRequest = z71.object({
56304
- request: z71.string().min(1).max(2e3)
56486
+ var PlaygroundProposeRequest = z72.object({
56487
+ request: z72.string().min(1).max(2e3)
56305
56488
  });
56306
- var MultiPagePatchEnvelope = z71.object({
56307
- pageId: z71.string(),
56308
- blockId: z71.string().optional(),
56489
+ var MultiPagePatchEnvelope = z72.object({
56490
+ pageId: z72.string(),
56491
+ blockId: z72.string().optional(),
56309
56492
  // Not present for page-level ops
56310
- blockKind: z71.string().optional(),
56311
- blockPurpose: z71.string().optional().nullable(),
56312
- ops: z71.array(Rfc6902PatchOp),
56313
- rationale: z71.string(),
56314
- currentContent: z71.record(z71.string(), z71.unknown()).optional()
56493
+ blockKind: z72.string().optional(),
56494
+ blockPurpose: z72.string().optional().nullable(),
56495
+ ops: z72.array(Rfc6902PatchOp),
56496
+ rationale: z72.string(),
56497
+ currentContent: z72.record(z72.string(), z72.unknown()).optional()
56315
56498
  });
56316
- var MultiPageUpdateResponse = z71.object({
56317
- patches: z71.array(MultiPagePatchEnvelope),
56318
- assistantMessage: z71.string(),
56319
- pagesModified: z71.number(),
56320
- toolCallsUsed: z71.number()
56499
+ var MultiPageUpdateResponse = z72.object({
56500
+ patches: z72.array(MultiPagePatchEnvelope),
56501
+ assistantMessage: z72.string(),
56502
+ pagesModified: z72.number(),
56503
+ toolCallsUsed: z72.number()
56321
56504
  });
56322
56505
 
56323
56506
  // src/data/prefetchBlockData.ts
@@ -57122,7 +57305,7 @@ function ThemeScope2(props2) {
57122
57305
  }
57123
57306
 
57124
57307
  // src/rendering/components/pageShared.tsx
57125
- import { jsx as jsx58 } from "react/jsx-runtime";
57308
+ import { jsx as jsx59 } from "react/jsx-runtime";
57126
57309
  function toPageHydrationBootstrapConfig(props2) {
57127
57310
  return {
57128
57311
  siteId: props2.siteId,
@@ -57154,7 +57337,7 @@ function PageContent({
57154
57337
  }) {
57155
57338
  const baseTokens = providedTokens ?? buildThemeRuntime2(theme).tokens;
57156
57339
  const themeTokens = sdkConfig?.theme?.palette ? { ...baseTokens, palette: { ...baseTokens.palette, ...sdkConfig.theme.palette } } : baseTokens;
57157
- const content = /* @__PURE__ */ jsx58(
57340
+ const content = /* @__PURE__ */ jsx59(
57158
57341
  PageRenderer2,
57159
57342
  {
57160
57343
  theme,
@@ -57190,13 +57373,13 @@ function PageContent({
57190
57373
  customBlocks
57191
57374
  }
57192
57375
  );
57193
- return useThemeScope ? /* @__PURE__ */ jsx58(ThemeScope2, { theme, children: content }) : content;
57376
+ return useThemeScope ? /* @__PURE__ */ jsx59(ThemeScope2, { theme, children: content }) : content;
57194
57377
  }
57195
57378
 
57196
57379
  // src/rendering/components/Page.server.tsx
57197
- import { jsx as jsx59 } from "react/jsx-runtime";
57380
+ import { jsx as jsx60 } from "react/jsx-runtime";
57198
57381
  function Page(props2) {
57199
- return /* @__PURE__ */ jsx59(PageContent, { ...props2 });
57382
+ return /* @__PURE__ */ jsx60(PageContent, { ...props2 });
57200
57383
  }
57201
57384
 
57202
57385
  // src/rendering/overrides.ts
@@ -57227,7 +57410,7 @@ function collectBlockKindsFromValue(value, usedKinds, seen) {
57227
57410
  collectBlockKindsFromValue(child, usedKinds, seen);
57228
57411
  }
57229
57412
  }
57230
- function collectUsedBlockKinds(page) {
57413
+ function collectUsedBlockKindsFromPageOutline(page) {
57231
57414
  const usedKinds = /* @__PURE__ */ new Set();
57232
57415
  const seen = /* @__PURE__ */ new WeakSet();
57233
57416
  for (const block of page?.blocks ?? []) {
@@ -57235,6 +57418,12 @@ function collectUsedBlockKinds(page) {
57235
57418
  }
57236
57419
  return usedKinds;
57237
57420
  }
57421
+ function buildPageBlockKindIndex(page) {
57422
+ return {
57423
+ kind: "page-block-kind-index",
57424
+ blockKinds: collectUsedBlockKindsFromPageOutline(page)
57425
+ };
57426
+ }
57238
57427
  function shortBlockKind(blockKind) {
57239
57428
  return blockKind.replace(/^block\./, "");
57240
57429
  }
@@ -57266,7 +57455,8 @@ async function resolveBlockOverridesForPage(registrations, page) {
57266
57455
  if (!registrations) return void 0;
57267
57456
  const entries = Object.entries(registrations);
57268
57457
  if (entries.length === 0) return void 0;
57269
- const selectedKeys = selectOverrideKeysForUsedKinds(collectUsedBlockKinds(page), entries);
57458
+ const pageBlockKindIndex = buildPageBlockKindIndex(page);
57459
+ const selectedKeys = selectOverrideKeysForUsedKinds(pageBlockKindIndex.blockKinds, entries);
57270
57460
  if (selectedKeys.size === 0) return void 0;
57271
57461
  const resolved = {};
57272
57462
  for (const [key, registration] of entries) {
@@ -57881,7 +58071,7 @@ function getEntrySubrouteMetadataOverrides(args) {
57881
58071
  }
57882
58072
 
57883
58073
  // src/next/catch-all.tsx
57884
- import { jsx as jsx60, jsxs as jsxs42 } from "react/jsx-runtime";
58074
+ import { jsx as jsx61, jsxs as jsxs43 } from "react/jsx-runtime";
57885
58075
  function isExpectedNotFoundError(error) {
57886
58076
  return typeof error === "object" && error !== null && "status" in error && Reflect.get(error, "status") === 404;
57887
58077
  }
@@ -57963,7 +58153,7 @@ function createCatchAllPage(options) {
57963
58153
  if (beforeRender) {
57964
58154
  const intercepted = await beforeRender({ content, path, preview, useThemeScope, searchParams });
57965
58155
  if (intercepted !== null) {
57966
- return Wrapper ? /* @__PURE__ */ jsx60(Wrapper, { children: intercepted }) : intercepted;
58156
+ return Wrapper ? /* @__PURE__ */ jsx61(Wrapper, { children: intercepted }) : intercepted;
57967
58157
  }
57968
58158
  }
57969
58159
  const isDevelopment = process.env.NODE_ENV !== "production";
@@ -57999,7 +58189,7 @@ function createCatchAllPage(options) {
57999
58189
  let rendered;
58000
58190
  if (isPageContent(content)) {
58001
58191
  const resolvedBlockOverrides = await resolveBlockOverridesForPage(blockOverrides, content.page);
58002
- rendered = /* @__PURE__ */ jsx60(
58192
+ rendered = /* @__PURE__ */ jsx61(
58003
58193
  Page,
58004
58194
  {
58005
58195
  page: content.page,
@@ -58023,7 +58213,7 @@ function createCatchAllPage(options) {
58023
58213
  return notFound();
58024
58214
  }
58025
58215
  const resolvedBlockOverrides = await resolveBlockOverridesForPage(blockOverrides, content.templatePage);
58026
- rendered = /* @__PURE__ */ jsx60(
58216
+ rendered = /* @__PURE__ */ jsx61(
58027
58217
  Page,
58028
58218
  {
58029
58219
  page: content.templatePage,
@@ -58051,7 +58241,7 @@ function createCatchAllPage(options) {
58051
58241
  const hydrationBootstrap = (
58052
58242
  // #813: keep automatic hydration at the catch-all seam so Layout/Page.server
58053
58243
  // remain RSC-safe while canonical Next SDK sites still bootstrap islands.
58054
- /* @__PURE__ */ jsx60(
58244
+ /* @__PURE__ */ jsx61(
58055
58245
  BlocksIslandsHydrator,
58056
58246
  {
58057
58247
  ...toPageHydrationBootstrapConfig({
@@ -58062,11 +58252,11 @@ function createCatchAllPage(options) {
58062
58252
  }
58063
58253
  )
58064
58254
  );
58065
- const pageWithLayout = /* @__PURE__ */ jsxs42("main", { children: [
58255
+ const pageWithLayout = /* @__PURE__ */ jsxs43("main", { children: [
58066
58256
  hydrationBootstrap,
58067
58257
  rendered
58068
58258
  ] });
58069
- return Wrapper ? /* @__PURE__ */ jsx60(Wrapper, { children: pageWithLayout }) : pageWithLayout;
58259
+ return Wrapper ? /* @__PURE__ */ jsx61(Wrapper, { children: pageWithLayout }) : pageWithLayout;
58070
58260
  }
58071
58261
  async function generateMetadataFn({ params, searchParams: searchParamsPromise }) {
58072
58262
  const [{ slug }, searchParams] = await Promise.all([
@@ -58244,7 +58434,7 @@ var SimpleCache = class {
58244
58434
  };
58245
58435
 
58246
58436
  // src/version.ts
58247
- var SDK_VERSION = "0.74.0";
58437
+ var SDK_VERSION = "0.76.0";
58248
58438
 
58249
58439
  // src/client/error.ts
58250
58440
  var RiverbankApiError = class _RiverbankApiError extends Error {