@riverbankcms/sdk 0.70.3 → 0.70.4
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/contentTypes.d.ts +2 -1
- package/dist/_dts/block-form/src/client/index.d.ts +1 -1
- package/dist/_dts/block-form/src/fields/types.d.ts +14 -2
- package/dist/_dts/block-form/src/registry/schemas.d.ts +2 -0
- package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +2 -2
- package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +2 -2
- package/dist/_dts/blocks/src/lib/media.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -30727
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +11 -30827
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +106 -1
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1829 -149
- package/dist/_dts/blocks/src/system/defineBlock.d.ts +3 -3
- package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +2 -30793
- package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +2 -30727
- package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +2 -30779
- package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +33 -30743
- package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +2 -30770
- package/dist/_dts/blocks/src/system/fragments/types.d.ts +8 -7
- package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +7 -5
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +192 -3
- package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/schema.d.ts +7 -0
- package/dist/_dts/content-model/src/contentManifest.d.ts +4 -1
- package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +1 -1
- package/dist/_dts/core/src/index.d.ts +1 -1
- package/dist/_dts/core/src/planner.d.ts +4 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +53 -20
- package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +6 -5
- package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +0 -1
- package/dist/_dts/media-editor/src/context.d.ts +4 -1
- package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +8 -1
- package/dist/_dts/media-react/src/index.d.ts +1 -5
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +6 -2
- package/dist/_dts/sdk/src/config/typed-entries.d.ts +4 -2
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -1
- package/dist/_dts/sdk/src/manifest/prompt/examples/cta.d.ts +5 -5
- package/dist/_dts/sdk/src/manifest/prompt/examples/features-grid.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/prompt/examples/hero.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/prompt/examples/pricing.d.ts +10 -10
- package/dist/_dts/sdk/src/manifest/prompt/examples/testimonials.d.ts +4 -4
- package/dist/_dts/sdk/src/manifest/validation/output-schema.d.ts +11 -1
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/cli/index.mjs +395 -190
- package/dist/cli/init-docs/content/workflow-preview-mode.md +167 -0
- package/dist/client/client.mjs +243 -203
- package/dist/client/hooks.mjs +172 -121
- package/dist/client/rendering/client.mjs +148 -112
- package/dist/client/rendering/islands.mjs +80 -31
- package/dist/client/rendering.mjs +242 -202
- package/dist/preview-next/client/runtime.mjs +386 -1135
- package/dist/server/components.mjs +219 -171
- package/dist/server/config-template-validation.mjs +31 -1
- package/dist/server/config-validation.mjs +172 -121
- package/dist/server/config.mjs +172 -121
- package/dist/server/data.mjs +172 -121
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +220 -172
- package/dist/server/page-converter.mjs +379 -185
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +219 -171
- package/dist/server/rendering.mjs +219 -171
- package/dist/server/routing.mjs +175 -124
- package/dist/server/server.mjs +173 -122
- package/package.json +2 -1
package/dist/client/hooks.mjs
CHANGED
|
@@ -6603,6 +6603,28 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
6603
6603
|
|
|
6604
6604
|
// ../blocks/src/system/manifest/schema.ts
|
|
6605
6605
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
6606
|
+
var MEDIA_KINDS = [
|
|
6607
|
+
"image",
|
|
6608
|
+
"video",
|
|
6609
|
+
"audio",
|
|
6610
|
+
"document",
|
|
6611
|
+
"spreadsheet",
|
|
6612
|
+
"archive"
|
|
6613
|
+
];
|
|
6614
|
+
var DISPLAY_MEDIA_KINDS = [
|
|
6615
|
+
"image",
|
|
6616
|
+
"video",
|
|
6617
|
+
"audio"
|
|
6618
|
+
];
|
|
6619
|
+
var PUBLIC_FILE_FIELD_KINDS = [
|
|
6620
|
+
"document",
|
|
6621
|
+
"spreadsheet",
|
|
6622
|
+
"archive",
|
|
6623
|
+
"audio"
|
|
6624
|
+
];
|
|
6625
|
+
function isDisplayMediaKind(kind) {
|
|
6626
|
+
return DISPLAY_MEDIA_KINDS.includes(kind);
|
|
6627
|
+
}
|
|
6606
6628
|
var siteOptionSources = [
|
|
6607
6629
|
"eventCategories",
|
|
6608
6630
|
"venues",
|
|
@@ -6766,11 +6788,19 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
6766
6788
|
});
|
|
6767
6789
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
6768
6790
|
type: z4.literal("media"),
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
|
|
6791
|
+
// Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
|
|
6792
|
+
// New authoring surfaces should use `file.fileKinds` for document/archive
|
|
6793
|
+
// style assets, but old saved schemas must not fail to open.
|
|
6794
|
+
mediaKinds: z4.array(z4.enum(MEDIA_KINDS)).default(["image"]).transform((kinds) => {
|
|
6795
|
+
const displayKinds = kinds.filter(isDisplayMediaKind);
|
|
6796
|
+
return displayKinds.length > 0 ? displayKinds : ["image"];
|
|
6797
|
+
}),
|
|
6772
6798
|
aspectRatio: z4.string().optional()
|
|
6773
6799
|
});
|
|
6800
|
+
var fileFieldSchema = baseFieldSchema.extend({
|
|
6801
|
+
type: z4.literal("file"),
|
|
6802
|
+
fileKinds: z4.array(z4.enum(PUBLIC_FILE_FIELD_KINDS)).default([...PUBLIC_FILE_FIELD_KINDS])
|
|
6803
|
+
});
|
|
6774
6804
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
6775
6805
|
type: z4.literal("boolean")
|
|
6776
6806
|
});
|
|
@@ -7076,6 +7106,7 @@ function getFieldSchemaInternal() {
|
|
|
7076
7106
|
textFieldSchema,
|
|
7077
7107
|
richTextFieldSchema,
|
|
7078
7108
|
mediaFieldSchema,
|
|
7109
|
+
fileFieldSchema,
|
|
7079
7110
|
booleanFieldSchema,
|
|
7080
7111
|
numberFieldSchema,
|
|
7081
7112
|
dateFieldSchema,
|
|
@@ -14212,13 +14243,18 @@ var fragmentDataSchema = z27.object({
|
|
|
14212
14243
|
loader: dataLoaderSchema.optional()
|
|
14213
14244
|
});
|
|
14214
14245
|
var fragmentConfigSchema = z27.object({
|
|
14215
|
-
id: z27.string().min(1, "Fragment id is required").regex(
|
|
14246
|
+
id: z27.string().min(1, "Fragment id is required").regex(
|
|
14247
|
+
FRAGMENT_ID_PATTERN,
|
|
14248
|
+
"Fragment id must be alphanumeric with optional . _ - separators"
|
|
14249
|
+
),
|
|
14216
14250
|
title: z27.string().optional(),
|
|
14217
14251
|
description: z27.string().optional(),
|
|
14218
14252
|
category: z27.enum(["content", "media", "interactive", "layout"]).optional(),
|
|
14219
14253
|
icon: z27.string().optional(),
|
|
14220
14254
|
fields: fieldSchema.array().default([]),
|
|
14221
|
-
layout: z27.union([NodeSchema, NodeSchema.array()]).transform(
|
|
14255
|
+
layout: z27.union([NodeSchema, NodeSchema.array()]).transform(
|
|
14256
|
+
(value) => Array.isArray(value) ? value : [value]
|
|
14257
|
+
),
|
|
14222
14258
|
data: fragmentDataSchema.optional()
|
|
14223
14259
|
});
|
|
14224
14260
|
var FragmentConfigError = class extends Error {
|
|
@@ -14240,13 +14276,19 @@ function defineFragment(config) {
|
|
|
14240
14276
|
function scopeFragmentFields(fragment, scope) {
|
|
14241
14277
|
const normalizedScope = scope.trim();
|
|
14242
14278
|
if (!normalizedScope) {
|
|
14243
|
-
return fragment.fields.map(
|
|
14279
|
+
return fragment.fields.map(
|
|
14280
|
+
(field) => cloneFieldDefinition2(field)
|
|
14281
|
+
);
|
|
14244
14282
|
}
|
|
14245
|
-
return fragment.fields.map(
|
|
14283
|
+
return fragment.fields.map(
|
|
14284
|
+
(field) => prefixFieldId(field, normalizedScope)
|
|
14285
|
+
);
|
|
14246
14286
|
}
|
|
14247
14287
|
function scopeFragmentLayout(fragment, scope) {
|
|
14248
14288
|
const normalizedScope = scope.trim();
|
|
14249
|
-
return fragment.layout.map(
|
|
14289
|
+
return fragment.layout.map(
|
|
14290
|
+
(node) => cloneAndScopeNode(node, normalizedScope)
|
|
14291
|
+
);
|
|
14250
14292
|
}
|
|
14251
14293
|
function validateFieldDefinitions(fields3, fragmentId) {
|
|
14252
14294
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -14328,7 +14370,9 @@ function cloneAndScopeNode(node, scope) {
|
|
|
14328
14370
|
...node
|
|
14329
14371
|
};
|
|
14330
14372
|
if (node.children) {
|
|
14331
|
-
cloned.children = node.children.map(
|
|
14373
|
+
cloned.children = node.children.map(
|
|
14374
|
+
(child) => cloneAndScopeNode(child, scope)
|
|
14375
|
+
);
|
|
14332
14376
|
}
|
|
14333
14377
|
if (node.props) {
|
|
14334
14378
|
cloned.props = scopePropBindings(node.props, scope);
|
|
@@ -14354,7 +14398,9 @@ function scopeBinding(binding, scope) {
|
|
|
14354
14398
|
const cloned = {
|
|
14355
14399
|
...binding,
|
|
14356
14400
|
transforms: binding.transforms?.map(
|
|
14357
|
-
(step) => ({
|
|
14401
|
+
(step) => ({
|
|
14402
|
+
...step
|
|
14403
|
+
})
|
|
14358
14404
|
) ?? []
|
|
14359
14405
|
};
|
|
14360
14406
|
cloned.from = scopeContentPath(binding.from, scope);
|
|
@@ -14398,7 +14444,9 @@ function scopePropValue(value, scope) {
|
|
|
14398
14444
|
};
|
|
14399
14445
|
}
|
|
14400
14446
|
const result = {};
|
|
14401
|
-
for (const [key, entry] of Object.entries(
|
|
14447
|
+
for (const [key, entry] of Object.entries(
|
|
14448
|
+
value
|
|
14449
|
+
)) {
|
|
14402
14450
|
result[key] = scopePropValue(entry, scope);
|
|
14403
14451
|
}
|
|
14404
14452
|
return result;
|
|
@@ -14847,28 +14895,29 @@ var ctaRowFragment = defineFragment({
|
|
|
14847
14895
|
});
|
|
14848
14896
|
|
|
14849
14897
|
// ../blocks/src/system/fragments/library/heroCtaRow.ts
|
|
14898
|
+
var heroCtaFields = [
|
|
14899
|
+
createCtasRepeater({
|
|
14900
|
+
label: "Calls to action",
|
|
14901
|
+
itemLabel: "CTA",
|
|
14902
|
+
maxItems: 3,
|
|
14903
|
+
button: {
|
|
14904
|
+
variants: [
|
|
14905
|
+
{ value: "default", label: "Default" },
|
|
14906
|
+
{ value: "primary", label: "Primary" },
|
|
14907
|
+
{ value: "secondary", label: "Secondary" },
|
|
14908
|
+
{ value: "outline", label: "Outline" }
|
|
14909
|
+
],
|
|
14910
|
+
defaultVariant: "default",
|
|
14911
|
+
includeSize: true,
|
|
14912
|
+
defaultSize: "lg"
|
|
14913
|
+
}
|
|
14914
|
+
})
|
|
14915
|
+
];
|
|
14850
14916
|
var heroCtaRowFragment = defineFragment({
|
|
14851
14917
|
id: "heroCtaRow",
|
|
14852
14918
|
title: "Hero CTAs",
|
|
14853
14919
|
description: "Repeatable hero calls to action rendered inline.",
|
|
14854
|
-
fields:
|
|
14855
|
-
createCtasRepeater({
|
|
14856
|
-
label: "Calls to action",
|
|
14857
|
-
itemLabel: "CTA",
|
|
14858
|
-
maxItems: 3,
|
|
14859
|
-
button: {
|
|
14860
|
-
variants: [
|
|
14861
|
-
{ value: "default", label: "Default" },
|
|
14862
|
-
{ value: "primary", label: "Primary" },
|
|
14863
|
-
{ value: "secondary", label: "Secondary" },
|
|
14864
|
-
{ value: "outline", label: "Outline" }
|
|
14865
|
-
],
|
|
14866
|
-
defaultVariant: "default",
|
|
14867
|
-
includeSize: true,
|
|
14868
|
-
defaultSize: "lg"
|
|
14869
|
-
}
|
|
14870
|
-
})
|
|
14871
|
-
],
|
|
14920
|
+
fields: heroCtaFields,
|
|
14872
14921
|
layout: [
|
|
14873
14922
|
ctaRow({
|
|
14874
14923
|
collectionPath: "content.ctas",
|
|
@@ -20728,8 +20777,7 @@ var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
|
|
|
20728
20777
|
"document",
|
|
20729
20778
|
"spreadsheet",
|
|
20730
20779
|
"archive",
|
|
20731
|
-
"audio"
|
|
20732
|
-
"video"
|
|
20780
|
+
"audio"
|
|
20733
20781
|
];
|
|
20734
20782
|
var hotspotSchema2 = z38.object({
|
|
20735
20783
|
x: z38.number().min(0).max(1),
|
|
@@ -22304,104 +22352,107 @@ var courseDetailsBlockDefinition = {
|
|
|
22304
22352
|
};
|
|
22305
22353
|
|
|
22306
22354
|
// ../blocks/src/system/blocks/events/event-spotlight.ts
|
|
22307
|
-
var
|
|
22355
|
+
var eventSpotlightFields = [
|
|
22356
|
+
...sectionHeaderFields("Upcoming Events"),
|
|
22357
|
+
{
|
|
22358
|
+
id: "maxEvents",
|
|
22359
|
+
type: "select",
|
|
22360
|
+
label: "Events to display",
|
|
22361
|
+
description: "Number of events to show",
|
|
22362
|
+
required: false,
|
|
22363
|
+
multiple: false,
|
|
22364
|
+
defaultValue: "3",
|
|
22365
|
+
options: [
|
|
22366
|
+
{ value: "1", label: "1 event" },
|
|
22367
|
+
{ value: "2", label: "2 events" },
|
|
22368
|
+
{ value: "3", label: "3 events" },
|
|
22369
|
+
{ value: "4", label: "4 events" },
|
|
22370
|
+
{ value: "5", label: "5 events" },
|
|
22371
|
+
{ value: "6", label: "6 events" }
|
|
22372
|
+
],
|
|
22373
|
+
ui: { intent: "display" }
|
|
22374
|
+
},
|
|
22375
|
+
{
|
|
22376
|
+
id: "ctaLabel",
|
|
22377
|
+
type: "text",
|
|
22378
|
+
label: "Section button text",
|
|
22379
|
+
description: "Optional button shown below the spotlight cards",
|
|
22380
|
+
required: false,
|
|
22381
|
+
multiline: false,
|
|
22382
|
+
maxLength: 40,
|
|
22383
|
+
ui: { intent: "content" }
|
|
22384
|
+
},
|
|
22385
|
+
{
|
|
22386
|
+
id: "ctaUrl",
|
|
22387
|
+
type: "link",
|
|
22388
|
+
label: "Section button destination",
|
|
22389
|
+
required: false,
|
|
22390
|
+
ui: { intent: "display" }
|
|
22391
|
+
},
|
|
22392
|
+
layoutField,
|
|
22393
|
+
columnsField(["2", "3"]),
|
|
22394
|
+
...cardStylingFields,
|
|
22395
|
+
...eventDisplayFields,
|
|
22396
|
+
emptyStateField,
|
|
22397
|
+
sectionStylesField({
|
|
22398
|
+
id: "_sectionStyles",
|
|
22399
|
+
label: "Section styles"
|
|
22400
|
+
})
|
|
22401
|
+
];
|
|
22402
|
+
var eventSpotlightLayout = [
|
|
22403
|
+
styledSection({
|
|
22404
|
+
children: sectionContainer([
|
|
22405
|
+
// Optional heading
|
|
22406
|
+
text(
|
|
22407
|
+
{ as: "h2" },
|
|
22408
|
+
bind("content.heading"),
|
|
22409
|
+
when("content.heading")
|
|
22410
|
+
),
|
|
22411
|
+
// Optional description
|
|
22412
|
+
richText(
|
|
22413
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
22414
|
+
bind("content.description"),
|
|
22415
|
+
when("content.description")
|
|
22416
|
+
),
|
|
22417
|
+
// Event spotlight component
|
|
22418
|
+
el("event-spotlight", {
|
|
22419
|
+
events: { $bind: { from: "data.events" } },
|
|
22420
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22421
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22422
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22423
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22424
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22425
|
+
ctaLabel: { $bind: { from: "content.ctaLabel" } },
|
|
22426
|
+
ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22427
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22428
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
22429
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22430
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22431
|
+
})
|
|
22432
|
+
], {
|
|
22433
|
+
gap: "lg"
|
|
22434
|
+
}),
|
|
22435
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
22436
|
+
baseClass: "",
|
|
22437
|
+
spacing: "comfortable"
|
|
22438
|
+
})
|
|
22439
|
+
];
|
|
22440
|
+
var eventSpotlightConfig = {
|
|
22308
22441
|
id: "block.event-spotlight",
|
|
22309
22442
|
version: "1.1.0",
|
|
22310
22443
|
title: "Event Spotlight",
|
|
22311
22444
|
titleSource: "heading",
|
|
22312
22445
|
description: "Feature a few upcoming events on your homepage",
|
|
22313
22446
|
skipSectionStyles: true,
|
|
22314
|
-
additionalFields:
|
|
22315
|
-
...sectionHeaderFields("Upcoming Events"),
|
|
22316
|
-
{
|
|
22317
|
-
id: "maxEvents",
|
|
22318
|
-
type: "select",
|
|
22319
|
-
label: "Events to display",
|
|
22320
|
-
description: "Number of events to show",
|
|
22321
|
-
required: false,
|
|
22322
|
-
multiple: false,
|
|
22323
|
-
defaultValue: "3",
|
|
22324
|
-
options: [
|
|
22325
|
-
{ value: "1", label: "1 event" },
|
|
22326
|
-
{ value: "2", label: "2 events" },
|
|
22327
|
-
{ value: "3", label: "3 events" },
|
|
22328
|
-
{ value: "4", label: "4 events" },
|
|
22329
|
-
{ value: "5", label: "5 events" },
|
|
22330
|
-
{ value: "6", label: "6 events" }
|
|
22331
|
-
],
|
|
22332
|
-
ui: { intent: "display" }
|
|
22333
|
-
},
|
|
22334
|
-
{
|
|
22335
|
-
id: "ctaLabel",
|
|
22336
|
-
type: "text",
|
|
22337
|
-
label: "Section button text",
|
|
22338
|
-
description: "Optional button shown below the spotlight cards",
|
|
22339
|
-
required: false,
|
|
22340
|
-
multiline: false,
|
|
22341
|
-
maxLength: 40,
|
|
22342
|
-
ui: { intent: "content" }
|
|
22343
|
-
},
|
|
22344
|
-
{
|
|
22345
|
-
id: "ctaUrl",
|
|
22346
|
-
type: "link",
|
|
22347
|
-
label: "Section button destination",
|
|
22348
|
-
required: false,
|
|
22349
|
-
ui: { intent: "display" }
|
|
22350
|
-
},
|
|
22351
|
-
layoutField,
|
|
22352
|
-
columnsField(["2", "3"]),
|
|
22353
|
-
...cardStylingFields,
|
|
22354
|
-
...eventDisplayFields,
|
|
22355
|
-
emptyStateField,
|
|
22356
|
-
sectionStylesField({
|
|
22357
|
-
id: "_sectionStyles",
|
|
22358
|
-
label: "Section styles"
|
|
22359
|
-
})
|
|
22360
|
-
],
|
|
22447
|
+
additionalFields: eventSpotlightFields,
|
|
22361
22448
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
22362
22449
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: false },
|
|
22363
22450
|
category: "content",
|
|
22364
22451
|
tags: ["events", "featured", "homepage", "spotlight", "upcoming"],
|
|
22365
22452
|
icon: "Star",
|
|
22366
|
-
layout:
|
|
22367
|
-
|
|
22368
|
-
|
|
22369
|
-
// Optional heading
|
|
22370
|
-
text(
|
|
22371
|
-
{ as: "h2" },
|
|
22372
|
-
bind("content.heading"),
|
|
22373
|
-
when("content.heading")
|
|
22374
|
-
),
|
|
22375
|
-
// Optional description
|
|
22376
|
-
richText(
|
|
22377
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
22378
|
-
bind("content.description"),
|
|
22379
|
-
when("content.description")
|
|
22380
|
-
),
|
|
22381
|
-
// Event spotlight component
|
|
22382
|
-
el("event-spotlight", {
|
|
22383
|
-
events: { $bind: { from: "data.events" } },
|
|
22384
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
22385
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
22386
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
22387
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
22388
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
22389
|
-
ctaLabel: { $bind: { from: "content.ctaLabel" } },
|
|
22390
|
-
ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
|
|
22391
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
22392
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
22393
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
22394
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
22395
|
-
})
|
|
22396
|
-
], {
|
|
22397
|
-
gap: "lg"
|
|
22398
|
-
}),
|
|
22399
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
22400
|
-
baseClass: "",
|
|
22401
|
-
spacing: "comfortable"
|
|
22402
|
-
})
|
|
22403
|
-
]
|
|
22404
|
-
});
|
|
22453
|
+
layout: eventSpotlightLayout
|
|
22454
|
+
};
|
|
22455
|
+
var eventSpotlightManifest = createBlockManifest(eventSpotlightConfig);
|
|
22405
22456
|
var eventSpotlightBlockDefinition = {
|
|
22406
22457
|
manifest: eventSpotlightManifest,
|
|
22407
22458
|
dataSchemas: {
|
|
@@ -25091,18 +25142,18 @@ var fileDownloadManifest = createBlockManifest({
|
|
|
25091
25142
|
title: "File Download",
|
|
25092
25143
|
titleSource: ["title", "file.filename"],
|
|
25093
25144
|
category: "media",
|
|
25094
|
-
description: "Add a simple public download link for a document, ZIP,
|
|
25145
|
+
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
25095
25146
|
tags: ["file", "download", "document", "zip", "media"],
|
|
25096
25147
|
icon: "Download",
|
|
25097
25148
|
includeContainerStyles: true,
|
|
25098
25149
|
additionalFields: [
|
|
25099
25150
|
{
|
|
25100
25151
|
id: "file",
|
|
25101
|
-
type: "
|
|
25152
|
+
type: "file",
|
|
25102
25153
|
label: "Download file",
|
|
25103
25154
|
description: "Choose the file visitors can download.",
|
|
25104
25155
|
required: false,
|
|
25105
|
-
|
|
25156
|
+
fileKinds: [...PUBLIC_DOWNLOAD_MEDIA_TYPES],
|
|
25106
25157
|
ui: { intent: "content" }
|
|
25107
25158
|
},
|
|
25108
25159
|
{
|