@riverbankcms/sdk 0.138.0 → 0.139.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 (208) hide show
  1. package/README.md +11 -15
  2. package/dist/{PreviewEditorSidebar-BVPur_CU.mjs → PreviewEditorSidebar-BDeenhi3.mjs} +4 -4
  3. package/dist/{PreviewEditorUI-DLhWX8oh.mjs → PreviewEditorUI-DSRhgjF5.mjs} +3 -3
  4. package/dist/{PreviewQueryProvider-BguJY1SW.mjs → PreviewQueryProvider-D2K8GLUG.mjs} +1 -1
  5. package/dist/{SdkPreviewModeRuntime-Tda6qw4z.mjs → SdkPreviewModeRuntime-CL7wSnYu.mjs} +47 -27
  6. package/dist/{SiteChromeCustomizeContext-BHFgMjde.mjs → SiteChromeCustomizeContext-BhDn-5ir.mjs} +7771 -5863
  7. package/dist/_dts/ai/src/contracts/proposals.d.ts +99 -330
  8. package/dist/_dts/ai/src/contracts/siteStyleProposalSchemas.d.ts +9 -30
  9. package/dist/_dts/api/src/billing.d.ts +10 -3
  10. package/dist/_dts/api/src/contentRuntime.d.ts +8 -1
  11. package/dist/_dts/api/src/endpoints.d.ts +182 -103
  12. package/dist/_dts/api/src/footerSettings.d.ts +2 -5
  13. package/dist/_dts/api/src/index.d.ts +11 -9
  14. package/dist/_dts/api/src/mailchimpIntegration.d.ts +2 -59
  15. package/dist/_dts/api/src/mailingListIntegration.d.ts +117 -0
  16. package/dist/_dts/api/src/navigation/locations.d.ts +1 -0
  17. package/dist/_dts/api/src/navigation.d.ts +1 -26
  18. package/dist/_dts/api/src/newsletterEndpointDefinitions.d.ts +109 -2
  19. package/dist/_dts/api/src/onboarding/surfaceData.d.ts +185 -0
  20. package/dist/_dts/api/src/privacyPolicy.d.ts +74 -2
  21. package/dist/_dts/api/src/publicBookingAvailabilityEndpointDefinitions.d.ts +6 -6
  22. package/dist/_dts/api/src/publicEventEndpointDefinitions.d.ts +1 -1
  23. package/dist/_dts/api/src/publicExperience/newsletterEndpoints.d.ts +2 -4
  24. package/dist/_dts/api/src/publicExperience/sharedTypes.d.ts +10 -24
  25. package/dist/_dts/api/src/publicReadEndpointDefinitions.d.ts +73 -0
  26. package/dist/_dts/api/src/schemas/site-api-keys.d.ts +1 -1
  27. package/dist/_dts/api/src/sdkContracts.d.ts +2 -10
  28. package/dist/_dts/api/src/sdkThemeWire.d.ts +2 -2
  29. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +0 -29
  30. package/dist/_dts/api/src/siteOnboarding.d.ts +91 -228
  31. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -9
  32. package/dist/_dts/api/src/siteSettings.d.ts +20 -1
  33. package/dist/_dts/api/src/types.d.ts +5 -4
  34. package/dist/_dts/billing/src/membership/index.d.ts +14 -7
  35. package/dist/_dts/billing/src/plans/display.d.ts +15 -0
  36. package/dist/_dts/billing/src/plans/registry.d.ts +2 -0
  37. package/dist/_dts/billing/src/plans/standing.d.ts +19 -0
  38. package/dist/_dts/billing/src/plans/types.d.ts +1 -7
  39. package/dist/_dts/billing/src/subscriptions/evidence.d.ts +12 -0
  40. package/dist/_dts/billing/src/subscriptions/standingEvidence.d.ts +31 -0
  41. package/dist/_dts/billing/src/subscriptions/store.d.ts +23 -5
  42. package/dist/_dts/blocks/src/PageRenderer.d.ts +6 -15
  43. package/dist/_dts/blocks/src/client.d.ts +1 -1
  44. package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +32 -16
  45. package/dist/_dts/blocks/src/pageRendererContracts.d.ts +4 -0
  46. package/dist/_dts/blocks/src/pageRenderingMode.d.ts +12 -6
  47. package/dist/_dts/blocks/src/system/blocks/appointment-services.d.ts +11 -0
  48. package/dist/_dts/blocks/src/system/blocks/contact-newsletter.d.ts +39 -66
  49. package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +39 -114
  50. package/dist/_dts/blocks/src/system/blocks/offerings-preview/catalogue.d.ts +18 -0
  51. package/dist/_dts/blocks/src/system/blocks/offerings-preview/fields.d.ts +2 -0
  52. package/dist/_dts/blocks/src/system/blocks/offerings-preview/index.d.ts +4 -0
  53. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +7 -13
  54. package/dist/_dts/blocks/src/system/constants/blockKinds.d.ts +1 -1
  55. package/dist/_dts/blocks/src/system/data/index.d.ts +2 -2
  56. package/dist/_dts/blocks/src/system/data/loaderEndpoints.d.ts +1 -1
  57. package/dist/_dts/blocks/src/system/data/publicLoaderCachePolicy.d.ts +2 -74
  58. package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +33 -100
  59. package/dist/_dts/blocks/src/system/runtime/api/types/newsletter.d.ts +5 -15
  60. package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +48 -24
  61. package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -12
  62. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.d.ts +3 -0
  63. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +1 -1
  64. package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarToday.d.ts +22 -0
  65. package/dist/_dts/blocks/src/system/runtime/nodes/appointment-services.d.ts +51 -0
  66. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -0
  67. package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +0 -1
  68. package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +28 -0
  69. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/bookability.d.ts +9 -0
  70. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/dates.d.ts +14 -0
  71. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/duration.d.ts +2 -0
  72. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/index.d.ts +4 -0
  73. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/location.d.ts +2 -0
  74. package/dist/_dts/blocks/src/system/runtime/nodes/events/domain/quickDates.d.ts +16 -0
  75. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/AgendaEventCard.d.ts +9 -1
  76. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayCell.d.ts +2 -0
  77. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/CalendarDayHeaders.d.ts +4 -0
  78. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/DayEventsModal.d.ts +2 -1
  79. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +5 -0
  80. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -1
  81. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventQuickDates.d.ts +15 -0
  82. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekAgendaView.d.ts +7 -3
  83. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekTimetableView.d.ts +1 -0
  84. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/index.d.ts +2 -0
  85. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/timetableModel.d.ts +1 -0
  86. package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/useHydrationReady.d.ts +6 -0
  87. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +3 -0
  88. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.interactive.d.ts +56 -33
  89. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.submission.d.ts +3 -3
  90. package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.types.d.ts +13 -31
  91. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-catalogue.d.ts +14 -0
  92. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview-content.d.ts +23 -0
  93. package/dist/_dts/blocks/src/system/runtime/nodes/offerings-preview.d.ts +4 -2
  94. package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +5 -0
  95. package/dist/_dts/commerce/src/purchase/index.d.ts +1 -0
  96. package/dist/_dts/commerce/src/purchase/orderItemMetadata.d.ts +5 -12
  97. package/dist/_dts/commerce/src/purchase/stripeCommissionMetadata.d.ts +34 -0
  98. package/dist/_dts/content-editor/src/footerEngagementDraft.d.ts +6 -24
  99. package/dist/_dts/content-editor/src/useFooterComposerState.d.ts +1 -2
  100. package/dist/_dts/core/src/footer-engagement.d.ts +2 -6
  101. package/dist/_dts/core/src/index.d.ts +9 -1
  102. package/dist/_dts/core/src/mailing-list-identifiers.d.ts +21 -0
  103. package/dist/_dts/core/src/mailing-list-runtime.d.ts +42 -0
  104. package/dist/_dts/core/src/mailing-list-setup-parser.d.ts +14 -0
  105. package/dist/_dts/core/src/mailing-list-setup.d.ts +129 -0
  106. package/dist/_dts/core/src/mailing-list-submission.d.ts +244 -0
  107. package/dist/_dts/core/src/mailing-list-targeting-parser.d.ts +12 -0
  108. package/dist/_dts/core/src/mailing-list-targeting.d.ts +93 -0
  109. package/dist/_dts/core/src/navigation-locations.d.ts +28 -0
  110. package/dist/_dts/core/src/public-profile.d.ts +9 -1
  111. package/dist/_dts/core/src/public-read-cache-contract.d.ts +45 -0
  112. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +529 -373
  113. package/dist/_dts/editor-blocks/src/widgets/index.d.ts +1 -0
  114. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/MailingListTargetingField.d.ts +11 -0
  115. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/context.d.ts +13 -0
  116. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/index.d.ts +3 -0
  117. package/dist/_dts/editor-blocks/src/widgets/mailing-list-targeting/loaders.d.ts +6 -0
  118. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  119. package/dist/_dts/sdk/src/client/publicAppointmentReadOperations.d.ts +12 -0
  120. package/dist/_dts/sdk/src/client/publicEventReadOperations.d.ts +2 -1
  121. package/dist/_dts/sdk/src/client/publicLoaderCacheAccess.d.ts +11 -4
  122. package/dist/_dts/sdk/src/config/content-types.d.ts +3 -13
  123. package/dist/_dts/sdk/src/config/content-validation.d.ts +5 -8
  124. package/dist/_dts/sdk/src/constants.d.ts +3 -3
  125. package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
  126. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -31
  127. package/dist/_dts/sdk/src/navigation/index.d.ts +11 -29
  128. package/dist/_dts/sdk/src/next/index.d.ts +4 -4
  129. package/dist/_dts/sdk/src/prebuild/types.d.ts +1 -5
  130. package/dist/_dts/sdk/src/public-api/contracts.d.ts +33 -16
  131. package/dist/_dts/sdk/src/rendering/blocks-page-renderer.d.ts +3 -0
  132. package/dist/_dts/sdk/src/rendering/client.d.ts +3 -20
  133. package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +3 -0
  134. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +4 -0
  135. package/dist/_dts/sdk/src/rendering/helpers/pageRuntimeSupport.d.ts +1 -0
  136. package/dist/_dts/sdk/src/rendering/index.d.ts +1 -1
  137. package/dist/_dts/sdk/src/types/block-kinds.d.ts +1 -1
  138. package/dist/_dts/sdk/src/version.d.ts +1 -1
  139. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  140. package/dist/_dts/theme-core/src/hosted-booking-appearance.d.ts +41 -0
  141. package/dist/_dts/theme-core/src/index.d.ts +1 -0
  142. package/dist/_dts/theme-core/src/runtime/buildThemeRuntime.d.ts +0 -1
  143. package/dist/_dts/theme-core/src/tokens/tokens.d.ts +7 -0
  144. package/dist/_dts/ui/src/badge.d.ts +1 -1
  145. package/dist/_dts/ui/src/callout.d.ts +1 -1
  146. package/dist/client/{BookingConsentAgreement-DQUik1Mx.mjs → BookingConsentAgreement-CZvTDtsK.mjs} +2 -2
  147. package/dist/client/{DiscountCodeDisclosure-CU67Q4vH.mjs → DiscountCodeDisclosure-D-DsLCMU.mjs} +1 -1
  148. package/dist/client/{EventCombined.client-a02TXUgg.mjs → EventCombined.client-dWqgd5ZO.mjs} +443 -199
  149. package/dist/client/{EventListing.client-99qx7jFl.mjs → EventListing.client-BMRa9IYp.mjs} +2 -2
  150. package/dist/client/{LeafletStaticMap-CWzcq73L.mjs → LeafletStaticMap-D21W9kBZ.mjs} +1 -1
  151. package/dist/client/{accordion-D1nb3-Oj.mjs → accordion-FxF_ta47.mjs} +1 -1
  152. package/dist/client/{bookingForm-BGrmLhaO.mjs → bookingForm-YnwW4TGw.mjs} +5 -5
  153. package/dist/client/bookings.mjs +43 -2
  154. package/dist/client/{carousel-DSmOx3ad.mjs → carousel-vng7fFT5.mjs} +1 -1
  155. package/dist/client/{cart-COWeOIUk.mjs → cart-DEPDsjNk.mjs} +3 -3
  156. package/dist/client/{checkout-CeysaIJK.mjs → checkout-CZRWu9rW.mjs} +3 -3
  157. package/dist/client/client.mjs +3331 -1407
  158. package/dist/client/{context-DBzX85Xc.mjs → context-DvU_WUmd.mjs} +4 -3
  159. package/dist/client/{dates-DCYhZBlW.mjs → dates-wnPMiRl5.mjs} +21 -3
  160. package/dist/client/{eventCalendar-BgsN73Ul.mjs → eventCalendar-BA3Q5L15.mjs} +80 -78
  161. package/dist/client/{eventCombined-DcZQAMQP.mjs → eventCombined-51wgR-1R.mjs} +3 -3
  162. package/dist/client/{eventDetails-BWwGJ54l.mjs → eventDetails-modaetpm.mjs} +4 -4
  163. package/dist/client/{eventListing-DqYqV8vp.mjs → eventListing-D8t2J3Kv.mjs} +3 -3
  164. package/dist/client/{eventRegistration-DQGDgu_e.mjs → eventRegistration-CYqtkCE_.mjs} +49 -9
  165. package/dist/client/{form-ClfpasVT.mjs → form-CBKXN5In.mjs} +2 -2
  166. package/dist/client/{headerSection-BuOMe98N.mjs → headerSection-DylDqNrs.mjs} +2 -2
  167. package/dist/client/hooks.mjs +1259 -555
  168. package/dist/client/{locationMap-CEqu_sfa.mjs → locationMap-CvWrG0vZ.mjs} +2 -2
  169. package/dist/client/{newsletterForm-IbrHjMxy.mjs → newsletterForm-Btwk70zw.mjs} +117 -38
  170. package/dist/client/{pricing-xj7MPZlK.mjs → pricing-Uzw-GQ6Y.mjs} +1 -1
  171. package/dist/client/{productDetail-vxqTt5Xj.mjs → productDetail-JLcUYKnd.mjs} +3 -3
  172. package/dist/client/{productList-OTdZu8sb.mjs → productList-FM0cbUzj.mjs} +3 -3
  173. package/dist/client/{propsDecoder-CY9gGEF7.mjs → propsDecoder-DYzafZb2.mjs} +592 -152
  174. package/dist/client/rendering/client.mjs +2259 -835
  175. package/dist/client/rendering/islands.mjs +17 -17
  176. package/dist/client/rendering.mjs +3308 -1236
  177. package/dist/client/{scrollToBlock--BFV6kl-.mjs → scrollToBlock-CvXszexS.mjs} +1 -1
  178. package/dist/client/{shop-CP4YbDL9.mjs → shop-BIcjvy5a.mjs} +6 -6
  179. package/dist/client/{shop-commerce-APs4XBXE.mjs → shop-commerce-BZQsy7xw.mjs} +5 -5
  180. package/dist/client/{shop-commerce-store-CAVLxLFr.mjs → shop-commerce-store-D5V7XAb5.mjs} +1 -1
  181. package/dist/client/{shopShared-BnSRrwXI.mjs → shopShared-DowkXevB.mjs} +3 -3
  182. package/dist/client/{useEventFilters-1a1by4c8.mjs → useEventFilters-oMoTw_JE.mjs} +56 -9
  183. package/dist/preview-next/before-render.mjs +238 -111
  184. package/dist/preview-next/client/runtime.mjs +4 -4
  185. package/dist/preview-next/keepAlive.mjs +238 -111
  186. package/dist/preview-next/middleware.mjs +238 -111
  187. package/dist/{previewAuthStore-BkEgnYPP.mjs → previewAuthStore-COUyAKaX.mjs} +238 -111
  188. package/dist/{sdk-runtime-DwGfsT0S.mjs → sdk-runtime-D4k2LSGF.mjs} +2 -2
  189. package/dist/{separator-BeqDLneQ.mjs → separator-UGtpag4Z.mjs} +1 -1
  190. package/dist/server/components.mjs +2697 -1023
  191. package/dist/server/config-validation.mjs +2424 -1720
  192. package/dist/server/config.mjs +2429 -1724
  193. package/dist/server/data.mjs +1164 -454
  194. package/dist/server/index.mjs +364 -280
  195. package/dist/server/navigation.mjs +16 -47
  196. package/dist/server/next.mjs +2915 -1380
  197. package/dist/server/page-converter.mjs +969 -522
  198. package/dist/server/prebuild.mjs +2 -3
  199. package/dist/server/rendering/server.mjs +2704 -1030
  200. package/dist/server/rendering.mjs +2742 -1063
  201. package/dist/server/routing.mjs +1386 -595
  202. package/dist/server/server.mjs +2878 -2324
  203. package/dist/server/theme-bridge.mjs +292 -24
  204. package/dist/styles/index.css +289 -25
  205. package/package.json +1 -1
  206. package/dist/_dts/api/src/navigation/identity.d.ts +0 -59
  207. package/dist/_dts/blocks/src/system/blocks/newsletter-signup-destination.d.ts +0 -291
  208. package/dist/_dts/core/src/newsletter-signup-destination.d.ts +0 -38
