@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
|
@@ -304,7 +304,11 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
304
304
|
|
|
305
305
|
// ../blocks/src/system/manifest/schema.ts
|
|
306
306
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
307
|
-
var siteOptionSources = [
|
|
307
|
+
var siteOptionSources = [
|
|
308
|
+
"eventCategories",
|
|
309
|
+
"venues",
|
|
310
|
+
"staffMembers"
|
|
311
|
+
];
|
|
308
312
|
var mediaDeliverySchema = z2.object({
|
|
309
313
|
sizes: z2.string().optional(),
|
|
310
314
|
widthCandidates: z2.array(z2.number().int().positive()).optional(),
|
|
@@ -342,7 +346,10 @@ var uiSchema = z2.object({
|
|
|
342
346
|
hidden: z2.boolean().optional(),
|
|
343
347
|
hideLabel: z2.boolean().optional(),
|
|
344
348
|
hideDescription: z2.boolean().optional(),
|
|
345
|
-
showCharCount: z2.union([
|
|
349
|
+
showCharCount: z2.union([
|
|
350
|
+
z2.number().int().positive(),
|
|
351
|
+
z2.object({ max: z2.number().int().positive() })
|
|
352
|
+
]).optional(),
|
|
346
353
|
showSlugPreview: z2.boolean().optional(),
|
|
347
354
|
variant: z2.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
348
355
|
richTextVariant: z2.enum(["full", "inline", "limited", "media", "notes"]).optional(),
|
|
@@ -352,10 +359,7 @@ var uiSchema = z2.object({
|
|
|
352
359
|
showMediaPreview: z2.boolean().optional(),
|
|
353
360
|
showMediaOverlayActions: z2.boolean().optional(),
|
|
354
361
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
355
|
-
mediaDeliveryByVariant: z2.record(
|
|
356
|
-
z2.string(),
|
|
357
|
-
mediaDeliverySchema
|
|
358
|
-
).optional(),
|
|
362
|
+
mediaDeliveryByVariant: z2.record(z2.string(), mediaDeliverySchema).optional(),
|
|
359
363
|
// Optional input hints for validators/widgets
|
|
360
364
|
inputType: z2.enum(["text", "email", "tel", "number"]).optional(),
|
|
361
365
|
min: z2.number().optional(),
|
|
@@ -463,7 +467,9 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
463
467
|
});
|
|
464
468
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
465
469
|
type: z2.literal("media"),
|
|
466
|
-
mediaKinds: z2.array(
|
|
470
|
+
mediaKinds: z2.array(
|
|
471
|
+
z2.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
|
|
472
|
+
).default(["image"]),
|
|
467
473
|
aspectRatio: z2.string().optional()
|
|
468
474
|
});
|
|
469
475
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
@@ -585,7 +591,9 @@ var referenceFieldSchema = baseFieldSchema.extend({
|
|
|
585
591
|
var itemTypeSchema = z2.object({
|
|
586
592
|
label: z2.string().min(1),
|
|
587
593
|
icon: z2.string().optional(),
|
|
588
|
-
fields: z2.lazy(
|
|
594
|
+
fields: z2.lazy(
|
|
595
|
+
() => getFieldSchemaInternal().array().min(1, "Item type requires at least one field")
|
|
596
|
+
)
|
|
589
597
|
});
|
|
590
598
|
var repeaterFieldSchema = baseFieldSchema.extend({
|
|
591
599
|
type: z2.literal("repeater"),
|
|
@@ -595,7 +603,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
595
603
|
maxItems: z2.number().int().positive().optional(),
|
|
596
604
|
// Monomorphic mode
|
|
597
605
|
schema: z2.object({
|
|
598
|
-
fields: z2.lazy(
|
|
606
|
+
fields: z2.lazy(
|
|
607
|
+
() => getFieldSchemaInternal().array().min(1, "Repeater requires at least one field")
|
|
608
|
+
)
|
|
599
609
|
}).optional(),
|
|
600
610
|
// Polymorphic mode
|
|
601
611
|
polymorphic: z2.boolean().optional(),
|
|
@@ -641,13 +651,19 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
641
651
|
const itemTypes = Object.values(
|
|
642
652
|
data.itemTypes
|
|
643
653
|
);
|
|
644
|
-
return itemTypes.every(
|
|
654
|
+
return itemTypes.every(
|
|
655
|
+
(itemType) => Array.isArray(itemType.fields) && requiredFieldIds.every(
|
|
656
|
+
(requiredId) => itemType.fields?.some((field) => field.id === requiredId)
|
|
657
|
+
)
|
|
658
|
+
);
|
|
645
659
|
}
|
|
646
660
|
const schemaFields = data.schema?.fields;
|
|
647
661
|
if (!schemaFields) {
|
|
648
662
|
return true;
|
|
649
663
|
}
|
|
650
|
-
return requiredFieldIds.every(
|
|
664
|
+
return requiredFieldIds.every(
|
|
665
|
+
(requiredId) => schemaFields.some((field) => field.id === requiredId)
|
|
666
|
+
);
|
|
651
667
|
},
|
|
652
668
|
{
|
|
653
669
|
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`,
|
|
@@ -675,7 +691,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
675
691
|
if (!schemaFields) {
|
|
676
692
|
return true;
|
|
677
693
|
}
|
|
678
|
-
const field = schemaFields.find(
|
|
694
|
+
const field = schemaFields.find(
|
|
695
|
+
(candidate) => candidate.id === labelField
|
|
696
|
+
);
|
|
679
697
|
return field?.type === "text";
|
|
680
698
|
},
|
|
681
699
|
{
|
|
@@ -686,13 +704,17 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
686
704
|
var groupFieldSchema = baseFieldSchema.extend({
|
|
687
705
|
type: z2.literal("group"),
|
|
688
706
|
schema: z2.object({
|
|
689
|
-
fields: z2.lazy(
|
|
707
|
+
fields: z2.lazy(
|
|
708
|
+
() => getFieldSchemaInternal().array().min(1, "Group requires at least one field")
|
|
709
|
+
)
|
|
690
710
|
})
|
|
691
711
|
});
|
|
692
712
|
var modalFieldSchema = baseFieldSchema.extend({
|
|
693
713
|
type: z2.literal("modal"),
|
|
694
714
|
schema: z2.object({
|
|
695
|
-
fields: z2.lazy(
|
|
715
|
+
fields: z2.lazy(
|
|
716
|
+
() => getFieldSchemaInternal().array().min(1, "Modal requires at least one field")
|
|
717
|
+
)
|
|
696
718
|
})
|
|
697
719
|
});
|
|
698
720
|
var numberFieldSchema = baseFieldSchema.extend({
|
|
@@ -799,31 +821,35 @@ function expectParsedSelectField(field) {
|
|
|
799
821
|
return field;
|
|
800
822
|
}
|
|
801
823
|
function createSiteOptionSelectField(input) {
|
|
802
|
-
return expectParsedSelectField(
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
824
|
+
return expectParsedSelectField(
|
|
825
|
+
parseFieldDefinition({
|
|
826
|
+
...input,
|
|
827
|
+
type: "select",
|
|
828
|
+
options: [],
|
|
829
|
+
multiple: input.multiple ?? false,
|
|
830
|
+
source: { kind: "site", optionSource: input.optionSource },
|
|
831
|
+
ui: {
|
|
832
|
+
...input.ui ?? {},
|
|
833
|
+
widget: "siteOptionPicker",
|
|
834
|
+
siteOptionSource: input.optionSource
|
|
835
|
+
}
|
|
836
|
+
})
|
|
837
|
+
);
|
|
814
838
|
}
|
|
815
839
|
function createSdkSelectField(input) {
|
|
816
|
-
return expectParsedSelectField(
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
840
|
+
return expectParsedSelectField(
|
|
841
|
+
parseFieldDefinition({
|
|
842
|
+
...input,
|
|
843
|
+
type: "select",
|
|
844
|
+
options: input.options,
|
|
845
|
+
multiple: input.multiple ?? false,
|
|
846
|
+
source: { kind: "sdk" },
|
|
847
|
+
ui: {
|
|
848
|
+
...input.ui ?? {},
|
|
849
|
+
widget: "sdkSelect"
|
|
850
|
+
}
|
|
851
|
+
})
|
|
852
|
+
);
|
|
827
853
|
}
|
|
828
854
|
var slotSchema = z2.object({
|
|
829
855
|
id: z2.string().min(1),
|
|
@@ -834,8 +860,20 @@ var slotSchema = z2.object({
|
|
|
834
860
|
help: z2.string().optional(),
|
|
835
861
|
visibleRoles: z2.array(z2.enum(visibilityLevels)).optional()
|
|
836
862
|
});
|
|
837
|
-
var typographyTokens = [
|
|
838
|
-
|
|
863
|
+
var typographyTokens = [
|
|
864
|
+
"display",
|
|
865
|
+
"heading",
|
|
866
|
+
"subheading",
|
|
867
|
+
"body",
|
|
868
|
+
"caption"
|
|
869
|
+
];
|
|
870
|
+
var colorTokens = [
|
|
871
|
+
"background",
|
|
872
|
+
"surface",
|
|
873
|
+
"foreground",
|
|
874
|
+
"accent",
|
|
875
|
+
"muted"
|
|
876
|
+
];
|
|
839
877
|
var spacingTokens = ["none", "xs", "sm", "md", "lg", "xl"];
|
|
840
878
|
var radiusTokens = ["none", "sm", "md", "lg", "full"];
|
|
841
879
|
var styleTokenSchema = z2.object({
|
|
@@ -855,7 +893,14 @@ var behaviourSchema = z2.object({
|
|
|
855
893
|
// Block manages its own wrapper (for sticky/fixed positioning)
|
|
856
894
|
managesOwnWrapper: z2.boolean().optional()
|
|
857
895
|
});
|
|
858
|
-
var blockCategoryEnum = z2.enum([
|
|
896
|
+
var blockCategoryEnum = z2.enum([
|
|
897
|
+
"marketing",
|
|
898
|
+
"content",
|
|
899
|
+
"blog",
|
|
900
|
+
"media",
|
|
901
|
+
"layout",
|
|
902
|
+
"interactive"
|
|
903
|
+
]);
|
|
859
904
|
var manifestSchema = z2.object({
|
|
860
905
|
name: z2.string().min(1),
|
|
861
906
|
version: z2.string().min(1),
|
|
@@ -904,6 +949,24 @@ function registerManifest(manifest) {
|
|
|
904
949
|
return manifest;
|
|
905
950
|
}
|
|
906
951
|
|
|
952
|
+
// ../theme-core/src/site-styles/appearancePresetResolution.ts
|
|
953
|
+
function assertValidOptionGroups(preset) {
|
|
954
|
+
preset.optionGroups?.forEach((group) => {
|
|
955
|
+
const selectedOption = group.options.find(
|
|
956
|
+
(option) => option.id === group.selectedOptionId
|
|
957
|
+
);
|
|
958
|
+
if (!selectedOption) {
|
|
959
|
+
throw new Error(
|
|
960
|
+
`Appearance preset "${preset.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
961
|
+
);
|
|
962
|
+
}
|
|
963
|
+
});
|
|
964
|
+
}
|
|
965
|
+
function defineBlockAppearancePreset(preset) {
|
|
966
|
+
assertValidOptionGroups(preset);
|
|
967
|
+
return preset;
|
|
968
|
+
}
|
|
969
|
+
|
|
907
970
|
// ../theme-core/src/site-styles/types.ts
|
|
908
971
|
function asDesignBlockId(value) {
|
|
909
972
|
return brandNonEmptyString(value, "DesignBlockId");
|
|
@@ -985,6 +1048,11 @@ function flushPanelFrame(options) {
|
|
|
985
1048
|
function defineFrameCapability(capability) {
|
|
986
1049
|
return capability;
|
|
987
1050
|
}
|
|
1051
|
+
var tileTreatmentValues = [
|
|
1052
|
+
"default",
|
|
1053
|
+
"quiet",
|
|
1054
|
+
"brand-depth"
|
|
1055
|
+
];
|
|
988
1056
|
var eyebrowTreatmentValues = [
|
|
989
1057
|
"plain",
|
|
990
1058
|
"pill",
|
|
@@ -1000,31 +1068,13 @@ function defineBlockDesignCapability(capability) {
|
|
|
1000
1068
|
imageSurfaceTreatments: capability.imageSurfaceTreatments ?? ["none"],
|
|
1001
1069
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
1002
1070
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
1071
|
+
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
1003
1072
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"]
|
|
1004
1073
|
};
|
|
1005
1074
|
}
|
|
1006
1075
|
|
|
1007
|
-
// ../theme-core/src/site-styles/
|
|
1008
|
-
|
|
1009
|
-
preset.optionGroups?.forEach((group) => {
|
|
1010
|
-
const selectedOption = group.options.find(
|
|
1011
|
-
(option) => option.id === group.selectedOptionId
|
|
1012
|
-
);
|
|
1013
|
-
if (!selectedOption) {
|
|
1014
|
-
throw new Error(
|
|
1015
|
-
`Appearance preset "${preset.id}" option group "${group.id}" selects missing option "${group.selectedOptionId}".`
|
|
1016
|
-
);
|
|
1017
|
-
}
|
|
1018
|
-
});
|
|
1019
|
-
}
|
|
1020
|
-
function defineBlockAppearancePreset(preset) {
|
|
1021
|
-
assertValidOptionGroups(preset);
|
|
1022
|
-
return preset;
|
|
1023
|
-
}
|
|
1024
|
-
function defineSiteChromeAppearancePreset(preset) {
|
|
1025
|
-
return preset;
|
|
1026
|
-
}
|
|
1027
|
-
var appearancePresets = [
|
|
1076
|
+
// ../theme-core/src/site-styles/blockAppearancePresets.ts
|
|
1077
|
+
var blockAppearancePresets = [
|
|
1028
1078
|
defineBlockAppearancePreset({
|
|
1029
1079
|
kind: "block-design",
|
|
1030
1080
|
id: "hero-immersive-image",
|
|
@@ -1150,6 +1200,24 @@ var appearancePresets = [
|
|
|
1150
1200
|
eyebrowTreatment: "accent-pill-bounce"
|
|
1151
1201
|
}
|
|
1152
1202
|
}),
|
|
1203
|
+
defineBlockAppearancePreset({
|
|
1204
|
+
kind: "block-design",
|
|
1205
|
+
id: "hero-brand-depth-expressive",
|
|
1206
|
+
target: "hero",
|
|
1207
|
+
label: "Expressive brand-depth hero",
|
|
1208
|
+
blockKinds: ["block.hero"],
|
|
1209
|
+
constraints: {
|
|
1210
|
+
layoutFamilies: ["centered", "compact"]
|
|
1211
|
+
},
|
|
1212
|
+
design: {
|
|
1213
|
+
sectionSurface: "brand-depth-band",
|
|
1214
|
+
contentFrame: plainFrame,
|
|
1215
|
+
itemSurface: "none",
|
|
1216
|
+
transitionAfter: "soft-fade-short",
|
|
1217
|
+
emphasis: "high",
|
|
1218
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
1219
|
+
}
|
|
1220
|
+
}),
|
|
1153
1221
|
defineBlockAppearancePreset({
|
|
1154
1222
|
kind: "block-design",
|
|
1155
1223
|
id: "hero-contained-intro",
|
|
@@ -1178,6 +1246,20 @@ var appearancePresets = [
|
|
|
1178
1246
|
emphasis: "high"
|
|
1179
1247
|
}
|
|
1180
1248
|
}),
|
|
1249
|
+
defineBlockAppearancePreset({
|
|
1250
|
+
kind: "block-design",
|
|
1251
|
+
id: "body-text-brand-depth-intro",
|
|
1252
|
+
target: "body-text",
|
|
1253
|
+
label: "Brand-depth intro copy",
|
|
1254
|
+
blockKinds: ["block.body-text"],
|
|
1255
|
+
design: {
|
|
1256
|
+
sectionSurface: "brand-depth-band",
|
|
1257
|
+
contentFrame: plainFrame,
|
|
1258
|
+
itemSurface: "none",
|
|
1259
|
+
transitionAfter: "soft-fade-short",
|
|
1260
|
+
emphasis: "high"
|
|
1261
|
+
}
|
|
1262
|
+
}),
|
|
1181
1263
|
defineBlockAppearancePreset({
|
|
1182
1264
|
kind: "block-design",
|
|
1183
1265
|
id: "offerings-calm-list",
|
|
@@ -1220,6 +1302,21 @@ var appearancePresets = [
|
|
|
1220
1302
|
emphasis: "medium"
|
|
1221
1303
|
}
|
|
1222
1304
|
}),
|
|
1305
|
+
defineBlockAppearancePreset({
|
|
1306
|
+
kind: "block-design",
|
|
1307
|
+
id: "schedule-details-brand-depth",
|
|
1308
|
+
target: "events",
|
|
1309
|
+
label: "Brand-depth schedule details",
|
|
1310
|
+
blockKinds: ["block.event-details", "block.course-details"],
|
|
1311
|
+
design: {
|
|
1312
|
+
sectionSurface: "brand-depth-band",
|
|
1313
|
+
contentFrame: plainFrame,
|
|
1314
|
+
itemSurface: "none",
|
|
1315
|
+
transitionAfter: "none",
|
|
1316
|
+
emphasis: "medium",
|
|
1317
|
+
tileTreatment: "brand-depth"
|
|
1318
|
+
}
|
|
1319
|
+
}),
|
|
1223
1320
|
defineBlockAppearancePreset({
|
|
1224
1321
|
kind: "block-design",
|
|
1225
1322
|
id: "media-text-flush-feature",
|
|
@@ -1305,6 +1402,20 @@ var appearancePresets = [
|
|
|
1305
1402
|
testimonialCardTreatment: "accent-quote"
|
|
1306
1403
|
}
|
|
1307
1404
|
}),
|
|
1405
|
+
defineBlockAppearancePreset({
|
|
1406
|
+
kind: "block-design",
|
|
1407
|
+
id: "faq-base-accordion",
|
|
1408
|
+
target: "faq",
|
|
1409
|
+
label: "Base accordion FAQ",
|
|
1410
|
+
blockKinds: ["block.faq"],
|
|
1411
|
+
design: {
|
|
1412
|
+
sectionSurface: "base",
|
|
1413
|
+
contentFrame: plainFrame,
|
|
1414
|
+
itemSurface: "default",
|
|
1415
|
+
transitionAfter: "none",
|
|
1416
|
+
emphasis: "medium"
|
|
1417
|
+
}
|
|
1418
|
+
}),
|
|
1308
1419
|
defineBlockAppearancePreset({
|
|
1309
1420
|
kind: "block-design",
|
|
1310
1421
|
id: "faq-contained-help",
|
|
@@ -1347,6 +1458,20 @@ var appearancePresets = [
|
|
|
1347
1458
|
emphasis: "high"
|
|
1348
1459
|
}
|
|
1349
1460
|
}),
|
|
1461
|
+
defineBlockAppearancePreset({
|
|
1462
|
+
kind: "block-design",
|
|
1463
|
+
id: "contact-form-brand-depth-card",
|
|
1464
|
+
target: "contact-form",
|
|
1465
|
+
label: "Brand-depth form card",
|
|
1466
|
+
blockKinds: ["block.form"],
|
|
1467
|
+
design: {
|
|
1468
|
+
sectionSurface: "brand-depth-band",
|
|
1469
|
+
contentFrame: panelFrame("raised"),
|
|
1470
|
+
itemSurface: "none",
|
|
1471
|
+
transitionAfter: "none",
|
|
1472
|
+
emphasis: "high"
|
|
1473
|
+
}
|
|
1474
|
+
}),
|
|
1350
1475
|
defineBlockAppearancePreset({
|
|
1351
1476
|
kind: "block-design",
|
|
1352
1477
|
id: "cta-accent-band",
|
|
@@ -1360,7 +1485,14 @@ var appearancePresets = [
|
|
|
1360
1485
|
transitionAfter: "none",
|
|
1361
1486
|
emphasis: "high"
|
|
1362
1487
|
}
|
|
1363
|
-
})
|
|
1488
|
+
})
|
|
1489
|
+
];
|
|
1490
|
+
|
|
1491
|
+
// ../theme-core/src/site-styles/siteChromeAppearancePresets.ts
|
|
1492
|
+
function defineSiteChromeAppearancePreset(preset) {
|
|
1493
|
+
return preset;
|
|
1494
|
+
}
|
|
1495
|
+
var siteChromeAppearancePresets = [
|
|
1364
1496
|
defineSiteChromeAppearancePreset({
|
|
1365
1497
|
kind: "site-chrome",
|
|
1366
1498
|
id: "header-clean-base",
|
|
@@ -1428,6 +1560,12 @@ var appearancePresets = [
|
|
|
1428
1560
|
})
|
|
1429
1561
|
];
|
|
1430
1562
|
|
|
1563
|
+
// ../theme-core/src/site-styles/appearancePresetCatalog.ts
|
|
1564
|
+
var appearancePresets = [
|
|
1565
|
+
...blockAppearancePresets,
|
|
1566
|
+
...siteChromeAppearancePresets
|
|
1567
|
+
];
|
|
1568
|
+
|
|
1431
1569
|
// ../theme-core/src/site-styles/blockFlow.ts
|
|
1432
1570
|
function defineBlockDesignMetadata(input) {
|
|
1433
1571
|
const layoutProfiles = (input.layoutProfiles ?? []).map((profile) => ({
|
|
@@ -2902,6 +3040,7 @@ var sectionStylesOverrideSchema = z17.object({
|
|
|
2902
3040
|
background: boxBackgroundSchema.nullable().optional(),
|
|
2903
3041
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
2904
3042
|
minHeight: z17.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
3043
|
+
tileTreatment: z17.enum(tileTreatmentValues).nullable().optional(),
|
|
2905
3044
|
eyebrowTreatment: z17.enum(eyebrowTreatmentValues).nullable().optional()
|
|
2906
3045
|
});
|
|
2907
3046
|
var containerStylesOverrideSchema = z17.object({
|
|
@@ -3695,7 +3834,7 @@ var userContentFrames = [
|
|
|
3695
3834
|
];
|
|
3696
3835
|
var generatedDesignOptionCatalog = {
|
|
3697
3836
|
source: "generated",
|
|
3698
|
-
sectionSurfaces: ["base", "muted-band", "accent-band", "hero-image"],
|
|
3837
|
+
sectionSurfaces: ["base", "muted-band", "accent-band", "brand-depth-band", "hero-image"],
|
|
3699
3838
|
contentFrames: generatedContentFrames,
|
|
3700
3839
|
itemSurfaces: ["none", "default", "flat", "outlined", "raised"],
|
|
3701
3840
|
transitions: ["none", "soft-fade-short", "soft-fade-long"],
|
|
@@ -3765,6 +3904,43 @@ var expressiveBudget = {
|
|
|
3765
3904
|
mediaDensity: "high",
|
|
3766
3905
|
decorativeRepetition: "medium"
|
|
3767
3906
|
};
|
|
3907
|
+
var expressiveUnderlineInputs = {
|
|
3908
|
+
base: {
|
|
3909
|
+
background: { type: "transparent" },
|
|
3910
|
+
textColorToken: "text",
|
|
3911
|
+
border: {
|
|
3912
|
+
widthClass: "border-2",
|
|
3913
|
+
colorToken: "border",
|
|
3914
|
+
style: "underline"
|
|
3915
|
+
},
|
|
3916
|
+
corners: "square",
|
|
3917
|
+
shadow: null,
|
|
3918
|
+
spacing: "compact",
|
|
3919
|
+
fontSize: "base"
|
|
3920
|
+
},
|
|
3921
|
+
label: {
|
|
3922
|
+
textColorToken: "primary",
|
|
3923
|
+
fontWeight: "black",
|
|
3924
|
+
fontSize: "xs",
|
|
3925
|
+
textTransform: "uppercase",
|
|
3926
|
+
letterSpacing: "widest",
|
|
3927
|
+
opacity: 1
|
|
3928
|
+
},
|
|
3929
|
+
focus: {
|
|
3930
|
+
ringColorToken: "secondary",
|
|
3931
|
+
ringWidth: "0",
|
|
3932
|
+
borderColorToken: "secondary"
|
|
3933
|
+
},
|
|
3934
|
+
error: {
|
|
3935
|
+
borderColorToken: "destructive",
|
|
3936
|
+
textColorToken: "destructive"
|
|
3937
|
+
},
|
|
3938
|
+
disabled: {
|
|
3939
|
+
backgroundColorToken: "surface",
|
|
3940
|
+
textColorToken: "text",
|
|
3941
|
+
opacity: 0.6
|
|
3942
|
+
}
|
|
3943
|
+
};
|
|
3768
3944
|
function uniqueContentFrameKinds() {
|
|
3769
3945
|
const kinds = [...new Set(
|
|
3770
3946
|
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
@@ -4115,15 +4291,17 @@ var curatedSiteStyles = [
|
|
|
4115
4291
|
paragraphSize: "editorial",
|
|
4116
4292
|
headingSize: "editorial"
|
|
4117
4293
|
}
|
|
4118
|
-
}
|
|
4294
|
+
},
|
|
4295
|
+
inputs: expressiveUnderlineInputs
|
|
4119
4296
|
},
|
|
4120
4297
|
recommendedAppearancePresetIds: [
|
|
4121
4298
|
"site-header-brand-solid-inverted-cta",
|
|
4122
4299
|
"site-footer-brand-two-band",
|
|
4123
4300
|
"hero-brand-scrim-fixed-frame",
|
|
4124
4301
|
"body-text-editorial-intro",
|
|
4302
|
+
"schedule-details-brand-depth",
|
|
4125
4303
|
"testimonials-accent-quote-proof",
|
|
4126
|
-
"contact-form-
|
|
4304
|
+
"contact-form-brand-depth-card"
|
|
4127
4305
|
],
|
|
4128
4306
|
buttonPersonalityChoices: [
|
|
4129
4307
|
buttonChoice("showtime-pill"),
|
|
@@ -4257,6 +4435,7 @@ var imageSurfaceTreatmentSchema = z19.discriminatedUnion("kind", [
|
|
|
4257
4435
|
}).strict()
|
|
4258
4436
|
]);
|
|
4259
4437
|
var testimonialCardTreatmentSchema = z19.enum(["default", "accent-quote"]);
|
|
4438
|
+
var tileTreatmentSchema = z19.enum(tileTreatmentValues);
|
|
4260
4439
|
var eyebrowTreatmentSchema = z19.enum(eyebrowTreatmentValues);
|
|
4261
4440
|
function uniqueNonEmpty(values) {
|
|
4262
4441
|
const uniqueValues = [...new Set(values)];
|
|
@@ -4301,6 +4480,7 @@ var blockDesignPlanSchema = z19.object({
|
|
|
4301
4480
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
4302
4481
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
4303
4482
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
4483
|
+
tileTreatment: tileTreatmentSchema.optional(),
|
|
4304
4484
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
4305
4485
|
}).strict();
|
|
4306
4486
|
var styleAuthoritySchema = z19.discriminatedUnion("kind", [
|
|
@@ -4364,6 +4544,14 @@ var defaultDesignRuntimeRules = defineDesignRuntimeRules({
|
|
|
4364
4544
|
headingColor: "primaryForeground"
|
|
4365
4545
|
}
|
|
4366
4546
|
},
|
|
4547
|
+
"brand-depth-band": {
|
|
4548
|
+
background: {
|
|
4549
|
+
type: "color",
|
|
4550
|
+
color: "primary-800",
|
|
4551
|
+
textColor: "primaryForeground",
|
|
4552
|
+
headingColor: "primaryForeground"
|
|
4553
|
+
}
|
|
4554
|
+
},
|
|
4367
4555
|
"hero-image": {
|
|
4368
4556
|
background: {
|
|
4369
4557
|
type: "image",
|
|
@@ -6180,6 +6368,7 @@ var blockColorTokenNameSet = new Set(
|
|
|
6180
6368
|
);
|
|
6181
6369
|
|
|
6182
6370
|
// ../blocks/src/system/transforms/registry/boxStyles.ts
|
|
6371
|
+
var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
6183
6372
|
var GAP_VALUE_MAP = {
|
|
6184
6373
|
none: "0",
|
|
6185
6374
|
compact: "calc(1rem * var(--space-mult, 1))",
|
|
@@ -8879,6 +9068,9 @@ function createBlockManifest(config) {
|
|
|
8879
9068
|
};
|
|
8880
9069
|
return augmentManifest(manifest);
|
|
8881
9070
|
}
|
|
9071
|
+
function createBlockManifestWithContentShape(config, _contentShape) {
|
|
9072
|
+
return createBlockManifest(config);
|
|
9073
|
+
}
|
|
8882
9074
|
function normalizeBlockLayout(layout) {
|
|
8883
9075
|
return Array.isArray(layout) ? [...layout] : layout;
|
|
8884
9076
|
}
|
|
@@ -9511,7 +9703,7 @@ var ctaComposition = composeFragments([
|
|
|
9511
9703
|
{ fragment: ctaCopyFragment },
|
|
9512
9704
|
{ fragment: ctaRowFragment }
|
|
9513
9705
|
]);
|
|
9514
|
-
var
|
|
9706
|
+
var ctaFullConfig = {
|
|
9515
9707
|
id: "block.cta-full",
|
|
9516
9708
|
title: "Full-width CTA",
|
|
9517
9709
|
category: "marketing",
|
|
@@ -9529,7 +9721,8 @@ var ctaFullManifest = createBlockManifest({
|
|
|
9529
9721
|
description: "Centered call to action with optional background image.",
|
|
9530
9722
|
tags: ["cta", "call-to-action", "button", "conversion", "action", "sign-up", "get-started"],
|
|
9531
9723
|
icon: "Target"
|
|
9532
|
-
}
|
|
9724
|
+
};
|
|
9725
|
+
var ctaFullManifest = createBlockManifest(ctaFullConfig);
|
|
9533
9726
|
var ctaFullBlockDefinition = {
|
|
9534
9727
|
manifest: ctaFullManifest
|
|
9535
9728
|
};
|
|
@@ -11365,9 +11558,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
11365
11558
|
{
|
|
11366
11559
|
id: "images",
|
|
11367
11560
|
type: "repeater",
|
|
11368
|
-
label: "
|
|
11561
|
+
label: "Media",
|
|
11369
11562
|
required: false,
|
|
11370
|
-
itemLabel: "
|
|
11563
|
+
itemLabel: "Media",
|
|
11371
11564
|
minItems: 0,
|
|
11372
11565
|
maxItems: 6,
|
|
11373
11566
|
allowConversion: true,
|
|
@@ -11381,9 +11574,9 @@ var mediaTextManifest = createBlockManifest({
|
|
|
11381
11574
|
{
|
|
11382
11575
|
id: "image",
|
|
11383
11576
|
type: "media",
|
|
11384
|
-
label: "
|
|
11577
|
+
label: "Media",
|
|
11385
11578
|
required: true,
|
|
11386
|
-
mediaKinds: ["image"]
|
|
11579
|
+
mediaKinds: ["image", "video"]
|
|
11387
11580
|
}
|
|
11388
11581
|
]
|
|
11389
11582
|
}
|
|
@@ -11461,8 +11654,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
11461
11654
|
{
|
|
11462
11655
|
id: "aspectRatio",
|
|
11463
11656
|
type: "select",
|
|
11464
|
-
label: "
|
|
11465
|
-
description: "Crop
|
|
11657
|
+
label: "Media aspect ratio",
|
|
11658
|
+
description: "Crop media to a consistent aspect ratio.",
|
|
11466
11659
|
required: false,
|
|
11467
11660
|
defaultValue: "auto",
|
|
11468
11661
|
multiple: false,
|
|
@@ -11649,8 +11842,8 @@ var mediaTextManifest = createBlockManifest({
|
|
|
11649
11842
|
}
|
|
11650
11843
|
};
|
|
11651
11844
|
})(),
|
|
11652
|
-
description: "Two columns:
|
|
11653
|
-
tags: ["media", "image", "carousel", "text", "two-column", "layout"],
|
|
11845
|
+
description: "Two columns: media/carousel + rich text (with optional section title).",
|
|
11846
|
+
tags: ["media", "image", "video", "carousel", "text", "two-column", "layout"],
|
|
11654
11847
|
icon: "Columns"
|
|
11655
11848
|
});
|
|
11656
11849
|
var mediaTextBlockDefinition = {
|
|
@@ -11801,6 +11994,19 @@ var transformSchema2 = z29.object({
|
|
|
11801
11994
|
hotspot: hotspotSchema2.optional(),
|
|
11802
11995
|
rotation: rotationSchema2.optional()
|
|
11803
11996
|
});
|
|
11997
|
+
var mediaPosterSchema = z29.discriminatedUnion("tag", [
|
|
11998
|
+
z29.object({
|
|
11999
|
+
tag: z29.literal("storage"),
|
|
12000
|
+
assetId: z29.string().optional(),
|
|
12001
|
+
storageBucket: z29.string().min(1),
|
|
12002
|
+
storagePath: z29.string().min(1)
|
|
12003
|
+
}),
|
|
12004
|
+
z29.object({
|
|
12005
|
+
tag: z29.literal("external-src"),
|
|
12006
|
+
assetId: z29.string().optional(),
|
|
12007
|
+
src: z29.string().url()
|
|
12008
|
+
})
|
|
12009
|
+
]);
|
|
11804
12010
|
var mediaBaseSchema = z29.object({
|
|
11805
12011
|
purpose: z29.string().optional(),
|
|
11806
12012
|
placeholder: z29.boolean().default(true).optional(),
|
|
@@ -11814,6 +12020,7 @@ var mediaBaseSchema = z29.object({
|
|
|
11814
12020
|
height: z29.number().optional(),
|
|
11815
12021
|
storageBucket: z29.string().optional(),
|
|
11816
12022
|
storagePath: z29.string().optional(),
|
|
12023
|
+
poster: mediaPosterSchema.optional(),
|
|
11817
12024
|
transform: transformSchema2.optional()
|
|
11818
12025
|
});
|
|
11819
12026
|
var imageMediaSchema = mediaBaseSchema.extend({ type: z29.literal("image") });
|
|
@@ -12297,10 +12504,28 @@ import { z as z35 } from "zod";
|
|
|
12297
12504
|
|
|
12298
12505
|
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
12299
12506
|
import { z as z34 } from "zod";
|
|
12507
|
+
|
|
12508
|
+
// ../blocks/src/system/constants/events.ts
|
|
12509
|
+
var eventCalendarDisplayModeValues = ["combined", "month", "week", "list", "timetable"];
|
|
12510
|
+
var eventCalendarListLayoutValues = ["stack", "grid", "compact"];
|
|
12511
|
+
var eventCalendarListLayoutOptions = [
|
|
12512
|
+
{ id: "stack", label: "Stack" },
|
|
12513
|
+
{ id: "grid", label: "Grid" },
|
|
12514
|
+
{ id: "compact", label: "Compact" }
|
|
12515
|
+
];
|
|
12516
|
+
function isEventCalendarDisplayMode(value) {
|
|
12517
|
+
return typeof value === "string" && eventCalendarDisplayModeValues.includes(value);
|
|
12518
|
+
}
|
|
12519
|
+
function isEventCalendarListLayout(value) {
|
|
12520
|
+
return typeof value === "string" && eventCalendarListLayoutValues.includes(value);
|
|
12521
|
+
}
|
|
12522
|
+
|
|
12523
|
+
// ../blocks/src/system/runtime/nodes/shared/contract-schemas.ts
|
|
12300
12524
|
var previewStageSchema = z34.enum(["preview", "published"]);
|
|
12301
12525
|
var registrationButtonVariantSchema = z34.enum(["primary", "secondary", "outline"]);
|
|
12302
12526
|
var eventButtonVariantSchema = z34.enum(["primary", "secondary", "outline", "link"]);
|
|
12303
|
-
var eventLayoutSchema = z34.enum(
|
|
12527
|
+
var eventLayoutSchema = z34.enum(eventCalendarListLayoutValues);
|
|
12528
|
+
var eventCalendarDisplayModeSchema = z34.enum(eventCalendarDisplayModeValues);
|
|
12304
12529
|
var columnOptionSchema = z34.enum(["2", "3", "4"]);
|
|
12305
12530
|
var weekStartSchema = z34.enum(["sunday", "monday"]);
|
|
12306
12531
|
var filterAutoShowSchema = z34.enum(["auto", "always", "never"]);
|
|
@@ -13606,219 +13831,251 @@ var eventListingInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
13606
13831
|
});
|
|
13607
13832
|
|
|
13608
13833
|
// ../blocks/src/system/blocks/events/event-listing.ts
|
|
13609
|
-
var
|
|
13610
|
-
|
|
13611
|
-
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13620
|
-
|
|
13621
|
-
return [
|
|
13622
|
-
{
|
|
13623
|
-
...layoutField,
|
|
13624
|
-
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
13625
|
-
},
|
|
13626
|
-
{
|
|
13627
|
-
...columns,
|
|
13628
|
-
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
13629
|
-
}
|
|
13630
|
-
];
|
|
13631
|
-
})(),
|
|
13632
|
-
{
|
|
13633
|
-
id: "eventsPerPage",
|
|
13634
|
-
type: "select",
|
|
13635
|
-
label: "Events per page",
|
|
13636
|
-
description: "Number of events to load at a time",
|
|
13637
|
-
required: false,
|
|
13638
|
-
multiple: false,
|
|
13639
|
-
defaultValue: "12",
|
|
13640
|
-
options: [
|
|
13641
|
-
{ value: "3", label: "3 events" },
|
|
13642
|
-
{ value: "6", label: "6 events" },
|
|
13643
|
-
{ value: "12", label: "12 events" },
|
|
13644
|
-
{ value: "24", label: "24 events" }
|
|
13645
|
-
],
|
|
13646
|
-
ui: { intent: "display" }
|
|
13647
|
-
},
|
|
13648
|
-
{
|
|
13649
|
-
id: "paginationMode",
|
|
13650
|
-
type: "select",
|
|
13651
|
-
label: "More events",
|
|
13652
|
-
description: "How to access events beyond the initial list",
|
|
13653
|
-
required: false,
|
|
13654
|
-
multiple: false,
|
|
13655
|
-
defaultValue: "loadMore",
|
|
13656
|
-
options: [
|
|
13657
|
-
{ value: "loadMore", label: "Load more button" },
|
|
13658
|
-
{ value: "seeAllLink", label: "Link to another page" }
|
|
13659
|
-
],
|
|
13660
|
-
ui: { intent: "display" }
|
|
13661
|
-
},
|
|
13662
|
-
{
|
|
13663
|
-
id: "seeAllUrl",
|
|
13664
|
-
type: "link",
|
|
13665
|
-
label: "See all destination",
|
|
13666
|
-
required: false,
|
|
13667
|
-
ui: {
|
|
13668
|
-
intent: "display",
|
|
13669
|
-
visibleWhen: {
|
|
13670
|
-
field: "paginationMode",
|
|
13671
|
-
equals: "seeAllLink"
|
|
13672
|
-
}
|
|
13673
|
-
}
|
|
13674
|
-
},
|
|
13675
|
-
{
|
|
13676
|
-
id: "loadMoreText",
|
|
13677
|
-
type: "text",
|
|
13678
|
-
label: "Button text",
|
|
13679
|
-
description: "Text for the pagination button or link",
|
|
13680
|
-
required: false,
|
|
13681
|
-
multiline: false,
|
|
13682
|
-
defaultValue: "Load more events",
|
|
13683
|
-
maxLength: 40
|
|
13684
|
-
},
|
|
13685
|
-
...cardStylingFields.map((field) => ({
|
|
13686
|
-
...field,
|
|
13687
|
-
ui: { ...field.ui ?? {}, intent: "style" }
|
|
13688
|
-
})),
|
|
13689
|
-
...eventDisplayFields.map((field) => ({
|
|
13690
|
-
...field,
|
|
13691
|
-
ui: { ...field.ui ?? {}, intent: "display" }
|
|
13692
|
-
})),
|
|
13693
|
-
{
|
|
13694
|
-
id: "kind",
|
|
13695
|
-
type: "select",
|
|
13696
|
-
label: "Show",
|
|
13697
|
-
description: "Choose whether this list shows courses, events, or both",
|
|
13698
|
-
required: false,
|
|
13699
|
-
multiple: false,
|
|
13700
|
-
defaultValue: "all",
|
|
13701
|
-
options: [
|
|
13702
|
-
{ value: "all", label: "Courses and events" },
|
|
13703
|
-
{ value: "courses", label: "Courses only" },
|
|
13704
|
-
{ value: "events", label: "Events only" }
|
|
13705
|
-
],
|
|
13706
|
-
ui: { intent: "behavior" }
|
|
13707
|
-
},
|
|
13708
|
-
{
|
|
13709
|
-
id: "eventSurface",
|
|
13710
|
-
type: "select",
|
|
13711
|
-
label: "Event surface",
|
|
13712
|
-
description: "Choose a semantic event scope",
|
|
13713
|
-
required: false,
|
|
13714
|
-
multiple: false,
|
|
13715
|
-
defaultValue: "all",
|
|
13716
|
-
options: [
|
|
13717
|
-
{ value: "all", label: "All events" },
|
|
13718
|
-
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
13719
|
-
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
13720
|
-
{ value: "custom", label: "Custom" }
|
|
13721
|
-
],
|
|
13722
|
-
ui: { intent: "behavior" }
|
|
13723
|
-
},
|
|
13724
|
-
{
|
|
13725
|
-
id: "filterEventPresets",
|
|
13726
|
-
type: "select",
|
|
13727
|
-
label: "Pre-filter by event type",
|
|
13728
|
-
description: "Restrict this block to specific event types",
|
|
13729
|
-
required: false,
|
|
13730
|
-
multiple: true,
|
|
13731
|
-
defaultValue: [],
|
|
13732
|
-
options: [
|
|
13733
|
-
{ value: "class", label: "Classes" },
|
|
13734
|
-
{ value: "workshop", label: "Workshops" },
|
|
13735
|
-
{ value: "retreat", label: "Retreats" },
|
|
13736
|
-
{ value: "performance", label: "Performances" }
|
|
13737
|
-
],
|
|
13738
|
-
ui: {
|
|
13739
|
-
intent: "behavior",
|
|
13740
|
-
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
13834
|
+
var eventListingAdditionalFields = [
|
|
13835
|
+
...sectionHeaderFields("All Events"),
|
|
13836
|
+
...(() => {
|
|
13837
|
+
const columns = columnsField(["2", "3", "4"]);
|
|
13838
|
+
return [
|
|
13839
|
+
{
|
|
13840
|
+
...layoutField,
|
|
13841
|
+
ui: { ...layoutField.ui ?? {}, intent: "display" }
|
|
13842
|
+
},
|
|
13843
|
+
{
|
|
13844
|
+
...columns,
|
|
13845
|
+
ui: { ...columns.ui ?? {}, intent: "display" }
|
|
13741
13846
|
}
|
|
13742
|
-
|
|
13743
|
-
|
|
13744
|
-
|
|
13745
|
-
|
|
13746
|
-
|
|
13747
|
-
|
|
13748
|
-
|
|
13749
|
-
|
|
13750
|
-
|
|
13751
|
-
|
|
13752
|
-
|
|
13753
|
-
|
|
13754
|
-
|
|
13755
|
-
|
|
13756
|
-
|
|
13757
|
-
|
|
13758
|
-
|
|
13847
|
+
];
|
|
13848
|
+
})(),
|
|
13849
|
+
{
|
|
13850
|
+
id: "eventsPerPage",
|
|
13851
|
+
type: "select",
|
|
13852
|
+
label: "Events per page",
|
|
13853
|
+
description: "Number of events to load at a time",
|
|
13854
|
+
required: false,
|
|
13855
|
+
multiple: false,
|
|
13856
|
+
defaultValue: "12",
|
|
13857
|
+
options: [
|
|
13858
|
+
{ value: "3", label: "3 events" },
|
|
13859
|
+
{ value: "6", label: "6 events" },
|
|
13860
|
+
{ value: "12", label: "12 events" },
|
|
13861
|
+
{ value: "24", label: "24 events" }
|
|
13862
|
+
],
|
|
13863
|
+
ui: { intent: "display" }
|
|
13864
|
+
},
|
|
13865
|
+
{
|
|
13866
|
+
id: "paginationMode",
|
|
13867
|
+
type: "select",
|
|
13868
|
+
label: "More events",
|
|
13869
|
+
description: "How to access events beyond the initial list",
|
|
13870
|
+
required: false,
|
|
13871
|
+
multiple: false,
|
|
13872
|
+
defaultValue: "loadMore",
|
|
13873
|
+
options: [
|
|
13874
|
+
{ value: "loadMore", label: "Load more button" },
|
|
13875
|
+
{ value: "seeAllLink", label: "Link to another page" }
|
|
13876
|
+
],
|
|
13877
|
+
ui: { intent: "display" }
|
|
13878
|
+
},
|
|
13879
|
+
{
|
|
13880
|
+
id: "seeAllUrl",
|
|
13881
|
+
type: "link",
|
|
13882
|
+
label: "See all destination",
|
|
13883
|
+
required: false,
|
|
13884
|
+
ui: {
|
|
13885
|
+
intent: "display",
|
|
13886
|
+
visibleWhen: {
|
|
13887
|
+
field: "paginationMode",
|
|
13888
|
+
equals: "seeAllLink"
|
|
13759
13889
|
}
|
|
13760
|
-
}
|
|
13761
|
-
|
|
13762
|
-
|
|
13763
|
-
|
|
13764
|
-
|
|
13765
|
-
|
|
13766
|
-
|
|
13767
|
-
|
|
13768
|
-
|
|
13769
|
-
|
|
13770
|
-
|
|
13890
|
+
}
|
|
13891
|
+
},
|
|
13892
|
+
{
|
|
13893
|
+
id: "loadMoreText",
|
|
13894
|
+
type: "text",
|
|
13895
|
+
label: "Button text",
|
|
13896
|
+
description: "Text for the pagination button or link",
|
|
13897
|
+
required: false,
|
|
13898
|
+
multiline: false,
|
|
13899
|
+
defaultValue: "Load more events",
|
|
13900
|
+
maxLength: 40
|
|
13901
|
+
},
|
|
13902
|
+
...cardStylingFields.map((field) => ({
|
|
13903
|
+
...field,
|
|
13904
|
+
ui: { ...field.ui ?? {}, intent: "style" }
|
|
13905
|
+
})),
|
|
13906
|
+
...eventDisplayFields.map((field) => ({
|
|
13907
|
+
...field,
|
|
13908
|
+
ui: { ...field.ui ?? {}, intent: "display" }
|
|
13909
|
+
})),
|
|
13910
|
+
{
|
|
13911
|
+
id: "kind",
|
|
13912
|
+
type: "select",
|
|
13913
|
+
label: "Show",
|
|
13914
|
+
description: "Choose whether this list shows courses, events, or both",
|
|
13915
|
+
required: false,
|
|
13916
|
+
multiple: false,
|
|
13917
|
+
defaultValue: "all",
|
|
13918
|
+
options: [
|
|
13919
|
+
{ value: "all", label: "Courses and events" },
|
|
13920
|
+
{ value: "courses", label: "Courses only" },
|
|
13921
|
+
{ value: "events", label: "Events only" }
|
|
13922
|
+
],
|
|
13923
|
+
ui: { intent: "behavior" }
|
|
13924
|
+
},
|
|
13925
|
+
{
|
|
13926
|
+
id: "eventSurface",
|
|
13927
|
+
type: "select",
|
|
13928
|
+
label: "Event surface",
|
|
13929
|
+
description: "Choose a semantic event scope",
|
|
13930
|
+
required: false,
|
|
13931
|
+
multiple: false,
|
|
13932
|
+
defaultValue: "all",
|
|
13933
|
+
options: [
|
|
13934
|
+
{ value: "all", label: "All events" },
|
|
13935
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
13936
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
13937
|
+
{ value: "custom", label: "Custom" }
|
|
13938
|
+
],
|
|
13939
|
+
ui: { intent: "behavior" }
|
|
13940
|
+
},
|
|
13941
|
+
{
|
|
13942
|
+
id: "filterEventPresets",
|
|
13943
|
+
type: "select",
|
|
13944
|
+
label: "Pre-filter by event type",
|
|
13945
|
+
description: "Restrict this block to specific event types",
|
|
13946
|
+
required: false,
|
|
13947
|
+
multiple: true,
|
|
13948
|
+
defaultValue: [],
|
|
13949
|
+
options: [
|
|
13950
|
+
{ value: "class", label: "Classes" },
|
|
13951
|
+
{ value: "workshop", label: "Workshops" },
|
|
13952
|
+
{ value: "retreat", label: "Retreats" },
|
|
13953
|
+
{ value: "performance", label: "Performances" }
|
|
13954
|
+
],
|
|
13955
|
+
ui: {
|
|
13956
|
+
intent: "behavior",
|
|
13957
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
13958
|
+
}
|
|
13959
|
+
},
|
|
13960
|
+
{
|
|
13961
|
+
id: "scheduleScope",
|
|
13962
|
+
type: "select",
|
|
13963
|
+
label: "Schedule cadence",
|
|
13964
|
+
description: "Restrict this block by recurrence",
|
|
13965
|
+
required: false,
|
|
13966
|
+
multiple: false,
|
|
13967
|
+
defaultValue: "any",
|
|
13968
|
+
options: [
|
|
13969
|
+
{ value: "any", label: "Any cadence" },
|
|
13970
|
+
{ value: "recurring", label: "Recurring only" },
|
|
13971
|
+
{ value: "oneOff", label: "One-off only" }
|
|
13972
|
+
],
|
|
13973
|
+
ui: {
|
|
13974
|
+
intent: "behavior",
|
|
13975
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
13976
|
+
}
|
|
13977
|
+
},
|
|
13978
|
+
{
|
|
13979
|
+
...emptyStateField,
|
|
13980
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
13981
|
+
},
|
|
13982
|
+
sectionStylesField({
|
|
13983
|
+
id: "_sectionStyles",
|
|
13984
|
+
label: "Section styles",
|
|
13985
|
+
renderInHeader: false
|
|
13986
|
+
})
|
|
13987
|
+
];
|
|
13988
|
+
var eventListingLayout = [
|
|
13989
|
+
styledSection({
|
|
13990
|
+
children: sectionContainer([
|
|
13991
|
+
// Optional heading
|
|
13992
|
+
text(
|
|
13993
|
+
{ as: "h2" },
|
|
13994
|
+
bind("content.heading"),
|
|
13995
|
+
when("content.heading")
|
|
13996
|
+
),
|
|
13997
|
+
// Optional description
|
|
13998
|
+
richText(
|
|
13999
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
14000
|
+
bind("content.description"),
|
|
14001
|
+
when("content.description")
|
|
14002
|
+
),
|
|
14003
|
+
// Event listing component with pagination
|
|
14004
|
+
el("event-listing", withApiBindings({
|
|
14005
|
+
events: { $bind: { from: "data.events" } },
|
|
14006
|
+
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
14007
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
14008
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
14009
|
+
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
14010
|
+
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
14011
|
+
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
14012
|
+
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
14013
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
14014
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
14015
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
14016
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
14017
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
14018
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
14019
|
+
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
14020
|
+
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
14021
|
+
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
14022
|
+
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
14023
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
14024
|
+
}))
|
|
14025
|
+
], {
|
|
14026
|
+
gap: "lg"
|
|
14027
|
+
}),
|
|
14028
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
14029
|
+
baseClass: "",
|
|
14030
|
+
spacing: "comfortable"
|
|
14031
|
+
})
|
|
14032
|
+
];
|
|
14033
|
+
var eventListingDerivedFields = [
|
|
14034
|
+
{
|
|
14035
|
+
id: "layout",
|
|
14036
|
+
type: "select",
|
|
14037
|
+
required: false,
|
|
14038
|
+
multiple: false,
|
|
14039
|
+
options: [
|
|
14040
|
+
{ value: "grid" },
|
|
14041
|
+
{ value: "stack" }
|
|
14042
|
+
]
|
|
14043
|
+
},
|
|
14044
|
+
{
|
|
14045
|
+
id: "paginationMode",
|
|
14046
|
+
type: "select",
|
|
14047
|
+
required: false,
|
|
14048
|
+
multiple: false,
|
|
14049
|
+
options: [
|
|
14050
|
+
{ value: "loadMore" },
|
|
14051
|
+
{ value: "seeAllLink" }
|
|
14052
|
+
]
|
|
14053
|
+
}
|
|
14054
|
+
];
|
|
14055
|
+
var eventListingContentShape = {
|
|
14056
|
+
additionalFields: eventListingDerivedFields,
|
|
14057
|
+
skipSectionStyles: true
|
|
14058
|
+
};
|
|
14059
|
+
var eventListingConfig = {
|
|
14060
|
+
id: "block.event-listing",
|
|
14061
|
+
version: "1.1.0",
|
|
14062
|
+
title: "Event Listing",
|
|
14063
|
+
titleSource: "heading",
|
|
14064
|
+
description: "Paginated list of all upcoming events",
|
|
14065
|
+
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
14066
|
+
skipSectionStyles: true,
|
|
14067
|
+
additionalFields: eventListingAdditionalFields,
|
|
13771
14068
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
13772
14069
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: true },
|
|
13773
14070
|
category: "interactive",
|
|
13774
14071
|
tags: ["events", "listing", "paginated", "archive", "all-events"],
|
|
13775
14072
|
icon: "List",
|
|
13776
|
-
layout:
|
|
13777
|
-
|
|
13778
|
-
|
|
13779
|
-
|
|
13780
|
-
|
|
13781
|
-
|
|
13782
|
-
bind("content.heading"),
|
|
13783
|
-
when("content.heading")
|
|
13784
|
-
),
|
|
13785
|
-
// Optional description
|
|
13786
|
-
richText(
|
|
13787
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
13788
|
-
bind("content.description"),
|
|
13789
|
-
when("content.description")
|
|
13790
|
-
),
|
|
13791
|
-
// Event listing component with pagination
|
|
13792
|
-
el("event-listing", withApiBindings({
|
|
13793
|
-
events: { $bind: { from: "data.events" } },
|
|
13794
|
-
stage: { $bind: { from: "$root.previewStage", fallback: "published" } },
|
|
13795
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
13796
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
13797
|
-
eventsPerPage: { $bind: { from: "content.eventsPerPage", fallback: "12" } },
|
|
13798
|
-
paginationMode: { $bind: { from: "content.paginationMode", fallback: "loadMore" } },
|
|
13799
|
-
seeAllUrl: { $bind: { from: "content.seeAllUrl", transforms: [{ id: "links.resolve" }] } },
|
|
13800
|
-
loadMoreText: { $bind: { from: "content.loadMoreText", fallback: "Load more events" } },
|
|
13801
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
13802
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
13803
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
13804
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
13805
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
13806
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
13807
|
-
eventKind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
13808
|
-
eventSurface: { $bind: { from: "content.eventSurface", fallback: "all" } },
|
|
13809
|
-
filterEventPresets: { $bind: { from: "content.filterEventPresets" } },
|
|
13810
|
-
scheduleScope: { $bind: { from: "content.scheduleScope", fallback: "any" } },
|
|
13811
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
13812
|
-
}))
|
|
13813
|
-
], {
|
|
13814
|
-
gap: "lg"
|
|
13815
|
-
}),
|
|
13816
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
13817
|
-
baseClass: "",
|
|
13818
|
-
spacing: "comfortable"
|
|
13819
|
-
})
|
|
13820
|
-
]
|
|
13821
|
-
});
|
|
14073
|
+
layout: eventListingLayout
|
|
14074
|
+
};
|
|
14075
|
+
var eventListingManifest = createBlockManifestWithContentShape(
|
|
14076
|
+
eventListingConfig,
|
|
14077
|
+
eventListingContentShape
|
|
14078
|
+
);
|
|
13822
14079
|
var eventListingBlockDefinition = {
|
|
13823
14080
|
manifest: eventListingManifest,
|
|
13824
14081
|
runtime: eventListingBlockRuntime,
|
|
@@ -13845,7 +14102,6 @@ var eventListingBlockDefinition = {
|
|
|
13845
14102
|
|
|
13846
14103
|
// ../blocks/src/system/runtime/nodes/events/EventCalendar.interactive.ts
|
|
13847
14104
|
import { z as z41 } from "zod";
|
|
13848
|
-
var displayModeSchema = z41.enum(["combined", "month", "week", "list", "timetable"]);
|
|
13849
14105
|
var eventBlockKindSchema2 = z41.enum(eventBlockKindValues);
|
|
13850
14106
|
var eventSurfaceScopeSchema2 = z41.enum(eventSurfaceScopeValues);
|
|
13851
14107
|
var eventScheduleScopeSchema3 = z41.enum(eventScheduleScopeValues);
|
|
@@ -13855,7 +14111,8 @@ var eventCalendarSourceSchema = z41.object(
|
|
|
13855
14111
|
siteId: z41.string(),
|
|
13856
14112
|
apiBaseUrl: z41.string().optional(),
|
|
13857
14113
|
stage: previewStageSchema.optional(),
|
|
13858
|
-
|
|
14114
|
+
variant: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
14115
|
+
displayMode: eventCalendarDisplayModeSchema.nullable().optional(),
|
|
13859
14116
|
listLayout: eventLayoutSchema.optional(),
|
|
13860
14117
|
listColumns: columnOptionSchema.optional(),
|
|
13861
14118
|
layout: eventLayoutSchema.optional(),
|
|
@@ -13887,7 +14144,7 @@ var eventCalendarSourceSchema = z41.object(
|
|
|
13887
14144
|
);
|
|
13888
14145
|
var eventCalendarDisplaySchema = z41.object({
|
|
13889
14146
|
kind: z41.literal("event-calendar"),
|
|
13890
|
-
displayMode:
|
|
14147
|
+
displayMode: eventCalendarDisplayModeSchema,
|
|
13891
14148
|
className: z41.string().nullable(),
|
|
13892
14149
|
events: z41.array(publicEventSchema),
|
|
13893
14150
|
listLayout: eventLayoutSchema,
|
|
@@ -13942,7 +14199,7 @@ var eventCalendarIslandMetaKeys = defineInteractiveIslandMetaKeys(
|
|
|
13942
14199
|
function buildEventCalendarDisplay(source) {
|
|
13943
14200
|
return {
|
|
13944
14201
|
kind: "event-calendar",
|
|
13945
|
-
displayMode: source.displayMode ?? "combined",
|
|
14202
|
+
displayMode: source.variant ?? source.displayMode ?? "combined",
|
|
13946
14203
|
className: source.className ?? null,
|
|
13947
14204
|
events: (source.events ?? []).slice().sort(
|
|
13948
14205
|
(left, right) => new Date(left.startsAt).getTime() - new Date(right.startsAt).getTime()
|
|
@@ -14009,8 +14266,12 @@ var eventCalendarInteractiveIslandPropsCodec = createInteractiveIslandCodec({
|
|
|
14009
14266
|
function normalizeEventCalendarContent(content) {
|
|
14010
14267
|
const record = typeof content === "object" && content !== null ? content : {};
|
|
14011
14268
|
const kind = normalizeEventBlockKind(record.kind);
|
|
14269
|
+
const variant = normalizeEventCalendarDisplayMode(record.variant) ?? normalizeEventCalendarDisplayMode(record.displayMode);
|
|
14012
14270
|
return {
|
|
14013
14271
|
...record,
|
|
14272
|
+
...variant ? { variant } : {},
|
|
14273
|
+
displayMode: normalizeEventCalendarDisplayMode(record.displayMode),
|
|
14274
|
+
listLayout: normalizeEventCalendarListLayout(record.listLayout),
|
|
14014
14275
|
kind,
|
|
14015
14276
|
eventSurface: normalizeEventSurfaceScope(record.eventSurface),
|
|
14016
14277
|
filterEventPresets: normalizeEventSurfacePresets(record.filterEventPresets),
|
|
@@ -14022,355 +14283,515 @@ function normalizeEventCalendarContent(content) {
|
|
|
14022
14283
|
filterVenueId: normalizeEventVenueId(record.filterVenueId)
|
|
14023
14284
|
};
|
|
14024
14285
|
}
|
|
14025
|
-
|
|
14026
|
-
|
|
14027
|
-
|
|
14028
|
-
|
|
14029
|
-
|
|
14030
|
-
|
|
14031
|
-
|
|
14032
|
-
|
|
14033
|
-
|
|
14034
|
-
|
|
14035
|
-
|
|
14036
|
-
|
|
14037
|
-
|
|
14038
|
-
|
|
14039
|
-
|
|
14040
|
-
|
|
14041
|
-
|
|
14042
|
-
|
|
14043
|
-
|
|
14044
|
-
|
|
14045
|
-
|
|
14046
|
-
|
|
14047
|
-
|
|
14048
|
-
|
|
14049
|
-
|
|
14050
|
-
|
|
14051
|
-
|
|
14052
|
-
|
|
14053
|
-
|
|
14054
|
-
|
|
14055
|
-
|
|
14056
|
-
|
|
14057
|
-
|
|
14058
|
-
|
|
14059
|
-
|
|
14060
|
-
|
|
14061
|
-
|
|
14062
|
-
|
|
14063
|
-
|
|
14064
|
-
|
|
14065
|
-
|
|
14066
|
-
|
|
14067
|
-
|
|
14068
|
-
|
|
14069
|
-
|
|
14070
|
-
|
|
14071
|
-
|
|
14072
|
-
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
14078
|
-
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14083
|
-
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14087
|
-
|
|
14088
|
-
|
|
14089
|
-
|
|
14090
|
-
|
|
14091
|
-
|
|
14092
|
-
|
|
14093
|
-
|
|
14094
|
-
|
|
14095
|
-
|
|
14096
|
-
|
|
14097
|
-
|
|
14098
|
-
|
|
14099
|
-
|
|
14100
|
-
|
|
14101
|
-
|
|
14102
|
-
|
|
14103
|
-
|
|
14104
|
-
|
|
14105
|
-
|
|
14106
|
-
|
|
14107
|
-
|
|
14108
|
-
|
|
14109
|
-
|
|
14110
|
-
|
|
14111
|
-
|
|
14112
|
-
|
|
14113
|
-
|
|
14114
|
-
|
|
14115
|
-
|
|
14116
|
-
|
|
14117
|
-
|
|
14118
|
-
|
|
14119
|
-
|
|
14120
|
-
|
|
14121
|
-
|
|
14122
|
-
|
|
14123
|
-
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14127
|
-
id: "loadMoreText",
|
|
14128
|
-
type: "text",
|
|
14129
|
-
label: "Load more button text",
|
|
14130
|
-
description: "Text for the load more button",
|
|
14131
|
-
required: false,
|
|
14132
|
-
multiline: false,
|
|
14133
|
-
defaultValue: "Load more events",
|
|
14134
|
-
ui: {
|
|
14135
|
-
intent: "content",
|
|
14136
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list"] }
|
|
14137
|
-
}
|
|
14138
|
-
},
|
|
14139
|
-
// Calendar options
|
|
14140
|
-
{
|
|
14141
|
-
id: "startOfWeek",
|
|
14142
|
-
type: "select",
|
|
14143
|
-
label: "Week starts on",
|
|
14144
|
-
description: "First day of the week",
|
|
14145
|
-
required: false,
|
|
14146
|
-
multiple: false,
|
|
14147
|
-
defaultValue: "monday",
|
|
14148
|
-
options: [
|
|
14149
|
-
{ value: "sunday", label: "Sunday" },
|
|
14150
|
-
{ value: "monday", label: "Monday" }
|
|
14151
|
-
],
|
|
14152
|
-
ui: {
|
|
14153
|
-
intent: "display",
|
|
14154
|
-
visibleWhen: {
|
|
14155
|
-
field: "displayMode",
|
|
14156
|
-
oneOf: ["combined", "month", "week"]
|
|
14157
|
-
}
|
|
14158
|
-
}
|
|
14159
|
-
},
|
|
14160
|
-
// Combined mode options
|
|
14161
|
-
{
|
|
14162
|
-
id: "calendarTabViews",
|
|
14163
|
-
type: "select",
|
|
14164
|
-
label: "Calendar tab views",
|
|
14165
|
-
description: "Which calendar views to show in the Calendar tab",
|
|
14166
|
-
required: false,
|
|
14167
|
-
multiple: false,
|
|
14168
|
-
defaultValue: "both",
|
|
14169
|
-
options: [
|
|
14170
|
-
{ value: "both", label: "Month + Week toggle" },
|
|
14171
|
-
{ value: "month", label: "Month only" },
|
|
14172
|
-
{ value: "week", label: "Week only" }
|
|
14173
|
-
],
|
|
14174
|
-
ui: {
|
|
14175
|
-
intent: "display",
|
|
14176
|
-
visibleWhen: { field: "displayMode", equals: "combined" }
|
|
14177
|
-
}
|
|
14178
|
-
},
|
|
14179
|
-
// Filtering options
|
|
14180
|
-
{
|
|
14181
|
-
id: "kind",
|
|
14182
|
-
type: "select",
|
|
14183
|
-
label: "Show",
|
|
14184
|
-
description: "Restrict this block to all offerings, courses, or events",
|
|
14185
|
-
required: false,
|
|
14186
|
-
multiple: false,
|
|
14187
|
-
defaultValue: "all",
|
|
14188
|
-
options: [
|
|
14189
|
-
{ value: "all", label: "All offerings" },
|
|
14190
|
-
{ value: "courses", label: "Courses only" },
|
|
14191
|
-
{ value: "events", label: "Events only" }
|
|
14192
|
-
],
|
|
14193
|
-
ui: { intent: "behavior" }
|
|
14194
|
-
},
|
|
14195
|
-
{
|
|
14196
|
-
id: "showFilters",
|
|
14197
|
-
type: "boolean",
|
|
14198
|
-
label: "Show filters",
|
|
14199
|
-
description: "Show category, staff, and venue filters",
|
|
14200
|
-
required: false,
|
|
14201
|
-
defaultValue: true,
|
|
14202
|
-
ui: {
|
|
14203
|
-
intent: "display",
|
|
14204
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
14205
|
-
}
|
|
14206
|
-
},
|
|
14207
|
-
{
|
|
14208
|
-
id: "showCategoryFilter",
|
|
14209
|
-
type: "select",
|
|
14210
|
-
label: "Show category filter",
|
|
14211
|
-
description: "When to show the category filter dropdown",
|
|
14212
|
-
required: false,
|
|
14213
|
-
multiple: false,
|
|
14214
|
-
defaultValue: "auto",
|
|
14215
|
-
options: [
|
|
14216
|
-
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
14217
|
-
{ value: "always", label: "Always" },
|
|
14218
|
-
{ value: "never", label: "Never" }
|
|
14286
|
+
function normalizeEventCalendarDisplayMode(value) {
|
|
14287
|
+
return isEventCalendarDisplayMode(value) ? value : void 0;
|
|
14288
|
+
}
|
|
14289
|
+
function normalizeEventCalendarListLayout(value) {
|
|
14290
|
+
return isEventCalendarListLayout(value) ? value : void 0;
|
|
14291
|
+
}
|
|
14292
|
+
var eventCalendarLayout = [
|
|
14293
|
+
styledSection({
|
|
14294
|
+
children: sectionContainer(
|
|
14295
|
+
[
|
|
14296
|
+
// Optional heading
|
|
14297
|
+
text({ as: "h2" }, bind("content.heading"), when("content.heading")),
|
|
14298
|
+
// Optional description
|
|
14299
|
+
richText(
|
|
14300
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
14301
|
+
bind("content.description"),
|
|
14302
|
+
when("content.description")
|
|
14303
|
+
),
|
|
14304
|
+
// Event calendar component (handles all display modes)
|
|
14305
|
+
el(
|
|
14306
|
+
"event-calendar",
|
|
14307
|
+
withApiBindings({
|
|
14308
|
+
events: { $bind: { from: "data.events" } },
|
|
14309
|
+
stage: {
|
|
14310
|
+
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
14311
|
+
},
|
|
14312
|
+
// Variant is the new Theme V2-facing display mode. displayMode is
|
|
14313
|
+
// retained as a legacy fallback for existing content.
|
|
14314
|
+
variant: {
|
|
14315
|
+
$bind: { from: "content.variant" }
|
|
14316
|
+
},
|
|
14317
|
+
displayMode: {
|
|
14318
|
+
$bind: { from: "content.displayMode" }
|
|
14319
|
+
},
|
|
14320
|
+
// List options
|
|
14321
|
+
listLayout: { $bind: { from: "content.listLayout" } },
|
|
14322
|
+
listColumns: { $bind: { from: "content.listColumns" } },
|
|
14323
|
+
// Legacy compatibility: older event-calendar content used layout/columns
|
|
14324
|
+
layout: { $bind: { from: "content.layout" } },
|
|
14325
|
+
columns: { $bind: { from: "content.columns" } },
|
|
14326
|
+
eventsPerPage: {
|
|
14327
|
+
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
14328
|
+
},
|
|
14329
|
+
compactEventsPerPage: {
|
|
14330
|
+
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
14331
|
+
},
|
|
14332
|
+
loadMoreText: {
|
|
14333
|
+
$bind: {
|
|
14334
|
+
from: "content.loadMoreText",
|
|
14335
|
+
fallback: "Load more events"
|
|
14336
|
+
}
|
|
14337
|
+
},
|
|
14338
|
+
// Calendar options
|
|
14339
|
+
startOfWeek: {
|
|
14340
|
+
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
14341
|
+
},
|
|
14342
|
+
calendarTabViews: {
|
|
14343
|
+
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
14344
|
+
},
|
|
14345
|
+
// Filtering options
|
|
14346
|
+
showFilters: {
|
|
14347
|
+
$bind: { from: "content.showFilters", fallback: true }
|
|
14348
|
+
},
|
|
14349
|
+
showCategoryFilter: {
|
|
14350
|
+
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
14351
|
+
},
|
|
14352
|
+
showVenueFilter: {
|
|
14353
|
+
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
14354
|
+
},
|
|
14355
|
+
showStaffFilter: {
|
|
14356
|
+
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
14357
|
+
},
|
|
14358
|
+
showCapacity: {
|
|
14359
|
+
$bind: { from: "content.showCapacity", fallback: true }
|
|
14360
|
+
},
|
|
14361
|
+
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
14362
|
+
eventSurface: {
|
|
14363
|
+
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
14364
|
+
},
|
|
14365
|
+
filterEventPresets: {
|
|
14366
|
+
$bind: { from: "content.filterEventPresets" }
|
|
14367
|
+
},
|
|
14368
|
+
scheduleScope: {
|
|
14369
|
+
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
14370
|
+
},
|
|
14371
|
+
filterCategoryIds: {
|
|
14372
|
+
$bind: { from: "content.filterCategoryIds" }
|
|
14373
|
+
},
|
|
14374
|
+
filterStaffMemberId: {
|
|
14375
|
+
$bind: { from: "content.filterStaffMemberId" }
|
|
14376
|
+
},
|
|
14377
|
+
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
14378
|
+
// Styling
|
|
14379
|
+
buttonVariant: {
|
|
14380
|
+
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
14381
|
+
},
|
|
14382
|
+
buttonText: {
|
|
14383
|
+
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
14384
|
+
},
|
|
14385
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
14386
|
+
})
|
|
14387
|
+
)
|
|
14219
14388
|
],
|
|
14220
|
-
|
|
14221
|
-
|
|
14222
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
14223
|
-
}
|
|
14224
|
-
},
|
|
14225
|
-
{
|
|
14226
|
-
id: "showVenueFilter",
|
|
14227
|
-
type: "boolean",
|
|
14228
|
-
label: "Show venue filter",
|
|
14229
|
-
description: "Show venue filter dropdown",
|
|
14230
|
-
required: false,
|
|
14231
|
-
defaultValue: false,
|
|
14232
|
-
ui: {
|
|
14233
|
-
intent: "display",
|
|
14234
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
14235
|
-
}
|
|
14236
|
-
},
|
|
14237
|
-
{
|
|
14238
|
-
id: "showStaffFilter",
|
|
14239
|
-
type: "boolean",
|
|
14240
|
-
label: "Show staff filter",
|
|
14241
|
-
description: "Show staff filter dropdown",
|
|
14242
|
-
required: false,
|
|
14243
|
-
defaultValue: true,
|
|
14244
|
-
ui: {
|
|
14245
|
-
intent: "display",
|
|
14246
|
-
visibleWhen: { field: "displayMode", oneOf: ["combined", "list", "timetable"] }
|
|
14247
|
-
}
|
|
14248
|
-
},
|
|
14249
|
-
{
|
|
14250
|
-
id: "showCapacity",
|
|
14251
|
-
type: "boolean",
|
|
14252
|
-
label: "Show available spots",
|
|
14253
|
-
description: "Display remaining capacity on event cards and timetable cells",
|
|
14254
|
-
required: false,
|
|
14255
|
-
defaultValue: true,
|
|
14256
|
-
ui: {
|
|
14257
|
-
intent: "display",
|
|
14258
|
-
visibleWhen: {
|
|
14259
|
-
field: "displayMode",
|
|
14260
|
-
oneOf: ["combined", "list", "week", "timetable"]
|
|
14261
|
-
}
|
|
14389
|
+
{
|
|
14390
|
+
gap: "lg"
|
|
14262
14391
|
}
|
|
14263
|
-
|
|
14264
|
-
//
|
|
14265
|
-
|
|
14266
|
-
|
|
14267
|
-
|
|
14268
|
-
|
|
14269
|
-
|
|
14270
|
-
|
|
14271
|
-
|
|
14272
|
-
|
|
14273
|
-
|
|
14274
|
-
|
|
14275
|
-
|
|
14276
|
-
|
|
14277
|
-
|
|
14278
|
-
|
|
14279
|
-
|
|
14280
|
-
|
|
14281
|
-
|
|
14282
|
-
|
|
14283
|
-
|
|
14284
|
-
|
|
14285
|
-
|
|
14286
|
-
|
|
14287
|
-
|
|
14288
|
-
|
|
14289
|
-
|
|
14290
|
-
|
|
14291
|
-
|
|
14292
|
-
|
|
14293
|
-
|
|
14294
|
-
|
|
14295
|
-
|
|
14296
|
-
|
|
14297
|
-
|
|
14392
|
+
),
|
|
14393
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
14394
|
+
baseClass: "",
|
|
14395
|
+
spacing: "comfortable"
|
|
14396
|
+
})
|
|
14397
|
+
];
|
|
14398
|
+
var eventCalendarAdditionalFields = [
|
|
14399
|
+
...sectionHeaderFields("Event Calendar"),
|
|
14400
|
+
// Display Mode (replaces calendarView)
|
|
14401
|
+
{
|
|
14402
|
+
id: "displayMode",
|
|
14403
|
+
type: "select",
|
|
14404
|
+
label: "Display mode",
|
|
14405
|
+
description: "How events are displayed",
|
|
14406
|
+
required: false,
|
|
14407
|
+
multiple: false,
|
|
14408
|
+
defaultValue: "combined",
|
|
14409
|
+
options: [
|
|
14410
|
+
{ value: "combined", label: "Combined (List + Calendar tabs)" },
|
|
14411
|
+
{ value: "month", label: "Month calendar" },
|
|
14412
|
+
{ value: "week", label: "Week agenda" },
|
|
14413
|
+
{ value: "timetable", label: "Timetable" },
|
|
14414
|
+
{ value: "list", label: "List" }
|
|
14415
|
+
],
|
|
14416
|
+
ui: { intent: "display", hidden: true }
|
|
14417
|
+
},
|
|
14418
|
+
// List options (visible when displayMode is list or combined)
|
|
14419
|
+
{
|
|
14420
|
+
id: "listLayout",
|
|
14421
|
+
type: "select",
|
|
14422
|
+
label: "List layout",
|
|
14423
|
+
description: "Layout style for list view",
|
|
14424
|
+
required: false,
|
|
14425
|
+
multiple: false,
|
|
14426
|
+
defaultValue: "stack",
|
|
14427
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
14428
|
+
value: option.id,
|
|
14429
|
+
label: option.label
|
|
14430
|
+
})),
|
|
14431
|
+
ui: {
|
|
14432
|
+
intent: "display",
|
|
14433
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
14434
|
+
}
|
|
14435
|
+
},
|
|
14436
|
+
{
|
|
14437
|
+
id: "listColumns",
|
|
14438
|
+
type: "select",
|
|
14439
|
+
label: "Grid columns",
|
|
14440
|
+
description: "Number of columns in grid layout",
|
|
14441
|
+
required: false,
|
|
14442
|
+
multiple: false,
|
|
14443
|
+
defaultValue: "3",
|
|
14444
|
+
options: [
|
|
14445
|
+
{ value: "2", label: "2 columns" },
|
|
14446
|
+
{ value: "3", label: "3 columns" },
|
|
14447
|
+
{ value: "4", label: "4 columns" }
|
|
14448
|
+
],
|
|
14449
|
+
ui: {
|
|
14450
|
+
intent: "display",
|
|
14451
|
+
visibleWhen: { field: "listLayout", equals: "grid" }
|
|
14452
|
+
}
|
|
14453
|
+
},
|
|
14454
|
+
{
|
|
14455
|
+
id: "eventsPerPage",
|
|
14456
|
+
type: "select",
|
|
14457
|
+
label: "Events per page (cards)",
|
|
14458
|
+
description: "Number of events to load initially in card layouts",
|
|
14459
|
+
required: false,
|
|
14460
|
+
multiple: false,
|
|
14461
|
+
defaultValue: "12",
|
|
14462
|
+
options: [
|
|
14463
|
+
{ value: "6", label: "6" },
|
|
14464
|
+
{ value: "12", label: "12" },
|
|
14465
|
+
{ value: "24", label: "24" }
|
|
14466
|
+
],
|
|
14467
|
+
ui: {
|
|
14468
|
+
intent: "display",
|
|
14469
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
14470
|
+
}
|
|
14471
|
+
},
|
|
14472
|
+
{
|
|
14473
|
+
id: "compactEventsPerPage",
|
|
14474
|
+
type: "select",
|
|
14475
|
+
label: "Events per page (compact)",
|
|
14476
|
+
description: "Number of events to show per page in compact layout",
|
|
14477
|
+
required: false,
|
|
14478
|
+
multiple: false,
|
|
14479
|
+
defaultValue: "10",
|
|
14480
|
+
options: [
|
|
14481
|
+
{ value: "10", label: "10" },
|
|
14482
|
+
{ value: "20", label: "20" },
|
|
14483
|
+
{ value: "30", label: "30" }
|
|
14484
|
+
],
|
|
14485
|
+
ui: {
|
|
14486
|
+
intent: "display",
|
|
14487
|
+
visibleWhen: { field: "listLayout", equals: "compact" }
|
|
14488
|
+
}
|
|
14489
|
+
},
|
|
14490
|
+
{
|
|
14491
|
+
id: "loadMoreText",
|
|
14492
|
+
type: "text",
|
|
14493
|
+
label: "Load more button text",
|
|
14494
|
+
description: "Text for the load more button",
|
|
14495
|
+
required: false,
|
|
14496
|
+
multiline: false,
|
|
14497
|
+
defaultValue: "Load more events",
|
|
14498
|
+
ui: {
|
|
14499
|
+
intent: "content",
|
|
14500
|
+
visibleWhen: { field: "variant", oneOf: ["combined", "list"] }
|
|
14501
|
+
}
|
|
14502
|
+
},
|
|
14503
|
+
// Calendar options
|
|
14504
|
+
{
|
|
14505
|
+
id: "startOfWeek",
|
|
14506
|
+
type: "select",
|
|
14507
|
+
label: "Week starts on",
|
|
14508
|
+
description: "First day of the week",
|
|
14509
|
+
required: false,
|
|
14510
|
+
multiple: false,
|
|
14511
|
+
defaultValue: "monday",
|
|
14512
|
+
options: [
|
|
14513
|
+
{ value: "sunday", label: "Sunday" },
|
|
14514
|
+
{ value: "monday", label: "Monday" }
|
|
14515
|
+
],
|
|
14516
|
+
ui: {
|
|
14517
|
+
intent: "display",
|
|
14518
|
+
visibleWhen: {
|
|
14519
|
+
field: "variant",
|
|
14520
|
+
oneOf: ["combined", "month", "week"]
|
|
14298
14521
|
}
|
|
14299
|
-
}
|
|
14300
|
-
|
|
14301
|
-
|
|
14302
|
-
|
|
14303
|
-
|
|
14304
|
-
|
|
14305
|
-
|
|
14306
|
-
|
|
14307
|
-
|
|
14308
|
-
|
|
14309
|
-
|
|
14310
|
-
|
|
14311
|
-
|
|
14312
|
-
|
|
14313
|
-
|
|
14314
|
-
|
|
14315
|
-
|
|
14522
|
+
}
|
|
14523
|
+
},
|
|
14524
|
+
// Combined mode options
|
|
14525
|
+
{
|
|
14526
|
+
id: "calendarTabViews",
|
|
14527
|
+
type: "select",
|
|
14528
|
+
label: "Calendar tab views",
|
|
14529
|
+
description: "Which calendar views to show in the Calendar tab",
|
|
14530
|
+
required: false,
|
|
14531
|
+
multiple: false,
|
|
14532
|
+
defaultValue: "both",
|
|
14533
|
+
options: [
|
|
14534
|
+
{ value: "both", label: "Month + Week toggle" },
|
|
14535
|
+
{ value: "month", label: "Month only" },
|
|
14536
|
+
{ value: "week", label: "Week only" }
|
|
14537
|
+
],
|
|
14538
|
+
ui: {
|
|
14539
|
+
intent: "display",
|
|
14540
|
+
visibleWhen: { field: "variant", equals: "combined" }
|
|
14541
|
+
}
|
|
14542
|
+
},
|
|
14543
|
+
// Filtering options
|
|
14544
|
+
{
|
|
14545
|
+
id: "kind",
|
|
14546
|
+
type: "select",
|
|
14547
|
+
label: "Show",
|
|
14548
|
+
description: "Restrict this block to all offerings, courses, or events",
|
|
14549
|
+
required: false,
|
|
14550
|
+
multiple: false,
|
|
14551
|
+
defaultValue: "all",
|
|
14552
|
+
options: [
|
|
14553
|
+
{ value: "all", label: "All offerings" },
|
|
14554
|
+
{ value: "courses", label: "Courses only" },
|
|
14555
|
+
{ value: "events", label: "Events only" }
|
|
14556
|
+
],
|
|
14557
|
+
ui: { intent: "behavior" }
|
|
14558
|
+
},
|
|
14559
|
+
{
|
|
14560
|
+
id: "showFilters",
|
|
14561
|
+
type: "boolean",
|
|
14562
|
+
label: "Show filters",
|
|
14563
|
+
description: "Show category, staff, and venue filters",
|
|
14564
|
+
required: false,
|
|
14565
|
+
defaultValue: true,
|
|
14566
|
+
ui: {
|
|
14567
|
+
intent: "display",
|
|
14568
|
+
visibleWhen: {
|
|
14569
|
+
field: "variant",
|
|
14570
|
+
oneOf: ["combined", "list", "timetable"]
|
|
14316
14571
|
}
|
|
14317
|
-
}
|
|
14318
|
-
|
|
14319
|
-
|
|
14320
|
-
|
|
14321
|
-
|
|
14322
|
-
|
|
14323
|
-
|
|
14324
|
-
|
|
14325
|
-
|
|
14326
|
-
|
|
14327
|
-
|
|
14328
|
-
|
|
14329
|
-
|
|
14572
|
+
}
|
|
14573
|
+
},
|
|
14574
|
+
{
|
|
14575
|
+
id: "showCategoryFilter",
|
|
14576
|
+
type: "select",
|
|
14577
|
+
label: "Show category filter",
|
|
14578
|
+
description: "When to show the category filter dropdown",
|
|
14579
|
+
required: false,
|
|
14580
|
+
multiple: false,
|
|
14581
|
+
defaultValue: "auto",
|
|
14582
|
+
options: [
|
|
14583
|
+
{ value: "auto", label: "Auto (when >1 category has events)" },
|
|
14584
|
+
{ value: "always", label: "Always" },
|
|
14585
|
+
{ value: "never", label: "Never" }
|
|
14586
|
+
],
|
|
14587
|
+
ui: {
|
|
14588
|
+
intent: "display",
|
|
14589
|
+
visibleWhen: {
|
|
14590
|
+
field: "variant",
|
|
14591
|
+
oneOf: ["combined", "list", "timetable"]
|
|
14330
14592
|
}
|
|
14331
|
-
}
|
|
14332
|
-
|
|
14333
|
-
|
|
14334
|
-
|
|
14335
|
-
|
|
14336
|
-
|
|
14337
|
-
|
|
14338
|
-
|
|
14339
|
-
|
|
14340
|
-
|
|
14341
|
-
|
|
14593
|
+
}
|
|
14594
|
+
},
|
|
14595
|
+
{
|
|
14596
|
+
id: "showVenueFilter",
|
|
14597
|
+
type: "boolean",
|
|
14598
|
+
label: "Show venue filter",
|
|
14599
|
+
description: "Show venue filter dropdown",
|
|
14600
|
+
required: false,
|
|
14601
|
+
defaultValue: false,
|
|
14602
|
+
ui: {
|
|
14603
|
+
intent: "display",
|
|
14604
|
+
visibleWhen: {
|
|
14605
|
+
field: "variant",
|
|
14606
|
+
oneOf: ["combined", "list", "timetable"]
|
|
14342
14607
|
}
|
|
14343
|
-
}
|
|
14344
|
-
|
|
14345
|
-
|
|
14346
|
-
|
|
14347
|
-
|
|
14348
|
-
|
|
14349
|
-
|
|
14350
|
-
|
|
14351
|
-
|
|
14352
|
-
|
|
14353
|
-
|
|
14608
|
+
}
|
|
14609
|
+
},
|
|
14610
|
+
{
|
|
14611
|
+
id: "showStaffFilter",
|
|
14612
|
+
type: "boolean",
|
|
14613
|
+
label: "Show staff filter",
|
|
14614
|
+
description: "Show staff filter dropdown",
|
|
14615
|
+
required: false,
|
|
14616
|
+
defaultValue: true,
|
|
14617
|
+
ui: {
|
|
14618
|
+
intent: "display",
|
|
14619
|
+
visibleWhen: {
|
|
14620
|
+
field: "variant",
|
|
14621
|
+
oneOf: ["combined", "list", "timetable"]
|
|
14354
14622
|
}
|
|
14355
|
-
}
|
|
14356
|
-
|
|
14357
|
-
|
|
14358
|
-
|
|
14359
|
-
|
|
14360
|
-
|
|
14361
|
-
|
|
14623
|
+
}
|
|
14624
|
+
},
|
|
14625
|
+
{
|
|
14626
|
+
id: "showCapacity",
|
|
14627
|
+
type: "boolean",
|
|
14628
|
+
label: "Show available spots",
|
|
14629
|
+
description: "Display remaining capacity on event cards and timetable cells",
|
|
14630
|
+
required: false,
|
|
14631
|
+
defaultValue: true,
|
|
14632
|
+
ui: {
|
|
14633
|
+
intent: "display",
|
|
14634
|
+
visibleWhen: {
|
|
14635
|
+
field: "variant",
|
|
14636
|
+
oneOf: ["combined", "list", "week", "timetable"]
|
|
14362
14637
|
}
|
|
14363
|
-
}
|
|
14364
|
-
|
|
14365
|
-
|
|
14366
|
-
|
|
14367
|
-
|
|
14368
|
-
|
|
14369
|
-
|
|
14370
|
-
|
|
14371
|
-
|
|
14372
|
-
|
|
14373
|
-
|
|
14638
|
+
}
|
|
14639
|
+
},
|
|
14640
|
+
// Block-level pre-filtering
|
|
14641
|
+
{
|
|
14642
|
+
id: "eventSurface",
|
|
14643
|
+
type: "select",
|
|
14644
|
+
label: "Event surface",
|
|
14645
|
+
description: "Choose a semantic event scope",
|
|
14646
|
+
required: false,
|
|
14647
|
+
multiple: false,
|
|
14648
|
+
defaultValue: "all",
|
|
14649
|
+
options: [
|
|
14650
|
+
{ value: "all", label: "All events" },
|
|
14651
|
+
{ value: "regularClassSchedule", label: "Regular class schedule" },
|
|
14652
|
+
{ value: "specialDatedEvents", label: "Workshops and special events" },
|
|
14653
|
+
{ value: "custom", label: "Custom" }
|
|
14654
|
+
],
|
|
14655
|
+
ui: { intent: "behavior" }
|
|
14656
|
+
},
|
|
14657
|
+
{
|
|
14658
|
+
id: "filterEventPresets",
|
|
14659
|
+
type: "select",
|
|
14660
|
+
label: "Pre-filter by event type",
|
|
14661
|
+
description: "Restrict this block to specific event types",
|
|
14662
|
+
required: false,
|
|
14663
|
+
multiple: true,
|
|
14664
|
+
defaultValue: [],
|
|
14665
|
+
options: [
|
|
14666
|
+
{ value: "class", label: "Classes" },
|
|
14667
|
+
{ value: "workshop", label: "Workshops" },
|
|
14668
|
+
{ value: "retreat", label: "Retreats" },
|
|
14669
|
+
{ value: "performance", label: "Performances" }
|
|
14670
|
+
],
|
|
14671
|
+
ui: {
|
|
14672
|
+
intent: "behavior",
|
|
14673
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
14674
|
+
}
|
|
14675
|
+
},
|
|
14676
|
+
{
|
|
14677
|
+
id: "scheduleScope",
|
|
14678
|
+
type: "select",
|
|
14679
|
+
label: "Schedule cadence",
|
|
14680
|
+
description: "Restrict this block by recurrence",
|
|
14681
|
+
required: false,
|
|
14682
|
+
multiple: false,
|
|
14683
|
+
defaultValue: "any",
|
|
14684
|
+
options: [
|
|
14685
|
+
{ value: "any", label: "Any cadence" },
|
|
14686
|
+
{ value: "recurring", label: "Recurring only" },
|
|
14687
|
+
{ value: "oneOff", label: "One-off only" }
|
|
14688
|
+
],
|
|
14689
|
+
ui: {
|
|
14690
|
+
intent: "behavior",
|
|
14691
|
+
visibleWhen: { field: "eventSurface", equals: "custom" }
|
|
14692
|
+
}
|
|
14693
|
+
},
|
|
14694
|
+
createSiteOptionSelectField({
|
|
14695
|
+
id: "filterCategoryIds",
|
|
14696
|
+
label: "Pre-filter by categories",
|
|
14697
|
+
description: "Restrict this block to specific event categories",
|
|
14698
|
+
required: false,
|
|
14699
|
+
multiple: true,
|
|
14700
|
+
defaultValue: [],
|
|
14701
|
+
optionSource: "eventCategories",
|
|
14702
|
+
ui: {
|
|
14703
|
+
intent: "behavior",
|
|
14704
|
+
searchThreshold: 8,
|
|
14705
|
+
visibleWhen: { field: "kind", notEquals: "courses" }
|
|
14706
|
+
}
|
|
14707
|
+
}),
|
|
14708
|
+
createSiteOptionSelectField({
|
|
14709
|
+
id: "filterStaffMemberId",
|
|
14710
|
+
label: "Pre-filter by staff member",
|
|
14711
|
+
description: "Restrict this block to a single staff member",
|
|
14712
|
+
required: false,
|
|
14713
|
+
multiple: false,
|
|
14714
|
+
optionSource: "staffMembers",
|
|
14715
|
+
ui: {
|
|
14716
|
+
intent: "behavior",
|
|
14717
|
+
searchThreshold: 8
|
|
14718
|
+
}
|
|
14719
|
+
}),
|
|
14720
|
+
createSiteOptionSelectField({
|
|
14721
|
+
id: "filterVenueId",
|
|
14722
|
+
label: "Pre-filter by venue",
|
|
14723
|
+
description: "Restrict this block to a single venue",
|
|
14724
|
+
required: false,
|
|
14725
|
+
multiple: false,
|
|
14726
|
+
optionSource: "venues",
|
|
14727
|
+
ui: {
|
|
14728
|
+
intent: "behavior",
|
|
14729
|
+
searchThreshold: 8
|
|
14730
|
+
}
|
|
14731
|
+
}),
|
|
14732
|
+
// Card styling
|
|
14733
|
+
...cardStylingFields.filter((f) => f.id === "buttonVariant" || f.id === "buttonText").map((field) => ({
|
|
14734
|
+
...field,
|
|
14735
|
+
ui: {
|
|
14736
|
+
...field.ui ?? {},
|
|
14737
|
+
intent: field.id === "buttonVariant" ? "style" : "content"
|
|
14738
|
+
}
|
|
14739
|
+
})),
|
|
14740
|
+
{
|
|
14741
|
+
...emptyStateField,
|
|
14742
|
+
ui: { ...emptyStateField.ui ?? {}, intent: "display" }
|
|
14743
|
+
},
|
|
14744
|
+
sectionStylesField({
|
|
14745
|
+
id: "_sectionStyles",
|
|
14746
|
+
label: "Section styles",
|
|
14747
|
+
renderInHeader: false
|
|
14748
|
+
})
|
|
14749
|
+
];
|
|
14750
|
+
var eventCalendarVariants = {
|
|
14751
|
+
combined: eventCalendarLayout[0],
|
|
14752
|
+
month: eventCalendarLayout[0],
|
|
14753
|
+
week: eventCalendarLayout[0],
|
|
14754
|
+
timetable: eventCalendarLayout[0],
|
|
14755
|
+
list: eventCalendarLayout[0]
|
|
14756
|
+
};
|
|
14757
|
+
var eventCalendarDerivedFields = [
|
|
14758
|
+
{
|
|
14759
|
+
id: "displayMode",
|
|
14760
|
+
type: "select",
|
|
14761
|
+
required: false,
|
|
14762
|
+
multiple: false,
|
|
14763
|
+
options: [
|
|
14764
|
+
{ value: "combined" },
|
|
14765
|
+
{ value: "month" },
|
|
14766
|
+
{ value: "week" },
|
|
14767
|
+
{ value: "timetable" },
|
|
14768
|
+
{ value: "list" }
|
|
14769
|
+
]
|
|
14770
|
+
},
|
|
14771
|
+
{
|
|
14772
|
+
id: "listLayout",
|
|
14773
|
+
type: "select",
|
|
14774
|
+
required: false,
|
|
14775
|
+
multiple: false,
|
|
14776
|
+
options: eventCalendarListLayoutOptions.map((option) => ({
|
|
14777
|
+
value: option.id
|
|
14778
|
+
}))
|
|
14779
|
+
}
|
|
14780
|
+
];
|
|
14781
|
+
var eventCalendarContentShape = {
|
|
14782
|
+
additionalFields: eventCalendarDerivedFields,
|
|
14783
|
+
variants: eventCalendarVariants,
|
|
14784
|
+
skipSectionStyles: true
|
|
14785
|
+
};
|
|
14786
|
+
var eventCalendarConfig = {
|
|
14787
|
+
id: "block.event-calendar",
|
|
14788
|
+
version: "3.6.0",
|
|
14789
|
+
title: "Event Calendar",
|
|
14790
|
+
titleSource: "heading",
|
|
14791
|
+
description: "Display events with calendar, list, or combined views with filtering",
|
|
14792
|
+
// Preserve legacy section styles field configuration (renderInHeader: false).
|
|
14793
|
+
skipSectionStyles: true,
|
|
14794
|
+
additionalFields: eventCalendarAdditionalFields,
|
|
14374
14795
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
14375
14796
|
behaviours: {
|
|
14376
14797
|
supportsThemeSwitching: true,
|
|
@@ -14390,109 +14811,21 @@ var eventCalendarManifest = createBlockManifest({
|
|
|
14390
14811
|
"filter"
|
|
14391
14812
|
],
|
|
14392
14813
|
icon: "CalendarDays",
|
|
14393
|
-
layout:
|
|
14394
|
-
|
|
14395
|
-
|
|
14396
|
-
|
|
14397
|
-
|
|
14398
|
-
|
|
14399
|
-
|
|
14400
|
-
|
|
14401
|
-
|
|
14402
|
-
|
|
14403
|
-
|
|
14404
|
-
|
|
14405
|
-
|
|
14406
|
-
|
|
14407
|
-
|
|
14408
|
-
withApiBindings({
|
|
14409
|
-
events: { $bind: { from: "data.events" } },
|
|
14410
|
-
stage: {
|
|
14411
|
-
$bind: { from: "$root.previewStage", fallback: "published" }
|
|
14412
|
-
},
|
|
14413
|
-
// Display mode
|
|
14414
|
-
displayMode: {
|
|
14415
|
-
$bind: { from: "content.displayMode", fallback: "combined" }
|
|
14416
|
-
},
|
|
14417
|
-
// List options
|
|
14418
|
-
listLayout: { $bind: { from: "content.listLayout" } },
|
|
14419
|
-
listColumns: { $bind: { from: "content.listColumns" } },
|
|
14420
|
-
// Legacy compatibility: older event-calendar content used layout/columns
|
|
14421
|
-
layout: { $bind: { from: "content.layout" } },
|
|
14422
|
-
columns: { $bind: { from: "content.columns" } },
|
|
14423
|
-
eventsPerPage: {
|
|
14424
|
-
$bind: { from: "content.eventsPerPage", fallback: "12" }
|
|
14425
|
-
},
|
|
14426
|
-
compactEventsPerPage: {
|
|
14427
|
-
$bind: { from: "content.compactEventsPerPage", fallback: "10" }
|
|
14428
|
-
},
|
|
14429
|
-
loadMoreText: {
|
|
14430
|
-
$bind: {
|
|
14431
|
-
from: "content.loadMoreText",
|
|
14432
|
-
fallback: "Load more events"
|
|
14433
|
-
}
|
|
14434
|
-
},
|
|
14435
|
-
// Calendar options
|
|
14436
|
-
startOfWeek: {
|
|
14437
|
-
$bind: { from: "content.startOfWeek", fallback: "monday" }
|
|
14438
|
-
},
|
|
14439
|
-
calendarTabViews: {
|
|
14440
|
-
$bind: { from: "content.calendarTabViews", fallback: "both" }
|
|
14441
|
-
},
|
|
14442
|
-
// Filtering options
|
|
14443
|
-
showFilters: {
|
|
14444
|
-
$bind: { from: "content.showFilters", fallback: true }
|
|
14445
|
-
},
|
|
14446
|
-
showCategoryFilter: {
|
|
14447
|
-
$bind: { from: "content.showCategoryFilter", fallback: "auto" }
|
|
14448
|
-
},
|
|
14449
|
-
showVenueFilter: {
|
|
14450
|
-
$bind: { from: "content.showVenueFilter", fallback: false }
|
|
14451
|
-
},
|
|
14452
|
-
showStaffFilter: {
|
|
14453
|
-
$bind: { from: "content.showStaffFilter", fallback: true }
|
|
14454
|
-
},
|
|
14455
|
-
showCapacity: {
|
|
14456
|
-
$bind: { from: "content.showCapacity", fallback: true }
|
|
14457
|
-
},
|
|
14458
|
-
kind: { $bind: { from: "content.kind", fallback: "all" } },
|
|
14459
|
-
eventSurface: {
|
|
14460
|
-
$bind: { from: "content.eventSurface", fallback: "all" }
|
|
14461
|
-
},
|
|
14462
|
-
filterEventPresets: {
|
|
14463
|
-
$bind: { from: "content.filterEventPresets" }
|
|
14464
|
-
},
|
|
14465
|
-
scheduleScope: {
|
|
14466
|
-
$bind: { from: "content.scheduleScope", fallback: "any" }
|
|
14467
|
-
},
|
|
14468
|
-
filterCategoryIds: {
|
|
14469
|
-
$bind: { from: "content.filterCategoryIds" }
|
|
14470
|
-
},
|
|
14471
|
-
filterStaffMemberId: {
|
|
14472
|
-
$bind: { from: "content.filterStaffMemberId" }
|
|
14473
|
-
},
|
|
14474
|
-
filterVenueId: { $bind: { from: "content.filterVenueId" } },
|
|
14475
|
-
// Styling
|
|
14476
|
-
buttonVariant: {
|
|
14477
|
-
$bind: { from: "content.buttonVariant", fallback: "primary" }
|
|
14478
|
-
},
|
|
14479
|
-
buttonText: {
|
|
14480
|
-
$bind: { from: "content.buttonText", fallback: "View event" }
|
|
14481
|
-
},
|
|
14482
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
14483
|
-
})
|
|
14484
|
-
)
|
|
14485
|
-
],
|
|
14486
|
-
{
|
|
14487
|
-
gap: "lg"
|
|
14488
|
-
}
|
|
14489
|
-
),
|
|
14490
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
14491
|
-
baseClass: "",
|
|
14492
|
-
spacing: "comfortable"
|
|
14493
|
-
})
|
|
14494
|
-
]
|
|
14495
|
-
});
|
|
14814
|
+
layout: eventCalendarLayout,
|
|
14815
|
+
variants: eventCalendarVariants,
|
|
14816
|
+
defaultVariant: "combined",
|
|
14817
|
+
variantOptions: {
|
|
14818
|
+
combined: { label: "Combined" },
|
|
14819
|
+
month: { label: "Month" },
|
|
14820
|
+
week: { label: "Week" },
|
|
14821
|
+
timetable: { label: "Timetable" },
|
|
14822
|
+
list: { label: "List" }
|
|
14823
|
+
}
|
|
14824
|
+
};
|
|
14825
|
+
var eventCalendarManifest = createBlockManifestWithContentShape(
|
|
14826
|
+
eventCalendarConfig,
|
|
14827
|
+
eventCalendarContentShape
|
|
14828
|
+
);
|
|
14496
14829
|
var eventCalendarBlockDefinition = {
|
|
14497
14830
|
manifest: eventCalendarManifest,
|
|
14498
14831
|
normalizeContent: normalizeEventCalendarContent,
|
|
@@ -18545,14 +18878,29 @@ function mediaPanelCapable() {
|
|
|
18545
18878
|
var allSectionSurfaces = [
|
|
18546
18879
|
"base",
|
|
18547
18880
|
"muted-band",
|
|
18548
|
-
"accent-band"
|
|
18881
|
+
"accent-band",
|
|
18882
|
+
"brand-depth-band"
|
|
18549
18883
|
];
|
|
18550
18884
|
var heroSectionSurfaces = [
|
|
18551
18885
|
"base",
|
|
18552
18886
|
"muted-band",
|
|
18553
18887
|
"accent-band",
|
|
18888
|
+
"brand-depth-band",
|
|
18554
18889
|
"hero-image"
|
|
18555
18890
|
];
|
|
18891
|
+
var scheduleTileTreatments = [
|
|
18892
|
+
"default",
|
|
18893
|
+
"quiet",
|
|
18894
|
+
"brand-depth"
|
|
18895
|
+
];
|
|
18896
|
+
function scheduleDetailsCapable() {
|
|
18897
|
+
return declareBlockDesignCapability({
|
|
18898
|
+
sectionSurfaces: "supported",
|
|
18899
|
+
contentFrames: ["plain"],
|
|
18900
|
+
itemSurfaces: "unsupported",
|
|
18901
|
+
tileTreatments: scheduleTileTreatments
|
|
18902
|
+
});
|
|
18903
|
+
}
|
|
18556
18904
|
function defaultBoundaryBias(visualWeight) {
|
|
18557
18905
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
18558
18906
|
}
|
|
@@ -18790,7 +19138,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
18790
19138
|
flow: conversionFlow,
|
|
18791
19139
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
18792
19140
|
})),
|
|
18793
|
-
withDesignCapability("block.event-details", eventDetailsBlockDefinition,
|
|
19141
|
+
withDesignCapability("block.event-details", eventDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
18794
19142
|
flow: offeringsFlow,
|
|
18795
19143
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
18796
19144
|
})),
|
|
@@ -18798,7 +19146,7 @@ var systemBlockDefinitionsRaw = [
|
|
|
18798
19146
|
flow: conversionFlow,
|
|
18799
19147
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "form", weight: "standard" })]
|
|
18800
19148
|
})),
|
|
18801
|
-
withDesignCapability("block.course-details", courseDetailsBlockDefinition,
|
|
19149
|
+
withDesignCapability("block.course-details", courseDetailsBlockDefinition, scheduleDetailsCapable(), defineBlockDesignMetadata({
|
|
18802
19150
|
flow: offeringsFlow,
|
|
18803
19151
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
18804
19152
|
})),
|
|
@@ -18813,7 +19161,13 @@ var systemBlockDefinitionsRaw = [
|
|
|
18813
19161
|
})),
|
|
18814
19162
|
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|
|
18815
19163
|
flow: offeringsFlow,
|
|
18816
|
-
layoutProfiles: [
|
|
19164
|
+
layoutProfiles: [
|
|
19165
|
+
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
19166
|
+
layoutProfile({ variantKey: "list", family: "stack", weight: "standard" }),
|
|
19167
|
+
layoutProfile({ variantKey: "month", family: "grid", weight: "standard" }),
|
|
19168
|
+
layoutProfile({ variantKey: "week", family: "stack", weight: "standard" }),
|
|
19169
|
+
layoutProfile({ variantKey: "timetable", family: "stack", weight: "standard" })
|
|
19170
|
+
]
|
|
18817
19171
|
})),
|
|
18818
19172
|
// Friendly wrapper blocks
|
|
18819
19173
|
withDesignCapability("block.team-members", teamMembersBlockDefinition, sectionOnly(), defineBlockDesignMetadata({
|