@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/data.mjs
CHANGED
|
@@ -995,6 +995,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
995
995
|
auth: "user",
|
|
996
996
|
responseKind: "json"
|
|
997
997
|
},
|
|
998
|
+
exportAppointmentServicesCsv: {
|
|
999
|
+
path: "/sites/{siteId}/bookings/services/export.csv",
|
|
1000
|
+
method: "GET",
|
|
1001
|
+
tags: ["site-{siteId}", "bookings", "appointment-services-{siteId}"],
|
|
1002
|
+
errors: [],
|
|
1003
|
+
auth: "user",
|
|
1004
|
+
responseKind: "blob"
|
|
1005
|
+
},
|
|
998
1006
|
createAppointmentService: {
|
|
999
1007
|
path: "/sites/{siteId}/bookings/services",
|
|
1000
1008
|
method: "POST",
|
|
@@ -1263,6 +1271,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1263
1271
|
auth: "user",
|
|
1264
1272
|
responseKind: "json"
|
|
1265
1273
|
},
|
|
1274
|
+
exportCoursesCsv: {
|
|
1275
|
+
path: "/sites/{siteId}/bookings/courses/export.csv",
|
|
1276
|
+
method: "GET",
|
|
1277
|
+
tags: ["site-{siteId}", "bookings", "courses-{siteId}"],
|
|
1278
|
+
errors: [],
|
|
1279
|
+
auth: "user",
|
|
1280
|
+
responseKind: "blob"
|
|
1281
|
+
},
|
|
1266
1282
|
createCourse: {
|
|
1267
1283
|
path: "/sites/{siteId}/bookings/courses",
|
|
1268
1284
|
method: "POST",
|
|
@@ -1362,6 +1378,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1362
1378
|
responseKind: "json",
|
|
1363
1379
|
errors: []
|
|
1364
1380
|
},
|
|
1381
|
+
exportCourseWaitlistCsv: {
|
|
1382
|
+
path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
|
|
1383
|
+
method: "GET",
|
|
1384
|
+
tags: ["site-{siteId}", "bookings", "courses-{courseId}"],
|
|
1385
|
+
auth: "user",
|
|
1386
|
+
responseKind: "blob",
|
|
1387
|
+
errors: []
|
|
1388
|
+
},
|
|
1365
1389
|
updateCourseEnrollment: {
|
|
1366
1390
|
path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
|
|
1367
1391
|
method: "PATCH",
|
|
@@ -3957,6 +3981,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3957
3981
|
auth: "user",
|
|
3958
3982
|
responseKind: "json"
|
|
3959
3983
|
},
|
|
3984
|
+
exportEventSeriesCsv: {
|
|
3985
|
+
path: "/sites/{siteId}/bookings/event-series/export.csv",
|
|
3986
|
+
method: "GET",
|
|
3987
|
+
tags: ["site-{siteId}", "bookings", "event-series-{siteId}"],
|
|
3988
|
+
errors: [],
|
|
3989
|
+
auth: "user",
|
|
3990
|
+
responseKind: "blob"
|
|
3991
|
+
},
|
|
3960
3992
|
createEventSeries: {
|
|
3961
3993
|
path: "/sites/{siteId}/bookings/event-series",
|
|
3962
3994
|
method: "POST",
|
|
@@ -4025,6 +4057,60 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4025
4057
|
errors: [],
|
|
4026
4058
|
responseKind: "blob"
|
|
4027
4059
|
},
|
|
4060
|
+
getParticipantMessageRecipients: {
|
|
4061
|
+
path: "/sites/{siteId}/bookings/participant-messaging/recipients",
|
|
4062
|
+
method: "POST",
|
|
4063
|
+
tags: ["site-{siteId}"],
|
|
4064
|
+
auth: "user",
|
|
4065
|
+
errors: [
|
|
4066
|
+
"validation:invalid_input",
|
|
4067
|
+
"auth:forbidden",
|
|
4068
|
+
"resource:not_found",
|
|
4069
|
+
"server:internal_error"
|
|
4070
|
+
],
|
|
4071
|
+
responseKind: "json"
|
|
4072
|
+
},
|
|
4073
|
+
sendParticipantMessage: {
|
|
4074
|
+
path: "/sites/{siteId}/bookings/participant-messaging/send",
|
|
4075
|
+
method: "POST",
|
|
4076
|
+
tags: ["site-{siteId}"],
|
|
4077
|
+
auth: "user",
|
|
4078
|
+
errors: [
|
|
4079
|
+
"validation:invalid_input",
|
|
4080
|
+
"auth:forbidden",
|
|
4081
|
+
"resource:not_found",
|
|
4082
|
+
"resource:conflict",
|
|
4083
|
+
"server:internal_error"
|
|
4084
|
+
],
|
|
4085
|
+
responseKind: "json"
|
|
4086
|
+
},
|
|
4087
|
+
testParticipantMessage: {
|
|
4088
|
+
path: "/sites/{siteId}/bookings/participant-messaging/test",
|
|
4089
|
+
method: "POST",
|
|
4090
|
+
tags: ["site-{siteId}"],
|
|
4091
|
+
auth: "user",
|
|
4092
|
+
errors: [
|
|
4093
|
+
"validation:invalid_input",
|
|
4094
|
+
"auth:forbidden",
|
|
4095
|
+
"resource:not_found",
|
|
4096
|
+
"resource:conflict",
|
|
4097
|
+
"server:internal_error"
|
|
4098
|
+
],
|
|
4099
|
+
responseKind: "json"
|
|
4100
|
+
},
|
|
4101
|
+
listParticipantMessageHistory: {
|
|
4102
|
+
path: "/sites/{siteId}/bookings/participant-messaging/history",
|
|
4103
|
+
method: "POST",
|
|
4104
|
+
tags: ["site-{siteId}"],
|
|
4105
|
+
auth: "user",
|
|
4106
|
+
errors: [
|
|
4107
|
+
"validation:invalid_input",
|
|
4108
|
+
"auth:forbidden",
|
|
4109
|
+
"resource:not_found",
|
|
4110
|
+
"server:internal_error"
|
|
4111
|
+
],
|
|
4112
|
+
responseKind: "json"
|
|
4113
|
+
},
|
|
4028
4114
|
listEventSeriesWaitlist: {
|
|
4029
4115
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist",
|
|
4030
4116
|
method: "GET",
|
|
@@ -4033,6 +4119,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4033
4119
|
responseKind: "json",
|
|
4034
4120
|
errors: []
|
|
4035
4121
|
},
|
|
4122
|
+
exportEventSeriesWaitlistCsv: {
|
|
4123
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist/export.csv",
|
|
4124
|
+
method: "GET",
|
|
4125
|
+
tags: ["site-{siteId}", "bookings", "event-series-{seriesId}"],
|
|
4126
|
+
auth: "user",
|
|
4127
|
+
responseKind: "blob",
|
|
4128
|
+
errors: []
|
|
4129
|
+
},
|
|
4036
4130
|
addEventOccurrenceAttendee: {
|
|
4037
4131
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences/{occurrenceId}/attendees",
|
|
4038
4132
|
method: "POST",
|
|
@@ -4749,6 +4843,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4749
4843
|
auth: "user",
|
|
4750
4844
|
responseKind: "json"
|
|
4751
4845
|
},
|
|
4846
|
+
exportSiteCustomerPassesCsv: {
|
|
4847
|
+
path: "/sites/{siteId}/bookings/customer-passes/export.csv",
|
|
4848
|
+
method: "GET",
|
|
4849
|
+
tags: ["site-{siteId}", "bookings", "customer-passes-{siteId}"],
|
|
4850
|
+
auth: "user",
|
|
4851
|
+
responseKind: "blob",
|
|
4852
|
+
errors: []
|
|
4853
|
+
},
|
|
4752
4854
|
listSiteCustomerMemberships: {
|
|
4753
4855
|
path: "/sites/{siteId}/bookings/customer-memberships",
|
|
4754
4856
|
method: "GET",
|
|
@@ -4812,6 +4914,22 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4812
4914
|
auth: "user",
|
|
4813
4915
|
responseKind: "blob"
|
|
4814
4916
|
},
|
|
4917
|
+
exportBookingLedgerCsv: {
|
|
4918
|
+
path: "/sites/{siteId}/bookings/ledger/export.csv",
|
|
4919
|
+
method: "GET",
|
|
4920
|
+
tags: ["site-{siteId}", "bookings", "booking-ledger-{siteId}"],
|
|
4921
|
+
errors: [],
|
|
4922
|
+
auth: "user",
|
|
4923
|
+
responseKind: "blob"
|
|
4924
|
+
},
|
|
4925
|
+
exportBookingQuestionAnswersCsv: {
|
|
4926
|
+
path: "/sites/{siteId}/bookings/intake-answers/export.csv",
|
|
4927
|
+
method: "GET",
|
|
4928
|
+
tags: ["site-{siteId}", "bookings", "intake-answers-{siteId}"],
|
|
4929
|
+
errors: [],
|
|
4930
|
+
auth: "user",
|
|
4931
|
+
responseKind: "blob"
|
|
4932
|
+
},
|
|
4815
4933
|
// Site logs
|
|
4816
4934
|
listSiteActivityLogs: {
|
|
4817
4935
|
path: "/sites/{siteId}/logs/activity",
|
|
@@ -6169,7 +6287,11 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
6169
6287
|
|
|
6170
6288
|
// ../blocks/src/system/manifest/schema.ts
|
|
6171
6289
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
6172
|
-
var siteOptionSources = [
|
|
6290
|
+
var siteOptionSources = [
|
|
6291
|
+
"eventCategories",
|
|
6292
|
+
"venues",
|
|
6293
|
+
"staffMembers"
|
|
6294
|
+
];
|
|
6173
6295
|
var mediaDeliverySchema = z3.object({
|
|
6174
6296
|
sizes: z3.string().optional(),
|
|
6175
6297
|
widthCandidates: z3.array(z3.number().int().positive()).optional(),
|
|
@@ -6207,7 +6329,10 @@ var uiSchema = z3.object({
|
|
|
6207
6329
|
hidden: z3.boolean().optional(),
|
|
6208
6330
|
hideLabel: z3.boolean().optional(),
|
|
6209
6331
|
hideDescription: z3.boolean().optional(),
|
|
6210
|
-
showCharCount: z3.union([
|
|
6332
|
+
showCharCount: z3.union([
|
|
6333
|
+
z3.number().int().positive(),
|
|
6334
|
+
z3.object({ max: z3.number().int().positive() })
|
|
6335
|
+
]).optional(),
|
|
6211
6336
|
showSlugPreview: z3.boolean().optional(),
|
|
6212
6337
|
variant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
6213
6338
|
richTextVariant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
@@ -6217,10 +6342,7 @@ var uiSchema = z3.object({
|
|
|
6217
6342
|
showMediaPreview: z3.boolean().optional(),
|
|
6218
6343
|
showMediaOverlayActions: z3.boolean().optional(),
|
|
6219
6344
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
6220
|
-
mediaDeliveryByVariant: z3.record(
|
|
6221
|
-
z3.string(),
|
|
6222
|
-
mediaDeliverySchema
|
|
6223
|
-
).optional(),
|
|
6345
|
+
mediaDeliveryByVariant: z3.record(z3.string(), mediaDeliverySchema).optional(),
|
|
6224
6346
|
// Optional input hints for validators/widgets
|
|
6225
6347
|
inputType: z3.enum(["text", "email", "tel", "number"]).optional(),
|
|
6226
6348
|
min: z3.number().optional(),
|
|
@@ -6328,7 +6450,9 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
6328
6450
|
});
|
|
6329
6451
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
6330
6452
|
type: z3.literal("media"),
|
|
6331
|
-
mediaKinds: z3.array(
|
|
6453
|
+
mediaKinds: z3.array(
|
|
6454
|
+
z3.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
|
|
6455
|
+
).default(["image"]),
|
|
6332
6456
|
aspectRatio: z3.string().optional()
|
|
6333
6457
|
});
|
|
6334
6458
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
@@ -6450,7 +6574,9 @@ var referenceFieldSchema = baseFieldSchema.extend({
|
|
|
6450
6574
|
var itemTypeSchema = z3.object({
|
|
6451
6575
|
label: z3.string().min(1),
|
|
6452
6576
|
icon: z3.string().optional(),
|
|
6453
|
-
fields: z3.lazy(
|
|
6577
|
+
fields: z3.lazy(
|
|
6578
|
+
() => getFieldSchemaInternal().array().min(1, "Item type requires at least one field")
|
|
6579
|
+
)
|
|
6454
6580
|
});
|
|
6455
6581
|
var repeaterFieldSchema = baseFieldSchema.extend({
|
|
6456
6582
|
type: z3.literal("repeater"),
|
|
@@ -6460,7 +6586,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6460
6586
|
maxItems: z3.number().int().positive().optional(),
|
|
6461
6587
|
// Monomorphic mode
|
|
6462
6588
|
schema: z3.object({
|
|
6463
|
-
fields: z3.lazy(
|
|
6589
|
+
fields: z3.lazy(
|
|
6590
|
+
() => getFieldSchemaInternal().array().min(1, "Repeater requires at least one field")
|
|
6591
|
+
)
|
|
6464
6592
|
}).optional(),
|
|
6465
6593
|
// Polymorphic mode
|
|
6466
6594
|
polymorphic: z3.boolean().optional(),
|
|
@@ -6506,13 +6634,19 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6506
6634
|
const itemTypes = Object.values(
|
|
6507
6635
|
data.itemTypes
|
|
6508
6636
|
);
|
|
6509
|
-
return itemTypes.every(
|
|
6637
|
+
return itemTypes.every(
|
|
6638
|
+
(itemType) => Array.isArray(itemType.fields) && requiredFieldIds.every(
|
|
6639
|
+
(requiredId) => itemType.fields?.some((field) => field.id === requiredId)
|
|
6640
|
+
)
|
|
6641
|
+
);
|
|
6510
6642
|
}
|
|
6511
6643
|
const schemaFields = data.schema?.fields;
|
|
6512
6644
|
if (!schemaFields) {
|
|
6513
6645
|
return true;
|
|
6514
6646
|
}
|
|
6515
|
-
return requiredFieldIds.every(
|
|
6647
|
+
return requiredFieldIds.every(
|
|
6648
|
+
(requiredId) => schemaFields.some((field) => field.id === requiredId)
|
|
6649
|
+
);
|
|
6516
6650
|
},
|
|
6517
6651
|
{
|
|
6518
6652
|
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`,
|
|
@@ -6540,7 +6674,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6540
6674
|
if (!schemaFields) {
|
|
6541
6675
|
return true;
|
|
6542
6676
|
}
|
|
6543
|
-
const field = schemaFields.find(
|
|
6677
|
+
const field = schemaFields.find(
|
|
6678
|
+
(candidate) => candidate.id === labelField
|
|
6679
|
+
);
|
|
6544
6680
|
return field?.type === "text";
|
|
6545
6681
|
},
|
|
6546
6682
|
{
|
|
@@ -6551,13 +6687,17 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6551
6687
|
var groupFieldSchema = baseFieldSchema.extend({
|
|
6552
6688
|
type: z3.literal("group"),
|
|
6553
6689
|
schema: z3.object({
|
|
6554
|
-
fields: z3.lazy(
|
|
6690
|
+
fields: z3.lazy(
|
|
6691
|
+
() => getFieldSchemaInternal().array().min(1, "Group requires at least one field")
|
|
6692
|
+
)
|
|
6555
6693
|
})
|
|
6556
6694
|
});
|
|
6557
6695
|
var modalFieldSchema = baseFieldSchema.extend({
|
|
6558
6696
|
type: z3.literal("modal"),
|
|
6559
6697
|
schema: z3.object({
|
|
6560
|
-
fields: z3.lazy(
|
|
6698
|
+
fields: z3.lazy(
|
|
6699
|
+
() => getFieldSchemaInternal().array().min(1, "Modal requires at least one field")
|
|
6700
|
+
)
|
|
6561
6701
|
})
|
|
6562
6702
|
});
|
|
6563
6703
|
var numberFieldSchema = baseFieldSchema.extend({
|
|
@@ -6664,31 +6804,35 @@ function expectParsedSelectField(field) {
|
|
|
6664
6804
|
return field;
|
|
6665
6805
|
}
|
|
6666
6806
|
function createSiteOptionSelectField(input) {
|
|
6667
|
-
return expectParsedSelectField(
|
|
6668
|
-
|
|
6669
|
-
|
|
6670
|
-
|
|
6671
|
-
|
|
6672
|
-
|
|
6673
|
-
|
|
6674
|
-
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6807
|
+
return expectParsedSelectField(
|
|
6808
|
+
parseFieldDefinition({
|
|
6809
|
+
...input,
|
|
6810
|
+
type: "select",
|
|
6811
|
+
options: [],
|
|
6812
|
+
multiple: input.multiple ?? false,
|
|
6813
|
+
source: { kind: "site", optionSource: input.optionSource },
|
|
6814
|
+
ui: {
|
|
6815
|
+
...input.ui ?? {},
|
|
6816
|
+
widget: "siteOptionPicker",
|
|
6817
|
+
siteOptionSource: input.optionSource
|
|
6818
|
+
}
|
|
6819
|
+
})
|
|
6820
|
+
);
|
|
6679
6821
|
}
|
|
6680
6822
|
function createSdkSelectField(input) {
|
|
6681
|
-
return expectParsedSelectField(
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6823
|
+
return expectParsedSelectField(
|
|
6824
|
+
parseFieldDefinition({
|
|
6825
|
+
...input,
|
|
6826
|
+
type: "select",
|
|
6827
|
+
options: input.options,
|
|
6828
|
+
multiple: input.multiple ?? false,
|
|
6829
|
+
source: { kind: "sdk" },
|
|
6830
|
+
ui: {
|
|
6831
|
+
...input.ui ?? {},
|
|
6832
|
+
widget: "sdkSelect"
|
|
6833
|
+
}
|
|
6834
|
+
})
|
|
6835
|
+
);
|
|
6692
6836
|
}
|
|
6693
6837
|
var slotSchema = z3.object({
|
|
6694
6838
|
id: z3.string().min(1),
|
|
@@ -6699,8 +6843,20 @@ var slotSchema = z3.object({
|
|
|
6699
6843
|
help: z3.string().optional(),
|
|
6700
6844
|
visibleRoles: z3.array(z3.enum(visibilityLevels)).optional()
|
|
6701
6845
|
});
|
|
6702
|
-
var typographyTokens = [
|
|
6703
|
-
|
|
6846
|
+
var typographyTokens = [
|
|
6847
|
+
"display",
|
|
6848
|
+
"heading",
|
|
6849
|
+
"subheading",
|
|
6850
|
+
"body",
|
|
6851
|
+
"caption"
|
|
6852
|
+
];
|
|
6853
|
+
var colorTokens = [
|
|
6854
|
+
"background",
|
|
6855
|
+
"surface",
|
|
6856
|
+
"foreground",
|
|
6857
|
+
"accent",
|
|
6858
|
+
"muted"
|
|
6859
|
+
];
|
|
6704
6860
|
var spacingTokens = ["none", "xs", "sm", "md", "lg", "xl"];
|
|
6705
6861
|
var radiusTokens = ["none", "sm", "md", "lg", "full"];
|
|
6706
6862
|
var styleTokenSchema = z3.object({
|
|
@@ -6720,7 +6876,14 @@ var behaviourSchema = z3.object({
|
|
|
6720
6876
|
// Block manages its own wrapper (for sticky/fixed positioning)
|
|
6721
6877
|
managesOwnWrapper: z3.boolean().optional()
|
|
6722
6878
|
});
|
|
6723
|
-
var blockCategoryEnum = z3.enum([
|
|
6879
|
+
var blockCategoryEnum = z3.enum([
|
|
6880
|
+
"marketing",
|
|
6881
|
+
"content",
|
|
6882
|
+
"blog",
|
|
6883
|
+
"media",
|
|
6884
|
+
"layout",
|
|
6885
|
+
"interactive"
|
|
6886
|
+
]);
|
|
6724
6887
|
var manifestSchema = z3.object({
|
|
6725
6888
|
name: z3.string().min(1),
|
|
6726
6889
|
version: z3.string().min(1),
|
|
@@ -7319,6 +7482,20 @@ var applyAppointmentSetupRequestSchema = z6.object({
|
|
|
7319
7482
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
7320
7483
|
});
|
|
7321
7484
|
|
|
7485
|
+
// ../api/src/bookingRecords.ts
|
|
7486
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPES = {
|
|
7487
|
+
site: "site",
|
|
7488
|
+
appointments: "appointments",
|
|
7489
|
+
eventSeries: "event_series",
|
|
7490
|
+
course: "course"
|
|
7491
|
+
};
|
|
7492
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES = [
|
|
7493
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site,
|
|
7494
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments,
|
|
7495
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries,
|
|
7496
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.course
|
|
7497
|
+
];
|
|
7498
|
+
|
|
7322
7499
|
// ../api/src/common/cancellation.ts
|
|
7323
7500
|
var STAFF_CANCELLATION_CONTEXT_UI_CATEGORIES = [
|
|
7324
7501
|
"customer_requested",
|
|
@@ -7645,6 +7822,24 @@ function registerManifest(manifest) {
|
|
|
7645
7822
|
return manifest;
|
|
7646
7823
|
}
|
|
7647
7824
|
|
|
7825
|
+
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
7826
|
+
function assertValidOptionGroups(preset2) {
|
|
7827
|
+
preset2.optionGroups?.forEach((group) => {
|
|
7828
|
+
const selectedOption = group.options.find(
|
|
7829
|
+
(option) => option.id === group.selectedOptionId
|
|
7830
|
+
);
|
|
7831
|
+
if (!selectedOption) {
|
|
7832
|
+
throw new Error(
|
|
7833
|
+
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
7834
|
+
);
|
|
7835
|
+
}
|
|
7836
|
+
});
|
|
7837
|
+
}
|
|
7838
|
+
function defineBlockAppearancePreset(preset2) {
|
|
7839
|
+
assertValidOptionGroups(preset2);
|
|
7840
|
+
return preset2;
|
|
7841
|
+
}
|
|
7842
|
+
|
|
7648
7843
|
// ../theme-core/src/site-styles/types.ts
|
|
7649
7844
|
function asDesignBlockId(value) {
|
|
7650
7845
|
return brandNonEmptyString(value, "DesignBlockId");
|
|
@@ -7726,6 +7921,11 @@ function flushPanelFrame(options) {
|
|
|
7726
7921
|
function defineFrameCapability(capability) {
|
|
7727
7922
|
return capability;
|
|
7728
7923
|
}
|
|
7924
|
+
var tileTreatmentValues = [
|
|
7925
|
+
"default",
|
|
7926
|
+
"quiet",
|
|
7927
|
+
"brand-depth"
|
|
7928
|
+
];
|
|
7729
7929
|
var eyebrowTreatmentValues = [
|
|
7730
7930
|
"plain",
|
|
7731
7931
|
"pill",
|
|
@@ -7741,31 +7941,13 @@ function defineBlockDesignCapability(capability) {
|
|
|
7741
7941
|
imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
|
|
7742
7942
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7743
7943
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
7944
|
+
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7744
7945
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"]
|
|
7745
7946
|
};
|
|
7746
7947
|
}
|
|
7747
7948
|
|
|
7748
|
-
// ../theme-core/src/site-styles/
|
|
7749
|
-
|
|
7750
|
-
preset2.optionGroups?.forEach((group) => {
|
|
7751
|
-
const selectedOption = group.options.find(
|
|
7752
|
-
(option) => option.id === group.selectedOptionId
|
|
7753
|
-
);
|
|
7754
|
-
if (!selectedOption) {
|
|
7755
|
-
throw new Error(
|
|
7756
|
-
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
7757
|
-
);
|
|
7758
|
-
}
|
|
7759
|
-
});
|
|
7760
|
-
}
|
|
7761
|
-
function defineBlockAppearancePreset(preset2) {
|
|
7762
|
-
assertValidOptionGroups(preset2);
|
|
7763
|
-
return preset2;
|
|
7764
|
-
}
|
|
7765
|
-
function defineSiteChromeAppearancePreset(preset2) {
|
|
7766
|
-
return preset2;
|
|
7767
|
-
}
|
|
7768
|
-
var appearancePresets = [
|
|
7949
|
+
// ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
7950
|
+
var blockAppearancePresets = [
|
|
7769
7951
|
defineBlockAppearancePreset({
|
|
7770
7952
|
kind: "block-design",
|
|
7771
7953
|
id: "hero-immersive-image",
|
|
@@ -7891,6 +8073,24 @@ var appearancePresets = [
|
|
|
7891
8073
|
eyebrowTreatment: "accent-pill-bounce"
|
|
7892
8074
|
}
|
|
7893
8075
|
}),
|
|
8076
|
+
defineBlockAppearancePreset({
|
|
8077
|
+
kind: "block-design",
|
|
8078
|
+
id: "hero-brand-depth-expressive",
|
|
8079
|
+
target: "hero",
|
|
8080
|
+
label: "Expressive brand-depth hero",
|
|
8081
|
+
blockKinds: ["block.hero"],
|
|
8082
|
+
constraints: {
|
|
8083
|
+
layoutFamilies: ["centered", "compact"]
|
|
8084
|
+
},
|
|
8085
|
+
design: {
|
|
8086
|
+
sectionSurface: "brand-depth-band",
|
|
8087
|
+
contentFrame: plainFrame,
|
|
8088
|
+
itemSurface: "none",
|
|
8089
|
+
transitionAfter: "soft-fade-short",
|
|
8090
|
+
emphasis: "high",
|
|
8091
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
8092
|
+
}
|
|
8093
|
+
}),
|
|
7894
8094
|
defineBlockAppearancePreset({
|
|
7895
8095
|
kind: "block-design",
|
|
7896
8096
|
id: "hero-contained-intro",
|
|
@@ -7919,6 +8119,20 @@ var appearancePresets = [
|
|
|
7919
8119
|
emphasis: "high"
|
|
7920
8120
|
}
|
|
7921
8121
|
}),
|
|
8122
|
+
defineBlockAppearancePreset({
|
|
8123
|
+
kind: "block-design",
|
|
8124
|
+
id: "body-text-brand-depth-intro",
|
|
8125
|
+
target: "body-text",
|
|
8126
|
+
label: "Brand-depth intro copy",
|
|
8127
|
+
blockKinds: ["block.body-text"],
|
|
8128
|
+
design: {
|
|
8129
|
+
sectionSurface: "brand-depth-band",
|
|
8130
|
+
contentFrame: plainFrame,
|
|
8131
|
+
itemSurface: "none",
|
|
8132
|
+
transitionAfter: "soft-fade-short",
|
|
8133
|
+
emphasis: "high"
|
|
8134
|
+
}
|
|
8135
|
+
}),
|
|
7922
8136
|
defineBlockAppearancePreset({
|
|
7923
8137
|
kind: "block-design",
|
|
7924
8138
|
id: "offerings-calm-list",
|
|
@@ -7961,6 +8175,21 @@ var appearancePresets = [
|
|
|
7961
8175
|
emphasis: "medium"
|
|
7962
8176
|
}
|
|
7963
8177
|
}),
|
|
8178
|
+
defineBlockAppearancePreset({
|
|
8179
|
+
kind: "block-design",
|
|
8180
|
+
id: "schedule-details-brand-depth",
|
|
8181
|
+
target: "events",
|
|
8182
|
+
label: "Brand-depth schedule details",
|
|
8183
|
+
blockKinds: ["block.event-details", "block.course-details"],
|
|
8184
|
+
design: {
|
|
8185
|
+
sectionSurface: "brand-depth-band",
|
|
8186
|
+
contentFrame: plainFrame,
|
|
8187
|
+
itemSurface: "none",
|
|
8188
|
+
transitionAfter: "none",
|
|
8189
|
+
emphasis: "medium",
|
|
8190
|
+
tileTreatment: "brand-depth"
|
|
8191
|
+
}
|
|
8192
|
+
}),
|
|
7964
8193
|
defineBlockAppearancePreset({
|
|
7965
8194
|
kind: "block-design",
|
|
7966
8195
|
id: "media-text-flush-feature",
|
|
@@ -8046,6 +8275,20 @@ var appearancePresets = [
|
|
|
8046
8275
|
testimonialCardTreatment: "accent-quote"
|
|
8047
8276
|
}
|
|
8048
8277
|
}),
|
|
8278
|
+
defineBlockAppearancePreset({
|
|
8279
|
+
kind: "block-design",
|
|
8280
|
+
id: "faq-base-accordion",
|
|
8281
|
+
target: "faq",
|
|
8282
|
+
label: "Base accordion FAQ",
|
|
8283
|
+
blockKinds: ["block.faq"],
|
|
8284
|
+
design: {
|
|
8285
|
+
sectionSurface: "base",
|
|
8286
|
+
contentFrame: plainFrame,
|
|
8287
|
+
itemSurface: "default",
|
|
8288
|
+
transitionAfter: "none",
|
|
8289
|
+
emphasis: "medium"
|
|
8290
|
+
}
|
|
8291
|
+
}),
|
|
8049
8292
|
defineBlockAppearancePreset({
|
|
8050
8293
|
kind: "block-design",
|
|
8051
8294
|
id: "faq-contained-help",
|
|
@@ -8088,6 +8331,20 @@ var appearancePresets = [
|
|
|
8088
8331
|
emphasis: "high"
|
|
8089
8332
|
}
|
|
8090
8333
|
}),
|
|
8334
|
+
defineBlockAppearancePreset({
|
|
8335
|
+
kind: "block-design",
|
|
8336
|
+
id: "contact-form-brand-depth-card",
|
|
8337
|
+
target: "contact-form",
|
|
8338
|
+
label: "Brand-depth form card",
|
|
8339
|
+
blockKinds: ["block.form"],
|
|
8340
|
+
design: {
|
|
8341
|
+
sectionSurface: "brand-depth-band",
|
|
8342
|
+
contentFrame: panelFrame("raised"),
|
|
8343
|
+
itemSurface: "none",
|
|
8344
|
+
transitionAfter: "none",
|
|
8345
|
+
emphasis: "high"
|
|
8346
|
+
}
|
|
8347
|
+
}),
|
|
8091
8348
|
defineBlockAppearancePreset({
|
|
8092
8349
|
kind: "block-design",
|
|
8093
8350
|
id: "cta-accent-band",
|
|
@@ -8101,7 +8358,14 @@ var appearancePresets = [
|
|
|
8101
8358
|
transitionAfter: "none",
|
|
8102
8359
|
emphasis: "high"
|
|
8103
8360
|
}
|
|
8104
|
-
})
|
|
8361
|
+
})
|
|
8362
|
+
];
|
|
8363
|
+
|
|
8364
|
+
// ../theme-core/src/site-styles/siteChromeAppearancePresets.ts
|
|
8365
|
+
function defineSiteChromeAppearancePreset(preset2) {
|
|
8366
|
+
return preset2;
|
|
8367
|
+
}
|
|
8368
|
+
var siteChromeAppearancePresets = [
|
|
8105
8369
|
defineSiteChromeAppearancePreset({
|
|
8106
8370
|
kind: "site-chrome",
|
|
8107
8371
|
id: "header-clean-base",
|
|
@@ -8169,6 +8433,12 @@ var appearancePresets = [
|
|
|
8169
8433
|
})
|
|
8170
8434
|
];
|
|
8171
8435
|
|
|
8436
|
+
// ../theme-core/src/site-styles/appearancePresetCatalog.ts
|
|
8437
|
+
var appearancePresets = [
|
|
8438
|
+
...blockAppearancePresets,
|
|
8439
|
+
...siteChromeAppearancePresets
|
|
8440
|
+
];
|
|
8441
|
+
|
|
8172
8442
|
// ../theme-core/src/site-styles/blockFlow.ts
|
|
8173
8443
|
function defineBlockDesignMetadata(input) {
|
|
8174
8444
|
const layoutProfiles = (input.layoutProfiles ?? []).map((profile) => ({
|
|
@@ -9643,6 +9913,7 @@ var sectionStylesOverrideSchema = z22.object({
|
|
|
9643
9913
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9644
9914
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9645
9915
|
minHeight: z22.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
9916
|
+
tileTreatment: z22.enum(tileTreatmentValues).nullable().optional(),
|
|
9646
9917
|
eyebrowTreatment: z22.enum(eyebrowTreatmentValues).nullable().optional()
|
|
9647
9918
|
});
|
|
9648
9919
|
var containerStylesOverrideSchema = z22.object({
|
|
@@ -10436,7 +10707,7 @@ var userContentFrames = [
|
|
|
10436
10707
|
];
|
|
10437
10708
|
var generatedDesignOptionCatalog = {
|
|
10438
10709
|
source: "generated",
|
|
10439
|
-
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
10710
|
+
sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
|
|
10440
10711
|
contentFrames: generatedContentFrames,
|
|
10441
10712
|
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
10442
10713
|
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
@@ -10506,6 +10777,43 @@ var expressiveBudget = {
|
|
|
10506
10777
|
mediaDensity: "high",
|
|
10507
10778
|
decorativeRepetition: "medium"
|
|
10508
10779
|
};
|
|
10780
|
+
var expressiveUnderlineInputs = {
|
|
10781
|
+
base: {
|
|
10782
|
+
background: { type: "transparent" },
|
|
10783
|
+
textColorToken: "text",
|
|
10784
|
+
border: {
|
|
10785
|
+
widthClass: "border-2",
|
|
10786
|
+
colorToken: "border",
|
|
10787
|
+
style: "underline"
|
|
10788
|
+
},
|
|
10789
|
+
corners: "square",
|
|
10790
|
+
shadow: null,
|
|
10791
|
+
spacing: "compact",
|
|
10792
|
+
fontSize: "base"
|
|
10793
|
+
},
|
|
10794
|
+
label: {
|
|
10795
|
+
textColorToken: "primary",
|
|
10796
|
+
fontWeight: "black",
|
|
10797
|
+
fontSize: "xs",
|
|
10798
|
+
textTransform: "uppercase",
|
|
10799
|
+
letterSpacing: "widest",
|
|
10800
|
+
opacity: 1
|
|
10801
|
+
},
|
|
10802
|
+
focus: {
|
|
10803
|
+
ringColorToken: "secondary",
|
|
10804
|
+
ringWidth: "0",
|
|
10805
|
+
borderColorToken: "secondary"
|
|
10806
|
+
},
|
|
10807
|
+
error: {
|
|
10808
|
+
borderColorToken: "destructive",
|
|
10809
|
+
textColorToken: "destructive"
|
|
10810
|
+
},
|
|
10811
|
+
disabled: {
|
|
10812
|
+
backgroundColorToken: "surface",
|
|
10813
|
+
textColorToken: "text",
|
|
10814
|
+
opacity: 0.6
|
|
10815
|
+
}
|
|
10816
|
+
};
|
|
10509
10817
|
function uniqueContentFrameKinds() {
|
|
10510
10818
|
const kinds = [...new Set(
|
|
10511
10819
|
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
@@ -10856,15 +11164,17 @@ var curatedSiteStyles = [
|
|
|
10856
11164
|
paragraphSize: "editorial",
|
|
10857
11165
|
headingSize: "editorial"
|
|
10858
11166
|
}
|
|
10859
|
-
}
|
|
11167
|
+
},
|
|
11168
|
+
inputs: expressiveUnderlineInputs
|
|
10860
11169
|
},
|
|
10861
11170
|
recommendedAppearancePresetIds: [
|
|
10862
11171
|
"site-header-brand-solid-inverted-cta",
|
|
10863
11172
|
"site-footer-brand-two-band",
|
|
10864
11173
|
"hero-brand-scrim-fixed-frame",
|
|
10865
11174
|
"body-text-editorial-intro",
|
|
11175
|
+
"schedule-details-brand-depth",
|
|
10866
11176
|
"testimonials-accent-quote-proof",
|
|
10867
|
-
"contact-form-
|
|
11177
|
+
"contact-form-brand-depth-card"
|
|
10868
11178
|
],
|
|
10869
11179
|
buttonPersonalityChoices: [
|
|
10870
11180
|
buttonChoice("showtime-pill"),
|
|
@@ -10998,6 +11308,7 @@ var imageSurfaceTreatmentSchema = z24.discriminatedUnion("kind", [
|
|
|
10998
11308
|
}).strict()
|
|
10999
11309
|
]);
|
|
11000
11310
|
var testimonialCardTreatmentSchema = z24.enum(["default", "accent-quote"]);
|
|
11311
|
+
var tileTreatmentSchema = z24.enum(tileTreatmentValues);
|
|
11001
11312
|
var eyebrowTreatmentSchema = z24.enum(eyebrowTreatmentValues);
|
|
11002
11313
|
function uniqueNonEmpty(values) {
|
|
11003
11314
|
const uniqueValues = [...new Set(values)];
|
|
@@ -11042,6 +11353,7 @@ var blockDesignPlanSchema = z24.object({
|
|
|
11042
11353
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
11043
11354
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
11044
11355
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
11356
|
+
tileTreatment: tileTreatmentSchema.optional(),
|
|
11045
11357
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
11046
11358
|
}).strict();
|
|
11047
11359
|
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
@@ -11105,6 +11417,14 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
11105
11417
|
headingColor: "primaryForeground"
|
|
11106
11418
|
}
|
|
11107
11419
|
},
|
|
11420
|
+
"brand-depth-band": {
|
|
11421
|
+
background: {
|
|
11422
|
+
type: "color",
|
|
11423
|
+
color: "primary-800",
|
|
11424
|
+
textColor: "primaryForeground",
|
|
11425
|
+
headingColor: "primaryForeground"
|
|
11426
|
+
}
|
|
11427
|
+
},
|
|
11108
11428
|
"hero-image": {
|
|
11109
11429
|
background: {
|
|
11110
11430
|
type: "image",
|
|
@@ -12994,6 +13314,21 @@ function createTransformRegistry(definitions) {
|
|
|
12994
13314
|
}
|
|
12995
13315
|
|
|
12996
13316
|
// ../blocks/src/system/transforms/registry/_utils/colorResolution.ts
|
|
13317
|
+
var CSS_COLOR_FUNCTION_PATTERN = /^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\(/i;
|
|
13318
|
+
var CSS_HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
13319
|
+
var THEME_COLOR_TOKEN_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:\/(?:100|[1-9]?\d|0))?$/;
|
|
13320
|
+
var CSS_COLOR_KEYWORDS = /* @__PURE__ */ new Set([
|
|
13321
|
+
"transparent",
|
|
13322
|
+
"currentColor",
|
|
13323
|
+
"inherit",
|
|
13324
|
+
"initial",
|
|
13325
|
+
"revert",
|
|
13326
|
+
"revert-layer",
|
|
13327
|
+
"unset"
|
|
13328
|
+
]);
|
|
13329
|
+
function isLiteralCssColorValue(value) {
|
|
13330
|
+
return CSS_HEX_COLOR_PATTERN.test(value) || CSS_COLOR_FUNCTION_PATTERN.test(value) || value.startsWith("var(") || CSS_COLOR_KEYWORDS.has(value);
|
|
13331
|
+
}
|
|
12997
13332
|
function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
12998
13333
|
const trimmed = tokenOrCssValue.trim();
|
|
12999
13334
|
if (!trimmed) return "";
|
|
@@ -13010,8 +13345,11 @@ function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
|
13010
13345
|
return rgbColorValue(trimmed);
|
|
13011
13346
|
}
|
|
13012
13347
|
}
|
|
13013
|
-
if (trimmed
|
|
13014
|
-
return
|
|
13348
|
+
if (isLiteralCssColorValue(trimmed)) {
|
|
13349
|
+
return trimmed;
|
|
13350
|
+
}
|
|
13351
|
+
if (THEME_COLOR_TOKEN_PATTERN.test(trimmed)) {
|
|
13352
|
+
return rgbColorValue(trimmed);
|
|
13015
13353
|
}
|
|
13016
13354
|
return trimmed;
|
|
13017
13355
|
}
|
|
@@ -13267,6 +13605,15 @@ function hasFixedFrameBackgroundMotion(value) {
|
|
|
13267
13605
|
const background = asPartialObject(input?.background);
|
|
13268
13606
|
return background?.motion === "fixed-frame";
|
|
13269
13607
|
}
|
|
13608
|
+
var tileTreatmentClassMap = {
|
|
13609
|
+
default: "",
|
|
13610
|
+
quiet: "rb-tile-treatment-quiet",
|
|
13611
|
+
"brand-depth": "rb-tile-treatment-brand-depth"
|
|
13612
|
+
};
|
|
13613
|
+
var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
13614
|
+
function isTileTreatment(value) {
|
|
13615
|
+
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
13616
|
+
}
|
|
13270
13617
|
var sectionClassNameTransform = {
|
|
13271
13618
|
id: "sectionStyles.resolveClassName",
|
|
13272
13619
|
kind: "string",
|
|
@@ -13323,6 +13670,17 @@ var sectionClassNameTransform = {
|
|
|
13323
13670
|
classes.push(minHeightClass);
|
|
13324
13671
|
}
|
|
13325
13672
|
}
|
|
13673
|
+
const tileTreatment = input?.tileTreatment;
|
|
13674
|
+
if (isTileTreatment(tileTreatment)) {
|
|
13675
|
+
const tileTreatmentClass = tileTreatmentClassMap[tileTreatment];
|
|
13676
|
+
if (tileTreatmentClass) {
|
|
13677
|
+
classes.push(tileTreatmentClass);
|
|
13678
|
+
}
|
|
13679
|
+
} else if (typeof tileTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
13680
|
+
console.warn(
|
|
13681
|
+
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
13682
|
+
);
|
|
13683
|
+
}
|
|
13326
13684
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
13327
13685
|
classes.push(fixedFrameScopeClass);
|
|
13328
13686
|
}
|
|
@@ -16197,6 +16555,9 @@ function createBlockManifest(config) {
|
|
|
16197
16555
|
};
|
|
16198
16556
|
return augmentManifest(manifest);
|
|
16199
16557
|
}
|
|
16558
|
+
function createBlockManifestWithContentShape(config, _contentShape) {
|
|
16559
|
+
return createBlockManifest(config);
|
|
16560
|
+
}
|
|
16200
16561
|
function normalizeBlockLayout(layout) {
|
|
16201
16562
|
return Array.isArray(layout) ? [...layout] : layout;
|
|
16202
16563
|
}
|
|
@@ -16829,7 +17190,7 @@ var ctaComposition = composeFragments([
|
|
|
16829
17190
|
{ fragment: ctaCopyFragment },
|
|
16830
17191
|
{ fragment: ctaRowFragment }
|
|
16831
17192
|
]);
|
|
16832
|
-
var
|
|
17193
|
+
var ctaFullConfig = {
|
|
16833
17194
|
id: "block.cta-full",
|
|
16834
17195
|
title: "Full-width CTA",
|
|
16835
17196
|
category: "marketing",
|
|
@@ -16847,7 +17208,8 @@ var ctaFullManifest = createBlockManifest({
|
|
|
16847
17208
|
description: "Centered call to action with optional background image.",
|
|
16848
17209
|
tags: ["cta", "call-to-action", "button", "conversion", "action", "sign-up", "get-started"],
|
|
16849
17210
|
icon: "Target"
|
|
16850
|
-
}
|
|
17211
|
+
};
|
|
17212
|
+
var ctaFullManifest = createBlockManifest(ctaFullConfig);
|
|
16851
17213
|
var ctaFullBlockDefinition = {
|
|
16852
17214
|
manifest: ctaFullManifest
|
|
16853
17215
|
};
|
|
@@ -19931,9 +20293,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
19931
20293
|
{
|
|
19932
20294
|
id: "images",
|
|
19933
20295
|
type: "repeater",
|
|
19934
|
-
label: "
|
|
20296
|
+
label: "Media",
|
|
19935
20297
|
required: false,
|
|
19936
|
-
itemLabel: "
|
|
20298
|
+
itemLabel: "Media",
|
|
19937
20299
|
minItems: 0,
|
|
19938
20300
|
maxItems: 6,
|
|
19939
20301
|
allowConversion: true,
|
|
@@ -19947,9 +20309,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
19947
20309
|
{
|
|
19948
20310
|
id: "image",
|
|
19949
20311
|
type: "media",
|
|
19950
|
-
label: "
|
|
20312
|
+
label: "Media",
|
|
19951
20313
|
required: true,
|
|
19952
|
-
mediaKinds: ["image"]
|
|
20314
|
+
mediaKinds: ["image", "video"]
|
|
19953
20315
|
}
|
|
19954
20316
|
]
|
|
19955
20317
|
}
|
|
@@ -20027,8 +20389,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20027
20389
|
{
|
|
20028
20390
|
id: "aspectRatio",
|
|
20029
20391
|
type: "select",
|
|
20030
|
-
label: "
|
|
20031
|
-
description: "Crop
|
|
20392
|
+
label: "Media aspect ratio",
|
|
20393
|
+
description: "Crop media to a consistent aspect ratio.",
|
|
20032
20394
|
required: false,
|
|
20033
20395
|
defaultValue: "auto",
|
|
20034
20396
|
multiple: false,
|
|
@@ -20215,8 +20577,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20215
20577
|
}
|
|
20216
20578
|
};
|
|
20217
20579
|
})(),
|
|
20218
|
-
description: "Two columns:
|
|
20219
|
-
tags: ["media", "image", "carousel", "text", "two-column", "layout"],
|
|
20580
|
+
description: "Two columns: media/carousel + rich text (with optional section title).",
|
|
20581
|
+
tags: ["media", "image", "video", "carousel", "text", "two-column", "layout"],
|
|
20220
20582
|
icon: "Columns"
|
|
20221
20583
|
});
|
|
20222
20584
|
var mediaTextBlockDefinition = {
|
|
@@ -20367,6 +20729,19 @@ var transformSchema2 = z39.object({
|
|
|
20367
20729
|
hotspot: hotspotSchema2.optional(),
|
|
20368
20730
|
rotation: rotationSchema2.optional()
|
|
20369
20731
|
});
|
|
20732
|
+
var mediaPosterSchema = z39.discriminatedUnion("tag", [
|
|
20733
|
+
z39.object({
|
|
20734
|
+
tag: z39.literal("storage"),
|
|
20735
|
+
assetId: z39.string().optional(),
|
|
20736
|
+
storageBucket: z39.string().min(1),
|
|
20737
|
+
storagePath: z39.string().min(1)
|
|
20738
|
+
}),
|
|
20739
|
+
z39.object({
|
|
20740
|
+
tag: z39.literal("external-src"),
|
|
20741
|
+
assetId: z39.string().optional(),
|
|
20742
|
+
src: z39.string().url()
|
|
20743
|
+
})
|
|
20744
|
+
]);
|
|
20370
20745
|
var mediaBaseSchema = z39.object({
|
|
20371
20746
|
purpose: z39.string().optional(),
|
|
20372
20747
|
placeholder: z39.boolean().default(true).optional(),
|
|
@@ -20380,6 +20755,7 @@ var mediaBaseSchema = z39.object({
|
|
|
20380
20755
|
height: z39.number().optional(),
|
|
20381
20756
|
storageBucket: z39.string().optional(),
|
|
20382
20757
|
storagePath: z39.string().optional(),
|
|
20758
|
+
poster: mediaPosterSchema.optional(),
|
|
20383
20759
|
transform: transformSchema2.optional()
|
|
20384
20760
|
});
|
|
20385
20761
|
var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
|
|
@@ -20863,10 +21239,28 @@ import { z as z45 } from "zod";
|
|
|
20863
21239
|
|
|
20864
21240
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
20865
21241
|
import { z as z44 } from "zod";
|
|
21242
|
+
|
|
21243
|
+
// ../blocks/src/system/constants/events.ts
|
|
21244
|
+
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
21245
|
+
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
21246
|
+
var eventCalendarListLayoutOptions = [
|
|
21247
|
+
{ id: "stack", label: "Stack" },
|
|
21248
|
+
{ id: "grid", label: "Grid" },
|
|
21249
|
+
{ id: "compact", label: "Compact" }
|
|
21250
|
+
];
|
|
21251
|
+
function isEventCalendarDisplayMode(value) {
|
|
21252
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
21253
|
+
}
|
|
21254
|
+
function isEventCalendarListLayout(value) {
|
|
21255
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
21256
|
+
}
|
|
21257
|
+
|
|
21258
|
+
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
20866
21259
|
var previewStageSchema = z44.enum(["preview", "published"]);
|
|
20867
21260
|
var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
|
|
20868
21261
|
var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
|
|
20869
|
-
var eventLayoutSchema = z44.enum(
|
|
21262
|
+
var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
|
|
21263
|
+
var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
|
|
20870
21264
|
var columnOptionSchema = z44.enum(["2", "3", "4"]);
|
|
20871
21265
|
var weekStartSchema = z44.enum(["sunday", "monday"]);
|
|
20872
21266
|
var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
|
|
@@ -22248,7 +22642,232 @@ var eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22248
22642
|
});
|
|
22249
22643
|
|
|
22250
22644
|
// ../blocks/src/system/blocks/events/event-listing.ts
|
|
22251
|
-
var
|
|
22645
|
+
var eventListingAdditionalFields = [
|
|
22646
|
+
...sectionHeaderFields("All Events"),
|
|
22647
|
+
...(() => {
|
|
22648
|
+
const columns = columnsField(["2", "3", "4"]);
|
|
22649
|
+
return [
|
|
22650
|
+
{
|
|
22651
|
+
...layoutField,
|
|
22652
|
+
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22653
|
+
},
|
|
22654
|
+
{
|
|
22655
|
+
...columns,
|
|
22656
|
+
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22657
|
+
}
|
|
22658
|
+
];
|
|
22659
|
+
})(),
|
|
22660
|
+
{
|
|
22661
|
+
id: "eventsPerPage",
|
|
22662
|
+
type: "select",
|
|
22663
|
+
label: "Events per page",
|
|
22664
|
+
description: "Number of events to load at a time",
|
|
22665
|
+
required: false,
|
|
22666
|
+
multiple: false,
|
|
22667
|
+
defaultValue: "12",
|
|
22668
|
+
options: [
|
|
22669
|
+
{ value: "3", label: "3 events" },
|
|
22670
|
+
{ value: "6", label: "6 events" },
|
|
22671
|
+
{ value: "12", label: "12 events" },
|
|
22672
|
+
{ value: "24", label: "24 events" }
|
|
22673
|
+
],
|
|
22674
|
+
ui: { intent: "display" }
|
|
22675
|
+
},
|
|
22676
|
+
{
|
|
22677
|
+
id: "paginationMode",
|
|
22678
|
+
type: "select",
|
|
22679
|
+
label: "More events",
|
|
22680
|
+
description: "How to access events beyond the initial list",
|
|
22681
|
+
required: false,
|
|
22682
|
+
multiple: false,
|
|
22683
|
+
defaultValue: "loadMore",
|
|
22684
|
+
options: [
|
|
22685
|
+
{ value: "loadMore", label: "Load more button" },
|
|
22686
|
+
{ value: "seeAllLink", label: "Link to another page" }
|
|
22687
|
+
],
|
|
22688
|
+
ui: { intent: "display" }
|
|
22689
|
+
},
|
|
22690
|
+
{
|
|
22691
|
+
id: "seeAllUrl",
|
|
22692
|
+
type: "link",
|
|
22693
|
+
label: "See all destination",
|
|
22694
|
+
required: false,
|
|
22695
|
+
ui: {
|
|
22696
|
+
intent: "display",
|
|
22697
|
+
visibleWhen: {
|
|
22698
|
+
field: "paginationMode",
|
|
22699
|
+
equals: "seeAllLink"
|
|
22700
|
+
}
|
|
22701
|
+
}
|
|
22702
|
+
},
|
|
22703
|
+
{
|
|
22704
|
+
id: "loadMoreText",
|
|
22705
|
+
type: "text",
|
|
22706
|
+
label: "Button text",
|
|
22707
|
+
description: "Text for the pagination button or link",
|
|
22708
|
+
required: false,
|
|
22709
|
+
multiline: false,
|
|
22710
|
+
defaultValue: "Load more events",
|
|
22711
|
+
maxLength: 40
|
|
22712
|
+
},
|
|
22713
|
+
...cardStylingFields.map((field) => ({
|
|
22714
|
+
...field,
|
|
22715
|
+
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22716
|
+
})),
|
|
22717
|
+
...eventDisplayFields.map((field) => ({
|
|
22718
|
+
...field,
|
|
22719
|
+
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22720
|
+
})),
|
|
22721
|
+
{
|
|
22722
|
+
id: "kind",
|
|
22723
|
+
type: "select",
|
|
22724
|
+
label: "Show",
|
|
22725
|
+
description: "Choose whether this list shows courses, events, or both",
|
|
22726
|
+
required: false,
|
|
22727
|
+
multiple: false,
|
|
22728
|
+
defaultValue: "all",
|
|
22729
|
+
options: [
|
|
22730
|
+
{ value: "all", label: "Courses and events" },
|
|
22731
|
+
{ value: "courses", label: "Courses only" },
|
|
22732
|
+
{ value: "events", label: "Events only" }
|
|
22733
|
+
],
|
|
22734
|
+
ui: { intent: "behavior" }
|
|
22735
|
+
},
|
|
22736
|
+
{
|
|
22737
|
+
id: "eventSurface",
|
|
22738
|
+
type: "select",
|
|
22739
|
+
label: "Event surface",
|
|
22740
|
+
description: "Choose a semantic event scope",
|
|
22741
|
+
required: false,
|
|
22742
|
+
multiple: false,
|
|
22743
|
+
defaultValue: "all",
|
|
22744
|
+
options: [
|
|
22745
|
+
{ value: "all", label: "All events" },
|
|
22746
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22747
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22748
|
+
{ value: "custom", label: "Custom" }
|
|
22749
|
+
],
|
|
22750
|
+
ui: { intent: "behavior" }
|
|
22751
|
+
},
|
|
22752
|
+
{
|
|
22753
|
+
id: "filterEventPresets",
|
|
22754
|
+
type: "select",
|
|
22755
|
+
label: "Pre-filter by event type",
|
|
22756
|
+
description: "Restrict this block to specific event types",
|
|
22757
|
+
required: false,
|
|
22758
|
+
multiple: true,
|
|
22759
|
+
defaultValue: [],
|
|
22760
|
+
options: [
|
|
22761
|
+
{ value: "class", label: "Classes" },
|
|
22762
|
+
{ value: "workshop", label: "Workshops" },
|
|
22763
|
+
{ value: "retreat", label: "Retreats" },
|
|
22764
|
+
{ value: "performance", label: "Performances" }
|
|
22765
|
+
],
|
|
22766
|
+
ui: {
|
|
22767
|
+
intent: "behavior",
|
|
22768
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22769
|
+
}
|
|
22770
|
+
},
|
|
22771
|
+
{
|
|
22772
|
+
id: "scheduleScope",
|
|
22773
|
+
type: "select",
|
|
22774
|
+
label: "Schedule cadence",
|
|
22775
|
+
description: "Restrict this block by recurrence",
|
|
22776
|
+
required: false,
|
|
22777
|
+
multiple: false,
|
|
22778
|
+
defaultValue: "any",
|
|
22779
|
+
options: [
|
|
22780
|
+
{ value: "any", label: "Any cadence" },
|
|
22781
|
+
{ value: "recurring", label: "Recurring only" },
|
|
22782
|
+
{ value: "oneOff", label: "One-off only" }
|
|
22783
|
+
],
|
|
22784
|
+
ui: {
|
|
22785
|
+
intent: "behavior",
|
|
22786
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22787
|
+
}
|
|
22788
|
+
},
|
|
22789
|
+
{
|
|
22790
|
+
...emptyStateField,
|
|
22791
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22792
|
+
},
|
|
22793
|
+
sectionStylesField({
|
|
22794
|
+
id: "_sectionStyles",
|
|
22795
|
+
label: "Section styles",
|
|
22796
|
+
renderInHeader: false
|
|
22797
|
+
})
|
|
22798
|
+
];
|
|
22799
|
+
var eventListingLayout = [
|
|
22800
|
+
styledSection({
|
|
22801
|
+
children: sectionContainer([
|
|
22802
|
+
// Optional heading
|
|
22803
|
+
text(
|
|
22804
|
+
{ as: "h2" },
|
|
22805
|
+
bind("content.heading"),
|
|
22806
|
+
when("content.heading")
|
|
22807
|
+
),
|
|
22808
|
+
// Optional description
|
|
22809
|
+
richText(
|
|
22810
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
22811
|
+
bind("content.description"),
|
|
22812
|
+
when("content.description")
|
|
22813
|
+
),
|
|
22814
|
+
// Event listing component with pagination
|
|
22815
|
+
el("event-listing", withApiBindings({
|
|
22816
|
+
events: { $bind: { from: "data.events" } },
|
|
22817
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22818
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22819
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22820
|
+
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22821
|
+
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22822
|
+
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22823
|
+
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
22824
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22825
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22826
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22827
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22828
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
22829
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22830
|
+
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
22831
|
+
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
22832
|
+
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
22833
|
+
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
22834
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22835
|
+
}))
|
|
22836
|
+
], {
|
|
22837
|
+
gap: "lg"
|
|
22838
|
+
}),
|
|
22839
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
22840
|
+
baseClass: "",
|
|
22841
|
+
spacing: "comfortable"
|
|
22842
|
+
})
|
|
22843
|
+
];
|
|
22844
|
+
var eventListingDerivedFields = [
|
|
22845
|
+
{
|
|
22846
|
+
id: "layout",
|
|
22847
|
+
type: "select",
|
|
22848
|
+
required: false,
|
|
22849
|
+
multiple: false,
|
|
22850
|
+
options: [
|
|
22851
|
+
{ value: "grid" },
|
|
22852
|
+
{ value: "stack" }
|
|
22853
|
+
]
|
|
22854
|
+
},
|
|
22855
|
+
{
|
|
22856
|
+
id: "paginationMode",
|
|
22857
|
+
type: "select",
|
|
22858
|
+
required: false,
|
|
22859
|
+
multiple: false,
|
|
22860
|
+
options: [
|
|
22861
|
+
{ value: "loadMore" },
|
|
22862
|
+
{ value: "seeAllLink" }
|
|
22863
|
+
]
|
|
22864
|
+
}
|
|
22865
|
+
];
|
|
22866
|
+
var eventListingContentShape = {
|
|
22867
|
+
additionalFields: eventListingDerivedFields,
|
|
22868
|
+
skipSectionStyles: true
|
|
22869
|
+
};
|
|
22870
|
+
var eventListingConfig = {
|
|
22252
22871
|
id: "block.event-listing",
|
|
22253
22872
|
version: "1.1.0",
|
|
22254
22873
|
title: "Event Listing",
|
|
@@ -22256,211 +22875,18 @@ var eventListingManifest = createBlockManifest({
|
|
|
22256
22875
|
description: "Paginated list of all upcoming events",
|
|
22257
22876
|
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
22258
22877
|
skipSectionStyles: true,
|
|
22259
|
-
additionalFields:
|
|
22260
|
-
...sectionHeaderFields("All Events"),
|
|
22261
|
-
...(() => {
|
|
22262
|
-
const columns = columnsField(["2", "3", "4"]);
|
|
22263
|
-
return [
|
|
22264
|
-
{
|
|
22265
|
-
...layoutField,
|
|
22266
|
-
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22267
|
-
},
|
|
22268
|
-
{
|
|
22269
|
-
...columns,
|
|
22270
|
-
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22271
|
-
}
|
|
22272
|
-
];
|
|
22273
|
-
})(),
|
|
22274
|
-
{
|
|
22275
|
-
id: "eventsPerPage",
|
|
22276
|
-
type: "select",
|
|
22277
|
-
label: "Events per page",
|
|
22278
|
-
description: "Number of events to load at a time",
|
|
22279
|
-
required: false,
|
|
22280
|
-
multiple: false,
|
|
22281
|
-
defaultValue: "12",
|
|
22282
|
-
options: [
|
|
22283
|
-
{ value: "3", label: "3 events" },
|
|
22284
|
-
{ value: "6", label: "6 events" },
|
|
22285
|
-
{ value: "12", label: "12 events" },
|
|
22286
|
-
{ value: "24", label: "24 events" }
|
|
22287
|
-
],
|
|
22288
|
-
ui: { intent: "display" }
|
|
22289
|
-
},
|
|
22290
|
-
{
|
|
22291
|
-
id: "paginationMode",
|
|
22292
|
-
type: "select",
|
|
22293
|
-
label: "More events",
|
|
22294
|
-
description: "How to access events beyond the initial list",
|
|
22295
|
-
required: false,
|
|
22296
|
-
multiple: false,
|
|
22297
|
-
defaultValue: "loadMore",
|
|
22298
|
-
options: [
|
|
22299
|
-
{ value: "loadMore", label: "Load more button" },
|
|
22300
|
-
{ value: "seeAllLink", label: "Link to another page" }
|
|
22301
|
-
],
|
|
22302
|
-
ui: { intent: "display" }
|
|
22303
|
-
},
|
|
22304
|
-
{
|
|
22305
|
-
id: "seeAllUrl",
|
|
22306
|
-
type: "link",
|
|
22307
|
-
label: "See all destination",
|
|
22308
|
-
required: false,
|
|
22309
|
-
ui: {
|
|
22310
|
-
intent: "display",
|
|
22311
|
-
visibleWhen: {
|
|
22312
|
-
field: "paginationMode",
|
|
22313
|
-
equals: "seeAllLink"
|
|
22314
|
-
}
|
|
22315
|
-
}
|
|
22316
|
-
},
|
|
22317
|
-
{
|
|
22318
|
-
id: "loadMoreText",
|
|
22319
|
-
type: "text",
|
|
22320
|
-
label: "Button text",
|
|
22321
|
-
description: "Text for the pagination button or link",
|
|
22322
|
-
required: false,
|
|
22323
|
-
multiline: false,
|
|
22324
|
-
defaultValue: "Load more events",
|
|
22325
|
-
maxLength: 40
|
|
22326
|
-
},
|
|
22327
|
-
...cardStylingFields.map((field) => ({
|
|
22328
|
-
...field,
|
|
22329
|
-
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22330
|
-
})),
|
|
22331
|
-
...eventDisplayFields.map((field) => ({
|
|
22332
|
-
...field,
|
|
22333
|
-
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22334
|
-
})),
|
|
22335
|
-
{
|
|
22336
|
-
id: "kind",
|
|
22337
|
-
type: "select",
|
|
22338
|
-
label: "Show",
|
|
22339
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
22340
|
-
required: false,
|
|
22341
|
-
multiple: false,
|
|
22342
|
-
defaultValue: "all",
|
|
22343
|
-
options: [
|
|
22344
|
-
{ value: "all", label: "Courses and events" },
|
|
22345
|
-
{ value: "courses", label: "Courses only" },
|
|
22346
|
-
{ value: "events", label: "Events only" }
|
|
22347
|
-
],
|
|
22348
|
-
ui: { intent: "behavior" }
|
|
22349
|
-
},
|
|
22350
|
-
{
|
|
22351
|
-
id: "eventSurface",
|
|
22352
|
-
type: "select",
|
|
22353
|
-
label: "Event surface",
|
|
22354
|
-
description: "Choose a semantic event scope",
|
|
22355
|
-
required: false,
|
|
22356
|
-
multiple: false,
|
|
22357
|
-
defaultValue: "all",
|
|
22358
|
-
options: [
|
|
22359
|
-
{ value: "all", label: "All events" },
|
|
22360
|
-
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22361
|
-
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22362
|
-
{ value: "custom", label: "Custom" }
|
|
22363
|
-
],
|
|
22364
|
-
ui: { intent: "behavior" }
|
|
22365
|
-
},
|
|
22366
|
-
{
|
|
22367
|
-
id: "filterEventPresets",
|
|
22368
|
-
type: "select",
|
|
22369
|
-
label: "Pre-filter by event type",
|
|
22370
|
-
description: "Restrict this block to specific event types",
|
|
22371
|
-
required: false,
|
|
22372
|
-
multiple: true,
|
|
22373
|
-
defaultValue: [],
|
|
22374
|
-
options: [
|
|
22375
|
-
{ value: "class", label: "Classes" },
|
|
22376
|
-
{ value: "workshop", label: "Workshops" },
|
|
22377
|
-
{ value: "retreat", label: "Retreats" },
|
|
22378
|
-
{ value: "performance", label: "Performances" }
|
|
22379
|
-
],
|
|
22380
|
-
ui: {
|
|
22381
|
-
intent: "behavior",
|
|
22382
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22383
|
-
}
|
|
22384
|
-
},
|
|
22385
|
-
{
|
|
22386
|
-
id: "scheduleScope",
|
|
22387
|
-
type: "select",
|
|
22388
|
-
label: "Schedule cadence",
|
|
22389
|
-
description: "Restrict this block by recurrence",
|
|
22390
|
-
required: false,
|
|
22391
|
-
multiple: false,
|
|
22392
|
-
defaultValue: "any",
|
|
22393
|
-
options: [
|
|
22394
|
-
{ value: "any", label: "Any cadence" },
|
|
22395
|
-
{ value: "recurring", label: "Recurring only" },
|
|
22396
|
-
{ value: "oneOff", label: "One-off only" }
|
|
22397
|
-
],
|
|
22398
|
-
ui: {
|
|
22399
|
-
intent: "behavior",
|
|
22400
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22401
|
-
}
|
|
22402
|
-
},
|
|
22403
|
-
{
|
|
22404
|
-
...emptyStateField,
|
|
22405
|
-
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22406
|
-
},
|
|
22407
|
-
sectionStylesField({
|
|
22408
|
-
id: "_sectionStyles",
|
|
22409
|
-
label: "Section styles",
|
|
22410
|
-
renderInHeader: false
|
|
22411
|
-
})
|
|
22412
|
-
],
|
|
22878
|
+
additionalFields: eventListingAdditionalFields,
|
|
22413
22879
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
22414
22880
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: true },
|
|
22415
22881
|
category: "interactive",
|
|
22416
22882
|
tags: ["events", "listing", "paginated", "archive", "all-events"],
|
|
22417
22883
|
icon: "List",
|
|
22418
|
-
layout:
|
|
22419
|
-
|
|
22420
|
-
|
|
22421
|
-
|
|
22422
|
-
|
|
22423
|
-
|
|
22424
|
-
bind("content.heading"),
|
|
22425
|
-
when("content.heading")
|
|
22426
|
-
),
|
|
22427
|
-
// Optional description
|
|
22428
|
-
richText(
|
|
22429
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
22430
|
-
bind("content.description"),
|
|
22431
|
-
when("content.description")
|
|
22432
|
-
),
|
|
22433
|
-
// Event listing component with pagination
|
|
22434
|
-
el("event-listing", withApiBindings({
|
|
22435
|
-
events: { $bind: { from: "data.events" } },
|
|
22436
|
-
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22437
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22438
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22439
|
-
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22440
|
-
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22441
|
-
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22442
|
-
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
22443
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22444
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22445
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22446
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22447
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
22448
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22449
|
-
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
22450
|
-
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
22451
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
22452
|
-
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
22453
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22454
|
-
}))
|
|
22455
|
-
], {
|
|
22456
|
-
gap: "lg"
|
|
22457
|
-
}),
|
|
22458
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
22459
|
-
baseClass: "",
|
|
22460
|
-
spacing: "comfortable"
|
|
22461
|
-
})
|
|
22462
|
-
]
|
|
22463
|
-
});
|
|
22884
|
+
layout: eventListingLayout
|
|
22885
|
+
};
|
|
22886
|
+
var eventListingManifest = createBlockManifestWithContentShape(
|
|
22887
|
+
eventListingConfig,
|
|
22888
|
+
eventListingContentShape
|
|
22889
|
+
);
|
|
22464
22890
|
var eventListingBlockDefinition = {
|
|
22465
22891
|
manifest: eventListingManifest,
|
|
22466
22892
|
runtime: eventListingBlockRuntime,
|
|
@@ -22487,7 +22913,6 @@ var eventListingBlockDefinition = {
|
|
|
22487
22913
|
|
|
22488
22914
|
// ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
22489
22915
|
import { z as z51 } from "zod";
|
|
22490
|
-
var displayModeSchema = z51.enum(["combined", "month", "week", "list", "timetable"]);
|
|
22491
22916
|
var eventBlockKindSchema2 = z51.enum(eventBlockKindValues);
|
|
22492
22917
|
var eventSurfaceScopeSchema2 = z51.enum(eventSurfaceScopeValues);
|
|
22493
22918
|
var eventScheduleScopeSchema3 = z51.enum(eventScheduleScopeValues);
|
|
@@ -22497,7 +22922,8 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22497
22922
|
siteId: z51.string(),
|
|
22498
22923
|
apiBaseUrl: z51.string().optional(),
|
|
22499
22924
|
stage: previewStageSchema.optional(),
|
|
22500
|
-
|
|
22925
|
+
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
22926
|
+
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
22501
22927
|
listLayout: eventLayoutSchema.optional(),
|
|
22502
22928
|
listColumns: columnOptionSchema.optional(),
|
|
22503
22929
|
layout: eventLayoutSchema.optional(),
|
|
@@ -22529,7 +22955,7 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22529
22955
|
);
|
|
22530
22956
|
var eventCalendarDisplaySchema = z51.object({
|
|
22531
22957
|
kind: z51.literal("event-calendar"),
|
|
22532
|
-
displayMode:
|
|
22958
|
+
displayMode: eventCalendarDisplayModeSchema,
|
|
22533
22959
|
className: z51.string().nullable(),
|
|
22534
22960
|
events: z51.array(publicEventSchema),
|
|
22535
22961
|
listLayout: eventLayoutSchema,
|
|
@@ -22584,7 +23010,7 @@ var eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
22584
23010
|
function buildEventCalendarDisplay(source) {
|
|
22585
23011
|
return {
|
|
22586
23012
|
kind: "event-calendar",
|
|
22587
|
-
displayMode: source.displayMode ?? "combined",
|
|
23013
|
+
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
22588
23014
|
className: source.className ?? null,
|
|
22589
23015
|
events: (source.events ?? []).slice().sort(
|
|
22590
23016
|
(left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()
|
|
@@ -22651,8 +23077,12 @@ var eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22651
23077
|
function normalizeEventCalendarContent(content) {
|
|
22652
23078
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
22653
23079
|
const kind = normalizeEventBlockKind(record.kind);
|
|
23080
|
+
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
22654
23081
|
return {
|
|
22655
23082
|
...record,
|
|
23083
|
+
...variant ? { variant } : {},
|
|
23084
|
+
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
23085
|
+
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
22656
23086
|
kind,
|
|
22657
23087
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
22658
23088
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
@@ -22664,355 +23094,515 @@ function normalizeEventCalendarContent(content) {
|
|
|
22664
23094
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
22665
23095
|
};
|
|
22666
23096
|
}
|
|
22667
|
-
|
|
22668
|
-
|
|
22669
|
-
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
|
|
22673
|
-
|
|
22674
|
-
|
|
22675
|
-
|
|
22676
|
-
|
|
22677
|
-
|
|
22678
|
-
|
|
22679
|
-
|
|
22680
|
-
|
|
22681
|
-
|
|
22682
|
-
|
|
22683
|
-
|
|
22684
|
-
|
|
22685
|
-
|
|
22686
|
-
|
|
22687
|
-
|
|
22688
|
-
|
|
22689
|
-
|
|
22690
|
-
|
|
22691
|
-
|
|
22692
|
-
|
|
22693
|
-
|
|
22694
|
-
|
|
22695
|
-
|
|
22696
|
-
|
|
22697
|
-
|
|
22698
|
-
|
|
22699
|
-
|
|
22700
|
-
|
|
22701
|
-
|
|
22702
|
-
|
|
22703
|
-
|
|
22704
|
-
|
|
22705
|
-
|
|
22706
|
-
|
|
22707
|
-
|
|
22708
|
-
|
|
22709
|
-
|
|
22710
|
-
|
|
22711
|
-
|
|
22712
|
-
|
|
22713
|
-
|
|
22714
|
-
|
|
22715
|
-
|
|
22716
|
-
|
|
22717
|
-
|
|
22718
|
-
|
|
22719
|
-
|
|
22720
|
-
|
|
22721
|
-
|
|
22722
|
-
|
|
22723
|
-
|
|
22724
|
-
|
|
22725
|
-
|
|
22726
|
-
|
|
22727
|
-
|
|
22728
|
-
|
|
22729
|
-
|
|
22730
|
-
|
|
22731
|
-
|
|
22732
|
-
|
|
22733
|
-
|
|
22734
|
-
|
|
22735
|
-
|
|
22736
|
-
|
|
22737
|
-
|
|
22738
|
-
|
|
22739
|
-
|
|
22740
|
-
|
|
22741
|
-
|
|
22742
|
-
|
|
22743
|
-
|
|
22744
|
-
|
|
22745
|
-
|
|
22746
|
-
|
|
22747
|
-
|
|
22748
|
-
|
|
22749
|
-
|
|
22750
|
-
|
|
22751
|
-
|
|
22752
|
-
|
|
22753
|
-
|
|
22754
|
-
|
|
22755
|
-
|
|
22756
|
-
|
|
22757
|
-
|
|
22758
|
-
|
|
22759
|
-
|
|
22760
|
-
|
|
22761
|
-
|
|
22762
|
-
|
|
22763
|
-
|
|
22764
|
-
|
|
22765
|
-
|
|
22766
|
-
|
|
22767
|
-
|
|
22768
|
-
|
|
22769
|
-
id: "loadMoreText",
|
|
22770
|
-
type: "text",
|
|
22771
|
-
label: "Load more button text",
|
|
22772
|
-
description: "Text for the load more button",
|
|
22773
|
-
required: false,
|
|
22774
|
-
multiline: false,
|
|
22775
|
-
defaultValue: "Load more events",
|
|
22776
|
-
ui: {
|
|
22777
|
-
intent: "content",
|
|
22778
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list"] }
|
|
22779
|
-
}
|
|
22780
|
-
},
|
|
22781
|
-
// Calendar options
|
|
22782
|
-
{
|
|
22783
|
-
id: "startOfWeek",
|
|
22784
|
-
type: "select",
|
|
22785
|
-
label: "Week starts on",
|
|
22786
|
-
description: "First day of the week",
|
|
22787
|
-
required: false,
|
|
22788
|
-
multiple: false,
|
|
22789
|
-
defaultValue: "monday",
|
|
22790
|
-
options: [
|
|
22791
|
-
{ value: "sunday", label: "Sunday" },
|
|
22792
|
-
{ value: "monday", label: "Monday" }
|
|
22793
|
-
],
|
|
22794
|
-
ui: {
|
|
22795
|
-
intent: "display",
|
|
22796
|
-
visibleWhen: {
|
|
22797
|
-
field: "displayMode",
|
|
22798
|
-
oneOf: ["combined", "month", "week"]
|
|
22799
|
-
}
|
|
22800
|
-
}
|
|
22801
|
-
},
|
|
22802
|
-
// Combined mode options
|
|
22803
|
-
{
|
|
22804
|
-
id: "calendarTabViews",
|
|
22805
|
-
type: "select",
|
|
22806
|
-
label: "Calendar tab views",
|
|
22807
|
-
description: "Which calendar views to show in the Calendar tab",
|
|
22808
|
-
required: false,
|
|
22809
|
-
multiple: false,
|
|
22810
|
-
defaultValue: "both",
|
|
22811
|
-
options: [
|
|
22812
|
-
{ value: "both", label: "Month + Week toggle" },
|
|
22813
|
-
{ value: "month", label: "Month only" },
|
|
22814
|
-
{ value: "week", label: "Week only" }
|
|
22815
|
-
],
|
|
22816
|
-
ui: {
|
|
22817
|
-
intent: "display",
|
|
22818
|
-
visibleWhen: { field: "displayMode", equals: "combined" }
|
|
22819
|
-
}
|
|
22820
|
-
},
|
|
22821
|
-
// Filtering options
|
|
22822
|
-
{
|
|
22823
|
-
id: "kind",
|
|
22824
|
-
type: "select",
|
|
22825
|
-
label: "Show",
|
|
22826
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
22827
|
-
required: false,
|
|
22828
|
-
multiple: false,
|
|
22829
|
-
defaultValue: "all",
|
|
22830
|
-
options: [
|
|
22831
|
-
{ value: "all", label: "All offerings" },
|
|
22832
|
-
{ value: "courses", label: "Courses only" },
|
|
22833
|
-
{ value: "events", label: "Events only" }
|
|
22834
|
-
],
|
|
22835
|
-
ui: { intent: "behavior" }
|
|
22836
|
-
},
|
|
22837
|
-
{
|
|
22838
|
-
id: "showFilters",
|
|
22839
|
-
type: "boolean",
|
|
22840
|
-
label: "Show filters",
|
|
22841
|
-
description: "Show category, staff, and venue filters",
|
|
22842
|
-
required: false,
|
|
22843
|
-
defaultValue: true,
|
|
22844
|
-
ui: {
|
|
22845
|
-
intent: "display",
|
|
22846
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22847
|
-
}
|
|
22848
|
-
},
|
|
22849
|
-
{
|
|
22850
|
-
id: "showCategoryFilter",
|
|
22851
|
-
type: "select",
|
|
22852
|
-
label: "Show category filter",
|
|
22853
|
-
description: "When to show the category filter dropdown",
|
|
22854
|
-
required: false,
|
|
22855
|
-
multiple: false,
|
|
22856
|
-
defaultValue: "auto",
|
|
22857
|
-
options: [
|
|
22858
|
-
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
22859
|
-
{ value: "always", label: "Always" },
|
|
22860
|
-
{ value: "never", label: "Never" }
|
|
23097
|
+
function normalizeEventCalendarDisplayMode(value) {
|
|
23098
|
+
return isEventCalendarDisplayMode(value) ? value : void 0;
|
|
23099
|
+
}
|
|
23100
|
+
function normalizeEventCalendarListLayout(value) {
|
|
23101
|
+
return isEventCalendarListLayout(value) ? value : void 0;
|
|
23102
|
+
}
|
|
23103
|
+
var eventCalendarLayout = [
|
|
23104
|
+
styledSection({
|
|
23105
|
+
children: sectionContainer(
|
|
23106
|
+
[
|
|
23107
|
+
// Optional heading
|
|
23108
|
+
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
23109
|
+
// Optional description
|
|
23110
|
+
richText(
|
|
23111
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
23112
|
+
bind("content.description"),
|
|
23113
|
+
when("content.description")
|
|
23114
|
+
),
|
|
23115
|
+
// Event calendar component (handles all display modes)
|
|
23116
|
+
el(
|
|
23117
|
+
"event-calendar",
|
|
23118
|
+
withApiBindings({
|
|
23119
|
+
events: { $bind: { from: "data.events" } },
|
|
23120
|
+
stage: {
|
|
23121
|
+
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23122
|
+
},
|
|
23123
|
+
// Variant is the new Theme V2-facing display mode. displayMode is
|
|
23124
|
+
// retained as a legacy fallback for existing content.
|
|
23125
|
+
variant: {
|
|
23126
|
+
$bind: { from: "content.variant" }
|
|
23127
|
+
},
|
|
23128
|
+
displayMode: {
|
|
23129
|
+
$bind: { from: "content.displayMode" }
|
|
23130
|
+
},
|
|
23131
|
+
// List options
|
|
23132
|
+
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23133
|
+
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23134
|
+
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23135
|
+
layout: { $bind: { from: "content.layout" } },
|
|
23136
|
+
columns: { $bind: { from: "content.columns" } },
|
|
23137
|
+
eventsPerPage: {
|
|
23138
|
+
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23139
|
+
},
|
|
23140
|
+
compactEventsPerPage: {
|
|
23141
|
+
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23142
|
+
},
|
|
23143
|
+
loadMoreText: {
|
|
23144
|
+
$bind: {
|
|
23145
|
+
from: "content.loadMoreText",
|
|
23146
|
+
fallback: "Load more events"
|
|
23147
|
+
}
|
|
23148
|
+
},
|
|
23149
|
+
// Calendar options
|
|
23150
|
+
startOfWeek: {
|
|
23151
|
+
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23152
|
+
},
|
|
23153
|
+
calendarTabViews: {
|
|
23154
|
+
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23155
|
+
},
|
|
23156
|
+
// Filtering options
|
|
23157
|
+
showFilters: {
|
|
23158
|
+
$bind: { from: "content.showFilters", fallback: true }
|
|
23159
|
+
},
|
|
23160
|
+
showCategoryFilter: {
|
|
23161
|
+
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23162
|
+
},
|
|
23163
|
+
showVenueFilter: {
|
|
23164
|
+
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23165
|
+
},
|
|
23166
|
+
showStaffFilter: {
|
|
23167
|
+
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23168
|
+
},
|
|
23169
|
+
showCapacity: {
|
|
23170
|
+
$bind: { from: "content.showCapacity", fallback: true }
|
|
23171
|
+
},
|
|
23172
|
+
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23173
|
+
eventSurface: {
|
|
23174
|
+
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23175
|
+
},
|
|
23176
|
+
filterEventPresets: {
|
|
23177
|
+
$bind: { from: "content.filterEventPresets" }
|
|
23178
|
+
},
|
|
23179
|
+
scheduleScope: {
|
|
23180
|
+
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23181
|
+
},
|
|
23182
|
+
filterCategoryIds: {
|
|
23183
|
+
$bind: { from: "content.filterCategoryIds" }
|
|
23184
|
+
},
|
|
23185
|
+
filterStaffMemberId: {
|
|
23186
|
+
$bind: { from: "content.filterStaffMemberId" }
|
|
23187
|
+
},
|
|
23188
|
+
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23189
|
+
// Styling
|
|
23190
|
+
buttonVariant: {
|
|
23191
|
+
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23192
|
+
},
|
|
23193
|
+
buttonText: {
|
|
23194
|
+
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23195
|
+
},
|
|
23196
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23197
|
+
})
|
|
23198
|
+
)
|
|
22861
23199
|
],
|
|
22862
|
-
|
|
22863
|
-
|
|
22864
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22865
|
-
}
|
|
22866
|
-
},
|
|
22867
|
-
{
|
|
22868
|
-
id: "showVenueFilter",
|
|
22869
|
-
type: "boolean",
|
|
22870
|
-
label: "Show venue filter",
|
|
22871
|
-
description: "Show venue filter dropdown",
|
|
22872
|
-
required: false,
|
|
22873
|
-
defaultValue: false,
|
|
22874
|
-
ui: {
|
|
22875
|
-
intent: "display",
|
|
22876
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22877
|
-
}
|
|
22878
|
-
},
|
|
22879
|
-
{
|
|
22880
|
-
id: "showStaffFilter",
|
|
22881
|
-
type: "boolean",
|
|
22882
|
-
label: "Show staff filter",
|
|
22883
|
-
description: "Show staff filter dropdown",
|
|
22884
|
-
required: false,
|
|
22885
|
-
defaultValue: true,
|
|
22886
|
-
ui: {
|
|
22887
|
-
intent: "display",
|
|
22888
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22889
|
-
}
|
|
22890
|
-
},
|
|
22891
|
-
{
|
|
22892
|
-
id: "showCapacity",
|
|
22893
|
-
type: "boolean",
|
|
22894
|
-
label: "Show available spots",
|
|
22895
|
-
description: "Display remaining capacity on event cards and timetable cells",
|
|
22896
|
-
required: false,
|
|
22897
|
-
defaultValue: true,
|
|
22898
|
-
ui: {
|
|
22899
|
-
intent: "display",
|
|
22900
|
-
visibleWhen: {
|
|
22901
|
-
field: "displayMode",
|
|
22902
|
-
oneOf: ["combined", "list", "week", "timetable"]
|
|
22903
|
-
}
|
|
23200
|
+
{
|
|
23201
|
+
gap: "lg"
|
|
22904
23202
|
}
|
|
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
|
-
|
|
23203
|
+
),
|
|
23204
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
23205
|
+
baseClass: "",
|
|
23206
|
+
spacing: "comfortable"
|
|
23207
|
+
})
|
|
23208
|
+
];
|
|
23209
|
+
var eventCalendarAdditionalFields = [
|
|
23210
|
+
...sectionHeaderFields("Event Calendar"),
|
|
23211
|
+
// Display Mode (replaces calendarView)
|
|
23212
|
+
{
|
|
23213
|
+
id: "displayMode",
|
|
23214
|
+
type: "select",
|
|
23215
|
+
label: "Display mode",
|
|
23216
|
+
description: "How events are displayed",
|
|
23217
|
+
required: false,
|
|
23218
|
+
multiple: false,
|
|
23219
|
+
defaultValue: "combined",
|
|
23220
|
+
options: [
|
|
23221
|
+
{ value: "combined", label: "Combined (List + Calendar tabs)" },
|
|
23222
|
+
{ value: "month", label: "Month calendar" },
|
|
23223
|
+
{ value: "week", label: "Week agenda" },
|
|
23224
|
+
{ value: "timetable", label: "Timetable" },
|
|
23225
|
+
{ value: "list", label: "List" }
|
|
23226
|
+
],
|
|
23227
|
+
ui: { intent: "display", hidden: true }
|
|
23228
|
+
},
|
|
23229
|
+
// List options (visible when displayMode is list or combined)
|
|
23230
|
+
{
|
|
23231
|
+
id: "listLayout",
|
|
23232
|
+
type: "select",
|
|
23233
|
+
label: "List layout",
|
|
23234
|
+
description: "Layout style for list view",
|
|
23235
|
+
required: false,
|
|
23236
|
+
multiple: false,
|
|
23237
|
+
defaultValue: "stack",
|
|
23238
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23239
|
+
value: option.id,
|
|
23240
|
+
label: option.label
|
|
23241
|
+
})),
|
|
23242
|
+
ui: {
|
|
23243
|
+
intent: "display",
|
|
23244
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23245
|
+
}
|
|
23246
|
+
},
|
|
23247
|
+
{
|
|
23248
|
+
id: "listColumns",
|
|
23249
|
+
type: "select",
|
|
23250
|
+
label: "Grid columns",
|
|
23251
|
+
description: "Number of columns in grid layout",
|
|
23252
|
+
required: false,
|
|
23253
|
+
multiple: false,
|
|
23254
|
+
defaultValue: "3",
|
|
23255
|
+
options: [
|
|
23256
|
+
{ value: "2", label: "2 columns" },
|
|
23257
|
+
{ value: "3", label: "3 columns" },
|
|
23258
|
+
{ value: "4", label: "4 columns" }
|
|
23259
|
+
],
|
|
23260
|
+
ui: {
|
|
23261
|
+
intent: "display",
|
|
23262
|
+
visibleWhen: { field: "listLayout", equals: "grid" }
|
|
23263
|
+
}
|
|
23264
|
+
},
|
|
23265
|
+
{
|
|
23266
|
+
id: "eventsPerPage",
|
|
23267
|
+
type: "select",
|
|
23268
|
+
label: "Events per page (cards)",
|
|
23269
|
+
description: "Number of events to load initially in card layouts",
|
|
23270
|
+
required: false,
|
|
23271
|
+
multiple: false,
|
|
23272
|
+
defaultValue: "12",
|
|
23273
|
+
options: [
|
|
23274
|
+
{ value: "6", label: "6" },
|
|
23275
|
+
{ value: "12", label: "12" },
|
|
23276
|
+
{ value: "24", label: "24" }
|
|
23277
|
+
],
|
|
23278
|
+
ui: {
|
|
23279
|
+
intent: "display",
|
|
23280
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23281
|
+
}
|
|
23282
|
+
},
|
|
23283
|
+
{
|
|
23284
|
+
id: "compactEventsPerPage",
|
|
23285
|
+
type: "select",
|
|
23286
|
+
label: "Events per page (compact)",
|
|
23287
|
+
description: "Number of events to show per page in compact layout",
|
|
23288
|
+
required: false,
|
|
23289
|
+
multiple: false,
|
|
23290
|
+
defaultValue: "10",
|
|
23291
|
+
options: [
|
|
23292
|
+
{ value: "10", label: "10" },
|
|
23293
|
+
{ value: "20", label: "20" },
|
|
23294
|
+
{ value: "30", label: "30" }
|
|
23295
|
+
],
|
|
23296
|
+
ui: {
|
|
23297
|
+
intent: "display",
|
|
23298
|
+
visibleWhen: { field: "listLayout", equals: "compact" }
|
|
23299
|
+
}
|
|
23300
|
+
},
|
|
23301
|
+
{
|
|
23302
|
+
id: "loadMoreText",
|
|
23303
|
+
type: "text",
|
|
23304
|
+
label: "Load more button text",
|
|
23305
|
+
description: "Text for the load more button",
|
|
23306
|
+
required: false,
|
|
23307
|
+
multiline: false,
|
|
23308
|
+
defaultValue: "Load more events",
|
|
23309
|
+
ui: {
|
|
23310
|
+
intent: "content",
|
|
23311
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23312
|
+
}
|
|
23313
|
+
},
|
|
23314
|
+
// Calendar options
|
|
23315
|
+
{
|
|
23316
|
+
id: "startOfWeek",
|
|
23317
|
+
type: "select",
|
|
23318
|
+
label: "Week starts on",
|
|
23319
|
+
description: "First day of the week",
|
|
23320
|
+
required: false,
|
|
23321
|
+
multiple: false,
|
|
23322
|
+
defaultValue: "monday",
|
|
23323
|
+
options: [
|
|
23324
|
+
{ value: "sunday", label: "Sunday" },
|
|
23325
|
+
{ value: "monday", label: "Monday" }
|
|
23326
|
+
],
|
|
23327
|
+
ui: {
|
|
23328
|
+
intent: "display",
|
|
23329
|
+
visibleWhen: {
|
|
23330
|
+
field: "variant",
|
|
23331
|
+
oneOf: ["combined", "month", "week"]
|
|
22940
23332
|
}
|
|
22941
|
-
}
|
|
22942
|
-
|
|
22943
|
-
|
|
22944
|
-
|
|
22945
|
-
|
|
22946
|
-
|
|
22947
|
-
|
|
22948
|
-
|
|
22949
|
-
|
|
22950
|
-
|
|
22951
|
-
|
|
22952
|
-
|
|
22953
|
-
|
|
22954
|
-
|
|
22955
|
-
|
|
22956
|
-
|
|
22957
|
-
|
|
23333
|
+
}
|
|
23334
|
+
},
|
|
23335
|
+
// Combined mode options
|
|
23336
|
+
{
|
|
23337
|
+
id: "calendarTabViews",
|
|
23338
|
+
type: "select",
|
|
23339
|
+
label: "Calendar tab views",
|
|
23340
|
+
description: "Which calendar views to show in the Calendar tab",
|
|
23341
|
+
required: false,
|
|
23342
|
+
multiple: false,
|
|
23343
|
+
defaultValue: "both",
|
|
23344
|
+
options: [
|
|
23345
|
+
{ value: "both", label: "Month + Week toggle" },
|
|
23346
|
+
{ value: "month", label: "Month only" },
|
|
23347
|
+
{ value: "week", label: "Week only" }
|
|
23348
|
+
],
|
|
23349
|
+
ui: {
|
|
23350
|
+
intent: "display",
|
|
23351
|
+
visibleWhen: { field: "variant", equals: "combined" }
|
|
23352
|
+
}
|
|
23353
|
+
},
|
|
23354
|
+
// Filtering options
|
|
23355
|
+
{
|
|
23356
|
+
id: "kind",
|
|
23357
|
+
type: "select",
|
|
23358
|
+
label: "Show",
|
|
23359
|
+
description: "Restrict this block to all offerings, courses, or events",
|
|
23360
|
+
required: false,
|
|
23361
|
+
multiple: false,
|
|
23362
|
+
defaultValue: "all",
|
|
23363
|
+
options: [
|
|
23364
|
+
{ value: "all", label: "All offerings" },
|
|
23365
|
+
{ value: "courses", label: "Courses only" },
|
|
23366
|
+
{ value: "events", label: "Events only" }
|
|
23367
|
+
],
|
|
23368
|
+
ui: { intent: "behavior" }
|
|
23369
|
+
},
|
|
23370
|
+
{
|
|
23371
|
+
id: "showFilters",
|
|
23372
|
+
type: "boolean",
|
|
23373
|
+
label: "Show filters",
|
|
23374
|
+
description: "Show category, staff, and venue filters",
|
|
23375
|
+
required: false,
|
|
23376
|
+
defaultValue: true,
|
|
23377
|
+
ui: {
|
|
23378
|
+
intent: "display",
|
|
23379
|
+
visibleWhen: {
|
|
23380
|
+
field: "variant",
|
|
23381
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22958
23382
|
}
|
|
22959
|
-
}
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
22965
|
-
|
|
22966
|
-
|
|
22967
|
-
|
|
22968
|
-
|
|
22969
|
-
|
|
22970
|
-
|
|
22971
|
-
|
|
23383
|
+
}
|
|
23384
|
+
},
|
|
23385
|
+
{
|
|
23386
|
+
id: "showCategoryFilter",
|
|
23387
|
+
type: "select",
|
|
23388
|
+
label: "Show category filter",
|
|
23389
|
+
description: "When to show the category filter dropdown",
|
|
23390
|
+
required: false,
|
|
23391
|
+
multiple: false,
|
|
23392
|
+
defaultValue: "auto",
|
|
23393
|
+
options: [
|
|
23394
|
+
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
23395
|
+
{ value: "always", label: "Always" },
|
|
23396
|
+
{ value: "never", label: "Never" }
|
|
23397
|
+
],
|
|
23398
|
+
ui: {
|
|
23399
|
+
intent: "display",
|
|
23400
|
+
visibleWhen: {
|
|
23401
|
+
field: "variant",
|
|
23402
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22972
23403
|
}
|
|
22973
|
-
}
|
|
22974
|
-
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
22979
|
-
|
|
22980
|
-
|
|
22981
|
-
|
|
22982
|
-
|
|
22983
|
-
|
|
23404
|
+
}
|
|
23405
|
+
},
|
|
23406
|
+
{
|
|
23407
|
+
id: "showVenueFilter",
|
|
23408
|
+
type: "boolean",
|
|
23409
|
+
label: "Show venue filter",
|
|
23410
|
+
description: "Show venue filter dropdown",
|
|
23411
|
+
required: false,
|
|
23412
|
+
defaultValue: false,
|
|
23413
|
+
ui: {
|
|
23414
|
+
intent: "display",
|
|
23415
|
+
visibleWhen: {
|
|
23416
|
+
field: "variant",
|
|
23417
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22984
23418
|
}
|
|
22985
|
-
}
|
|
22986
|
-
|
|
22987
|
-
|
|
22988
|
-
|
|
22989
|
-
|
|
22990
|
-
|
|
22991
|
-
|
|
22992
|
-
|
|
22993
|
-
|
|
22994
|
-
|
|
22995
|
-
|
|
23419
|
+
}
|
|
23420
|
+
},
|
|
23421
|
+
{
|
|
23422
|
+
id: "showStaffFilter",
|
|
23423
|
+
type: "boolean",
|
|
23424
|
+
label: "Show staff filter",
|
|
23425
|
+
description: "Show staff filter dropdown",
|
|
23426
|
+
required: false,
|
|
23427
|
+
defaultValue: true,
|
|
23428
|
+
ui: {
|
|
23429
|
+
intent: "display",
|
|
23430
|
+
visibleWhen: {
|
|
23431
|
+
field: "variant",
|
|
23432
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22996
23433
|
}
|
|
22997
|
-
}
|
|
22998
|
-
|
|
22999
|
-
|
|
23000
|
-
|
|
23001
|
-
|
|
23002
|
-
|
|
23003
|
-
|
|
23434
|
+
}
|
|
23435
|
+
},
|
|
23436
|
+
{
|
|
23437
|
+
id: "showCapacity",
|
|
23438
|
+
type: "boolean",
|
|
23439
|
+
label: "Show available spots",
|
|
23440
|
+
description: "Display remaining capacity on event cards and timetable cells",
|
|
23441
|
+
required: false,
|
|
23442
|
+
defaultValue: true,
|
|
23443
|
+
ui: {
|
|
23444
|
+
intent: "display",
|
|
23445
|
+
visibleWhen: {
|
|
23446
|
+
field: "variant",
|
|
23447
|
+
oneOf: ["combined", "list", "week", "timetable"]
|
|
23004
23448
|
}
|
|
23005
|
-
}
|
|
23006
|
-
|
|
23007
|
-
|
|
23008
|
-
|
|
23009
|
-
|
|
23010
|
-
|
|
23011
|
-
|
|
23012
|
-
|
|
23013
|
-
|
|
23014
|
-
|
|
23015
|
-
|
|
23449
|
+
}
|
|
23450
|
+
},
|
|
23451
|
+
// Block-level pre-filtering
|
|
23452
|
+
{
|
|
23453
|
+
id: "eventSurface",
|
|
23454
|
+
type: "select",
|
|
23455
|
+
label: "Event surface",
|
|
23456
|
+
description: "Choose a semantic event scope",
|
|
23457
|
+
required: false,
|
|
23458
|
+
multiple: false,
|
|
23459
|
+
defaultValue: "all",
|
|
23460
|
+
options: [
|
|
23461
|
+
{ value: "all", label: "All events" },
|
|
23462
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
23463
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
23464
|
+
{ value: "custom", label: "Custom" }
|
|
23465
|
+
],
|
|
23466
|
+
ui: { intent: "behavior" }
|
|
23467
|
+
},
|
|
23468
|
+
{
|
|
23469
|
+
id: "filterEventPresets",
|
|
23470
|
+
type: "select",
|
|
23471
|
+
label: "Pre-filter by event type",
|
|
23472
|
+
description: "Restrict this block to specific event types",
|
|
23473
|
+
required: false,
|
|
23474
|
+
multiple: true,
|
|
23475
|
+
defaultValue: [],
|
|
23476
|
+
options: [
|
|
23477
|
+
{ value: "class", label: "Classes" },
|
|
23478
|
+
{ value: "workshop", label: "Workshops" },
|
|
23479
|
+
{ value: "retreat", label: "Retreats" },
|
|
23480
|
+
{ value: "performance", label: "Performances" }
|
|
23481
|
+
],
|
|
23482
|
+
ui: {
|
|
23483
|
+
intent: "behavior",
|
|
23484
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23485
|
+
}
|
|
23486
|
+
},
|
|
23487
|
+
{
|
|
23488
|
+
id: "scheduleScope",
|
|
23489
|
+
type: "select",
|
|
23490
|
+
label: "Schedule cadence",
|
|
23491
|
+
description: "Restrict this block by recurrence",
|
|
23492
|
+
required: false,
|
|
23493
|
+
multiple: false,
|
|
23494
|
+
defaultValue: "any",
|
|
23495
|
+
options: [
|
|
23496
|
+
{ value: "any", label: "Any cadence" },
|
|
23497
|
+
{ value: "recurring", label: "Recurring only" },
|
|
23498
|
+
{ value: "oneOff", label: "One-off only" }
|
|
23499
|
+
],
|
|
23500
|
+
ui: {
|
|
23501
|
+
intent: "behavior",
|
|
23502
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23503
|
+
}
|
|
23504
|
+
},
|
|
23505
|
+
createSiteOptionSelectField({
|
|
23506
|
+
id: "filterCategoryIds",
|
|
23507
|
+
label: "Pre-filter by categories",
|
|
23508
|
+
description: "Restrict this block to specific event categories",
|
|
23509
|
+
required: false,
|
|
23510
|
+
multiple: true,
|
|
23511
|
+
defaultValue: [],
|
|
23512
|
+
optionSource: "eventCategories",
|
|
23513
|
+
ui: {
|
|
23514
|
+
intent: "behavior",
|
|
23515
|
+
searchThreshold: 8,
|
|
23516
|
+
visibleWhen: { field: "kind", notEquals: "courses" }
|
|
23517
|
+
}
|
|
23518
|
+
}),
|
|
23519
|
+
createSiteOptionSelectField({
|
|
23520
|
+
id: "filterStaffMemberId",
|
|
23521
|
+
label: "Pre-filter by staff member",
|
|
23522
|
+
description: "Restrict this block to a single staff member",
|
|
23523
|
+
required: false,
|
|
23524
|
+
multiple: false,
|
|
23525
|
+
optionSource: "staffMembers",
|
|
23526
|
+
ui: {
|
|
23527
|
+
intent: "behavior",
|
|
23528
|
+
searchThreshold: 8
|
|
23529
|
+
}
|
|
23530
|
+
}),
|
|
23531
|
+
createSiteOptionSelectField({
|
|
23532
|
+
id: "filterVenueId",
|
|
23533
|
+
label: "Pre-filter by venue",
|
|
23534
|
+
description: "Restrict this block to a single venue",
|
|
23535
|
+
required: false,
|
|
23536
|
+
multiple: false,
|
|
23537
|
+
optionSource: "venues",
|
|
23538
|
+
ui: {
|
|
23539
|
+
intent: "behavior",
|
|
23540
|
+
searchThreshold: 8
|
|
23541
|
+
}
|
|
23542
|
+
}),
|
|
23543
|
+
// Card styling
|
|
23544
|
+
...cardStylingFields.filter((f) => f.id === "buttonVariant" || f.id === "buttonText").map((field) => ({
|
|
23545
|
+
...field,
|
|
23546
|
+
ui: {
|
|
23547
|
+
...field.ui ?? {},
|
|
23548
|
+
intent: field.id === "buttonVariant" ? "style" : "content"
|
|
23549
|
+
}
|
|
23550
|
+
})),
|
|
23551
|
+
{
|
|
23552
|
+
...emptyStateField,
|
|
23553
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
23554
|
+
},
|
|
23555
|
+
sectionStylesField({
|
|
23556
|
+
id: "_sectionStyles",
|
|
23557
|
+
label: "Section styles",
|
|
23558
|
+
renderInHeader: false
|
|
23559
|
+
})
|
|
23560
|
+
];
|
|
23561
|
+
var eventCalendarVariants = {
|
|
23562
|
+
combined: eventCalendarLayout[0],
|
|
23563
|
+
month: eventCalendarLayout[0],
|
|
23564
|
+
week: eventCalendarLayout[0],
|
|
23565
|
+
timetable: eventCalendarLayout[0],
|
|
23566
|
+
list: eventCalendarLayout[0]
|
|
23567
|
+
};
|
|
23568
|
+
var eventCalendarDerivedFields = [
|
|
23569
|
+
{
|
|
23570
|
+
id: "displayMode",
|
|
23571
|
+
type: "select",
|
|
23572
|
+
required: false,
|
|
23573
|
+
multiple: false,
|
|
23574
|
+
options: [
|
|
23575
|
+
{ value: "combined" },
|
|
23576
|
+
{ value: "month" },
|
|
23577
|
+
{ value: "week" },
|
|
23578
|
+
{ value: "timetable" },
|
|
23579
|
+
{ value: "list" }
|
|
23580
|
+
]
|
|
23581
|
+
},
|
|
23582
|
+
{
|
|
23583
|
+
id: "listLayout",
|
|
23584
|
+
type: "select",
|
|
23585
|
+
required: false,
|
|
23586
|
+
multiple: false,
|
|
23587
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23588
|
+
value: option.id
|
|
23589
|
+
}))
|
|
23590
|
+
}
|
|
23591
|
+
];
|
|
23592
|
+
var eventCalendarContentShape = {
|
|
23593
|
+
additionalFields: eventCalendarDerivedFields,
|
|
23594
|
+
variants: eventCalendarVariants,
|
|
23595
|
+
skipSectionStyles: true
|
|
23596
|
+
};
|
|
23597
|
+
var eventCalendarConfig = {
|
|
23598
|
+
id: "block.event-calendar",
|
|
23599
|
+
version: "3.6.0",
|
|
23600
|
+
title: "Event Calendar",
|
|
23601
|
+
titleSource: "heading",
|
|
23602
|
+
description: "Display events with calendar, list, or combined views with filtering",
|
|
23603
|
+
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
23604
|
+
skipSectionStyles: true,
|
|
23605
|
+
additionalFields: eventCalendarAdditionalFields,
|
|
23016
23606
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
23017
23607
|
behaviours: {
|
|
23018
23608
|
supportsThemeSwitching: true,
|
|
@@ -23032,109 +23622,21 @@ var eventCalendarManifest = createBlockManifest({
|
|
|
23032
23622
|
"filter"
|
|
23033
23623
|
],
|
|
23034
23624
|
icon: "CalendarDays",
|
|
23035
|
-
layout:
|
|
23036
|
-
|
|
23037
|
-
|
|
23038
|
-
|
|
23039
|
-
|
|
23040
|
-
|
|
23041
|
-
|
|
23042
|
-
|
|
23043
|
-
|
|
23044
|
-
|
|
23045
|
-
|
|
23046
|
-
|
|
23047
|
-
|
|
23048
|
-
|
|
23049
|
-
|
|
23050
|
-
withApiBindings({
|
|
23051
|
-
events: { $bind: { from: "data.events" } },
|
|
23052
|
-
stage: {
|
|
23053
|
-
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23054
|
-
},
|
|
23055
|
-
// Display mode
|
|
23056
|
-
displayMode: {
|
|
23057
|
-
$bind: { from: "content.displayMode", fallback: "combined" }
|
|
23058
|
-
},
|
|
23059
|
-
// List options
|
|
23060
|
-
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23061
|
-
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23062
|
-
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23063
|
-
layout: { $bind: { from: "content.layout" } },
|
|
23064
|
-
columns: { $bind: { from: "content.columns" } },
|
|
23065
|
-
eventsPerPage: {
|
|
23066
|
-
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23067
|
-
},
|
|
23068
|
-
compactEventsPerPage: {
|
|
23069
|
-
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23070
|
-
},
|
|
23071
|
-
loadMoreText: {
|
|
23072
|
-
$bind: {
|
|
23073
|
-
from: "content.loadMoreText",
|
|
23074
|
-
fallback: "Load more events"
|
|
23075
|
-
}
|
|
23076
|
-
},
|
|
23077
|
-
// Calendar options
|
|
23078
|
-
startOfWeek: {
|
|
23079
|
-
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23080
|
-
},
|
|
23081
|
-
calendarTabViews: {
|
|
23082
|
-
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23083
|
-
},
|
|
23084
|
-
// Filtering options
|
|
23085
|
-
showFilters: {
|
|
23086
|
-
$bind: { from: "content.showFilters", fallback: true }
|
|
23087
|
-
},
|
|
23088
|
-
showCategoryFilter: {
|
|
23089
|
-
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23090
|
-
},
|
|
23091
|
-
showVenueFilter: {
|
|
23092
|
-
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23093
|
-
},
|
|
23094
|
-
showStaffFilter: {
|
|
23095
|
-
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23096
|
-
},
|
|
23097
|
-
showCapacity: {
|
|
23098
|
-
$bind: { from: "content.showCapacity", fallback: true }
|
|
23099
|
-
},
|
|
23100
|
-
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23101
|
-
eventSurface: {
|
|
23102
|
-
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23103
|
-
},
|
|
23104
|
-
filterEventPresets: {
|
|
23105
|
-
$bind: { from: "content.filterEventPresets" }
|
|
23106
|
-
},
|
|
23107
|
-
scheduleScope: {
|
|
23108
|
-
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23109
|
-
},
|
|
23110
|
-
filterCategoryIds: {
|
|
23111
|
-
$bind: { from: "content.filterCategoryIds" }
|
|
23112
|
-
},
|
|
23113
|
-
filterStaffMemberId: {
|
|
23114
|
-
$bind: { from: "content.filterStaffMemberId" }
|
|
23115
|
-
},
|
|
23116
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23117
|
-
// Styling
|
|
23118
|
-
buttonVariant: {
|
|
23119
|
-
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23120
|
-
},
|
|
23121
|
-
buttonText: {
|
|
23122
|
-
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23123
|
-
},
|
|
23124
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23125
|
-
})
|
|
23126
|
-
)
|
|
23127
|
-
],
|
|
23128
|
-
{
|
|
23129
|
-
gap: "lg"
|
|
23130
|
-
}
|
|
23131
|
-
),
|
|
23132
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
23133
|
-
baseClass: "",
|
|
23134
|
-
spacing: "comfortable"
|
|
23135
|
-
})
|
|
23136
|
-
]
|
|
23137
|
-
});
|
|
23625
|
+
layout: eventCalendarLayout,
|
|
23626
|
+
variants: eventCalendarVariants,
|
|
23627
|
+
defaultVariant: "combined",
|
|
23628
|
+
variantOptions: {
|
|
23629
|
+
combined: { label: "Combined" },
|
|
23630
|
+
month: { label: "Month" },
|
|
23631
|
+
week: { label: "Week" },
|
|
23632
|
+
timetable: { label: "Timetable" },
|
|
23633
|
+
list: { label: "List" }
|
|
23634
|
+
}
|
|
23635
|
+
};
|
|
23636
|
+
var eventCalendarManifest = createBlockManifestWithContentShape(
|
|
23637
|
+
eventCalendarConfig,
|
|
23638
|
+
eventCalendarContentShape
|
|
23639
|
+
);
|
|
23138
23640
|
var eventCalendarBlockDefinition = {
|
|
23139
23641
|
manifest: eventCalendarManifest,
|
|
23140
23642
|
normalizeContent: normalizeEventCalendarContent,
|
|
@@ -27187,14 +27689,29 @@ function mediaPanelCapable() {
|
|
|
27187
27689
|
var allSectionSurfaces = [
|
|
27188
27690
|
"base",
|
|
27189
27691
|
"muted-band",
|
|
27190
|
-
"accent-band"
|
|
27692
|
+
"accent-band",
|
|
27693
|
+
"brand-depth-band"
|
|
27191
27694
|
];
|
|
27192
27695
|
var heroSectionSurfaces = [
|
|
27193
27696
|
"base",
|
|
27194
27697
|
"muted-band",
|
|
27195
27698
|
"accent-band",
|
|
27699
|
+
"brand-depth-band",
|
|
27196
27700
|
"hero-image"
|
|
27197
27701
|
];
|
|
27702
|
+
var scheduleTileTreatments = [
|
|
27703
|
+
"default",
|
|
27704
|
+
"quiet",
|
|
27705
|
+
"brand-depth"
|
|
27706
|
+
];
|
|
27707
|
+
function scheduleDetailsCapable() {
|
|
27708
|
+
return declareBlockDesignCapability({
|
|
27709
|
+
sectionSurfaces: "supported",
|
|
27710
|
+
contentFrames: ["plain"],
|
|
27711
|
+
itemSurfaces: "unsupported",
|
|
27712
|
+
tileTreatments: scheduleTileTreatments
|
|
27713
|
+
});
|
|
27714
|
+
}
|
|
27198
27715
|
function defaultBoundaryBias(visualWeight) {
|
|
27199
27716
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
27200
27717
|
}
|
|
@@ -27432,7 +27949,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27432
27949
|
flow: conversionFlow,
|
|
27433
27950
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27434
27951
|
})),
|
|
27435
|
-
withDesignCapability("block.event-details", eventDetailsBlockDefinition,
|
|
27952
|
+
withDesignCapability("block.event-details", eventDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27436
27953
|
flow: offeringsFlow,
|
|
27437
27954
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27438
27955
|
})),
|
|
@@ -27440,7 +27957,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27440
27957
|
flow: conversionFlow,
|
|
27441
27958
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27442
27959
|
})),
|
|
27443
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition,
|
|
27960
|
+
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27444
27961
|
flow: offeringsFlow,
|
|
27445
27962
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27446
27963
|
})),
|
|
@@ -27455,7 +27972,13 @@ var systemBlockDefinitionsRaw = [
|
|
|
27455
27972
|
})),
|
|
27456
27973
|
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
27457
27974
|
flow: offeringsFlow,
|
|
27458
|
-
layoutProfiles: [
|
|
27975
|
+
layoutProfiles: [
|
|
27976
|
+
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
27977
|
+
layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
|
|
27978
|
+
layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
|
|
27979
|
+
layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
|
|
27980
|
+
layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
|
|
27981
|
+
]
|
|
27459
27982
|
})),
|
|
27460
27983
|
// Friendly wrapper blocks
|
|
27461
27984
|
withDesignCapability("block.team-members", teamMembersBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|