@@ -5027,7 +5027,8 @@
5027
5027
  [data-block='event-listing'],
5028
5028
  [data-block='event-spotlight'],
5029
5029
  [data-block='event-calendar'],
5030
- [data-block='event-combined']
5030
+ [data-block='event-combined'],
5031
+ .event-card--catalogue
5031
5032
  )
5032
5033
  .event-card-media {
5033
5034
  height: var(--rb-event-card-media-height, 16rem);
@@ -5040,7 +5041,8 @@
5040
5041
  [data-block='event-listing'],
5041
5042
  [data-block='event-spotlight'],
5042
5043
  [data-block='event-calendar'],
5043
- [data-block='event-combined']
5044
+ [data-block='event-combined'],
5045
+ .event-card--catalogue
5044
5046
  )
5045
5047
  .event-card-image {
5046
5048
  width: 100%;
@@ -5053,12 +5055,12 @@
5053
5055
 
5054
5056
  :where(.theme-scope)
5055
5057
  :where(
5056
- [data-block='event-listing'],
5057
- [data-block='event-spotlight'],
5058
- [data-block='event-calendar'],
5059
- [data-block='event-combined']
5058
+ [data-block='event-listing'] .event-card:hover,
5059
+ [data-block='event-spotlight'] .event-card:hover,
5060
+ [data-block='event-calendar'] .event-card:hover,
5061
+ [data-block='event-combined'] .event-card:hover,
5062
+ .event-card--catalogue:hover
5060
5063
  )
5061
- .event-card:hover
5062
5064
  .event-card-image {
5063
5065
  transform: scale(var(--rb-event-card-image-hover-scale, 1.08));
5064
5066
  }
@@ -6997,16 +6999,6 @@
6997
6999
  gap: 0.5rem;
6998
7000
  }
