@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.
Files changed (79) 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/widgets/PreviewMediaField.d.ts +2 -1
  46. package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +1 -0
  47. package/dist/_dts/sdk/src/config/field-definitions.d.ts +6 -2
  48. package/dist/_dts/sdk/src/config/typed-entries.d.ts +4 -2
  49. package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -1
  50. package/dist/_dts/sdk/src/manifest/prompt/examples/cta.d.ts +5 -5
  51. package/dist/_dts/sdk/src/manifest/prompt/examples/features-grid.d.ts +2 -2
  52. package/dist/_dts/sdk/src/manifest/prompt/examples/hero.d.ts +2 -2
  53. package/dist/_dts/sdk/src/manifest/prompt/examples/pricing.d.ts +10 -10
  54. package/dist/_dts/sdk/src/manifest/prompt/examples/testimonials.d.ts +4 -4
  55. package/dist/_dts/sdk/src/manifest/validation/output-schema.d.ts +11 -1
  56. package/dist/_dts/sdk/src/public-api/contracts.d.ts +2 -1
  57. package/dist/_dts/sdk/src/version.d.ts +1 -1
  58. package/dist/cli/index.mjs +395 -190
  59. package/dist/cli/init-docs/content/workflow-preview-mode.md +167 -0
  60. package/dist/client/client.mjs +243 -203
  61. package/dist/client/hooks.mjs +172 -121
  62. package/dist/client/rendering/client.mjs +148 -112
  63. package/dist/client/rendering/islands.mjs +80 -31
  64. package/dist/client/rendering.mjs +242 -202
  65. package/dist/preview-next/client/runtime.mjs +386 -1135
  66. package/dist/server/components.mjs +219 -171
  67. package/dist/server/config-template-validation.mjs +31 -1
  68. package/dist/server/config-validation.mjs +172 -121
  69. package/dist/server/config.mjs +172 -121
  70. package/dist/server/data.mjs +172 -121
  71. package/dist/server/index.mjs +1 -1
  72. package/dist/server/next.mjs +220 -172
  73. package/dist/server/page-converter.mjs +379 -185
  74. package/dist/server/prebuild.mjs +1 -1
  75. package/dist/server/rendering/server.mjs +219 -171
  76. package/dist/server/rendering.mjs +219 -171
  77. package/dist/server/routing.mjs +175 -124
  78. package/dist/server/server.mjs +173 -122
  79. package/package.json +2 -1
@@ -1491,6 +1491,9 @@ var init_repeaterGrid = __esm({
1491
1491
 
1492
1492
  // ../blocks/src/system/manifest/schema.ts
1493
1493
  import { z as z5 } from "zod";
1494
+ function isDisplayMediaKind(kind) {
1495
+ return DISPLAY_MEDIA_KINDS.includes(kind);
1496
+ }
1494
1497
  function assertNeverSelectSource(value) {
1495
1498
  throw new Error(`Unhandled select source: ${JSON.stringify(value)}`);
1496
1499
  }
@@ -1502,6 +1505,7 @@ function getFieldSchemaInternal() {
1502
1505
  textFieldSchema,
1503
1506
  richTextFieldSchema,
1504
1507
  mediaFieldSchema,
1508
+ fileFieldSchema,
1505
1509
  booleanFieldSchema,
1506
1510
  numberFieldSchema,
1507
1511
  dateFieldSchema,
@@ -1568,7 +1572,7 @@ function createSdkSelectField(input) {
1568
1572
  })
1569
1573
  );
1570
1574
  }
