@riverbankcms/sdk 0.72.0 → 0.75.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 (146) hide show
  1. package/README.md +1 -1
  2. package/dist/{PreviewEditorSidebar-44T64SAR.mjs → PreviewEditorSidebar-U2IHCBYN.mjs} +3 -3
  3. package/dist/{PreviewEditorUI-4WKHZTXW.mjs → PreviewEditorUI-ZGH2RQNP.mjs} +3 -3
  4. package/dist/SdkPreviewModeRuntime-MTUGBTLQ.mjs +8 -0
  5. package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -10
  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/publicExperienceEndpoints.d.ts +2 -1
  10. package/dist/_dts/block-form/src/blockDraftSaveability.d.ts +4 -1
  11. package/dist/_dts/blocks/src/client/booking-form.d.ts +2 -0
  12. package/dist/_dts/blocks/src/client/carousel.d.ts +1 -0
  13. package/dist/_dts/blocks/src/client/course-registration.d.ts +2 -0
  14. package/dist/_dts/blocks/src/client/events.d.ts +4 -0
  15. package/dist/_dts/blocks/src/client/form.d.ts +2 -0
  16. package/dist/_dts/blocks/src/client/header.d.ts +1 -0
  17. package/dist/_dts/blocks/src/client/location-map.d.ts +1 -0
  18. package/dist/_dts/blocks/src/client/newsletter-form.d.ts +2 -0
  19. package/dist/_dts/blocks/src/client/shop.d.ts +6 -0
  20. package/dist/_dts/blocks/src/lib/video.d.ts +2 -0
  21. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +21 -1
  22. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +6 -6
  23. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +15 -1
  24. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +11 -0
  25. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +1 -0
  26. package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +13 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +3 -2
  28. package/dist/_dts/blocks/src/system/runtime/nodes/events/index.d.ts +3 -0
  29. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +1 -0
  30. package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +1 -0
  31. package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +6 -0
  32. package/dist/_dts/content-editor/src/hooks/validateBlocksForPublish.d.ts +5 -0
  33. package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +12 -2
  34. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  35. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -2
  36. package/dist/_dts/sdk/src/rendering/islands/deferredVideoEmbeds.d.ts +2 -0
  37. package/dist/_dts/sdk/src/rendering/islands/enhancers/accordion.d.ts +1 -0
  38. package/dist/_dts/sdk/src/rendering/islands/enhancers/bookingForm.d.ts +1 -0
  39. package/dist/_dts/sdk/src/rendering/islands/enhancers/carousel.d.ts +1 -0
  40. package/dist/_dts/sdk/src/rendering/islands/enhancers/cart.d.ts +1 -0
  41. package/dist/_dts/sdk/src/rendering/islands/enhancers/checkout.d.ts +1 -0
  42. package/dist/_dts/sdk/src/rendering/islands/enhancers/courseRegistration.d.ts +1 -0
  43. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCalendar.d.ts +1 -0
  44. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventCombined.d.ts +1 -0
  45. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventDetails.d.ts +1 -0
  46. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventListing.d.ts +1 -0
  47. package/dist/_dts/sdk/src/rendering/islands/enhancers/eventRegistration.d.ts +1 -0
  48. package/dist/_dts/sdk/src/rendering/islands/enhancers/form.d.ts +1 -0
  49. package/dist/_dts/sdk/src/rendering/islands/enhancers/headerSection.d.ts +1 -0
  50. package/dist/_dts/sdk/src/rendering/islands/enhancers/locationMap.d.ts +1 -0
  51. package/dist/_dts/sdk/src/rendering/islands/enhancers/newsletterForm.d.ts +1 -0
  52. package/dist/_dts/sdk/src/rendering/islands/enhancers/productDetail.d.ts +1 -0
  53. package/dist/_dts/sdk/src/rendering/islands/enhancers/productList.d.ts +1 -0
  54. package/dist/_dts/sdk/src/rendering/islands/enhancers/shop.d.ts +1 -0
  55. package/dist/_dts/sdk/src/rendering/islands/hydrateBlocksIslands.d.ts +2 -2
  56. package/dist/_dts/sdk/src/rendering/islands/propsDecoder.d.ts +7 -0
  57. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +9 -0
  58. package/dist/_dts/sdk/src/rendering/server.d.ts +3 -0
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/_dts/theme-core/src/accordions/types.d.ts +3 -3
  61. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +7 -7
  62. package/dist/_dts/theme-core/src/buttons/types.d.ts +20 -20
  63. package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
  64. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  65. package/dist/_dts/theme-core/src/header/navDropdownSizing.d.ts +7 -0
  66. package/dist/_dts/theme-core/src/inputs/types.d.ts +3 -3
  67. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  68. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +156 -156
  69. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  70. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +4 -4
  71. package/dist/_dts/theme-core/src/schema.d.ts +178 -178
  72. package/dist/_dts/theme-core/src/shared/componentStyles.d.ts +2 -2
  73. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +8 -8
  74. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +5 -5
  75. package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
  76. package/dist/{chunk-G4NLITC2.mjs → chunk-BGMNDF6T.mjs} +7 -7
  77. package/dist/{chunk-3YNCQG5N.mjs → chunk-GFE74WRD.mjs} +457 -98
  78. package/dist/{chunk-HV745JYE.mjs → chunk-RWXQBRQZ.mjs} +1 -1
  79. package/dist/{chunk-7RX72SK2.mjs → chunk-VX7B5VAC.mjs} +36 -25
  80. package/dist/{chunk-YRJKZEQ3.mjs → chunk-Z7JLNTJR.mjs} +1 -1
  81. package/dist/{chunk-KWQPAJYS.mjs → chunk-ZSHFGFUG.mjs} +2 -2
  82. package/dist/cli/index.mjs +3498 -3826
  83. package/dist/client/accordion-T2UD2ZTH.mjs +120 -0
  84. package/dist/client/altcha-LIGLPZS5.mjs +2755 -0
  85. package/dist/client/bookingForm-GUP75FKN.mjs +3022 -0
  86. package/dist/client/bookings.mjs +32 -10
  87. package/dist/client/carousel-2NQA6V57.mjs +47 -0
  88. package/dist/client/cart-5TFIAFDS.mjs +18 -0
  89. package/dist/client/checkout-TP4WAHZE.mjs +18 -0
  90. package/dist/client/chunk-2PHQZ666.mjs +383 -0
  91. package/dist/client/chunk-3DCJ45Z2.mjs +36 -0
  92. package/dist/client/chunk-3PEDD5KJ.mjs +146 -0
  93. package/dist/client/chunk-CY2ZTSE5.mjs +204 -0
  94. package/dist/client/chunk-F7LHOKEH.mjs +146 -0
  95. package/dist/client/chunk-FU2QRZMX.mjs +7617 -0
  96. package/dist/client/chunk-I2MMZO53.mjs +6 -0
  97. package/dist/client/chunk-II7O4XN3.mjs +2206 -0
  98. package/dist/client/chunk-M3L3KYYR.mjs +1181 -0
  99. package/dist/client/chunk-N7PBWBWQ.mjs +26 -0
  100. package/dist/client/chunk-NWOUL6JY.mjs +1378 -0
  101. package/dist/client/chunk-OJPZEZU2.mjs +31 -0
  102. package/dist/client/chunk-PMAIXMAB.mjs +1960 -0
  103. package/dist/client/chunk-RTZ3JKKX.mjs +178 -0
  104. package/dist/client/chunk-TQ5MSPDX.mjs +74 -0
  105. package/dist/client/chunk-VUAOE3AG.mjs +5592 -0
  106. package/dist/client/chunk-WJXXNDSE.mjs +245 -0
  107. package/dist/client/chunk-YLMKMCSJ.mjs +86 -0
  108. package/dist/client/chunk-ZLMS67RR.mjs +106 -0
  109. package/dist/client/client.mjs +51865 -52071
  110. package/dist/client/courseRegistration-5DPU6PDY.mjs +1737 -0
  111. package/dist/client/eventCalendar-F3GZGTEF.mjs +40 -0
  112. package/dist/client/eventCombined-BQOB6QMY.mjs +37 -0
  113. package/dist/client/eventDetails-PEM2EJWE.mjs +25 -0
  114. package/dist/client/eventListing-YMIQPVME.mjs +40 -0
  115. package/dist/client/eventRegistration-4I6ZNDUF.mjs +40 -0
  116. package/dist/client/form-ZJVAYZ6G.mjs +300 -0
  117. package/dist/client/headerSection-TOT5MGTF.mjs +729 -0
  118. package/dist/client/hooks.mjs +91 -42
  119. package/dist/client/locationMap-J66NZREU.mjs +227 -0
  120. package/dist/client/newsletterForm-ET2XUMRO.mjs +208 -0
  121. package/dist/client/productDetail-C2XIH7C5.mjs +18 -0
  122. package/dist/client/productList-T2AZLFTP.mjs +18 -0
  123. package/dist/client/rendering/client.mjs +12796 -18295
  124. package/dist/client/rendering/islands.mjs +108 -44022
  125. package/dist/client/rendering.mjs +45141 -45346
  126. package/dist/client/shop-UZ6IUZXD.mjs +20 -0
  127. package/dist/preview-next/before-render.mjs +37 -25
  128. package/dist/preview-next/client/runtime.mjs +5 -5
  129. package/dist/preview-next/middleware.mjs +37 -25
  130. package/dist/{sdk-runtime-NGDWSWOS.mjs → sdk-runtime-JCUQM63Y.mjs} +6 -6
  131. package/dist/server/components.mjs +472 -276
  132. package/dist/server/config-validation.mjs +91 -42
  133. package/dist/server/config.mjs +91 -42
  134. package/dist/server/data.mjs +91 -42
  135. package/dist/server/index.mjs +45 -33
  136. package/dist/server/next.mjs +468 -272
  137. package/dist/server/page-converter.mjs +41 -17
  138. package/dist/server/prebuild.mjs +1 -1
  139. package/dist/server/rendering/server.mjs +556 -275
  140. package/dist/server/rendering.mjs +474 -278
  141. package/dist/server/routing.mjs +99 -43
  142. package/dist/server/server.mjs +92 -43
  143. package/dist/server/theme-bridge.mjs +29 -0
  144. package/dist/styles/index.css +16 -0
  145. package/package.json +2 -1
  146. package/dist/SdkPreviewModeRuntime-FO6V7YVY.mjs +0 -8
@@ -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
  },
@@ -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
@@ -16287,7 +16396,9 @@ function backgroundLayer(path, options = {}) {
16287
16396
  imageClassName,
16288
16397
  overlayClassName = "background-overlay rb-absolute rb-inset-0 rb-z-neg-10 rb-h-full rb-w-full rb-pointer-events-none",
16289
16398
  fallbackToken,
16290
- omitImageLayer = false
16399
+ omitImageLayer = false,
16400
+ imageLoading,
16401
+ imageFetchPriority
16291
16402
  } = options;
16292
16403
  const styleLayer = el("div", {
16293
16404
  className: styleClassName,
@@ -16303,11 +16414,14 @@ function backgroundLayer(path, options = {}) {
16303
16414
  }
16304
16415
  }
16305
16416
  });
16306
- const imageLayer = createBackgroundImageNode(path, imageClassName);
16417
+ const imageLayer = createBackgroundImageNode(path, imageClassName, {
16418
+ loading: imageLoading,
16419
+ fetchPriority: imageFetchPriority
16420
+ });
16307
16421
  const overlayLayer = createBackgroundOverlayNode(path, overlayClassName);
16308
16422
  return omitImageLayer ? [styleLayer, overlayLayer] : [styleLayer, imageLayer, overlayLayer];
16309
16423
  }
16310
- function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-10") {
16424
+ function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-10", options = {}) {
16311
16425
  const imagePath = `${path}.image`;
16312
16426
  return media(
16313
16427
  {
@@ -16328,7 +16442,9 @@ function createBackgroundImageNode(path, baseClassName = "rb-absolute rb-z-neg-1
16328
16442
  transforms: [{ id: "background.resolveImageStyle" }]
16329
16443
  }
16330
16444
  },
16331
- videoPlayback: "background"
16445
+ videoPlayback: "background",
16446
+ ...options.loading ? { loading: options.loading } : {},
16447
+ ...options.fetchPriority ? { fetchPriority: options.fetchPriority } : {}
16332
16448
  },
16333
16449
  when(imagePath),
16334
16450
  bind(imagePath)
@@ -16525,12 +16641,16 @@ function styledSection(config) {
16525
16641
  bindFrom = "_sectionStyles",
16526
16642
  imageClassName = "rb-absolute rb-z-neg-10",
16527
16643
  renderBackgroundImage = true,
16644
+ backgroundImageLoading,
16645
+ backgroundImageFetchPriority,
16528
16646
  fullWidthPath
16529
16647
  } = config;
16530
16648
  const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
16531
16649
  imageClassName,
16532
16650
  fallbackToken: background,
16533
- omitImageLayer: !renderBackgroundImage
16651
+ omitImageLayer: !renderBackgroundImage,
16652
+ imageLoading: backgroundImageLoading,
16653
+ imageFetchPriority: backgroundImageFetchPriority
16534
16654
  });
16535
16655
  const childrenArray = Array.isArray(children) ? children : [children];