6999
7001
 
7000
- /* Empty day message */
7001
- :where(.theme-scope)
7002
- :where([data-block='event-calendar'])
7003
- .event-agenda-day-empty {
7004
- font-size: 0.875rem;
7005
- opacity: var(--ec-empty-opacity);
7006
- margin: 0;
7007
- padding: 0.25rem 0;
7008
- }
7009
-
7010
7002
  /* -----------------------------------------------------------------------------
7011
7003
  * Agenda Event Card
7012
7004
  * Rich event card for agenda view
@@ -7090,7 +7082,6 @@
7090
7082
  gap: 0.75rem;
7091
7083
  flex-wrap: wrap;
7092
7084
  font-size: 0.75rem;
7093
- opacity: 0.7;
7094
7085
  }
7095
7086
 
7096
7087
  :where(.theme-scope)
@@ -7103,9 +7094,8 @@
7103
7094
 
7104
7095
  :where(.theme-scope)
7105
7096
  :where([data-block='event-calendar'])
7106
- .event-agenda-card-icon {
7097
+ .event-agenda-card-icon {
7107
7098
  flex-shrink: 0;
7108
- opacity: 0.7;
7109
7099
  }
7110
7100
 
7111
7101
  :where(.theme-scope)
@@ -7122,11 +7112,197 @@
7122
7112
 
7123
7113
  :where(.theme-scope)
7124
7114
  :where([data-block='event-calendar'])
7125
- .event-agenda-card-capacity--full {
7126
- color: rgb(var(--tb-error, 239 68 68));
7115
+ .event-agenda-card-capacity--full {
7116
+ font-weight: 600;
7117
+ }
7118
+
7119
+ /*
7120
+ * Agenda rows
7121
+ *
7122
+ * The modal keeps the original button card above. Published agenda rows use
7123
+ * an article so their title and booking action can be separate, accessible
7124
+ * links without nesting anchors.
7125
+ */
7126
+ :where(.theme-scope)
7127
+ :where([data-block='event-calendar'])
7128
+ .event-agenda-card--agenda {
7129
+ display: grid;
7130
+ grid-template-columns: 0.25rem minmax(4.5rem, auto) minmax(0, 1fr) auto;
7131
+ align-items: center;
7132
+ column-gap: 1rem;
7133
+ padding: 1rem;
7134
+ }
7135
+
7136
+ :where(.theme-scope)
7137
+ :where([data-block='event-calendar'])
7138
+ .event-agenda-card--agenda
7139
+ .event-agenda-card-indicator {
7140
+ grid-column: 1;
7141
+ grid-row: 1;
7142
+ }
7143
+
7144
+ :where(.theme-scope)
7145
+ :where([data-block='event-calendar'])
7146
+ .event-agenda-card--agenda
7147
+ > .event-agenda-card-time {
7148
+ grid-column: 2;
7149
+ grid-row: 1;
7150
+ font-size: 0.875rem;
7151
+ font-weight: 700;
7152
+ opacity: 1;
7153
+ }
7154
+
7155
+ :where(.theme-scope)
7156
+ :where([data-block='event-calendar'])
7157
+ .event-agenda-card--agenda
7158
+ .event-agenda-card-content {
7159
+ grid-column: 3;
7160
+ grid-row: 1;
7161
+ display: block;
7162
+ }
7163
+
7164
+ :where(.theme-scope)
7165
+ :where([data-block='event-calendar'])
7166
+ .event-agenda-card--agenda
7167
+ .event-agenda-card-title {
7168
+ margin: 0;
7169
+ font-size: 0.9375rem;
7170
+ font-weight: 600;
7171
+ line-height: 1.3;
7172
+ }
7173
+
7174
+ :where(.theme-scope)
7175
+ :where([data-block='event-calendar'])
7176
+ .event-agenda-card--agenda
7177
+ .event-agenda-card-title
7178
+ a {
7179
+ color: inherit;
7180
+ text-decoration: none;
7181
+ }
7182
+
7183
+ :where(.theme-scope)
7184
+ :where([data-block='event-calendar'])
7185
+ .event-agenda-card--agenda
7186
+ .event-agenda-card-title
7187
+ a:hover {
7188
+ text-decoration: underline;
7189
+ text-underline-offset: 0.15em;
7190
+ }
7191
+
7192
+ :where(.theme-scope)
7193
+ :where([data-block='event-calendar'])
7194
+ .event-agenda-card--agenda
7195
+ .event-agenda-card-details {
7196
+ align-items: baseline;
7197
+ gap: 0.25rem 0.6rem;
7198
+ margin-top: 0.2rem;
7199
+ font-size: 0.75rem;
7200
+ line-height: 1.35;
7201
+ }
7202
+
7203
+ :where(.theme-scope)
7204
+ :where([data-block='event-calendar'])
7205
+ .event-agenda-card--agenda
7206
+ .event-agenda-card-location {
7207
+ display: inline-flex;
7208
+ align-items: center;
7209
+ gap: 0.25rem;
7210
+ }
7211
+
7212
+ :where(.theme-scope)
7213
+ :where([data-block='event-calendar'])
7214
+ .event-agenda-card--agenda
7215
+ .event-agenda-card-action {
7216
+ grid-column: 4;
7217
+ grid-row: 1;
7218
+ display: flex;
7219
+ flex-direction: column;
7220
+ align-items: flex-end;
7221
+ gap: 0.5rem;
7222
+ min-width: max-content;
7223
+ }
7224
+
7225
+ :where(.theme-scope)
7226
+ :where([data-block='event-calendar'])
7227
+ .event-agenda-card--agenda
7228
+ .event-agenda-card-price {
7229
+ font-size: 0.875rem;
7230
+ font-weight: 700;
7127
7231
  opacity: 1;
7128
7232
  }