1571
- 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;
1575
+ 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;
1572
1576
  var init_schema2 = __esm({
1573
1577
  "../blocks/src/system/manifest/schema.ts"() {
1574
1578
  "use strict";
@@ -1576,6 +1580,25 @@ var init_schema2 = __esm({
1576
1580
  init_node();
1577
1581
  init_repeaterGrid();
1578
1582
  visibilityLevels = ["admin", "designer", "author"];
1583
+ MEDIA_KINDS = [
1584
+ "image",
1585
+ "video",
1586
+ "audio",
1587
+ "document",
1588
+ "spreadsheet",
1589
+ "archive"
1590
+ ];
1591
+ DISPLAY_MEDIA_KINDS = [
1592
+ "image",
1593
+ "video",
1594
+ "audio"
1595
+ ];
1596
+ PUBLIC_FILE_FIELD_KINDS = [
1597
+ "document",
1598
+ "spreadsheet",
1599
+ "archive",
1600
+ "audio"
1601
+ ];
1579
1602
  siteOptionSources = [
1580
1603
  "eventCategories",
1581
1604
  "venues",
@@ -1736,11 +1759,19 @@ var init_schema2 = __esm({
1736
1759
  });
1737
1760
  mediaFieldSchema = baseFieldSchema.extend({
1738
1761
  type: z5.literal("media"),
1739
- mediaKinds: z5.array(
1740
- z5.enum(["image", "video", "audio", "document", "spreadsheet", "archive"])
1741
- ).default(["image"]),
1762
+ // Keep full MEDIA_KINDS parse compatibility for pre-file-field manifests.
1763
+ // New authoring surfaces should use `file.fileKinds` for document/archive
1764
+ // style assets, but old saved schemas must not fail to open.
1765
+ mediaKinds: z5.array(z5.enum(MEDIA_KINDS)).default(["image"]).transform((kinds) => {
1766
+ const displayKinds = kinds.filter(isDisplayMediaKind);
1767
+ return displayKinds.length > 0 ? displayKinds : ["image"];
1768
+ }),
1742
1769
  aspectRatio: z5.string().optional()
1743
1770
  });
1771
+ fileFieldSchema = baseFieldSchema.extend({
1772
+ type: z5.literal("file"),
1773
+ fileKinds: z5.array(z5.enum(PUBLIC_FILE_FIELD_KINDS)).default([...PUBLIC_FILE_FIELD_KINDS])
1774
+ });
1744
1775
  booleanFieldSchema = baseFieldSchema.extend({
1745
1776
  type: z5.literal("boolean")
1746
1777
  });
@@ -12588,13 +12619,19 @@ function defineFragment(config) {
12588
12619
  function scopeFragmentFields(fragment, scope) {
12589
12620
  const normalizedScope = scope.trim();
12590
12621
  if (!normalizedScope) {
12591
- return fragment.fields.map((field) => cloneFieldDefinition2(field));
12622
+ return fragment.fields.map(
12623
+ (field) => cloneFieldDefinition2(field)
12624
+ );
12592
12625
  }
12593
- return fragment.fields.map((field) => prefixFieldId(field, normalizedScope));
12626
+ return fragment.fields.map(
12627
+ (field) => prefixFieldId(field, normalizedScope)
12628
+ );
12594
12629
  }
12595
12630
  function scopeFragmentLayout(fragment, scope) {
12596
12631
  const normalizedScope = scope.trim();
12597
- return fragment.layout.map((node) => cloneAndScopeNode(node, normalizedScope));
12632
+ return fragment.layout.map(
12633
+ (node) => cloneAndScopeNode(node, normalizedScope)
12634
+ );
12598
12635
  }
12599
12636
  function validateFieldDefinitions(fields3, fragmentId) {
12600
12637
  const seen = /* @__PURE__ */ new Set();
@@ -12676,7 +12713,9 @@ function cloneAndScopeNode(node, scope) {
12676
12713
  ...node
12677
12714
  };
12678
12715
  if (node.children) {
12679
- cloned.children = node.children.map((child) => cloneAndScopeNode(child, scope));
12716
+ cloned.children = node.children.map(
12717
+ (child) => cloneAndScopeNode(child, scope)
12718
+ );
12680
12719
  }
12681
12720
  if (node.props) {
12682
12721
  cloned.props = scopePropBindings(node.props, scope);
@@ -12702,7 +12741,9 @@ function scopeBinding(binding, scope) {
12702
12741
  const cloned = {
12703
12742
  ...binding,
12704
12743
  transforms: binding.transforms?.map(
12705
- (step) => ({ ...step })
12744
+ (step) => ({
12745
+ ...step
12746
+ })
12706
12747
  ) ?? []
12707
12748
  };
12708
12749
  cloned.from = scopeContentPath(binding.from, scope);
@@ -12746,7 +12787,9 @@ function scopePropValue(value, scope) {
12746
12787
  };
12747
12788
  }
12748
12789
  const result = {};
12749
- for (const [key, entry] of Object.entries(value)) {
12790
+ for (const [key, entry] of Object.entries(
12791
+ value
12792
+ )) {
12750
12793
  result[key] = scopePropValue(entry, scope);
12751
12794
  }
12752
12795
  return result;
@@ -12793,13 +12836,18 @@ var init_types13 = __esm({
12793
12836
  loader: dataLoaderSchema.optional()
12794
12837
  });
12795
12838
  fragmentConfigSchema = z30.object({
12796
- id: z30.string().min(1, "Fragment id is required").regex(FRAGMENT_ID_PATTERN, "Fragment id must be alphanumeric with optional . _ - separators"),
12839
+ id: z30.string().min(1, "Fragment id is required").regex(
12840
+ FRAGMENT_ID_PATTERN,
12841
+ "Fragment id must be alphanumeric with optional . _ - separators"
12842
+ ),
12797
12843
  title: z30.string().optional(),
12798
12844
  description: z30.string().optional(),
12799
12845
  category: z30.enum(["content", "media", "interactive", "layout"]).optional(),
12800
12846
  icon: z30.string().optional(),
12801
12847
  fields: fieldSchema.array().default([]),
12802
- layout: z30.union([NodeSchema, NodeSchema.array()]).transform((value) => Array.isArray(value) ? value : [value]),
12848
+ layout: z30.union([NodeSchema, NodeSchema.array()]).transform(
12849
+ (value) => Array.isArray(value) ? value : [value]
12850
+ ),
12803
12851
  data: fragmentDataSchema.optional()
12804
12852
  });
12805
12853
  FragmentConfigError = class extends Error {
@@ -13275,35 +13323,36 @@ var init_ctaRow2 = __esm({
13275
13323
  });
13276
13324
 
13277
13325
  // ../blocks/src/system/fragments/library/heroCtaRow.ts
13278
- var heroCtaRowFragment;
13326
+ var heroCtaFields, heroCtaRowFragment;
13279
13327
  var init_heroCtaRow = __esm({
13280
13328
  "../blocks/src/system/fragments/library/heroCtaRow.ts"() {
13281
13329
  "use strict";
13282
13330
  init_types13();
13283
13331
  init_fragments();
13284
13332
  init_ctas();
13333
+ heroCtaFields = [
13334
+ createCtasRepeater({
13335
+ label: "Calls to action",
13336
+ itemLabel: "CTA",
13337
+ maxItems: 3,
13338
+ button: {
13339
+ variants: [
13340
+ { value: "default", label: "Default" },
13341
+ { value: "primary", label: "Primary" },
13342
+ { value: "secondary", label: "Secondary" },
13343
+ { value: "outline", label: "Outline" }
13344
+ ],
13345
+ defaultVariant: "default",
13346
+ includeSize: true,
13347
+ defaultSize: "lg"
13348
+ }
13349
+ })
13350
+ ];
13285
13351
  heroCtaRowFragment = defineFragment({
13286
13352
  id: "heroCtaRow",
13287
13353
  title: "Hero CTAs",
13288
13354
  description: "Repeatable hero calls to action rendered inline.",
13289
- fields: [
13290
- createCtasRepeater({
13291
- label: "Calls to action",
13292
- itemLabel: "CTA",
13293
- maxItems: 3,
13294
- button: {
13295
- variants: [
13296
- { value: "default", label: "Default" },
13297
- { value: "primary", label: "Primary" },
13298
- { value: "secondary", label: "Secondary" },
13299
- { value: "outline", label: "Outline" }
13300
- ],
13301
- defaultVariant: "default",
13302
- includeSize: true,
13303
- defaultSize: "lg"
13304
- }
13305
- })
13306
- ],
13355
+ fields: heroCtaFields,
13307
13356
  layout: [
13308
13357
  ctaRow({
13309
13358
  collectionPath: "content.ctas",
@@ -16169,8 +16218,7 @@ var init_media2 = __esm({
16169
16218
  "document",
16170
16219
  "spreadsheet",
16171
16220
  "archive",
16172
- "audio",
16173
- "video"
16221
+ "audio"
16174
16222
  ];
16175
16223
  hotspotSchema2 = z41.object({
16176
16224
  x: z41.number().min(0).max(1),
@@ -24777,40 +24825,13 @@ var init_file_headphone = __esm({
24777
24825
  }
24778
24826
  });
24779
24827
 
24780
- // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-play.js
24781
- var __iconNode17, FilePlay;
24782
- var init_file_play = __esm({
24783
- "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-play.js"() {
24784
- "use strict";
24785
- init_createLucideIcon();
24786
- __iconNode17 = [
24787
- [
24788
- "path",
24789
- {
24790
- 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",
24791
- key: "1oefj6"
24792
- }
24793
- ],
24794
- ["path", { d: "M14 2v5a1 1 0 0 0 1 1h5", key: "wfsgrz" }],
24795
- [
24796
- "path",
24797
- {
24798
- 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",
24799
- key: "1tzo1f"
24800
- }
24801
- ]
24802
- ];
24803
- FilePlay = createLucideIcon("file-play", __iconNode17);
24804
- }
24805
- });
24806
-
24807
24828
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js
24808
- var __iconNode18, FileSpreadsheet;
24829
+ var __iconNode17, FileSpreadsheet;
24809
24830
  var init_file_spreadsheet = __esm({
24810
24831
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-spreadsheet.js"() {
24811
24832
  "use strict";
24812
24833
  init_createLucideIcon();
24813
- __iconNode18 = [
24834
+ __iconNode17 = [
24814
24835
  [
24815
24836
  "path",
24816
24837
  {
@@ -24824,17 +24845,17 @@ var init_file_spreadsheet = __esm({
24824
24845
  ["path", { d: "M8 17h2", key: "2yhykz" }],
24825
24846
  ["path", { d: "M14 17h2", key: "10kma7" }]
24826
24847
  ];
24827
- FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode18);
24848
+ FileSpreadsheet = createLucideIcon("file-spreadsheet", __iconNode17);
24828
24849
  }
24829
24850
  });
24830
24851
 
24831
24852
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-text.js
24832
- var __iconNode19, FileText;
24853
+ var __iconNode18, FileText;
24833
24854
  var init_file_text = __esm({
24834
24855
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/file-text.js"() {
24835
24856
  "use strict";
24836
24857
  init_createLucideIcon();
24837
- __iconNode19 = [
24858
+ __iconNode18 = [
24838
24859
  [
24839
24860
  "path",
24840
24861
  {
@@ -24847,46 +24868,46 @@ var init_file_text = __esm({
24847
24868
  ["path", { d: "M16 13H8", key: "t4e002" }],
24848
24869
  ["path", { d: "M16 17H8", key: "z1uh3a" }]
24849
24870
  ];
24850
- FileText = createLucideIcon("file-text", __iconNode19);
24871
+ FileText = createLucideIcon("file-text", __iconNode18);
24851
24872
  }
24852
24873
  });
24853
24874
 
24854
24875
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/info.js
24855
- var __iconNode20, Info;
24876
+ var __iconNode19, Info;
24856
24877
  var init_info = __esm({
24857
24878
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/info.js"() {
24858
24879
  "use strict";
24859
24880
  init_createLucideIcon();
24860
- __iconNode20 = [
24881
+ __iconNode19 = [
24861
24882
  ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
24862
24883
  ["path", { d: "M12 16v-4", key: "1dtifu" }],
24863
24884
  ["path", { d: "M12 8h.01", key: "e9boi3" }]
24864
24885
  ];
24865
- Info = createLucideIcon("info", __iconNode20);
24886
+ Info = createLucideIcon("info", __iconNode19);
24866
24887
  }
24867
24888
  });
24868
24889
 
24869
24890
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/mail.js
24870
- var __iconNode21, Mail;
24891
+ var __iconNode20, Mail;
24871
24892
  var init_mail = __esm({
24872
24893
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/mail.js"() {
24873
24894
  "use strict";
24874
24895
  init_createLucideIcon();
24875
- __iconNode21 = [
24896
+ __iconNode20 = [
24876
24897
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
24877
24898
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
24878
24899
  ];
24879
- Mail = createLucideIcon("mail", __iconNode21);
24900
+ Mail = createLucideIcon("mail", __iconNode20);
24880
24901
  }
24881
24902
  });
24882
24903
 
24883
24904
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/map-pin.js
24884
- var __iconNode22, MapPin;
24905
+ var __iconNode21, MapPin;
24885
24906
  var init_map_pin = __esm({
24886
24907
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/map-pin.js"() {
24887
24908
  "use strict";
24888
24909
  init_createLucideIcon();
24889
- __iconNode22 = [
24910
+ __iconNode21 = [
24890
24911
  [
24891
24912
  "path",
24892
24913
  {
@@ -24896,28 +24917,28 @@ var init_map_pin = __esm({
24896
24917
  ],
24897
24918
  ["circle", { cx: "12", cy: "10", r: "3", key: "ilqhr7" }]
24898
24919
  ];
24899
- MapPin = createLucideIcon("map-pin", __iconNode22);
24920
+ MapPin = createLucideIcon("map-pin", __iconNode21);
24900
24921
  }
24901
24922
  });
24902
24923
 
24903
24924
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/minus.js
24904
- var __iconNode23, Minus;
24925
+ var __iconNode22, Minus;
24905
24926
  var init_minus = __esm({
24906
24927
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/minus.js"() {
24907
24928
  "use strict";
24908
24929
  init_createLucideIcon();
24909
- __iconNode23 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
24910
- Minus = createLucideIcon("minus", __iconNode23);
24930
+ __iconNode22 = [["path", { d: "M5 12h14", key: "1ays0h" }]];
24931
+ Minus = createLucideIcon("minus", __iconNode22);
24911
24932
  }
24912
24933
  });
24913
24934
 
24914
24935
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/phone.js
24915
- var __iconNode24, Phone;
24936
+ var __iconNode23, Phone;
24916
24937
  var init_phone = __esm({
24917
24938
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/phone.js"() {
24918
24939
  "use strict";
24919
24940
  init_createLucideIcon();
24920
- __iconNode24 = [
24941
+ __iconNode23 = [
24921
24942
  [
24922
24943
  "path",
24923
24944
  {
@@ -24926,17 +24947,17 @@ var init_phone = __esm({
24926
24947
  }
24927
24948
  ]
24928
24949
  ];
24929
- Phone = createLucideIcon("phone", __iconNode24);
24950
+ Phone = createLucideIcon("phone", __iconNode23);
24930
24951
  }
24931
24952
  });
24932
24953
 
24933
24954
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/play.js
24934
- var __iconNode25, Play;
24955
+ var __iconNode24, Play;
24935
24956
  var init_play = __esm({
24936
24957
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/play.js"() {
24937
24958
  "use strict";
24938
24959
  init_createLucideIcon();
24939
- __iconNode25 = [
24960
+ __iconNode24 = [
24940
24961
  [
24941
24962
  "path",
24942
24963
  {
@@ -24945,31 +24966,31 @@ var init_play = __esm({
24945
24966
  }
24946
24967
  ]
24947
24968
  ];
24948
- Play = createLucideIcon("play", __iconNode25);
24969
+ Play = createLucideIcon("play", __iconNode24);
24949
24970
  }
24950
24971
  });
24951
24972
 
24952
24973
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/plus.js
24953
- var __iconNode26, Plus;
24974
+ var __iconNode25, Plus;
24954
24975
  var init_plus = __esm({
24955
24976
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/plus.js"() {
24956
24977
  "use strict";
24957
24978
  init_createLucideIcon();
24958
- __iconNode26 = [
24979
+ __iconNode25 = [
24959
24980
  ["path", { d: "M5 12h14", key: "1ays0h" }],
24960
24981
  ["path", { d: "M12 5v14", key: "s699le" }]
24961
24982
  ];
24962
- Plus = createLucideIcon("plus", __iconNode26);
24983
+ Plus = createLucideIcon("plus", __iconNode25);
24963
24984
  }
24964
24985
  });
24965
24986
 
24966
24987
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/shopping-cart.js
24967
- var __iconNode27, ShoppingCart;
24988
+ var __iconNode26, ShoppingCart;
24968
24989
  var init_shopping_cart = __esm({
24969
24990
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/shopping-cart.js"() {
24970
24991
  "use strict";
24971
24992
  init_createLucideIcon();
24972
- __iconNode27 = [
24993
+ __iconNode26 = [
24973
24994
  ["circle", { cx: "8", cy: "21", r: "1", key: "jimo8o" }],
24974
24995
  ["circle", { cx: "19", cy: "21", r: "1", key: "13723u" }],
24975
24996
  [
@@ -24980,17 +25001,17 @@ var init_shopping_cart = __esm({
24980
25001
  }
24981
25002
  ]
24982
25003
  ];
24983
- ShoppingCart = createLucideIcon("shopping-cart", __iconNode27);
25004
+ ShoppingCart = createLucideIcon("shopping-cart", __iconNode26);
24984
25005
  }
24985
25006
  });
24986
25007
 
24987
25008
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/sparkles.js
24988
- var __iconNode28, Sparkles;
25009
+ var __iconNode27, Sparkles;
24989
25010
  var init_sparkles = __esm({
24990
25011
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/sparkles.js"() {
24991
25012
  "use strict";
24992
25013
  init_createLucideIcon();
24993
- __iconNode28 = [
25014
+ __iconNode27 = [
24994
25015
  [
24995
25016
  "path",
24996
25017
  {
@@ -25002,17 +25023,17 @@ var init_sparkles = __esm({
25002
25023
  ["path", { d: "M22 4h-4", key: "gwowj6" }],
25003
25024
  ["circle", { cx: "4", cy: "20", r: "2", key: "6kqj1y" }]
25004
25025
  ];
25005
- Sparkles = createLucideIcon("sparkles", __iconNode28);
25026
+ Sparkles = createLucideIcon("sparkles", __iconNode27);
25006
25027
  }
25007
25028
  });
25008
25029
 
25009
25030
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/star.js
25010
- var __iconNode29, Star;
25031
+ var __iconNode28, Star;
25011
25032
  var init_star = __esm({
25012
25033
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/star.js"() {
25013
25034
  "use strict";
25014
25035
  init_createLucideIcon();
25015
- __iconNode29 = [
25036
+ __iconNode28 = [
25016
25037
  [
25017
25038
  "path",
25018
25039
  {
@@ -25021,17 +25042,17 @@ var init_star = __esm({
25021
25042
  }
25022
25043
  ]
25023
25044
  ];
25024
- Star = createLucideIcon("star", __iconNode29);
25045
+ Star = createLucideIcon("star", __iconNode28);
25025
25046
  }
25026
25047
  });
25027
25048
 
25028
25049
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/ticket.js
25029
- var __iconNode30, Ticket;
25050
+ var __iconNode29, Ticket;
25030
25051
  var init_ticket = __esm({
25031
25052
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/ticket.js"() {
25032
25053
  "use strict";
25033
25054
  init_createLucideIcon();
25034
- __iconNode30 = [
25055
+ __iconNode29 = [
25035
25056
  [
25036
25057
  "path",
25037
25058
  {
@@ -25043,36 +25064,36 @@ var init_ticket = __esm({
25043
25064
  ["path", { d: "M13 17v2", key: "1ont0d" }],
25044
25065
  ["path", { d: "M13 11v2", key: "1wjjxi" }]
25045
25066
  ];
25046
- Ticket = createLucideIcon("ticket", __iconNode30);
25067
+ Ticket = createLucideIcon("ticket", __iconNode29);
25047
25068
  }
25048
25069
  });
25049
25070
 
25050
25071
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/upload.js
25051
- var __iconNode31, Upload;
25072
+ var __iconNode30, Upload;
25052
25073
  var init_upload = __esm({
25053
25074
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/upload.js"() {
25054
25075
  "use strict";
25055
25076
  init_createLucideIcon();
25056
- __iconNode31 = [
25077
+ __iconNode30 = [
25057
25078
  ["path", { d: "M12 3v12", key: "1x0j5s" }],
25058
25079
  ["path", { d: "m17 8-5-5-5 5", key: "7q97r8" }],
25059
25080
  ["path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", key: "ih7n3h" }]
25060
25081
  ];
25061
- Upload = createLucideIcon("upload", __iconNode31);
25082
+ Upload = createLucideIcon("upload", __iconNode30);
25062
25083
  }
25063
25084
  });
25064
25085
 
25065
25086
  // ../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/x.js
25066
- var __iconNode32, X;
25087
+ var __iconNode31, X;
25067
25088
  var init_x = __esm({
25068
25089
  "../../node_modules/.pnpm/lucide-react@0.563.0_react@19.2.4/node_modules/lucide-react/dist/esm/icons/x.js"() {
25069
25090
  "use strict";
25070
25091
  init_createLucideIcon();
25071
- __iconNode32 = [
25092
+ __iconNode31 = [
25072
25093
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
25073
25094
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
25074
25095
  ];
25075
- X = createLucideIcon("x", __iconNode32);
25096
+ X = createLucideIcon("x", __iconNode31);
25076
25097
  }
25077
25098
  });
25078
25099
 
@@ -25083,7 +25104,6 @@ var init_lucide_react = __esm({
25083
25104
  init_circle_minus();
25084
25105
  init_circle_plus();
25085
25106
  init_file_headphone();
25086
- init_file_play();
25087
25107
  init_sparkles();
25088
25108
  init_arrow_down();
25089
25109
  init_arrow_left();
@@ -25233,8 +25253,6 @@ function iconForMediaType(type) {
25233
25253
  switch (type) {
25234
25254
  case "audio":
25235
25255
  return /* @__PURE__ */ jsx17(FileHeadphone, { "aria-hidden": "true" });
25236
- case "video":
25237
- return /* @__PURE__ */ jsx17(FilePlay, { "aria-hidden": "true" });
25238
25256
  case "document":
25239
25257
  return /* @__PURE__ */ jsx17(FileText, { "aria-hidden": "true" });
25240
25258
  case "spreadsheet":
@@ -25273,8 +25291,22 @@ function FileDownloadNode({
25273
25291
  }
25274
25292
  ),
25275
25293
  /* @__PURE__ */ jsxs6("div", { className: "rb-min-w-0 rb-space-y-1", children: [
25276
- /* @__PURE__ */ jsx17("h2", { className: "rb-m-0 rb-text-lg rb-font-semibold", style: textColorStyle("heading"), children: heading }),
25277
- body ? /* @__PURE__ */ jsx17("p", { className: "rb-m-0 rb-text-sm", style: textColorStyle("mutedText"), children: body }) : null,
25294
+ /* @__PURE__ */ jsx17(
25295
+ "h2",
25296
+ {
25297
+ className: "rb-m-0 rb-text-lg rb-font-semibold",
25298
+ style: textColorStyle("heading"),
25299
+ children: heading
25300
+ }
25301
+ ),
25302
+ body ? /* @__PURE__ */ jsx17(
25303
+ "p",
25304
+ {
25305
+ className: "rb-m-0 rb-text-sm",
25306
+ style: textColorStyle("mutedText"),
25307
+ children: body
25308
+ }
25309
+ ) : null,
25278
25310
  /* @__PURE__ */ jsx17(
25279
25311
  "p",
25280
25312
  {
@@ -25312,7 +25344,12 @@ var init_file_download = __esm({
25312
25344
  init_media2();
25313
25345
  init_buttons();
25314
25346
  init_media3();
25315
- FILE_DOWNLOAD_BUTTON_VARIANTS = ["primary", "secondary", "outline", "link"];
25347
+ FILE_DOWNLOAD_BUTTON_VARIANTS = [
25348
+ "primary",
25349
+ "secondary",
25350
+ "outline",
25351
+ "link"
25352
+ ];
25316
25353
  }
25317
25354
  });
25318
25355
 
@@ -70857,6 +70894,7 @@ function deriveFieldValidationPlan(field, path = [field.id]) {
70857
70894
  case "richText":
70858
70895
  return makePlan("richText", "object", field, path, required, commonConstraints(required, { kind: "richTextDoc" }));
70859
70896
  case "media":
70897
+ case "file":
70860
70898
  return makePlan("media", "object", field, path, required, commonConstraints(required, { kind: "mediaObject" }));
70861
70899
  case "link":
70862
70900
  return makePlan("link", "object", field, path, required, commonConstraints(required, { kind: "linkObject" }));
@@ -75600,104 +75638,107 @@ init_fragments();
75600
75638
  init_boxStyles();
75601
75639
  init_defineBlock();
75602
75640
  init_shared3();
75603
- var eventSpotlightManifest = createBlockManifest({
75641
+ var eventSpotlightFields = [
75642
+ ...sectionHeaderFields("Upcoming Events"),
75643
+ {
75644
+ id: "maxEvents",
75645
+ type: "select",
75646
+ label: "Events to display",
75647
+ description: "Number of events to show",
75648
+ required: false,
75649
+ multiple: false,
75650
+ defaultValue: "3",
75651
+ options: [
75652
+ { value: "1", label: "1 event" },
75653
+ { value: "2", label: "2 events" },
75654
+ { value: "3", label: "3 events" },
75655
+ { value: "4", label: "4 events" },
75656
+ { value: "5", label: "5 events" },
75657
+ { value: "6", label: "6 events" }
75658
+ ],
75659
+ ui: { intent: "display" }
75660
+ },
75661
+ {
75662
+ id: "ctaLabel",
75663
+ type: "text",
75664
+ label: "Section button text",
75665
+ description: "Optional button shown below the spotlight cards",
75666
+ required: false,
75667
+ multiline: false,
75668
+ maxLength: 40,
75669
+ ui: { intent: "content" }
75670
+ },
75671
+ {
75672
+ id: "ctaUrl",
75673
+ type: "link",
75674
+ label: "Section button destination",
75675
+ required: false,
75676
+ ui: { intent: "display" }
75677
+ },
75678
+ layoutField,
75679
+ columnsField(["2", "3"]),
75680
+ ...cardStylingFields,
75681
+ ...eventDisplayFields,
75682
+ emptyStateField,
75683
+ sectionStylesField({
75684
+ id: "_sectionStyles",
75685
+ label: "Section styles"
75686
+ })
75687
+ ];
75688
+ var eventSpotlightLayout = [
75689
+ styledSection({
75690
+ children: sectionContainer([
75691
+ // Optional heading
75692
+ text(
75693
+ { as: "h2" },
75694
+ bind("content.heading"),
75695
+ when("content.heading")
75696
+ ),
75697
+ // Optional description
75698
+ richText(
75699
+ { className: "rb-prose rb-max-w-none" },
75700
+ bind("content.description"),
75701
+ when("content.description")
75702
+ ),
75703
+ // Event spotlight component
75704
+ el("event-spotlight", {
75705
+ events: { $bind: { from: "data.events" } },
75706
+ layout: { $bind: { from: "content.layout", fallback: "grid" } },
75707
+ columns: { $bind: { from: "content.columns", fallback: "3" } },
75708
+ cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
75709
+ buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
75710
+ buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
75711
+ ctaLabel: { $bind: { from: "content.ctaLabel" } },
75712
+ ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
75713
+ showVenue: { $bind: { from: "content.showVenue" } },
75714
+ showMap: { $bind: { from: "content.showMap" } },
75715
+ showCapacity: { $bind: { from: "content.showCapacity" } },
75716
+ emptyMessage: { $bind: { from: "content.emptyMessage" } }
75717
+ })
75718
+ ], {
75719
+ gap: "lg"
75720
+ }),
75721
+ // sectionContainer (rb-container) already provides horizontal padding
75722
+ baseClass: "",
75723
+ spacing: "comfortable"
75724
+ })
75725
+ ];
75726
+ var eventSpotlightConfig = {
75604
75727
  id: "block.event-spotlight",
75605
75728
  version: "1.1.0",
75606
75729
  title: "Event Spotlight",
75607
75730
  titleSource: "heading",
75608
75731
  description: "Feature a few upcoming events on your homepage",
75609
75732
  skipSectionStyles: true,
75610
- additionalFields: [
75611
- ...sectionHeaderFields("Upcoming Events"),
75612
- {
75613
- id: "maxEvents",
75614
- type: "select",
75615
- label: "Events to display",
75616
- description: "Number of events to show",
75617
- required: false,
75618
- multiple: false,
75619
- defaultValue: "3",
75620
- options: [
75621
- { value: "1", label: "1 event" },
75622
- { value: "2", label: "2 events" },
75623
- { value: "3", label: "3 events" },
75624
- { value: "4", label: "4 events" },
75625
- { value: "5", label: "5 events" },
75626
- { value: "6", label: "6 events" }
75627
- ],
75628
- ui: { intent: "display" }
75629
- },
75630
- {
75631
- id: "ctaLabel",
75632
- type: "text",
75633
- label: "Section button text",
75634
- description: "Optional button shown below the spotlight cards",
75635
- required: false,
75636
- multiline: false,
75637
- maxLength: 40,
75638
- ui: { intent: "content" }
75639
- },
75640
- {
75641
- id: "ctaUrl",
75642
- type: "link",
75643
- label: "Section button destination",
75644
- required: false,
75645
- ui: { intent: "display" }
75646
- },
75647
- layoutField,
75648
- columnsField(["2", "3"]),
75649
- ...cardStylingFields,
75650
- ...eventDisplayFields,
75651
- emptyStateField,
75652
- sectionStylesField({
75653
- id: "_sectionStyles",
75654
- label: "Section styles"
75655
- })
75656
- ],
75733
+ additionalFields: eventSpotlightFields,
75657
75734
  styleTokens: { background: "surface", typography: "body", spacing: "md" },
75658
75735
  behaviours: { supportsThemeSwitching: true, inlineEditing: false, animation: false, paletteHidden: false },
75659
75736
  category: "content",
75660
75737
  tags: ["events", "featured", "homepage", "spotlight", "upcoming"],
75661
75738
  icon: "Star",
75662
- layout: [
75663
- styledSection({
75664
- children: sectionContainer([
75665
- // Optional heading
75666
- text(
75667
- { as: "h2" },
75668
- bind("content.heading"),
75669
- when("content.heading")
75670
- ),
75671
- // Optional description
75672
- richText(
75673
- { className: "rb-prose rb-max-w-none" },
75674
- bind("content.description"),
75675
- when("content.description")
75676
- ),
75677
- // Event spotlight component
75678
- el("event-spotlight", {
75679
- events: { $bind: { from: "data.events" } },
75680
- layout: { $bind: { from: "content.layout", fallback: "grid" } },
75681
- columns: { $bind: { from: "content.columns", fallback: "3" } },
75682
- cardVariant: { $bind: { from: "content.cardVariant", fallback: "default" } },
75683
- buttonVariant: { $bind: { from: "content.buttonVariant", fallback: "primary" } },
75684
- buttonText: { $bind: { from: "content.buttonText", fallback: "View event" } },
75685
- ctaLabel: { $bind: { from: "content.ctaLabel" } },
75686
- ctaUrl: { $bind: { from: "content.ctaUrl", transforms: [{ id: "links.resolve" }] } },
75687
- showVenue: { $bind: { from: "content.showVenue" } },
75688
- showMap: { $bind: { from: "content.showMap" } },
75689
- showCapacity: { $bind: { from: "content.showCapacity" } },
75690
- emptyMessage: { $bind: { from: "content.emptyMessage" } }
75691
- })
75692
- ], {
75693
- gap: "lg"
75694
- }),
75695
- // sectionContainer (rb-container) already provides horizontal padding
75696
- baseClass: "",
75697
- spacing: "comfortable"
75698
- })
75699
- ]
75700
- });
75739
+ layout: eventSpotlightLayout
75740
+ };
75741
+ var eventSpotlightManifest = createBlockManifest(eventSpotlightConfig);
75701
75742
  var eventSpotlightBlockDefinition = {
75702
75743
  manifest: eventSpotlightManifest,
75703
75744
  dataSchemas: {
@@ -77112,18 +77153,18 @@ var fileDownloadManifest = createBlockManifest({
77112
77153
  title: "File Download",
77113
77154
  titleSource: ["title", "file.filename"],
77114
77155
  category: "media",
77115
- description: "Add a simple public download link for a document, ZIP, audio, or video file.",
77156
+ description: "Add a simple public download link for a document, ZIP, or audio file.",
77116
77157
  tags: ["file", "download", "document", "zip", "media"],
77117
77158
  icon: "Download",
77118
77159
  includeContainerStyles: true,
77119
77160
  additionalFields: [
77120
77161
  {
77121
77162
  id: "file",
77122
- type: "media",
77163
+ type: "file",
77123
77164
  label: "Download file",
77124
77165
  description: "Choose the file visitors can download.",
77125
77166
  required: false,
77126
- mediaKinds: [...PUBLIC_DOWNLOAD_MEDIA_TYPES],
77167
+ fileKinds: [...PUBLIC_DOWNLOAD_MEDIA_TYPES],
77127
77168
  ui: { intent: "content" }
77128
77169
  },
77129
77170
  {
@@ -84296,7 +84337,7 @@ var SimpleCache = class {
84296
84337
  };
84297
84338
 
84298
84339
  // src/version.ts
84299
- var SDK_VERSION = "0.70.3";
84340
+ var SDK_VERSION = "0.70.4";
84300
84341
 
84301
84342
  // src/client/error.ts
84302
84343
  var RiverbankApiError = class _RiverbankApiError extends Error {
@@ -85519,7 +85560,6 @@ lucide-react/dist/esm/icons/download.js:
85519
85560
  lucide-react/dist/esm/icons/external-link.js:
85520
85561
  lucide-react/dist/esm/icons/file-archive.js:
85521
85562
  lucide-react/dist/esm/icons/file-headphone.js:
85522
- lucide-react/dist/esm/icons/file-play.js:
85523
85563
  lucide-react/dist/esm/icons/file-spreadsheet.js:
85524
85564
  lucide-react/dist/esm/icons/file-text.js:
85525
85565
  lucide-react/dist/esm/icons/info.js: