@riverbankcms/sdk 0.70.3 → 0.71.0
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/sdk/SdkPreviewMode.d.ts +1 -0
- 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/preview-next/client/index.d.ts +19 -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/index.mjs +60 -10
- package/dist/preview-next/client/runtime.mjs +408 -1141
- 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 +6 -1
|
@@ -8503,6 +8503,9 @@ var init_repeaterGrid = __esm({
|
|
|
8503
8503
|
|
|
8504
8504
|
// ../blocks/src/system/manifest/schema.ts
|
|
8505
8505
|
import { z as z29 } from "zod";
|
|
8506
|
+
function isDisplayMediaKind(kind) {
|
|
8507
|
+
return DISPLAY_MEDIA_KINDS.includes(kind);
|
|
8508
|
+
}
|
|
8506
8509
|
function assertNeverSelectSource(value) {
|
|
8507
8510
|
throw new Error(`Unhandled select source: ${JSON.stringify(value)}`);
|
|
8508
8511
|
}
|
|
@@ -8514,6 +8517,7 @@ function getFieldSchemaInternal() {
|
|
|
8514
8517
|
textFieldSchema,
|
|
8515
8518
|
richTextFieldSchema,
|
|
8516
8519
|
mediaFieldSchema,
|
|
8520
|
+
fileFieldSchema,
|
|
8517
8521
|
booleanFieldSchema,
|
|
8518
8522
|
numberFieldSchema,
|
|
8519
8523
|
dateFieldSchema,
|
|
@@ -8537,7 +8541,7 @@ function getFieldSchemaInternal() {
|
|
|
8537
8541
|
function parseFieldDefinitions(input) {
|
|
8538
8542
|
return fieldSchema.array().parse(input);
|
|
8539
8543
|
}
|
|
8540
|
-
var visibilityLevels, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, mediaFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, blockCategoryEnum, manifestSchema;
|
|
8544
|
+
var visibilityLevels, MEDIA_KINDS, DISPLAY_MEDIA_KINDS, PUBLIC_FILE_FIELD_KINDS, siteOptionSources, mediaDeliverySchema, selectOptionSchema, selectSourceSchema, uiSchema, baseFieldSchema, textFieldSchema, richTextFieldSchema, mediaFieldSchema, fileFieldSchema, booleanFieldSchema, dateFieldSchema, timeFieldSchema, dateTimeFieldSchema, slugFieldSchema, urlFieldSchema, linkFieldSchema, selectFieldSchema, referenceFieldSchema, itemTypeSchema, repeaterFieldSchema, groupFieldSchema, modalFieldSchema, numberFieldSchema, tabDefinitionSchema, tabGroupFieldSchema, presetOptionSchema, presetOrCustomFieldSchema, contentTypeSelectFieldSchema, entryPickerFieldSchema, _fieldSchemaInternal, fieldSchema, slotSchema, typographyTokens, colorTokens, spacingTokens, radiusTokens, styleTokenSchema, behaviourSchema, blockCategoryEnum, manifestSchema;
|
|
8541
8545
|
var init_schema3 = __esm({
|
|
8542
8546
|
"../blocks/src/system/manifest/schema.ts"() {
|
|
8543
8547
|
"use strict";
|
|
@@ -8545,6 +8549,25 @@ var init_schema3 = __esm({
|
|
|
8545
8549
|
init_node();
|
|
8546
8550
|
init_repeaterGrid();
|
|
8547
8551
|
visibilityLevels = ["admin", "designer", "author"];
|
|
8552
|
+
MEDIA_KINDS = [
|
|
8553
|
+
"image",
|
|
8554
|
+
"video",
|
|
8555
|
+
"audio",
|
|
8556
|
+
"document",
|
|
8557
|
+
"spreadsheet",
|
|
8558
|
+
"archive"
|
|
8559
|
+
];
|
|
8560
|
+
DISPLAY_MEDIA_KINDS = [
|
|
8561
|
+
"image",
|
|
8562
|
+
"video",
|
|
8563
|
+
"audio"
|
|
8564
|
+
];
|
|
8565
|
+
PUBLIC_FILE_FIELD_KINDS = [
|
|
8566
|
+
"document",
|
|
8567
|
+
"spreadsheet",
|
|
8568
|
+
"archive",
|
|
8569
|
+
"audio"
|
|
8570
|
+
];
|
|
8548
8571
|
siteOptionSources = [
|
|
8549
8572
|
"eventCategories",
|
|
8550
8573
|
"venues",
|
|
@@ -8705,11 +8728,19 @@ var init_schema3 = __esm({
|
|
|
8705
8728
|
});
|
|
8706
8729
|
mediaFieldSchema = baseFieldSchema.extend({
|
|
8707
8730
|
type: z29.literal("media"),
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
|
|
8731
|
+
// Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
|
|
8732
|
+
// New authoring surfaces should use `file.fileKinds` for document/archive
|
|
8733
|
+
// style assets, but old saved schemas must not fail to open.
|
|
8734
|
+
mediaKinds: z29.array(z29.enum(MEDIA_KINDS)).default(["image"]).transform((kinds) => {
|
|
8735
|
+
const displayKinds = kinds.filter(isDisplayMediaKind);
|
|
8736
|
+
return displayKinds.length > 0 ? displayKinds : ["image"];
|
|
8737
|
+
}),
|
|
8711
8738
|
aspectRatio: z29.string().optional()
|
|
8712
8739
|
});
|
|
8740
|
+
fileFieldSchema = baseFieldSchema.extend({
|
|
8741
|
+
type: z29.literal("file"),
|
|
8742
|
+
fileKinds: z29.array(z29.enum(PUBLIC_FILE_FIELD_KINDS)).default([...PUBLIC_FILE_FIELD_KINDS])
|
|
8743
|
+
});
|
|
8713
8744
|
booleanFieldSchema = baseFieldSchema.extend({
|
|
8714
8745
|
type: z29.literal("boolean")
|
|
8715
8746
|
});
|
|
@@ -9123,13 +9154,19 @@ function defineFragment(config) {
|
|
|
9123
9154
|
function scopeFragmentFields(fragment, scope) {
|
|
9124
9155
|
const normalizedScope = scope.trim();
|
|
9125
9156
|
if (!normalizedScope) {
|
|
9126
|
-
return fragment.fields.map(
|
|
9157
|
+
return fragment.fields.map(
|
|
9158
|
+
(field) => cloneFieldDefinition(field)
|
|
9159
|
+
);
|
|
9127
9160
|
}
|
|
9128
|
-
return fragment.fields.map(
|
|
9161
|
+
return fragment.fields.map(
|
|
9162
|
+
(field) => prefixFieldId(field, normalizedScope)
|
|
9163
|
+
);
|
|
9129
9164
|
}
|
|
9130
9165
|
function scopeFragmentLayout(fragment, scope) {
|
|
9131
9166
|
const normalizedScope = scope.trim();
|
|
9132
|
-
return fragment.layout.map(
|
|
9167
|
+
return fragment.layout.map(
|
|
9168
|
+
(node) => cloneAndScopeNode(node, normalizedScope)
|
|
9169
|
+
);
|
|
9133
9170
|
}
|
|
9134
9171
|
function validateFieldDefinitions(fields, fragmentId) {
|
|
9135
9172
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -9211,7 +9248,9 @@ function cloneAndScopeNode(node, scope) {
|
|
|
9211
9248
|
...node
|
|
9212
9249
|
};
|
|
9213
9250
|
if (node.children) {
|
|
9214
|
-
cloned.children = node.children.map(
|
|
9251
|
+
cloned.children = node.children.map(
|
|
9252
|
+
(child) => cloneAndScopeNode(child, scope)
|
|
9253
|
+
);
|
|
9215
9254
|
}
|
|
9216
9255
|
if (node.props) {
|
|
9217
9256
|
cloned.props = scopePropBindings(node.props, scope);
|
|
@@ -9237,7 +9276,9 @@ function scopeBinding(binding, scope) {
|
|
|
9237
9276
|
const cloned = {
|
|
9238
9277
|
...binding,
|
|
9239
9278
|
transforms: binding.transforms?.map(
|
|
9240
|
-
(step) => ({
|
|
9279
|
+
(step) => ({
|
|
9280
|
+
...step
|
|
9281
|
+
})
|
|
9241
9282
|
) ?? []
|
|
9242
9283
|
};
|
|
9243
9284
|
cloned.from = scopeContentPath(binding.from, scope);
|
|
@@ -9281,7 +9322,9 @@ function scopePropValue(value, scope) {
|
|
|
9281
9322
|
};
|
|
9282
9323
|
}
|
|
9283
9324
|
const result = {};
|
|
9284
|
-
for (const [key, entry] of Object.entries(
|
|
9325
|
+
for (const [key, entry] of Object.entries(
|
|
9326
|
+
value
|
|
9327
|
+
)) {
|
|
9285
9328
|
result[key] = scopePropValue(entry, scope);
|
|
9286
9329
|
}
|
|
9287
9330
|
return result;
|
|
@@ -9328,13 +9371,18 @@ var init_types14 = __esm({
|
|
|
9328
9371
|
loader: dataLoaderSchema.optional()
|
|
9329
9372
|
});
|
|
9330
9373
|
fragmentConfigSchema = z30.object({
|
|
9331
|
-
id: z30.string().min(1, "Fragment id is required").regex(
|
|
9374
|
+
id: z30.string().min(1, "Fragment id is required").regex(
|
|
9375
|
+
FRAGMENT_ID_PATTERN,
|
|
9376
|
+
"Fragment id must be alphanumeric with optional . _ - separators"
|
|
9377
|
+
),
|
|
9332
9378
|
title: z30.string().optional(),
|
|
9333
9379
|
description: z30.string().optional(),
|
|
9334
9380
|
category: z30.enum(["content", "media", "interactive", "layout"]).optional(),
|
|
9335
9381
|
icon: z30.string().optional(),
|
|
9336
9382
|
fields: fieldSchema.array().default([]),
|
|
9337
|
-
layout: z30.union([NodeSchema, NodeSchema.array()]).transform(
|
|
9383
|
+
layout: z30.union([NodeSchema, NodeSchema.array()]).transform(
|
|
9384
|
+
(value) => Array.isArray(value) ? value : [value]
|
|
9385
|
+
),
|
|
9338
9386
|
data: fragmentDataSchema.optional()
|
|
9339
9387
|
});
|
|
9340
9388
|
FragmentConfigError = class extends Error {
|
|
@@ -9672,35 +9720,36 @@ var init_ctaRow2 = __esm({
|
|
|
9672
9720
|
});
|
|
9673
9721
|
|
|
9674
9722
|
// ../blocks/src/system/fragments/library/heroCtaRow.ts
|
|
9675
|
-
var heroCtaRowFragment;
|
|
9723
|
+
var heroCtaFields, heroCtaRowFragment;
|
|
9676
9724
|
var init_heroCtaRow = __esm({
|
|
9677
9725
|
"../blocks/src/system/fragments/library/heroCtaRow.ts"() {
|
|
9678
9726
|
"use strict";
|
|
9679
9727
|
init_types14();
|
|
9680
9728
|
init_fragments();
|
|
9681
9729
|
init_ctas();
|
|
9730
|
+
heroCtaFields = [
|
|
9731
|
+
createCtasRepeater({
|
|
9732
|
+
label: "Calls to action",
|
|
9733
|
+
itemLabel: "CTA",
|
|
9734
|
+
maxItems: 3,
|
|
9735
|
+
button: {
|
|
9736
|
+
variants: [
|
|
9737
|
+
{ value: "default", label: "Default" },
|
|
9738
|
+
{ value: "primary", label: "Primary" },
|
|
9739
|
+
{ value: "secondary", label: "Secondary" },
|
|
9740
|
+
{ value: "outline", label: "Outline" }
|
|
9741
|
+
],
|
|
9742
|
+
defaultVariant: "default",
|
|
9743
|
+
includeSize: true,
|
|
9744
|
+
defaultSize: "lg"
|
|
9745
|
+
}
|
|
9746
|
+
})
|
|
9747
|
+
];
|
|
9682
9748
|
heroCtaRowFragment = defineFragment({
|
|
9683
9749
|
id: "heroCtaRow",
|
|
9684
9750
|
title: "Hero CTAs",
|
|
9685
9751
|
description: "Repeatable hero calls to action rendered inline.",
|
|
9686
|
-
fields:
|
|
9687
|
-
createCtasRepeater({
|
|
9688
|
-
label: "Calls to action",
|
|
9689
|
-
itemLabel: "CTA",
|
|
9690
|
-
maxItems: 3,
|
|
9691
|
-
button: {
|
|
9692
|
-
variants: [
|
|
9693
|
-
{ value: "default", label: "Default" },
|
|
9694
|
-
{ value: "primary", label: "Primary" },
|
|
9695
|
-
{ value: "secondary", label: "Secondary" },
|
|
9696
|
-
{ value: "outline", label: "Outline" }
|
|
9697
|
-
],
|
|
9698
|
-
defaultVariant: "default",
|
|
9699
|
-
includeSize: true,
|
|
9700
|
-
defaultSize: "lg"
|
|
9701
|
-
}
|
|
9702
|
-
})
|
|
9703
|
-
],
|
|
9752
|
+
fields: heroCtaFields,
|
|
9704
9753
|
layout: [
|
|
9705
9754
|
ctaRow({
|
|
9706
9755
|
collectionPath: "content.ctas",
|