7129
7233
 
7234
+ :where(.theme-scope)
7235
+ :where([data-block='event-calendar'])
7236
+ .event-agenda-card--agenda
7237
+ .event-agenda-card-status {
7238
+ font-size: 0.75rem;
7239
+ font-weight: 600;
7240
+ white-space: nowrap;
7241
+ }
7242
+
7243
+ :where(.theme-scope)
7244
+ :where([data-block='event-calendar'])
7245
+ .event-agenda-card--agenda
7246
+ .event-agenda-card-icon {
7247
+ width: 0.875rem;
7248
+ height: 0.875rem;
7249
+ }
7250
+
7251
+ :where(.theme-scope)
7252
+ :where([data-block='event-calendar'])
7253
+ .event-agenda-empty {
7254
+ margin: 0;
7255
+ padding: 2rem 1rem;
7256
+ text-align: center;
7257
+ font-size: 0.875rem;
7258
+ opacity: var(--ec-empty-opacity);
7259
+ }
7260
+
7261
+ @media (max-width: 639px) {
7262
+ :where(.theme-scope)
7263
+ :where([data-block='event-calendar'])
7264
+ .event-agenda-card--agenda {
7265
+ grid-template-columns: minmax(4.25rem, auto) minmax(0, 1fr);
7266
+ grid-template-areas:
7267
+ 'time content'
7268
+ 'action action';
7269
+ align-items: start;
7270
+ column-gap: 0.75rem;
7271
+ row-gap: 0.65rem;
7272
+ }
7273
+
7274
+ :where(.theme-scope)
7275
+ :where([data-block='event-calendar'])
7276
+ .event-agenda-card--agenda
7277
+ .event-agenda-card-indicator {
7278
+ display: none;
7279
+ }
7280
+
7281
+ :where(.theme-scope)
7282
+ :where([data-block='event-calendar'])
7283
+ .event-agenda-card--agenda
7284
+ > .event-agenda-card-time {
7285
+ grid-area: time;
7286
+ }
7287
+
7288
+ :where(.theme-scope)
7289
+ :where([data-block='event-calendar'])
7290
+ .event-agenda-card--agenda
7291
+ .event-agenda-card-content {
7292
+ grid-area: content;
7293
+ }
7294
+
7295
+ :where(.theme-scope)
7296
+ :where([data-block='event-calendar'])
7297
+ .event-agenda-card--agenda
7298
+ .event-agenda-card-action {
7299
+ grid-area: action;
7300
+ flex-direction: row;
7301
+ align-items: center;
7302
+ justify-content: flex-end;
7303
+ }
7304
+ }
7305
+
7130
7306
  /* -----------------------------------------------------------------------------
7131
7307
  * Week Timetable View
7132
7308
  * Time-grid layout for recurring class schedules
@@ -8824,7 +9000,6 @@
8824
9000
  /* Shadow Utilities (defined in rb-utilities.css; theme-driven via --shadow-*) */
