@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/server/prebuild.mjs
CHANGED
|
@@ -742,6 +742,28 @@ function resolveRepeaterGridColumnFieldId(options) {
|
|
|
742
742
|
|
|
743
743
|
// ../blocks/src/system/manifest/schema.ts
|
|
744
744
|
var visibilityLevels = ["admin", "designer", "author"];
|
|
745
|
+
var MEDIA_KINDS = [
|
|
746
|
+
"image",
|
|
747
|
+
"video",
|
|
748
|
+
"audio",
|
|
749
|
+
"document",
|
|
750
|
+
"spreadsheet",
|
|
751
|
+
"archive"
|
|
752
|
+
];
|
|
753
|
+
var DISPLAY_MEDIA_KINDS = [
|
|
754
|
+
"image",
|
|
755
|
+
"video",
|
|
756
|
+
"audio"
|
|
757
|
+
];
|
|
758
|
+
var PUBLIC_FILE_FIELD_KINDS = [
|
|
759
|
+
"document",
|
|
760
|
+
"spreadsheet",
|
|
761
|
+
"archive",
|
|
762
|
+
"audio"
|
|
763
|
+
];
|
|
764
|
+
function isDisplayMediaKind(kind) {
|
|
765
|
+
return DISPLAY_MEDIA_KINDS.includes(kind);
|
|
766
|
+
}
|
|
745
767
|
var siteOptionSources = [
|
|
746
768
|
"eventCategories",
|
|
747
769
|
"venues",
|
|
@@ -905,11 +927,19 @@ var richTextFieldSchema = baseFieldSchema.extend({
|
|
|
905
927
|
});
|
|
906
928
|
var mediaFieldSchema = baseFieldSchema.extend({
|
|
907
929
|
type: z3.literal("media"),
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
930
|
+
// Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
|
|
931
|
+
// New authoring surfaces should use `file.fileKinds` for document/archive
|
|
932
|
+
// style assets, but old saved schemas must not fail to open.
|
|
933
|
+
mediaKinds: z3.array(z3.enum(MEDIA_KINDS)).default(["image"]).transform((kinds) => {
|
|
934
|
+
const displayKinds = kinds.filter(isDisplayMediaKind);
|
|
935
|
+
return displayKinds.length > 0 ? displayKinds : ["image"];
|
|
936
|
+
}),
|
|
911
937
|
aspectRatio: z3.string().optional()
|
|
912
938
|
});
|
|
939
|
+
var fileFieldSchema = baseFieldSchema.extend({
|
|
940
|
+
type: z3.literal("file"),
|
|
941
|
+
fileKinds: z3.array(z3.enum(PUBLIC_FILE_FIELD_KINDS)).default([...PUBLIC_FILE_FIELD_KINDS])
|
|
942
|
+
});
|
|
913
943
|
var booleanFieldSchema = baseFieldSchema.extend({
|
|
914
944
|
type: z3.literal("boolean")
|
|
915
945
|
});
|
|
@@ -1215,6 +1245,7 @@ function getFieldSchemaInternal() {
|
|
|
1215
1245
|
textFieldSchema,
|
|
1216
1246
|
richTextFieldSchema,
|
|
1217
1247
|
mediaFieldSchema,
|
|
1248
|
+
fileFieldSchema,
|
|
1218
1249
|
booleanFieldSchema,
|
|
1219
1250
|
numberFieldSchema,
|
|
1220
1251
|
dateFieldSchema,
|
|
@@ -1493,6 +1524,7 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
|
|
|
1493
1524
|
case "richText":
|
|
1494
1525
|
return makePlan("richText", "object", field, path, required, commonConstraints(required, { kind: "richTextDoc" }));
|
|
1495
1526
|
case "media":
|
|
1527
|
+
case "file":
|
|
1496
1528
|
return makePlan("media", "object", field, path, required, commonConstraints(required, { kind: "mediaObject" }));
|
|
1497
1529
|
case "link":
|
|
1498
1530
|
return makePlan("link", "object", field, path, required, commonConstraints(required, { kind: "linkObject" }));
|
|
@@ -11384,13 +11416,18 @@ var fragmentDataSchema = z28.object({
|
|
|
11384
11416
|
loader: dataLoaderSchema.optional()
|
|
11385
11417
|
});
|
|
11386
11418
|
var fragmentConfigSchema = z28.object({
|
|
11387
|
-
id: z28.string().min(1, "Fragment id is required").regex(
|
|
11419
|
+
id: z28.string().min(1, "Fragment id is required").regex(
|
|
11420
|
+
FRAGMENT_ID_PATTERN,
|
|
11421
|
+
"Fragment id must be alphanumeric with optional . _ - separators"
|
|
11422
|
+
),
|
|
11388
11423
|
title: z28.string().optional(),
|
|
11389
11424
|
description: z28.string().optional(),
|
|
11390
11425
|
category: z28.enum(["content", "media", "interactive", "layout"]).optional(),
|
|
11391
11426
|
icon: z28.string().optional(),
|
|
11392
11427
|
fields: fieldSchema.array().default([]),
|
|
11393
|
-
layout: z28.union([NodeSchema, NodeSchema.array()]).transform(
|
|
11428
|
+
layout: z28.union([NodeSchema, NodeSchema.array()]).transform(
|
|
11429
|
+
(value) => Array.isArray(value) ? value : [value]
|
|
11430
|
+
),
|
|
11394
11431
|
data: fragmentDataSchema.optional()
|
|
11395
11432
|
});
|
|
11396
11433
|
var FragmentConfigError = class extends Error {
|
|
@@ -11412,13 +11449,19 @@ function defineFragment(config) {
|
|
|
11412
11449
|
function scopeFragmentFields(fragment, scope) {
|
|
11413
11450
|
const normalizedScope = scope.trim();
|
|
11414
11451
|
if (!normalizedScope) {
|
|
11415
|
-
return fragment.fields.map(
|
|
11452
|
+
return fragment.fields.map(
|
|
11453
|
+
(field) => cloneFieldDefinition2(field)
|
|
11454
|
+
);
|
|
11416
11455
|
}
|
|
11417
|
-
return fragment.fields.map(
|
|
11456
|
+
return fragment.fields.map(
|
|
11457
|
+
(field) => prefixFieldId(field, normalizedScope)
|
|
11458
|
+
);
|
|
11418
11459
|
}
|
|
11419
11460
|
function scopeFragmentLayout(fragment, scope) {
|
|
11420
11461
|
const normalizedScope = scope.trim();
|
|
11421
|
-
return fragment.layout.map(
|
|
11462
|
+
return fragment.layout.map(
|
|
11463
|
+
(node) => cloneAndScopeNode(node, normalizedScope)
|
|
11464
|
+
);
|
|
11422
11465
|
}
|
|
11423
11466
|
function validateFieldDefinitions(fields3, fragmentId) {
|
|
11424
11467
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -11500,7 +11543,9 @@ function cloneAndScopeNode(node, scope) {
|
|
|
11500
11543
|
...node
|
|
11501
11544
|
};
|
|
11502
11545
|
if (node.children) {
|
|
11503
|
-
cloned.children = node.children.map(
|
|
11546
|
+
cloned.children = node.children.map(
|
|
11547
|
+
(child) => cloneAndScopeNode(child, scope)
|
|
11548
|
+
);
|
|
11504
11549
|
}
|
|
11505
11550
|
if (node.props) {
|
|
11506
11551
|
cloned.props = scopePropBindings(node.props, scope);
|
|
@@ -11526,7 +11571,9 @@ function scopeBinding(binding, scope) {
|
|
|
11526
11571
|
const cloned = {
|
|
11527
11572
|
...binding,
|
|
11528
11573
|
transforms: binding.transforms?.map(
|
|
11529
|
-
(step) => ({
|
|
11574
|
+
(step) => ({
|
|
11575
|
+
...step
|
|
11576
|
+
})
|
|
11530
11577
|
) ?? []
|
|
11531
11578
|
};
|
|
11532
11579
|
cloned.from = scopeContentPath(binding.from, scope);
|
|
@@ -11570,7 +11617,9 @@ function scopePropValue(value, scope) {
|
|
|
11570
11617
|
};
|
|
11571
11618
|
}
|
|
11572
11619
|
const result = {};
|
|
11573
|
-
for (const [key, entry] of Object.entries(
|
|
11620
|
+
for (const [key, entry] of Object.entries(
|
|
11621
|
+
value
|
|
11622
|
+
)) {
|
|
11574
11623
|
result[key] = scopePropValue(entry, scope);
|
|
11575
11624
|
}
|
|
11576
11625
|
return result;
|
|
@@ -12019,28 +12068,29 @@ var ctaRowFragment = defineFragment({
|
|
|
12019
12068
|
});
|
|
12020
12069
|
|
|
12021
12070
|
// ../blocks/src/system/fragments/library/heroCtaRow.ts
|
|
12071
|
+
var heroCtaFields = [
|
|
12072
|
+
createCtasRepeater({
|
|
12073
|
+
label: "Calls to action",
|
|
12074
|
+
itemLabel: "CTA",
|
|
12075
|
+
maxItems: 3,
|
|
12076
|
+
button: {
|
|
12077
|
+
variants: [
|
|
12078
|
+
{ value: "default", label: "Default" },
|
|
12079
|
+
{ value: "primary", label: "Primary" },
|
|
12080
|
+
{ value: "secondary", label: "Secondary" },
|
|
12081
|
+
{ value: "outline", label: "Outline" }
|
|
12082
|
+
],
|
|
12083
|
+
defaultVariant: "default",
|
|
12084
|
+
includeSize: true,
|
|
12085
|
+
defaultSize: "lg"
|
|
12086
|
+
}
|
|
12087
|
+
})
|
|
12088
|
+
];
|
|
12022
12089
|
var heroCtaRowFragment = defineFragment({
|
|
12023
12090
|
id: "heroCtaRow",
|
|
12024
12091
|
title: "Hero CTAs",
|
|
12025
12092
|
description: "Repeatable hero calls to action rendered inline.",
|
|
12026
|
-
fields:
|
|
12027
|
-
createCtasRepeater({
|
|
12028
|
-
label: "Calls to action",
|
|
12029
|
-
itemLabel: "CTA",
|
|
12030
|
-
maxItems: 3,
|
|
12031
|
-
button: {
|
|
12032
|
-
variants: [
|
|
12033
|
-
{ value: "default", label: "Default" },
|
|
12034
|
-
{ value: "primary", label: "Primary" },
|
|
12035
|
-
{ value: "secondary", label: "Secondary" },
|
|
12036
|
-
{ value: "outline", label: "Outline" }
|
|
12037
|
-
],
|
|
12038
|
-
defaultVariant: "default",
|
|
12039
|
-
includeSize: true,
|
|
12040
|
-
defaultSize: "lg"
|
|
12041
|
-
}
|
|
12042
|
-
})
|
|
12043
|
-
],
|
|
12093
|
+
fields: heroCtaFields,
|
|
12044
12094
|
layout: [
|
|
12045
12095
|
ctaRow({
|
|
12046
12096
|
collectionPath: "content.ctas",
|
|
@@ -18045,8 +18095,7 @@ var PUBLIC_DOWNLOAD_MEDIA_TYPES = [
|
|
|
18045
18095
|
"document",
|
|
18046
18096
|
"spreadsheet",
|
|
18047
18097
|
"archive",
|
|
18048
|
-
"audio"
|
|
18049
|
-
"video"
|
|
18098
|
+
"audio"
|
|
18050
18099
|
];
|
|
18051
18100
|
var hotspotSchema2 = z39.object({
|
|
18052
18101
|
x: z39.number().min(0).max(1),
|
|
@@ -19782,104 +19831,107 @@ var courseDetailsBlockDefinition = {
|
|
|
19782
19831
|
};
|
|
19783
19832
|
|
|
19784
19833
|
// ../blocks/src/system/blocks/events/event-spotlight.ts
|
|
19785
|
-
var
|
|
19834
|
+
var eventSpotlightFields = [
|
|
19835
|
+
...sectionHeaderFields("Upcoming Events"),
|
|
19836
|
+
{
|
|
19837
|
+
id: "maxEvents",
|
|
19838
|
+
type: "select",
|
|
19839
|
+
label: "Events to display",
|
|
19840
|
+
description: "Number of events to show",
|
|
19841
|
+
required: false,
|
|
19842
|
+
multiple: false,
|
|
19843
|
+
defaultValue: "3",
|
|
19844
|
+
options: [
|
|
19845
|
+
{ value: "1", label: "1 event" },
|
|
19846
|
+
{ value: "2", label: "2 events" },
|
|
19847
|
+
{ value: "3", label: "3 events" },
|
|
19848
|
+
{ value: "4", label: "4 events" },
|
|
19849
|
+
{ value: "5", label: "5 events" },
|
|
19850
|
+
{ value: "6", label: "6 events" }
|
|
19851
|
+
],
|
|
19852
|
+
ui: { intent: "display" }
|
|
19853
|
+
},
|
|
19854
|
+
{
|
|
19855
|
+
id: "ctaLabel",
|
|
19856
|
+
type: "text",
|
|
19857
|
+
label: "Section button text",
|
|
19858
|
+
description: "Optional button shown below the spotlight cards",
|
|
19859
|
+
required: false,
|
|
19860
|
+
multiline: false,
|
|
19861
|
+
maxLength: 40,
|
|
19862
|
+
ui: { intent: "content" }
|
|
19863
|
+
},
|
|
19864
|
+
{
|
|
19865
|
+
id: "ctaUrl",
|
|
19866
|
+
type: "link",
|
|
19867
|
+
label: "Section button destination",
|
|
19868
|
+
required: false,
|
|
19869
|
+
ui: { intent: "display" }
|
|
19870
|
+
},
|
|
19871
|
+
layoutField,
|
|
19872
|
+
columnsField(["2", "3"]),
|
|
19873
|
+
...cardStylingFields,
|
|
19874
|
+
...eventDisplayFields,
|
|
19875
|
+
emptyStateField,
|
|
19876
|
+
sectionStylesField({
|
|
19877
|
+
id: "_sectionStyles",
|
|
19878
|
+
label: "Section styles"
|
|
19879
|
+
})
|
|
19880
|
+
];
|
|
19881
|
+
var eventSpotlightLayout = [
|
|
19882
|
+
styledSection({
|
|
19883
|
+
children: sectionContainer([
|
|
19884
|
+
// Optional heading
|
|
19885
|
+
text(
|
|
19886
|
+
{ as: "h2" },
|
|
19887
|
+
bind("content.heading"),
|
|
19888
|
+
when("content.heading")
|
|
19889
|
+
),
|
|
19890
|
+
// Optional description
|
|
19891
|
+
richText(
|
|
19892
|
+
{ className: "rb-prose rb-max-w-none" },
|
|
19893
|
+
bind("content.description"),
|
|
19894
|
+
when("content.description")
|
|
19895
|
+
),
|
|
19896
|
+
// Event spotlight component
|
|
19897
|
+
el("event-spotlight", {
|
|
19898
|
+
events: { $bind: { from: "data.events" } },
|
|
19899
|
+
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
19900
|
+
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
19901
|
+
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
19902
|
+
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
19903
|
+
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
19904
|
+
ctaLabel: { $bind: { from: "content.ctaLabel" } },
|
|
19905
|
+
ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
|
|
19906
|
+
showVenue: { $bind: { from: "content.showVenue" } },
|
|
19907
|
+
showMap: { $bind: { from: "content.showMap" } },
|
|
19908
|
+
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
19909
|
+
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
19910
|
+
})
|
|
19911
|
+
], {
|
|
19912
|
+
gap: "lg"
|
|
19913
|
+
}),
|
|
19914
|
+
// sectionContainer (rb-container) already provides horizontal padding
|
|
19915
|
+
baseClass: "",
|
|
19916
|
+
spacing: "comfortable"
|
|
19917
|
+
})
|
|
19918
|
+
];
|
|
19919
|
+
var eventSpotlightConfig = {
|
|
19786
19920
|
id: "block.event-spotlight",
|
|
19787
19921
|
version: "1.1.0",
|
|
19788
19922
|
title: "Event Spotlight",
|
|
19789
19923
|
titleSource: "heading",
|
|
19790
19924
|
description: "Feature a few upcoming events on your homepage",
|
|
19791
19925
|
skipSectionStyles: true,
|
|
19792
|
-
additionalFields:
|
|
19793
|
-
...sectionHeaderFields("Upcoming Events"),
|
|
19794
|
-
{
|
|
19795
|
-
id: "maxEvents",
|
|
19796
|
-
type: "select",
|
|
19797
|
-
label: "Events to display",
|
|
19798
|
-
description: "Number of events to show",
|
|
19799
|
-
required: false,
|
|
19800
|
-
multiple: false,
|
|
19801
|
-
defaultValue: "3",
|
|
19802
|
-
options: [
|
|
19803
|
-
{ value: "1", label: "1 event" },
|
|
19804
|
-
{ value: "2", label: "2 events" },
|
|
19805
|
-
{ value: "3", label: "3 events" },
|
|
19806
|
-
{ value: "4", label: "4 events" },
|
|
19807
|
-
{ value: "5", label: "5 events" },
|
|
19808
|
-
{ value: "6", label: "6 events" }
|
|
19809
|
-
],
|
|
19810
|
-
ui: { intent: "display" }
|
|
19811
|
-
},
|
|
19812
|
-
{
|
|
19813
|
-
id: "ctaLabel",
|
|
19814
|
-
type: "text",
|
|
19815
|
-
label: "Section button text",
|
|
19816
|
-
description: "Optional button shown below the spotlight cards",
|
|
19817
|
-
required: false,
|
|
19818
|
-
multiline: false,
|
|
19819
|
-
maxLength: 40,
|
|
19820
|
-
ui: { intent: "content" }
|
|
19821
|
-
},
|
|
19822
|
-
{
|
|
19823
|
-
id: "ctaUrl",
|
|
19824
|
-
type: "link",
|
|
19825
|
-
label: "Section button destination",
|
|
19826
|
-
required: false,
|
|
19827
|
-
ui: { intent: "display" }
|
|
19828
|
-
},
|
|
19829
|
-
layoutField,
|
|
19830
|
-
columnsField(["2", "3"]),
|
|
19831
|
-
...cardStylingFields,
|
|
19832
|
-
...eventDisplayFields,
|
|
19833
|
-
emptyStateField,
|
|
19834
|
-
sectionStylesField({
|
|
19835
|
-
id: "_sectionStyles",
|
|
19836
|
-
label: "Section styles"
|
|
19837
|
-
})
|
|
19838
|
-
],
|
|
19926
|
+
additionalFields: eventSpotlightFields,
|
|
19839
19927
|
styleTokens: { background: "surface", typography: "body", spacing: "md" },
|
|
19840
19928
|
behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: false },
|
|
19841
19929
|
category: "content",
|
|
19842
19930
|
tags: ["events", "featured", "homepage", "spotlight", "upcoming"],
|
|
19843
19931
|
icon: "Star",
|
|
19844
|
-
layout:
|
|
19845
|
-
|
|
19846
|
-
|
|
19847
|
-
// Optional heading
|
|
19848
|
-
text(
|
|
19849
|
-
{ as: "h2" },
|
|
19850
|
-
bind("content.heading"),
|
|
19851
|
-
when("content.heading")
|
|
19852
|
-
),
|
|
19853
|
-
// Optional description
|
|
19854
|
-
richText(
|
|
19855
|
-
{ className: "rb-prose rb-max-w-none" },
|
|
19856
|
-
bind("content.description"),
|
|
19857
|
-
when("content.description")
|
|
19858
|
-
),
|
|
19859
|
-
// Event spotlight component
|
|
19860
|
-
el("event-spotlight", {
|
|
19861
|
-
events: { $bind: { from: "data.events" } },
|
|
19862
|
-
layout: { $bind: { from: "content.layout", fallback: "grid" } },
|
|
19863
|
-
columns: { $bind: { from: "content.columns", fallback: "3" } },
|
|
19864
|
-
cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
|
|
19865
|
-
buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
|
|
19866
|
-
buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
|
|
19867
|
-
ctaLabel: { $bind: { from: "content.ctaLabel" } },
|
|
19868
|
-
ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
|
|
19869
|
-
showVenue: { $bind: { from: "content.showVenue" } },
|
|
19870
|
-
showMap: { $bind: { from: "content.showMap" } },
|
|
19871
|
-
showCapacity: { $bind: { from: "content.showCapacity" } },
|
|
19872
|
-
emptyMessage: { $bind: { from: "content.emptyMessage" } }
|
|
19873
|
-
})
|
|
19874
|
-
], {
|
|
19875
|
-
gap: "lg"
|
|
19876
|
-
}),
|
|
19877
|
-
// sectionContainer (rb-container) already provides horizontal padding
|
|
19878
|
-
baseClass: "",
|
|
19879
|
-
spacing: "comfortable"
|
|
19880
|
-
})
|
|
19881
|
-
]
|
|
19882
|
-
});
|
|
19932
|
+
layout: eventSpotlightLayout
|
|
19933
|
+
};
|
|
19934
|
+
var eventSpotlightManifest = createBlockManifest(eventSpotlightConfig);
|
|
19883
19935
|
var eventSpotlightBlockDefinition = {
|
|
19884
19936
|
manifest: eventSpotlightManifest,
|
|
19885
19937
|
dataSchemas: {
|
|
@@ -24604,18 +24656,18 @@ var fileDownloadManifest = createBlockManifest({
|
|
|
24604
24656
|
title: "File Download",
|
|
24605
24657
|
titleSource: ["title", "file.filename"],
|
|
24606
24658
|
category: "media",
|
|
24607
|
-
description: "Add a simple public download link for a document, ZIP,
|
|
24659
|
+
description: "Add a simple public download link for a document, ZIP, or audio file.",
|
|
24608
24660
|
tags: ["file", "download", "document", "zip", "media"],
|
|
24609
24661
|
icon: "Download",
|
|
24610
24662
|
includeContainerStyles: true,
|
|
24611
24663
|
additionalFields: [
|
|
24612
24664
|
{
|
|
24613
24665
|
id: "file",
|
|
24614
|
-
type: "
|
|
24666
|
+
type: "file",
|
|
24615
24667
|
label: "Download file",
|
|
24616
24668
|
description: "Choose the file visitors can download.",
|
|
24617
24669
|
required: false,
|
|
24618
|
-
|
|
24670
|
+
fileKinds: [...PUBLIC_DOWNLOAD_MEDIA_TYPES],
|
|
24619
24671
|
ui: { intent: "content" }
|
|
24620
24672
|
},
|
|
24621
24673
|
{
|
|
@@ -29127,28 +29179,8 @@ var __iconNode15 = [
|
|
|
29127
29179
|
];
|
|
29128
29180
|
var FileHeadphone = createLucideIcon("file-headphone", __iconNode15);
|
|
29129
29181
|
|
|
29130
|
-
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-play.js
|
|
29131
|
-
var __iconNode16 = [
|
|
29132
|
-
[
|
|
29133
|
-
"path",
|
|
29134
|
-
{
|
|
29135
|
-
d: "M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",
|
|
29136
|
-
key: "1oefj6"
|
|
29137
|
-
}
|
|
29138
|
-
],
|
|
29139
|
-
["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
|
|
29140
|
-
[
|
|
29141
|
-
"path",
|
|
29142
|
-
{
|
|
29143
|
-
d: "M15.033 13.44a.647.647 0 0 1 0 1.12l-4.065 2.352a.645.645 0 0 1-.968-.56v-4.704a.645.645 0 0 1 .967-.56z",
|
|
29144
|
-
key: "1tzo1f"
|
|
29145
|
-
}
|
|
29146
|
-
]
|
|
29147
|
-
];
|
|
29148
|
-
var FilePlay = createLucideIcon("file-play", __iconNode16);
|
|
29149
|
-
|
|
29150
29182
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js
|
|
29151
|
-
var
|
|
29183
|
+
var __iconNode16 = [
|
|
29152
29184
|
[
|
|
29153
29185
|
"path",
|
|
29154
29186
|
{
|
|
@@ -29162,10 +29194,10 @@ var __iconNode17 = [
|
|
|
29162
29194
|
["path", { d: "M8 17h2", key: "2yhykz" }],
|
|
29163
29195
|
["path", { d: "M14 17h2", key: "10kma7" }]
|
|
29164
29196
|
];
|
|
29165
|
-
var FileSpreadsheet = createLucideIcon("file-spreadsheet",
|
|
29197
|
+
var FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode16);
|
|
29166
29198
|
|
|
29167
29199
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-text.js
|
|
29168
|
-
var
|
|
29200
|
+
var __iconNode17 = [
|
|
29169
29201
|
[
|
|
29170
29202
|
"path",
|
|
29171
29203
|
{
|
|
@@ -29178,25 +29210,25 @@ var __iconNode18 = [
|
|
|
29178
29210
|
["path", { d: "M16 13H8", key: "t4e002" }],
|
|
29179
29211
|
["path", { d: "M16 17H8", key: "z1uh3a" }]
|
|
29180
29212
|
];
|
|
29181
|
-
var FileText = createLucideIcon("file-text",
|
|
29213
|
+
var FileText = createLucideIcon("file-text", __iconNode17);
|
|
29182
29214
|
|
|
29183
29215
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/info.js
|
|
29184
|
-
var
|
|
29216
|
+
var __iconNode18 = [
|
|
29185
29217
|
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
29186
29218
|
["path", { d: "M12 16v-4", key: "1dtifu" }],
|
|
29187
29219
|
["path", { d: "M12 8h.01", key: "e9boi3" }]
|
|
29188
29220
|
];
|
|
29189
|
-
var Info = createLucideIcon("info",
|
|
29221
|
+
var Info = createLucideIcon("info", __iconNode18);
|
|
29190
29222
|
|
|
29191
29223
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/mail.js
|
|
29192
|
-
var
|
|
29224
|
+
var __iconNode19 = [
|
|
29193
29225
|
["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
|
|
29194
29226
|
["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
|
|
29195
29227
|
];
|
|
29196
|
-
var Mail = createLucideIcon("mail",
|
|
29228
|
+
var Mail = createLucideIcon("mail", __iconNode19);
|
|
29197
29229
|
|
|
29198
29230
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/map-pin.js
|
|
29199
|
-
var
|
|
29231
|
+
var __iconNode20 = [
|
|
29200
29232
|
[
|
|
29201
29233
|
"path",
|
|
29202
29234
|
{
|
|
@@ -29206,14 +29238,14 @@ var __iconNode21 = [
|
|
|
29206
29238
|
],
|
|
29207
29239
|
["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
|
|
29208
29240
|
];
|
|
29209
|
-
var MapPin = createLucideIcon("map-pin",
|
|
29241
|
+
var MapPin = createLucideIcon("map-pin", __iconNode20);
|
|
29210
29242
|
|
|
29211
29243
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/minus.js
|
|
29212
|
-
var
|
|
29213
|
-
var Minus = createLucideIcon("minus",
|
|
29244
|
+
var __iconNode21 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
|
|
29245
|
+
var Minus = createLucideIcon("minus", __iconNode21);
|
|
29214
29246
|
|
|
29215
29247
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/phone.js
|
|
29216
|
-
var
|
|
29248
|
+
var __iconNode22 = [
|
|
29217
29249
|
[
|
|
29218
29250
|
"path",
|
|
29219
29251
|
{
|
|
@@ -29222,10 +29254,10 @@ var __iconNode23 = [
|
|
|
29222
29254
|
}
|
|
29223
29255
|
]
|
|
29224
29256
|
];
|
|
29225
|
-
var Phone = createLucideIcon("phone",
|
|
29257
|
+
var Phone = createLucideIcon("phone", __iconNode22);
|
|
29226
29258
|
|
|
29227
29259
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/play.js
|
|
29228
|
-
var
|
|
29260
|
+
var __iconNode23 = [
|
|
29229
29261
|
[
|
|
29230
29262
|
"path",
|
|
29231
29263
|
{
|
|
@@ -29234,17 +29266,17 @@ var __iconNode24 = [
|
|
|
29234
29266
|
}
|
|
29235
29267
|
]
|
|
29236
29268
|
];
|
|
29237
|
-
var Play = createLucideIcon("play",
|
|
29269
|
+
var Play = createLucideIcon("play", __iconNode23);
|
|
29238
29270
|
|
|
29239
29271
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/plus.js
|
|
29240
|
-
var
|
|
29272
|
+
var __iconNode24 = [
|
|
29241
29273
|
["path", { d: "M5 12h14", key: "1ays0h" }],
|
|
29242
29274
|
["path", { d: "M12 5v14", key: "s699le" }]
|
|
29243
29275
|
];
|
|
29244
|
-
var Plus = createLucideIcon("plus",
|
|
29276
|
+
var Plus = createLucideIcon("plus", __iconNode24);
|
|
29245
29277
|
|
|
29246
29278
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/shopping-cart.js
|
|
29247
|
-
var
|
|
29279
|
+
var __iconNode25 = [
|
|
29248
29280
|
["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
|
|
29249
29281
|
["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
|
|
29250
29282
|
[
|
|
@@ -29255,22 +29287,22 @@ var __iconNode26 = [
|
|
|
29255
29287
|
}
|
|
29256
29288
|
]
|
|
29257
29289
|
];
|
|
29258
|
-
var ShoppingCart = createLucideIcon("shopping-cart",
|
|
29290
|
+
var ShoppingCart = createLucideIcon("shopping-cart", __iconNode25);
|
|
29259
29291
|
|
|
29260
29292
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/upload.js
|
|
29261
|
-
var
|
|
29293
|
+
var __iconNode26 = [
|
|
29262
29294
|
["path", { d: "M12 3v12", key: "1x0j5s" }],
|
|
29263
29295
|
["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
|
|
29264
29296
|
["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
|
|
29265
29297
|
];
|
|
29266
|
-
var Upload = createLucideIcon("upload",
|
|
29298
|
+
var Upload = createLucideIcon("upload", __iconNode26);
|
|
29267
29299
|
|
|
29268
29300
|
// ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/x.js
|
|
29269
|
-
var
|
|
29301
|
+
var __iconNode27 = [
|
|
29270
29302
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
29271
29303
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
29272
29304
|
];
|
|
29273
|
-
var X = createLucideIcon("x",
|
|
29305
|
+
var X = createLucideIcon("x", __iconNode27);
|
|
29274
29306
|
|
|
29275
29307
|
// ../blocks/src/system/icons/cta.ts
|
|
29276
29308
|
var CTA_ICON_NAMES = [
|
|
@@ -29362,7 +29394,12 @@ var IconNode = ({
|
|
|
29362
29394
|
|
|
29363
29395
|
// ../blocks/src/system/runtime/nodes/file-download.tsx
|
|
29364
29396
|
import { jsx as jsx17, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
29365
|
-
var FILE_DOWNLOAD_BUTTON_VARIANTS = [
|
|
29397
|
+
var FILE_DOWNLOAD_BUTTON_VARIANTS = [
|
|
29398
|
+
"primary",
|
|
29399
|
+
"secondary",
|
|
29400
|
+
"outline",
|
|
29401
|
+
"link"
|
|
29402
|
+
];
|
|
29366
29403
|
function isDownloadableMediaType(type) {
|
|
29367
29404
|
return typeof type === "string" && PUBLIC_DOWNLOAD_MEDIA_TYPES.includes(type);
|
|
29368
29405
|
}
|
|
@@ -29377,8 +29414,6 @@ function iconForMediaType(type) {
|
|
|
29377
29414
|
switch (type) {
|
|
29378
29415
|
case "audio":
|
|
29379
29416
|
return /* @__PURE__ */ jsx17(FileHeadphone, { "aria-hidden": "true" });
|
|
29380
|
-
case "video":
|
|
29381
|
-
return /* @__PURE__ */ jsx17(FilePlay, { "aria-hidden": "true" });
|
|
29382
29417
|
case "document":
|
|
29383
29418
|
return /* @__PURE__ */ jsx17(FileText, { "aria-hidden": "true" });
|
|
29384
29419
|
case "spreadsheet":
|
|
@@ -29417,8 +29452,22 @@ function FileDownloadNode({
|
|
|
29417
29452
|
}
|
|
29418
29453
|
),
|
|
29419
29454
|
/* @__PURE__ */ jsxs6("div", { className: "rb-min-w-0 rb-space-y-1", children: [
|
|
29420
|
-
/* @__PURE__ */ jsx17(
|
|
29421
|
-
|
|
29455
|
+
/* @__PURE__ */ jsx17(
|
|
29456
|
+
"h2",
|
|
29457
|
+
{
|
|
29458
|
+
className: "rb-m-0 rb-text-lg rb-font-semibold",
|
|
29459
|
+
style: textColorStyle("heading"),
|
|
29460
|
+
children: heading
|
|
29461
|
+
}
|
|
29462
|
+
),
|
|
29463
|
+
body ? /* @__PURE__ */ jsx17(
|
|
29464
|
+
"p",
|
|
29465
|
+
{
|
|
29466
|
+
className: "rb-m-0 rb-text-sm",
|
|
29467
|
+
style: textColorStyle("mutedText"),
|
|
29468
|
+
children: body
|
|
29469
|
+
}
|
|
29470
|
+
) : null,
|
|
29422
29471
|
/* @__PURE__ */ jsx17(
|
|
29423
29472
|
"p",
|
|
29424
29473
|
{
|
|
@@ -56991,7 +57040,6 @@ lucide-react/dist/esm/icons/download.js:
|
|
|
56991
57040
|
lucide-react/dist/esm/icons/external-link.js:
|
|
56992
57041
|
lucide-react/dist/esm/icons/file-archive.js:
|
|
56993
57042
|
lucide-react/dist/esm/icons/file-headphone.js:
|
|
56994
|
-
lucide-react/dist/esm/icons/file-play.js:
|
|
56995
57043
|
lucide-react/dist/esm/icons/file-spreadsheet.js:
|
|
56996
57044
|
lucide-react/dist/esm/icons/file-text.js:
|
|
56997
57045
|
lucide-react/dist/esm/icons/info.js:
|