@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/client/hooks.mjs
CHANGED
|
@@ -1002,6 +1002,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1002
1002
|
auth: "user",
|
|
1003
1003
|
responseKind: "json"
|
|
1004
1004
|
},
|
|
1005
|
+
exportAppointmentServicesCsv: {
|
|
1006
|
+
path: "/sites/{siteId}/bookings/services/export.csv",
|
|
1007
|
+
method: "GET",
|
|
1008
|
+
tags: ["site-{siteId}", "bookings", "appointment-services-{siteId}"],
|
|
1009
|
+
errors: [],
|
|
1010
|
+
auth: "user",
|
|
1011
|
+
responseKind: "blob"
|
|
1012
|
+
},
|
|
1005
1013
|
createAppointmentService: {
|
|
1006
1014
|
path: "/sites/{siteId}/bookings/services",
|
|
1007
1015
|
method: "POST",
|
|
@@ -1270,6 +1278,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1270
1278
|
auth: "user",
|
|
1271
1279
|
responseKind: "json"
|
|
1272
1280
|
},
|
|
1281
|
+
exportCoursesCsv: {
|
|
1282
|
+
path: "/sites/{siteId}/bookings/courses/export.csv",
|
|
1283
|
+
method: "GET",
|
|
1284
|
+
tags: ["site-{siteId}", "bookings", "courses-{siteId}"],
|
|
1285
|
+
errors: [],
|
|
1286
|
+
auth: "user",
|
|
1287
|
+
responseKind: "blob"
|
|
1288
|
+
},
|
|
1273
1289
|
createCourse: {
|
|
1274
1290
|
path: "/sites/{siteId}/bookings/courses",
|
|
1275
1291
|
method: "POST",
|
|
@@ -1369,6 +1385,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1369
1385
|
responseKind: "json",
|
|
1370
1386
|
errors: []
|
|
1371
1387
|
},
|
|
1388
|
+
exportCourseWaitlistCsv: {
|
|
1389
|
+
path: "/sites/{siteId}/bookings/courses/{courseId}/waitlist/export.csv",
|
|
1390
|
+
method: "GET",
|
|
1391
|
+
tags: ["site-{siteId}", "bookings", "courses-{courseId}"],
|
|
1392
|
+
auth: "user",
|
|
1393
|
+
responseKind: "blob",
|
|
1394
|
+
errors: []
|
|
1395
|
+
},
|
|
1372
1396
|
updateCourseEnrollment: {
|
|
1373
1397
|
path: "/sites/{siteId}/bookings/courses/{courseId}/enrollments/{enrollmentId}",
|
|
1374
1398
|
method: "PATCH",
|
|
@@ -3964,6 +3988,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3964
3988
|
auth: "user",
|
|
3965
3989
|
responseKind: "json"
|
|
3966
3990
|
},
|
|
3991
|
+
exportEventSeriesCsv: {
|
|
3992
|
+
path: "/sites/{siteId}/bookings/event-series/export.csv",
|
|
3993
|
+
method: "GET",
|
|
3994
|
+
tags: ["site-{siteId}", "bookings", "event-series-{siteId}"],
|
|
3995
|
+
errors: [],
|
|
3996
|
+
auth: "user",
|
|
3997
|
+
responseKind: "blob"
|
|
3998
|
+
},
|
|
3967
3999
|
createEventSeries: {
|
|
3968
4000
|
path: "/sites/{siteId}/bookings/event-series",
|
|
3969
4001
|
method: "POST",
|
|
@@ -4032,6 +4064,60 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4032
4064
|
errors: [],
|
|
4033
4065
|
responseKind: "blob"
|
|
4034
4066
|
},
|
|
4067
|
+
getParticipantMessageRecipients: {
|
|
4068
|
+
path: "/sites/{siteId}/bookings/participant-messaging/recipients",
|
|
4069
|
+
method: "POST",
|
|
4070
|
+
tags: ["site-{siteId}"],
|
|
4071
|
+
auth: "user",
|
|
4072
|
+
errors: [
|
|
4073
|
+
"validation:invalid_input",
|
|
4074
|
+
"auth:forbidden",
|
|
4075
|
+
"resource:not_found",
|
|
4076
|
+
"server:internal_error"
|
|
4077
|
+
],
|
|
4078
|
+
responseKind: "json"
|
|
4079
|
+
},
|
|
4080
|
+
sendParticipantMessage: {
|
|
4081
|
+
path: "/sites/{siteId}/bookings/participant-messaging/send",
|
|
4082
|
+
method: "POST",
|
|
4083
|
+
tags: ["site-{siteId}"],
|
|
4084
|
+
auth: "user",
|
|
4085
|
+
errors: [
|
|
4086
|
+
"validation:invalid_input",
|
|
4087
|
+
"auth:forbidden",
|
|
4088
|
+
"resource:not_found",
|
|
4089
|
+
"resource:conflict",
|
|
4090
|
+
"server:internal_error"
|
|
4091
|
+
],
|
|
4092
|
+
responseKind: "json"
|
|
4093
|
+
},
|
|
4094
|
+
testParticipantMessage: {
|
|
4095
|
+
path: "/sites/{siteId}/bookings/participant-messaging/test",
|
|
4096
|
+
method: "POST",
|
|
4097
|
+
tags: ["site-{siteId}"],
|
|
4098
|
+
auth: "user",
|
|
4099
|
+
errors: [
|
|
4100
|
+
"validation:invalid_input",
|
|
4101
|
+
"auth:forbidden",
|
|
4102
|
+
"resource:not_found",
|
|
4103
|
+
"resource:conflict",
|
|
4104
|
+
"server:internal_error"
|
|
4105
|
+
],
|
|
4106
|
+
responseKind: "json"
|
|
4107
|
+
},
|
|
4108
|
+
listParticipantMessageHistory: {
|
|
4109
|
+
path: "/sites/{siteId}/bookings/participant-messaging/history",
|
|
4110
|
+
method: "POST",
|
|
4111
|
+
tags: ["site-{siteId}"],
|
|
4112
|
+
auth: "user",
|
|
4113
|
+
errors: [
|
|
4114
|
+
"validation:invalid_input",
|
|
4115
|
+
"auth:forbidden",
|
|
4116
|
+
"resource:not_found",
|
|
4117
|
+
"server:internal_error"
|
|
4118
|
+
],
|
|
4119
|
+
responseKind: "json"
|
|
4120
|
+
},
|
|
4035
4121
|
listEventSeriesWaitlist: {
|
|
4036
4122
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist",
|
|
4037
4123
|
method: "GET",
|
|
@@ -4040,6 +4126,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4040
4126
|
responseKind: "json",
|
|
4041
4127
|
errors: []
|
|
4042
4128
|
},
|
|
4129
|
+
exportEventSeriesWaitlistCsv: {
|
|
4130
|
+
path: "/sites/{siteId}/bookings/event-series/{seriesId}/waitlist/export.csv",
|
|
4131
|
+
method: "GET",
|
|
4132
|
+
tags: ["site-{siteId}", "bookings", "event-series-{seriesId}"],
|
|
4133
|
+
auth: "user",
|
|
4134
|
+
responseKind: "blob",
|
|
4135
|
+
errors: []
|
|
4136
|
+
},
|
|
4043
4137
|
addEventOccurrenceAttendee: {
|
|
4044
4138
|
path: "/sites/{siteId}/bookings/event-series/{seriesId}/occurrences/{occurrenceId}/attendees",
|
|
4045
4139
|
method: "POST",
|
|
@@ -4756,6 +4850,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4756
4850
|
auth: "user",
|
|
4757
4851
|
responseKind: "json"
|
|
4758
4852
|
},
|
|
4853
|
+
exportSiteCustomerPassesCsv: {
|
|
4854
|
+
path: "/sites/{siteId}/bookings/customer-passes/export.csv",
|
|
4855
|
+
method: "GET",
|
|
4856
|
+
tags: ["site-{siteId}", "bookings", "customer-passes-{siteId}"],
|
|
4857
|
+
auth: "user",
|
|
4858
|
+
responseKind: "blob",
|
|
4859
|
+
errors: []
|
|
4860
|
+
},
|
|
4759
4861
|
listSiteCustomerMemberships: {
|
|
4760
4862
|
path: "/sites/{siteId}/bookings/customer-memberships",
|
|
4761
4863
|
method: "GET",
|
|
@@ -4819,6 +4921,22 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
4819
4921
|
auth: "user",
|
|
4820
4922
|
responseKind: "blob"
|
|
4821
4923
|
},
|
|
4924
|
+
exportBookingLedgerCsv: {
|
|
4925
|
+
path: "/sites/{siteId}/bookings/ledger/export.csv",
|
|
4926
|
+
method: "GET",
|
|
4927
|
+
tags: ["site-{siteId}", "bookings", "booking-ledger-{siteId}"],
|
|
4928
|
+
errors: [],
|
|
4929
|
+
auth: "user",
|
|
4930
|
+
responseKind: "blob"
|
|
4931
|
+
},
|
|
4932
|
+
exportBookingQuestionAnswersCsv: {
|
|
4933
|
+
path: "/sites/{siteId}/bookings/intake-answers/export.csv",
|
|
4934
|
+
method: "GET",
|
|
4935
|
+
tags: ["site-{siteId}", "bookings", "intake-answers-{siteId}"],
|
|
4936
|
+
errors: [],
|
|
4937
|
+
auth: "user",
|
|
4938
|
+
responseKind: "blob"
|
|
4939
|
+
},
|
|
4822
4940
|
// Site logs
|
|
4823
4941
|
listSiteActivityLogs: {
|
|
4824
4942
|
path: "/sites/{siteId}/logs/activity",
|
|
@@ -6176,7 +6294,11 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
6176
6294
|
|
|
6177
6295
|
// ../blocks/src/system/manifest/schema.ts
|
|
6178
6296
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
6179
|
-
var siteOptionSources = [
|
|
6297
|
+
var siteOptionSources = [
|
|
6298
|
+
"eventCategories",
|
|
6299
|
+
"venues",
|
|
6300
|
+
"staffMembers"
|
|
6301
|
+
];
|
|
6180
6302
|
var mediaDeliverySchema = z3.object({
|
|
6181
6303
|
sizes: z3.string().optional(),
|
|
6182
6304
|
widthCandidates: z3.array(z3.number().int().positive()).optional(),
|
|
@@ -6214,7 +6336,10 @@ var uiSchema = z3.object({
|
|
|
6214
6336
|
hidden: z3.boolean().optional(),
|
|
6215
6337
|
hideLabel: z3.boolean().optional(),
|
|
6216
6338
|
hideDescription: z3.boolean().optional(),
|
|
6217
|
-
showCharCount: z3.union([
|
|
6339
|
+
showCharCount: z3.union([
|
|
6340
|
+
z3.number().int().positive(),
|
|
6341
|
+
z3.object({ max: z3.number().int().positive() })
|
|
6342
|
+
]).optional(),
|
|
6218
6343
|
showSlugPreview: z3.boolean().optional(),
|
|
6219
6344
|
variant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
6220
6345
|
richTextVariant: z3.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
@@ -6224,10 +6349,7 @@ var uiSchema = z3.object({
|
|
|
6224
6349
|
showMediaPreview: z3.boolean().optional(),
|
|
6225
6350
|
showMediaOverlayActions: z3.boolean().optional(),
|
|
6226
6351
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
6227
|
-
mediaDeliveryByVariant: z3.record(
|
|
6228
|
-
z3.string(),
|
|
6229
|
-
mediaDeliverySchema
|
|
6230
|
-
).optional(),
|
|
6352
|
+
mediaDeliveryByVariant: z3.record(z3.string(), mediaDeliverySchema).optional(),
|
|
6231
6353
|
// Optional input hints for validators/widgets
|
|
6232
6354
|
inputType: z3.enum(["text", "email", "tel", "number"]).optional(),
|
|
6233
6355
|
min: z3.number().optional(),
|
|
@@ -6335,7 +6457,9 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
6335
6457
|
});
|
|
6336
6458
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
6337
6459
|
type: z3.literal("media"),
|
|
6338
|
-
mediaKinds: z3.array(
|
|
6460
|
+
mediaKinds: z3.array(
|
|
6461
|
+
z3.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
|
|
6462
|
+
).default(["image"]),
|
|
6339
6463
|
aspectRatio: z3.string().optional()
|
|
6340
6464
|
});
|
|
6341
6465
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
@@ -6457,7 +6581,9 @@ var referenceFieldSchema = baseFieldSchema.extend({
|
|
|
6457
6581
|
var itemTypeSchema = z3.object({
|
|
6458
6582
|
label: z3.string().min(1),
|
|
6459
6583
|
icon: z3.string().optional(),
|
|
6460
|
-
fields: z3.lazy(
|
|
6584
|
+
fields: z3.lazy(
|
|
6585
|
+
() => getFieldSchemaInternal().array().min(1, "Item type requires at least one field")
|
|
6586
|
+
)
|
|
6461
6587
|
});
|
|
6462
6588
|
var repeaterFieldSchema = baseFieldSchema.extend({
|
|
6463
6589
|
type: z3.literal("repeater"),
|
|
@@ -6467,7 +6593,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6467
6593
|
maxItems: z3.number().int().positive().optional(),
|
|
6468
6594
|
// Monomorphic mode
|
|
6469
6595
|
schema: z3.object({
|
|
6470
|
-
fields: z3.lazy(
|
|
6596
|
+
fields: z3.lazy(
|
|
6597
|
+
() => getFieldSchemaInternal().array().min(1, "Repeater requires at least one field")
|
|
6598
|
+
)
|
|
6471
6599
|
}).optional(),
|
|
6472
6600
|
// Polymorphic mode
|
|
6473
6601
|
polymorphic: z3.boolean().optional(),
|
|
@@ -6513,13 +6641,19 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6513
6641
|
const itemTypes = Object.values(
|
|
6514
6642
|
data.itemTypes
|
|
6515
6643
|
);
|
|
6516
|
-
return itemTypes.every(
|
|
6644
|
+
return itemTypes.every(
|
|
6645
|
+
(itemType) => Array.isArray(itemType.fields) && requiredFieldIds.every(
|
|
6646
|
+
(requiredId) => itemType.fields?.some((field) => field.id === requiredId)
|
|
6647
|
+
)
|
|
6648
|
+
);
|
|
6517
6649
|
}
|
|
6518
6650
|
const schemaFields = data.schema?.fields;
|
|
6519
6651
|
if (!schemaFields) {
|
|
6520
6652
|
return true;
|
|
6521
6653
|
}
|
|
6522
|
-
return requiredFieldIds.every(
|
|
6654
|
+
return requiredFieldIds.every(
|
|
6655
|
+
(requiredId) => schemaFields.some((field) => field.id === requiredId)
|
|
6656
|
+
);
|
|
6523
6657
|
},
|
|
6524
6658
|
{
|
|
6525
6659
|
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`,
|
|
@@ -6547,7 +6681,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6547
6681
|
if (!schemaFields) {
|
|
6548
6682
|
return true;
|
|
6549
6683
|
}
|
|
6550
|
-
const field = schemaFields.find(
|
|
6684
|
+
const field = schemaFields.find(
|
|
6685
|
+
(candidate) => candidate.id === labelField
|
|
6686
|
+
);
|
|
6551
6687
|
return field?.type === "text";
|
|
6552
6688
|
},
|
|
6553
6689
|
{
|
|
@@ -6558,13 +6694,17 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
6558
6694
|
var groupFieldSchema = baseFieldSchema.extend({
|
|
6559
6695
|
type: z3.literal("group"),
|
|
6560
6696
|
schema: z3.object({
|
|
6561
|
-
fields: z3.lazy(
|
|
6697
|
+
fields: z3.lazy(
|
|
6698
|
+
() => getFieldSchemaInternal().array().min(1, "Group requires at least one field")
|
|
6699
|
+
)
|
|
6562
6700
|
})
|
|
6563
6701
|
});
|
|
6564
6702
|
var modalFieldSchema = baseFieldSchema.extend({
|
|
6565
6703
|
type: z3.literal("modal"),
|
|
6566
6704
|
schema: z3.object({
|
|
6567
|
-
fields: z3.lazy(
|
|
6705
|
+
fields: z3.lazy(
|
|
6706
|
+
() => getFieldSchemaInternal().array().min(1, "Modal requires at least one field")
|
|
6707
|
+
)
|
|
6568
6708
|
})
|
|
6569
6709
|
});
|
|
6570
6710
|
var numberFieldSchema = baseFieldSchema.extend({
|
|
@@ -6671,31 +6811,35 @@ function expectParsedSelectField(field) {
|
|
|
6671
6811
|
return field;
|
|
6672
6812
|
}
|
|
6673
6813
|
function createSiteOptionSelectField(input) {
|
|
6674
|
-
return expectParsedSelectField(
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6679
|
-
|
|
6680
|
-
|
|
6681
|
-
|
|
6682
|
-
|
|
6683
|
-
|
|
6684
|
-
|
|
6685
|
-
|
|
6814
|
+
return expectParsedSelectField(
|
|
6815
|
+
parseFieldDefinition({
|
|
6816
|
+
...input,
|
|
6817
|
+
type: "select",
|
|
6818
|
+
options: [],
|
|
6819
|
+
multiple: input.multiple ?? false,
|
|
6820
|
+
source: { kind: "site", optionSource: input.optionSource },
|
|
6821
|
+
ui: {
|
|
6822
|
+
...input.ui ?? {},
|
|
6823
|
+
widget: "siteOptionPicker",
|
|
6824
|
+
siteOptionSource: input.optionSource
|
|
6825
|
+
}
|
|
6826
|
+
})
|
|
6827
|
+
);
|
|
6686
6828
|
}
|
|
6687
6829
|
function createSdkSelectField(input) {
|
|
6688
|
-
return expectParsedSelectField(
|
|
6689
|
-
|
|
6690
|
-
|
|
6691
|
-
|
|
6692
|
-
|
|
6693
|
-
|
|
6694
|
-
|
|
6695
|
-
|
|
6696
|
-
|
|
6697
|
-
|
|
6698
|
-
|
|
6830
|
+
return expectParsedSelectField(
|
|
6831
|
+
parseFieldDefinition({
|
|
6832
|
+
...input,
|
|
6833
|
+
type: "select",
|
|
6834
|
+
options: input.options,
|
|
6835
|
+
multiple: input.multiple ?? false,
|
|
6836
|
+
source: { kind: "sdk" },
|
|
6837
|
+
ui: {
|
|
6838
|
+
...input.ui ?? {},
|
|
6839
|
+
widget: "sdkSelect"
|
|
6840
|
+
}
|
|
6841
|
+
})
|
|
6842
|
+
);
|
|
6699
6843
|
}
|
|
6700
6844
|
var slotSchema = z3.object({
|
|
6701
6845
|
id: z3.string().min(1),
|
|
@@ -6706,8 +6850,20 @@ var slotSchema = z3.object({
|
|
|
6706
6850
|
help: z3.string().optional(),
|
|
6707
6851
|
visibleRoles: z3.array(z3.enum(visibilityLevels)).optional()
|
|
6708
6852
|
});
|
|
6709
|
-
var typographyTokens = [
|
|
6710
|
-
|
|
6853
|
+
var typographyTokens = [
|
|
6854
|
+
"display",
|
|
6855
|
+
"heading",
|
|
6856
|
+
"subheading",
|
|
6857
|
+
"body",
|
|
6858
|
+
"caption"
|
|
6859
|
+
];
|
|
6860
|
+
var colorTokens = [
|
|
6861
|
+
"background",
|
|
6862
|
+
"surface",
|
|
6863
|
+
"foreground",
|
|
6864
|
+
"accent",
|
|
6865
|
+
"muted"
|
|
6866
|
+
];
|
|
6711
6867
|
var spacingTokens = ["none", "xs", "sm", "md", "lg", "xl"];
|
|
6712
6868
|
var radiusTokens = ["none", "sm", "md", "lg", "full"];
|
|
6713
6869
|
var styleTokenSchema = z3.object({
|
|
@@ -6727,7 +6883,14 @@ var behaviourSchema = z3.object({
|
|
|
6727
6883
|
// Block manages its own wrapper (for sticky/fixed positioning)
|
|
6728
6884
|
managesOwnWrapper: z3.boolean().optional()
|
|
6729
6885
|
});
|
|
6730
|
-
var blockCategoryEnum = z3.enum([
|
|
6886
|
+
var blockCategoryEnum = z3.enum([
|
|
6887
|
+
"marketing",
|
|
6888
|
+
"content",
|
|
6889
|
+
"blog",
|
|
6890
|
+
"media",
|
|
6891
|
+
"layout",
|
|
6892
|
+
"interactive"
|
|
6893
|
+
]);
|
|
6731
6894
|
var manifestSchema = z3.object({
|
|
6732
6895
|
name: z3.string().min(1),
|
|
6733
6896
|
version: z3.string().min(1),
|
|
@@ -7326,6 +7489,20 @@ var applyAppointmentSetupRequestSchema = z6.object({
|
|
|
7326
7489
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
7327
7490
|
});
|
|
7328
7491
|
|
|
7492
|
+
// ../api/src/bookingRecords.ts
|
|
7493
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPES = {
|
|
7494
|
+
site: "site",
|
|
7495
|
+
appointments: "appointments",
|
|
7496
|
+
eventSeries: "event_series",
|
|
7497
|
+
course: "course"
|
|
7498
|
+
};
|
|
7499
|
+
var BOOKING_QUESTION_ANSWER_EXPORT_SCOPE_VALUES = [
|
|
7500
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.site,
|
|
7501
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.appointments,
|
|
7502
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.eventSeries,
|
|
7503
|
+
BOOKING_QUESTION_ANSWER_EXPORT_SCOPES.course
|
|
7504
|
+
];
|
|
7505
|
+
|
|
7329
7506
|
// ../api/src/common/cancellation.ts
|
|
7330
7507
|
var STAFF_CANCELLATION_CONTEXT_UI_CATEGORIES = [
|
|
7331
7508
|
"customer_requested",
|
|
@@ -7652,6 +7829,24 @@ function registerManifest(manifest) {
|
|
|
7652
7829
|
return manifest;
|
|
7653
7830
|
}
|
|
7654
7831
|
|
|
7832
|
+
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
7833
|
+
function assertValidOptionGroups(preset2) {
|
|
7834
|
+
preset2.optionGroups?.forEach((group) => {
|
|
7835
|
+
const selectedOption = group.options.find(
|
|
7836
|
+
(option) => option.id === group.selectedOptionId
|
|
7837
|
+
);
|
|
7838
|
+
if (!selectedOption) {
|
|
7839
|
+
throw new Error(
|
|
7840
|
+
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
7841
|
+
);
|
|
7842
|
+
}
|
|
7843
|
+
});
|
|
7844
|
+
}
|
|
7845
|
+
function defineBlockAppearancePreset(preset2) {
|
|
7846
|
+
assertValidOptionGroups(preset2);
|
|
7847
|
+
return preset2;
|
|
7848
|
+
}
|
|
7849
|
+
|
|
7655
7850
|
// ../theme-core/src/site-styles/types.ts
|
|
7656
7851
|
function asDesignBlockId(value) {
|
|
7657
7852
|
return brandNonEmptyString(value, "DesignBlockId");
|
|
@@ -7733,6 +7928,11 @@ function flushPanelFrame(options) {
|
|
|
7733
7928
|
function defineFrameCapability(capability) {
|
|
7734
7929
|
return capability;
|
|
7735
7930
|
}
|
|
7931
|
+
var tileTreatmentValues = [
|
|
7932
|
+
"default",
|
|
7933
|
+
"quiet",
|
|
7934
|
+
"brand-depth"
|
|
7935
|
+
];
|
|
7736
7936
|
var eyebrowTreatmentValues = [
|
|
7737
7937
|
"plain",
|
|
7738
7938
|
"pill",
|
|
@@ -7748,31 +7948,13 @@ function defineBlockDesignCapability(capability) {
|
|
|
7748
7948
|
imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
|
|
7749
7949
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7750
7950
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
7951
|
+
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7751
7952
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"]
|
|
7752
7953
|
};
|
|
7753
7954
|
}
|
|
7754
7955
|
|
|
7755
|
-
// ../theme-core/src/site-styles/
|
|
7756
|
-
|
|
7757
|
-
preset2.optionGroups?.forEach((group) => {
|
|
7758
|
-
const selectedOption = group.options.find(
|
|
7759
|
-
(option) => option.id === group.selectedOptionId
|
|
7760
|
-
);
|
|
7761
|
-
if (!selectedOption) {
|
|
7762
|
-
throw new Error(
|
|
7763
|
-
`Appearance preset "${preset2.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
7764
|
-
);
|
|
7765
|
-
}
|
|
7766
|
-
});
|
|
7767
|
-
}
|
|
7768
|
-
function defineBlockAppearancePreset(preset2) {
|
|
7769
|
-
assertValidOptionGroups(preset2);
|
|
7770
|
-
return preset2;
|
|
7771
|
-
}
|
|
7772
|
-
function defineSiteChromeAppearancePreset(preset2) {
|
|
7773
|
-
return preset2;
|
|
7774
|
-
}
|
|
7775
|
-
var appearancePresets = [
|
|
7956
|
+
// ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
7957
|
+
var blockAppearancePresets = [
|
|
7776
7958
|
defineBlockAppearancePreset({
|
|
7777
7959
|
kind: "block-design",
|
|
7778
7960
|
id: "hero-immersive-image",
|
|
@@ -7898,6 +8080,24 @@ var appearancePresets = [
|
|
|
7898
8080
|
eyebrowTreatment: "accent-pill-bounce"
|
|
7899
8081
|
}
|
|
7900
8082
|
}),
|
|
8083
|
+
defineBlockAppearancePreset({
|
|
8084
|
+
kind: "block-design",
|
|
8085
|
+
id: "hero-brand-depth-expressive",
|
|
8086
|
+
target: "hero",
|
|
8087
|
+
label: "Expressive brand-depth hero",
|
|
8088
|
+
blockKinds: ["block.hero"],
|
|
8089
|
+
constraints: {
|
|
8090
|
+
layoutFamilies: ["centered", "compact"]
|
|
8091
|
+
},
|
|
8092
|
+
design: {
|
|
8093
|
+
sectionSurface: "brand-depth-band",
|
|
8094
|
+
contentFrame: plainFrame,
|
|
8095
|
+
itemSurface: "none",
|
|
8096
|
+
transitionAfter: "soft-fade-short",
|
|
8097
|
+
emphasis: "high",
|
|
8098
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
8099
|
+
}
|
|
8100
|
+
}),
|
|
7901
8101
|
defineBlockAppearancePreset({
|
|
7902
8102
|
kind: "block-design",
|
|
7903
8103
|
id: "hero-contained-intro",
|
|
@@ -7926,6 +8126,20 @@ var appearancePresets = [
|
|
|
7926
8126
|
emphasis: "high"
|
|
7927
8127
|
}
|
|
7928
8128
|
}),
|
|
8129
|
+
defineBlockAppearancePreset({
|
|
8130
|
+
kind: "block-design",
|
|
8131
|
+
id: "body-text-brand-depth-intro",
|
|
8132
|
+
target: "body-text",
|
|
8133
|
+
label: "Brand-depth intro copy",
|
|
8134
|
+
blockKinds: ["block.body-text"],
|
|
8135
|
+
design: {
|
|
8136
|
+
sectionSurface: "brand-depth-band",
|
|
8137
|
+
contentFrame: plainFrame,
|
|
8138
|
+
itemSurface: "none",
|
|
8139
|
+
transitionAfter: "soft-fade-short",
|
|
8140
|
+
emphasis: "high"
|
|
8141
|
+
}
|
|
8142
|
+
}),
|
|
7929
8143
|
defineBlockAppearancePreset({
|
|
7930
8144
|
kind: "block-design",
|
|
7931
8145
|
id: "offerings-calm-list",
|
|
@@ -7968,6 +8182,21 @@ var appearancePresets = [
|
|
|
7968
8182
|
emphasis: "medium"
|
|
7969
8183
|
}
|
|
7970
8184
|
}),
|
|
8185
|
+
defineBlockAppearancePreset({
|
|
8186
|
+
kind: "block-design",
|
|
8187
|
+
id: "schedule-details-brand-depth",
|
|
8188
|
+
target: "events",
|
|
8189
|
+
label: "Brand-depth schedule details",
|
|
8190
|
+
blockKinds: ["block.event-details", "block.course-details"],
|
|
8191
|
+
design: {
|
|
8192
|
+
sectionSurface: "brand-depth-band",
|
|
8193
|
+
contentFrame: plainFrame,
|
|
8194
|
+
itemSurface: "none",
|
|
8195
|
+
transitionAfter: "none",
|
|
8196
|
+
emphasis: "medium",
|
|
8197
|
+
tileTreatment: "brand-depth"
|
|
8198
|
+
}
|
|
8199
|
+
}),
|
|
7971
8200
|
defineBlockAppearancePreset({
|
|
7972
8201
|
kind: "block-design",
|
|
7973
8202
|
id: "media-text-flush-feature",
|
|
@@ -8053,6 +8282,20 @@ var appearancePresets = [
|
|
|
8053
8282
|
testimonialCardTreatment: "accent-quote"
|
|
8054
8283
|
}
|
|
8055
8284
|
}),
|
|
8285
|
+
defineBlockAppearancePreset({
|
|
8286
|
+
kind: "block-design",
|
|
8287
|
+
id: "faq-base-accordion",
|
|
8288
|
+
target: "faq",
|
|
8289
|
+
label: "Base accordion FAQ",
|
|
8290
|
+
blockKinds: ["block.faq"],
|
|
8291
|
+
design: {
|
|
8292
|
+
sectionSurface: "base",
|
|
8293
|
+
contentFrame: plainFrame,
|
|
8294
|
+
itemSurface: "default",
|
|
8295
|
+
transitionAfter: "none",
|
|
8296
|
+
emphasis: "medium"
|
|
8297
|
+
}
|
|
8298
|
+
}),
|
|
8056
8299
|
defineBlockAppearancePreset({
|
|
8057
8300
|
kind: "block-design",
|
|
8058
8301
|
id: "faq-contained-help",
|
|
@@ -8095,6 +8338,20 @@ var appearancePresets = [
|
|
|
8095
8338
|
emphasis: "high"
|
|
8096
8339
|
}
|
|
8097
8340
|
}),
|
|
8341
|
+
defineBlockAppearancePreset({
|
|
8342
|
+
kind: "block-design",
|
|
8343
|
+
id: "contact-form-brand-depth-card",
|
|
8344
|
+
target: "contact-form",
|
|
8345
|
+
label: "Brand-depth form card",
|
|
8346
|
+
blockKinds: ["block.form"],
|
|
8347
|
+
design: {
|
|
8348
|
+
sectionSurface: "brand-depth-band",
|
|
8349
|
+
contentFrame: panelFrame("raised"),
|
|
8350
|
+
itemSurface: "none",
|
|
8351
|
+
transitionAfter: "none",
|
|
8352
|
+
emphasis: "high"
|
|
8353
|
+
}
|
|
8354
|
+
}),
|
|
8098
8355
|
defineBlockAppearancePreset({
|
|
8099
8356
|
kind: "block-design",
|
|
8100
8357
|
id: "cta-accent-band",
|
|
@@ -8108,7 +8365,14 @@ var appearancePresets = [
|
|
|
8108
8365
|
transitionAfter: "none",
|
|
8109
8366
|
emphasis: "high"
|
|
8110
8367
|
}
|
|
8111
|
-
})
|
|
8368
|
+
})
|
|
8369
|
+
];
|
|
8370
|
+
|
|
8371
|
+
// ../theme-core/src/site-styles/siteChromeAppearancePresets.ts
|
|
8372
|
+
function defineSiteChromeAppearancePreset(preset2) {
|
|
8373
|
+
return preset2;
|
|
8374
|
+
}
|
|
8375
|
+
var siteChromeAppearancePresets = [
|
|
8112
8376
|
defineSiteChromeAppearancePreset({
|
|
8113
8377
|
kind: "site-chrome",
|
|
8114
8378
|
id: "header-clean-base",
|
|
@@ -8176,6 +8440,12 @@ var appearancePresets = [
|
|
|
8176
8440
|
})
|
|
8177
8441
|
];
|
|
8178
8442
|
|
|
8443
|
+
// ../theme-core/src/site-styles/appearancePresetCatalog.ts
|
|
8444
|
+
var appearancePresets = [
|
|
8445
|
+
...blockAppearancePresets,
|
|
8446
|
+
...siteChromeAppearancePresets
|
|
8447
|
+
];
|
|
8448
|
+
|
|
8179
8449
|
// ../theme-core/src/site-styles/blockFlow.ts
|
|
8180
8450
|
function defineBlockDesignMetadata(input) {
|
|
8181
8451
|
const layoutProfiles = (input.layoutProfiles ?? []).map((profile) => ({
|
|
@@ -9650,6 +9920,7 @@ var sectionStylesOverrideSchema = z22.object({
|
|
|
9650
9920
|
background: boxBackgroundSchema.nullable().optional(),
|
|
9651
9921
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
9652
9922
|
minHeight: z22.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
9923
|
+
tileTreatment: z22.enum(tileTreatmentValues).nullable().optional(),
|
|
9653
9924
|
eyebrowTreatment: z22.enum(eyebrowTreatmentValues).nullable().optional()
|
|
9654
9925
|
});
|
|
9655
9926
|
var containerStylesOverrideSchema = z22.object({
|
|
@@ -10443,7 +10714,7 @@ var userContentFrames = [
|
|
|
10443
10714
|
];
|
|
10444
10715
|
var generatedDesignOptionCatalog = {
|
|
10445
10716
|
source: "generated",
|
|
10446
|
-
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
10717
|
+
sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
|
|
10447
10718
|
contentFrames: generatedContentFrames,
|
|
10448
10719
|
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
10449
10720
|
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
@@ -10513,6 +10784,43 @@ var expressiveBudget = {
|
|
|
10513
10784
|
mediaDensity: "high",
|
|
10514
10785
|
decorativeRepetition: "medium"
|
|
10515
10786
|
};
|
|
10787
|
+
var expressiveUnderlineInputs = {
|
|
10788
|
+
base: {
|
|
10789
|
+
background: { type: "transparent" },
|
|
10790
|
+
textColorToken: "text",
|
|
10791
|
+
border: {
|
|
10792
|
+
widthClass: "border-2",
|
|
10793
|
+
colorToken: "border",
|
|
10794
|
+
style: "underline"
|
|
10795
|
+
},
|
|
10796
|
+
corners: "square",
|
|
10797
|
+
shadow: null,
|
|
10798
|
+
spacing: "compact",
|
|
10799
|
+
fontSize: "base"
|
|
10800
|
+
},
|
|
10801
|
+
label: {
|
|
10802
|
+
textColorToken: "primary",
|
|
10803
|
+
fontWeight: "black",
|
|
10804
|
+
fontSize: "xs",
|
|
10805
|
+
textTransform: "uppercase",
|
|
10806
|
+
letterSpacing: "widest",
|
|
10807
|
+
opacity: 1
|
|
10808
|
+
},
|
|
10809
|
+
focus: {
|
|
10810
|
+
ringColorToken: "secondary",
|
|
10811
|
+
ringWidth: "0",
|
|
10812
|
+
borderColorToken: "secondary"
|
|
10813
|
+
},
|
|
10814
|
+
error: {
|
|
10815
|
+
borderColorToken: "destructive",
|
|
10816
|
+
textColorToken: "destructive"
|
|
10817
|
+
},
|
|
10818
|
+
disabled: {
|
|
10819
|
+
backgroundColorToken: "surface",
|
|
10820
|
+
textColorToken: "text",
|
|
10821
|
+
opacity: 0.6
|
|
10822
|
+
}
|
|
10823
|
+
};
|
|
10516
10824
|
function uniqueContentFrameKinds() {
|
|
10517
10825
|
const kinds = [...new Set(
|
|
10518
10826
|
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
@@ -10863,15 +11171,17 @@ var curatedSiteStyles = [
|
|
|
10863
11171
|
paragraphSize: "editorial",
|
|
10864
11172
|
headingSize: "editorial"
|
|
10865
11173
|
}
|
|
10866
|
-
}
|
|
11174
|
+
},
|
|
11175
|
+
inputs: expressiveUnderlineInputs
|
|
10867
11176
|
},
|
|
10868
11177
|
recommendedAppearancePresetIds: [
|
|
10869
11178
|
"site-header-brand-solid-inverted-cta",
|
|
10870
11179
|
"site-footer-brand-two-band",
|
|
10871
11180
|
"hero-brand-scrim-fixed-frame",
|
|
10872
11181
|
"body-text-editorial-intro",
|
|
11182
|
+
"schedule-details-brand-depth",
|
|
10873
11183
|
"testimonials-accent-quote-proof",
|
|
10874
|
-
"contact-form-
|
|
11184
|
+
"contact-form-brand-depth-card"
|
|
10875
11185
|
],
|
|
10876
11186
|
buttonPersonalityChoices: [
|
|
10877
11187
|
buttonChoice("showtime-pill"),
|
|
@@ -11005,6 +11315,7 @@ var imageSurfaceTreatmentSchema = z24.discriminatedUnion("kind", [
|
|
|
11005
11315
|
}).strict()
|
|
11006
11316
|
]);
|
|
11007
11317
|
var testimonialCardTreatmentSchema = z24.enum(["default", "accent-quote"]);
|
|
11318
|
+
var tileTreatmentSchema = z24.enum(tileTreatmentValues);
|
|
11008
11319
|
var eyebrowTreatmentSchema = z24.enum(eyebrowTreatmentValues);
|
|
11009
11320
|
function uniqueNonEmpty(values) {
|
|
11010
11321
|
const uniqueValues = [...new Set(values)];
|
|
@@ -11049,6 +11360,7 @@ var blockDesignPlanSchema = z24.object({
|
|
|
11049
11360
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
11050
11361
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
11051
11362
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
11363
|
+
tileTreatment: tileTreatmentSchema.optional(),
|
|
11052
11364
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
11053
11365
|
}).strict();
|
|
11054
11366
|
var styleAuthoritySchema = z24.discriminatedUnion("kind", [
|
|
@@ -11112,6 +11424,14 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
11112
11424
|
headingColor: "primaryForeground"
|
|
11113
11425
|
}
|
|
11114
11426
|
},
|
|
11427
|
+
"brand-depth-band": {
|
|
11428
|
+
background: {
|
|
11429
|
+
type: "color",
|
|
11430
|
+
color: "primary-800",
|
|
11431
|
+
textColor: "primaryForeground",
|
|
11432
|
+
headingColor: "primaryForeground"
|
|
11433
|
+
}
|
|
11434
|
+
},
|
|
11115
11435
|
"hero-image": {
|
|
11116
11436
|
background: {
|
|
11117
11437
|
type: "image",
|
|
@@ -13001,6 +13321,21 @@ function createTransformRegistry(definitions) {
|
|
|
13001
13321
|
}
|
|
13002
13322
|
|
|
13003
13323
|
// ../blocks/src/system/transforms/registry/_utils/colorResolution.ts
|
|
13324
|
+
var CSS_COLOR_FUNCTION_PATTERN = /^(?:rgb|rgba|hsl|hsla|hwb|lab|lch|oklab|oklch|color|color-mix|light-dark)\(/i;
|
|
13325
|
+
var CSS_HEX_COLOR_PATTERN = /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
|
|
13326
|
+
var THEME_COLOR_TOKEN_PATTERN = /^[a-zA-Z][a-zA-Z0-9]*(?:-[a-zA-Z0-9]+)*(?:\/(?:100|[1-9]?\d|0))?$/;
|
|
13327
|
+
var CSS_COLOR_KEYWORDS = /* @__PURE__ */ new Set([
|
|
13328
|
+
"transparent",
|
|
13329
|
+
"currentColor",
|
|
13330
|
+
"inherit",
|
|
13331
|
+
"initial",
|
|
13332
|
+
"revert",
|
|
13333
|
+
"revert-layer",
|
|
13334
|
+
"unset"
|
|
13335
|
+
]);
|
|
13336
|
+
function isLiteralCssColorValue(value) {
|
|
13337
|
+
return CSS_HEX_COLOR_PATTERN.test(value) || CSS_COLOR_FUNCTION_PATTERN.test(value) || value.startsWith("var(") || CSS_COLOR_KEYWORDS.has(value);
|
|
13338
|
+
}
|
|
13004
13339
|
function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
13005
13340
|
const trimmed = tokenOrCssValue.trim();
|
|
13006
13341
|
if (!trimmed) return "";
|
|
@@ -13017,8 +13352,11 @@ function resolveBackgroundColorValue(tokenOrCssValue, context) {
|
|
|
13017
13352
|
return rgbColorValue(trimmed);
|
|
13018
13353
|
}
|
|
13019
13354
|
}
|
|
13020
|
-
if (trimmed
|
|
13021
|
-
return
|
|
13355
|
+
if (isLiteralCssColorValue(trimmed)) {
|
|
13356
|
+
return trimmed;
|
|
13357
|
+
}
|
|
13358
|
+
if (THEME_COLOR_TOKEN_PATTERN.test(trimmed)) {
|
|
13359
|
+
return rgbColorValue(trimmed);
|
|
13022
13360
|
}
|
|
13023
13361
|
return trimmed;
|
|
13024
13362
|
}
|
|
@@ -13274,6 +13612,15 @@ function hasFixedFrameBackgroundMotion(value) {
|
|
|
13274
13612
|
const background = asPartialObject(input?.background);
|
|
13275
13613
|
return background?.motion === "fixed-frame";
|
|
13276
13614
|
}
|
|
13615
|
+
var tileTreatmentClassMap = {
|
|
13616
|
+
default: "",
|
|
13617
|
+
quiet: "rb-tile-treatment-quiet",
|
|
13618
|
+
"brand-depth": "rb-tile-treatment-brand-depth"
|
|
13619
|
+
};
|
|
13620
|
+
var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
13621
|
+
function isTileTreatment(value) {
|
|
13622
|
+
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
13623
|
+
}
|
|
13277
13624
|
var sectionClassNameTransform = {
|
|
13278
13625
|
id: "sectionStyles.resolveClassName",
|
|
13279
13626
|
kind: "string",
|
|
@@ -13330,6 +13677,17 @@ var sectionClassNameTransform = {
|
|
|
13330
13677
|
classes.push(minHeightClass);
|
|
13331
13678
|
}
|
|
13332
13679
|
}
|
|
13680
|
+
const tileTreatment = input?.tileTreatment;
|
|
13681
|
+
if (isTileTreatment(tileTreatment)) {
|
|
13682
|
+
const tileTreatmentClass = tileTreatmentClassMap[tileTreatment];
|
|
13683
|
+
if (tileTreatmentClass) {
|
|
13684
|
+
classes.push(tileTreatmentClass);
|
|
13685
|
+
}
|
|
13686
|
+
} else if (typeof tileTreatment === "string" && true) {
|
|
13687
|
+
console.warn(
|
|
13688
|
+
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
13689
|
+
);
|
|
13690
|
+
}
|
|
13333
13691
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
13334
13692
|
classes.push(fixedFrameScopeClass);
|
|
13335
13693
|
}
|
|
@@ -16204,6 +16562,9 @@ function createBlockManifest(config) {
|
|
|
16204
16562
|
};
|
|
16205
16563
|
return augmentManifest(manifest);
|
|
16206
16564
|
}
|
|
16565
|
+
function createBlockManifestWithContentShape(config, _contentShape) {
|
|
16566
|
+
return createBlockManifest(config);
|
|
16567
|
+
}
|
|
16207
16568
|
function normalizeBlockLayout(layout) {
|
|
16208
16569
|
return Array.isArray(layout) ? [...layout] : layout;
|
|
16209
16570
|
}
|
|
@@ -16836,7 +17197,7 @@ var ctaComposition = composeFragments([
|
|
|
16836
17197
|
{ fragment: ctaCopyFragment },
|
|
16837
17198
|
{ fragment: ctaRowFragment }
|
|
16838
17199
|
]);
|
|
16839
|
-
var
|
|
17200
|
+
var ctaFullConfig = {
|
|
16840
17201
|
id: "block.cta-full",
|
|
16841
17202
|
title: "Full-width CTA",
|
|
16842
17203
|
category: "marketing",
|
|
@@ -16854,7 +17215,8 @@ var ctaFullManifest = createBlockManifest({
|
|
|
16854
17215
|
description: "Centered call to action with optional background image.",
|
|
16855
17216
|
tags: ["cta", "call-to-action", "button", "conversion", "action", "sign-up", "get-started"],
|
|
16856
17217
|
icon: "Target"
|
|
16857
|
-
}
|
|
17218
|
+
};
|
|
17219
|
+
var ctaFullManifest = createBlockManifest(ctaFullConfig);
|
|
16858
17220
|
var ctaFullBlockDefinition = {
|
|
16859
17221
|
manifest: ctaFullManifest
|
|
16860
17222
|
};
|
|
@@ -19938,9 +20300,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
19938
20300
|
{
|
|
19939
20301
|
id: "images",
|
|
19940
20302
|
type: "repeater",
|
|
19941
|
-
label: "
|
|
20303
|
+
label: "Media",
|
|
19942
20304
|
required: false,
|
|
19943
|
-
itemLabel: "
|
|
20305
|
+
itemLabel: "Media",
|
|
19944
20306
|
minItems: 0,
|
|
19945
20307
|
maxItems: 6,
|
|
19946
20308
|
allowConversion: true,
|
|
@@ -19954,9 +20316,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
19954
20316
|
{
|
|
19955
20317
|
id: "image",
|
|
19956
20318
|
type: "media",
|
|
19957
|
-
label: "
|
|
20319
|
+
label: "Media",
|
|
19958
20320
|
required: true,
|
|
19959
|
-
mediaKinds: ["image"]
|
|
20321
|
+
mediaKinds: ["image", "video"]
|
|
19960
20322
|
}
|
|
19961
20323
|
]
|
|
19962
20324
|
}
|
|
@@ -20034,8 +20396,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20034
20396
|
{
|
|
20035
20397
|
id: "aspectRatio",
|
|
20036
20398
|
type: "select",
|
|
20037
|
-
label: "
|
|
20038
|
-
description: "Crop
|
|
20399
|
+
label: "Media aspect ratio",
|
|
20400
|
+
description: "Crop media to a consistent aspect ratio.",
|
|
20039
20401
|
required: false,
|
|
20040
20402
|
defaultValue: "auto",
|
|
20041
20403
|
multiple: false,
|
|
@@ -20222,8 +20584,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
20222
20584
|
}
|
|
20223
20585
|
};
|
|
20224
20586
|
})(),
|
|
20225
|
-
description: "Two columns:
|
|
20226
|
-
tags: ["media", "image", "carousel", "text", "two-column", "layout"],
|
|
20587
|
+
description: "Two columns: media/carousel + rich text (with optional section title).",
|
|
20588
|
+
tags: ["media", "image", "video", "carousel", "text", "two-column", "layout"],
|
|
20227
20589
|
icon: "Columns"
|
|
20228
20590
|
});
|
|
20229
20591
|
var mediaTextBlockDefinition = {
|
|
@@ -20374,6 +20736,19 @@ var transformSchema2 = z39.object({
|
|
|
20374
20736
|
hotspot: hotspotSchema2.optional(),
|
|
20375
20737
|
rotation: rotationSchema2.optional()
|
|
20376
20738
|
});
|
|
20739
|
+
var mediaPosterSchema = z39.discriminatedUnion("tag", [
|
|
20740
|
+
z39.object({
|
|
20741
|
+
tag: z39.literal("storage"),
|
|
20742
|
+
assetId: z39.string().optional(),
|
|
20743
|
+
storageBucket: z39.string().min(1),
|
|
20744
|
+
storagePath: z39.string().min(1)
|
|
20745
|
+
}),
|
|
20746
|
+
z39.object({
|
|
20747
|
+
tag: z39.literal("external-src"),
|
|
20748
|
+
assetId: z39.string().optional(),
|
|
20749
|
+
src: z39.string().url()
|
|
20750
|
+
})
|
|
20751
|
+
]);
|
|
20377
20752
|
var mediaBaseSchema = z39.object({
|
|
20378
20753
|
purpose: z39.string().optional(),
|
|
20379
20754
|
placeholder: z39.boolean().default(true).optional(),
|
|
@@ -20387,6 +20762,7 @@ var mediaBaseSchema = z39.object({
|
|
|
20387
20762
|
height: z39.number().optional(),
|
|
20388
20763
|
storageBucket: z39.string().optional(),
|
|
20389
20764
|
storagePath: z39.string().optional(),
|
|
20765
|
+
poster: mediaPosterSchema.optional(),
|
|
20390
20766
|
transform: transformSchema2.optional()
|
|
20391
20767
|
});
|
|
20392
20768
|
var imageMediaSchema = mediaBaseSchema.extend({ type: z39.literal("image") });
|
|
@@ -20870,10 +21246,28 @@ import { z as z45 } from "zod";
|
|
|
20870
21246
|
|
|
20871
21247
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
20872
21248
|
import { z as z44 } from "zod";
|
|
21249
|
+
|
|
21250
|
+
// ../blocks/src/system/constants/events.ts
|
|
21251
|
+
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
21252
|
+
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
21253
|
+
var eventCalendarListLayoutOptions = [
|
|
21254
|
+
{ id: "stack", label: "Stack" },
|
|
21255
|
+
{ id: "grid", label: "Grid" },
|
|
21256
|
+
{ id: "compact", label: "Compact" }
|
|
21257
|
+
];
|
|
21258
|
+
function isEventCalendarDisplayMode(value) {
|
|
21259
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
21260
|
+
}
|
|
21261
|
+
function isEventCalendarListLayout(value) {
|
|
21262
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
21263
|
+
}
|
|
21264
|
+
|
|
21265
|
+
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
20873
21266
|
var previewStageSchema = z44.enum(["preview", "published"]);
|
|
20874
21267
|
var registrationButtonVariantSchema = z44.enum(["primary", "secondary", "outline"]);
|
|
20875
21268
|
var eventButtonVariantSchema = z44.enum(["primary", "secondary", "outline", "link"]);
|
|
20876
|
-
var eventLayoutSchema = z44.enum(
|
|
21269
|
+
var eventLayoutSchema = z44.enum(eventCalendarListLayoutValues);
|
|
21270
|
+
var eventCalendarDisplayModeSchema = z44.enum(eventCalendarDisplayModeValues);
|
|
20877
21271
|
var columnOptionSchema = z44.enum(["2", "3", "4"]);
|
|
20878
21272
|
var weekStartSchema = z44.enum(["sunday", "monday"]);
|
|
20879
21273
|
var filterAutoShowSchema = z44.enum(["auto", "always", "never"]);
|
|
@@ -22255,7 +22649,232 @@ var eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22255
22649
|
});
|
|
22256
22650
|
|
|
22257
22651
|
// ../blocks/src/system/blocks/events/event-listing.ts
|
|
22258
|
-
var
|
|
22652
|
+
var eventListingAdditionalFields = [
|
|
22653
|
+
...sectionHeaderFields("All Events"),
|
|
22654
|
+
...(() => {
|
|
22655
|
+
const columns = columnsField(["2", "3", "4"]);
|
|
22656
|
+
return [
|
|
22657
|
+
{
|
|
22658
|
+
...layoutField,
|
|
22659
|
+
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22660
|
+
},
|
|
22661
|
+
{
|
|
22662
|
+
...columns,
|
|
22663
|
+
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22664
|
+
}
|
|
22665
|
+
];
|
|
22666
|
+
})(),
|
|
22667
|
+
{
|
|
22668
|
+
id: "eventsPerPage",
|
|
22669
|
+
type: "select",
|
|
22670
|
+
label: "Events per page",
|
|
22671
|
+
description: "Number of events to load at a time",
|
|
22672
|
+
required: false,
|
|
22673
|
+
multiple: false,
|
|
22674
|
+
defaultValue: "12",
|
|
22675
|
+
options: [
|
|
22676
|
+
{ value: "3", label: "3 events" },
|
|
22677
|
+
{ value: "6", label: "6 events" },
|
|
22678
|
+
{ value: "12", label: "12 events" },
|
|
22679
|
+
{ value: "24", label: "24 events" }
|
|
22680
|
+
],
|
|
22681
|
+
ui: { intent: "display" }
|
|
22682
|
+
},
|
|
22683
|
+
{
|
|
22684
|
+
id: "paginationMode",
|
|
22685
|
+
type: "select",
|
|
22686
|
+
label: "More events",
|
|
22687
|
+
description: "How to access events beyond the initial list",
|
|
22688
|
+
required: false,
|
|
22689
|
+
multiple: false,
|
|
22690
|
+
defaultValue: "loadMore",
|
|
22691
|
+
options: [
|
|
22692
|
+
{ value: "loadMore", label: "Load more button" },
|
|
22693
|
+
{ value: "seeAllLink", label: "Link to another page" }
|
|
22694
|
+
],
|
|
22695
|
+
ui: { intent: "display" }
|
|
22696
|
+
},
|
|
22697
|
+
{
|
|
22698
|
+
id: "seeAllUrl",
|
|
22699
|
+
type: "link",
|
|
22700
|
+
label: "See all destination",
|
|
22701
|
+
required: false,
|
|
22702
|
+
ui: {
|
|
22703
|
+
intent: "display",
|
|
22704
|
+
visibleWhen: {
|
|
22705
|
+
field: "paginationMode",
|
|
22706
|
+
equals: "seeAllLink"
|
|
22707
|
+
}
|
|
22708
|
+
}
|
|
22709
|
+
},
|
|
22710
|
+
{
|
|
22711
|
+
id: "loadMoreText",
|
|
22712
|
+
type: "text",
|
|
22713
|
+
label: "Button text",
|
|
22714
|
+
description: "Text for the pagination button or link",
|
|
22715
|
+
required: false,
|
|
22716
|
+
multiline: false,
|
|
22717
|
+
defaultValue: "Load more events",
|
|
22718
|
+
maxLength: 40
|
|
22719
|
+
},
|
|
22720
|
+
...cardStylingFields.map((field) => ({
|
|
22721
|
+
...field,
|
|
22722
|
+
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22723
|
+
})),
|
|
22724
|
+
...eventDisplayFields.map((field) => ({
|
|
22725
|
+
...field,
|
|
22726
|
+
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22727
|
+
})),
|
|
22728
|
+
{
|
|
22729
|
+
id: "kind",
|
|
22730
|
+
type: "select",
|
|
22731
|
+
label: "Show",
|
|
22732
|
+
description: "Choose whether this list shows courses, events, or both",
|
|
22733
|
+
required: false,
|
|
22734
|
+
multiple: false,
|
|
22735
|
+
defaultValue: "all",
|
|
22736
|
+
options: [
|
|
22737
|
+
{ value: "all", label: "Courses and events" },
|
|
22738
|
+
{ value: "courses", label: "Courses only" },
|
|
22739
|
+
{ value: "events", label: "Events only" }
|
|
22740
|
+
],
|
|
22741
|
+
ui: { intent: "behavior" }
|
|
22742
|
+
},
|
|
22743
|
+
{
|
|
22744
|
+
id: "eventSurface",
|
|
22745
|
+
type: "select",
|
|
22746
|
+
label: "Event surface",
|
|
22747
|
+
description: "Choose a semantic event scope",
|
|
22748
|
+
required: false,
|
|
22749
|
+
multiple: false,
|
|
22750
|
+
defaultValue: "all",
|
|
22751
|
+
options: [
|
|
22752
|
+
{ value: "all", label: "All events" },
|
|
22753
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22754
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22755
|
+
{ value: "custom", label: "Custom" }
|
|
22756
|
+
],
|
|
22757
|
+
ui: { intent: "behavior" }
|
|
22758
|
+
},
|
|
22759
|
+
{
|
|
22760
|
+
id: "filterEventPresets",
|
|
22761
|
+
type: "select",
|
|
22762
|
+
label: "Pre-filter by event type",
|
|
22763
|
+
description: "Restrict this block to specific event types",
|
|
22764
|
+
required: false,
|
|
22765
|
+
multiple: true,
|
|
22766
|
+
defaultValue: [],
|
|
22767
|
+
options: [
|
|
22768
|
+
{ value: "class", label: "Classes" },
|
|
22769
|
+
{ value: "workshop", label: "Workshops" },
|
|
22770
|
+
{ value: "retreat", label: "Retreats" },
|
|
22771
|
+
{ value: "performance", label: "Performances" }
|
|
22772
|
+
],
|
|
22773
|
+
ui: {
|
|
22774
|
+
intent: "behavior",
|
|
22775
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22776
|
+
}
|
|
22777
|
+
},
|
|
22778
|
+
{
|
|
22779
|
+
id: "scheduleScope",
|
|
22780
|
+
type: "select",
|
|
22781
|
+
label: "Schedule cadence",
|
|
22782
|
+
description: "Restrict this block by recurrence",
|
|
22783
|
+
required: false,
|
|
22784
|
+
multiple: false,
|
|
22785
|
+
defaultValue: "any",
|
|
22786
|
+
options: [
|
|
22787
|
+
{ value: "any", label: "Any cadence" },
|
|
22788
|
+
{ value: "recurring", label: "Recurring only" },
|
|
22789
|
+
{ value: "oneOff", label: "One-off only" }
|
|
22790
|
+
],
|
|
22791
|
+
ui: {
|
|
22792
|
+
intent: "behavior",
|
|
22793
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22794
|
+
}
|
|
22795
|
+
},
|
|
22796
|
+
{
|
|
22797
|
+
...emptyStateField,
|
|
22798
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22799
|
+
},
|
|
22800
|
+
sectionStylesField({
|
|
22801
|
+
id: "_sectionStyles",
|
|
22802
|
+
label: "Section styles",
|
|
22803
|
+
renderInHeader: false
|
|
22804
|
+
})
|
|
22805
|
+
];
|
|
22806
|
+
var eventListingLayout = [
|
|
22807
|
+
styledSection({
|
|
22808
|
+
children: sectionContainer([
|
|
22809
|
+
// Optional heading
|
|
22810
|
+
text(
|
|
22811
|
+
{ as: "h2" },
|
|
22812
|
+
bind("content.heading"),
|
|
22813
|
+
when("content.heading")
|
|
22814
|
+
),
|
|
22815
|
+
// Optional description
|
|
22816
|
+
richText(
|
|
22817
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
22818
|
+
bind("content.description"),
|
|
22819
|
+
when("content.description")
|
|
22820
|
+
),
|
|
22821
|
+
// Event listing component with pagination
|
|
22822
|
+
el("event-listing", withApiBindings({
|
|
22823
|
+
events: { $bind: { from: "data.events" } },
|
|
22824
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22825
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22826
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22827
|
+
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22828
|
+
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22829
|
+
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22830
|
+
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
22831
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22832
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22833
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22834
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22835
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
22836
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22837
|
+
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
22838
|
+
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
22839
|
+
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
22840
|
+
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
22841
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22842
|
+
}))
|
|
22843
|
+
], {
|
|
22844
|
+
gap: "lg"
|
|
22845
|
+
}),
|
|
22846
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
22847
|
+
baseClass: "",
|
|
22848
|
+
spacing: "comfortable"
|
|
22849
|
+
})
|
|
22850
|
+
];
|
|
22851
|
+
var eventListingDerivedFields = [
|
|
22852
|
+
{
|
|
22853
|
+
id: "layout",
|
|
22854
|
+
type: "select",
|
|
22855
|
+
required: false,
|
|
22856
|
+
multiple: false,
|
|
22857
|
+
options: [
|
|
22858
|
+
{ value: "grid" },
|
|
22859
|
+
{ value: "stack" }
|
|
22860
|
+
]
|
|
22861
|
+
},
|
|
22862
|
+
{
|
|
22863
|
+
id: "paginationMode",
|
|
22864
|
+
type: "select",
|
|
22865
|
+
required: false,
|
|
22866
|
+
multiple: false,
|
|
22867
|
+
options: [
|
|
22868
|
+
{ value: "loadMore" },
|
|
22869
|
+
{ value: "seeAllLink" }
|
|
22870
|
+
]
|
|
22871
|
+
}
|
|
22872
|
+
];
|
|
22873
|
+
var eventListingContentShape = {
|
|
22874
|
+
additionalFields: eventListingDerivedFields,
|
|
22875
|
+
skipSectionStyles: true
|
|
22876
|
+
};
|
|
22877
|
+
var eventListingConfig = {
|
|
22259
22878
|
id: "block.event-listing",
|
|
22260
22879
|
version: "1.1.0",
|
|
22261
22880
|
title: "Event Listing",
|
|
@@ -22263,211 +22882,18 @@ var eventListingManifest = createBlockManifest({
|
|
|
22263
22882
|
description: "Paginated list of all upcoming events",
|
|
22264
22883
|
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
22265
22884
|
skipSectionStyles: true,
|
|
22266
|
-
additionalFields:
|
|
22267
|
-
...sectionHeaderFields("All Events"),
|
|
22268
|
-
...(() => {
|
|
22269
|
-
const columns = columnsField(["2", "3", "4"]);
|
|
22270
|
-
return [
|
|
22271
|
-
{
|
|
22272
|
-
...layoutField,
|
|
22273
|
-
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
22274
|
-
},
|
|
22275
|
-
{
|
|
22276
|
-
...columns,
|
|
22277
|
-
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
22278
|
-
}
|
|
22279
|
-
];
|
|
22280
|
-
})(),
|
|
22281
|
-
{
|
|
22282
|
-
id: "eventsPerPage",
|
|
22283
|
-
type: "select",
|
|
22284
|
-
label: "Events per page",
|
|
22285
|
-
description: "Number of events to load at a time",
|
|
22286
|
-
required: false,
|
|
22287
|
-
multiple: false,
|
|
22288
|
-
defaultValue: "12",
|
|
22289
|
-
options: [
|
|
22290
|
-
{ value: "3", label: "3 events" },
|
|
22291
|
-
{ value: "6", label: "6 events" },
|
|
22292
|
-
{ value: "12", label: "12 events" },
|
|
22293
|
-
{ value: "24", label: "24 events" }
|
|
22294
|
-
],
|
|
22295
|
-
ui: { intent: "display" }
|
|
22296
|
-
},
|
|
22297
|
-
{
|
|
22298
|
-
id: "paginationMode",
|
|
22299
|
-
type: "select",
|
|
22300
|
-
label: "More events",
|
|
22301
|
-
description: "How to access events beyond the initial list",
|
|
22302
|
-
required: false,
|
|
22303
|
-
multiple: false,
|
|
22304
|
-
defaultValue: "loadMore",
|
|
22305
|
-
options: [
|
|
22306
|
-
{ value: "loadMore", label: "Load more button" },
|
|
22307
|
-
{ value: "seeAllLink", label: "Link to another page" }
|
|
22308
|
-
],
|
|
22309
|
-
ui: { intent: "display" }
|
|
22310
|
-
},
|
|
22311
|
-
{
|
|
22312
|
-
id: "seeAllUrl",
|
|
22313
|
-
type: "link",
|
|
22314
|
-
label: "See all destination",
|
|
22315
|
-
required: false,
|
|
22316
|
-
ui: {
|
|
22317
|
-
intent: "display",
|
|
22318
|
-
visibleWhen: {
|
|
22319
|
-
field: "paginationMode",
|
|
22320
|
-
equals: "seeAllLink"
|
|
22321
|
-
}
|
|
22322
|
-
}
|
|
22323
|
-
},
|
|
22324
|
-
{
|
|
22325
|
-
id: "loadMoreText",
|
|
22326
|
-
type: "text",
|
|
22327
|
-
label: "Button text",
|
|
22328
|
-
description: "Text for the pagination button or link",
|
|
22329
|
-
required: false,
|
|
22330
|
-
multiline: false,
|
|
22331
|
-
defaultValue: "Load more events",
|
|
22332
|
-
maxLength: 40
|
|
22333
|
-
},
|
|
22334
|
-
...cardStylingFields.map((field) => ({
|
|
22335
|
-
...field,
|
|
22336
|
-
ui: { ...field.ui ?? {}, intent: "style" }
|
|
22337
|
-
})),
|
|
22338
|
-
...eventDisplayFields.map((field) => ({
|
|
22339
|
-
...field,
|
|
22340
|
-
ui: { ...field.ui ?? {}, intent: "display" }
|
|
22341
|
-
})),
|
|
22342
|
-
{
|
|
22343
|
-
id: "kind",
|
|
22344
|
-
type: "select",
|
|
22345
|
-
label: "Show",
|
|
22346
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
22347
|
-
required: false,
|
|
22348
|
-
multiple: false,
|
|
22349
|
-
defaultValue: "all",
|
|
22350
|
-
options: [
|
|
22351
|
-
{ value: "all", label: "Courses and events" },
|
|
22352
|
-
{ value: "courses", label: "Courses only" },
|
|
22353
|
-
{ value: "events", label: "Events only" }
|
|
22354
|
-
],
|
|
22355
|
-
ui: { intent: "behavior" }
|
|
22356
|
-
},
|
|
22357
|
-
{
|
|
22358
|
-
id: "eventSurface",
|
|
22359
|
-
type: "select",
|
|
22360
|
-
label: "Event surface",
|
|
22361
|
-
description: "Choose a semantic event scope",
|
|
22362
|
-
required: false,
|
|
22363
|
-
multiple: false,
|
|
22364
|
-
defaultValue: "all",
|
|
22365
|
-
options: [
|
|
22366
|
-
{ value: "all", label: "All events" },
|
|
22367
|
-
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
22368
|
-
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
22369
|
-
{ value: "custom", label: "Custom" }
|
|
22370
|
-
],
|
|
22371
|
-
ui: { intent: "behavior" }
|
|
22372
|
-
},
|
|
22373
|
-
{
|
|
22374
|
-
id: "filterEventPresets",
|
|
22375
|
-
type: "select",
|
|
22376
|
-
label: "Pre-filter by event type",
|
|
22377
|
-
description: "Restrict this block to specific event types",
|
|
22378
|
-
required: false,
|
|
22379
|
-
multiple: true,
|
|
22380
|
-
defaultValue: [],
|
|
22381
|
-
options: [
|
|
22382
|
-
{ value: "class", label: "Classes" },
|
|
22383
|
-
{ value: "workshop", label: "Workshops" },
|
|
22384
|
-
{ value: "retreat", label: "Retreats" },
|
|
22385
|
-
{ value: "performance", label: "Performances" }
|
|
22386
|
-
],
|
|
22387
|
-
ui: {
|
|
22388
|
-
intent: "behavior",
|
|
22389
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22390
|
-
}
|
|
22391
|
-
},
|
|
22392
|
-
{
|
|
22393
|
-
id: "scheduleScope",
|
|
22394
|
-
type: "select",
|
|
22395
|
-
label: "Schedule cadence",
|
|
22396
|
-
description: "Restrict this block by recurrence",
|
|
22397
|
-
required: false,
|
|
22398
|
-
multiple: false,
|
|
22399
|
-
defaultValue: "any",
|
|
22400
|
-
options: [
|
|
22401
|
-
{ value: "any", label: "Any cadence" },
|
|
22402
|
-
{ value: "recurring", label: "Recurring only" },
|
|
22403
|
-
{ value: "oneOff", label: "One-off only" }
|
|
22404
|
-
],
|
|
22405
|
-
ui: {
|
|
22406
|
-
intent: "behavior",
|
|
22407
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
22408
|
-
}
|
|
22409
|
-
},
|
|
22410
|
-
{
|
|
22411
|
-
...emptyStateField,
|
|
22412
|
-
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
22413
|
-
},
|
|
22414
|
-
sectionStylesField({
|
|
22415
|
-
id: "_sectionStyles",
|
|
22416
|
-
label: "Section styles",
|
|
22417
|
-
renderInHeader: false
|
|
22418
|
-
})
|
|
22419
|
-
],
|
|
22885
|
+
additionalFields: eventListingAdditionalFields,
|
|
22420
22886
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
22421
22887
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: true },
|
|
22422
22888
|
category: "interactive",
|
|
22423
22889
|
tags: ["events", "listing", "paginated", "archive", "all-events"],
|
|
22424
22890
|
icon: "List",
|
|
22425
|
-
layout:
|
|
22426
|
-
|
|
22427
|
-
|
|
22428
|
-
|
|
22429
|
-
|
|
22430
|
-
|
|
22431
|
-
bind("content.heading"),
|
|
22432
|
-
when("content.heading")
|
|
22433
|
-
),
|
|
22434
|
-
// Optional description
|
|
22435
|
-
richText(
|
|
22436
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
22437
|
-
bind("content.description"),
|
|
22438
|
-
when("content.description")
|
|
22439
|
-
),
|
|
22440
|
-
// Event listing component with pagination
|
|
22441
|
-
el("event-listing", withApiBindings({
|
|
22442
|
-
events: { $bind: { from: "data.events" } },
|
|
22443
|
-
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
22444
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22445
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22446
|
-
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
22447
|
-
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
22448
|
-
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22449
|
-
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
22450
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22451
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22452
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22453
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22454
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
22455
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22456
|
-
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
22457
|
-
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
22458
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
22459
|
-
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
22460
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22461
|
-
}))
|
|
22462
|
-
], {
|
|
22463
|
-
gap: "lg"
|
|
22464
|
-
}),
|
|
22465
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
22466
|
-
baseClass: "",
|
|
22467
|
-
spacing: "comfortable"
|
|
22468
|
-
})
|
|
22469
|
-
]
|
|
22470
|
-
});
|
|
22891
|
+
layout: eventListingLayout
|
|
22892
|
+
};
|
|
22893
|
+
var eventListingManifest = createBlockManifestWithContentShape(
|
|
22894
|
+
eventListingConfig,
|
|
22895
|
+
eventListingContentShape
|
|
22896
|
+
);
|
|
22471
22897
|
var eventListingBlockDefinition = {
|
|
22472
22898
|
manifest: eventListingManifest,
|
|
22473
22899
|
runtime: eventListingBlockRuntime,
|
|
@@ -22494,7 +22920,6 @@ var eventListingBlockDefinition = {
|
|
|
22494
22920
|
|
|
22495
22921
|
// ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
22496
22922
|
import { z as z51 } from "zod";
|
|
22497
|
-
var displayModeSchema = z51.enum(["combined", "month", "week", "list", "timetable"]);
|
|
22498
22923
|
var eventBlockKindSchema2 = z51.enum(eventBlockKindValues);
|
|
22499
22924
|
var eventSurfaceScopeSchema2 = z51.enum(eventSurfaceScopeValues);
|
|
22500
22925
|
var eventScheduleScopeSchema3 = z51.enum(eventScheduleScopeValues);
|
|
@@ -22504,7 +22929,8 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22504
22929
|
siteId: z51.string(),
|
|
22505
22930
|
apiBaseUrl: z51.string().optional(),
|
|
22506
22931
|
stage: previewStageSchema.optional(),
|
|
22507
|
-
|
|
22932
|
+
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
22933
|
+
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
22508
22934
|
listLayout: eventLayoutSchema.optional(),
|
|
22509
22935
|
listColumns: columnOptionSchema.optional(),
|
|
22510
22936
|
layout: eventLayoutSchema.optional(),
|
|
@@ -22536,7 +22962,7 @@ var eventCalendarSourceSchema = z51.object(
|
|
|
22536
22962
|
);
|
|
22537
22963
|
var eventCalendarDisplaySchema = z51.object({
|
|
22538
22964
|
kind: z51.literal("event-calendar"),
|
|
22539
|
-
displayMode:
|
|
22965
|
+
displayMode: eventCalendarDisplayModeSchema,
|
|
22540
22966
|
className: z51.string().nullable(),
|
|
22541
22967
|
events: z51.array(publicEventSchema),
|
|
22542
22968
|
listLayout: eventLayoutSchema,
|
|
@@ -22591,7 +23017,7 @@ var eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
22591
23017
|
function buildEventCalendarDisplay(source) {
|
|
22592
23018
|
return {
|
|
22593
23019
|
kind: "event-calendar",
|
|
22594
|
-
displayMode: source.displayMode ?? "combined",
|
|
23020
|
+
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
22595
23021
|
className: source.className ?? null,
|
|
22596
23022
|
events: (source.events ?? []).slice().sort(
|
|
22597
23023
|
(left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()
|
|
@@ -22658,8 +23084,12 @@ var eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
22658
23084
|
function normalizeEventCalendarContent(content) {
|
|
22659
23085
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
22660
23086
|
const kind = normalizeEventBlockKind(record.kind);
|
|
23087
|
+
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
22661
23088
|
return {
|
|
22662
23089
|
...record,
|
|
23090
|
+
...variant ? { variant } : {},
|
|
23091
|
+
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
23092
|
+
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
22663
23093
|
kind,
|
|
22664
23094
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
22665
23095
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
@@ -22671,355 +23101,515 @@ function normalizeEventCalendarContent(content) {
|
|
|
22671
23101
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
22672
23102
|
};
|
|
22673
23103
|
}
|
|
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
|
-
|
|
22770
|
-
|
|
22771
|
-
|
|
22772
|
-
|
|
22773
|
-
|
|
22774
|
-
|
|
22775
|
-
|
|
22776
|
-
id: "loadMoreText",
|
|
22777
|
-
type: "text",
|
|
22778
|
-
label: "Load more button text",
|
|
22779
|
-
description: "Text for the load more button",
|
|
22780
|
-
required: false,
|
|
22781
|
-
multiline: false,
|
|
22782
|
-
defaultValue: "Load more events",
|
|
22783
|
-
ui: {
|
|
22784
|
-
intent: "content",
|
|
22785
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list"] }
|
|
22786
|
-
}
|
|
22787
|
-
},
|
|
22788
|
-
// Calendar options
|
|
22789
|
-
{
|
|
22790
|
-
id: "startOfWeek",
|
|
22791
|
-
type: "select",
|
|
22792
|
-
label: "Week starts on",
|
|
22793
|
-
description: "First day of the week",
|
|
22794
|
-
required: false,
|
|
22795
|
-
multiple: false,
|
|
22796
|
-
defaultValue: "monday",
|
|
22797
|
-
options: [
|
|
22798
|
-
{ value: "sunday", label: "Sunday" },
|
|
22799
|
-
{ value: "monday", label: "Monday" }
|
|
22800
|
-
],
|
|
22801
|
-
ui: {
|
|
22802
|
-
intent: "display",
|
|
22803
|
-
visibleWhen: {
|
|
22804
|
-
field: "displayMode",
|
|
22805
|
-
oneOf: ["combined", "month", "week"]
|
|
22806
|
-
}
|
|
22807
|
-
}
|
|
22808
|
-
},
|
|
22809
|
-
// Combined mode options
|
|
22810
|
-
{
|
|
22811
|
-
id: "calendarTabViews",
|
|
22812
|
-
type: "select",
|
|
22813
|
-
label: "Calendar tab views",
|
|
22814
|
-
description: "Which calendar views to show in the Calendar tab",
|
|
22815
|
-
required: false,
|
|
22816
|
-
multiple: false,
|
|
22817
|
-
defaultValue: "both",
|
|
22818
|
-
options: [
|
|
22819
|
-
{ value: "both", label: "Month + Week toggle" },
|
|
22820
|
-
{ value: "month", label: "Month only" },
|
|
22821
|
-
{ value: "week", label: "Week only" }
|
|
22822
|
-
],
|
|
22823
|
-
ui: {
|
|
22824
|
-
intent: "display",
|
|
22825
|
-
visibleWhen: { field: "displayMode", equals: "combined" }
|
|
22826
|
-
}
|
|
22827
|
-
},
|
|
22828
|
-
// Filtering options
|
|
22829
|
-
{
|
|
22830
|
-
id: "kind",
|
|
22831
|
-
type: "select",
|
|
22832
|
-
label: "Show",
|
|
22833
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
22834
|
-
required: false,
|
|
22835
|
-
multiple: false,
|
|
22836
|
-
defaultValue: "all",
|
|
22837
|
-
options: [
|
|
22838
|
-
{ value: "all", label: "All offerings" },
|
|
22839
|
-
{ value: "courses", label: "Courses only" },
|
|
22840
|
-
{ value: "events", label: "Events only" }
|
|
22841
|
-
],
|
|
22842
|
-
ui: { intent: "behavior" }
|
|
22843
|
-
},
|
|
22844
|
-
{
|
|
22845
|
-
id: "showFilters",
|
|
22846
|
-
type: "boolean",
|
|
22847
|
-
label: "Show filters",
|
|
22848
|
-
description: "Show category, staff, and venue filters",
|
|
22849
|
-
required: false,
|
|
22850
|
-
defaultValue: true,
|
|
22851
|
-
ui: {
|
|
22852
|
-
intent: "display",
|
|
22853
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22854
|
-
}
|
|
22855
|
-
},
|
|
22856
|
-
{
|
|
22857
|
-
id: "showCategoryFilter",
|
|
22858
|
-
type: "select",
|
|
22859
|
-
label: "Show category filter",
|
|
22860
|
-
description: "When to show the category filter dropdown",
|
|
22861
|
-
required: false,
|
|
22862
|
-
multiple: false,
|
|
22863
|
-
defaultValue: "auto",
|
|
22864
|
-
options: [
|
|
22865
|
-
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
22866
|
-
{ value: "always", label: "Always" },
|
|
22867
|
-
{ value: "never", label: "Never" }
|
|
23104
|
+
function normalizeEventCalendarDisplayMode(value) {
|
|
23105
|
+
return isEventCalendarDisplayMode(value) ? value : void 0;
|
|
23106
|
+
}
|
|
23107
|
+
function normalizeEventCalendarListLayout(value) {
|
|
23108
|
+
return isEventCalendarListLayout(value) ? value : void 0;
|
|
23109
|
+
}
|
|
23110
|
+
var eventCalendarLayout = [
|
|
23111
|
+
styledSection({
|
|
23112
|
+
children: sectionContainer(
|
|
23113
|
+
[
|
|
23114
|
+
// Optional heading
|
|
23115
|
+
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
23116
|
+
// Optional description
|
|
23117
|
+
richText(
|
|
23118
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
23119
|
+
bind("content.description"),
|
|
23120
|
+
when("content.description")
|
|
23121
|
+
),
|
|
23122
|
+
// Event calendar component (handles all display modes)
|
|
23123
|
+
el(
|
|
23124
|
+
"event-calendar",
|
|
23125
|
+
withApiBindings({
|
|
23126
|
+
events: { $bind: { from: "data.events" } },
|
|
23127
|
+
stage: {
|
|
23128
|
+
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23129
|
+
},
|
|
23130
|
+
// Variant is the new Theme V2-facing display mode. displayMode is
|
|
23131
|
+
// retained as a legacy fallback for existing content.
|
|
23132
|
+
variant: {
|
|
23133
|
+
$bind: { from: "content.variant" }
|
|
23134
|
+
},
|
|
23135
|
+
displayMode: {
|
|
23136
|
+
$bind: { from: "content.displayMode" }
|
|
23137
|
+
},
|
|
23138
|
+
// List options
|
|
23139
|
+
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23140
|
+
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23141
|
+
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23142
|
+
layout: { $bind: { from: "content.layout" } },
|
|
23143
|
+
columns: { $bind: { from: "content.columns" } },
|
|
23144
|
+
eventsPerPage: {
|
|
23145
|
+
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23146
|
+
},
|
|
23147
|
+
compactEventsPerPage: {
|
|
23148
|
+
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23149
|
+
},
|
|
23150
|
+
loadMoreText: {
|
|
23151
|
+
$bind: {
|
|
23152
|
+
from: "content.loadMoreText",
|
|
23153
|
+
fallback: "Load more events"
|
|
23154
|
+
}
|
|
23155
|
+
},
|
|
23156
|
+
// Calendar options
|
|
23157
|
+
startOfWeek: {
|
|
23158
|
+
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23159
|
+
},
|
|
23160
|
+
calendarTabViews: {
|
|
23161
|
+
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23162
|
+
},
|
|
23163
|
+
// Filtering options
|
|
23164
|
+
showFilters: {
|
|
23165
|
+
$bind: { from: "content.showFilters", fallback: true }
|
|
23166
|
+
},
|
|
23167
|
+
showCategoryFilter: {
|
|
23168
|
+
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23169
|
+
},
|
|
23170
|
+
showVenueFilter: {
|
|
23171
|
+
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23172
|
+
},
|
|
23173
|
+
showStaffFilter: {
|
|
23174
|
+
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23175
|
+
},
|
|
23176
|
+
showCapacity: {
|
|
23177
|
+
$bind: { from: "content.showCapacity", fallback: true }
|
|
23178
|
+
},
|
|
23179
|
+
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23180
|
+
eventSurface: {
|
|
23181
|
+
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23182
|
+
},
|
|
23183
|
+
filterEventPresets: {
|
|
23184
|
+
$bind: { from: "content.filterEventPresets" }
|
|
23185
|
+
},
|
|
23186
|
+
scheduleScope: {
|
|
23187
|
+
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23188
|
+
},
|
|
23189
|
+
filterCategoryIds: {
|
|
23190
|
+
$bind: { from: "content.filterCategoryIds" }
|
|
23191
|
+
},
|
|
23192
|
+
filterStaffMemberId: {
|
|
23193
|
+
$bind: { from: "content.filterStaffMemberId" }
|
|
23194
|
+
},
|
|
23195
|
+
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23196
|
+
// Styling
|
|
23197
|
+
buttonVariant: {
|
|
23198
|
+
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23199
|
+
},
|
|
23200
|
+
buttonText: {
|
|
23201
|
+
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23202
|
+
},
|
|
23203
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23204
|
+
})
|
|
23205
|
+
)
|
|
22868
23206
|
],
|
|
22869
|
-
|
|
22870
|
-
|
|
22871
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22872
|
-
}
|
|
22873
|
-
},
|
|
22874
|
-
{
|
|
22875
|
-
id: "showVenueFilter",
|
|
22876
|
-
type: "boolean",
|
|
22877
|
-
label: "Show venue filter",
|
|
22878
|
-
description: "Show venue filter dropdown",
|
|
22879
|
-
required: false,
|
|
22880
|
-
defaultValue: false,
|
|
22881
|
-
ui: {
|
|
22882
|
-
intent: "display",
|
|
22883
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22884
|
-
}
|
|
22885
|
-
},
|
|
22886
|
-
{
|
|
22887
|
-
id: "showStaffFilter",
|
|
22888
|
-
type: "boolean",
|
|
22889
|
-
label: "Show staff filter",
|
|
22890
|
-
description: "Show staff filter dropdown",
|
|
22891
|
-
required: false,
|
|
22892
|
-
defaultValue: true,
|
|
22893
|
-
ui: {
|
|
22894
|
-
intent: "display",
|
|
22895
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
22896
|
-
}
|
|
22897
|
-
},
|
|
22898
|
-
{
|
|
22899
|
-
id: "showCapacity",
|
|
22900
|
-
type: "boolean",
|
|
22901
|
-
label: "Show available spots",
|
|
22902
|
-
description: "Display remaining capacity on event cards and timetable cells",
|
|
22903
|
-
required: false,
|
|
22904
|
-
defaultValue: true,
|
|
22905
|
-
ui: {
|
|
22906
|
-
intent: "display",
|
|
22907
|
-
visibleWhen: {
|
|
22908
|
-
field: "displayMode",
|
|
22909
|
-
oneOf: ["combined", "list", "week", "timetable"]
|
|
22910
|
-
}
|
|
23207
|
+
{
|
|
23208
|
+
gap: "lg"
|
|
22911
23209
|
}
|
|
22912
|
-
|
|
22913
|
-
//
|
|
22914
|
-
|
|
22915
|
-
|
|
22916
|
-
|
|
22917
|
-
|
|
22918
|
-
|
|
22919
|
-
|
|
22920
|
-
|
|
22921
|
-
|
|
22922
|
-
|
|
22923
|
-
|
|
22924
|
-
|
|
22925
|
-
|
|
22926
|
-
|
|
22927
|
-
|
|
22928
|
-
|
|
22929
|
-
|
|
22930
|
-
|
|
22931
|
-
|
|
22932
|
-
|
|
22933
|
-
|
|
22934
|
-
|
|
22935
|
-
|
|
22936
|
-
|
|
22937
|
-
|
|
22938
|
-
|
|
22939
|
-
|
|
22940
|
-
|
|
22941
|
-
|
|
22942
|
-
|
|
22943
|
-
|
|
22944
|
-
|
|
22945
|
-
|
|
22946
|
-
|
|
23210
|
+
),
|
|
23211
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
23212
|
+
baseClass: "",
|
|
23213
|
+
spacing: "comfortable"
|
|
23214
|
+
})
|
|
23215
|
+
];
|
|
23216
|
+
var eventCalendarAdditionalFields = [
|
|
23217
|
+
...sectionHeaderFields("Event Calendar"),
|
|
23218
|
+
// Display Mode (replaces calendarView)
|
|
23219
|
+
{
|
|
23220
|
+
id: "displayMode",
|
|
23221
|
+
type: "select",
|
|
23222
|
+
label: "Display mode",
|
|
23223
|
+
description: "How events are displayed",
|
|
23224
|
+
required: false,
|
|
23225
|
+
multiple: false,
|
|
23226
|
+
defaultValue: "combined",
|
|
23227
|
+
options: [
|
|
23228
|
+
{ value: "combined", label: "Combined (List + Calendar tabs)" },
|
|
23229
|
+
{ value: "month", label: "Month calendar" },
|
|
23230
|
+
{ value: "week", label: "Week agenda" },
|
|
23231
|
+
{ value: "timetable", label: "Timetable" },
|
|
23232
|
+
{ value: "list", label: "List" }
|
|
23233
|
+
],
|
|
23234
|
+
ui: { intent: "display", hidden: true }
|
|
23235
|
+
},
|
|
23236
|
+
// List options (visible when displayMode is list or combined)
|
|
23237
|
+
{
|
|
23238
|
+
id: "listLayout",
|
|
23239
|
+
type: "select",
|
|
23240
|
+
label: "List layout",
|
|
23241
|
+
description: "Layout style for list view",
|
|
23242
|
+
required: false,
|
|
23243
|
+
multiple: false,
|
|
23244
|
+
defaultValue: "stack",
|
|
23245
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23246
|
+
value: option.id,
|
|
23247
|
+
label: option.label
|
|
23248
|
+
})),
|
|
23249
|
+
ui: {
|
|
23250
|
+
intent: "display",
|
|
23251
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23252
|
+
}
|
|
23253
|
+
},
|
|
23254
|
+
{
|
|
23255
|
+
id: "listColumns",
|
|
23256
|
+
type: "select",
|
|
23257
|
+
label: "Grid columns",
|
|
23258
|
+
description: "Number of columns in grid layout",
|
|
23259
|
+
required: false,
|
|
23260
|
+
multiple: false,
|
|
23261
|
+
defaultValue: "3",
|
|
23262
|
+
options: [
|
|
23263
|
+
{ value: "2", label: "2 columns" },
|
|
23264
|
+
{ value: "3", label: "3 columns" },
|
|
23265
|
+
{ value: "4", label: "4 columns" }
|
|
23266
|
+
],
|
|
23267
|
+
ui: {
|
|
23268
|
+
intent: "display",
|
|
23269
|
+
visibleWhen: { field: "listLayout", equals: "grid" }
|
|
23270
|
+
}
|
|
23271
|
+
},
|
|
23272
|
+
{
|
|
23273
|
+
id: "eventsPerPage",
|
|
23274
|
+
type: "select",
|
|
23275
|
+
label: "Events per page (cards)",
|
|
23276
|
+
description: "Number of events to load initially in card layouts",
|
|
23277
|
+
required: false,
|
|
23278
|
+
multiple: false,
|
|
23279
|
+
defaultValue: "12",
|
|
23280
|
+
options: [
|
|
23281
|
+
{ value: "6", label: "6" },
|
|
23282
|
+
{ value: "12", label: "12" },
|
|
23283
|
+
{ value: "24", label: "24" }
|
|
23284
|
+
],
|
|
23285
|
+
ui: {
|
|
23286
|
+
intent: "display",
|
|
23287
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23288
|
+
}
|
|
23289
|
+
},
|
|
23290
|
+
{
|
|
23291
|
+
id: "compactEventsPerPage",
|
|
23292
|
+
type: "select",
|
|
23293
|
+
label: "Events per page (compact)",
|
|
23294
|
+
description: "Number of events to show per page in compact layout",
|
|
23295
|
+
required: false,
|
|
23296
|
+
multiple: false,
|
|
23297
|
+
defaultValue: "10",
|
|
23298
|
+
options: [
|
|
23299
|
+
{ value: "10", label: "10" },
|
|
23300
|
+
{ value: "20", label: "20" },
|
|
23301
|
+
{ value: "30", label: "30" }
|
|
23302
|
+
],
|
|
23303
|
+
ui: {
|
|
23304
|
+
intent: "display",
|
|
23305
|
+
visibleWhen: { field: "listLayout", equals: "compact" }
|
|
23306
|
+
}
|
|
23307
|
+
},
|
|
23308
|
+
{
|
|
23309
|
+
id: "loadMoreText",
|
|
23310
|
+
type: "text",
|
|
23311
|
+
label: "Load more button text",
|
|
23312
|
+
description: "Text for the load more button",
|
|
23313
|
+
required: false,
|
|
23314
|
+
multiline: false,
|
|
23315
|
+
defaultValue: "Load more events",
|
|
23316
|
+
ui: {
|
|
23317
|
+
intent: "content",
|
|
23318
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
23319
|
+
}
|
|
23320
|
+
},
|
|
23321
|
+
// Calendar options
|
|
23322
|
+
{
|
|
23323
|
+
id: "startOfWeek",
|
|
23324
|
+
type: "select",
|
|
23325
|
+
label: "Week starts on",
|
|
23326
|
+
description: "First day of the week",
|
|
23327
|
+
required: false,
|
|
23328
|
+
multiple: false,
|
|
23329
|
+
defaultValue: "monday",
|
|
23330
|
+
options: [
|
|
23331
|
+
{ value: "sunday", label: "Sunday" },
|
|
23332
|
+
{ value: "monday", label: "Monday" }
|
|
23333
|
+
],
|
|
23334
|
+
ui: {
|
|
23335
|
+
intent: "display",
|
|
23336
|
+
visibleWhen: {
|
|
23337
|
+
field: "variant",
|
|
23338
|
+
oneOf: ["combined", "month", "week"]
|
|
22947
23339
|
}
|
|
22948
|
-
}
|
|
22949
|
-
|
|
22950
|
-
|
|
22951
|
-
|
|
22952
|
-
|
|
22953
|
-
|
|
22954
|
-
|
|
22955
|
-
|
|
22956
|
-
|
|
22957
|
-
|
|
22958
|
-
|
|
22959
|
-
|
|
22960
|
-
|
|
22961
|
-
|
|
22962
|
-
|
|
22963
|
-
|
|
22964
|
-
|
|
23340
|
+
}
|
|
23341
|
+
},
|
|
23342
|
+
// Combined mode options
|
|
23343
|
+
{
|
|
23344
|
+
id: "calendarTabViews",
|
|
23345
|
+
type: "select",
|
|
23346
|
+
label: "Calendar tab views",
|
|
23347
|
+
description: "Which calendar views to show in the Calendar tab",
|
|
23348
|
+
required: false,
|
|
23349
|
+
multiple: false,
|
|
23350
|
+
defaultValue: "both",
|
|
23351
|
+
options: [
|
|
23352
|
+
{ value: "both", label: "Month + Week toggle" },
|
|
23353
|
+
{ value: "month", label: "Month only" },
|
|
23354
|
+
{ value: "week", label: "Week only" }
|
|
23355
|
+
],
|
|
23356
|
+
ui: {
|
|
23357
|
+
intent: "display",
|
|
23358
|
+
visibleWhen: { field: "variant", equals: "combined" }
|
|
23359
|
+
}
|
|
23360
|
+
},
|
|
23361
|
+
// Filtering options
|
|
23362
|
+
{
|
|
23363
|
+
id: "kind",
|
|
23364
|
+
type: "select",
|
|
23365
|
+
label: "Show",
|
|
23366
|
+
description: "Restrict this block to all offerings, courses, or events",
|
|
23367
|
+
required: false,
|
|
23368
|
+
multiple: false,
|
|
23369
|
+
defaultValue: "all",
|
|
23370
|
+
options: [
|
|
23371
|
+
{ value: "all", label: "All offerings" },
|
|
23372
|
+
{ value: "courses", label: "Courses only" },
|
|
23373
|
+
{ value: "events", label: "Events only" }
|
|
23374
|
+
],
|
|
23375
|
+
ui: { intent: "behavior" }
|
|
23376
|
+
},
|
|
23377
|
+
{
|
|
23378
|
+
id: "showFilters",
|
|
23379
|
+
type: "boolean",
|
|
23380
|
+
label: "Show filters",
|
|
23381
|
+
description: "Show category, staff, and venue filters",
|
|
23382
|
+
required: false,
|
|
23383
|
+
defaultValue: true,
|
|
23384
|
+
ui: {
|
|
23385
|
+
intent: "display",
|
|
23386
|
+
visibleWhen: {
|
|
23387
|
+
field: "variant",
|
|
23388
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22965
23389
|
}
|
|
22966
|
-
}
|
|
22967
|
-
|
|
22968
|
-
|
|
22969
|
-
|
|
22970
|
-
|
|
22971
|
-
|
|
22972
|
-
|
|
22973
|
-
|
|
22974
|
-
|
|
22975
|
-
|
|
22976
|
-
|
|
22977
|
-
|
|
22978
|
-
|
|
23390
|
+
}
|
|
23391
|
+
},
|
|
23392
|
+
{
|
|
23393
|
+
id: "showCategoryFilter",
|
|
23394
|
+
type: "select",
|
|
23395
|
+
label: "Show category filter",
|
|
23396
|
+
description: "When to show the category filter dropdown",
|
|
23397
|
+
required: false,
|
|
23398
|
+
multiple: false,
|
|
23399
|
+
defaultValue: "auto",
|
|
23400
|
+
options: [
|
|
23401
|
+
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
23402
|
+
{ value: "always", label: "Always" },
|
|
23403
|
+
{ value: "never", label: "Never" }
|
|
23404
|
+
],
|
|
23405
|
+
ui: {
|
|
23406
|
+
intent: "display",
|
|
23407
|
+
visibleWhen: {
|
|
23408
|
+
field: "variant",
|
|
23409
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22979
23410
|
}
|
|
22980
|
-
}
|
|
22981
|
-
|
|
22982
|
-
|
|
22983
|
-
|
|
22984
|
-
|
|
22985
|
-
|
|
22986
|
-
|
|
22987
|
-
|
|
22988
|
-
|
|
22989
|
-
|
|
22990
|
-
|
|
23411
|
+
}
|
|
23412
|
+
},
|
|
23413
|
+
{
|
|
23414
|
+
id: "showVenueFilter",
|
|
23415
|
+
type: "boolean",
|
|
23416
|
+
label: "Show venue filter",
|
|
23417
|
+
description: "Show venue filter dropdown",
|
|
23418
|
+
required: false,
|
|
23419
|
+
defaultValue: false,
|
|
23420
|
+
ui: {
|
|
23421
|
+
intent: "display",
|
|
23422
|
+
visibleWhen: {
|
|
23423
|
+
field: "variant",
|
|
23424
|
+
oneOf: ["combined", "list", "timetable"]
|
|
22991
23425
|
}
|
|
22992
|
-
}
|
|
22993
|
-
|
|
22994
|
-
|
|
22995
|
-
|
|
22996
|
-
|
|
22997
|
-
|
|
22998
|
-
|
|
22999
|
-
|
|
23000
|
-
|
|
23001
|
-
|
|
23002
|
-
|
|
23426
|
+
}
|
|
23427
|
+
},
|
|
23428
|
+
{
|
|
23429
|
+
id: "showStaffFilter",
|
|
23430
|
+
type: "boolean",
|
|
23431
|
+
label: "Show staff filter",
|
|
23432
|
+
description: "Show staff filter dropdown",
|
|
23433
|
+
required: false,
|
|
23434
|
+
defaultValue: true,
|
|
23435
|
+
ui: {
|
|
23436
|
+
intent: "display",
|
|
23437
|
+
visibleWhen: {
|
|
23438
|
+
field: "variant",
|
|
23439
|
+
oneOf: ["combined", "list", "timetable"]
|
|
23003
23440
|
}
|
|
23004
|
-
}
|
|
23005
|
-
|
|
23006
|
-
|
|
23007
|
-
|
|
23008
|
-
|
|
23009
|
-
|
|
23010
|
-
|
|
23441
|
+
}
|
|
23442
|
+
},
|
|
23443
|
+
{
|
|
23444
|
+
id: "showCapacity",
|
|
23445
|
+
type: "boolean",
|
|
23446
|
+
label: "Show available spots",
|
|
23447
|
+
description: "Display remaining capacity on event cards and timetable cells",
|
|
23448
|
+
required: false,
|
|
23449
|
+
defaultValue: true,
|
|
23450
|
+
ui: {
|
|
23451
|
+
intent: "display",
|
|
23452
|
+
visibleWhen: {
|
|
23453
|
+
field: "variant",
|
|
23454
|
+
oneOf: ["combined", "list", "week", "timetable"]
|
|
23011
23455
|
}
|
|
23012
|
-
}
|
|
23013
|
-
|
|
23014
|
-
|
|
23015
|
-
|
|
23016
|
-
|
|
23017
|
-
|
|
23018
|
-
|
|
23019
|
-
|
|
23020
|
-
|
|
23021
|
-
|
|
23022
|
-
|
|
23456
|
+
}
|
|
23457
|
+
},
|
|
23458
|
+
// Block-level pre-filtering
|
|
23459
|
+
{
|
|
23460
|
+
id: "eventSurface",
|
|
23461
|
+
type: "select",
|
|
23462
|
+
label: "Event surface",
|
|
23463
|
+
description: "Choose a semantic event scope",
|
|
23464
|
+
required: false,
|
|
23465
|
+
multiple: false,
|
|
23466
|
+
defaultValue: "all",
|
|
23467
|
+
options: [
|
|
23468
|
+
{ value: "all", label: "All events" },
|
|
23469
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
23470
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
23471
|
+
{ value: "custom", label: "Custom" }
|
|
23472
|
+
],
|
|
23473
|
+
ui: { intent: "behavior" }
|
|
23474
|
+
},
|
|
23475
|
+
{
|
|
23476
|
+
id: "filterEventPresets",
|
|
23477
|
+
type: "select",
|
|
23478
|
+
label: "Pre-filter by event type",
|
|
23479
|
+
description: "Restrict this block to specific event types",
|
|
23480
|
+
required: false,
|
|
23481
|
+
multiple: true,
|
|
23482
|
+
defaultValue: [],
|
|
23483
|
+
options: [
|
|
23484
|
+
{ value: "class", label: "Classes" },
|
|
23485
|
+
{ value: "workshop", label: "Workshops" },
|
|
23486
|
+
{ value: "retreat", label: "Retreats" },
|
|
23487
|
+
{ value: "performance", label: "Performances" }
|
|
23488
|
+
],
|
|
23489
|
+
ui: {
|
|
23490
|
+
intent: "behavior",
|
|
23491
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23492
|
+
}
|
|
23493
|
+
},
|
|
23494
|
+
{
|
|
23495
|
+
id: "scheduleScope",
|
|
23496
|
+
type: "select",
|
|
23497
|
+
label: "Schedule cadence",
|
|
23498
|
+
description: "Restrict this block by recurrence",
|
|
23499
|
+
required: false,
|
|
23500
|
+
multiple: false,
|
|
23501
|
+
defaultValue: "any",
|
|
23502
|
+
options: [
|
|
23503
|
+
{ value: "any", label: "Any cadence" },
|
|
23504
|
+
{ value: "recurring", label: "Recurring only" },
|
|
23505
|
+
{ value: "oneOff", label: "One-off only" }
|
|
23506
|
+
],
|
|
23507
|
+
ui: {
|
|
23508
|
+
intent: "behavior",
|
|
23509
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
23510
|
+
}
|
|
23511
|
+
},
|
|
23512
|
+
createSiteOptionSelectField({
|
|
23513
|
+
id: "filterCategoryIds",
|
|
23514
|
+
label: "Pre-filter by categories",
|
|
23515
|
+
description: "Restrict this block to specific event categories",
|
|
23516
|
+
required: false,
|
|
23517
|
+
multiple: true,
|
|
23518
|
+
defaultValue: [],
|
|
23519
|
+
optionSource: "eventCategories",
|
|
23520
|
+
ui: {
|
|
23521
|
+
intent: "behavior",
|
|
23522
|
+
searchThreshold: 8,
|
|
23523
|
+
visibleWhen: { field: "kind", notEquals: "courses" }
|
|
23524
|
+
}
|
|
23525
|
+
}),
|
|
23526
|
+
createSiteOptionSelectField({
|
|
23527
|
+
id: "filterStaffMemberId",
|
|
23528
|
+
label: "Pre-filter by staff member",
|
|
23529
|
+
description: "Restrict this block to a single staff member",
|
|
23530
|
+
required: false,
|
|
23531
|
+
multiple: false,
|
|
23532
|
+
optionSource: "staffMembers",
|
|
23533
|
+
ui: {
|
|
23534
|
+
intent: "behavior",
|
|
23535
|
+
searchThreshold: 8
|
|
23536
|
+
}
|
|
23537
|
+
}),
|
|
23538
|
+
createSiteOptionSelectField({
|
|
23539
|
+
id: "filterVenueId",
|
|
23540
|
+
label: "Pre-filter by venue",
|
|
23541
|
+
description: "Restrict this block to a single venue",
|
|
23542
|
+
required: false,
|
|
23543
|
+
multiple: false,
|
|
23544
|
+
optionSource: "venues",
|
|
23545
|
+
ui: {
|
|
23546
|
+
intent: "behavior",
|
|
23547
|
+
searchThreshold: 8
|
|
23548
|
+
}
|
|
23549
|
+
}),
|
|
23550
|
+
// Card styling
|
|
23551
|
+
...cardStylingFields.filter((f) => f.id === "buttonVariant" || f.id === "buttonText").map((field) => ({
|
|
23552
|
+
...field,
|
|
23553
|
+
ui: {
|
|
23554
|
+
...field.ui ?? {},
|
|
23555
|
+
intent: field.id === "buttonVariant" ? "style" : "content"
|
|
23556
|
+
}
|
|
23557
|
+
})),
|
|
23558
|
+
{
|
|
23559
|
+
...emptyStateField,
|
|
23560
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
23561
|
+
},
|
|
23562
|
+
sectionStylesField({
|
|
23563
|
+
id: "_sectionStyles",
|
|
23564
|
+
label: "Section styles",
|
|
23565
|
+
renderInHeader: false
|
|
23566
|
+
})
|
|
23567
|
+
];
|
|
23568
|
+
var eventCalendarVariants = {
|
|
23569
|
+
combined: eventCalendarLayout[0],
|
|
23570
|
+
month: eventCalendarLayout[0],
|
|
23571
|
+
week: eventCalendarLayout[0],
|
|
23572
|
+
timetable: eventCalendarLayout[0],
|
|
23573
|
+
list: eventCalendarLayout[0]
|
|
23574
|
+
};
|
|
23575
|
+
var eventCalendarDerivedFields = [
|
|
23576
|
+
{
|
|
23577
|
+
id: "displayMode",
|
|
23578
|
+
type: "select",
|
|
23579
|
+
required: false,
|
|
23580
|
+
multiple: false,
|
|
23581
|
+
options: [
|
|
23582
|
+
{ value: "combined" },
|
|
23583
|
+
{ value: "month" },
|
|
23584
|
+
{ value: "week" },
|
|
23585
|
+
{ value: "timetable" },
|
|
23586
|
+
{ value: "list" }
|
|
23587
|
+
]
|
|
23588
|
+
},
|
|
23589
|
+
{
|
|
23590
|
+
id: "listLayout",
|
|
23591
|
+
type: "select",
|
|
23592
|
+
required: false,
|
|
23593
|
+
multiple: false,
|
|
23594
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
23595
|
+
value: option.id
|
|
23596
|
+
}))
|
|
23597
|
+
}
|
|
23598
|
+
];
|
|
23599
|
+
var eventCalendarContentShape = {
|
|
23600
|
+
additionalFields: eventCalendarDerivedFields,
|
|
23601
|
+
variants: eventCalendarVariants,
|
|
23602
|
+
skipSectionStyles: true
|
|
23603
|
+
};
|
|
23604
|
+
var eventCalendarConfig = {
|
|
23605
|
+
id: "block.event-calendar",
|
|
23606
|
+
version: "3.6.0",
|
|
23607
|
+
title: "Event Calendar",
|
|
23608
|
+
titleSource: "heading",
|
|
23609
|
+
description: "Display events with calendar, list, or combined views with filtering",
|
|
23610
|
+
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
23611
|
+
skipSectionStyles: true,
|
|
23612
|
+
additionalFields: eventCalendarAdditionalFields,
|
|
23023
23613
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
23024
23614
|
behaviours: {
|
|
23025
23615
|
supportsThemeSwitching: true,
|
|
@@ -23039,109 +23629,21 @@ var eventCalendarManifest = createBlockManifest({
|
|
|
23039
23629
|
"filter"
|
|
23040
23630
|
],
|
|
23041
23631
|
icon: "CalendarDays",
|
|
23042
|
-
layout:
|
|
23043
|
-
|
|
23044
|
-
|
|
23045
|
-
|
|
23046
|
-
|
|
23047
|
-
|
|
23048
|
-
|
|
23049
|
-
|
|
23050
|
-
|
|
23051
|
-
|
|
23052
|
-
|
|
23053
|
-
|
|
23054
|
-
|
|
23055
|
-
|
|
23056
|
-
|
|
23057
|
-
withApiBindings({
|
|
23058
|
-
events: { $bind: { from: "data.events" } },
|
|
23059
|
-
stage: {
|
|
23060
|
-
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
23061
|
-
},
|
|
23062
|
-
// Display mode
|
|
23063
|
-
displayMode: {
|
|
23064
|
-
$bind: { from: "content.displayMode", fallback: "combined" }
|
|
23065
|
-
},
|
|
23066
|
-
// List options
|
|
23067
|
-
listLayout: { $bind: { from: "content.listLayout" } },
|
|
23068
|
-
listColumns: { $bind: { from: "content.listColumns" } },
|
|
23069
|
-
// Legacy compatibility: older event-calendar content used layout/columns
|
|
23070
|
-
layout: { $bind: { from: "content.layout" } },
|
|
23071
|
-
columns: { $bind: { from: "content.columns" } },
|
|
23072
|
-
eventsPerPage: {
|
|
23073
|
-
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
23074
|
-
},
|
|
23075
|
-
compactEventsPerPage: {
|
|
23076
|
-
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
23077
|
-
},
|
|
23078
|
-
loadMoreText: {
|
|
23079
|
-
$bind: {
|
|
23080
|
-
from: "content.loadMoreText",
|
|
23081
|
-
fallback: "Load more events"
|
|
23082
|
-
}
|
|
23083
|
-
},
|
|
23084
|
-
// Calendar options
|
|
23085
|
-
startOfWeek: {
|
|
23086
|
-
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
23087
|
-
},
|
|
23088
|
-
calendarTabViews: {
|
|
23089
|
-
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
23090
|
-
},
|
|
23091
|
-
// Filtering options
|
|
23092
|
-
showFilters: {
|
|
23093
|
-
$bind: { from: "content.showFilters", fallback: true }
|
|
23094
|
-
},
|
|
23095
|
-
showCategoryFilter: {
|
|
23096
|
-
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
23097
|
-
},
|
|
23098
|
-
showVenueFilter: {
|
|
23099
|
-
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
23100
|
-
},
|
|
23101
|
-
showStaffFilter: {
|
|
23102
|
-
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
23103
|
-
},
|
|
23104
|
-
showCapacity: {
|
|
23105
|
-
$bind: { from: "content.showCapacity", fallback: true }
|
|
23106
|
-
},
|
|
23107
|
-
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
23108
|
-
eventSurface: {
|
|
23109
|
-
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
23110
|
-
},
|
|
23111
|
-
filterEventPresets: {
|
|
23112
|
-
$bind: { from: "content.filterEventPresets" }
|
|
23113
|
-
},
|
|
23114
|
-
scheduleScope: {
|
|
23115
|
-
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
23116
|
-
},
|
|
23117
|
-
filterCategoryIds: {
|
|
23118
|
-
$bind: { from: "content.filterCategoryIds" }
|
|
23119
|
-
},
|
|
23120
|
-
filterStaffMemberId: {
|
|
23121
|
-
$bind: { from: "content.filterStaffMemberId" }
|
|
23122
|
-
},
|
|
23123
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
23124
|
-
// Styling
|
|
23125
|
-
buttonVariant: {
|
|
23126
|
-
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
23127
|
-
},
|
|
23128
|
-
buttonText: {
|
|
23129
|
-
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
23130
|
-
},
|
|
23131
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
23132
|
-
})
|
|
23133
|
-
)
|
|
23134
|
-
],
|
|
23135
|
-
{
|
|
23136
|
-
gap: "lg"
|
|
23137
|
-
}
|
|
23138
|
-
),
|
|
23139
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
23140
|
-
baseClass: "",
|
|
23141
|
-
spacing: "comfortable"
|
|
23142
|
-
})
|
|
23143
|
-
]
|
|
23144
|
-
});
|
|
23632
|
+
layout: eventCalendarLayout,
|
|
23633
|
+
variants: eventCalendarVariants,
|
|
23634
|
+
defaultVariant: "combined",
|
|
23635
|
+
variantOptions: {
|
|
23636
|
+
combined: { label: "Combined" },
|
|
23637
|
+
month: { label: "Month" },
|
|
23638
|
+
week: { label: "Week" },
|
|
23639
|
+
timetable: { label: "Timetable" },
|
|
23640
|
+
list: { label: "List" }
|
|
23641
|
+
}
|
|
23642
|
+
};
|
|
23643
|
+
var eventCalendarManifest = createBlockManifestWithContentShape(
|
|
23644
|
+
eventCalendarConfig,
|
|
23645
|
+
eventCalendarContentShape
|
|
23646
|
+
);
|
|
23145
23647
|
var eventCalendarBlockDefinition = {
|
|
23146
23648
|
manifest: eventCalendarManifest,
|
|
23147
23649
|
normalizeContent: normalizeEventCalendarContent,
|
|
@@ -27194,14 +27696,29 @@ function mediaPanelCapable() {
|
|
|
27194
27696
|
var allSectionSurfaces = [
|
|
27195
27697
|
"base",
|
|
27196
27698
|
"muted-band",
|
|
27197
|
-
"accent-band"
|
|
27699
|
+
"accent-band",
|
|
27700
|
+
"brand-depth-band"
|
|
27198
27701
|
];
|
|
27199
27702
|
var heroSectionSurfaces = [
|
|
27200
27703
|
"base",
|
|
27201
27704
|
"muted-band",
|
|
27202
27705
|
"accent-band",
|
|
27706
|
+
"brand-depth-band",
|
|
27203
27707
|
"hero-image"
|
|
27204
27708
|
];
|
|
27709
|
+
var scheduleTileTreatments = [
|
|
27710
|
+
"default",
|
|
27711
|
+
"quiet",
|
|
27712
|
+
"brand-depth"
|
|
27713
|
+
];
|
|
27714
|
+
function scheduleDetailsCapable() {
|
|
27715
|
+
return declareBlockDesignCapability({
|
|
27716
|
+
sectionSurfaces: "supported",
|
|
27717
|
+
contentFrames: ["plain"],
|
|
27718
|
+
itemSurfaces: "unsupported",
|
|
27719
|
+
tileTreatments: scheduleTileTreatments
|
|
27720
|
+
});
|
|
27721
|
+
}
|
|
27205
27722
|
function defaultBoundaryBias(visualWeight) {
|
|
27206
27723
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
27207
27724
|
}
|
|
@@ -27439,7 +27956,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27439
27956
|
flow: conversionFlow,
|
|
27440
27957
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27441
27958
|
})),
|
|
27442
|
-
withDesignCapability("block.event-details", eventDetailsBlockDefinition,
|
|
27959
|
+
withDesignCapability("block.event-details", eventDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27443
27960
|
flow: offeringsFlow,
|
|
27444
27961
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27445
27962
|
})),
|
|
@@ -27447,7 +27964,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
27447
27964
|
flow: conversionFlow,
|
|
27448
27965
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
27449
27966
|
})),
|
|
27450
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition,
|
|
27967
|
+
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
27451
27968
|
flow: offeringsFlow,
|
|
27452
27969
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
27453
27970
|
})),
|
|
@@ -27462,7 +27979,13 @@ var systemBlockDefinitionsRaw = [
|
|
|
27462
27979
|
})),
|
|
27463
27980
|
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
27464
27981
|
flow: offeringsFlow,
|
|
27465
|
-
layoutProfiles: [
|
|
27982
|
+
layoutProfiles: [
|
|
27983
|
+
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
27984
|
+
layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
|
|
27985
|
+
layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
|
|
27986
|
+
layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
|
|
27987
|
+
layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
|
|
27988
|
+
]
|
|
27466
27989
|
})),
|
|
27467
27990
|
// Friendly wrapper blocks
|
|
27468
27991
|
withDesignCapability("block.team-members", teamMembersBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|