8825
9001
 
8826
9002
 
8827
-
8828
9003
  /* =============================================================================
8829
9004
  * Block: Event List (Phase 3 client component migration)
8830
9005
  * =============================================================================
@@ -8850,8 +9025,9 @@
8850
9025
  border: 1px solid rgb(var(--tb-primary));
8851
9026
  border-radius: var(--rb-button-radius, 0.375rem);
8852
9027
  cursor: pointer;
8853
- transition: background-color var(--rb-block-transition, 150ms) ease,
8854
- color var(--rb-block-transition, 150ms) ease;
9028
+ transition:
9029
+ background-color var(--rb-block-transition, 150ms) ease,
9030
+ color var(--rb-block-transition, 150ms) ease;
8855
9031
  }
8856
9032
 
8857
9033
  :where(.theme-scope) .event-reset-filters-btn:hover {
@@ -8879,6 +9055,63 @@
8879
9055
  text-underline-offset: 0.12em;
8880
9056
  }
8881
9057
 
9058
+ /* Catalogue cards can keep their media footprint when an event has no
9059
+ resolved image. The date remains useful content and follows the site's
9060
+ palette and typography tokens. */
9061
+ :where(.theme-scope) .event-card-date-fallback {
9062
+ position: relative;
9063
+ display: flex;
9064
+ min-height: var(--rb-event-card-media-height, 16rem);
9065
+ flex-direction: column;
9066
+ justify-content: flex-end;
9067
+ gap: 0.125rem;
9068
+ overflow: hidden;
9069
+ padding: 1.125rem;
9070
+ border-bottom: 1px solid rgb(var(--tb-border, 229 231 235));
9071
+ background: rgb(var(--tb-surfaceAlt, var(--tb-surface, 255 255 255)));
9072
+ color: rgb(var(--tb-text, 17 24 39));
9073
+ }
9074
+
9075
+ :where(.theme-scope) .event-card-date-fallback::before {
9076
+ position: absolute;
9077
+ inset: 0;
9078
+ pointer-events: none;
9079
+ background: radial-gradient(
9080
+ 120% 140% at 0% 0%,
9081
+ color-mix(in srgb, rgb(var(--tb-primary, 0 0 0)) 11%, transparent),
9082
+ transparent 62%
9083
+ );
9084
+ content: '';
9085
+ }
9086
+
9087
+ :where(.theme-scope) .event-card-date-fallback-label,
9088
+ :where(.theme-scope) .event-card-date-fallback-value {
9089
+ position: relative;
9090
+ }
9091
+
9092
+ :where(.theme-scope) .event-card-date-fallback-label {
9093
+ color: rgb(var(--tb-mutedText, var(--tb-muted, 107 114 128)));
9094
+ font-size: 0.72rem;
9095
+ font-weight: 700;
9096
+ letter-spacing: 0.14em;
9097
+ line-height: 1.2;
9098
+ text-transform: uppercase;
9099
+ }
9100
+
9101
+ :where(.theme-scope) .event-card-date-fallback-value {
9102
+ color: rgb(var(--tb-primary, 0 0 0));
9103
+ font-family: var(--font-heading, var(--font-body, inherit));
9104
+ font-size: clamp(1.7rem, 1.35rem + 1.1vw, 2.35rem);
9105
+ font-weight: 500;
9106
+ letter-spacing: -0.025em;
9107
+ line-height: 1.04;
9108
+ }
9109
+
9110
+ :where(.theme-scope) .event-card-price {
9111
+ color: rgb(var(--tb-text, 17 24 39));
9112
+ font-weight: 600;
9113
+ }
9114
+
8882
9115
 
