@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.
Files changed (82) hide show
  1. package/dist/_dts/api/src/contentTypes.d.ts +2 -1
  2. package/dist/_dts/block-form/src/client/index.d.ts +1 -1
  3. package/dist/_dts/block-form/src/fields/types.d.ts +14 -2
  4. package/dist/_dts/block-form/src/registry/schemas.d.ts +2 -0
  5. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldDefaults.d.ts +2 -2
  6. package/dist/_dts/block-form/src/widgets/MediaField/mediaFieldSchema.d.ts +2 -2
  7. package/dist/_dts/blocks/src/lib/media.d.ts +1 -1
  8. package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +1829 -149
  9. package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +1829 -149
  10. package/dist/_dts/blocks/src/system/blocks/cart.d.ts +1829 -149
  11. package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +1829 -149
  12. package/dist/_dts/blocks/src/system/blocks/collection.d.ts +1829 -149
  13. package/dist/_dts/blocks/src/system/blocks/cta-full.d.ts +1 -30727
  14. package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +11 -30827
  15. package/dist/_dts/blocks/src/system/blocks/faq.d.ts +1829 -149
  16. package/dist/_dts/blocks/src/system/blocks/file-download.d.ts +3 -3
  17. package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +1829 -149
  18. package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +106 -1
  19. package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +1829 -149
  20. package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +1829 -149
  21. package/dist/_dts/blocks/src/system/blocks/shop.d.ts +1829 -149
  22. package/dist/_dts/blocks/src/system/defineBlock.d.ts +3 -3
  23. package/dist/_dts/blocks/src/system/fragments/library/card.d.ts +2 -30793
  24. package/dist/_dts/blocks/src/system/fragments/library/ctaRow.d.ts +2 -30727
  25. package/dist/_dts/blocks/src/system/fragments/library/feedbackCallout.d.ts +2 -30779
  26. package/dist/_dts/blocks/src/system/fragments/library/heroCtaRow.d.ts +33 -30743
  27. package/dist/_dts/blocks/src/system/fragments/library/sectionState.d.ts +2 -30770
  28. package/dist/_dts/blocks/src/system/fragments/types.d.ts +8 -7
  29. package/dist/_dts/blocks/src/system/manifest/derivedContent.d.ts +7 -5
  30. package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +1 -1
  31. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +192 -3
  32. package/dist/_dts/blocks/src/system/runtime/nodes/file-download.d.ts +1 -1
  33. package/dist/_dts/content-model/src/content-types/schema.d.ts +7 -0
  34. package/dist/_dts/content-model/src/contentManifest.d.ts +4 -1
  35. package/dist/_dts/content-model/src/templates/bindingTypeCompatibility.d.ts +1 -1
  36. package/dist/_dts/core/src/index.d.ts +1 -1
  37. package/dist/_dts/core/src/planner.d.ts +4 -0
  38. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +53 -20
  39. package/dist/_dts/editor-blocks/src/index.d.ts +1 -1
  40. package/dist/_dts/editor-blocks/src/media/MediaField.d.ts +6 -5
  41. package/dist/_dts/media-core/src/videoSlotPolicy.d.ts +0 -1
  42. package/dist/_dts/media-editor/src/context.d.ts +4 -1
  43. package/dist/_dts/media-react/src/hooks/useApiMediaUploader.d.ts +8 -1
  44. package/dist/_dts/media-react/src/index.d.ts +1 -5
  45. package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +1 -0
  46. package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +2 -1
  47. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  48. package/dist/_dts/sdk/src/config/field-definitions.d.ts +6 -2
  49. package/dist/_dts/sdk/src/config/typed-entries.d.ts +4 -2
  50. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -1
  51. package/dist/_dts/sdk/src/manifest/prompt/examples/cta.d.ts +5 -5
  52. package/dist/_dts/sdk/src/manifest/prompt/examples/features-grid.d.ts +2 -2
  53. package/dist/_dts/sdk/src/manifest/prompt/examples/hero.d.ts +2 -2
  54. package/dist/_dts/sdk/src/manifest/prompt/examples/pricing.d.ts +10 -10
  55. package/dist/_dts/sdk/src/manifest/prompt/examples/testimonials.d.ts +4 -4
  56. package/dist/_dts/sdk/src/manifest/validation/output-schema.d.ts +11 -1
  57. package/dist/_dts/sdk/src/preview-next/client/index.d.ts +19 -1
  58. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
  59. package/dist/_dts/sdk/src/version.d.ts +1 -1
  60. package/dist/cli/index.mjs +395 -190
  61. package/dist/cli/init-docs/content/workflow-preview-mode.md +167 -0
  62. package/dist/client/client.mjs +243 -203
  63. package/dist/client/hooks.mjs +172 -121
  64. package/dist/client/rendering/client.mjs +148 -112
  65. package/dist/client/rendering/islands.mjs +80 -31
  66. package/dist/client/rendering.mjs +242 -202
  67. package/dist/preview-next/client/index.mjs +60 -10
  68. package/dist/preview-next/client/runtime.mjs +408 -1141
  69. package/dist/server/components.mjs +219 -171
  70. package/dist/server/config-template-validation.mjs +31 -1
  71. package/dist/server/config-validation.mjs +172 -121
  72. package/dist/server/config.mjs +172 -121
  73. package/dist/server/data.mjs +172 -121
  74. package/dist/server/index.mjs +1 -1
  75. package/dist/server/next.mjs +220 -172
  76. package/dist/server/page-converter.mjs +379 -185
  77. package/dist/server/prebuild.mjs +1 -1
  78. package/dist/server/rendering/server.mjs +219 -171
  79. package/dist/server/rendering.mjs +219 -171
  80. package/dist/server/routing.mjs +175 -124
  81. package/dist/server/server.mjs +173 -122
  82. 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
- mediaKinds: z29.array(
8709
- z29.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
8710
- ).default(["image"]),
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((field) => cloneFieldDefinition(field));
9157
+ return fragment.fields.map(
9158
+ (field) => cloneFieldDefinition(field)
9159
+ );
9127
9160
  }
9128
- return fragment.fields.map((field) => prefixFieldId(field, normalizedScope));
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((node) => cloneAndScopeNode(node, normalizedScope));
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((child) => cloneAndScopeNode(child, scope));
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) => ({ ...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(value)) {
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(FRAGMENT_ID_PATTERN, "Fragment id must be alphanumeric with optional . _ - separators"),
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((value) => Array.isArray(value) ? value : [value]),
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",