16536
16656
  return section(
@@ -16745,7 +16865,7 @@ function navRow(opts) {
16745
16865
  el(
16746
16866
  "div",
16747
16867
  {
16748
- className: "nav-dropdown-menu rb-absolute rb-left-0 rb-top-full rb-z-50 rb-hidden rb-min-w-12rem rb-overflow-hidden",
16868
+ className: "nav-dropdown-menu rb-absolute rb-left-0 rb-top-full rb-z-50 rb-hidden rb-overflow-hidden",
16749
16869
  id: dropdownMenuId
16750
16870
  },
16751
16871
  [dropdownLinks]
@@ -20320,6 +20440,10 @@ var heroCopyAndCta = composeFragments([
20320
20440
  { fragment: heroCopyFragment },
20321
20441
  { fragment: heroCtaRowFragment }
20322
20442
  ]);
20443
+ var heroPriorityMediaProps = {
20444
+ loading: "eager",
20445
+ fetchPriority: "high"
20446
+ };
20323
20447
  var heroContentNodes = heroCopyAndCta.layout;
20324
20448
  function heroContentCard(children, gap) {
20325
20449
  return styledContainer({
@@ -20382,7 +20506,8 @@ function heroSplitImagePane() {
20382
20506
  [
20383
20507
  media(
20384
20508
  {
20385
- className: "rb-absolute rb-inset-0 rb-h-full rb-w-full rb-object-cover"
20509
+ className: "rb-absolute rb-inset-0 rb-h-full rb-w-full rb-object-cover",
20510
+ ...heroPriorityMediaProps
20386
20511
  },
20387
20512
  when("_sectionStyles.background.image"),
20388
20513
  bind("_sectionStyles.background.image")
@@ -20393,13 +20518,17 @@ function heroSplitImagePane() {
20393
20518
  var classicLayout = styledSection({
20394
20519
  children: heroContainerStack(heroContentNodes, "md"),
20395
20520
  // styledContainer (rb-container) already provides horizontal padding
20396
- baseClass: ""
20521
+ baseClass: "",
20522
+ backgroundImageLoading: heroPriorityMediaProps.loading,
20523
+ backgroundImageFetchPriority: heroPriorityMediaProps.fetchPriority
20397
20524
  });
20398
20525
  var microLayout = styledSection({
20399
20526
  children: heroContainerStack(heroContentNodes, "sm"),
20400
20527
  // styledContainer (rb-container) already provides horizontal padding
20401
20528
  baseClass: "",
20402
- spacing: "compact"
20529
+ spacing: "compact",
20530
+ backgroundImageLoading: heroPriorityMediaProps.loading,
20531
+ backgroundImageFetchPriority: heroPriorityMediaProps.fetchPriority
20403
20532
  });
20404
20533
  function splitLayoutWith(children) {
20405
20534
  return styledSection({
@@ -24792,7 +24921,7 @@ var cardStylingFields = [
24792
24921
  description: "Text for the event action button",
24793
24922
  required: false,
24794
24923
  multiline: false,
24795
- defaultValue: "View event",
24924
+ defaultValue: "Book now",
24796
24925
  maxLength: 40
24797
24926
  }
24798
24927
  ];
@@ -25304,6 +25433,7 @@ var eventRegistrationBlockDefinition = {
25304
25433
  limit: "50",
25305
25434
  // Get more events for selection
25306
25435
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
25436
+ readProfile: "registration",
25307
25437
  // When rendering on an event content entry page, scope the list to that entry so
25308
25438
  // the wizard always includes the current event (and avoids stale cached "all events" responses).
25309
25439
  entryId: { $bind: { from: "$root.contentEntry._entryId", fallback: "" } }
@@ -26252,7 +26382,7 @@ var eventSpotlightLayout = [
26252
26382
  columns: { $bind: { from: "content.columns", fallback: "3" } },
26253
26383
  cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
26254
26384
  buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
26255
- buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
26385
+ buttonText: { $bind: { from: "content.buttonText", fallback: "Book now" } },
26256
26386
  ctaLabel: { $bind: { from: "content.ctaLabel" } },
26257
26387
  ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
26258
26388
  showVenue: { $bind: { from: "content.showVenue" } },
@@ -26296,7 +26426,8 @@ var eventSpotlightBlockDefinition = {
26296
26426
  siteId: { $bind: { from: "$root.siteId" } },
26297
26427
  limit: { $bind: { from: "content.maxEvents", fallback: "3" } },
26298
26428
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
26299
- detailLevel: "listing"
26429
+ detailLevel: "listing",
26430
+ readProfile: "spotlight"
26300
26431
  },
26301
26432
  mode: "server"
26302
26433
  }
@@ -26768,7 +26899,7 @@ var COLUMN_CLASSES = {
26768
26899
  };
26769
26900
  function getContainerClass(layout, columns) {
26770
26901
  if (layout === "compact") {
26771
- return "rb-flex rb-flex-col rb-gap-2";
26902
+ return "event-listing-compact-container rb-flex rb-flex-col rb-gap-2";
26772
26903
  }
26773
26904
  if (layout === "stack") {
26774
26905
  return "rb-flex rb-flex-col rb-gap-6";
@@ -26899,7 +27030,7 @@ function formatEventPrice(event) {
26899
27030
  }
26900
27031
  function resolveEventCta(event, buttonText) {
26901
27032
  const { isFull: isSoldOut } = getEventAvailability(event);
26902
- const defaultButtonText = event.kind === "course_session" ? "View course" : "View event";
27033
+ const defaultButtonText = event.kind === "course_session" ? "Book course" : "Book now";
26903
27034
  const effectiveButtonText = buttonText ?? defaultButtonText;
26904
27035
  if (isSoldOut) {
26905
27036
  return { label: "Sold out", href: event.path, hidden: true };
@@ -28098,6 +28229,8 @@ var MediaNodeServer = ({
28098
28229
  className,
28099
28230
  style,
28100
28231
  videoPlayback = "inline",
28232
+ loading = "lazy",
28233
+ fetchPriority,
28101
28234
  size = ImagePresets.full,
28102
28235
  fieldPath,
28103
28236
  blockKind,
@@ -28134,7 +28267,8 @@ var MediaNodeServer = ({
28134
28267
  alt: value.alt ?? "",
28135
28268
  className,
28136
28269
  style: computedStyle,
28137
- loading: "lazy",
28270
+ loading,
28271
+ fetchPriority,
28138
28272
  decoding: "async"
28139
28273
  }
28140
28274
  );
@@ -28508,7 +28642,7 @@ var eventListingBlockRuntime = defineProgressiveBlockRuntime({
28508
28642
  containerClass: getContainerClass(layout, source.columns ?? "3"),
28509
28643
  cardVariant: source.cardVariant ?? "default",
28510
28644
  buttonVariant: source.buttonVariant ?? "primary",
28511
- buttonText: source.buttonText ?? "View event",
28645
+ buttonText: source.buttonText ?? "Book now",
28512
28646
  showVenue: source.showVenue ?? true,
28513
28647
  showMap: source.showMap ?? true,
28514
28648
  showCapacity: source.showCapacity ?? true,
@@ -28755,7 +28889,7 @@ var eventListingLayout = [
28755
28889
  loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
28756
28890
  cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
28757
28891
  buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
28758
- buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
28892
+ buttonText: { $bind: { from: "content.buttonText", fallback: "Book now" } },
28759
28893
  showVenue: { $bind: { from: "content.showVenue" } },
28760
28894
  showMap: { $bind: { from: "content.showMap" } },
28761
28895
  showCapacity: { $bind: { from: "content.showCapacity" } },
@@ -28833,6 +28967,7 @@ var eventListingBlockDefinition = {
28833
28967
  limit: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
28834
28968
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
28835
28969
  detailLevel: "listing",
28970
+ readProfile: { $bind: { from: "content.layout", fallback: "listing-card" } },
28836
28971
  kind: { $bind: { from: "content.kind" } },
28837
28972
  eventSurface: { $bind: { from: "content.eventSurface" } },
28838
28973
  eventPresets: {
@@ -28972,7 +29107,7 @@ function buildEventCalendarDisplay(source) {
28972
29107
  ),
28973
29108
  filterVenueId: normalizeEventVenueId(source.filterVenueId),
28974
29109
  buttonVariant: source.buttonVariant ?? "primary",
28975
- buttonText: source.buttonText ?? "View event",
29110
+ buttonText: source.buttonText ?? "Book now",
28976
29111
  showVenue: source.showVenue ?? true,
28977
29112
  showMap: source.showMap ?? true,
28978
29113
  showCapacity: source.showCapacity ?? true,
@@ -29161,7 +29296,7 @@ var eventCalendarLayout = [
29161
29296
  $bind: { from: "content.buttonVariant", fallback: "primary" }
29162
29297
  },
29163
29298
  buttonText: {
29164
- $bind: { from: "content.buttonText", fallback: "View event" }
29299
+ $bind: { from: "content.buttonText", fallback: "Book now" }
29165
29300
  },
29166
29301
  emptyMessage: { $bind: { from: "content.emptyMessage" } }
29167
29302
  })
@@ -29622,6 +29757,7 @@ var eventCalendarBlockDefinition = {
29622
29757
  limit: 100,
29623
29758
  stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
29624
29759
  detailLevel: "listing",
29760
+ readProfile: { $bind: { from: "content.variant", fallback: "listing-card" } },
29625
29761
  // Pass filter params if configured
29626
29762
  kind: { $bind: { from: "content.kind" } },
29627
29763
  eventSurface: { $bind: { from: "content.eventSurface" } },
@@ -35950,9 +36086,9 @@ function getEmbedUrl(info) {
35950
36086
  const kind = info.kind ?? "p";
35951
36087
  return `https://www.instagram.com/${kind}/${info.id}/embed`;
35952
36088
  }
35953
- default:
35954
- return "";
35955
36089
  }
36090
+ const exhaustive = info.provider;
36091
+ return exhaustive;
35956
36092
  }
35957
36093
  function getThumbnailUrl(info) {
35958
36094
  switch (info.provider) {
@@ -35962,9 +36098,20 @@ function getThumbnailUrl(info) {
35962
36098
  return `https://vumbnail.com/${info.id}.jpg`;
35963
36099
  case "instagram":
35964
36100
  return "";
35965
- default:
35966
- return "";
35967
36101
  }
36102
+ const exhaustive = info.provider;
36103
+ return exhaustive;
36104
+ }
36105
+ function getVideoEmbedLoadingStrategy(provider) {
36106
+ switch (provider) {
36107
+ case "youtube":
36108
+ case "vimeo":
36109
+ return "native-lazy";
36110
+ case "instagram":
36111
+ return "defer-until-near-viewport";
36112
+ }
36113
+ const exhaustive = provider;
36114
+ return exhaustive;
35968
36115
  }
35969
36116
  function getVideoEmbed(url) {
35970
36117
  const info = parseVideoUrl(url);
@@ -35979,7 +36126,7 @@ function getVideoEmbed(url) {
35979
36126
  }
35980
36127
 
35981
36128
  // ../blocks/src/system/runtime/nodes/video-embed.tsx
35982
- import { jsx as jsx18 } from "react/jsx-runtime";
36129
+ import { jsx as jsx18, jsxs as jsxs7 } from "react/jsx-runtime";
35983
36130
  var VideoEmbedNode = ({
35984
36131
  value,
35985
36132
  className,
@@ -36022,34 +36169,43 @@ var VideoEmbedNode = ({
36022
36169
  );
36023
36170
  }
36024
36171
  const title = getVideoTitle(embedInfo);
36025
- return /* @__PURE__ */ jsx18("div", { ...rest, children: /* @__PURE__ */ jsx18(
36172
+ const loadingStrategy = getVideoEmbedLoadingStrategy(embedInfo.provider);
36173
+ const shouldDeferSrc = loadingStrategy === "defer-until-near-viewport";
36174
+ return /* @__PURE__ */ jsx18("div", { ...rest, children: /* @__PURE__ */ jsxs7(
36026
36175
  "div",
36027
36176
  {
36028
36177
  className,
36178
+ "data-rb-video-embed-wrapper": shouldDeferSrc ? "true" : void 0,
36029
36179
  style: {
36030
36180
  ...style,
36031
36181
  aspectRatio: resolvedAspectRatio,
36032
36182
  position: "relative",
36033
36183
  width: "100%"
36034
36184
  },
36035
- children: /* @__PURE__ */ jsx18(
36036
- "iframe",
36037
- {
36038
- src: embedInfo.embedUrl,
36039
- title,
36040
- style: {
36041
- position: "absolute",
36042
- top: 0,
36043
- left: 0,
36044
- width: "100%",
36045
- height: "100%",
36046
- border: "none"
36047
- },
36048
- allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
36049
- referrerPolicy: "no-referrer-when-downgrade",
36050
- allowFullScreen: true
36051
- }
36052
- )
36185
+ children: [
36186
+ /* @__PURE__ */ jsx18(
36187
+ "iframe",
36188
+ {
36189
+ src: shouldDeferSrc ? void 0 : embedInfo.embedUrl,
36190
+ title,
36191
+ loading: "lazy",
36192
+ "data-rb-video-embed-deferred": shouldDeferSrc ? "true" : void 0,
36193
+ "data-rb-video-embed-src": shouldDeferSrc ? embedInfo.embedUrl : void 0,
36194
+ style: {
36195
+ position: "absolute",
36196
+ top: 0,
36197
+ left: 0,
36198
+ width: "100%",
36199
+ height: "100%",
36200
+ border: "none"
36201
+ },
36202
+ allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
36203
+ referrerPolicy: "no-referrer-when-downgrade",
36204
+ allowFullScreen: true
36205
+ }
36206
+ ),
36207
+ shouldDeferSrc ? /* @__PURE__ */ jsx18("noscript", { children: /* @__PURE__ */ jsx18("a", { href: embedInfo.url, children: "View on Instagram" }) }) : null
36208
+ ]
36053
36209
  }
36054
36210
  ) });
36055
36211
  };
@@ -36064,9 +36220,9 @@ function getVideoTitle(info) {
36064
36220
  const label = kind === "reel" ? "reel" : kind === "tv" ? "video" : "post";
36065
36221
  return `Instagram ${label} ${info.id}`;
36066
36222
  }
36067
- default:
36068
- return "Embedded video";
36069
36223
  }
36224
+ const exhaustive = info.provider;
36225
+ return exhaustive;
36070
36226
  }
36071
36227
  function getAspectRatio(propAspectRatio, style) {
36072
36228
  const styleAspectRatio = style?.aspectRatio;
@@ -36148,7 +36304,7 @@ function getCarouselSlidesToShowCssVars(value) {
36148
36304
  }
36149
36305
 
36150
36306
  // ../blocks/src/system/runtime/nodes/carousel.server.tsx
36151
- import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
36307
+ import { jsx as jsx20, jsxs as jsxs8 } from "react/jsx-runtime";
36152
36308
  var CarouselNodeSSR = ({
36153
36309
  blockId,
36154
36310
  children,
@@ -36167,7 +36323,7 @@ var CarouselNodeSSR = ({
36167
36323
  const resolvedSlides = resolveSlidesToShowMobile(normalizedSlidesToShow);
36168
36324
  const controlsEnabled = arrowVisibility === "never" ? false : normalizeBoolean2(showControls);
36169
36325
  const shouldSnap = transition === "slide";
36170
- return /* @__PURE__ */ jsxs7(
36326
+ return /* @__PURE__ */ jsxs8(
36171
36327
  "div",
36172
36328
  {
36173
36329
  className: clsx_default("carousel-root rb-relative", className),
@@ -36231,7 +36387,7 @@ function normalizeBoolean2(value) {
36231
36387
  }
36232
36388
 
36233
36389
  // ../blocks/src/system/runtime/nodes/accordion.server.tsx
36234
- import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
36390
+ import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
36235
36391
  var ACCORDION_ICONS = {
36236
36392
  Plus,
36237
36393
  Minus,
@@ -36248,7 +36404,7 @@ var AccordionNodeSSR = ({
36248
36404
  defaultValue,
36249
36405
  collapsible
36250
36406
  }) => {
36251
- return /* @__PURE__ */ jsxs8(
36407
+ return /* @__PURE__ */ jsxs9(
36252
36408
  "div",
36253
36409
  {
36254
36410
  className: clsx_default("accordion-root", className),
@@ -36278,16 +36434,16 @@ var AccordionItemNodeSSR = ({
36278
36434
  const iconConfig = ICON_CONFIG[resolvedIconStyle];
36279
36435
  const ClosedIconComponent = ACCORDION_ICONS[iconConfig.closedIcon];
36280
36436
  const OpenIconComponent = iconConfig.openIcon ? ACCORDION_ICONS[iconConfig.openIcon] : null;
36281
- return /* @__PURE__ */ jsxs8(
36437
+ return /* @__PURE__ */ jsxs9(
36282
36438
  "div",
36283
36439
  {
36284
36440
  className: clsx_default("accordion-item", className),
36285
36441
  "data-accordion-value": resolvedValue,
36286
36442
  "data-state": "closed",
36287
36443
  children: [
36288
- /* @__PURE__ */ jsxs8("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
36444
+ /* @__PURE__ */ jsxs9("div", { className: "accordion-trigger", role: "button", tabIndex: 0, "aria-expanded": "false", children: [
36289
36445
  /* @__PURE__ */ jsx21("span", { className: "accordion-trigger-text", children: resolveNode(triggerSource) }),
36290
- /* @__PURE__ */ jsxs8("span", { className: "accordion-icon", "aria-hidden": "true", children: [
36446
+ /* @__PURE__ */ jsxs9("span", { className: "accordion-icon", "aria-hidden": "true", children: [
36291
36447
  ClosedIconComponent && /* @__PURE__ */ jsx21(ClosedIconComponent, { className: "accordion-icon-closed" }),
36292
36448
  OpenIconComponent && /* @__PURE__ */ jsx21(OpenIconComponent, { className: "accordion-icon-open" })
36293
36449
  ] })
@@ -36316,7 +36472,7 @@ function resolveNode(value) {
36316
36472
  }
36317
36473
 
36318
36474
  // ../blocks/src/system/runtime/nodes/header-section.server.tsx
36319
- import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
36475
+ import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
36320
36476
  function hasShrinkClasses(className) {
36321
36477
  return typeof className === "string" && className.includes("rb-header-shrink");
36322
36478
  }
@@ -36324,16 +36480,21 @@ var HeaderSectionNode = ({
36324
36480
  blockId,
36325
36481
  children,
36326
36482
  className,
36483
+ "data-preview-site-chrome-surface": previewSiteChromeSurface,
36327
36484
  ...rest
36328
36485
  }) => {
36329
36486
  const { wrapperClasses, sectionClasses } = splitPositioningClasses(className);
36330
- const wrapperClassName = `block-site-header${wrapperClasses ? ` ${wrapperClasses}` : ""}`;
36487
+ const wrapperClassName = [
36488
+ "block-site-header",
36489
+ wrapperClasses,
36490
+ previewSiteChromeSurface ? "group/site-chrome rb-relative" : ""
36491
+ ].filter(Boolean).join(" ");
36331
36492
  const asProp = rest.as;
36332
36493
  const styleProp = rest.style;
36333
36494
  const backgroundProp = typeof rest.background === "string" ? rest.background : void 0;
36334
36495
  const allowOverflowProp = typeof rest.allowOverflow === "boolean" ? rest.allowOverflow : void 0;
36335
36496
  const dataSlotProp = typeof rest["data-slot"] === "string" ? rest["data-slot"] : void 0;
36336
- return /* @__PURE__ */ jsxs9(
36497
+ return /* @__PURE__ */ jsxs10(
36337
36498
  "nav",
36338
36499
  {
36339
36500
  ...getIslandRootProps("headerSection", blockId),
@@ -36343,6 +36504,7 @@ var HeaderSectionNode = ({
36343
36504
  "data-block": "site-header",
36344
36505
  "data-block-kind": "block.site-header",
36345
36506
  "data-block-id": blockId ?? void 0,
36507
+ "data-preview-site-chrome-surface": previewSiteChromeSurface,
36346
36508
  children: [
36347
36509
  /* @__PURE__ */ jsx22(IslandPropsScript, { value: { enabled: hasShrinkClasses(className) } }),
36348
36510
  /* @__PURE__ */ jsx22(
@@ -36364,7 +36526,7 @@ var HeaderSectionNode = ({
36364
36526
  var header_section_server_default = HeaderSectionNode;
36365
36527
 
36366
36528
  // ../blocks/src/system/runtime/nodes/spinner.tsx
36367
- import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
36529
+ import { jsx as jsx23, jsxs as jsxs11 } from "react/jsx-runtime";
36368
36530
  function resolveColorStyle(color) {
36369
36531
  switch (color) {
36370
36532
  case "inherit":
@@ -36391,7 +36553,7 @@ function SpinnerNode({
36391
36553
  const accessibilityProps = srLabel ? { role: "status", "aria-live": "polite" } : hasExplicitAriaLabel ? {} : { "aria-hidden": true };
36392
36554
  const trackStroke = color === "inherit" ? "currentColor" : "var(--rb-spinner-track-color)";
36393
36555
  const trackOpacity = color === "inherit" ? 0.25 : 1;
36394
- return /* @__PURE__ */ jsxs10(
36556
+ return /* @__PURE__ */ jsxs11(
36395
36557
  "span",
36396
36558
  {
36397
36559
  ...accessibilityProps,
@@ -36407,7 +36569,7 @@ function SpinnerNode({
36407
36569
  },
36408
36570
  ...rest,
36409
36571
  children: [
36410
- /* @__PURE__ */ jsxs10("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36572
+ /* @__PURE__ */ jsxs11("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36411
36573
  /* @__PURE__ */ jsx23(
36412
36574
  "circle",
36413
36575
  {
@@ -36791,7 +36953,7 @@ function buildBookingFormInteractiveIslandProps(props2) {
36791
36953
  }
36792
36954
 
36793
36955
  // ../blocks/src/system/runtime/nodes/booking-form.server.tsx
36794
- import { Fragment as Fragment2, jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
36956
+ import { Fragment as Fragment2, jsx as jsx24, jsxs as jsxs12 } from "react/jsx-runtime";
36795
36957
  function BookingFormSSR({
36796
36958
  blockId,
36797
36959
  siteId,
@@ -36835,14 +36997,14 @@ function BookingFormSSR({
36835
36997
  className
36836
36998
  });
36837
36999
  const display = islandProps.render.display;
36838
- return /* @__PURE__ */ jsxs11(
37000
+ return /* @__PURE__ */ jsxs12(
36839
37001
  "div",
36840
37002
  {
36841
37003
  className: `booking-form-ssr ${className ?? ""}`.trim(),
36842
37004
  ...getIslandRootProps("booking-form", blockId),
36843
37005
  children: [
36844
37006
  /* @__PURE__ */ jsx24(IslandPropsScript, { value: islandProps }),
36845
- /* @__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: [
37007
+ /* @__PURE__ */ jsx24("div", { className: "booking-form-ssr__summary", children: display.state === "missing" ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__error", children: display.message }) : /* @__PURE__ */ jsxs12(Fragment2, { children: [
36846
37008
  /* @__PURE__ */ jsx24("strong", { children: display.submitLabel }),
36847
37009
  display.successMessage ? /* @__PURE__ */ jsx24("p", { className: "booking-form-ssr__success", children: display.successMessage }) : null
36848
37010
  ] }) }),
@@ -36952,22 +37114,22 @@ function filterMembershipsForEvent(siteMemberships, event) {
36952
37114
  }
36953
37115
 
36954
37116
  // ../blocks/src/system/runtime/nodes/event-details/CoursePricingDisplay.tsx
36955
- import { jsx as jsx25, jsxs as jsxs12 } from "react/jsx-runtime";
37117
+ import { jsx as jsx25, jsxs as jsxs13 } from "react/jsx-runtime";
36956
37118
  function CoursePricingDisplay({
36957
37119
  pricing,
36958
37120
  acceptedItems
36959
37121
  }) {
36960
- return /* @__PURE__ */ jsxs12("div", { className: "rb-mt-6", children: [
37122
+ return /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
36961
37123
  /* @__PURE__ */ jsx25("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 1 ? "Pricing" : "Cost" }),
36962
- 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: [
36963
- /* @__PURE__ */ jsxs12("strong", { children: [
37124
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx25("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs13("div", { children: [
37125
+ /* @__PURE__ */ jsxs13("strong", { children: [
36964
37126
  option.name,
36965
37127
  ": ",
36966
37128
  formatCoursePriceAmount(option.priceAmount, pricing.currency)
36967
37129
  ] }),
36968
37130
  option.description ? /* @__PURE__ */ jsx25("p", { className: "rb-caption status-muted", children: option.description }) : null
36969
37131
  ] }, option.id)) }) : /* @__PURE__ */ jsx25("p", { children: /* @__PURE__ */ jsx25("strong", { children: formatCoursePriceDisplay(pricing.display) }) }),
36970
- acceptedItems.length > 0 ? /* @__PURE__ */ jsxs12("p", { className: "rb-caption rb-mt-1", children: [
37132
+ acceptedItems.length > 0 ? /* @__PURE__ */ jsxs13("p", { className: "rb-caption rb-mt-1", children: [
36971
37133
  "You can also attend with: ",
36972
37134
  acceptedItems.join(", ")
36973
37135
  ] }) : null
@@ -36975,7 +37137,7 @@ function CoursePricingDisplay({
36975
37137
  }
36976
37138
 
36977
37139
  // ../blocks/src/system/runtime/nodes/event-details/view.tsx
36978
- import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs13 } from "react/jsx-runtime";
37140
+ import { Fragment as Fragment3, jsx as jsx26, jsxs as jsxs14 } from "react/jsx-runtime";
36979
37141
  function formatAutoApplyDiscountLine(preview, currency) {
36980
37142
  const rate = preview.discountType === "percent" ? `${preview.discountPercent}% off` : `${formatCoursePriceAmount(preview.discountAmountCents, currency)} off`;
36981
37143
  const label = preview.publicLabel.trim() || "Discount";
@@ -37026,10 +37188,10 @@ function EventDetailsView({
37026
37188
  acceptedItems.push(...applicableMemberships.map((m) => m.name));
37027
37189
  }
37028
37190
  const hasAcceptedItems = acceptedItems.length > 0;
37029
- return /* @__PURE__ */ jsxs13("div", { className: "rb-flex rb-flex-col rb-gap-6 rb-text-left", children: [
37030
- /* @__PURE__ */ jsxs13("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37031
- /* @__PURE__ */ jsxs13("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37032
- /* @__PURE__ */ jsxs13("div", { children: [
37191
+ return /* @__PURE__ */ jsxs14("div", { className: "rb-flex rb-flex-col rb-gap-6 rb-text-left", children: [
37192
+ /* @__PURE__ */ jsxs14("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37193
+ /* @__PURE__ */ jsxs14("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37194
+ /* @__PURE__ */ jsxs14("div", { children: [
37033
37195
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: selection.mode === "next" ? "Next date" : "Date" }),
37034
37196
  (() => {
37035
37197
  const { date, timeRange } = formatEventDateParts({
@@ -37037,20 +37199,20 @@ function EventDetailsView({
37037
37199
  endsAt: selected.endsAt,
37038
37200
  timeZone: selection.timeZone
37039
37201
  });
37040
- return /* @__PURE__ */ jsxs13(Fragment3, { children: [
37202
+ return /* @__PURE__ */ jsxs14(Fragment3, { children: [
37041
37203
  /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: date }) }),
37042
37204
  /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: timeRange })
37043
37205
  ] });
37044
37206
  })()
37045
37207
  ] }),
37046
- venue ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37208
+ venue ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37047
37209
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37048
37210
  /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26("strong", { children: venue.name }) }),
37049
37211
  venue.address ? /* @__PURE__ */ jsx26("p", { className: "rb-caption", children: venue.address }) : null
37050
37212
  ] }) : null,
37051
- teamMembers.length > 0 ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37213
+ teamMembers.length > 0 ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37052
37214
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37053
- /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs13("div", { children: [
37215
+ /* @__PURE__ */ jsx26("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs14("div", { children: [
37054
37216
  /* @__PURE__ */ jsx26("p", { children: /* @__PURE__ */ jsx26(
37055
37217
  TeamMemberName,
37056
37218
  {
@@ -37061,7 +37223,7 @@ function EventDetailsView({
37061
37223
  teamMember.summary ? /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: teamMember.summary }) : null
37062
37224
  ] }, teamMember.id)) })
37063
37225
  ] }) : null,
37064
- isDropIn ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37226
+ isDropIn ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37065
37227
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Registration" }),
37066
37228
  /* @__PURE__ */ jsx26("p", { className: "rb-caption status-muted", children: "No registration required - just show up" })
37067
37229
  ] }) : shouldShowCoursePricing ? /* @__PURE__ */ jsx26(
@@ -37070,22 +37232,22 @@ function EventDetailsView({
37070
37232
  pricing: coursePricing,
37071
37233
  acceptedItems
37072
37234
  }
37073
- ) : shouldShowEventCost ? /* @__PURE__ */ jsxs13("div", { className: "rb-mt-6", children: [
37235
+ ) : shouldShowEventCost ? /* @__PURE__ */ jsxs14("div", { className: "rb-mt-6", children: [
37074
37236
  /* @__PURE__ */ jsx26("div", { className: "rb-label rb-mb-2", children: "Cost" }),
37075
37237
  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" }),
37076
37238
  autoApplyDiscount ? /* @__PURE__ */ jsx26("p", { className: "rb-caption rb-mt-1", children: formatAutoApplyDiscountLine(autoApplyDiscount, selected.currency ?? "USD") }) : null,
37077
- hasAcceptedItems ? /* @__PURE__ */ jsxs13("p", { className: "rb-caption rb-mt-1", children: [
37239
+ hasAcceptedItems ? /* @__PURE__ */ jsxs14("p", { className: "rb-caption rb-mt-1", children: [
37078
37240
  "You can also attend with: ",
37079
37241
  acceptedItems.join(", ")
37080
37242
  ] }) : null
37081
- ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx26("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs13("p", { className: "rb-caption", children: [
37243
+ ] }) : hasAcceptedItems ? /* @__PURE__ */ jsx26("div", { className: "rb-mt-6", children: /* @__PURE__ */ jsxs14("p", { className: "rb-caption", children: [
37082
37244
  "You can also attend with: ",
37083
37245
  acceptedItems.join(", ")
37084
37246
  ] }) }) : null
37085
37247
  ] }),
37086
37248
  showMap && renderVenueMap && venue?.location ? /* @__PURE__ */ jsx26(Fragment3, { children: renderVenueMap({ venueName: venue.name, location: venue.location, className: mapClassName, height: mapHeight }) }) : null
37087
37249
  ] }),
37088
- showOtherDates && selection.otherDates.length > 0 ? /* @__PURE__ */ jsxs13("div", { children: [
37250
+ showOtherDates && selection.otherDates.length > 0 ? /* @__PURE__ */ jsxs14("div", { children: [
37089
37251
  /* @__PURE__ */ jsx26("div", { className: "rb-label", children: "Other dates" }),
37090
37252
  /* @__PURE__ */ jsx26("div", { className: "rb-mt-2 rb-tiles-grid", children: selection.otherDates.map((e) => /* @__PURE__ */ jsx26(
37091
37253
  "a",
@@ -37108,7 +37270,7 @@ function EventDetailsView({
37108
37270
  }
37109
37271
 
37110
37272
  // ../blocks/src/system/runtime/nodes/event-details.server.tsx
37111
- import { jsx as jsx27, jsxs as jsxs14 } from "react/jsx-runtime";
37273
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
37112
37274
  function EventDetailsSSR({
37113
37275
  blockId,
37114
37276
  occurrenceContext,
@@ -37137,7 +37299,7 @@ function EventDetailsSSR({
37137
37299
  const membershipsArray = siteMemberships?.memberships ?? null;
37138
37300
  const applicablePasses = filterPassesForEvent(passesArray, selection.selected);
37139
37301
  const applicableMemberships = filterMembershipsForEvent(membershipsArray, selection.selected);
37140
- return /* @__PURE__ */ jsxs14(
37302
+ return /* @__PURE__ */ jsxs15(
37141
37303
  "div",
37142
37304
  {
37143
37305
  className: `event-details ${className ?? ""}`.trim(),
@@ -37203,7 +37365,7 @@ function EventDetailsSSR({
37203
37365
  var event_details_server_default = EventDetailsSSR;
37204
37366
 
37205
37367
  // ../blocks/src/system/runtime/nodes/location-map.view.tsx
37206
- import { jsx as jsx28, jsxs as jsxs15 } from "react/jsx-runtime";
37368
+ import { jsx as jsx28, jsxs as jsxs16 } from "react/jsx-runtime";
37207
37369
  function LocationMapView({
37208
37370
  addressText,
37209
37371
  location: location2,
@@ -37219,7 +37381,7 @@ function LocationMapView({
37219
37381
  if (!location2 && !addressText && !directionsUrl) {
37220
37382
  return /* @__PURE__ */ jsx28("p", { className: "rb-caption", style: textColorStyle("mutedText"), children: unresolvedMessage ?? "Location details coming soon." });
37221
37383
  }
37222
- return /* @__PURE__ */ jsxs15("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
37384
+ return /* @__PURE__ */ jsxs16("div", { className: "rb-flex rb-flex-col rb-gap-4 rb-text-left", children: [
37223
37385
  location2 && renderMap ? renderMap({
37224
37386
  addressText,
37225
37387
  location: location2,
@@ -37247,11 +37409,11 @@ function LocationMapView({
37247
37409
  }
37248
37410
 
37249
37411
  // ../blocks/src/system/runtime/nodes/location-map.server.tsx
37250
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
37412
+ import { jsx as jsx29, jsxs as jsxs17 } from "react/jsx-runtime";
37251
37413
  function LocationMapSSR(props2) {
37252
37414
  const normalized = normalizeLocationMapProps(props2);
37253
37415
  const hydrationProps = toLocationMapHydrationProps(props2);
37254
- return /* @__PURE__ */ jsxs16(
37416
+ return /* @__PURE__ */ jsxs17(
37255
37417
  "div",
37256
37418
  {
37257
37419
  className: `location-map ${normalized.className ?? ""}`.trim(),
@@ -37406,7 +37568,7 @@ function formatCourseDateRange(range) {
37406
37568
  }
37407
37569
 
37408
37570
  // ../blocks/src/system/runtime/nodes/course-details/view.tsx
37409
- import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
37571
+ import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
37410
37572
  function TeamMemberName2({
37411
37573
  name,
37412
37574
  profilePath
@@ -37441,14 +37603,14 @@ function CourseDetailsView(props2) {
37441
37603
  const hasMoreSessions = sessionLimit !== "all" && sortedSessions.length > sessionLimit;
37442
37604
  const descriptionDoc = showDescription ? coerceRichTextDoc(course.description) : null;
37443
37605
  const teamMembers = course.teamMembers ?? [];
37444
- return /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
37606
+ return /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-6", children: [
37445
37607
  showTitle && /* @__PURE__ */ jsx30("h3", { children: course.title }),
37446
- /* @__PURE__ */ jsxs17("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37447
- /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37448
- showPrice && /* @__PURE__ */ jsxs17("div", { children: [
37608
+ /* @__PURE__ */ jsxs18("div", { className: "rb-grid rb-grid-cols-1 rb-gap-6 rb-items-start rb-sm-grid-cols-2", children: [
37609
+ /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37610
+ showPrice && /* @__PURE__ */ jsxs18("div", { children: [
37449
37611
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: pricing.selectableOptions.length > 0 ? "Pricing" : "Price" }),
37450
- 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: [
37451
- /* @__PURE__ */ jsxs17("strong", { children: [
37612
+ pricing.selectableOptions.length > 1 ? /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-2", children: pricing.selectableOptions.map((option) => /* @__PURE__ */ jsxs18("div", { children: [
37613
+ /* @__PURE__ */ jsxs18("strong", { children: [
37452
37614
  option.name,
37453
37615
  ": ",
37454
37616
  formatCoursePriceAmount(
@@ -37459,17 +37621,17 @@ function CourseDetailsView(props2) {
37459
37621
  option.description ? /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: option.description }) : null
37460
37622
  ] }, option.id)) }) : /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: formatCoursePriceDisplay(pricing.display) }) })
37461
37623
  ] }),
37462
- showCapacity && /* @__PURE__ */ jsxs17("div", { children: [
37624
+ showCapacity && /* @__PURE__ */ jsxs18("div", { children: [
37463
37625
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Spots" }),
37464
37626
  /* @__PURE__ */ jsx30("div", { children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentCapacity === null ? "Unlimited" : `${course.availableSpots ?? Math.max(0, course.enrollmentCapacity - course.enrolledCount)} left` }) })
37465
37627
  ] }),
37466
- showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs17("div", { children: [
37628
+ showMembershipNote && course.acceptsMemberships && /* @__PURE__ */ jsxs18("div", { children: [
37467
37629
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Membership" }),
37468
37630
  /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: "Eligible memberships can be used for free enrollment" })
37469
37631
  ] }),
37470
- teamMembers.length > 0 && /* @__PURE__ */ jsxs17("div", { children: [
37632
+ teamMembers.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37471
37633
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Team members" }),
37472
- /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs17("div", { children: [
37634
+ /* @__PURE__ */ jsx30("div", { className: "rb-flex rb-flex-col rb-gap-3", children: teamMembers.map((teamMember) => /* @__PURE__ */ jsxs18("div", { children: [
37473
37635
  /* @__PURE__ */ jsx30("p", { children: /* @__PURE__ */ jsx30(
37474
37636
  TeamMemberName2,
37475
37637
  {
@@ -37481,23 +37643,23 @@ function CourseDetailsView(props2) {
37481
37643
  ] }, teamMember.id)) })
37482
37644
  ] })
37483
37645
  ] }),
37484
- /* @__PURE__ */ jsxs17("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37485
- showVenue && course.venue && /* @__PURE__ */ jsxs17("div", { children: [
37646
+ /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37647
+ showVenue && course.venue && /* @__PURE__ */ jsxs18("div", { children: [
37486
37648
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Venue" }),
37487
37649
  /* @__PURE__ */ jsx30("h3", { children: course.venue.name }),
37488
37650
  course.venue.address && /* @__PURE__ */ jsx30("p", { className: "rb-caption status-muted", children: course.venue.address })
37489
37651
  ] }),
37490
- showEnrollmentStatus && /* @__PURE__ */ jsxs17("div", { children: [
37652
+ showEnrollmentStatus && /* @__PURE__ */ jsxs18("div", { children: [
37491
37653
  /* @__PURE__ */ jsx30("div", { className: "rb-label rb-mb-2", children: "Enrollment" }),
37492
37654
  /* @__PURE__ */ jsx30("p", { className: course.enrollmentOpen ? "cd-enrollment--open" : "cd-enrollment--closed", children: /* @__PURE__ */ jsx30("strong", { children: course.enrollmentOpen ? "Open" : "Closed" }) })
37493
37655
  ] })
37494
37656
  ] })
37495
37657
  ] }),
37496
37658
  descriptionDoc && /* @__PURE__ */ jsx30("div", { className: "cd-description", children: /* @__PURE__ */ jsx30(RichText, { doc: descriptionDoc }) }),
37497
- showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs17("div", { children: [
37659
+ showSessions && visibleSessions.length > 0 && /* @__PURE__ */ jsxs18("div", { children: [
37498
37660
  /* @__PURE__ */ jsx30("div", { className: "rb-label", children: "Sessions" }),
37499
37661
  /* @__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)) }),
37500
- hasMoreSessions && /* @__PURE__ */ jsxs17("p", { className: "cd-sessions__more", children: [
37662
+ hasMoreSessions && /* @__PURE__ */ jsxs18("p", { className: "cd-sessions__more", children: [
37501
37663
  "Showing ",
37502
37664
  visibleSessions.length,
37503
37665
  " of ",
@@ -37509,7 +37671,7 @@ function CourseDetailsView(props2) {
37509
37671
  }
37510
37672
 
37511
37673
  // ../blocks/src/system/runtime/nodes/course-details.server.tsx
37512
- import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
37674
+ import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
37513
37675
  function CourseDetailsSSR({
37514
37676
  courses,
37515
37677
  contentEntry,
@@ -37547,7 +37709,7 @@ function CourseDetailsSSR({
37547
37709
  const pastRuns = scopedWithRange.filter(({ range }) => Boolean(range.end && range.end <= now)).sort((a, b) => (b.range.end?.getTime() ?? 0) - (a.range.end?.getTime() ?? 0));
37548
37710
  const lastPastRun = pastRuns[0] ?? null;
37549
37711
  const nonPastRuns = scopedSorted.filter(({ range }) => !(range.end && range.end <= now));
37550
- return /* @__PURE__ */ jsxs18("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
37712
+ return /* @__PURE__ */ jsxs19("div", { className: `course-details ${className ?? ""}`.trim(), "data-block": "course-details", children: [
37551
37713
  selection.selected ? /* @__PURE__ */ jsx31(
37552
37714
  CourseDetailsView,
37553
37715
  {
@@ -37562,8 +37724,8 @@ function CourseDetailsSSR({
37562
37724
  showEnrollmentStatus,
37563
37725
  showMembershipNote
37564
37726
  }
37565
- ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs18("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
37566
- /* @__PURE__ */ jsxs18("div", { children: [
37727
+ ) : selection.scoped.length > 0 ? /* @__PURE__ */ jsxs19("div", { className: "rb-flex rb-flex-col rb-gap-3", children: [
37728
+ /* @__PURE__ */ jsxs19("div", { children: [
37567
37729
  /* @__PURE__ */ jsx31("div", { className: "rb-label rb-mb-2", children: "Upcoming runs" }),
37568
37730
  /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "Choose a run to see sessions and details." })
37569
37731
  ] }),
@@ -37572,15 +37734,15 @@ function CourseDetailsSSR({
37572
37734
  const end = range.end;
37573
37735
  const isInProgress = Boolean(start && end && start <= now && end > now);
37574
37736
  const href = basePath ? `${basePath.replace(/\/$/, "")}/${course.slug}` : null;
37575
- 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: [
37576
- /* @__PURE__ */ jsxs18("div", { className: "rb-min-w-0", children: [
37737
+ 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__ */ jsxs19("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-3", children: [
37738
+ /* @__PURE__ */ jsxs19("div", { className: "rb-min-w-0", children: [
37577
37739
  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 }) }),
37578
37740
  /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted", children: formatCourseDateRange(range) })
37579
37741
  ] }),
37580
37742
  /* @__PURE__ */ jsx31("div", { className: "rb-caption status-muted rb-shrink-0", children: course.enrollmentOpen ? "Enrollment open" : isInProgress ? "Currently in progress" : "Enrollment closed" })
37581
37743
  ] }) }) }, course.id);
37582
37744
  }) }) : /* @__PURE__ */ jsx31("p", { className: "rb-caption status-muted", children: "No upcoming runs." }),
37583
- lastPastRun ? /* @__PURE__ */ jsxs18("div", { className: "rb-caption status-muted", children: [
37745
+ lastPastRun ? /* @__PURE__ */ jsxs19("div", { className: "rb-caption status-muted", children: [
37584
37746
  "Last run: ",
37585
37747
  /* @__PURE__ */ jsx31("strong", { children: lastPastRun.course.title }),
37586
37748
  " (",
@@ -37608,14 +37770,14 @@ function CourseDetailsSSR({
37608
37770
  var course_details_server_default = CourseDetailsSSR;
37609
37771
 
37610
37772
  // ../blocks/src/system/runtime/nodes/events/EventSpotlight.tsx
37611
- import { jsx as jsx32, jsxs as jsxs19 } from "react/jsx-runtime";
37773
+ import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
37612
37774
  var EventSpotlight = ({
37613
37775
  events,
37614
37776
  layout = "grid",
37615
37777
  columns = "3",
37616
37778
  cardVariant = "default",
37617
37779
  buttonVariant = "primary",
37618
- buttonText = "View event",
37780
+ buttonText = "Book now",
37619
37781
  ctaLabel,
37620
37782
  ctaUrl,
37621
37783
  showVenue = true,
@@ -37631,7 +37793,7 @@ var EventSpotlight = ({
37631
37793
  const containerClass = getContainerClass(layout, columns);
37632
37794
  const cardOrientation = getCardOrientation(layout);
37633
37795
  const buttonClass = themeButtonClassName({ variant: buttonVariant, size: "md" });
37634
- return /* @__PURE__ */ jsxs19("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
37796
+ return /* @__PURE__ */ jsxs20("div", { className: `event-spotlight-section ${className || ""}`, "data-block": "event-spotlight", children: [
37635
37797
  /* @__PURE__ */ jsx32("div", { className: `event-spotlight ${containerClass}`, children: normalizedEvents.map((event) => /* @__PURE__ */ jsx32(
37636
37798
  EventCard,
37637
37799
  {
@@ -37769,7 +37931,7 @@ function buildEventCombinedDisplay(source) {
37769
37931
  showMap: source.showMap ?? true,
37770
37932
  showCapacity: source.showCapacity ?? true,
37771
37933
  buttonVariant: source.buttonVariant ?? "primary",
37772
- buttonText: source.buttonText ?? "View event",
37934
+ buttonText: source.buttonText ?? "Book now",
37773
37935
  emptyMessage: source.emptyMessage ?? "No upcoming events scheduled."
37774
37936
  };
37775
37937
  }
@@ -37870,7 +38032,7 @@ function renderEventListItem(event, display) {
37870
38032
  }
37871
38033
 
37872
38034
  // ../blocks/src/system/runtime/nodes/events/EventCombined.server.tsx
37873
- import { jsx as jsx34, jsxs as jsxs20 } from "react/jsx-runtime";
38035
+ import { jsx as jsx34, jsxs as jsxs21 } from "react/jsx-runtime";
37874
38036
  var EventCombinedSSR = ({
37875
38037
  blockId,
37876
38038
  ...source
@@ -37879,7 +38041,7 @@ var EventCombinedSSR = ({
37879
38041
  const listDisplay = buildEventCombinedListingDisplay(render);
37880
38042
  const islandProps = buildEventCombinedInteractiveIslandProps(source);
37881
38043
  const ssrEmptyMessage = render.hydration.prefetchedEvents ? render.display.emptyMessage : listDisplay.loadingMessage;
37882
- return /* @__PURE__ */ jsxs20(
38044
+ return /* @__PURE__ */ jsxs21(
37883
38045
  "div",
37884
38046
  {
37885
38047
  className: `event-combined ${render.display.className || ""}`,
@@ -37887,7 +38049,7 @@ var EventCombinedSSR = ({
37887
38049
  ...getIslandRootProps("event-combined", blockId),
37888
38050
  children: [
37889
38051
  /* @__PURE__ */ jsx34(IslandPropsScript, { value: islandProps }),
37890
- /* @__PURE__ */ jsxs20("div", { className: "nav-tabs", role: "tablist", children: [
38052
+ /* @__PURE__ */ jsxs21("div", { className: "nav-tabs", role: "tablist", children: [
37891
38053
  /* @__PURE__ */ jsx34(
37892
38054
  "button",
37893
38055
  {
@@ -37916,7 +38078,7 @@ var EventCombinedSSR = ({
37916
38078
  };
37917
38079
 
37918
38080
  // ../blocks/src/system/runtime/nodes/commerce/shared/view.tsx
37919
- import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs21 } from "react/jsx-runtime";
38081
+ import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs22 } from "react/jsx-runtime";
37920
38082
  function ProductBadgesView({ badges }) {
37921
38083
  if (badges.length === 0) return null;
37922
38084
  return /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-wrap rb-gap-2", children: badges.map((badge) => /* @__PURE__ */ jsx35(
@@ -37931,7 +38093,7 @@ function ProductBadgesView({ badges }) {
37931
38093
  function VariantSelectView(props2) {
37932
38094
  const { options, selectedVariantId, disabled = false, onChange } = props2;
37933
38095
  if (options.length === 0) return null;
37934
- return /* @__PURE__ */ jsxs21("label", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38096
+ return /* @__PURE__ */ jsxs22("label", { className: "rb-flex rb-flex-col rb-gap-1", children: [
37935
38097
  /* @__PURE__ */ jsx35("span", { className: "rb-label", children: "Variant" }),
37936
38098
  /* @__PURE__ */ jsx35(
37937
38099
  "select",
@@ -37940,7 +38102,7 @@ function VariantSelectView(props2) {
37940
38102
  value: selectedVariantId ?? "",
37941
38103
  disabled,
37942
38104
  onChange: onChange ? (event) => onChange(event.target.value || null) : void 0,
37943
- children: options.map((variant) => /* @__PURE__ */ jsxs21("option", { value: variant.id, children: [
38105
+ children: options.map((variant) => /* @__PURE__ */ jsxs22("option", { value: variant.id, children: [
37944
38106
  variant.label,
37945
38107
  " ",
37946
38108
  variant.soldOut ? "(Sold out)" : ""
@@ -37951,12 +38113,12 @@ function VariantSelectView(props2) {
37951
38113
  }
37952
38114
  function ProductCardView(props2) {
37953
38115
  const { display, layout, variantControl, actions, feedback } = props2;
37954
- 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: [
38116
+ 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: [
37955
38117
  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,
37956
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-1 rb-flex-col rb-gap-3", children: [
37957
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
37958
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-start rb-justify-between rb-gap-3", children: [
37959
- /* @__PURE__ */ jsxs21("div", { children: [
38118
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-1 rb-flex-col rb-gap-3", children: [
38119
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38120
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-start rb-justify-between rb-gap-3", children: [
38121
+ /* @__PURE__ */ jsxs22("div", { children: [
37960
38122
  display.path ? /* @__PURE__ */ jsx35("a", { href: display.path, children: /* @__PURE__ */ jsx35("h3", { children: display.title }) }) : /* @__PURE__ */ jsx35("h3", { children: display.title }),
37961
38123
  display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null
37962
38124
  ] }),
@@ -37973,7 +38135,7 @@ function ProductCardView(props2) {
37973
38135
  }
37974
38136
  function ProductListSectionView(props2) {
37975
38137
  const { display, children } = props2;
37976
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--product-list ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
38138
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--product-list ${display.className ?? ""}`.trim(), "data-block": "shop", children: [
37977
38139
  display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
37978
38140
  display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }) : /* @__PURE__ */ jsx35(
37979
38141
  "div",
@@ -37990,18 +38152,18 @@ function ProductDetailView(props2) {
37990
38152
  if (display.state === "empty") {
37991
38153
  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 }) });
37992
38154
  }
37993
- 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: [
38155
+ 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: [
37994
38156
  /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-flex-col rb-gap-4", children: gallery }),
37995
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38157
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
37996
38158
  display.heading ? /* @__PURE__ */ jsx35("p", { className: "rb-label", children: display.heading }) : null,
37997
- /* @__PURE__ */ jsxs21("div", { children: [
38159
+ /* @__PURE__ */ jsxs22("div", { children: [
37998
38160
  /* @__PURE__ */ jsx35("h2", { children: display.title }),
37999
38161
  /* @__PURE__ */ jsx35("div", { className: "rb-mt-2", children: /* @__PURE__ */ jsx35("strong", { children: display.priceLabel }) })
38000
38162
  ] }),
38001
38163
  /* @__PURE__ */ jsx35(ProductBadgesView, { badges: display.badges }),
38002
38164
  display.summary ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.summary }) : null,
38003
38165
  variantControl,
38004
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-center rb-gap-3", children: [
38166
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-gap-3", children: [
38005
38167
  actions,
38006
38168
  display.categoryLabel ? /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: display.categoryLabel }) : null
38007
38169
  ] }),
@@ -38027,15 +38189,15 @@ function ProductGalleryFrameView(props2) {
38027
38189
  return /* @__PURE__ */ jsx35(Fragment4, { children: renderCarousel(slides) });
38028
38190
  }
38029
38191
  function PassCardView(props2) {
38030
- return /* @__PURE__ */ jsxs21("article", { className: "shop__card shop__card--pass", children: [
38031
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-header", children: [
38192
+ return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--pass", children: [
38193
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38032
38194
  /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38033
38195
  /* @__PURE__ */ jsx35("div", { className: "shop__card-price", children: props2.display.priceLabel })
38034
38196
  ] }),
38035
38197
  props2.display.description ? /* @__PURE__ */ jsx35("p", { className: "shop__card-description", children: props2.display.description }) : null,
38036
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-details", children: [
38198
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-details", children: [
38037
38199
  /* @__PURE__ */ jsx35("span", { className: "shop__card-credits", children: props2.display.creditsLabel }),
38038
- props2.display.perCreditLabel ? /* @__PURE__ */ jsxs21("span", { className: "shop__card-per-credit", children: [
38200
+ props2.display.perCreditLabel ? /* @__PURE__ */ jsxs22("span", { className: "shop__card-per-credit", children: [
38039
38201
  "(",
38040
38202
  props2.display.perCreditLabel,
38041
38203
  ")"
@@ -38047,10 +38209,10 @@ function PassCardView(props2) {
38047
38209
  ] });
38048
38210
  }
38049
38211
  function MembershipCardView(props2) {
38050
- return /* @__PURE__ */ jsxs21("article", { className: "shop__card shop__card--membership", children: [
38051
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-header", children: [
38212
+ return /* @__PURE__ */ jsxs22("article", { className: "shop__card shop__card--membership", children: [
38213
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-header", children: [
38052
38214
  /* @__PURE__ */ jsx35("h4", { className: "shop__card-name", children: props2.display.title }),
38053
- /* @__PURE__ */ jsxs21("div", { className: "shop__card-price", children: [
38215
+ /* @__PURE__ */ jsxs22("div", { className: "shop__card-price", children: [
38054
38216
  props2.display.priceLabel,
38055
38217
  /* @__PURE__ */ jsx35("span", { className: "shop__card-interval", children: props2.display.intervalLabel })
38056
38218
  ] })
@@ -38064,7 +38226,7 @@ function PassesMembershipsSectionView(props2) {
38064
38226
  const { display, beforeContent, passCards, membershipCards } = props2;
38065
38227
  const productsClass = `shop__products shop__products--${display.layout}`;
38066
38228
  const gridStyle = display.state === "ready" ? { "--shop-columns": display.columns } : void 0;
38067
- return /* @__PURE__ */ jsxs21(
38229
+ return /* @__PURE__ */ jsxs22(
38068
38230
  "div",
38069
38231
  {
38070
38232
  className: `shop ${display.state === "ready" ? `shop--${display.layout}` : "shop--empty"} ${display.className ?? ""}`.trim(),
@@ -38074,11 +38236,11 @@ function PassesMembershipsSectionView(props2) {
38074
38236
  children: [
38075
38237
  beforeContent,
38076
38238
  display.state === "empty" ? /* @__PURE__ */ jsx35("p", { className: "shop__empty-text", children: display.emptyMessage }) : null,
38077
- display.passes.length > 0 ? /* @__PURE__ */ jsxs21("section", { className: "shop__section shop__section--passes", children: [
38239
+ display.passes.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--passes", children: [
38078
38240
  /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.passesHeading }),
38079
38241
  /* @__PURE__ */ jsx35("div", { className: productsClass, children: passCards })
38080
38242
  ] }) : null,
38081
- display.memberships.length > 0 ? /* @__PURE__ */ jsxs21("section", { className: "shop__section shop__section--memberships", children: [
38243
+ display.memberships.length > 0 ? /* @__PURE__ */ jsxs22("section", { className: "shop__section shop__section--memberships", children: [
38082
38244
  /* @__PURE__ */ jsx35("h3", { className: "shop__section-heading", children: display.membershipsHeading }),
38083
38245
  /* @__PURE__ */ jsx35("div", { className: productsClass, children: membershipCards })
38084
38246
  ] }) : null
@@ -38088,21 +38250,21 @@ function PassesMembershipsSectionView(props2) {
38088
38250
  }
38089
38251
  function CartShellView(props2) {
38090
38252
  const { display, renderControls, footerActions } = props2;
38091
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--cart ${display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-cart", children: [
38253
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--cart ${display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-cart", children: [
38092
38254
  display.heading ? /* @__PURE__ */ jsx35("h2", { children: display.heading }) : null,
38093
- display.state === "empty" ? /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38255
+ display.state === "empty" ? /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-2", children: [
38094
38256
  /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.emptyMessage }),
38095
38257
  display.supportText ? /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: display.supportText }) : null
38096
- ] }) : /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38097
- /* @__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: [
38098
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38258
+ ] }) : /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-4", children: [
38259
+ /* @__PURE__ */ jsx35("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: [
38260
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-flex-col rb-gap-1", children: [
38099
38261
  /* @__PURE__ */ jsx35("strong", { children: item.title }),
38100
38262
  /* @__PURE__ */ jsx35("span", { className: "rb-caption status-muted", children: item.priceLabel })
38101
38263
  ] }),
38102
38264
  /* @__PURE__ */ jsx35("div", { className: "rb-flex rb-items-center rb-gap-2", children: renderControls ? renderControls(item) : null })
38103
38265
  ] }, item.key)) }),
38104
- /* @__PURE__ */ jsxs21("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4", children: [
38105
- /* @__PURE__ */ jsxs21("div", { children: [
38266
+ /* @__PURE__ */ jsxs22("div", { className: "rb-flex rb-items-center rb-justify-between rb-gap-4", children: [
38267
+ /* @__PURE__ */ jsxs22("div", { children: [
38106
38268
  /* @__PURE__ */ jsx35("strong", { children: "Subtotal" }),
38107
38269
  /* @__PURE__ */ jsx35("div", { children: display.subtotalLabel })
38108
38270
  ] }),
@@ -38112,7 +38274,7 @@ function CartShellView(props2) {
38112
38274
  ] });
38113
38275
  }
38114
38276
  function CheckoutShellView(props2) {
38115
- return /* @__PURE__ */ jsxs21("div", { className: `shop shop--checkout ${props2.display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-checkout", children: [
38277
+ return /* @__PURE__ */ jsxs22("div", { className: `shop shop--checkout ${props2.display.className ?? ""}`.trim(), "data-block": "shop", id: "shop-checkout", children: [
38116
38278
  props2.display.heading ? /* @__PURE__ */ jsx35("h2", { children: props2.display.heading }) : null,
38117
38279
  props2.notice,
38118
38280
  props2.display.state === "ready" ? props2.body : /* @__PURE__ */ jsx35("p", { className: "rb-caption status-muted", children: props2.display.message })
@@ -38120,9 +38282,9 @@ function CheckoutShellView(props2) {
38120
38282
  }
38121
38283
 
38122
38284
  // ../blocks/src/system/runtime/nodes/shop-commerce.server.tsx
38123
- import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs22 } from "react/jsx-runtime";
38285
+ import { Fragment as Fragment5, jsx as jsx36, jsxs as jsxs23 } from "react/jsx-runtime";
38124
38286
  function renderServerPendingAction(label, soldOut) {
38125
- return /* @__PURE__ */ jsxs22(Fragment5, { children: [
38287
+ return /* @__PURE__ */ jsxs23(Fragment5, { children: [
38126
38288
  /* @__PURE__ */ jsx36(
38127
38289
  "button",
38128
38290
  {
@@ -38150,7 +38312,7 @@ function ProductListServerContent(props2) {
38150
38312
  disabled: true
38151
38313
  }
38152
38314
  ),
38153
- actions: /* @__PURE__ */ jsxs22(Fragment5, { children: [
38315
+ actions: /* @__PURE__ */ jsxs23(Fragment5, { children: [
38154
38316
  renderServerPendingAction(card.actionLabel, card.soldOut),
38155
38317
  card.path ? /* @__PURE__ */ jsx36(
38156
38318
  "a",
@@ -38201,7 +38363,7 @@ function CheckoutServerContent(props2) {
38201
38363
  }
38202
38364
 
38203
38365
  // ../blocks/src/system/runtime/nodes/cart.server.tsx
38204
- import { jsx as jsx37, jsxs as jsxs23 } from "react/jsx-runtime";
38366
+ import { jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
38205
38367
  function CartSSR({
38206
38368
  blockId,
38207
38369
  siteId,
@@ -38216,7 +38378,7 @@ function CartSSR({
38216
38378
  stage,
38217
38379
  ...rest
38218
38380
  });
38219
- return /* @__PURE__ */ jsxs23(
38381
+ return /* @__PURE__ */ jsxs24(
38220
38382
  "div",
38221
38383
  {
38222
38384
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -38236,7 +38398,7 @@ function CartSSR({
38236
38398
  var cart_server_default = CartSSR;
38237
38399
 
38238
38400
  // ../blocks/src/system/runtime/nodes/checkout.server.tsx
38239
- import { jsx as jsx38, jsxs as jsxs24 } from "react/jsx-runtime";
38401
+ import { jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
38240
38402
  function CheckoutSSR({
38241
38403
  blockId,
38242
38404
  siteId,
@@ -38251,7 +38413,7 @@ function CheckoutSSR({
38251
38413
  stage,
38252
38414
  ...rest
38253
38415
  });
38254
- return /* @__PURE__ */ jsxs24(
38416
+ return /* @__PURE__ */ jsxs25(
38255
38417
  "div",
38256
38418
  {
38257
38419
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -38271,7 +38433,7 @@ function CheckoutSSR({
38271
38433
  var checkout_server_default = CheckoutSSR;
38272
38434
 
38273
38435
  // ../blocks/src/system/runtime/nodes/course-registration.server.tsx
38274
- import { jsx as jsx39, jsxs as jsxs25 } from "react/jsx-runtime";
38436
+ import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
38275
38437
  function CourseRegistrationSSR({
38276
38438
  blockId,
38277
38439
  siteId,
@@ -38312,7 +38474,7 @@ function CourseRegistrationSSR({
38312
38474
  buttonVariant,
38313
38475
  stage
38314
38476
  });
38315
- return /* @__PURE__ */ jsxs25(
38477
+ return /* @__PURE__ */ jsxs26(
38316
38478
  "div",
38317
38479
  {
38318
38480
  className: `course-registration ${className ?? ""}`.trim(),
@@ -38329,14 +38491,14 @@ function CourseRegistrationSSR({
38329
38491
  var course_registration_server_default = CourseRegistrationSSR;
38330
38492
 
38331
38493
  // ../blocks/src/system/runtime/nodes/gifting.server.tsx
38332
- import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
38494
+ import { jsx as jsx40, jsxs as jsxs27 } from "react/jsx-runtime";
38333
38495
  function GiftingSSR({ blockId, ...rest }) {
38334
38496
  const islandProps = buildGiftingInteractiveIslandProps(rest);
38335
38497
  const offers = islandProps.render.hydration.offers;
38336
38498
  const hasOffers = Boolean(
38337
38499
  (offers?.giftCards.length ?? 0) > 0 || (offers?.vouchers.length ?? 0) > 0
38338
38500
  );
38339
- return /* @__PURE__ */ jsxs26(
38501
+ return /* @__PURE__ */ jsxs27(
38340
38502
  "section",
38341
38503
  {
38342
38504
  className: rest.className ?? void 0,
@@ -38347,7 +38509,7 @@ function GiftingSSR({ blockId, ...rest }) {
38347
38509
  ...getIslandRootProps("gifting", blockId),
38348
38510
  children: [
38349
38511
  /* @__PURE__ */ jsx40(IslandPropsScript, { value: islandProps }),
38350
- /* @__PURE__ */ jsxs26(
38512
+ /* @__PURE__ */ jsxs27(
38351
38513
  "div",
38352
38514
  {
38353
38515
  className: "rb-grid",
@@ -38355,14 +38517,14 @@ function GiftingSSR({ blockId, ...rest }) {
38355
38517
  gap: "1.5rem"
38356
38518
  },
38357
38519
  children: [
38358
- /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
38520
+ /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "0.5rem" }, children: [
38359
38521
  /* @__PURE__ */ jsx40("h2", { style: { fontSize: "clamp(1.75rem, 3vw, 2.5rem)", fontWeight: 700, margin: 0 }, children: islandProps.render.display.heading }),
38360
38522
  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
38361
38523
  ] }),
38362
- hasOffers ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
38363
- (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38524
+ hasOffers ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1.5rem" }, children: [
38525
+ (offers?.giftCards.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38364
38526
  /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.giftCardsHeading }),
38365
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs26(
38527
+ /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.giftCards.map((offer) => /* @__PURE__ */ jsxs27(
38366
38528
  "article",
38367
38529
  {
38368
38530
  style: {
@@ -38379,9 +38541,9 @@ function GiftingSSR({ blockId, ...rest }) {
38379
38541
  offer.id
38380
38542
  )) })
38381
38543
  ] }) : null,
38382
- (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs26("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38544
+ (offers?.vouchers.length ?? 0) > 0 ? /* @__PURE__ */ jsxs27("div", { className: "rb-grid", style: { gap: "1rem" }, children: [
38383
38545
  /* @__PURE__ */ jsx40("h3", { style: { margin: 0, fontSize: "1.25rem", fontWeight: 700 }, children: islandProps.render.display.vouchersHeading }),
38384
- /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs26(
38546
+ /* @__PURE__ */ jsx40("div", { className: "rb-grid", style: { gap: "1rem" }, children: offers?.vouchers.map((offer) => /* @__PURE__ */ jsxs27(
38385
38547
  "article",
38386
38548
  {
38387
38549
  style: {
@@ -38409,10 +38571,10 @@ function GiftingSSR({ blockId, ...rest }) {
38409
38571
  var gifting_server_default = GiftingSSR;
38410
38572
 
38411
38573
  // ../blocks/src/system/runtime/nodes/events/EventListing.view.tsx
38412
- import { jsx as jsx41, jsxs as jsxs27 } from "react/jsx-runtime";
38574
+ import { jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
38413
38575
  function EventListingFrameView(props2) {
38414
38576
  const { display, filters, emptyState: emptyState4, footer, renderEventCard: renderEventCard2 } = props2;
38415
- return /* @__PURE__ */ jsxs27("div", { className: `event-listing ${display.className ?? ""}`, "data-block": "event-listing", children: [
38577
+ return /* @__PURE__ */ jsxs28("div", { className: `event-listing ${display.className ?? ""}`, "data-block": "event-listing", children: [
38416
38578
  filters,
38417
38579
  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)) }),
38418
38580
  footer
@@ -38491,7 +38653,7 @@ function formatShortDayLabel(date) {
38491
38653
  }
38492
38654
 
38493
38655
  // ../blocks/src/system/runtime/nodes/events/EventCalendar.server.tsx
38494
- import { jsx as jsx42, jsxs as jsxs28 } from "react/jsx-runtime";
38656
+ import { jsx as jsx42, jsxs as jsxs29 } from "react/jsx-runtime";
38495
38657
  function assertNeverDisplayMode(value) {
38496
38658
  throw new Error(`Unsupported event-calendar displayMode: ${String(value)}`);
38497
38659
  }
@@ -38503,8 +38665,8 @@ function renderEventCard(event, display) {
38503
38665
  }
38504
38666
  function renderCombinedSsr(display, prefetchedEvents) {
38505
38667
  const listDisplay = buildEventCalendarListingDisplay(display, prefetchedEvents, "event-combined-content");
38506
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
38507
- /* @__PURE__ */ jsxs28("div", { className: "nav-tabs", role: "tablist", children: [
38668
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-combined", display.className ?? void 0), "data-block": "event-combined", children: [
38669
+ /* @__PURE__ */ jsxs29("div", { className: "nav-tabs", role: "tablist", children: [
38508
38670
  /* @__PURE__ */ jsx42(
38509
38671
  "button",
38510
38672
  {
@@ -38552,9 +38714,9 @@ function renderCalendarGrid(display) {
38552
38714
  const eventsByDate = groupEventsByDate([...display.events]);
38553
38715
  const dayNames = getOrderedDayNames(display.startOfWeek);
38554
38716
  const headerTitle = formatCalendarTitle(viewDate, calendarView, calendarDays);
38555
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
38556
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-header", children: [
38557
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-nav", children: [
38717
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", display.className ?? void 0), "data-block": "event-calendar", children: [
38718
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38719
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38558
38720
  /* @__PURE__ */ jsx42(
38559
38721
  "button",
38560
38722
  {
@@ -38587,7 +38749,7 @@ function renderCalendarGrid(display) {
38587
38749
  }
38588
38750
  )
38589
38751
  ] }),
38590
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-container", children: [
38752
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-container", children: [
38591
38753
  /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-headers", children: dayNames.map((day) => /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-header", children: day }, day)) }),
38592
38754
  /* @__PURE__ */ jsx42("div", { className: "event-calendar-grid", children: calendarDays.map((date) => {
38593
38755
  const dateKey = formatDateKey2(date);
@@ -38599,10 +38761,10 @@ function renderCalendarGrid(display) {
38599
38761
  !isCurrentMonth && "event-calendar-day--other-month",
38600
38762
  today && "event-calendar-day--today"
38601
38763
  );
38602
- return /* @__PURE__ */ jsxs28("div", { className: dayClasses, children: [
38764
+ return /* @__PURE__ */ jsxs29("div", { className: dayClasses, children: [
38603
38765
  /* @__PURE__ */ jsx42("div", { className: "event-calendar-day-number", children: date.getDate() }),
38604
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-events", children: [
38605
- dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs28(
38766
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-events", children: [
38767
+ dayEvents.slice(0, MAX_EVENTS_PER_DAY).map((event) => /* @__PURE__ */ jsxs29(
38606
38768
  "a",
38607
38769
  {
38608
38770
  href: event.path,
@@ -38616,7 +38778,7 @@ function renderCalendarGrid(display) {
38616
38778
  },
38617
38779
  event.occurrenceId || event.id
38618
38780
  )),
38619
- dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */ jsxs28("div", { className: "event-calendar-more", children: [
38781
+ dayEvents.length > MAX_EVENTS_PER_DAY ? /* @__PURE__ */ jsxs29("div", { className: "event-calendar-more", children: [
38620
38782
  "+",
38621
38783
  dayEvents.length - MAX_EVENTS_PER_DAY,
38622
38784
  " more"
@@ -38638,9 +38800,9 @@ function renderTimetableSsr(display) {
38638
38800
  const calendarDays = getWeekCalendarDays(viewDate, display.startOfWeek);
38639
38801
  const headerTitle = formatCalendarTitle(viewDate, "week", calendarDays);
38640
38802
  const selectedDayKey = model.days.find((day) => day.isToday)?.dateKey ?? model.days[0]?.dateKey ?? "";
38641
- return /* @__PURE__ */ jsxs28("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
38642
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-header", children: [
38643
- /* @__PURE__ */ jsxs28("div", { className: "event-calendar-nav", children: [
38803
+ return /* @__PURE__ */ jsxs29("div", { className: clsx_default("event-calendar", "event-calendar--timetable", display.className ?? void 0), "data-block": "event-calendar", children: [
38804
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-header", children: [
38805
+ /* @__PURE__ */ jsxs29("div", { className: "event-calendar-nav", children: [
38644
38806
  /* @__PURE__ */ jsx42(
38645
38807
  "button",
38646
38808
  {
@@ -38673,7 +38835,7 @@ function renderTimetableSsr(display) {
38673
38835
  }
38674
38836
  )
38675
38837
  ] }),
38676
- /* @__PURE__ */ jsxs28("div", { className: "event-timetable", children: [
38838
+ /* @__PURE__ */ jsxs29("div", { className: "event-timetable", children: [
38677
38839
  /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-selector", "aria-label": "Choose timetable day", children: model.days.map((day) => /* @__PURE__ */ jsx42(
38678
38840
  "button",
38679
38841
  {
@@ -38686,8 +38848,8 @@ function renderTimetableSsr(display) {
38686
38848
  },
38687
38849
  day.dateKey
38688
38850
  )) }),
38689
- /* @__PURE__ */ jsx42("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs28("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38690
- /* @__PURE__ */ jsxs28("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
38851
+ /* @__PURE__ */ jsx42("div", { className: "event-timetable-container", children: /* @__PURE__ */ jsxs29("div", { className: "event-timetable-grid", "aria-label": "Weekly timetable", children: [
38852
+ /* @__PURE__ */ jsxs29("div", { className: "event-timetable-time-rail", "aria-hidden": "true", children: [
38691
38853
  /* @__PURE__ */ jsx42("div", { className: "event-timetable-day-heading" }),
38692
38854
  /* @__PURE__ */ jsx42("div", { className: "event-timetable-time-body", children: model.hourTicks.map((hour) => /* @__PURE__ */ jsx42(
38693
38855
  "div",
@@ -38699,7 +38861,7 @@ function renderTimetableSsr(display) {
38699
38861
  hour
38700
38862
  )) })
38701
38863
  ] }),
38702
- model.days.map((day) => /* @__PURE__ */ jsxs28(
38864
+ model.days.map((day) => /* @__PURE__ */ jsxs29(
38703
38865
  "section",
38704
38866
  {
38705
38867
  className: clsx_default(
@@ -38708,11 +38870,11 @@ function renderTimetableSsr(display) {
38708
38870
  ),
38709
38871
  "data-selected": day.dateKey === selectedDayKey ? "true" : "false",
38710
38872
  children: [
38711
- /* @__PURE__ */ jsxs28("h4", { className: "event-timetable-day-heading", children: [
38873
+ /* @__PURE__ */ jsxs29("h4", { className: "event-timetable-day-heading", children: [
38712
38874
  day.label,
38713
38875
  day.isToday ? /* @__PURE__ */ jsx42("span", { className: "event-timetable-today-badge", children: "Today" }) : null
38714
38876
  ] }),
38715
- /* @__PURE__ */ jsxs28(
38877
+ /* @__PURE__ */ jsxs29(
38716
38878
  "div",
38717
38879
  {
38718
38880
  className: "event-timetable-day-body",
@@ -38727,7 +38889,7 @@ function renderTimetableSsr(display) {
38727
38889
  },
38728
38890
  hour
38729
38891
  )),
38730
- day.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs28(
38892
+ day.events.length === 0 ? /* @__PURE__ */ jsx42("p", { className: "event-timetable-day-empty", children: "No classes" }) : day.events.map((cell) => /* @__PURE__ */ jsxs29(
38731
38893
  "a",
38732
38894
  {
38733
38895
  href: cell.event.path,
@@ -38804,18 +38966,18 @@ var EventCalendarSSR = (props2) => {
38804
38966
  default:
38805
38967
  content = assertNeverDisplayMode(display.displayMode);
38806
38968
  }
38807
- return /* @__PURE__ */ jsxs28("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
38969
+ return /* @__PURE__ */ jsxs29("div", { ...getIslandRootProps("event-calendar", props2.blockId), children: [
38808
38970
  /* @__PURE__ */ jsx42(IslandPropsScript, { value: islandProps }),
38809
38971
  content
38810
38972
  ] });
38811
38973
  };
38812
38974
 
38813
38975
  // ../blocks/src/system/runtime/nodes/events/EventListing.server.tsx
38814
- import { jsx as jsx43, jsxs as jsxs29 } from "react/jsx-runtime";
38976
+ import { jsx as jsx43, jsxs as jsxs30 } from "react/jsx-runtime";
38815
38977
  var EventListingSSR = (props2) => {
38816
38978
  const islandProps = buildEventListingInteractiveIslandProps(props2);
38817
38979
  const display = islandProps.render.display;
38818
- return /* @__PURE__ */ jsxs29("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
38980
+ return /* @__PURE__ */ jsxs30("div", { ...getIslandRootProps("event-listing", props2.blockId), children: [
38819
38981
  /* @__PURE__ */ jsx43(IslandPropsScript, { value: islandProps }),
38820
38982
  /* @__PURE__ */ jsx43(
38821
38983
  EventListingFrameView,
@@ -38828,7 +38990,7 @@ var EventListingSSR = (props2) => {
38828
38990
  };
38829
38991
 
38830
38992
  // ../blocks/src/system/runtime/nodes/event-registration.server.tsx
38831
- import { jsx as jsx44, jsxs as jsxs30 } from "react/jsx-runtime";
38993
+ import { jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
38832
38994
  function EventRegistrationSSR({
38833
38995
  blockId,
38834
38996
  siteId,
@@ -38869,7 +39031,7 @@ function EventRegistrationSSR({
38869
39031
  stage,
38870
39032
  supportEmail
38871
39033
  });
38872
- return /* @__PURE__ */ jsxs30(
39034
+ return /* @__PURE__ */ jsxs31(
38873
39035
  "div",
38874
39036
  {
38875
39037
  className: `event-registration ${className ?? ""}`.trim(),
@@ -38885,7 +39047,7 @@ function EventRegistrationSSR({
38885
39047
  var event_registration_server_default = EventRegistrationSSR;
38886
39048
 
38887
39049
  // ../blocks/src/system/runtime/shared/components/FeedbackMessage.tsx
38888
- import { jsx as jsx45, jsxs as jsxs31 } from "react/jsx-runtime";
39050
+ import { jsx as jsx45, jsxs as jsxs32 } from "react/jsx-runtime";
38889
39051
  function joinClasses5(...parts) {
38890
39052
  return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
38891
39053
  }
@@ -38901,7 +39063,7 @@ function FeedbackMessage({
38901
39063
  }) {
38902
39064
  const resolvedLive = live ?? (role === "alert" ? "assertive" : "polite");
38903
39065
  const shouldWrapBody = Boolean(title || bodyClassName);
38904
- return /* @__PURE__ */ jsxs31(
39066
+ return /* @__PURE__ */ jsxs32(
38905
39067
  "div",
38906
39068
  {
38907
39069
  className,
@@ -38917,7 +39079,7 @@ function FeedbackMessage({
38917
39079
  }
38918
39080
 
38919
39081
  // ../blocks/src/system/runtime/nodes/form.server.tsx
38920
- import { jsx as jsx46, jsxs as jsxs32 } from "react/jsx-runtime";
39082
+ import { jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
38921
39083
  var FormNodeSSR = ({
38922
39084
  blockId,
38923
39085
  value,
@@ -38942,7 +39104,7 @@ var FormNodeSSR = ({
38942
39104
  const display = islandProps.render.display;
38943
39105
  const form2 = display.form;
38944
39106
  if (!form2) {
38945
- return /* @__PURE__ */ jsxs32("div", { ...getIslandRootProps("form", blockId), children: [
39107
+ return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
38946
39108
  /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
38947
39109
  /* @__PURE__ */ jsx46(FeedbackMessage, { tone: "warning", className: clsx_default("fb-empty", className), role: "status", children: "Missing or unknown form." })
38948
39110
  ] });
@@ -38954,7 +39116,7 @@ var FormNodeSSR = ({
38954
39116
  const required = Boolean(field.required);
38955
39117
  const type = String(field.type ?? "text");
38956
39118
  if (type === "textarea") {
38957
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
39119
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
38958
39120
  /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
38959
39121
  /* @__PURE__ */ jsx46(
38960
39122
  "textarea",
@@ -38972,9 +39134,9 @@ var FormNodeSSR = ({
38972
39134
  if (type === "select") {
38973
39135
  const options = field.options ?? [];
38974
39136
  const multiple = Boolean(field.multiple);
38975
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
39137
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
38976
39138
  /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
38977
- /* @__PURE__ */ jsxs32("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
39139
+ /* @__PURE__ */ jsxs33("select", { id: inputId, name: field.id, multiple, required, className: "form-select", children: [
38978
39140
  !multiple && /* @__PURE__ */ jsx46("option", { value: "", children: "Select\u2026" }),
38979
39141
  options.map((opt) => /* @__PURE__ */ jsx46("option", { value: opt.value, children: opt.label }, opt.value))
38980
39142
  ] })
@@ -38982,9 +39144,9 @@ var FormNodeSSR = ({
38982
39144
  }
38983
39145
  if (type === "radio") {
38984
39146
  const options = field.options ?? [];
38985
- return /* @__PURE__ */ jsxs32("fieldset", { className: "fb-fieldset", children: [
39147
+ return /* @__PURE__ */ jsxs33("fieldset", { className: "fb-fieldset", children: [
38986
39148
  /* @__PURE__ */ jsx46("legend", { className: "form-label", children: label }),
38987
- options.map((opt) => /* @__PURE__ */ jsxs32("label", { className: "fb-inline form-label", children: [
39149
+ options.map((opt) => /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
38988
39150
  /* @__PURE__ */ jsx46(
38989
39151
  "input",
38990
39152
  {
@@ -39000,7 +39162,7 @@ var FormNodeSSR = ({
39000
39162
  ] }, field.id);
39001
39163
  }
39002
39164
  if (type === "checkbox" || type === "consent") {
39003
- return /* @__PURE__ */ jsxs32("label", { className: "fb-inline form-label", children: [
39165
+ return /* @__PURE__ */ jsxs33("label", { className: "fb-inline form-label", children: [
39004
39166
  /* @__PURE__ */ jsx46("input", { type: "checkbox", name: field.id, required, className: "form-checkbox" }),
39005
39167
  /* @__PURE__ */ jsx46("span", { children: label })
39006
39168
  ] }, field.id);
@@ -39016,7 +39178,7 @@ var FormNodeSSR = ({
39016
39178
  if (typeof field.min === "number") extra.min = field.min;
39017
39179
  if (typeof field.max === "number") extra.max = field.max;
39018
39180
  }
39019
- return /* @__PURE__ */ jsxs32("div", { className: "fb-field", children: [
39181
+ return /* @__PURE__ */ jsxs33("div", { className: "fb-field", children: [
39020
39182
  /* @__PURE__ */ jsx46("label", { htmlFor: inputId, className: "form-label", children: label }),
39021
39183
  /* @__PURE__ */ jsx46(
39022
39184
  "input",
@@ -39032,9 +39194,9 @@ var FormNodeSSR = ({
39032
39194
  )
39033
39195
  ] }, field.id);
39034
39196
  };
39035
- return /* @__PURE__ */ jsxs32("div", { ...getIslandRootProps("form", blockId), children: [
39197
+ return /* @__PURE__ */ jsxs33("div", { ...getIslandRootProps("form", blockId), children: [
39036
39198
  /* @__PURE__ */ jsx46(IslandPropsScript, { value: islandProps }),
39037
- /* @__PURE__ */ jsxs32(
39199
+ /* @__PURE__ */ jsxs33(
39038
39200
  "form",
39039
39201
  {
39040
39202
  method: "POST",
@@ -39069,7 +39231,7 @@ var FormNodeSSR = ({
39069
39231
  };
39070
39232
 
39071
39233
  // ../blocks/src/system/runtime/nodes/newsletter-form.server.tsx
39072
- import { jsx as jsx47, jsxs as jsxs33 } from "react/jsx-runtime";
39234
+ import { jsx as jsx47, jsxs as jsxs34 } from "react/jsx-runtime";
39073
39235
  function NewsletterFormSSR({
39074
39236
  blockId,
39075
39237
  siteId,
@@ -39101,8 +39263,8 @@ function NewsletterFormSSR({
39101
39263
  const fields3 = display.fields;
39102
39264
  const renderField = (field) => {
39103
39265
  const inputId = `newsletter_${field.id}`;
39104
- return /* @__PURE__ */ jsxs33("div", { className: "fb-field newsletter-field", children: [
39105
- /* @__PURE__ */ jsxs33("label", { htmlFor: inputId, className: "form-label", children: [
39266
+ return /* @__PURE__ */ jsxs34("div", { className: "fb-field newsletter-field", children: [
39267
+ /* @__PURE__ */ jsxs34("label", { htmlFor: inputId, className: "form-label", children: [
39106
39268
  field.label,
39107
39269
  field.required && /* @__PURE__ */ jsx47("span", { className: "newsletter-required", "aria-hidden": "true", children: "*" })
39108
39270
  ] }),
@@ -39120,14 +39282,14 @@ function NewsletterFormSSR({
39120
39282
  )
39121
39283
  ] }, field.id);
39122
39284
  };
39123
- return /* @__PURE__ */ jsxs33(
39285
+ return /* @__PURE__ */ jsxs34(
39124
39286
  "div",
39125
39287
  {
39126
39288
  ...getIslandRootProps("newsletter-form", blockId),
39127
39289
  className: clsx_default("newsletter-form-ssr", className),
39128
39290
  children: [
39129
39291
  /* @__PURE__ */ jsx47(IslandPropsScript, { value: islandProps }),
39130
- /* @__PURE__ */ jsxs33("form", { method: "POST", className: "newsletter-form fb-form", children: [
39292
+ /* @__PURE__ */ jsxs34("form", { method: "POST", className: "newsletter-form fb-form", children: [
39131
39293
  /* @__PURE__ */ jsx47(
39132
39294
  "input",
39133
39295
  {
@@ -39139,7 +39301,7 @@ function NewsletterFormSSR({
39139
39301
  "aria-hidden": "true"
39140
39302
  }
39141
39303
  ),
39142
- /* @__PURE__ */ jsxs33("div", { className: "newsletter-form-fields", children: [
39304
+ /* @__PURE__ */ jsxs34("div", { className: "newsletter-form-fields", children: [
39143
39305
  fields3.map(renderField),
39144
39306
  /* @__PURE__ */ jsx47("div", { className: "newsletter-submit", children: /* @__PURE__ */ jsx47(
39145
39307
  "button",
@@ -39159,7 +39321,7 @@ function NewsletterFormSSR({
39159
39321
  var newsletter_form_server_default = NewsletterFormSSR;
39160
39322
 
39161
39323
  // ../blocks/src/system/runtime/nodes/product-detail.server.tsx
39162
- import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
39324
+ import { jsx as jsx48, jsxs as jsxs35 } from "react/jsx-runtime";
39163
39325
  function ProductDetailSSR({
39164
39326
  blockId,
39165
39327
  siteId,
@@ -39174,7 +39336,7 @@ function ProductDetailSSR({
39174
39336
  stage,
39175
39337
  ...rest
39176
39338
  });
39177
- return /* @__PURE__ */ jsxs34(
39339
+ return /* @__PURE__ */ jsxs35(
39178
39340
  "div",
39179
39341
  {
39180
39342
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39194,7 +39356,7 @@ function ProductDetailSSR({
39194
39356
  var product_detail_server_default = ProductDetailSSR;
39195
39357
 
39196
39358
  // ../blocks/src/system/runtime/nodes/product-list.server.tsx
39197
- import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
39359
+ import { jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
39198
39360
  function ProductListSSR({
39199
39361
  blockId,
39200
39362
  siteId,
@@ -39209,7 +39371,7 @@ function ProductListSSR({
39209
39371
  stage,
39210
39372
  ...rest
39211
39373
  });
39212
- return /* @__PURE__ */ jsxs35(
39374
+ return /* @__PURE__ */ jsxs36(
39213
39375
  "div",
39214
39376
  {
39215
39377
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39229,7 +39391,7 @@ function ProductListSSR({
39229
39391
  var product_list_server_default = ProductListSSR;
39230
39392
 
39231
39393
  // ../blocks/src/system/runtime/nodes/shop.server.tsx
39232
- import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
39394
+ import { jsx as jsx50, jsxs as jsxs37 } from "react/jsx-runtime";
39233
39395
  function ShopSSR({
39234
39396
  blockId,
39235
39397
  siteId,
@@ -39246,7 +39408,7 @@ function ShopSSR({
39246
39408
  ...rest
39247
39409
  });
39248
39410
  const render = islandProps.render;
39249
- return /* @__PURE__ */ jsxs36(
39411
+ return /* @__PURE__ */ jsxs37(
39250
39412
  "div",
39251
39413
  {
39252
39414
  className: `shop ${rest.className ?? ""}`.trim(),
@@ -39467,6 +39629,10 @@ function getAbsoluteSegments(fromPath, context) {
39467
39629
  if (scoped?.basePathSegments && scoped.basePathSegments.length > 0) {
39468
39630
  return [...scoped.basePathSegments, ...rest];
39469
39631
  }
39632
+ const hasContentScope = context.scopes.some((entry) => entry.name === "content");
39633
+ if (hasContentScope && !(first in context.viewModel)) {
39634
+ return ["content", ...segments];
39635
+ }
39470
39636
  return void 0;
39471
39637
  }
39472
39638
  function readFromSource(source, segments) {
@@ -40115,7 +40281,7 @@ function makeDefaultBlockComponent(args) {
40115
40281
  pathBase,
40116
40282
  blockId,
40117
40283
  blockKind,
40118
- blockContent: content,
40284
+ blockContent: mergedContent,
40119
40285
  blockBindings,
40120
40286
  editableRouteMetadataFieldIds,
40121
40287
  fragmentRegistry: fragmentRegistry2
@@ -41110,6 +41276,19 @@ function getNavLinkPreset(presetId) {
41110
41276
  }
41111
41277
  var NAV_LINK_PRESET_IDS = Object.keys(NAV_LINK_PRESETS);
41112
41278
 
41279
+ // ../theme-core/src/header/navDropdownSizing.ts
41280
+ var NAV_DROPDOWN_MIN_WIDTH_REM = 12;
41281
+ var NAV_DROPDOWN_MAX_WIDTH_REM = 22;
41282
+ var NAV_DROPDOWN_VIEWPORT_GUTTER_REM = 1;
41283
+ var NAV_DROPDOWN_SHIFT_PROPERTY = "--nav-dropdown-shift-x";
41284
+ var NAV_DROPDOWN_MAX_WIDTH_CSS = `min(${NAV_DROPDOWN_MAX_WIDTH_REM}rem, calc(100vw - ${NAV_DROPDOWN_VIEWPORT_GUTTER_REM * 2}rem))`;
41285
+ var NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES = [
41286
+ `min-width: ${NAV_DROPDOWN_MIN_WIDTH_REM}rem;`,
41287
+ `width: max-content;`,
41288
+ `max-width: ${NAV_DROPDOWN_MAX_WIDTH_CSS};`,
41289
+ `transform: translateX(var(${NAV_DROPDOWN_SHIFT_PROPERTY}, 0px));`
41290
+ ];
41291
+
41113
41292
  // ../theme-core/src/header/generateHeaderCss.ts
41114
41293
  var HEADER_BLUR = "blur(12px)";
41115
41294
  var FLOATING_BLUR = "blur(16px)";
@@ -41384,6 +41563,7 @@ function generateDropdownContainerStyles(header, themeId, tokens) {
41384
41563
  const selector = `:where([data-theme-scope="${themeId}"]) .nav-dropdown-menu`;
41385
41564
  const rules = [];
41386
41565
  const dropdownStyle = header.dropdownStyle;
41566
+ rules.push(...NAV_DROPDOWN_CONTAINER_RAIL_CSS_RULES);
41387
41567
  const bgToken = dropdownStyle?.background ?? "surface";
41388
41568
  rules.push(`background-color: ${tokens.getColor(bgToken)};`);
41389
41569
  const textToken = dropdownStyle?.textColor ?? "text";
@@ -44082,10 +44262,10 @@ function summarizeValue(value) {
44082
44262
  }
44083
44263
 
44084
44264
  // ../theme-core/src/mock-themes/components/swatch.tsx
44085
- import { jsx as jsx52, jsxs as jsxs37 } from "react/jsx-runtime";
44265
+ import { jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
44086
44266
 
44087
44267
  // ../theme-core/src/mock-themes/components/PaletteCard.tsx
44088
- import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
44268
+ import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
44089
44269
 
44090
44270
  // ../../node_modules/.pnpm/@vibrant+image@4.0.4/node_modules/@vibrant/image/dist/esm/histogram.js
44091
44271
  var Histogram = class {
@@ -52658,6 +52838,17 @@ var containerResponsiveThemeCss = `/*
52658
52838
  * =============================================================================
52659
52839
  */
52660
52840
 
52841
+ :where(.theme-scope) .nav-dropdown-menu {
52842
+ /*
52843
+ * Keep these rails in sync with header/navDropdownSizing.ts.
52844
+ * The JS placement gutter is 16px, matching the 1rem per-side gutter in calc(100vw - 2rem).
52845
+ */
52846
+ min-width: 12rem;
52847
+ width: max-content;
52848
+ max-width: min(22rem, calc(100vw - 2rem));
52849
+ transform: translateX(var(--nav-dropdown-shift-x, 0px));
52850
+ }
52851
+
52661
52852
  :where(.theme-scope) .nav-dropdown:hover > .nav-dropdown-menu,
52662
52853
  :where(.theme-scope) .nav-dropdown:focus-within > .nav-dropdown-menu,
52663
52854
  :where(.theme-scope) .nav-dropdown .nav-dropdown-trigger[aria-expanded="true"] + .nav-dropdown-menu {
@@ -54128,6 +54319,11 @@ var containerResponsiveThemeCss = `/*
54128
54319
  * Dense row layout for event-calendar compact list mode
54129
54320
  * ============================================================================= */
54130
54321
 
54322
+ :where(.theme-scope) .event-listing-compact-container {
54323
+ width: min(100%, 56rem);
54324
+ margin-inline: auto;
54325
+ }
54326
+
54131
54327
  :where(.theme-scope) .event-compact-row {
54132
54328
  display: flex;
54133
54329
  align-items: center;
@@ -54253,7 +54449,7 @@ var containerResponsiveThemeCss = `/*
54253
54449
  }`;
54254
54450
 
54255
54451
  // ../theme-core/src/ThemeScopeCore.tsx
54256
- import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
54452
+ import { jsx as jsx54, jsxs as jsxs40 } from "react/jsx-runtime";
54257
54453
  function ThemeScopeCore({
54258
54454
  cssVars,
54259
54455
  buttonCss,
@@ -54285,7 +54481,7 @@ function ThemeScopeCore({
54285
54481
  containerType: "inline-size",
54286
54482
  containerName: responsiveScope.containerName
54287
54483
  } : cssVars;
54288
- return /* @__PURE__ */ jsxs39(
54484
+ return /* @__PURE__ */ jsxs40(
54289
54485
  "div",
54290
54486
  {
54291
54487
  className: className ? `theme-scope ${className}` : "theme-scope",
@@ -54484,7 +54680,7 @@ function ThemeScope({
54484
54680
 
54485
54681
  // ../theme-core/src/ThemeFontLoader.tsx
54486
54682
  import * as React7 from "react";
54487
- import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs40 } from "react/jsx-runtime";
54683
+ import { Fragment as Fragment7, jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
54488
54684
 
54489
54685
  // ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
54490
54686
  import { z as z66 } from "zod";
@@ -54518,7 +54714,7 @@ var themeBridgeConfigSchema = z66.object({
54518
54714
  }).passthrough();
54519
54715
 
54520
54716
  // ../theme-core/src/siteChrome.tsx
54521
- import { Fragment as Fragment8, jsx as jsx57, jsxs as jsxs41 } from "react/jsx-runtime";
54717
+ import { Fragment as Fragment8, jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
54522
54718
 
54523
54719
  // ../blocks/src/system/runtime/bindings.ts
54524
54720
  var shouldLogWarnings = isNonProductionEnv();
@@ -57828,7 +58024,7 @@ function getEntrySubrouteMetadataOverrides(args) {
57828
58024
  }
57829
58025
 
57830
58026
  // src/next/catch-all.tsx
57831
- import { jsx as jsx60, jsxs as jsxs42 } from "react/jsx-runtime";
58027
+ import { jsx as jsx60, jsxs as jsxs43 } from "react/jsx-runtime";
57832
58028
  function isExpectedNotFoundError(error) {
57833
58029
  return typeof error === "object" && error !== null && "status" in error && Reflect.get(error, "status") === 404;
57834
58030
  }
@@ -58009,7 +58205,7 @@ function createCatchAllPage(options) {
58009
58205
  }
58010
58206
  )
58011
58207
  );
58012
- const pageWithLayout = /* @__PURE__ */ jsxs42("main", { children: [
58208
+ const pageWithLayout = /* @__PURE__ */ jsxs43("main", { children: [
58013
58209
  hydrationBootstrap,
58014
58210
  rendered
58015
58211
  ] });
@@ -58191,7 +58387,7 @@ var SimpleCache = class {
58191
58387
  };
58192
58388
 
58193
58389
  // src/version.ts
58194
- var SDK_VERSION = "0.72.0";
58390
+ var SDK_VERSION = "0.75.0";
58195
58391
 
58196
58392
  // src/client/error.ts
58197
58393
  var RiverbankApiError = class _RiverbankApiError extends Error {