8883
9116
 
8884
9117
  /* =============================================================================
@@ -12732,3 +12965,34 @@
12732
12965
  }
12733
12966
 
12734
12967
 
12968
+ /* =============================================================================
12969
+ * Block: Appointment Services
12970
+ * ============================================================================= */
12971
+
12972
+ :where(.theme-scope) :where([data-block="appointment-services"]) .appointment-services-row {
12973
+ display: flex;
12974
+ flex-wrap: wrap;
12975
+ align-items: baseline;
12976
+ column-gap: 1rem;
12977
+ row-gap: 0.5rem;
12978
+ }
12979
+
12980
+ :where(.theme-scope) :where([data-block="appointment-services"]) .appointment-services-row-main {
12981
+ flex: 1 1 16rem;
12982
+ }
12983
+
12984
+ :where(.theme-scope) :where([data-block="appointment-services"]) .appointment-services-row-price {
12985
+ flex: 0 0 auto;
12986
+ }
12987
+
12988
+ :where(.theme-scope) :where([data-block="appointment-services"]) .appointment-services-row-action {
12989
+ flex: 1 0 100%;
12990
+ }
12991
+
12992
+ @media (min-width: 768px) {
12993
+ :where(.theme-scope) :where([data-block="appointment-services"]) .appointment-services-row-action {
12994
+ flex: 0 0 auto;
12995
+ }
12996
+ }
12997
+
12998
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riverbankcms/sdk",
3
- "version": "0.138.0",
3
+ "version": "0.139.0",
4
4
  "description": "Riverbank CMS SDK for headless content consumption",
