@uniformdev/richtext 20.75.1-alpha.0 → 20.76.1-alpha.3

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/index.js CHANGED
@@ -25,6 +25,8 @@ __export(index_exports, {
25
25
  emptyRichTextValue: () => emptyRichTextValue,
26
26
  getLabelForElement: () => getLabelForElement,
27
27
  getLabelForFormat: () => getLabelForFormat,
28
+ getRichTextListItemValue: () => getRichTextListItemValue,
29
+ getRichTextListStart: () => getRichTextListStart,
28
30
  getRichTextTagFromTableCellHeaderState: () => getRichTextTagFromTableCellHeaderState,
29
31
  getRichTextTagsFromTextFormat: () => getRichTextTagsFromTextFormat,
30
32
  hasChildren: () => hasChildren,
@@ -43,8 +45,10 @@ __export(index_exports, {
43
45
  linkParamValueToHtmlAttributes: () => linkParamValueToHtmlAttributes,
44
46
  listHtmlRenderer: () => listHtmlRenderer,
45
47
  listitemHtmlRenderer: () => listitemHtmlRenderer,
48
+ omitDefaultRichTextProperties: () => omitDefaultRichTextProperties,
46
49
  paragraphHtmlRenderer: () => paragraphHtmlRenderer,
47
50
  purifyText: () => purifyText,
51
+ rehydrateDefaultRichTextProperties: () => rehydrateDefaultRichTextProperties,
48
52
  renderChildrenToHtml: () => renderChildrenToHtml,
49
53
  renderChildrenToText: () => renderChildrenToText,
50
54
  renderHtmlElement: () => renderHtmlElement,
@@ -248,18 +252,23 @@ var listHtmlRenderer = ({ context, renderChildren }) => {
248
252
  var _a;
249
253
  const node = context.currentNode;
250
254
  const attributes = /* @__PURE__ */ new Map();
251
- if (node.start > 1) {
252
- attributes.set("start", node.start.toString());
255
+ const start = getRichTextListStart(node.start);
256
+ if (typeof start === "number" && start > 1) {
257
+ attributes.set("start", start.toString());
253
258
  }
254
259
  return renderHtmlElement((_a = node.tag) != null ? _a : "ul", attributes, renderChildren(context.currentNode.children));
255
260
  };
261
+ function getRichTextListStart(start) {
262
+ return start === void 0 ? 1 : start;
263
+ }
256
264
 
257
265
  // src/nodes/listitem.ts
258
266
  var listitemHtmlRenderer = ({ context, renderChildren }) => {
259
267
  const node = context.currentNode;
260
268
  const attributes = /* @__PURE__ */ new Map();
261
- if (Number.isFinite(node.value) && node.value > 0) {
262
- attributes.set("value", node.value.toString());
269
+ const value = getRichTextListItemValue(node.value);
270
+ if (typeof value === "number" && value > 0) {
271
+ attributes.set("value", value.toString());
263
272
  }
264
273
  return renderHtmlElement("li", attributes, renderChildren(context.currentNode.children));
265
274
  };
@@ -273,6 +282,9 @@ var listitemTextRenderer = ({ context, renderChildren }) => {
273
282
  }
274
283
  return `${childrenRendered} `;
275
284
  };
285
+ function getRichTextListItemValue(value) {
286
+ return value === void 0 ? 1 : value;
287
+ }
276
288
 
277
289
  // src/nodes/paragraph.ts
278
290
  var paragraphHtmlRenderer = ({ context, renderChildren }) => {
@@ -319,7 +331,7 @@ var tablecellTextRenderer = ({ context, renderChildren }) => {
319
331
  return hasChildren(context.currentNode) ? `${renderChildren(context.currentNode.children)} ` : "";
320
332
  };
321
333
  function getRichTextTagFromTableCellHeaderState(headerState) {
322
- if (headerState === 0) {
334
+ if (!headerState) {
323
335
  return "td";
324
336
  }
325
337
  return "th";
@@ -348,6 +360,9 @@ var textTextRenderer = ({ context }) => {
348
360
  };
349
361
  function getRichTextTagsFromTextFormat(format) {
350
362
  const tags = [];
363
+ if (!format) {
364
+ return tags;
365
+ }
351
366
  if (format & 1 << 0) {
352
367
  tags.push("strong");
353
368
  }
@@ -372,154 +387,133 @@ function getRichTextTagsFromTextFormat(format) {
372
387
  return tags;
373
388
  }
374
389
 
375
- // src/nodes/tab.ts
376
- var tabHtmlRenderer = () => {
377
- return " ";
378
- };
379
- var tabTextRenderer = () => {
380
- return " ";
381
- };
382
-
383
- // src/renderToHtml.ts
384
- var rendererTypeMap = /* @__PURE__ */ new Map([
385
- ["heading", headingHtmlRenderer],
386
- ["link", linkHtmlRenderer],
387
- ["list", listHtmlRenderer],
388
- ["listitem", listitemHtmlRenderer],
389
- ["paragraph", paragraphHtmlRenderer],
390
- ["root", rootHtmlRenderer],
391
- ["text", textHtmlRenderer],
392
- ["tab", tabHtmlRenderer],
393
- ["table", tableHtmlRenderer],
394
- ["tablecell", tablecellHtmlRenderer],
395
- ["tablerow", tablerowHtmlRenderer],
396
- ["asset", assetHtmlRenderer]
390
+ // src/defaultRichTextNodeProperties.ts
391
+ var OMITTED_RICH_TEXT_NODE_VERSION = 1;
392
+ var NO_DEFAULTS = Object.freeze({});
393
+ var ELEMENT_BASELINE_V1 = Object.freeze({
394
+ format: "",
395
+ indent: 0,
396
+ direction: null,
397
+ version: 1
398
+ });
399
+ var TEXT_BASELINE_V1 = Object.freeze({
400
+ format: 0,
401
+ style: "",
402
+ mode: "normal",
403
+ detail: 0,
404
+ version: 1
405
+ });
406
+ var VERSION_ONLY_V1 = Object.freeze({
407
+ version: 1
408
+ });
409
+ var ELEMENT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
410
+ "format",
411
+ "indent",
412
+ "direction"
413
+ // 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
397
414
  ]);
398
- var resolveDefaultRenderer = (context) => {
399
- const renderer = rendererTypeMap.get(context.currentNode.type);
400
- if (renderer) {
401
- return renderer;
402
- }
403
- const tags = rendererTypeTagMap.get(context.currentNode.type);
404
- if (tags) {
405
- return ({ renderChildren }) => {
406
- var _a;
407
- return (_a = tags.reduceRight(
408
- (children, tag) => {
409
- return renderHtmlElement(tag, null, children);
410
- },
411
- hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : void 0
412
- )) != null ? _a : "";
413
- };
414
- }
415
- return () => `<!-- WARNING: No renderer for type ${context.currentNode.type} -->`;
416
- };
417
- function initializeRenderContext(node, parentContext) {
418
- let ancestorNodes = [];
419
- if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
420
- ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
421
- }
422
- if (parentContext == null ? void 0 : parentContext.currentNode) {
423
- ancestorNodes.unshift(parentContext.currentNode);
424
- }
425
- return {
426
- ...parentContext != null ? parentContext : {},
427
- currentNode: node,
428
- ancestorNodes
429
- };
415
+ var TEXT_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
416
+ // 'format', // Retain until SDKs that treat missing text/tab `format` as `0` are widely adopted.
417
+ "style",
418
+ "mode",
419
+ "detail"
420
+ // 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
421
+ ]);
422
+ var NO_PROPERTIES_SAFE_TO_OMIT = Object.freeze([
423
+ // 'version', // Retain until SDKs that treat missing `version` as `1` are widely adopted.
424
+ ]);
425
+ var DEFAULT_RICH_TEXT_NODE_PROPERTIES = Object.freeze({
426
+ root: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
427
+ heading: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
428
+ quote: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
429
+ code: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
430
+ table: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
431
+ tablerow: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
432
+ link: Object.freeze({ 1: ELEMENT_BASELINE_V1 }),
433
+ paragraph: Object.freeze({
434
+ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, textFormat: 0, textStyle: "" })
435
+ }),
436
+ list: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, start: 1 }) }),
437
+ listitem: Object.freeze({ 1: Object.freeze({ ...ELEMENT_BASELINE_V1, value: 1 }) }),
438
+ tablecell: Object.freeze({
439
+ 1: Object.freeze({
440
+ ...ELEMENT_BASELINE_V1,
441
+ colSpan: 1,
442
+ rowSpan: 1,
443
+ backgroundColor: null,
444
+ headerState: 0
445
+ })
446
+ }),
447
+ text: Object.freeze({ 1: TEXT_BASELINE_V1 }),
448
+ tab: Object.freeze({ 1: TEXT_BASELINE_V1 }),
449
+ linebreak: Object.freeze({ 1: VERSION_ONLY_V1 }),
450
+ asset: Object.freeze({ 1: VERSION_ONLY_V1 }),
451
+ // Rich text variable binding still requires an explicit version, so variable nodes stay verbose.
452
+ variable: Object.freeze({ 1: NO_DEFAULTS })
453
+ });
454
+ var RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT = Object.freeze({
455
+ root: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
456
+ heading: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
457
+ quote: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
458
+ code: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
459
+ table: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
460
+ tablerow: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
461
+ link: ELEMENT_PROPERTIES_SAFE_TO_OMIT,
462
+ paragraph: Object.freeze([...ELEMENT_PROPERTIES_SAFE_TO_OMIT, "textFormat", "textStyle"]),
463
+ list: Object.freeze([
464
+ ...ELEMENT_PROPERTIES_SAFE_TO_OMIT
465
+ // 'start', // Retain until SDKs that treat missing list `start` as `1` are widely adopted.
466
+ ]),
467
+ listitem: Object.freeze([
468
+ ...ELEMENT_PROPERTIES_SAFE_TO_OMIT
469
+ // 'value', // Retain until SDKs that treat missing list-item `value` as `1` are widely adopted.
470
+ ]),
471
+ tablecell: Object.freeze([
472
+ ...ELEMENT_PROPERTIES_SAFE_TO_OMIT,
473
+ "colSpan",
474
+ "rowSpan",
475
+ "backgroundColor"
476
+ // 'headerState', // Retain until SDKs that treat missing `headerState` as `0` are widely adopted.
477
+ ]),
478
+ text: TEXT_PROPERTIES_SAFE_TO_OMIT,
479
+ tab: TEXT_PROPERTIES_SAFE_TO_OMIT,
480
+ linebreak: NO_PROPERTIES_SAFE_TO_OMIT,
481
+ asset: NO_PROPERTIES_SAFE_TO_OMIT,
482
+ variable: NO_PROPERTIES_SAFE_TO_OMIT
483
+ });
484
+ function getStoredRichTextNodeVersion(node) {
485
+ return typeof node.version === "number" ? node.version : OMITTED_RICH_TEXT_NODE_VERSION;
430
486
  }
431
- function renderToHtml(node, parentContext) {
432
- var _a;
433
- if (!isRichTextNode(node)) return "";
434
- const context = initializeRenderContext(node, parentContext);
435
- let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
436
- if (typeof renderer === "undefined") {
437
- renderer = resolveDefaultRenderer(context);
438
- } else if (renderer === null) {
439
- return "";
487
+ function isOmittableRichTextDefault(key, nodeValue, defaultValue) {
488
+ if (!Object.is(nodeValue, defaultValue)) {
489
+ return false;
440
490
  }
441
- const renderChildren = (children) => renderChildrenToHtml(children, context);
442
- if (renderer) {
443
- return renderer({ context, renderChildren });
444
- } else {
445
- throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
491
+ if (key === "version") {
492
+ return Object.is(nodeValue, OMITTED_RICH_TEXT_NODE_VERSION);
446
493
  }
494
+ return true;
447
495
  }
448
- function renderChildrenToHtml(children, context) {
449
- return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
450
- }
451
-
452
- // src/nodes/linebreak.ts
453
- var linebreakTextRenderer = () => {
454
- return " ";
455
- };
456
-
457
- // src/renderToText.ts
458
- var rendererTypeMap2 = /* @__PURE__ */ new Map([
459
- ["text", textTextRenderer],
460
- ["tab", tabTextRenderer],
461
- ["linebreak", linebreakTextRenderer],
462
- ["paragraph", paragraphTextRenderer],
463
- ["listitem", listitemTextRenderer],
464
- ["heading", headingTextRenderer],
465
- ["table", tableTextRenderer],
466
- ["tablecell", tablecellTextRenderer],
467
- ["tablerow", tablerowTextRenderer]
468
- ]);
469
- var resolveDefaultRenderer2 = (context) => {
470
- const renderer = rendererTypeMap2.get(context.currentNode.type);
471
- if (renderer) {
472
- return renderer;
473
- }
474
- return ({ context: context2, renderChildren }) => {
475
- return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
476
- };
477
- };
478
- function initializeRenderContext2(node, parentContext) {
479
- let ancestorNodes = [];
480
- if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
481
- ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
496
+ function getDefaultRichTextPropertiesForNode(node) {
497
+ var _a;
498
+ const version = getStoredRichTextNodeVersion(node);
499
+ const defaultsForType = DEFAULT_RICH_TEXT_NODE_PROPERTIES[node.type];
500
+ if (defaultsForType) {
501
+ return (_a = defaultsForType[version]) != null ? _a : NO_DEFAULTS;
482
502
  }
483
- if (parentContext == null ? void 0 : parentContext.currentNode) {
484
- ancestorNodes.unshift(parentContext.currentNode);
503
+ if (version !== OMITTED_RICH_TEXT_NODE_VERSION) {
504
+ return NO_DEFAULTS;
485
505
  }
486
- return {
487
- ...parentContext != null ? parentContext : {},
488
- currentNode: node,
489
- ancestorNodes
490
- };
491
- }
492
- function renderToText(node, parentContext) {
493
- var _a;
494
- if (!isRichTextNode(node)) return "";
495
- const context = initializeRenderContext2(node, parentContext);
496
- let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
497
- if (typeof renderer === "undefined") {
498
- renderer = resolveDefaultRenderer2(context);
499
- } else if (renderer === null) {
500
- return "";
506
+ if ("text" in node) {
507
+ return TEXT_BASELINE_V1;
501
508
  }
502
- const renderChildren = (children) => renderChildrenToText(children, context);
503
- if (renderer) {
504
- const rendered = renderer({ context, renderChildren });
505
- return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
506
- } else {
507
- throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
509
+ if ("children" in node) {
510
+ return ELEMENT_BASELINE_V1;
508
511
  }
512
+ return VERSION_ONLY_V1;
509
513
  }
510
- function renderChildrenToText(children, context) {
511
- return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
512
- }
513
-
514
- // src/types.ts
515
- function resolveLinkAttrConfig(entry) {
514
+ function getRichTextPropertiesSafeToOmit(node) {
516
515
  var _a;
517
- return {
518
- key: entry.key,
519
- options: entry.options,
520
- label: (_a = entry.label) != null ? _a : entry.key,
521
- helpText: entry.helpText
522
- };
516
+ return (_a = RICH_TEXT_NODE_PROPERTIES_SAFE_TO_OMIT[node.type]) != null ? _a : NO_PROPERTIES_SAFE_TO_OMIT;
523
517
  }
524
518
 
525
519
  // src/utils.ts
@@ -672,6 +666,200 @@ var defaultParameterConfiguration = {
672
666
  }
673
667
  }
674
668
  };
669
+
670
+ // src/omitDefaultRichTextProperties.ts
671
+ function omitDefaultPropertiesFromNode(node) {
672
+ const defaults = getDefaultRichTextPropertiesForNode(node);
673
+ for (const key of getRichTextPropertiesSafeToOmit(node)) {
674
+ if (!(key in node)) {
675
+ continue;
676
+ }
677
+ const defaultValue = defaults[key];
678
+ if (isOmittableRichTextDefault(key, node[key], defaultValue)) {
679
+ delete node[key];
680
+ }
681
+ }
682
+ }
683
+ function omitDefaultRichTextProperties(value) {
684
+ if (!isRichTextValue(value)) {
685
+ return value;
686
+ }
687
+ const cloned = structuredClone(value);
688
+ walkRichTextTree(cloned.root, (node) => {
689
+ omitDefaultPropertiesFromNode(node);
690
+ });
691
+ return cloned;
692
+ }
693
+
694
+ // src/rehydrateDefaultRichTextProperties.ts
695
+ function rehydrateDefaultPropertiesOnNode(node) {
696
+ const defaults = getDefaultRichTextPropertiesForNode(node);
697
+ for (const [key, defaultValue] of Object.entries(defaults)) {
698
+ if (!(key in node)) {
699
+ node[key] = defaultValue;
700
+ }
701
+ }
702
+ }
703
+ function rehydrateDefaultRichTextProperties(value) {
704
+ if (!isRichTextValue(value)) {
705
+ return value;
706
+ }
707
+ const cloned = structuredClone(value);
708
+ walkRichTextTree(cloned.root, (node) => {
709
+ rehydrateDefaultPropertiesOnNode(node);
710
+ });
711
+ return cloned;
712
+ }
713
+
714
+ // src/nodes/tab.ts
715
+ var tabHtmlRenderer = () => {
716
+ return " ";
717
+ };
718
+ var tabTextRenderer = () => {
719
+ return " ";
720
+ };
721
+
722
+ // src/renderToHtml.ts
723
+ var rendererTypeMap = /* @__PURE__ */ new Map([
724
+ ["heading", headingHtmlRenderer],
725
+ ["link", linkHtmlRenderer],
726
+ ["list", listHtmlRenderer],
727
+ ["listitem", listitemHtmlRenderer],
728
+ ["paragraph", paragraphHtmlRenderer],
729
+ ["root", rootHtmlRenderer],
730
+ ["text", textHtmlRenderer],
731
+ ["tab", tabHtmlRenderer],
732
+ ["table", tableHtmlRenderer],
733
+ ["tablecell", tablecellHtmlRenderer],
734
+ ["tablerow", tablerowHtmlRenderer],
735
+ ["asset", assetHtmlRenderer]
736
+ ]);
737
+ var resolveDefaultRenderer = (context) => {
738
+ const renderer = rendererTypeMap.get(context.currentNode.type);
739
+ if (renderer) {
740
+ return renderer;
741
+ }
742
+ const tags = rendererTypeTagMap.get(context.currentNode.type);
743
+ if (tags) {
744
+ return ({ renderChildren }) => {
745
+ var _a;
746
+ return (_a = tags.reduceRight(
747
+ (children, tag) => {
748
+ return renderHtmlElement(tag, null, children);
749
+ },
750
+ hasChildren(context.currentNode) ? renderChildren(context.currentNode.children) : void 0
751
+ )) != null ? _a : "";
752
+ };
753
+ }
754
+ return () => `<!-- WARNING: No renderer for type ${context.currentNode.type} -->`;
755
+ };
756
+ function initializeRenderContext(node, parentContext) {
757
+ let ancestorNodes = [];
758
+ if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
759
+ ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
760
+ }
761
+ if (parentContext == null ? void 0 : parentContext.currentNode) {
762
+ ancestorNodes.unshift(parentContext.currentNode);
763
+ }
764
+ return {
765
+ ...parentContext != null ? parentContext : {},
766
+ currentNode: node,
767
+ ancestorNodes
768
+ };
769
+ }
770
+ function renderToHtml(node, parentContext) {
771
+ var _a;
772
+ if (!isRichTextNode(node)) return "";
773
+ const context = initializeRenderContext(node, parentContext);
774
+ let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
775
+ if (typeof renderer === "undefined") {
776
+ renderer = resolveDefaultRenderer(context);
777
+ } else if (renderer === null) {
778
+ return "";
779
+ }
780
+ const renderChildren = (children) => renderChildrenToHtml(children, context);
781
+ if (renderer) {
782
+ return renderer({ context, renderChildren });
783
+ } else {
784
+ throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
785
+ }
786
+ }
787
+ function renderChildrenToHtml(children, context) {
788
+ return Array.isArray(children) ? children.map((node) => renderToHtml(node, context)).join("") : "";
789
+ }
790
+
791
+ // src/nodes/linebreak.ts
792
+ var linebreakTextRenderer = () => {
793
+ return " ";
794
+ };
795
+
796
+ // src/renderToText.ts
797
+ var rendererTypeMap2 = /* @__PURE__ */ new Map([
798
+ ["text", textTextRenderer],
799
+ ["tab", tabTextRenderer],
800
+ ["linebreak", linebreakTextRenderer],
801
+ ["paragraph", paragraphTextRenderer],
802
+ ["listitem", listitemTextRenderer],
803
+ ["heading", headingTextRenderer],
804
+ ["table", tableTextRenderer],
805
+ ["tablecell", tablecellTextRenderer],
806
+ ["tablerow", tablerowTextRenderer]
807
+ ]);
808
+ var resolveDefaultRenderer2 = (context) => {
809
+ const renderer = rendererTypeMap2.get(context.currentNode.type);
810
+ if (renderer) {
811
+ return renderer;
812
+ }
813
+ return ({ context: context2, renderChildren }) => {
814
+ return hasChildren(context2.currentNode) ? renderChildren(context2.currentNode.children) : "";
815
+ };
816
+ };
817
+ function initializeRenderContext2(node, parentContext) {
818
+ let ancestorNodes = [];
819
+ if (parentContext == null ? void 0 : parentContext.ancestorNodes) {
820
+ ancestorNodes = ancestorNodes.concat(parentContext.ancestorNodes);
821
+ }
822
+ if (parentContext == null ? void 0 : parentContext.currentNode) {
823
+ ancestorNodes.unshift(parentContext.currentNode);
824
+ }
825
+ return {
826
+ ...parentContext != null ? parentContext : {},
827
+ currentNode: node,
828
+ ancestorNodes
829
+ };
830
+ }
831
+ function renderToText(node, parentContext) {
832
+ var _a;
833
+ if (!isRichTextNode(node)) return "";
834
+ const context = initializeRenderContext2(node, parentContext);
835
+ let renderer = (_a = context.resolveRenderer) == null ? void 0 : _a.call(context, context);
836
+ if (typeof renderer === "undefined") {
837
+ renderer = resolveDefaultRenderer2(context);
838
+ } else if (renderer === null) {
839
+ return "";
840
+ }
841
+ const renderChildren = (children) => renderChildrenToText(children, context);
842
+ if (renderer) {
843
+ const rendered = renderer({ context, renderChildren });
844
+ return context.ancestorNodes.length > 0 ? rendered : rendered.trim();
845
+ } else {
846
+ throw new Error(`There is no renderer for node type: ${context.currentNode.type}`);
847
+ }
848
+ }
849
+ function renderChildrenToText(children, context) {
850
+ return Array.isArray(children) ? children.map((node) => renderToText(node, context)).join("") : "";
851
+ }
852
+
853
+ // src/types.ts
854
+ function resolveLinkAttrConfig(entry) {
855
+ var _a;
856
+ return {
857
+ key: entry.key,
858
+ options: entry.options,
859
+ label: (_a = entry.label) != null ? _a : entry.key,
860
+ helpText: entry.helpText
861
+ };
862
+ }
675
863
  // Annotate the CommonJS export names for ESM import in node:
676
864
  0 && (module.exports = {
677
865
  assetHtmlRenderer,
@@ -679,6 +867,8 @@ var defaultParameterConfiguration = {
679
867
  emptyRichTextValue,
680
868
  getLabelForElement,
681
869
  getLabelForFormat,
870
+ getRichTextListItemValue,
871
+ getRichTextListStart,
682
872
  getRichTextTagFromTableCellHeaderState,
683
873
  getRichTextTagsFromTextFormat,
684
874
  hasChildren,
@@ -697,8 +887,10 @@ var defaultParameterConfiguration = {
697
887
  linkParamValueToHtmlAttributes,
698
888
  listHtmlRenderer,
699
889
  listitemHtmlRenderer,
890
+ omitDefaultRichTextProperties,
700
891
  paragraphHtmlRenderer,
701
892
  purifyText,
893
+ rehydrateDefaultRichTextProperties,
702
894
  renderChildrenToHtml,
703
895
  renderChildrenToText,
704
896
  renderHtmlElement,