@riverbankcms/sdk 0.60.16 → 0.62.2
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.
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +41 -1
- package/dist/_dts/api/src/bookingRecords.d.ts +100 -3
- package/dist/_dts/api/src/bookings.d.ts +2 -1
- package/dist/_dts/api/src/endpoints.d.ts +96 -0
- package/dist/_dts/api/src/index.d.ts +5 -1
- package/dist/_dts/api/src/participantMessaging.d.ts +113 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +51 -47
- package/dist/_dts/api/src/types.d.ts +1 -0
- package/dist/_dts/blocks/src/index.d.ts +66 -62
- package/dist/_dts/blocks/src/lib/media.d.ts +60 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/audio-player.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/blog-post.d.ts +0 -21
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +2 -6
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +0 -10
- package/dist/_dts/blocks/src/system/blocks/columns.d.ts +0 -10
- package/dist/_dts/blocks/src/system/blocks/course-details.d.ts +0 -20
- package/dist/_dts/blocks/src/system/blocks/course-registration.d.ts +0 -20
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +15 -15
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +5 -10
- package/dist/_dts/blocks/src/system/blocks/embed.d.ts +0 -11
- package/dist/_dts/blocks/src/system/blocks/event-details.d.ts +0 -20
- package/dist/_dts/blocks/src/system/blocks/event-registration.d.ts +0 -20
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +43 -27
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +24 -15
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +132 -12
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +3 -2
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +2 -10
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +2 -24
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/hero.d.ts +2 -3
- package/dist/_dts/blocks/src/system/blocks/image-gallery.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +0 -13
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +17 -17
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -10
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/shared/bookingPaymentTerms.d.ts +9 -9
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/single-button.d.ts +16 -15
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +2 -6
- package/dist/_dts/blocks/src/system/blocks/site-header.d.ts +0 -11
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/video-grid.d.ts +2 -2
- package/dist/_dts/blocks/src/system/constants/events.d.ts +18 -0
- package/dist/_dts/blocks/src/system/customize/facets.d.ts +105 -0
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +29 -5
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/blogFeaturedPost.d.ts +0 -24
- package/dist/_dts/blocks/src/system/fragments/library/bodyCopy.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/bookingForm.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/columnContent.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/ctaCopy.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/footerBottomText.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/formCopy.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/formEmbed.d.ts +0 -18
- package/dist/_dts/blocks/src/system/fragments/library/headerCta.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/heading.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/heroCopy.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/heroLayoutControls.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/image.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/newsletterCopy.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/newsletterForm.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/quote.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/richText.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/singleButton.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/spinner.d.ts +0 -5
- package/dist/_dts/blocks/src/system/fragments/library/teamMember.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +0 -31
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsHeading.d.ts +0 -4
- package/dist/_dts/blocks/src/system/fragments/library/videoEmbed.d.ts +0 -6
- package/dist/_dts/blocks/src/system/fragments/types.d.ts +11 -3
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +4 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +3 -3
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +10 -10
- package/dist/_dts/blocks/src/system/media/constrainedVideoMedia.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +6 -0
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +4 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/media.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +7 -0
- package/dist/_dts/content-model/src/contentManifest.d.ts +2 -2
- package/dist/_dts/content-model/src/referenceFields.d.ts +7 -1
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +34 -6
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/EntryPickerWidgetProvider.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/loaders.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/entry-picker/types.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkPicker.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidget.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/LinkWidgetContext.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/loaders.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/widgets/link/types.d.ts +3 -2
- package/dist/_dts/editor-blocks/src/widgets/reference/dynamicAdapters.d.ts +9 -0
- package/dist/_dts/editor-blocks/src/widgets/reference/loaders.d.ts +5 -1
- package/dist/_dts/media-core/src/index.d.ts +1 -0
- package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +38 -0
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -1
- package/dist/_dts/media-editor/src/MediaPickerDialog.d.ts +7 -0
- package/dist/_dts/preview-next/src/client/blocks/customizeFacetControls.d.ts +9 -0
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +14 -0
- package/dist/_dts/preview-next/src/client/layout/PreviewLayoutContext.d.ts +9 -7
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -3
- package/dist/_dts/preview-next/src/client/widgets/widgetAdapters.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/content.d.ts +10 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/prompt/examples/features-grid.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/prompt/examples/pricing.d.ts +5 -5
- package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -0
- package/dist/_dts/theme-core/src/schema.d.ts +25 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +515 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetResolution.d.ts +12 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +119 -0
- package/dist/_dts/theme-core/src/site-styles/appearancePresets.d.ts +5 -563
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +448 -0
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +6 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +12 -0
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +8 -0
- package/dist/_dts/theme-core/src/site-styles/siteChromeAppearancePresets.d.ts +67 -0
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +6 -6
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +22 -3
- package/dist/_dts/theme-core/src/siteChrome.d.ts +11 -0
- package/dist/cli/index.mjs +4310 -3464
- package/dist/client/bookings.mjs +310 -310
- package/dist/client/client.mjs +61329 -60359
- package/dist/client/hooks.mjs +1254 -731
- package/dist/client/rendering/client.mjs +5959 -5226
- package/dist/client/rendering/islands.mjs +3842 -3275
- package/dist/client/rendering.mjs +7495 -6519
- package/dist/preview-next/before-render.mjs +118 -0
- package/dist/preview-next/client/runtime.mjs +4489 -2773
- package/dist/preview-next/middleware.mjs +136 -0
- package/dist/server/components.mjs +1342 -765
- package/dist/server/config-validation.mjs +1256 -733
- package/dist/server/config.mjs +1256 -733
- package/dist/server/data.mjs +1254 -731
- package/dist/server/index.mjs +191 -18
- package/dist/server/next.mjs +1339 -760
- package/dist/server/page-converter.mjs +1088 -734
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1338 -762
- package/dist/server/rendering.mjs +1351 -770
- package/dist/server/routing.mjs +1340 -754
- package/dist/server/server.mjs +1260 -734
- package/dist/server/theme-bridge.mjs +198 -34
- package/dist/server/theme.mjs +6 -0
- package/dist/styles/index.css +28 -9
- package/package.json +1 -1
package/dist/server/config.mjs
CHANGED
|
@@ -1043,6 +1043,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1043
1043
|
auth: "user",
|
|
1044
1044
|
responseKind: "json"
|
|
1045
1045
|
},
|
|
1046
|
+
exportAppointmentServicesCsv: {
|
|
1047
|
+
path: "/sites/{siteId}/bookings/services/export.csv",
|
|
1048
|
+
method: "GET",
|
|
1049
|
+
tags: ["site-{siteId}", "bookings", "appointment-services-{siteId}"],
|
|
1050
|
+
errors: [],
|
|
1051
|
+
auth: "user",
|
|
1052
|
+
responseKind: "blob"
|
|
1053
|
+
},
|
|
1046
1054
|
createAppointmentService: {
|
|
1047
1055
|
path: "/sites/{siteId}/bookings/services",
|
|
1048
1056
|
method: "POST",
|
|
@@ -1311,6 +1319,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1311
1319
|
auth: "user",
|
|
1312
1320
|
responseKind: "json"
|
|
1313
1321
|
},
|
|
1322
|
+
exportCoursesCsv: {
|
|
1323
|
+
path: "/sites/{siteId}/bookings/courses/export.csv",
|
|
1324
|
+
method: "GET",
|
|
1325
|
+
tags: ["site-{siteId}", "bookings", "courses-{siteId}"],
|
|
1326
|
+
errors: [],
|
|
1327
|
+
auth: "user",
|
|
1328
|
+
responseKind: "blob"
|
|
1329
|
+
},
|
|
1314
1330
|
createCourse: {
|
|
1315
1331
|
path: "/sites/{siteId}/bookings/courses",
|
|
1316
1332
|
method: "POST",
|
|
@@ -1410,6 +1426,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1410
1426
|
responseKind: "json",
|
|
1411
1427
|
errors: []
|
|
1412
1428
|
},
|
|
1429
|
+
exportCourseWaitlistCsv: {
|
|
1430
|
+
path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
|
|
1431
|
+
method: "GET",
|
|
1432
|
+
tags: ["site-{siteId}", "bookings", "courses-{courseId}"],
|
|
1433
|
+
auth: "user",
|
|
1434
|
+
responseKind: "blob",
|
|
1435
|
+
errors: []
|
|
1436
|
+
},
|
|
1413
1437
|
updateCourseEnrollment: {
|
|
1414
1438
|
path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
|
|
1415
1439
|
method: "PATCH",
|
|
@@ -4005,6 +4029,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4005
4029
|
auth: "user",
|
|
4006
4030
|
responseKind: "json"
|
|
4007
4031
|
},
|
|
4032
|
+
exportEventSeriesCsv: {
|
|
4033
|
+
path: "/sites/{siteId}/bookings/event-series/export.csv",
|
|
4034
|
+
method: "GET",
|
|
4035
|
+
tags: ["site-{siteId}", "bookings", "event-series-{siteId}"],
|
|
4036
|
+
errors: [],
|
|
4037
|
+
auth: "user",
|
|
4038
|
+
responseKind: "blob"
|
|
4039
|
+
},
|
|
4008
4040
|
createEventSeries: {
|
|
4009
4041
|
path: "/sites/{siteId}/bookings/event-series",
|
|
4010
4042
|
method: "POST",
|
|
@@ -4073,6 +4105,60 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4073
4105
|
errors: [],
|
|
4074
4106
|
responseKind: "blob"
|
|
4075
4107
|
},
|
|
4108
|
+
getParticipantMessageRecipients: {
|
|
4109
|
+
path: "/sites/{siteId}/bookings/participant-messaging/recipients",
|
|
4110
|
+
method: "POST",
|
|
4111
|
+
tags: ["site-{siteId}"],
|
|
4112
|
+
auth: "user",
|
|
4113
|
+
errors: [
|
|
4114
|
+
"validation:invalid_input",
|
|
4115
|
+
"auth:forbidden",
|
|
4116
|
+
"resource:not_found",
|
|
4117
|
+
"server:internal_error"
|
|
4118
|
+
],
|
|
4119
|
+
responseKind: "json"
|
|
4120
|
+
},
|
|
4121
|
+
sendParticipantMessage: {
|
|
4122
|
+
path: "/sites/{siteId}/bookings/participant-messaging/send",
|
|
4123
|
+
method: "POST",
|
|
4124
|
+
tags: ["site-{siteId}"],
|
|
4125
|
+
auth: "user",
|
|
4126
|
+
errors: [
|
|
4127
|
+
"validation:invalid_input",
|
|
4128
|
+
"auth:forbidden",
|
|
4129
|
+
"resource:not_found",
|
|
4130
|
+
"resource:conflict",
|
|
4131
|
+
"server:internal_error"
|
|
4132
|
+
],
|
|
4133
|
+
responseKind: "json"
|
|
4134
|
+
},
|
|
4135
|
+
testParticipantMessage: {
|
|
4136
|
+
path: "/sites/{siteId}/bookings/participant-messaging/test",
|
|
4137
|
+
method: "POST",
|
|
4138
|
+
tags: ["site-{siteId}"],
|
|
4139
|
+
auth: "user",
|
|
4140
|
+
errors: [
|
|
4141
|
+
"validation:invalid_input",
|
|
4142
|
+
"auth:forbidden",
|
|
4143
|
+
"resource:not_found",
|
|
4144
|
+
"resource:conflict",
|
|
4145
|
+
"server:internal_error"
|
|
4146
|
+
],
|
|
4147
|
+
responseKind: "json"
|
|
4148
|
+
},
|
|
4149
|
+
listParticipantMessageHistory: {
|
|
4150
|
+
path: "/sites/{siteId}/bookings/participant-messaging/history",
|
|
4151
|
+
method: "POST",
|
|
4152
|
+
tags: ["site-{siteId}"],
|
|
4153
|
+
auth: "user",
|
|
4154
|
+
errors: [
|
|
4155
|
+
"validation:invalid_input",
|
|
4156
|
+
"auth:forbidden",
|
|
4157
|
+
"resource:not_found",
|
|
4158
|
+
"server:internal_error"
|
|
4159
|
+
],
|
|
4160
|
+
responseKind: "json"
|
|
4161
|
+
},
|
|
4076
4162
|
listEventSeriesWaitlist: {
|
|
4077
4163
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist",
|
|
4078
4164
|
method: "GET",
|
|
@@ -4081,6 +4167,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4081
4167
|
responseKind: "json",
|
|
4082
4168
|
errors: []
|
|
4083
4169
|
},
|
|
4170
|
+
exportEventSeriesWaitlistCsv: {
|
|
4171
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist/export.csv",
|
|
4172
|
+
method: "GET",
|
|
4173
|
+
tags: ["site-{siteId}", "bookings", "event-series-{seriesId}"],
|
|
4174
|
+
auth: "user",
|
|
4175
|
+
responseKind: "blob",
|
|
4176
|
+
errors: []
|
|
4177
|
+
},
|
|
4084
4178
|
addEventOccurrenceAttendee: {
|
|
4085
4179
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences/{occurrenceId}/attendees",
|
|
4086
4180
|
method: "POST",
|
|
@@ -4797,6 +4891,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4797
4891
|
auth: "user",
|
|
4798
4892
|
responseKind: "json"
|
|
4799
4893
|
},
|
|
4894
|
+
exportSiteCustomerPassesCsv: {
|
|
4895
|
+
path: "/sites/{siteId}/bookings/customer-passes/export.csv",
|
|
4896
|
+
method: "GET",
|
|
4897
|
+
tags: ["site-{siteId}", "bookings", "customer-passes-{siteId}"],
|
|
4898
|
+
auth: "user",
|
|
4899
|
+
responseKind: "blob",
|
|
4900
|
+
errors: []
|
|
4901
|
+
},
|
|
4800
4902
|
listSiteCustomerMemberships: {
|
|
4801
4903
|
path: "/sites/{siteId}/bookings/customer-memberships",
|
|
4802
4904
|
method: "GET",
|
|
@@ -4860,6 +4962,22 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4860
4962
|
auth: "user",
|
|
4861
4963
|
responseKind: "blob"
|
|
4862
4964
|
},
|
|
4965
|
+
exportBookingLedgerCsv: {
|
|
4966
|
+
path: "/sites/{siteId}/bookings/ledger/export.csv",
|
|
4967
|
+
method: "GET",
|
|
4968
|
+
tags: ["site-{siteId}", "bookings", "booking-ledger-{siteId}"],
|
|
4969
|
+
errors: [],
|
|
4970
|
+
auth: "user",
|
|
4971
|
+
responseKind: "blob"
|
|
4972
|
+
},
|
|
4973
|
+
exportBookingQuestionAnswersCsv: {
|
|
4974
|
+
path: "/sites/{siteId}/bookings/intake-answers/export.csv",
|
|
4975
|
+
method: "GET",
|
|
4976
|
+
tags: ["site-{siteId}", "bookings", "intake-answers-{siteId}"],
|
|
4977
|
+
errors: [],
|
|
4978
|
+
auth: "user",
|
|
4979
|
+
responseKind: "blob"
|
|
4980
|
+
},
|
|
4863
4981
|
// Site logs
|
|
4864
4982
|
listSiteActivityLogs: {
|
|
4865
4983
|
path: "/sites/{siteId}/logs/activity",
|
|
@@ -6315,7 +6433,11 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
6315
6433
|
|
|
6316
6434
|
// ../blocks/src/system/manifest/schema.ts
|
|
6317
6435
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
6318
|
-
var siteOptionSources = [
|
|
6436
|
+
var siteOptionSources = [
|
|
6437
|
+
"eventCategories",
|
|
6438
|
+
"venues",
|
|
6439
|
+
"staffMembers"
|
|
6440
|
+
];
|
|
6319
6441
|
var mediaDeliverySchema = z3.object({
|
|
6320
6442
|
sizes: z3.string().optional(),
|
|
6321
6443
|
widthCandidates: z3.array(z3.number().int().positive()).optional(),
|
|
@@ -6353,7 +6475,10 @@ var uiSchema = z3.object({
|
|
|
6353
6475
|
hidden: z3.boolean().optional(),
|
|
6354
6476
|
hideLabel: z3.boolean().optional(),
|
|
6355
6477
|
hideDescription: z3.boolean().optional(),
|
|
6356
|
-
showCharCount: z3.union([
|
|
6478
|
+
showCharCount: z3.union([
|
|
6479
|
+
z3.number().int().positive(),
|
|
6480
|
+
z3.object({ max: z3.number().int().positive() })
|
|
6481
|
+
]).optional(),
|
|
6357
6482
|
showSlugPreview: z3.boolean().optional(),
|
|
6358
6483
|
variant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
6359
6484
|
richTextVariant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
@@ -6363,10 +6488,7 @@ var uiSchema = z3.object({
|
|
|
6363
6488
|
showMediaPreview: z3.boolean().optional(),
|
|
6364
6489
|
showMediaOverlayActions: z3.boolean().optional(),
|
|
6365
6490
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
6366
|
-
mediaDeliveryByVariant: z3.record(
|
|
6367
|
-
z3.string(),
|
|
6368
|
-
mediaDeliverySchema
|
|
6369
|
-
).optional(),
|
|
6491
|
+
mediaDeliveryByVariant: z3.record(z3.string(), mediaDeliverySchema).optional(),
|
|
6370
6492
|
// Optional input hints for validators/widgets
|
|
6371
6493
|
inputType: z3.enum(["text", "email", "tel", "number"]).optional(),
|
|
6372
6494
|
min: z3.number().optional(),
|
|
@@ -6474,7 +6596,9 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
6474
6596
|
});
|
|
6475
6597
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
6476
6598
|
type: z3.literal("media"),
|
|
6477
|
-
mediaKinds: z3.array(
|
|
6599
|
+
mediaKinds: z3.array(
|
|
6600
|
+
z3.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
|
|
6601
|
+
).default(["image"]),
|
|
6478
6602
|
aspectRatio: z3.string().optional()
|
|
6479
6603
|
});
|
|
6480
6604
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
@@ -6596,7 +6720,9 @@ var referenceFieldSchema = baseFieldSchema.extend({
|
|
|
6596
6720
|
var itemTypeSchema = z3.object({
|
|
6597
6721
|
label: z3.string().min(1),
|
|
6598
6722
|
icon: z3.string().optional(),
|
|
6599
|
-
fields: z3.lazy(
|
|
6723
|
+
fields: z3.lazy(
|
|
6724
|
+
() => getFieldSchemaInternal().array().min(1, "Item type requires at least one field")
|
|
6725
|
+
)
|
|
6600
6726
|
});
|
|
6601
6727
|
var repeaterFieldSchema = baseFieldSchema.extend({
|
|
6602
6728
|
type: z3.literal("repeater"),
|
|
@@ -6606,7 +6732,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6606
6732
|
maxItems: z3.number().int().positive().optional(),
|
|
6607
6733
|
// Monomorphic mode
|
|
6608
6734
|
schema: z3.object({
|
|
6609
|
-
fields: z3.lazy(
|
|
6735
|
+
fields: z3.lazy(
|
|
6736
|
+
() => getFieldSchemaInternal().array().min(1, "Repeater requires at least one field")
|
|
6737
|
+
)
|
|
6610
6738
|
}).optional(),
|
|
6611
6739
|
// Polymorphic mode
|
|
6612
6740
|
polymorphic: z3.boolean().optional(),
|
|
@@ -6652,13 +6780,19 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6652
6780
|
const itemTypes = Object.values(
|
|
6653
6781
|
data.itemTypes
|
|
6654
6782
|
);
|
|
6655
|
-
return itemTypes.every(
|
|
6783
|
+
return itemTypes.every(
|
|
6784
|
+
(itemType) => Array.isArray(itemType.fields) && requiredFieldIds.every(
|
|
6785
|
+
(requiredId) => itemType.fields?.some((field) => field.id === requiredId)
|
|
6786
|
+
)
|
|
6787
|
+
);
|
|
6656
6788
|
}
|
|
6657
6789
|
const schemaFields = data.schema?.fields;
|
|
6658
6790
|
if (!schemaFields) {
|
|
6659
6791
|
return true;
|
|
6660
6792
|
}
|
|
6661
|
-
return requiredFieldIds.every(
|
|
6793
|
+
return requiredFieldIds.every(
|
|
6794
|
+
(requiredId) => schemaFields.some((field) => field.id === requiredId)
|
|
6795
|
+
);
|
|
6662
6796
|
},
|
|
6663
6797
|
{
|
|
6664
6798
|
message: `layoutGrid repeaters require span/row/column fields (defaults: '${DEFAULT_REPEATER_GRID_SPAN_FIELD_ID}', '${DEFAULT_REPEATER_GRID_ROW_FIELD_ID}', '${DEFAULT_REPEATER_GRID_COLUMN_FIELD_ID}') to exist in repeater item fields`,
|
|
@@ -6686,7 +6820,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6686
6820
|
if (!schemaFields) {
|
|
6687
6821
|
return true;
|
|
6688
6822
|
}
|
|
6689
|
-
const field = schemaFields.find(
|
|
6823
|
+
const field = schemaFields.find(
|
|
6824
|
+
(candidate) => candidate.id === labelField
|
|
6825
|
+
);
|
|
6690
6826
|
return field?.type === "text";
|
|
6691
6827
|
},
|
|
6692
6828
|
{
|
|
@@ -6697,13 +6833,17 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6697
6833
|
var groupFieldSchema = baseFieldSchema.extend({
|
|
6698
6834
|
type: z3.literal("group"),
|
|
6699
6835
|
schema: z3.object({
|
|
6700
|
-
fields: z3.lazy(
|
|
6836
|
+
fields: z3.lazy(
|
|
6837
|
+
() => getFieldSchemaInternal().array().min(1, "Group requires at least one field")
|
|
6838
|
+
)
|
|
6701
6839
|
})
|
|
6702
6840
|
});
|
|
6703
6841
|
var modalFieldSchema = baseFieldSchema.extend({
|
|
6704
6842
|
type: z3.literal("modal"),
|
|
6705
6843
|
schema: z3.object({
|
|
6706
|
-
fields: z3.lazy(
|
|
6844
|
+
fields: z3.lazy(
|
|
6845
|
+
() => getFieldSchemaInternal().array().min(1, "Modal requires at least one field")
|
|
6846
|
+
)
|
|
6707
6847
|
})
|
|
6708
6848
|
});
|
|
6709
6849
|
var numberFieldSchema = baseFieldSchema.extend({
|
|
@@ -6810,31 +6950,35 @@ function expectParsedSelectField(field) {
|
|
|
6810
6950
|
return field;
|
|
6811
6951
|
}
|
|
6812
6952
|
function createSiteOptionSelectField(input) {
|
|
6813
|
-
return expectParsedSelectField(
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
|
|
6953
|
+
return expectParsedSelectField(
|
|
6954
|
+
parseFieldDefinition({
|
|
6955
|
+
...input,
|
|
6956
|
+
type: "select",
|
|
6957
|
+
options: [],
|
|
6958
|
+
multiple: input.multiple ?? false,
|
|
6959
|
+
source: { kind: "site", optionSource: input.optionSource },
|
|
6960
|
+
ui: {
|
|
6961
|
+
...input.ui ?? {},
|
|
6962
|
+
widget: "siteOptionPicker",
|
|
6963
|
+
siteOptionSource: input.optionSource
|
|
6964
|
+
}
|
|
6965
|
+
})
|
|
6966
|
+
);
|
|
6825
6967
|
}
|
|
6826
6968
|
function createSdkSelectField(input) {
|
|
6827
|
-
return expectParsedSelectField(
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
6835
|
-
|
|
6836
|
-
|
|
6837
|
-
|
|
6969
|
+
return expectParsedSelectField(
|
|
6970
|
+
parseFieldDefinition({
|
|
6971
|
+
...input,
|
|
6972
|
+
type: "select",
|
|
6973
|
+
options: input.options,
|
|
6974
|
+
multiple: input.multiple ?? false,
|
|
6975
|
+
source: { kind: "sdk" },
|
|
6976
|
+
ui: {
|
|
6977
|
+
...input.ui ?? {},
|
|
6978
|
+
widget: "sdkSelect"
|
|
6979
|
+
}
|
|
6980
|
+
})
|
|
6981
|
+
);
|
|
6838
6982
|
}
|
|
6839
6983
|
var slotSchema = z3.object({
|
|
6840
6984
|
id: z3.string().min(1),
|
|
@@ -6845,8 +6989,20 @@ var slotSchema = z3.object({
|
|
|
6845
6989
|
help: z3.string().optional(),
|
|
6846
6990
|
visibleRoles: z3.array(z3.enum(visibilityLevels)).optional()
|
|
6847
6991
|
});
|
|
6848
|
-
var typographyTokens = [
|
|
6849
|
-
|
|
6992
|
+
var typographyTokens = [
|
|
6993
|
+
"display",
|
|
6994
|
+
"heading",
|
|
6995
|
+
"subheading",
|
|
6996
|
+
"body",
|
|
6997
|
+
"caption"
|
|
6998
|
+
];
|
|
6999
|
+
var colorTokens = [
|
|
7000
|
+
"background",
|
|
7001
|
+
"surface",
|
|
7002
|
+
"foreground",
|
|
7003
|
+
"accent",
|
|
7004
|
+
"muted"
|
|
7005
|
+
];
|
|
6850
7006
|
var spacingTokens = ["none", "xs", "sm", "md", "lg", "xl"];
|
|
6851
7007
|
var radiusTokens = ["none", "sm", "md", "lg", "full"];
|
|
6852
7008
|
var styleTokenSchema = z3.object({
|
|
@@ -6866,7 +7022,14 @@ var behaviourSchema = z3.object({
|
|
|
6866
7022
|
// Block manages its own wrapper (for sticky/fixed positioning)
|
|
6867
7023
|
managesOwnWrapper: z3.boolean().optional()
|
|
6868
7024
|
});
|
|
6869
|
-
var blockCategoryEnum = z3.enum([
|
|
7025
|
+
var blockCategoryEnum = z3.enum([
|
|
7026
|
+
"marketing",
|
|
7027
|
+
"content",
|
|
7028
|
+
"blog",
|
|
7029
|
+
"media",
|
|
7030
|
+
"layout",
|
|
7031
|
+
"interactive"
|
|
7032
|
+
]);
|
|
6870
7033
|
var manifestSchema = z3.object({
|
|
6871
7034
|
name: z3.string().min(1),
|
|
6872
7035
|
version: z3.string().min(1),
|
|
@@ -7465,6 +7628,20 @@ var applyAppointmentSetupRequestSchema = z6.object({
|
|
|
7465
7628
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
7466
7629
|
});
|
|
7467
7630
|
|
|
7631
|
+
// ../api/src/bookingRecords.ts
|
|
7632
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPES = {
|
|
7633
|
+
site: "site",
|
|
7634
|
+
appointments: "appointments",
|
|
7635
|
+
eventSeries: "event_series",
|
|
7636
|
+
course: "course"
|
|
7637
|
+
};
|
|
7638
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES = [
|
|
7639
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site,
|
|
7640
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments,
|
|
7641
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries,
|
|
7642
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.course
|
|
7643
|
+
];
|
|
7644
|
+
|
|
7468
7645
|
// ../api/src/common/cancellation.ts
|
|
7469
7646
|
var STAFF_CANCELLATION_CONTEXT_UI_CATEGORIES = [
|
|
7470
7647
|
"customer_requested",
|
|
@@ -7836,6 +8013,24 @@ function registerManifest(manifest) {
|
|
|
7836
8013
|
return manifest;
|
|
7837
8014
|
}
|
|
7838
8015
|
|
|
8016
|
+
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
8017
|
+
function assertValidOptionGroups(preset2) {
|
|
8018
|
+
preset2.optionGroups?.forEach((group) => {
|
|
8019
|
+
const selectedOption = group.options.find(
|
|
8020
|
+
(option) => option.id === group.selectedOptionId
|
|
8021
|
+
);
|
|
8022
|
+
if (!selectedOption) {
|
|
8023
|
+
throw new Error(
|
|
8024
|
+
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
8025
|
+
);
|
|
8026
|
+
}
|
|
8027
|
+
});
|
|
8028
|
+
}
|
|
8029
|
+
function defineBlockAppearancePreset(preset2) {
|
|
8030
|
+
assertValidOptionGroups(preset2);
|
|
8031
|
+
return preset2;
|
|
8032
|
+
}
|
|
8033
|
+
|
|
7839
8034
|
// ../theme-core/src/site-styles/types.ts
|
|
7840
8035
|
function asDesignBlockId(value) {
|
|
7841
8036
|
return brandNonEmptyString(value, "DesignBlockId");
|
|
@@ -7917,6 +8112,11 @@ function flushPanelFrame(options) {
|
|
|
7917
8112
|
function defineFrameCapability(capability) {
|
|
7918
8113
|
return capability;
|
|
7919
8114
|
}
|
|
8115
|
+
var tileTreatmentValues = [
|
|
8116
|
+
"default",
|
|
8117
|
+
"quiet",
|
|
8118
|
+
"brand-depth"
|
|
8119
|
+
];
|
|
7920
8120
|
var eyebrowTreatmentValues = [
|
|
7921
8121
|
"plain",
|
|
7922
8122
|
"pill",
|
|
@@ -7932,31 +8132,13 @@ function defineBlockDesignCapability(capability) {
|
|
|
7932
8132
|
imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
|
|
7933
8133
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7934
8134
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
8135
|
+
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7935
8136
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"]
|
|
7936
8137
|
};
|
|
7937
8138
|
}
|
|
7938
8139
|
|
|
7939
|
-
// ../theme-core/src/site-styles/
|
|
7940
|
-
|
|
7941
|
-
preset2.optionGroups?.forEach((group) => {
|
|
7942
|
-
const selectedOption = group.options.find(
|
|
7943
|
-
(option) => option.id === group.selectedOptionId
|
|
7944
|
-
);
|
|
7945
|
-
if (!selectedOption) {
|
|
7946
|
-
throw new Error(
|
|
7947
|
-
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
7948
|
-
);
|
|
7949
|
-
}
|
|
7950
|
-
});
|
|
7951
|
-
}
|
|
7952
|
-
function defineBlockAppearancePreset(preset2) {
|
|
7953
|
-
assertValidOptionGroups(preset2);
|
|
7954
|
-
return preset2;
|
|
7955
|
-
}
|
|
7956
|
-
function defineSiteChromeAppearancePreset(preset2) {
|
|
7957
|
-
return preset2;
|
|
7958
|
-
}
|
|
7959
|
-
var appearancePresets = [
|
|
8140
|
+
// ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
8141
|
+
var blockAppearancePresets = [
|
|
7960
8142
|
defineBlockAppearancePreset({
|
|
7961
8143
|
kind: "block-design",
|
|
7962
8144
|
id: "hero-immersive-image",
|
|
@@ -8082,6 +8264,24 @@ var appearancePresets = [
|
|
|
8082
8264
|
eyebrowTreatment: "accent-pill-bounce"
|
|
8083
8265
|
}
|
|
8084
8266
|
}),
|
|
8267
|
+
defineBlockAppearancePreset({
|
|
8268
|
+
kind: "block-design",
|
|
8269
|
+
id: "hero-brand-depth-expressive",
|
|
8270
|
+
target: "hero",
|
|
8271
|
+
label: "Expressive brand-depth hero",
|
|
8272
|
+
blockKinds: ["block.hero"],
|
|
8273
|
+
constraints: {
|
|
8274
|
+
layoutFamilies: ["centered", "compact"]
|
|
8275
|
+
},
|
|
8276
|
+
design: {
|
|
8277
|
+
sectionSurface: "brand-depth-band",
|
|
8278
|
+
contentFrame: plainFrame,
|
|
8279
|
+
itemSurface: "none",
|
|
8280
|
+
transitionAfter: "soft-fade-short",
|
|
8281
|
+
emphasis: "high",
|
|
8282
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
8283
|
+
}
|
|
8284
|
+
}),
|
|
8085
8285
|
defineBlockAppearancePreset({
|
|
8086
8286
|
kind: "block-design",
|
|
8087
8287
|
id: "hero-contained-intro",
|
|
@@ -8110,6 +8310,20 @@ var appearancePresets = [
|
|
|
8110
8310
|
emphasis: "high"
|
|
8111
8311
|
}
|
|
8112
8312
|
}),
|
|
8313
|
+
defineBlockAppearancePreset({
|
|
8314
|
+
kind: "block-design",
|
|
8315
|
+
id: "body-text-brand-depth-intro",
|
|
8316
|
+
target: "body-text",
|
|
8317
|
+
label: "Brand-depth intro copy",
|
|
8318
|
+
blockKinds: ["block.body-text"],
|
|
8319
|
+
design: {
|
|
8320
|
+
sectionSurface: "brand-depth-band",
|
|
8321
|
+
contentFrame: plainFrame,
|
|
8322
|
+
itemSurface: "none",
|
|
8323
|
+
transitionAfter: "soft-fade-short",
|
|
8324
|
+
emphasis: "high"
|
|
8325
|
+
}
|
|
8326
|
+
}),
|
|
8113
8327
|
defineBlockAppearancePreset({
|
|
8114
8328
|
kind: "block-design",
|
|
8115
8329
|
id: "offerings-calm-list",
|
|
@@ -8152,6 +8366,21 @@ var appearancePresets = [
|
|
|
8152
8366
|
emphasis: "medium"
|
|
8153
8367
|
}
|
|
8154
8368
|
}),
|
|
8369
|
+
defineBlockAppearancePreset({
|
|
8370
|
+
kind: "block-design",
|
|
8371
|
+
id: "schedule-details-brand-depth",
|
|
8372
|
+
target: "events",
|
|
8373
|
+
label: "Brand-depth schedule details",
|
|
8374
|
+
blockKinds: ["block.event-details", "block.course-details"],
|
|
8375
|
+
design: {
|
|
8376
|
+
sectionSurface: "brand-depth-band",
|
|
8377
|
+
contentFrame: plainFrame,
|
|
8378
|
+
itemSurface: "none",
|
|
8379
|
+
transitionAfter: "none",
|
|
8380
|
+
emphasis: "medium",
|
|
8381
|
+
tileTreatment: "brand-depth"
|
|
8382
|
+
}
|
|
8383
|
+
}),
|
|
8155
8384
|
defineBlockAppearancePreset({
|
|
8156
8385
|
kind: "block-design",
|
|
8157
8386
|
id: "media-text-flush-feature",
|
|
@@ -8237,6 +8466,20 @@ var appearancePresets = [
|
|
|
8237
8466
|
testimonialCardTreatment: "accent-quote"
|
|
8238
8467
|
}
|
|
8239
8468
|
}),
|
|
8469
|
+
defineBlockAppearancePreset({
|
|
8470
|
+
kind: "block-design",
|
|
8471
|
+
id: "faq-base-accordion",
|
|
8472
|
+
target: "faq",
|
|
8473
|
+
label: "Base accordion FAQ",
|
|
8474
|
+
blockKinds: ["block.faq"],
|
|
8475
|
+
design: {
|
|
8476
|
+
sectionSurface: "base",
|
|
8477
|
+
contentFrame: plainFrame,
|
|
8478
|
+
itemSurface: "default",
|
|
8479
|
+
transitionAfter: "none",
|
|
8480
|
+
emphasis: "medium"
|
|
8481
|
+
}
|
|
8482
|
+
}),
|
|
8240
8483
|
defineBlockAppearancePreset({
|
|
8241
8484
|
kind: "block-design",
|
|
8242
8485
|
id: "faq-contained-help",
|
|
@@ -8279,6 +8522,20 @@ var appearancePresets = [
|
|
|
8279
8522
|
emphasis: "high"
|
|
8280
8523
|
}
|
|
8281
8524
|
}),
|
|
8525
|
+
defineBlockAppearancePreset({
|
|
8526
|
+
kind: "block-design",
|
|
8527
|
+
id: "contact-form-brand-depth-card",
|
|
8528
|
+
target: "contact-form",
|
|
8529
|
+
label: "Brand-depth form card",
|
|
8530
|
+
blockKinds: ["block.form"],
|
|
8531
|
+
design: {
|
|
8532
|
+
sectionSurface: "brand-depth-band",
|
|
8533
|
+
contentFrame: panelFrame("raised"),
|
|
8534
|
+
itemSurface: "none",
|
|
8535
|
+
transitionAfter: "none",
|
|
8536
|
+
emphasis: "high"
|
|
8537
|
+
}
|
|
8538
|
+
}),
|
|
8282
8539
|
defineBlockAppearancePreset({
|
|
8283
8540
|
kind: "block-design",
|
|
8284
8541
|
id: "cta-accent-band",
|
|
@@ -8292,7 +8549,14 @@ var appearancePresets = [
|
|
|
8292
8549
|
transitionAfter: "none",
|
|
8293
8550
|
emphasis: "high"
|
|
8294
8551
|
}
|
|
8295
|
-
})
|
|
8552
|
+
})
|
|
8553
|
+
];
|
|
8554
|
+
|
|
8555
|
+
// ../theme-core/src/site-styles/siteChromeAppearancePresets.ts
|
|
8556
|
+
function defineSiteChromeAppearancePreset(preset2) {
|
|
8557
|
+
return preset2;
|
|
8558
|
+
}
|
|
8559
|
+
var siteChromeAppearancePresets = [
|
|
8296
8560
|
defineSiteChromeAppearancePreset({
|
|
8297
8561
|
kind: "site-chrome",
|
|
8298
8562
|
id: "header-clean-base",
|
|
@@ -8360,6 +8624,12 @@ var appearancePresets = [
|
|
|
8360
8624
|
})
|
|
8361
8625
|
];
|
|
8362
8626
|
|
|
8627
|
+
// ../theme-core/src/site-styles/appearancePresetCatalog.ts
|
|
8628
|
+
var appearancePresets = [
|
|
8629
|
+
...blockAppearancePresets,
|
|
8630
|
+
...siteChromeAppearancePresets
|
|
8631
|
+
];
|
|
8632
|
+
|
|
8363
8633
|
// ../theme-core/src/site-styles/blockFlow.ts
|
|
8364
8634
|
function defineBlockDesignMetadata(input) {
|
|
8365
8635
|
const layoutProfiles = (input.layoutProfiles ?? []).map((profile) => ({
|
|
@@ -9834,6 +10104,7 @@ var sectionStylesOverrideSchema = z22.object({
|
|
|
9834
10104
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9835
10105
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9836
10106
|
minHeight: z22.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
10107
|
+
tileTreatment: z22.enum(tileTreatmentValues).nullable().optional(),
|
|
9837
10108
|
eyebrowTreatment: z22.enum(eyebrowTreatmentValues).nullable().optional()
|
|
9838
10109
|
});
|
|
9839
10110
|
var containerStylesOverrideSchema = z22.object({
|
|
@@ -10627,7 +10898,7 @@ var userContentFrames = [
|
|
|
10627
10898
|
];
|
|
10628
10899
|
var generatedDesignOptionCatalog = {
|
|
10629
10900
|
source: "generated",
|
|
10630
|
-
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
10901
|
+
sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
|
|
10631
10902
|
contentFrames: generatedContentFrames,
|
|
10632
10903
|
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
10633
10904
|
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
@@ -10697,6 +10968,43 @@ var expressiveBudget = {
|
|
|
10697
10968
|
mediaDensity: "high",
|
|
10698
10969
|
decorativeRepetition: "medium"
|
|
10699
10970
|
};
|
|
10971
|
+
var expressiveUnderlineInputs = {
|
|
10972
|
+
base: {
|
|
10973
|
+
background: { type: "transparent" },
|
|
10974
|
+
textColorToken: "text",
|
|
10975
|
+
border: {
|
|
10976
|
+
widthClass: "border-2",
|
|
10977
|
+
colorToken: "border",
|
|
10978
|
+
style: "underline"
|
|
10979
|
+
},
|
|
10980
|
+
corners: "square",
|
|
10981
|
+
shadow: null,
|
|
10982
|
+
spacing: "compact",
|
|
10983
|
+
fontSize: "base"
|
|
10984
|
+
},
|
|
10985
|
+
label: {
|
|
10986
|
+
textColorToken: "primary",
|
|
10987
|
+
fontWeight: "black",
|
|
10988
|
+
fontSize: "xs",
|
|
10989
|
+
textTransform: "uppercase",
|
|
10990
|
+
letterSpacing: "widest",
|
|
10991
|
+
opacity: 1
|
|
10992
|
+
},
|
|
10993
|
+
focus: {
|
|
10994
|
+
ringColorToken: "secondary",
|
|
10995
|
+
ringWidth: "0",
|
|
10996
|
+
borderColorToken: "secondary"
|
|
10997
|
+
},
|
|
10998
|
+
error: {
|
|
10999
|
+
borderColorToken: "destructive",
|
|
11000
|
+
textColorToken: "destructive"
|
|
11001
|
+
},
|
|
11002
|
+
disabled: {
|
|
11003
|
+
backgroundColorToken: "surface",
|
|
11004
|
+
textColorToken: "text",
|
|
11005
|
+
opacity: 0.6
|
|
11006
|
+
}
|
|
11007
|
+
};
|
|
10700
11008
|
function uniqueContentFrameKinds() {
|
|
10701
11009
|
const kinds = [...new Set(
|
|
10702
11010
|
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
@@ -11047,15 +11355,17 @@ var curatedSiteStyles = [
|
|
|
11047
11355
|
paragraphSize: "editorial",
|
|
11048
11356
|
headingSize: "editorial"
|
|
11049
11357
|
}
|
|
11050
|
-
}
|
|
11358
|
+
},
|
|
11359
|
+
inputs: expressiveUnderlineInputs
|
|
11051
11360
|
},
|
|
11052
11361
|
recommendedAppearancePresetIds: [
|
|
11053
11362
|
"site-header-brand-solid-inverted-cta",
|
|
11054
11363
|
"site-footer-brand-two-band",
|
|
11055
11364
|
"hero-brand-scrim-fixed-frame",
|
|
11056
11365
|
"body-text-editorial-intro",
|
|
11366
|
+
"schedule-details-brand-depth",
|
|
11057
11367
|
"testimonials-accent-quote-proof",
|
|
11058
|
-
"contact-form-
|
|
11368
|
+
"contact-form-brand-depth-card"
|
|
11059
11369
|
],
|
|
11060
11370
|
buttonPersonalityChoices: [
|
|
11061
11371
|
buttonChoice("showtime-pill"),
|
|
@@ -11189,6 +11499,7 @@ var imageSurfaceTreatmentSchema = z24.discriminatedUnion("kind", [
|
|
|
11189
11499
|
}).strict()
|
|
11190
11500
|
]);
|
|
11191
11501
|
var testimonialCardTreatmentSchema = z24.enum(["default", "accent-quote"]);
|
|
11502
|
+
var tileTreatmentSchema = z24.enum(tileTreatmentValues);
|
|
11192
11503
|
var eyebrowTreatmentSchema = z24.enum(eyebrowTreatmentValues);
|
|
11193
11504
|
function uniqueNonEmpty(values) {
|
|
11194
11505
|
const uniqueValues = [...new Set(values)];
|
|
@@ -11233,6 +11544,7 @@ var blockDesignPlanSchema = z24.object({
|
|
|
11233
11544
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
11234
11545
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
11235
11546
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
11547
|
+
tileTreatment: tileTreatmentSchema.optional(),
|
|
11236
11548
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
11237
11549
|
}).strict();
|
|
11238
11550
|
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
@@ -11296,6 +11608,14 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
11296
11608
|
headingColor: "primaryForeground"
|
|
11297
11609
|
}
|
|
11298
11610
|
},
|
|
11611
|
+
"brand-depth-band": {
|
|
11612
|
+
background: {
|
|
11613
|
+
type: "color",
|
|
11614
|
+
color: "primary-800",
|
|
11615
|
+
textColor: "primaryForeground",
|
|
11616
|
+
headingColor: "primaryForeground"
|
|
11617
|
+
}
|
|
11618
|
+
},
|
|
11299
11619
|
"hero-image": {
|
|
11300
11620
|
background: {
|
|
11301
11621
|
type: "image",
|
|
@@ -13174,6 +13494,21 @@ function createTransformRegistry(definitions) {
|
|
|
13174
13494
|
}
|
|
13175
13495
|
|
|
13176
13496
|
// ../blocks/src/system/transforms/registry/_utils/colorResolution.ts
|
|
13497
|
+
var CSS_COLOR_FUNCTION_PATTERN = /^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\(/i;
|
|
13498
|
+
var CSS_HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
13499
|
+
var THEME_COLOR_TOKEN_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:\/(?:100|[1-9]?\d|0))?$/;
|
|
13500
|
+
var CSS_COLOR_KEYWORDS = /* @__PURE__ */ new Set([
|
|
13501
|
+
"transparent",
|
|
13502
|
+
"currentColor",
|
|
13503
|
+
"inherit",
|
|
13504
|
+
"initial",
|
|
13505
|
+
"revert",
|
|
13506
|
+
"revert-layer",
|
|
13507
|
+
"unset"
|
|
13508
|
+
]);
|
|
13509
|
+
function isLiteralCssColorValue(value) {
|
|
13510
|
+
return CSS_HEX_COLOR_PATTERN.test(value) || CSS_COLOR_FUNCTION_PATTERN.test(value) || value.startsWith("var(") || CSS_COLOR_KEYWORDS.has(value);
|
|
13511
|
+
}
|
|
13177
13512
|
function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
13178
13513
|
const trimmed = tokenOrCssValue.trim();
|
|
13179
13514
|
if (!trimmed) return "";
|
|
@@ -13190,8 +13525,11 @@ function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
|
13190
13525
|
return rgbColorValue(trimmed);
|
|
13191
13526
|
}
|
|
13192
13527
|
}
|
|
13193
|
-
if (trimmed
|
|
13194
|
-
return
|
|
13528
|
+
if (isLiteralCssColorValue(trimmed)) {
|
|
13529
|
+
return trimmed;
|
|
13530
|
+
}
|
|
13531
|
+
if (THEME_COLOR_TOKEN_PATTERN.test(trimmed)) {
|
|
13532
|
+
return rgbColorValue(trimmed);
|
|
13195
13533
|
}
|
|
13196
13534
|
return trimmed;
|
|
13197
13535
|
}
|
|
@@ -13447,6 +13785,15 @@ function hasFixedFrameBackgroundMotion(value) {
|
|
|
13447
13785
|
const background = asPartialObject(input?.background);
|
|
13448
13786
|
return background?.motion === "fixed-frame";
|
|
13449
13787
|
}
|
|
13788
|
+
var tileTreatmentClassMap = {
|
|
13789
|
+
default: "",
|
|
13790
|
+
quiet: "rb-tile-treatment-quiet",
|
|
13791
|
+
"brand-depth": "rb-tile-treatment-brand-depth"
|
|
13792
|
+
};
|
|
13793
|
+
var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
13794
|
+
function isTileTreatment(value) {
|
|
13795
|
+
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
13796
|
+
}
|
|
13450
13797
|
var sectionClassNameTransform = {
|
|
13451
13798
|
id: "sectionStyles.resolveClassName",
|
|
13452
13799
|
kind: "string",
|
|
@@ -13503,8 +13850,19 @@ var sectionClassNameTransform = {
|
|
|
13503
13850
|
classes.push(minHeightClass);
|
|
13504
13851
|
}
|
|
13505
13852
|
}
|
|
13506
|
-
|
|
13507
|
-
|
|
13853
|
+
const tileTreatment = input?.tileTreatment;
|
|
13854
|
+
if (isTileTreatment(tileTreatment)) {
|
|
13855
|
+
const tileTreatmentClass = tileTreatmentClassMap[tileTreatment];
|
|
13856
|
+
if (tileTreatmentClass) {
|
|
13857
|
+
classes.push(tileTreatmentClass);
|
|
13858
|
+
}
|
|
13859
|
+
} else if (typeof tileTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
13860
|
+
console.warn(
|
|
13861
|
+
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
13862
|
+
);
|
|
13863
|
+
}
|
|
13864
|
+
if (hasFixedFrameBackgroundMotion(input)) {
|
|
13865
|
+
classes.push(fixedFrameScopeClass);
|
|
13508
13866
|
}
|
|
13509
13867
|
return classes.join(" ").trim();
|
|
13510
13868
|
}
|
|
@@ -16377,6 +16735,9 @@ function createBlockManifest(config) {
|
|
|
16377
16735
|
};
|
|
16378
16736
|
return augmentManifest(manifest);
|
|
16379
16737
|
}
|
|
16738
|
+
function createBlockManifestWithContentShape(config, _contentShape) {
|
|
16739
|
+
return createBlockManifest(config);
|
|
16740
|
+
}
|
|
16380
16741
|
function normalizeBlockLayout(layout) {
|
|
16381
16742
|
return Array.isArray(layout) ? [...layout] : layout;
|
|
16382
16743
|
}
|
|
@@ -17009,7 +17370,7 @@ var ctaComposition = composeFragments([
|
|
|
17009
17370
|
{ fragment: ctaCopyFragment },
|
|
17010
17371
|
{ fragment: ctaRowFragment }
|
|
17011
17372
|
]);
|
|
17012
|
-
var
|
|
17373
|
+
var ctaFullConfig = {
|
|
17013
17374
|
id: "block.cta-full",
|
|
17014
17375
|
title: "Full-width CTA",
|
|
17015
17376
|
category: "marketing",
|
|
@@ -17027,7 +17388,8 @@ var ctaFullManifest = createBlockManifest({
|
|
|
17027
17388
|
description: "Centered call to action with optional background image.",
|
|
17028
17389
|
tags: ["cta", "call-to-action", "button", "conversion", "action", "sign-up", "get-started"],
|
|
17029
17390
|
icon: "Target"
|
|
17030
|
-
}
|
|
17391
|
+
};
|
|
17392
|
+
var ctaFullManifest = createBlockManifest(ctaFullConfig);
|
|
17031
17393
|
var ctaFullBlockDefinition = {
|
|
17032
17394
|
manifest: ctaFullManifest
|
|
17033
17395
|
};
|
|
@@ -20108,9 +20470,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20108
20470
|
{
|
|
20109
20471
|
id: "images",
|
|
20110
20472
|
type: "repeater",
|
|
20111
|
-
label: "
|
|
20473
|
+
label: "Media",
|
|
20112
20474
|
required: false,
|
|
20113
|
-
itemLabel: "
|
|
20475
|
+
itemLabel: "Media",
|
|
20114
20476
|
minItems: 0,
|
|
20115
20477
|
maxItems: 6,
|
|
20116
20478
|
allowConversion: true,
|
|
@@ -20124,9 +20486,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20124
20486
|
{
|
|
20125
20487
|
id: "image",
|
|
20126
20488
|
type: "media",
|
|
20127
|
-
label: "
|
|
20489
|
+
label: "Media",
|
|
20128
20490
|
required: true,
|
|
20129
|
-
mediaKinds: ["image"]
|
|
20491
|
+
mediaKinds: ["image", "video"]
|
|
20130
20492
|
}
|
|
20131
20493
|
]
|
|
20132
20494
|
}
|
|
@@ -20204,8 +20566,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20204
20566
|
{
|
|
20205
20567
|
id: "aspectRatio",
|
|
20206
20568
|
type: "select",
|
|
20207
|
-
label: "
|
|
20208
|
-
description: "Crop
|
|
20569
|
+
label: "Media aspect ratio",
|
|
20570
|
+
description: "Crop media to a consistent aspect ratio.",
|
|
20209
20571
|
required: false,
|
|
20210
20572
|
defaultValue: "auto",
|
|
20211
20573
|
multiple: false,
|
|
@@ -20392,8 +20754,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20392
20754
|
}
|
|
20393
20755
|
};
|
|
20394
20756
|
})(),
|
|
20395
|
-
description: "Two columns:
|
|
20396
|
-
tags: ["media", "image", "carousel", "text", "two-column", "layout"],
|
|
20757
|
+
description: "Two columns: media/carousel + rich text (with optional section title).",
|
|
20758
|
+
tags: ["media", "image", "video", "carousel", "text", "two-column", "layout"],
|
|
20397
20759
|
icon: "Columns"
|
|
20398
20760
|
});
|
|
20399
20761
|
var mediaTextBlockDefinition = {
|
|
@@ -20544,6 +20906,19 @@ var transformSchema2 = z39.object({
|
|
|
20544
20906
|
hotspot: hotspotSchema2.optional(),
|
|
20545
20907
|
rotation: rotationSchema2.optional()
|
|
20546
20908
|
});
|
|
20909
|
+
var mediaPosterSchema = z39.discriminatedUnion("tag", [
|
|
20910
|
+
z39.object({
|
|
20911
|
+
tag: z39.literal("storage"),
|
|
20912
|
+
assetId: z39.string().optional(),
|
|
20913
|
+
storageBucket: z39.string().min(1),
|
|
20914
|
+
storagePath: z39.string().min(1)
|
|
20915
|
+
}),
|
|
20916
|
+
z39.object({
|
|
20917
|
+
tag: z39.literal("external-src"),
|
|
20918
|
+
assetId: z39.string().optional(),
|
|
20919
|
+
src: z39.string().url()
|
|
20920
|
+
})
|
|
20921
|
+
]);
|
|
20547
20922
|
var mediaBaseSchema = z39.object({
|
|
20548
20923
|
purpose: z39.string().optional(),
|
|
20549
20924
|
placeholder: z39.boolean().default(true).optional(),
|
|
@@ -20557,6 +20932,7 @@ var mediaBaseSchema = z39.object({
|
|
|
20557
20932
|
height: z39.number().optional(),
|
|
20558
20933
|
storageBucket: z39.string().optional(),
|
|
20559
20934
|
storagePath: z39.string().optional(),
|
|
20935
|
+
poster: mediaPosterSchema.optional(),
|
|
20560
20936
|
transform: transformSchema2.optional()
|
|
20561
20937
|
});
|
|
20562
20938
|
var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
|
|
@@ -21040,10 +21416,28 @@ import { z as z45 } from "zod";
|
|
|
21040
21416
|
|
|
21041
21417
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
21042
21418
|
import { z as z44 } from "zod";
|
|
21419
|
+
|
|
21420
|
+
// ../blocks/src/system/constants/events.ts
|
|
21421
|
+
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
21422
|
+
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
21423
|
+
var eventCalendarListLayoutOptions = [
|
|
21424
|
+
{ id: "stack", label: "Stack" },
|
|
21425
|
+
{ id: "grid", label: "Grid" },
|
|
21426
|
+
{ id: "compact", label: "Compact" }
|
|
21427
|
+
];
|
|
21428
|
+
function isEventCalendarDisplayMode(value) {
|
|
21429
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
21430
|
+
}
|
|
21431
|
+
function isEventCalendarListLayout(value) {
|
|
21432
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
21433
|
+
}
|
|
21434
|
+
|
|
21435
|
+
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
21043
21436
|
var previewStageSchema = z44.enum(["preview", "published"]);
|
|
21044
21437
|
var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
|
|
21045
21438
|
var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
|
|
21046
|
-
var eventLayoutSchema = z44.enum(
|
|
21439
|
+
var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
|
|
21440
|
+
var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
|
|
21047
21441
|
var columnOptionSchema = z44.enum(["2", "3", "4"]);
|
|
21048
21442
|
var weekStartSchema = z44.enum(["sunday", "monday"]);
|
|
21049
21443
|
var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
|
|
@@ -22425,7 +22819,232 @@ var eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22425
22819
|
});
|
|
22426
22820
|
|
|
22427
22821
|
// ../blocks/src/system/blocks/events/event-listing.ts
|
|
22428
|
-
var
|
|
22822
|
+
var eventListingAdditionalFields = [
|
|
22823
|
+
...sectionHeaderFields("All Events"),
|
|
22824
|
+
...(() => {
|
|
22825
|
+
const columns = columnsField(["2", "3", "4"]);
|
|
22826
|
+
return [
|
|
22827
|
+
{
|
|
22828
|
+
...layoutField,
|
|
22829
|
+
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22830
|
+
},
|
|
22831
|
+
{
|
|
22832
|
+
...columns,
|
|
22833
|
+
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22834
|
+
}
|
|
22835
|
+
];
|
|
22836
|
+
})(),
|
|
22837
|
+
{
|
|
22838
|
+
id: "eventsPerPage",
|
|
22839
|
+
type: "select",
|
|
22840
|
+
label: "Events per page",
|
|
22841
|
+
description: "Number of events to load at a time",
|
|
22842
|
+
required: false,
|
|
22843
|
+
multiple: false,
|
|
22844
|
+
defaultValue: "12",
|
|
22845
|
+
options: [
|
|
22846
|
+
{ value: "3", label: "3 events" },
|
|
22847
|
+
{ value: "6", label: "6 events" },
|
|
22848
|
+
{ value: "12", label: "12 events" },
|
|
22849
|
+
{ value: "24", label: "24 events" }
|
|
22850
|
+
],
|
|
22851
|
+
ui: { intent: "display" }
|
|
22852
|
+
},
|
|
22853
|
+
{
|
|
22854
|
+
id: "paginationMode",
|
|
22855
|
+
type: "select",
|
|
22856
|
+
label: "More events",
|
|
22857
|
+
description: "How to access events beyond the initial list",
|
|
22858
|
+
required: false,
|
|
22859
|
+
multiple: false,
|
|
22860
|
+
defaultValue: "loadMore",
|
|
22861
|
+
options: [
|
|
22862
|
+
{ value: "loadMore", label: "Load more button" },
|
|
22863
|
+
{ value: "seeAllLink", label: "Link to another page" }
|
|
22864
|
+
],
|
|
22865
|
+
ui: { intent: "display" }
|
|
22866
|
+
},
|
|
22867
|
+
{
|
|
22868
|
+
id: "seeAllUrl",
|
|
22869
|
+
type: "link",
|
|
22870
|
+
label: "See all destination",
|
|
22871
|
+
required: false,
|
|
22872
|
+
ui: {
|
|
22873
|
+
intent: "display",
|
|
22874
|
+
visibleWhen: {
|
|
22875
|
+
field: "paginationMode",
|
|
22876
|
+
equals: "seeAllLink"
|
|
22877
|
+
}
|
|
22878
|
+
}
|
|
22879
|
+
},
|
|
22880
|
+
{
|
|
22881
|
+
id: "loadMoreText",
|
|
22882
|
+
type: "text",
|
|
22883
|
+
label: "Button text",
|
|
22884
|
+
description: "Text for the pagination button or link",
|
|
22885
|
+
required: false,
|
|
22886
|
+
multiline: false,
|
|
22887
|
+
defaultValue: "Load more events",
|
|
22888
|
+
maxLength: 40
|
|
22889
|
+
},
|
|
22890
|
+
...cardStylingFields.map((field) => ({
|
|
22891
|
+
...field,
|
|
22892
|
+
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22893
|
+
})),
|
|
22894
|
+
...eventDisplayFields.map((field) => ({
|
|
22895
|
+
...field,
|
|
22896
|
+
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22897
|
+
})),
|
|
22898
|
+
{
|
|
22899
|
+
id: "kind",
|
|
22900
|
+
type: "select",
|
|
22901
|
+
label: "Show",
|
|
22902
|
+
description: "Choose whether this list shows courses, events, or both",
|
|
22903
|
+
required: false,
|
|
22904
|
+
multiple: false,
|
|
22905
|
+
defaultValue: "all",
|
|
22906
|
+
options: [
|
|
22907
|
+
{ value: "all", label: "Courses and events" },
|
|
22908
|
+
{ value: "courses", label: "Courses only" },
|
|
22909
|
+
{ value: "events", label: "Events only" }
|
|
22910
|
+
],
|
|
22911
|
+
ui: { intent: "behavior" }
|
|
22912
|
+
},
|
|
22913
|
+
{
|
|
22914
|
+
id: "eventSurface",
|
|
22915
|
+
type: "select",
|
|
22916
|
+
label: "Event surface",
|
|
22917
|
+
description: "Choose a semantic event scope",
|
|
22918
|
+
required: false,
|
|
22919
|
+
multiple: false,
|
|
22920
|
+
defaultValue: "all",
|
|
22921
|
+
options: [
|
|
22922
|
+
{ value: "all", label: "All events" },
|
|
22923
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22924
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22925
|
+
{ value: "custom", label: "Custom" }
|
|
22926
|
+
],
|
|
22927
|
+
ui: { intent: "behavior" }
|
|
22928
|
+
},
|
|
22929
|
+
{
|
|
22930
|
+
id: "filterEventPresets",
|
|
22931
|
+
type: "select",
|
|
22932
|
+
label: "Pre-filter by event type",
|
|
22933
|
+
description: "Restrict this block to specific event types",
|
|
22934
|
+
required: false,
|
|
22935
|
+
multiple: true,
|
|
22936
|
+
defaultValue: [],
|
|
22937
|
+
options: [
|
|
22938
|
+
{ value: "class", label: "Classes" },
|
|
22939
|
+
{ value: "workshop", label: "Workshops" },
|
|
22940
|
+
{ value: "retreat", label: "Retreats" },
|
|
22941
|
+
{ value: "performance", label: "Performances" }
|
|
22942
|
+
],
|
|
22943
|
+
ui: {
|
|
22944
|
+
intent: "behavior",
|
|
22945
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22946
|
+
}
|
|
22947
|
+
},
|
|
22948
|
+
{
|
|
22949
|
+
id: "scheduleScope",
|
|
22950
|
+
type: "select",
|
|
22951
|
+
label: "Schedule cadence",
|
|
22952
|
+
description: "Restrict this block by recurrence",
|
|
22953
|
+
required: false,
|
|
22954
|
+
multiple: false,
|
|
22955
|
+
defaultValue: "any",
|
|
22956
|
+
options: [
|
|
22957
|
+
{ value: "any", label: "Any cadence" },
|
|
22958
|
+
{ value: "recurring", label: "Recurring only" },
|
|
22959
|
+
{ value: "oneOff", label: "One-off only" }
|
|
22960
|
+
],
|
|
22961
|
+
ui: {
|
|
22962
|
+
intent: "behavior",
|
|
22963
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22964
|
+
}
|
|
22965
|
+
},
|
|
22966
|
+
{
|
|
22967
|
+
...emptyStateField,
|
|
22968
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22969
|
+
},
|
|
22970
|
+
sectionStylesField({
|
|
22971
|
+
id: "_sectionStyles",
|
|
22972
|
+
label: "Section styles",
|
|
22973
|
+
renderInHeader: false
|
|
22974
|
+
})
|
|
22975
|
+
];
|
|
22976
|
+
var eventListingLayout = [
|
|
22977
|
+
styledSection({
|
|
22978
|
+
children: sectionContainer([
|
|
22979
|
+
// Optional heading
|
|
22980
|
+
text(
|
|
22981
|
+
{ as: "h2" },
|
|
22982
|
+
bind("content.heading"),
|
|
22983
|
+
when("content.heading")
|
|
22984
|
+
),
|
|
22985
|
+
// Optional description
|
|
22986
|
+
richText(
|
|
22987
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
22988
|
+
bind("content.description"),
|
|
22989
|
+
when("content.description")
|
|
22990
|
+
),
|
|
22991
|
+
// Event listing component with pagination
|
|
22992
|
+
el("event-listing", withApiBindings({
|
|
22993
|
+
events: { $bind: { from: "data.events" } },
|
|
22994
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22995
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22996
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22997
|
+
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22998
|
+
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22999
|
+
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
23000
|
+
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
23001
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
23002
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
23003
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
23004
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
23005
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
23006
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
23007
|
+
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23008
|
+
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
23009
|
+
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
23010
|
+
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
23011
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23012
|
+
}))
|
|
23013
|
+
], {
|
|
23014
|
+
gap: "lg"
|
|
23015
|
+
}),
|
|
23016
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
23017
|
+
baseClass: "",
|
|
23018
|
+
spacing: "comfortable"
|
|
23019
|
+
})
|
|
23020
|
+
];
|
|
23021
|
+
var eventListingDerivedFields = [
|
|
23022
|
+
{
|
|
23023
|
+
id: "layout",
|
|
23024
|
+
type: "select",
|
|
23025
|
+
required: false,
|
|
23026
|
+
multiple: false,
|
|
23027
|
+
options: [
|
|
23028
|
+
{ value: "grid" },
|
|
23029
|
+
{ value: "stack" }
|
|
23030
|
+
]
|
|
23031
|
+
},
|
|
23032
|
+
{
|
|
23033
|
+
id: "paginationMode",
|
|
23034
|
+
type: "select",
|
|
23035
|
+
required: false,
|
|
23036
|
+
multiple: false,
|
|
23037
|
+
options: [
|
|
23038
|
+
{ value: "loadMore" },
|
|
23039
|
+
{ value: "seeAllLink" }
|
|
23040
|
+
]
|
|
23041
|
+
}
|
|
23042
|
+
];
|
|
23043
|
+
var eventListingContentShape = {
|
|
23044
|
+
additionalFields: eventListingDerivedFields,
|
|
23045
|
+
skipSectionStyles: true
|
|
23046
|
+
};
|
|
23047
|
+
var eventListingConfig = {
|
|
22429
23048
|
id: "block.event-listing",
|
|
22430
23049
|
version: "1.1.0",
|
|
22431
23050
|
title: "Event Listing",
|
|
@@ -22433,211 +23052,18 @@ var eventListingManifest = createBlockManifest({
|
|
|
22433
23052
|
description: "Paginated list of all upcoming events",
|
|
22434
23053
|
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
22435
23054
|
skipSectionStyles: true,
|
|
22436
|
-
additionalFields:
|
|
22437
|
-
...sectionHeaderFields("All Events"),
|
|
22438
|
-
...(() => {
|
|
22439
|
-
const columns = columnsField(["2", "3", "4"]);
|
|
22440
|
-
return [
|
|
22441
|
-
{
|
|
22442
|
-
...layoutField,
|
|
22443
|
-
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22444
|
-
},
|
|
22445
|
-
{
|
|
22446
|
-
...columns,
|
|
22447
|
-
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22448
|
-
}
|
|
22449
|
-
];
|
|
22450
|
-
})(),
|
|
22451
|
-
{
|
|
22452
|
-
id: "eventsPerPage",
|
|
22453
|
-
type: "select",
|
|
22454
|
-
label: "Events per page",
|
|
22455
|
-
description: "Number of events to load at a time",
|
|
22456
|
-
required: false,
|
|
22457
|
-
multiple: false,
|
|
22458
|
-
defaultValue: "12",
|
|
22459
|
-
options: [
|
|
22460
|
-
{ value: "3", label: "3 events" },
|
|
22461
|
-
{ value: "6", label: "6 events" },
|
|
22462
|
-
{ value: "12", label: "12 events" },
|
|
22463
|
-
{ value: "24", label: "24 events" }
|
|
22464
|
-
],
|
|
22465
|
-
ui: { intent: "display" }
|
|
22466
|
-
},
|
|
22467
|
-
{
|
|
22468
|
-
id: "paginationMode",
|
|
22469
|
-
type: "select",
|
|
22470
|
-
label: "More events",
|
|
22471
|
-
description: "How to access events beyond the initial list",
|
|
22472
|
-
required: false,
|
|
22473
|
-
multiple: false,
|
|
22474
|
-
defaultValue: "loadMore",
|
|
22475
|
-
options: [
|
|
22476
|
-
{ value: "loadMore", label: "Load more button" },
|
|
22477
|
-
{ value: "seeAllLink", label: "Link to another page" }
|
|
22478
|
-
],
|
|
22479
|
-
ui: { intent: "display" }
|
|
22480
|
-
},
|
|
22481
|
-
{
|
|
22482
|
-
id: "seeAllUrl",
|
|
22483
|
-
type: "link",
|
|
22484
|
-
label: "See all destination",
|
|
22485
|
-
required: false,
|
|
22486
|
-
ui: {
|
|
22487
|
-
intent: "display",
|
|
22488
|
-
visibleWhen: {
|
|
22489
|
-
field: "paginationMode",
|
|
22490
|
-
equals: "seeAllLink"
|
|
22491
|
-
}
|
|
22492
|
-
}
|
|
22493
|
-
},
|
|
22494
|
-
{
|
|
22495
|
-
id: "loadMoreText",
|
|
22496
|
-
type: "text",
|
|
22497
|
-
label: "Button text",
|
|
22498
|
-
description: "Text for the pagination button or link",
|
|
22499
|
-
required: false,
|
|
22500
|
-
multiline: false,
|
|
22501
|
-
defaultValue: "Load more events",
|
|
22502
|
-
maxLength: 40
|
|
22503
|
-
},
|
|
22504
|
-
...cardStylingFields.map((field) => ({
|
|
22505
|
-
...field,
|
|
22506
|
-
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22507
|
-
})),
|
|
22508
|
-
...eventDisplayFields.map((field) => ({
|
|
22509
|
-
...field,
|
|
22510
|
-
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22511
|
-
})),
|
|
22512
|
-
{
|
|
22513
|
-
id: "kind",
|
|
22514
|
-
type: "select",
|
|
22515
|
-
label: "Show",
|
|
22516
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
22517
|
-
required: false,
|
|
22518
|
-
multiple: false,
|
|
22519
|
-
defaultValue: "all",
|
|
22520
|
-
options: [
|
|
22521
|
-
{ value: "all", label: "Courses and events" },
|
|
22522
|
-
{ value: "courses", label: "Courses only" },
|
|
22523
|
-
{ value: "events", label: "Events only" }
|
|
22524
|
-
],
|
|
22525
|
-
ui: { intent: "behavior" }
|
|
22526
|
-
},
|
|
22527
|
-
{
|
|
22528
|
-
id: "eventSurface",
|
|
22529
|
-
type: "select",
|
|
22530
|
-
label: "Event surface",
|
|
22531
|
-
description: "Choose a semantic event scope",
|
|
22532
|
-
required: false,
|
|
22533
|
-
multiple: false,
|
|
22534
|
-
defaultValue: "all",
|
|
22535
|
-
options: [
|
|
22536
|
-
{ value: "all", label: "All events" },
|
|
22537
|
-
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22538
|
-
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22539
|
-
{ value: "custom", label: "Custom" }
|
|
22540
|
-
],
|
|
22541
|
-
ui: { intent: "behavior" }
|
|
22542
|
-
},
|
|
22543
|
-
{
|
|
22544
|
-
id: "filterEventPresets",
|
|
22545
|
-
type: "select",
|
|
22546
|
-
label: "Pre-filter by event type",
|
|
22547
|
-
description: "Restrict this block to specific event types",
|
|
22548
|
-
required: false,
|
|
22549
|
-
multiple: true,
|
|
22550
|
-
defaultValue: [],
|
|
22551
|
-
options: [
|
|
22552
|
-
{ value: "class", label: "Classes" },
|
|
22553
|
-
{ value: "workshop", label: "Workshops" },
|
|
22554
|
-
{ value: "retreat", label: "Retreats" },
|
|
22555
|
-
{ value: "performance", label: "Performances" }
|
|
22556
|
-
],
|
|
22557
|
-
ui: {
|
|
22558
|
-
intent: "behavior",
|
|
22559
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22560
|
-
}
|
|
22561
|
-
},
|
|
22562
|
-
{
|
|
22563
|
-
id: "scheduleScope",
|
|
22564
|
-
type: "select",
|
|
22565
|
-
label: "Schedule cadence",
|
|
22566
|
-
description: "Restrict this block by recurrence",
|
|
22567
|
-
required: false,
|
|
22568
|
-
multiple: false,
|
|
22569
|
-
defaultValue: "any",
|
|
22570
|
-
options: [
|
|
22571
|
-
{ value: "any", label: "Any cadence" },
|
|
22572
|
-
{ value: "recurring", label: "Recurring only" },
|
|
22573
|
-
{ value: "oneOff", label: "One-off only" }
|
|
22574
|
-
],
|
|
22575
|
-
ui: {
|
|
22576
|
-
intent: "behavior",
|
|
22577
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22578
|
-
}
|
|
22579
|
-
},
|
|
22580
|
-
{
|
|
22581
|
-
...emptyStateField,
|
|
22582
|
-
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22583
|
-
},
|
|
22584
|
-
sectionStylesField({
|
|
22585
|
-
id: "_sectionStyles",
|
|
22586
|
-
label: "Section styles",
|
|
22587
|
-
renderInHeader: false
|
|
22588
|
-
})
|
|
22589
|
-
],
|
|
23055
|
+
additionalFields: eventListingAdditionalFields,
|
|
22590
23056
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
22591
23057
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: true },
|
|
22592
23058
|
category: "interactive",
|
|
22593
23059
|
tags: ["events", "listing", "paginated", "archive", "all-events"],
|
|
22594
23060
|
icon: "List",
|
|
22595
|
-
layout:
|
|
22596
|
-
|
|
22597
|
-
|
|
22598
|
-
|
|
22599
|
-
|
|
22600
|
-
|
|
22601
|
-
bind("content.heading"),
|
|
22602
|
-
when("content.heading")
|
|
22603
|
-
),
|
|
22604
|
-
// Optional description
|
|
22605
|
-
richText(
|
|
22606
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
22607
|
-
bind("content.description"),
|
|
22608
|
-
when("content.description")
|
|
22609
|
-
),
|
|
22610
|
-
// Event listing component with pagination
|
|
22611
|
-
el("event-listing", withApiBindings({
|
|
22612
|
-
events: { $bind: { from: "data.events" } },
|
|
22613
|
-
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22614
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22615
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22616
|
-
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22617
|
-
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22618
|
-
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22619
|
-
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
22620
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22621
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22622
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22623
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22624
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
22625
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22626
|
-
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
22627
|
-
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
22628
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
22629
|
-
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
22630
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22631
|
-
}))
|
|
22632
|
-
], {
|
|
22633
|
-
gap: "lg"
|
|
22634
|
-
}),
|
|
22635
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
22636
|
-
baseClass: "",
|
|
22637
|
-
spacing: "comfortable"
|
|
22638
|
-
})
|
|
22639
|
-
]
|
|
22640
|
-
});
|
|
23061
|
+
layout: eventListingLayout
|
|
23062
|
+
};
|
|
23063
|
+
var eventListingManifest = createBlockManifestWithContentShape(
|
|
23064
|
+
eventListingConfig,
|
|
23065
|
+
eventListingContentShape
|
|
23066
|
+
);
|
|
22641
23067
|
var eventListingBlockDefinition = {
|
|
22642
23068
|
manifest: eventListingManifest,
|
|
22643
23069
|
runtime: eventListingBlockRuntime,
|
|
@@ -22664,7 +23090,6 @@ var eventListingBlockDefinition = {
|
|
|
22664
23090
|
|
|
22665
23091
|
// ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
22666
23092
|
import { z as z51 } from "zod";
|
|
22667
|
-
var displayModeSchema = z51.enum(["combined", "month", "week", "list", "timetable"]);
|
|
22668
23093
|
var eventBlockKindSchema2 = z51.enum(eventBlockKindValues);
|
|
22669
23094
|
var eventSurfaceScopeSchema2 = z51.enum(eventSurfaceScopeValues);
|
|
22670
23095
|
var eventScheduleScopeSchema3 = z51.enum(eventScheduleScopeValues);
|
|
@@ -22674,7 +23099,8 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22674
23099
|
siteId: z51.string(),
|
|
22675
23100
|
apiBaseUrl: z51.string().optional(),
|
|
22676
23101
|
stage: previewStageSchema.optional(),
|
|
22677
|
-
|
|
23102
|
+
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
23103
|
+
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
22678
23104
|
listLayout: eventLayoutSchema.optional(),
|
|
22679
23105
|
listColumns: columnOptionSchema.optional(),
|
|
22680
23106
|
layout: eventLayoutSchema.optional(),
|
|
@@ -22706,7 +23132,7 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22706
23132
|
);
|
|
22707
23133
|
var eventCalendarDisplaySchema = z51.object({
|
|
22708
23134
|
kind: z51.literal("event-calendar"),
|
|
22709
|
-
displayMode:
|
|
23135
|
+
displayMode: eventCalendarDisplayModeSchema,
|
|
22710
23136
|
className: z51.string().nullable(),
|
|
22711
23137
|
events: z51.array(publicEventSchema),
|
|
22712
23138
|
listLayout: eventLayoutSchema,
|
|
@@ -22761,7 +23187,7 @@ var eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
22761
23187
|
function buildEventCalendarDisplay(source) {
|
|
22762
23188
|
return {
|
|
22763
23189
|
kind: "event-calendar",
|
|
22764
|
-
displayMode: source.displayMode ?? "combined",
|
|
23190
|
+
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
22765
23191
|
className: source.className ?? null,
|
|
22766
23192
|
events: (source.events ?? []).slice().sort(
|
|
22767
23193
|
(left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()
|
|
@@ -22828,8 +23254,12 @@ var eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22828
23254
|
function normalizeEventCalendarContent(content) {
|
|
22829
23255
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
22830
23256
|
const kind = normalizeEventBlockKind(record.kind);
|
|
23257
|
+
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
22831
23258
|
return {
|
|
22832
23259
|
...record,
|
|
23260
|
+
...variant ? { variant } : {},
|
|
23261
|
+
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
23262
|
+
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
22833
23263
|
kind,
|
|
22834
23264
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
22835
23265
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
@@ -22841,355 +23271,515 @@ function normalizeEventCalendarContent(content) {
|
|
|
22841
23271
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
22842
23272
|
};
|
|
22843
23273
|
}
|
|
22844
|
-
|
|
22845
|
-
|
|
22846
|
-
|
|
22847
|
-
|
|
22848
|
-
|
|
22849
|
-
|
|
22850
|
-
|
|
22851
|
-
|
|
22852
|
-
|
|
22853
|
-
|
|
22854
|
-
|
|
22855
|
-
|
|
22856
|
-
|
|
22857
|
-
|
|
22858
|
-
|
|
22859
|
-
|
|
22860
|
-
|
|
22861
|
-
|
|
22862
|
-
|
|
22863
|
-
|
|
22864
|
-
|
|
22865
|
-
|
|
22866
|
-
|
|
22867
|
-
|
|
22868
|
-
|
|
22869
|
-
|
|
22870
|
-
|
|
22871
|
-
|
|
22872
|
-
|
|
22873
|
-
|
|
22874
|
-
|
|
22875
|
-
|
|
22876
|
-
|
|
22877
|
-
|
|
22878
|
-
|
|
22879
|
-
|
|
22880
|
-
|
|
22881
|
-
|
|
22882
|
-
|
|
22883
|
-
|
|
22884
|
-
|
|
22885
|
-
|
|
22886
|
-
|
|
22887
|
-
|
|
22888
|
-
|
|
22889
|
-
|
|
22890
|
-
|
|
22891
|
-
|
|
22892
|
-
|
|
22893
|
-
|
|
22894
|
-
|
|
22895
|
-
|
|
22896
|
-
|
|
22897
|
-
|
|
22898
|
-
|
|
22899
|
-
|
|
22900
|
-
|
|
22901
|
-
|
|
22902
|
-
|
|
22903
|
-
|
|
22904
|
-
|
|
22905
|
-
|
|
22906
|
-
|
|
22907
|
-
|
|
22908
|
-
|
|
22909
|
-
|
|
22910
|
-
|
|
22911
|
-
|
|
22912
|
-
|
|
22913
|
-
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
|
|
22917
|
-
|
|
22918
|
-
|
|
22919
|
-
|
|
22920
|
-
|
|
22921
|
-
|
|
22922
|
-
|
|
22923
|
-
|
|
22924
|
-
|
|
22925
|
-
|
|
22926
|
-
|
|
22927
|
-
|
|
22928
|
-
|
|
22929
|
-
|
|
22930
|
-
|
|
22931
|
-
|
|
22932
|
-
|
|
22933
|
-
|
|
22934
|
-
|
|
22935
|
-
|
|
22936
|
-
|
|
22937
|
-
|
|
22938
|
-
|
|
22939
|
-
|
|
22940
|
-
|
|
22941
|
-
|
|
22942
|
-
|
|
22943
|
-
|
|
22944
|
-
|
|
22945
|
-
|
|
22946
|
-
id: "loadMoreText",
|
|
22947
|
-
type: "text",
|
|
22948
|
-
label: "Load more button text",
|
|
22949
|
-
description: "Text for the load more button",
|
|
22950
|
-
required: false,
|
|
22951
|
-
multiline: false,
|
|
22952
|
-
defaultValue: "Load more events",
|
|
22953
|
-
ui: {
|
|
22954
|
-
intent: "content",
|
|
22955
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list"] }
|
|
22956
|
-
}
|
|
22957
|
-
},
|
|
22958
|
-
// Calendar options
|
|
22959
|
-
{
|
|
22960
|
-
id: "startOfWeek",
|
|
22961
|
-
type: "select",
|
|
22962
|
-
label: "Week starts on",
|
|
22963
|
-
description: "First day of the week",
|
|
22964
|
-
required: false,
|
|
22965
|
-
multiple: false,
|
|
22966
|
-
defaultValue: "monday",
|
|
22967
|
-
options: [
|
|
22968
|
-
{ value: "sunday", label: "Sunday" },
|
|
22969
|
-
{ value: "monday", label: "Monday" }
|
|
22970
|
-
],
|
|
22971
|
-
ui: {
|
|
22972
|
-
intent: "display",
|
|
22973
|
-
visibleWhen: {
|
|
22974
|
-
field: "displayMode",
|
|
22975
|
-
oneOf: ["combined", "month", "week"]
|
|
22976
|
-
}
|
|
22977
|
-
}
|
|
22978
|
-
},
|
|
22979
|
-
// Combined mode options
|
|
22980
|
-
{
|
|
22981
|
-
id: "calendarTabViews",
|
|
22982
|
-
type: "select",
|
|
22983
|
-
label: "Calendar tab views",
|
|
22984
|
-
description: "Which calendar views to show in the Calendar tab",
|
|
22985
|
-
required: false,
|
|
22986
|
-
multiple: false,
|
|
22987
|
-
defaultValue: "both",
|
|
22988
|
-
options: [
|
|
22989
|
-
{ value: "both", label: "Month + Week toggle" },
|
|
22990
|
-
{ value: "month", label: "Month only" },
|
|
22991
|
-
{ value: "week", label: "Week only" }
|
|
22992
|
-
],
|
|
22993
|
-
ui: {
|
|
22994
|
-
intent: "display",
|
|
22995
|
-
visibleWhen: { field: "displayMode", equals: "combined" }
|
|
22996
|
-
}
|
|
22997
|
-
},
|
|
22998
|
-
// Filtering options
|
|
22999
|
-
{
|
|
23000
|
-
id: "kind",
|
|
23001
|
-
type: "select",
|
|
23002
|
-
label: "Show",
|
|
23003
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
23004
|
-
required: false,
|
|
23005
|
-
multiple: false,
|
|
23006
|
-
defaultValue: "all",
|
|
23007
|
-
options: [
|
|
23008
|
-
{ value: "all", label: "All offerings" },
|
|
23009
|
-
{ value: "courses", label: "Courses only" },
|
|
23010
|
-
{ value: "events", label: "Events only" }
|
|
23011
|
-
],
|
|
23012
|
-
ui: { intent: "behavior" }
|
|
23013
|
-
},
|
|
23014
|
-
{
|
|
23015
|
-
id: "showFilters",
|
|
23016
|
-
type: "boolean",
|
|
23017
|
-
label: "Show filters",
|
|
23018
|
-
description: "Show category, staff, and venue filters",
|
|
23019
|
-
required: false,
|
|
23020
|
-
defaultValue: true,
|
|
23021
|
-
ui: {
|
|
23022
|
-
intent: "display",
|
|
23023
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
23024
|
-
}
|
|
23025
|
-
},
|
|
23026
|
-
{
|
|
23027
|
-
id: "showCategoryFilter",
|
|
23028
|
-
type: "select",
|
|
23029
|
-
label: "Show category filter",
|
|
23030
|
-
description: "When to show the category filter dropdown",
|
|
23031
|
-
required: false,
|
|
23032
|
-
multiple: false,
|
|
23033
|
-
defaultValue: "auto",
|
|
23034
|
-
options: [
|
|
23035
|
-
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
23036
|
-
{ value: "always", label: "Always" },
|
|
23037
|
-
{ value: "never", label: "Never" }
|
|
23274
|
+
function normalizeEventCalendarDisplayMode(value) {
|
|
23275
|
+
return isEventCalendarDisplayMode(value) ? value : void 0;
|
|
23276
|
+
}
|
|
23277
|
+
function normalizeEventCalendarListLayout(value) {
|
|
23278
|
+
return isEventCalendarListLayout(value) ? value : void 0;
|
|
23279
|
+
}
|
|
23280
|
+
var eventCalendarLayout = [
|
|
23281
|
+
styledSection({
|
|
23282
|
+
children: sectionContainer(
|
|
23283
|
+
[
|
|
23284
|
+
// Optional heading
|
|
23285
|
+
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
23286
|
+
// Optional description
|
|
23287
|
+
richText(
|
|
23288
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
23289
|
+
bind("content.description"),
|
|
23290
|
+
when("content.description")
|
|
23291
|
+
),
|
|
23292
|
+
// Event calendar component (handles all display modes)
|
|
23293
|
+
el(
|
|
23294
|
+
"event-calendar",
|
|
23295
|
+
withApiBindings({
|
|
23296
|
+
events: { $bind: { from: "data.events" } },
|
|
23297
|
+
stage: {
|
|
23298
|
+
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23299
|
+
},
|
|
23300
|
+
// Variant is the new Theme V2-facing display mode. displayMode is
|
|
23301
|
+
// retained as a legacy fallback for existing content.
|
|
23302
|
+
variant: {
|
|
23303
|
+
$bind: { from: "content.variant" }
|
|
23304
|
+
},
|
|
23305
|
+
displayMode: {
|
|
23306
|
+
$bind: { from: "content.displayMode" }
|
|
23307
|
+
},
|
|
23308
|
+
// List options
|
|
23309
|
+
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23310
|
+
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23311
|
+
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23312
|
+
layout: { $bind: { from: "content.layout" } },
|
|
23313
|
+
columns: { $bind: { from: "content.columns" } },
|
|
23314
|
+
eventsPerPage: {
|
|
23315
|
+
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23316
|
+
},
|
|
23317
|
+
compactEventsPerPage: {
|
|
23318
|
+
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23319
|
+
},
|
|
23320
|
+
loadMoreText: {
|
|
23321
|
+
$bind: {
|
|
23322
|
+
from: "content.loadMoreText",
|
|
23323
|
+
fallback: "Load more events"
|
|
23324
|
+
}
|
|
23325
|
+
},
|
|
23326
|
+
// Calendar options
|
|
23327
|
+
startOfWeek: {
|
|
23328
|
+
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23329
|
+
},
|
|
23330
|
+
calendarTabViews: {
|
|
23331
|
+
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23332
|
+
},
|
|
23333
|
+
// Filtering options
|
|
23334
|
+
showFilters: {
|
|
23335
|
+
$bind: { from: "content.showFilters", fallback: true }
|
|
23336
|
+
},
|
|
23337
|
+
showCategoryFilter: {
|
|
23338
|
+
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23339
|
+
},
|
|
23340
|
+
showVenueFilter: {
|
|
23341
|
+
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23342
|
+
},
|
|
23343
|
+
showStaffFilter: {
|
|
23344
|
+
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23345
|
+
},
|
|
23346
|
+
showCapacity: {
|
|
23347
|
+
$bind: { from: "content.showCapacity", fallback: true }
|
|
23348
|
+
},
|
|
23349
|
+
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23350
|
+
eventSurface: {
|
|
23351
|
+
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23352
|
+
},
|
|
23353
|
+
filterEventPresets: {
|
|
23354
|
+
$bind: { from: "content.filterEventPresets" }
|
|
23355
|
+
},
|
|
23356
|
+
scheduleScope: {
|
|
23357
|
+
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23358
|
+
},
|
|
23359
|
+
filterCategoryIds: {
|
|
23360
|
+
$bind: { from: "content.filterCategoryIds" }
|
|
23361
|
+
},
|
|
23362
|
+
filterStaffMemberId: {
|
|
23363
|
+
$bind: { from: "content.filterStaffMemberId" }
|
|
23364
|
+
},
|
|
23365
|
+
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23366
|
+
// Styling
|
|
23367
|
+
buttonVariant: {
|
|
23368
|
+
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23369
|
+
},
|
|
23370
|
+
buttonText: {
|
|
23371
|
+
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23372
|
+
},
|
|
23373
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23374
|
+
})
|
|
23375
|
+
)
|
|
23038
23376
|
],
|
|
23039
|
-
|
|
23040
|
-
|
|
23041
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
23042
|
-
}
|
|
23043
|
-
},
|
|
23044
|
-
{
|
|
23045
|
-
id: "showVenueFilter",
|
|
23046
|
-
type: "boolean",
|
|
23047
|
-
label: "Show venue filter",
|
|
23048
|
-
description: "Show venue filter dropdown",
|
|
23049
|
-
required: false,
|
|
23050
|
-
defaultValue: false,
|
|
23051
|
-
ui: {
|
|
23052
|
-
intent: "display",
|
|
23053
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
23054
|
-
}
|
|
23055
|
-
},
|
|
23056
|
-
{
|
|
23057
|
-
id: "showStaffFilter",
|
|
23058
|
-
type: "boolean",
|
|
23059
|
-
label: "Show staff filter",
|
|
23060
|
-
description: "Show staff filter dropdown",
|
|
23061
|
-
required: false,
|
|
23062
|
-
defaultValue: true,
|
|
23063
|
-
ui: {
|
|
23064
|
-
intent: "display",
|
|
23065
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
23066
|
-
}
|
|
23067
|
-
},
|
|
23068
|
-
{
|
|
23069
|
-
id: "showCapacity",
|
|
23070
|
-
type: "boolean",
|
|
23071
|
-
label: "Show available spots",
|
|
23072
|
-
description: "Display remaining capacity on event cards and timetable cells",
|
|
23073
|
-
required: false,
|
|
23074
|
-
defaultValue: true,
|
|
23075
|
-
ui: {
|
|
23076
|
-
intent: "display",
|
|
23077
|
-
visibleWhen: {
|
|
23078
|
-
field: "displayMode",
|
|
23079
|
-
oneOf: ["combined", "list", "week", "timetable"]
|
|
23080
|
-
}
|
|
23377
|
+
{
|
|
23378
|
+
gap: "lg"
|
|
23081
23379
|
}
|
|
23082
|
-
|
|
23083
|
-
//
|
|
23084
|
-
|
|
23085
|
-
|
|
23086
|
-
|
|
23087
|
-
|
|
23088
|
-
|
|
23089
|
-
|
|
23090
|
-
|
|
23091
|
-
|
|
23092
|
-
|
|
23093
|
-
|
|
23094
|
-
|
|
23095
|
-
|
|
23096
|
-
|
|
23097
|
-
|
|
23098
|
-
|
|
23099
|
-
|
|
23100
|
-
|
|
23101
|
-
|
|
23102
|
-
|
|
23103
|
-
|
|
23104
|
-
|
|
23105
|
-
|
|
23106
|
-
|
|
23107
|
-
|
|
23108
|
-
|
|
23109
|
-
|
|
23110
|
-
|
|
23111
|
-
|
|
23112
|
-
|
|
23113
|
-
|
|
23114
|
-
|
|
23115
|
-
|
|
23116
|
-
|
|
23380
|
+
),
|
|
23381
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
23382
|
+
baseClass: "",
|
|
23383
|
+
spacing: "comfortable"
|
|
23384
|
+
})
|
|
23385
|
+
];
|
|
23386
|
+
var eventCalendarAdditionalFields = [
|
|
23387
|
+
...sectionHeaderFields("Event Calendar"),
|
|
23388
|
+
// Display Mode (replaces calendarView)
|
|
23389
|
+
{
|
|
23390
|
+
id: "displayMode",
|
|
23391
|
+
type: "select",
|
|
23392
|
+
label: "Display mode",
|
|
23393
|
+
description: "How events are displayed",
|
|
23394
|
+
required: false,
|
|
23395
|
+
multiple: false,
|
|
23396
|
+
defaultValue: "combined",
|
|
23397
|
+
options: [
|
|
23398
|
+
{ value: "combined", label: "Combined (List + Calendar tabs)" },
|
|
23399
|
+
{ value: "month", label: "Month calendar" },
|
|
23400
|
+
{ value: "week", label: "Week agenda" },
|
|
23401
|
+
{ value: "timetable", label: "Timetable" },
|
|
23402
|
+
{ value: "list", label: "List" }
|
|
23403
|
+
],
|
|
23404
|
+
ui: { intent: "display", hidden: true }
|
|
23405
|
+
},
|
|
23406
|
+
// List options (visible when displayMode is list or combined)
|
|
23407
|
+
{
|
|
23408
|
+
id: "listLayout",
|
|
23409
|
+
type: "select",
|
|
23410
|
+
label: "List layout",
|
|
23411
|
+
description: "Layout style for list view",
|
|
23412
|
+
required: false,
|
|
23413
|
+
multiple: false,
|
|
23414
|
+
defaultValue: "stack",
|
|
23415
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23416
|
+
value: option.id,
|
|
23417
|
+
label: option.label
|
|
23418
|
+
})),
|
|
23419
|
+
ui: {
|
|
23420
|
+
intent: "display",
|
|
23421
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23422
|
+
}
|
|
23423
|
+
},
|
|
23424
|
+
{
|
|
23425
|
+
id: "listColumns",
|
|
23426
|
+
type: "select",
|
|
23427
|
+
label: "Grid columns",
|
|
23428
|
+
description: "Number of columns in grid layout",
|
|
23429
|
+
required: false,
|
|
23430
|
+
multiple: false,
|
|
23431
|
+
defaultValue: "3",
|
|
23432
|
+
options: [
|
|
23433
|
+
{ value: "2", label: "2 columns" },
|
|
23434
|
+
{ value: "3", label: "3 columns" },
|
|
23435
|
+
{ value: "4", label: "4 columns" }
|
|
23436
|
+
],
|
|
23437
|
+
ui: {
|
|
23438
|
+
intent: "display",
|
|
23439
|
+
visibleWhen: { field: "listLayout", equals: "grid" }
|
|
23440
|
+
}
|
|
23441
|
+
},
|
|
23442
|
+
{
|
|
23443
|
+
id: "eventsPerPage",
|
|
23444
|
+
type: "select",
|
|
23445
|
+
label: "Events per page (cards)",
|
|
23446
|
+
description: "Number of events to load initially in card layouts",
|
|
23447
|
+
required: false,
|
|
23448
|
+
multiple: false,
|
|
23449
|
+
defaultValue: "12",
|
|
23450
|
+
options: [
|
|
23451
|
+
{ value: "6", label: "6" },
|
|
23452
|
+
{ value: "12", label: "12" },
|
|
23453
|
+
{ value: "24", label: "24" }
|
|
23454
|
+
],
|
|
23455
|
+
ui: {
|
|
23456
|
+
intent: "display",
|
|
23457
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23458
|
+
}
|
|
23459
|
+
},
|
|
23460
|
+
{
|
|
23461
|
+
id: "compactEventsPerPage",
|
|
23462
|
+
type: "select",
|
|
23463
|
+
label: "Events per page (compact)",
|
|
23464
|
+
description: "Number of events to show per page in compact layout",
|
|
23465
|
+
required: false,
|
|
23466
|
+
multiple: false,
|
|
23467
|
+
defaultValue: "10",
|
|
23468
|
+
options: [
|
|
23469
|
+
{ value: "10", label: "10" },
|
|
23470
|
+
{ value: "20", label: "20" },
|
|
23471
|
+
{ value: "30", label: "30" }
|
|
23472
|
+
],
|
|
23473
|
+
ui: {
|
|
23474
|
+
intent: "display",
|
|
23475
|
+
visibleWhen: { field: "listLayout", equals: "compact" }
|
|
23476
|
+
}
|
|
23477
|
+
},
|
|
23478
|
+
{
|
|
23479
|
+
id: "loadMoreText",
|
|
23480
|
+
type: "text",
|
|
23481
|
+
label: "Load more button text",
|
|
23482
|
+
description: "Text for the load more button",
|
|
23483
|
+
required: false,
|
|
23484
|
+
multiline: false,
|
|
23485
|
+
defaultValue: "Load more events",
|
|
23486
|
+
ui: {
|
|
23487
|
+
intent: "content",
|
|
23488
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23489
|
+
}
|
|
23490
|
+
},
|
|
23491
|
+
// Calendar options
|
|
23492
|
+
{
|
|
23493
|
+
id: "startOfWeek",
|
|
23494
|
+
type: "select",
|
|
23495
|
+
label: "Week starts on",
|
|
23496
|
+
description: "First day of the week",
|
|
23497
|
+
required: false,
|
|
23498
|
+
multiple: false,
|
|
23499
|
+
defaultValue: "monday",
|
|
23500
|
+
options: [
|
|
23501
|
+
{ value: "sunday", label: "Sunday" },
|
|
23502
|
+
{ value: "monday", label: "Monday" }
|
|
23503
|
+
],
|
|
23504
|
+
ui: {
|
|
23505
|
+
intent: "display",
|
|
23506
|
+
visibleWhen: {
|
|
23507
|
+
field: "variant",
|
|
23508
|
+
oneOf: ["combined", "month", "week"]
|
|
23117
23509
|
}
|
|
23118
|
-
}
|
|
23119
|
-
|
|
23120
|
-
|
|
23121
|
-
|
|
23122
|
-
|
|
23123
|
-
|
|
23124
|
-
|
|
23125
|
-
|
|
23126
|
-
|
|
23127
|
-
|
|
23128
|
-
|
|
23129
|
-
|
|
23130
|
-
|
|
23131
|
-
|
|
23132
|
-
|
|
23133
|
-
|
|
23134
|
-
|
|
23510
|
+
}
|
|
23511
|
+
},
|
|
23512
|
+
// Combined mode options
|
|
23513
|
+
{
|
|
23514
|
+
id: "calendarTabViews",
|
|
23515
|
+
type: "select",
|
|
23516
|
+
label: "Calendar tab views",
|
|
23517
|
+
description: "Which calendar views to show in the Calendar tab",
|
|
23518
|
+
required: false,
|
|
23519
|
+
multiple: false,
|
|
23520
|
+
defaultValue: "both",
|
|
23521
|
+
options: [
|
|
23522
|
+
{ value: "both", label: "Month + Week toggle" },
|
|
23523
|
+
{ value: "month", label: "Month only" },
|
|
23524
|
+
{ value: "week", label: "Week only" }
|
|
23525
|
+
],
|
|
23526
|
+
ui: {
|
|
23527
|
+
intent: "display",
|
|
23528
|
+
visibleWhen: { field: "variant", equals: "combined" }
|
|
23529
|
+
}
|
|
23530
|
+
},
|
|
23531
|
+
// Filtering options
|
|
23532
|
+
{
|
|
23533
|
+
id: "kind",
|
|
23534
|
+
type: "select",
|
|
23535
|
+
label: "Show",
|
|
23536
|
+
description: "Restrict this block to all offerings, courses, or events",
|
|
23537
|
+
required: false,
|
|
23538
|
+
multiple: false,
|
|
23539
|
+
defaultValue: "all",
|
|
23540
|
+
options: [
|
|
23541
|
+
{ value: "all", label: "All offerings" },
|
|
23542
|
+
{ value: "courses", label: "Courses only" },
|
|
23543
|
+
{ value: "events", label: "Events only" }
|
|
23544
|
+
],
|
|
23545
|
+
ui: { intent: "behavior" }
|
|
23546
|
+
},
|
|
23547
|
+
{
|
|
23548
|
+
id: "showFilters",
|
|
23549
|
+
type: "boolean",
|
|
23550
|
+
label: "Show filters",
|
|
23551
|
+
description: "Show category, staff, and venue filters",
|
|
23552
|
+
required: false,
|
|
23553
|
+
defaultValue: true,
|
|
23554
|
+
ui: {
|
|
23555
|
+
intent: "display",
|
|
23556
|
+
visibleWhen: {
|
|
23557
|
+
field: "variant",
|
|
23558
|
+
oneOf: ["combined", "list", "timetable"]
|
|
23135
23559
|
}
|
|
23136
|
-
}
|
|
23137
|
-
|
|
23138
|
-
|
|
23139
|
-
|
|
23140
|
-
|
|
23141
|
-
|
|
23142
|
-
|
|
23143
|
-
|
|
23144
|
-
|
|
23145
|
-
|
|
23146
|
-
|
|
23147
|
-
|
|
23148
|
-
|
|
23560
|
+
}
|
|
23561
|
+
},
|
|
23562
|
+
{
|
|
23563
|
+
id: "showCategoryFilter",
|
|
23564
|
+
type: "select",
|
|
23565
|
+
label: "Show category filter",
|
|
23566
|
+
description: "When to show the category filter dropdown",
|
|
23567
|
+
required: false,
|
|
23568
|
+
multiple: false,
|
|
23569
|
+
defaultValue: "auto",
|
|
23570
|
+
options: [
|
|
23571
|
+
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
23572
|
+
{ value: "always", label: "Always" },
|
|
23573
|
+
{ value: "never", label: "Never" }
|
|
23574
|
+
],
|
|
23575
|
+
ui: {
|
|
23576
|
+
intent: "display",
|
|
23577
|
+
visibleWhen: {
|
|
23578
|
+
field: "variant",
|
|
23579
|
+
oneOf: ["combined", "list", "timetable"]
|
|
23149
23580
|
}
|
|
23150
|
-
}
|
|
23151
|
-
|
|
23152
|
-
|
|
23153
|
-
|
|
23154
|
-
|
|
23155
|
-
|
|
23156
|
-
|
|
23157
|
-
|
|
23158
|
-
|
|
23159
|
-
|
|
23160
|
-
|
|
23581
|
+
}
|
|
23582
|
+
},
|
|
23583
|
+
{
|
|
23584
|
+
id: "showVenueFilter",
|
|
23585
|
+
type: "boolean",
|
|
23586
|
+
label: "Show venue filter",
|
|
23587
|
+
description: "Show venue filter dropdown",
|
|
23588
|
+
required: false,
|
|
23589
|
+
defaultValue: false,
|
|
23590
|
+
ui: {
|
|
23591
|
+
intent: "display",
|
|
23592
|
+
visibleWhen: {
|
|
23593
|
+
field: "variant",
|
|
23594
|
+
oneOf: ["combined", "list", "timetable"]
|
|
23161
23595
|
}
|
|
23162
|
-
}
|
|
23163
|
-
|
|
23164
|
-
|
|
23165
|
-
|
|
23166
|
-
|
|
23167
|
-
|
|
23168
|
-
|
|
23169
|
-
|
|
23170
|
-
|
|
23171
|
-
|
|
23172
|
-
|
|
23596
|
+
}
|
|
23597
|
+
},
|
|
23598
|
+
{
|
|
23599
|
+
id: "showStaffFilter",
|
|
23600
|
+
type: "boolean",
|
|
23601
|
+
label: "Show staff filter",
|
|
23602
|
+
description: "Show staff filter dropdown",
|
|
23603
|
+
required: false,
|
|
23604
|
+
defaultValue: true,
|
|
23605
|
+
ui: {
|
|
23606
|
+
intent: "display",
|
|
23607
|
+
visibleWhen: {
|
|
23608
|
+
field: "variant",
|
|
23609
|
+
oneOf: ["combined", "list", "timetable"]
|
|
23173
23610
|
}
|
|
23174
|
-
}
|
|
23175
|
-
|
|
23176
|
-
|
|
23177
|
-
|
|
23178
|
-
|
|
23179
|
-
|
|
23180
|
-
|
|
23611
|
+
}
|
|
23612
|
+
},
|
|
23613
|
+
{
|
|
23614
|
+
id: "showCapacity",
|
|
23615
|
+
type: "boolean",
|
|
23616
|
+
label: "Show available spots",
|
|
23617
|
+
description: "Display remaining capacity on event cards and timetable cells",
|
|
23618
|
+
required: false,
|
|
23619
|
+
defaultValue: true,
|
|
23620
|
+
ui: {
|
|
23621
|
+
intent: "display",
|
|
23622
|
+
visibleWhen: {
|
|
23623
|
+
field: "variant",
|
|
23624
|
+
oneOf: ["combined", "list", "week", "timetable"]
|
|
23181
23625
|
}
|
|
23182
|
-
}
|
|
23183
|
-
|
|
23184
|
-
|
|
23185
|
-
|
|
23186
|
-
|
|
23187
|
-
|
|
23188
|
-
|
|
23189
|
-
|
|
23190
|
-
|
|
23191
|
-
|
|
23192
|
-
|
|
23626
|
+
}
|
|
23627
|
+
},
|
|
23628
|
+
// Block-level pre-filtering
|
|
23629
|
+
{
|
|
23630
|
+
id: "eventSurface",
|
|
23631
|
+
type: "select",
|
|
23632
|
+
label: "Event surface",
|
|
23633
|
+
description: "Choose a semantic event scope",
|
|
23634
|
+
required: false,
|
|
23635
|
+
multiple: false,
|
|
23636
|
+
defaultValue: "all",
|
|
23637
|
+
options: [
|
|
23638
|
+
{ value: "all", label: "All events" },
|
|
23639
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
23640
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
23641
|
+
{ value: "custom", label: "Custom" }
|
|
23642
|
+
],
|
|
23643
|
+
ui: { intent: "behavior" }
|
|
23644
|
+
},
|
|
23645
|
+
{
|
|
23646
|
+
id: "filterEventPresets",
|
|
23647
|
+
type: "select",
|
|
23648
|
+
label: "Pre-filter by event type",
|
|
23649
|
+
description: "Restrict this block to specific event types",
|
|
23650
|
+
required: false,
|
|
23651
|
+
multiple: true,
|
|
23652
|
+
defaultValue: [],
|
|
23653
|
+
options: [
|
|
23654
|
+
{ value: "class", label: "Classes" },
|
|
23655
|
+
{ value: "workshop", label: "Workshops" },
|
|
23656
|
+
{ value: "retreat", label: "Retreats" },
|
|
23657
|
+
{ value: "performance", label: "Performances" }
|
|
23658
|
+
],
|
|
23659
|
+
ui: {
|
|
23660
|
+
intent: "behavior",
|
|
23661
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23662
|
+
}
|
|
23663
|
+
},
|
|
23664
|
+
{
|
|
23665
|
+
id: "scheduleScope",
|
|
23666
|
+
type: "select",
|
|
23667
|
+
label: "Schedule cadence",
|
|
23668
|
+
description: "Restrict this block by recurrence",
|
|
23669
|
+
required: false,
|
|
23670
|
+
multiple: false,
|
|
23671
|
+
defaultValue: "any",
|
|
23672
|
+
options: [
|
|
23673
|
+
{ value: "any", label: "Any cadence" },
|
|
23674
|
+
{ value: "recurring", label: "Recurring only" },
|
|
23675
|
+
{ value: "oneOff", label: "One-off only" }
|
|
23676
|
+
],
|
|
23677
|
+
ui: {
|
|
23678
|
+
intent: "behavior",
|
|
23679
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23680
|
+
}
|
|
23681
|
+
},
|
|
23682
|
+
createSiteOptionSelectField({
|
|
23683
|
+
id: "filterCategoryIds",
|
|
23684
|
+
label: "Pre-filter by categories",
|
|
23685
|
+
description: "Restrict this block to specific event categories",
|
|
23686
|
+
required: false,
|
|
23687
|
+
multiple: true,
|
|
23688
|
+
defaultValue: [],
|
|
23689
|
+
optionSource: "eventCategories",
|
|
23690
|
+
ui: {
|
|
23691
|
+
intent: "behavior",
|
|
23692
|
+
searchThreshold: 8,
|
|
23693
|
+
visibleWhen: { field: "kind", notEquals: "courses" }
|
|
23694
|
+
}
|
|
23695
|
+
}),
|
|
23696
|
+
createSiteOptionSelectField({
|
|
23697
|
+
id: "filterStaffMemberId",
|
|
23698
|
+
label: "Pre-filter by staff member",
|
|
23699
|
+
description: "Restrict this block to a single staff member",
|
|
23700
|
+
required: false,
|
|
23701
|
+
multiple: false,
|
|
23702
|
+
optionSource: "staffMembers",
|
|
23703
|
+
ui: {
|
|
23704
|
+
intent: "behavior",
|
|
23705
|
+
searchThreshold: 8
|
|
23706
|
+
}
|
|
23707
|
+
}),
|
|
23708
|
+
createSiteOptionSelectField({
|
|
23709
|
+
id: "filterVenueId",
|
|
23710
|
+
label: "Pre-filter by venue",
|
|
23711
|
+
description: "Restrict this block to a single venue",
|
|
23712
|
+
required: false,
|
|
23713
|
+
multiple: false,
|
|
23714
|
+
optionSource: "venues",
|
|
23715
|
+
ui: {
|
|
23716
|
+
intent: "behavior",
|
|
23717
|
+
searchThreshold: 8
|
|
23718
|
+
}
|
|
23719
|
+
}),
|
|
23720
|
+
// Card styling
|
|
23721
|
+
...cardStylingFields.filter((f) => f.id === "buttonVariant" || f.id === "buttonText").map((field) => ({
|
|
23722
|
+
...field,
|
|
23723
|
+
ui: {
|
|
23724
|
+
...field.ui ?? {},
|
|
23725
|
+
intent: field.id === "buttonVariant" ? "style" : "content"
|
|
23726
|
+
}
|
|
23727
|
+
})),
|
|
23728
|
+
{
|
|
23729
|
+
...emptyStateField,
|
|
23730
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
23731
|
+
},
|
|
23732
|
+
sectionStylesField({
|
|
23733
|
+
id: "_sectionStyles",
|
|
23734
|
+
label: "Section styles",
|
|
23735
|
+
renderInHeader: false
|
|
23736
|
+
})
|
|
23737
|
+
];
|
|
23738
|
+
var eventCalendarVariants = {
|
|
23739
|
+
combined: eventCalendarLayout[0],
|
|
23740
|
+
month: eventCalendarLayout[0],
|
|
23741
|
+
week: eventCalendarLayout[0],
|
|
23742
|
+
timetable: eventCalendarLayout[0],
|
|
23743
|
+
list: eventCalendarLayout[0]
|
|
23744
|
+
};
|
|
23745
|
+
var eventCalendarDerivedFields = [
|
|
23746
|
+
{
|
|
23747
|
+
id: "displayMode",
|
|
23748
|
+
type: "select",
|
|
23749
|
+
required: false,
|
|
23750
|
+
multiple: false,
|
|
23751
|
+
options: [
|
|
23752
|
+
{ value: "combined" },
|
|
23753
|
+
{ value: "month" },
|
|
23754
|
+
{ value: "week" },
|
|
23755
|
+
{ value: "timetable" },
|
|
23756
|
+
{ value: "list" }
|
|
23757
|
+
]
|
|
23758
|
+
},
|
|
23759
|
+
{
|
|
23760
|
+
id: "listLayout",
|
|
23761
|
+
type: "select",
|
|
23762
|
+
required: false,
|
|
23763
|
+
multiple: false,
|
|
23764
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23765
|
+
value: option.id
|
|
23766
|
+
}))
|
|
23767
|
+
}
|
|
23768
|
+
];
|
|
23769
|
+
var eventCalendarContentShape = {
|
|
23770
|
+
additionalFields: eventCalendarDerivedFields,
|
|
23771
|
+
variants: eventCalendarVariants,
|
|
23772
|
+
skipSectionStyles: true
|
|
23773
|
+
};
|
|
23774
|
+
var eventCalendarConfig = {
|
|
23775
|
+
id: "block.event-calendar",
|
|
23776
|
+
version: "3.6.0",
|
|
23777
|
+
title: "Event Calendar",
|
|
23778
|
+
titleSource: "heading",
|
|
23779
|
+
description: "Display events with calendar, list, or combined views with filtering",
|
|
23780
|
+
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
23781
|
+
skipSectionStyles: true,
|
|
23782
|
+
additionalFields: eventCalendarAdditionalFields,
|
|
23193
23783
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
23194
23784
|
behaviours: {
|
|
23195
23785
|
supportsThemeSwitching: true,
|
|
@@ -23209,109 +23799,21 @@ var eventCalendarManifest = createBlockManifest({
|
|
|
23209
23799
|
"filter"
|
|
23210
23800
|
],
|
|
23211
23801
|
icon: "CalendarDays",
|
|
23212
|
-
layout:
|
|
23213
|
-
|
|
23214
|
-
|
|
23215
|
-
|
|
23216
|
-
|
|
23217
|
-
|
|
23218
|
-
|
|
23219
|
-
|
|
23220
|
-
|
|
23221
|
-
|
|
23222
|
-
|
|
23223
|
-
|
|
23224
|
-
|
|
23225
|
-
|
|
23226
|
-
|
|
23227
|
-
withApiBindings({
|
|
23228
|
-
events: { $bind: { from: "data.events" } },
|
|
23229
|
-
stage: {
|
|
23230
|
-
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23231
|
-
},
|
|
23232
|
-
// Display mode
|
|
23233
|
-
displayMode: {
|
|
23234
|
-
$bind: { from: "content.displayMode", fallback: "combined" }
|
|
23235
|
-
},
|
|
23236
|
-
// List options
|
|
23237
|
-
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23238
|
-
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23239
|
-
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23240
|
-
layout: { $bind: { from: "content.layout" } },
|
|
23241
|
-
columns: { $bind: { from: "content.columns" } },
|
|
23242
|
-
eventsPerPage: {
|
|
23243
|
-
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23244
|
-
},
|
|
23245
|
-
compactEventsPerPage: {
|
|
23246
|
-
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23247
|
-
},
|
|
23248
|
-
loadMoreText: {
|
|
23249
|
-
$bind: {
|
|
23250
|
-
from: "content.loadMoreText",
|
|
23251
|
-
fallback: "Load more events"
|
|
23252
|
-
}
|
|
23253
|
-
},
|
|
23254
|
-
// Calendar options
|
|
23255
|
-
startOfWeek: {
|
|
23256
|
-
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23257
|
-
},
|
|
23258
|
-
calendarTabViews: {
|
|
23259
|
-
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23260
|
-
},
|
|
23261
|
-
// Filtering options
|
|
23262
|
-
showFilters: {
|
|
23263
|
-
$bind: { from: "content.showFilters", fallback: true }
|
|
23264
|
-
},
|
|
23265
|
-
showCategoryFilter: {
|
|
23266
|
-
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23267
|
-
},
|
|
23268
|
-
showVenueFilter: {
|
|
23269
|
-
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23270
|
-
},
|
|
23271
|
-
showStaffFilter: {
|
|
23272
|
-
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23273
|
-
},
|
|
23274
|
-
showCapacity: {
|
|
23275
|
-
$bind: { from: "content.showCapacity", fallback: true }
|
|
23276
|
-
},
|
|
23277
|
-
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23278
|
-
eventSurface: {
|
|
23279
|
-
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23280
|
-
},
|
|
23281
|
-
filterEventPresets: {
|
|
23282
|
-
$bind: { from: "content.filterEventPresets" }
|
|
23283
|
-
},
|
|
23284
|
-
scheduleScope: {
|
|
23285
|
-
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23286
|
-
},
|
|
23287
|
-
filterCategoryIds: {
|
|
23288
|
-
$bind: { from: "content.filterCategoryIds" }
|
|
23289
|
-
},
|
|
23290
|
-
filterStaffMemberId: {
|
|
23291
|
-
$bind: { from: "content.filterStaffMemberId" }
|
|
23292
|
-
},
|
|
23293
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23294
|
-
// Styling
|
|
23295
|
-
buttonVariant: {
|
|
23296
|
-
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23297
|
-
},
|
|
23298
|
-
buttonText: {
|
|
23299
|
-
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23300
|
-
},
|
|
23301
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23302
|
-
})
|
|
23303
|
-
)
|
|
23304
|
-
],
|
|
23305
|
-
{
|
|
23306
|
-
gap: "lg"
|
|
23307
|
-
}
|
|
23308
|
-
),
|
|
23309
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
23310
|
-
baseClass: "",
|
|
23311
|
-
spacing: "comfortable"
|
|
23312
|
-
})
|
|
23313
|
-
]
|
|
23314
|
-
});
|
|
23802
|
+
layout: eventCalendarLayout,
|
|
23803
|
+
variants: eventCalendarVariants,
|
|
23804
|
+
defaultVariant: "combined",
|
|
23805
|
+
variantOptions: {
|
|
23806
|
+
combined: { label: "Combined" },
|
|
23807
|
+
month: { label: "Month" },
|
|
23808
|
+
week: { label: "Week" },
|
|
23809
|
+
timetable: { label: "Timetable" },
|
|
23810
|
+
list: { label: "List" }
|
|
23811
|
+
}
|
|
23812
|
+
};
|
|
23813
|
+
var eventCalendarManifest = createBlockManifestWithContentShape(
|
|
23814
|
+
eventCalendarConfig,
|
|
23815
|
+
eventCalendarContentShape
|
|
23816
|
+
);
|
|
23315
23817
|
var eventCalendarBlockDefinition = {
|
|
23316
23818
|
manifest: eventCalendarManifest,
|
|
23317
23819
|
normalizeContent: normalizeEventCalendarContent,
|
|
@@ -27364,14 +27866,29 @@ function mediaPanelCapable() {
|
|
|
27364
27866
|
var allSectionSurfaces = [
|
|
27365
27867
|
"base",
|
|
27366
27868
|
"muted-band",
|
|
27367
|
-
"accent-band"
|
|
27869
|
+
"accent-band",
|
|
27870
|
+
"brand-depth-band"
|
|
27368
27871
|
];
|
|
27369
27872
|
var heroSectionSurfaces = [
|
|
27370
27873
|
"base",
|
|
27371
27874
|
"muted-band",
|
|
27372
27875
|
"accent-band",
|
|
27876
|
+
"brand-depth-band",
|
|
27373
27877
|
"hero-image"
|
|
27374
27878
|
];
|
|
27879
|
+
var scheduleTileTreatments = [
|
|
27880
|
+
"default",
|
|
27881
|
+
"quiet",
|
|
27882
|
+
"brand-depth"
|
|
27883
|
+
];
|
|
27884
|
+
function scheduleDetailsCapable() {
|
|
27885
|
+
return declareBlockDesignCapability({
|
|
27886
|
+
sectionSurfaces: "supported",
|
|
27887
|
+
contentFrames: ["plain"],
|
|
27888
|
+
itemSurfaces: "unsupported",
|
|
27889
|
+
tileTreatments: scheduleTileTreatments
|
|
27890
|
+
});
|
|
27891
|
+
}
|
|
27375
27892
|
function defaultBoundaryBias(visualWeight) {
|
|
27376
27893
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
27377
27894
|
}
|
|
@@ -27609,7 +28126,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27609
28126
|
flow: conversionFlow,
|
|
27610
28127
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27611
28128
|
})),
|
|
27612
|
-
withDesignCapability("block.event-details", eventDetailsBlockDefinition,
|
|
28129
|
+
withDesignCapability("block.event-details", eventDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27613
28130
|
flow: offeringsFlow,
|
|
27614
28131
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27615
28132
|
})),
|
|
@@ -27617,7 +28134,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27617
28134
|
flow: conversionFlow,
|
|
27618
28135
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27619
28136
|
})),
|
|
27620
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition,
|
|
28137
|
+
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27621
28138
|
flow: offeringsFlow,
|
|
27622
28139
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27623
28140
|
})),
|
|
@@ -27632,7 +28149,13 @@ var systemBlockDefinitionsRaw = [
|
|
|
27632
28149
|
})),
|
|
27633
28150
|
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
27634
28151
|
flow: offeringsFlow,
|
|
27635
|
-
layoutProfiles: [
|
|
28152
|
+
layoutProfiles: [
|
|
28153
|
+
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
28154
|
+
layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
|
|
28155
|
+
layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
|
|
28156
|
+
layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
|
|
28157
|
+
layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
|
|
28158
|
+
]
|
|
27636
28159
|
})),
|
|
27637
28160
|
// Friendly wrapper blocks
|
|
27638
28161
|
withDesignCapability("block.team-members", teamMembersBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|