5
5
  "main": "./dist/server/index.mjs",
6
6
  "module": "./dist/server/index.mjs",
@@ -1,59 +0,0 @@
1
- import { type Brand, type Result } from '../../../core/src/index';
2
- export type NavigationMenuIdentifier = Brand<string, 'NavigationMenuIdentifier'>;
3
- export type NavigationMenuIdentity = Brand<string, 'NavigationMenuIdentity'>;
4
- export type NavigationMenuIdentifierParseError = Readonly<{
5
- kind: 'not_string';
6
- }> | Readonly<{
7
- kind: 'empty_string';
8
- }>;
9
- export type NavigationMenuIdentityInput = Readonly<{
10
- identifier?: string | null;
11
- name: string;
12
- }>;
13
- export type NavigationMenuMatchCandidate = Readonly<{
14
- id: string;
15
- identifier?: string | null;
16
- name: string;
17
- isPrimary: boolean;
18
- }>;
19
- export type NavigationMenuMatchInput = Readonly<{
20
- identifier?: string | null;
21
- name: string;
22
- }>;
23
- export type NavigationMenuMatchPlan = Readonly<{
24
- type: 'create';
25
- identifier: NavigationMenuIdentifier | null;
26
- } | {
27
- type: 'update';
28
- menuId: string;
29
- identifier: NavigationMenuIdentifier | null;
30
- } | {
31
- type: 'adopt_legacy_primary';
32
- menuId: string;
33
- identifier: NavigationMenuIdentifier;
34
- } | {
35
- type: 'identifier_conflict';
36
- identifier: NavigationMenuIdentifier;
37
- menuIds: readonly string[];
38
- } | {
39
- type: 'ambiguous_legacy_primary';
40
- identifier: NavigationMenuIdentifier;
41
- menuIds: readonly string[];
42
- } | {
43
- type: 'ambiguous_name';
44
- name: string;
45
- menuIds: readonly string[];
46
- }>;
47
- export type ActionableNavigationMenuMatchPlan = Extract<NavigationMenuMatchPlan, {
48
- type: 'create' | 'update' | 'adopt_legacy_primary';
49
- }>;
50
- export type NavigationMenuMatchFailure = Exclude<NavigationMenuMatchPlan, ActionableNavigationMenuMatchPlan>;
51
- export declare function unsafeAsNavigationMenuIdentifier(identifier: string): NavigationMenuIdentifier;
52
- export declare function unsafeAsNavigationMenuIdentity(identity: string): NavigationMenuIdentity;
53
- export declare const MAIN_NAVIGATION_MENU_IDENTIFIER: NavigationMenuIdentifier;
54
- export declare function parseNavigationMenuIdentifier(value: unknown): Result<NavigationMenuIdentifier, NavigationMenuIdentifierParseError>;
55
- export declare function normalizeNavigationMenuIdentifier(identifier: string | null | undefined): NavigationMenuIdentifier | null;
56
- export declare function isMainNavigationMenuIdentifier(identifier: string | null | undefined): boolean;
57
- export declare function navigationMenuIdentity(input: NavigationMenuIdentityInput): NavigationMenuIdentity;
58
- export declare function planNavigationMenuMatch(input: NavigationMenuMatchInput, menus: readonly NavigationMenuMatchCandidate[]): NavigationMenuMatchPlan;
59
- export declare function actionableNavigationMenuMatchPlan(plan: NavigationMenuMatchPlan): Result<ActionableNavigationMenuMatchPlan, NavigationMenuMatchFailure>;