@contember/react-client 1.1.0-beta.4 → 1.1.0-rc.12

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 (70) hide show
  1. package/dist/development/ContemberClient.js +23 -42
  2. package/dist/development/ContemberClient.js.map +1 -1
  3. package/dist/development/apiRequest/apiRequestReducer.js.map +1 -1
  4. package/dist/development/components/RichTextRenderer/ElementRenderer.js +4 -13
  5. package/dist/development/components/RichTextRenderer/ElementRenderer.js.map +1 -1
  6. package/dist/development/components/RichTextRenderer/LeafRenderer.js +12 -11
  7. package/dist/development/components/RichTextRenderer/LeafRenderer.js.map +1 -1
  8. package/dist/development/components/RichTextRenderer/RenderElementFallback.js +65 -113
  9. package/dist/development/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
  10. package/dist/development/components/RichTextRenderer/RenderLeafFallback.js +26 -38
  11. package/dist/development/components/RichTextRenderer/RenderLeafFallback.js.map +1 -1
  12. package/dist/development/components/RichTextRenderer/RichTextRenderer.js +55 -35
  13. package/dist/development/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
  14. package/dist/development/components/RichTextRenderer/renderChildren.js +22 -28
  15. package/dist/development/components/RichTextRenderer/renderChildren.js.map +1 -1
  16. package/dist/development/upload/fileUploadReducer.js.map +1 -1
  17. package/dist/production/ContemberClient.js +2 -20
  18. package/dist/production/ContemberClient.js.map +1 -1
  19. package/dist/production/apiRequest/apiRequestReducer.js.map +1 -1
  20. package/dist/production/components/RichTextRenderer/ElementRenderer.js +3 -11
  21. package/dist/production/components/RichTextRenderer/ElementRenderer.js.map +1 -1
  22. package/dist/production/components/RichTextRenderer/LeafRenderer.js +11 -9
  23. package/dist/production/components/RichTextRenderer/LeafRenderer.js.map +1 -1
  24. package/dist/production/components/RichTextRenderer/RenderElementFallback.js +34 -89
  25. package/dist/production/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
  26. package/dist/production/components/RichTextRenderer/RenderLeafFallback.js +13 -28
  27. package/dist/production/components/RichTextRenderer/RenderLeafFallback.js.map +1 -1
  28. package/dist/production/components/RichTextRenderer/RichTextRenderer.js +42 -32
  29. package/dist/production/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
  30. package/dist/production/components/RichTextRenderer/renderChildren.js +10 -19
  31. package/dist/production/components/RichTextRenderer/renderChildren.js.map +1 -1
  32. package/dist/production/upload/fileUploadReducer.js.map +1 -1
  33. package/dist/types/apiRequest/ApiRequestAction.d.ts +1 -1
  34. package/dist/types/apiRequest/ApiRequestAction.d.ts.map +1 -1
  35. package/dist/types/apiRequest/ApiRequestState.d.ts +1 -1
  36. package/dist/types/apiRequest/ApiRequestState.d.ts.map +1 -1
  37. package/dist/types/apiRequest/apiRequestReducer.d.ts +1 -1
  38. package/dist/types/apiRequest/apiRequestReducer.d.ts.map +1 -1
  39. package/dist/types/apiRequest/useApiRequest.d.ts +1 -1
  40. package/dist/types/apiRequest/useApiRequest.d.ts.map +1 -1
  41. package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts +1 -1
  42. package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts.map +1 -1
  43. package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts +1 -1
  44. package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts.map +1 -1
  45. package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts +1 -1
  46. package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts.map +1 -1
  47. package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts +1 -1
  48. package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts.map +1 -1
  49. package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts +2 -2
  50. package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts.map +1 -1
  51. package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts +1 -1
  52. package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts.map +1 -1
  53. package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts +1 -1
  54. package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts.map +1 -1
  55. package/dist/types/tsconfig.tsbuildinfo +1 -1
  56. package/dist/types/upload/FileId.d.ts +1 -1
  57. package/dist/types/upload/FileId.d.ts.map +1 -1
  58. package/dist/types/upload/FileUploadAction.d.ts +1 -1
  59. package/dist/types/upload/FileUploadAction.d.ts.map +1 -1
  60. package/dist/types/upload/FileUploadCompoundState.d.ts +1 -1
  61. package/dist/types/upload/FileUploadCompoundState.d.ts.map +1 -1
  62. package/dist/types/upload/FileUploadOperations.d.ts +4 -4
  63. package/dist/types/upload/FileUploadOperations.d.ts.map +1 -1
  64. package/dist/types/upload/SingleFileUploadState.d.ts +1 -1
  65. package/dist/types/upload/SingleFileUploadState.d.ts.map +1 -1
  66. package/dist/types/upload/useFileUpload.d.ts +1 -1
  67. package/dist/types/upload/useFileUpload.d.ts.map +1 -1
  68. package/package.json +11 -10
  69. package/src/components/RichTextRenderer/RichTextRenderer.tsx +1 -1
  70. package/LICENSE +0 -186
@@ -1,84 +1,72 @@
1
- import { Fragment as Fragment$1 } from "react";
2
1
  import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
3
- var _jsxFileName = "/__w/admin/admin/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx";
2
+ import { Fragment as Fragment$1 } from "react";
4
3
  function jsxN2br(text) {
5
4
  const lines = text.split("\n");
6
5
  if (lines.length <= 1) {
7
6
  return text;
8
7
  }
9
- return lines.map((line, i) => /* @__PURE__ */ jsxDEV(Fragment$1, {
10
- children: [!!i && /* @__PURE__ */ jsxDEV("br", {}, void 0, false, {
11
- fileName: _jsxFileName,
8
+ return lines.map((line, i) => /* @__PURE__ */ jsxDEV(Fragment$1, { children: [
9
+ !!i && /* @__PURE__ */ jsxDEV("br", {}, void 0, false, {
10
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
12
11
  lineNumber: 15,
13
12
  columnNumber: 12
14
- }, this), line]
15
- }, i, true, {
16
- fileName: _jsxFileName,
13
+ }, this),
14
+ line
15
+ ] }, i, true, {
16
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
17
17
  lineNumber: 14,
18
18
  columnNumber: 3
19
19
  }, this));
20
20
  }
21
- function RenderLeafFallback({
22
- leaf
23
- }) {
21
+ function RenderLeafFallback({ leaf }) {
24
22
  let element = jsxN2br(leaf.text);
25
23
  if ("isCode" in leaf && leaf.isCode === true) {
26
- element = /* @__PURE__ */ jsxDEV("code", {
27
- children: element
28
- }, void 0, false, {
29
- fileName: _jsxFileName,
24
+ element = /* @__PURE__ */ jsxDEV("code", { children: element }, void 0, false, {
25
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
30
26
  lineNumber: 25,
31
27
  columnNumber: 13
32
28
  }, this);
33
29
  }
34
30
  if ("isStruckThrough" in leaf && leaf.isStruckThrough === true) {
35
- element = /* @__PURE__ */ jsxDEV("s", {
36
- children: element
37
- }, void 0, false, {
38
- fileName: _jsxFileName,
31
+ element = /* @__PURE__ */ jsxDEV("s", { children: element }, void 0, false, {
32
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
39
33
  lineNumber: 28,
40
34
  columnNumber: 13
41
35
  }, this);
42
36
  }
43
37
  if ("isHighlighted" in leaf && leaf.isHighlighted === true) {
44
- element = /* @__PURE__ */ jsxDEV("em", {
45
- children: element
46
- }, void 0, false, {
47
- fileName: _jsxFileName,
38
+ element = /* @__PURE__ */ jsxDEV("em", { children: element }, void 0, false, {
39
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
48
40
  lineNumber: 31,
49
41
  columnNumber: 13
50
42
  }, this);
51
43
  }
52
44
  if ("isUnderlined" in leaf && leaf.isUnderlined === true) {
53
- element = /* @__PURE__ */ jsxDEV("u", {
54
- children: element
55
- }, void 0, false, {
56
- fileName: _jsxFileName,
45
+ element = /* @__PURE__ */ jsxDEV("u", { children: element }, void 0, false, {
46
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
57
47
  lineNumber: 34,
58
48
  columnNumber: 13
59
49
  }, this);
60
50
  }
61
51
  if ("isItalic" in leaf && leaf.isItalic === true) {
62
- element = /* @__PURE__ */ jsxDEV("i", {
63
- children: element
64
- }, void 0, false, {
65
- fileName: _jsxFileName,
52
+ element = /* @__PURE__ */ jsxDEV("i", { children: element }, void 0, false, {
53
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
66
54
  lineNumber: 37,
67
55
  columnNumber: 13
68
56
  }, this);
69
57
  }
70
58
  if ("isBold" in leaf && leaf.isBold === true) {
71
- element = /* @__PURE__ */ jsxDEV("b", {
72
- children: element
73
- }, void 0, false, {
74
- fileName: _jsxFileName,
59
+ element = /* @__PURE__ */ jsxDEV("b", { children: element }, void 0, false, {
60
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
75
61
  lineNumber: 40,
76
62
  columnNumber: 13
77
63
  }, this);
78
64
  }
79
- return /* @__PURE__ */ jsxDEV(Fragment, {
80
- children: element
81
- }, void 0, false);
65
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: element }, void 0, false, {
66
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RenderLeafFallback.tsx",
67
+ lineNumber: 42,
68
+ columnNumber: 9
69
+ }, this);
82
70
  }
83
71
  export {
84
72
  RenderLeafFallback
@@ -1 +1 @@
1
- {"version":3,"file":"RenderLeafFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderLeafFallback.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\n\nexport interface RenderLeafFallbackProps {\n\tleaf: BuiltinLeaves\n}\n\nfunction jsxN2br(text: string): ReactNode {\n\tconst lines = text.split('\\n')\n\tif (lines.length <= 1) {\n\t\treturn text\n\t}\n\treturn lines.map((line, i) => (\n\t\t<Fragment key={i}>\n\t\t\t{!!i && <br />}\n\t\t\t{line}\n\t\t</Fragment>\n\t))\n}\n\nexport function RenderLeafFallback({ leaf }: RenderLeafFallbackProps) {\n\tlet element = jsxN2br(leaf.text)\n\n\tif ('isCode' in leaf && leaf.isCode === true) {\n\t\telement = <code>{element}</code>\n\t}\n\tif ('isStruckThrough' in leaf && leaf.isStruckThrough === true) {\n\t\telement = <s>{element}</s>\n\t}\n\tif ('isHighlighted' in leaf && leaf.isHighlighted === true) {\n\t\telement = <em>{element}</em>\n\t}\n\tif ('isUnderlined' in leaf && leaf.isUnderlined === true) {\n\t\telement = <u>{element}</u>\n\t}\n\tif ('isItalic' in leaf && leaf.isItalic === true) {\n\t\telement = <i>{element}</i>\n\t}\n\tif ('isBold' in leaf && leaf.isBold === true) {\n\t\telement = <b>{element}</b>\n\t}\n\treturn <>{element}</>\n}\n"],"names":["jsxN2br","text","lines","split","length","map","line","i","Fragment","RenderLeafFallback","leaf","element","isCode","isStruckThrough","isHighlighted","isUnderlined","isItalic","isBold","_Fragment"],"mappings":";;;AAOA,SAASA,QAAQC,MAAyB;AACnCC,QAAAA,QAAQD,KAAKE,MAAM,IAAI;AACzBD,MAAAA,MAAME,UAAU,GAAG;AACfH,WAAAA;AAAAA,EACR;AACA,SAAOC,MAAMG,IAAI,CAACC,MAAMC,6BACtBC,YAAQ;AAAA,IAAA,UACP,CAAA,CAAC,CAACD,4BAAK,MAAA,CAAA,GAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAA,GAAA,IAAA,GACPD,IAAI;AAAA,EAAA,GAFSC,GAAC,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAAA,CAIhB;AACF;AAEO,SAASE,mBAAmB;AAAA,EAAEC;AAA8B,GAAG;AACjEC,MAAAA,UAAUX,QAAQU,KAAKT,IAAI;AAE/B,MAAI,YAAYS,QAAQA,KAAKE,WAAW,MAAM;AAC7CD,qCAAU,QAAA;AAAA,MAAA,UAAOA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAQ,IAAA;AAAA,EACjC;AACA,MAAI,qBAAqBD,QAAQA,KAAKG,oBAAoB,MAAM;AAC/DF,qCAAU,KAAA;AAAA,MAAA,UAAIA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAK,IAAA;AAAA,EAC3B;AACA,MAAI,mBAAmBD,QAAQA,KAAKI,kBAAkB,MAAM;AAC3DH,qCAAU,MAAA;AAAA,MAAA,UAAKA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAM,IAAA;AAAA,EAC7B;AACA,MAAI,kBAAkBD,QAAQA,KAAKK,iBAAiB,MAAM;AACzDJ,qCAAU,KAAA;AAAA,MAAA,UAAIA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAK,IAAA;AAAA,EAC3B;AACA,MAAI,cAAcD,QAAQA,KAAKM,aAAa,MAAM;AACjDL,qCAAU,KAAA;AAAA,MAAA,UAAIA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAK,IAAA;AAAA,EAC3B;AACA,MAAI,YAAYD,QAAQA,KAAKO,WAAW,MAAM;AAC7CN,qCAAU,KAAA;AAAA,MAAA,UAAIA;AAAAA,IAAAA,GAAO,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,OAAK,IAAA;AAAA,EAC3B;AACA,gCAAOO,UAAA;AAAA,IAAA,UAAGP;AAAAA,EAAAA,GAAW,QAAA,KAAA;AACtB;"}
1
+ {"version":3,"file":"RenderLeafFallback.js","sources":["../../../../src/components/RichTextRenderer/RenderLeafFallback.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\n\nexport interface RenderLeafFallbackProps {\n\tleaf: BuiltinLeaves\n}\n\nfunction jsxN2br(text: string): ReactNode {\n\tconst lines = text.split('\\n')\n\tif (lines.length <= 1) {\n\t\treturn text\n\t}\n\treturn lines.map((line, i) => (\n\t\t<Fragment key={i}>\n\t\t\t{!!i && <br />}\n\t\t\t{line}\n\t\t</Fragment>\n\t))\n}\n\nexport function RenderLeafFallback({ leaf }: RenderLeafFallbackProps) {\n\tlet element = jsxN2br(leaf.text)\n\n\tif ('isCode' in leaf && leaf.isCode === true) {\n\t\telement = <code>{element}</code>\n\t}\n\tif ('isStruckThrough' in leaf && leaf.isStruckThrough === true) {\n\t\telement = <s>{element}</s>\n\t}\n\tif ('isHighlighted' in leaf && leaf.isHighlighted === true) {\n\t\telement = <em>{element}</em>\n\t}\n\tif ('isUnderlined' in leaf && leaf.isUnderlined === true) {\n\t\telement = <u>{element}</u>\n\t}\n\tif ('isItalic' in leaf && leaf.isItalic === true) {\n\t\telement = <i>{element}</i>\n\t}\n\tif ('isBold' in leaf && leaf.isBold === true) {\n\t\telement = <b>{element}</b>\n\t}\n\treturn <>{element}</>\n}\n"],"names":["Fragment"],"mappings":";;AAOA,SAAS,QAAQ,MAAyB;AACnC,QAAA,QAAQ,KAAK,MAAM,IAAI;AACzB,MAAA,MAAM,UAAU,GAAG;AACf,WAAA;AAAA,EACR;AACA,SAAO,MAAM,IAAI,CAAC,MAAM,MACvB,uBAACA,YAAA,EACC,UAAA;AAAA,IAAC,CAAA,CAAC,KAAK,uBAAC,MAAD,CAAA,GAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAI,GAAA,IAAA;AAAA,IACX;AAAA,EAAA,EAAA,GAFa,GAAf,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAA,IAGA,CACA;AACF;AAEgB,SAAA,mBAAmB,EAAE,QAAiC;AACjE,MAAA,UAAU,QAAQ,KAAK,IAAI;AAE/B,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,uBAAC,UAAM,UAAP,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAe,GAAA,IAAA;AAAA,EAC1B;AACA,MAAI,qBAAqB,QAAQ,KAAK,oBAAoB,MAAM;AACrD,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,mBAAmB,QAAQ,KAAK,kBAAkB,MAAM;AACjD,cAAA,uBAAC,QAAI,UAAL,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAa,GAAA,IAAA;AAAA,EACxB;AACA,MAAI,kBAAkB,QAAQ,KAAK,iBAAiB,MAAM;AAC/C,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,cAAc,QAAQ,KAAK,aAAa,MAAM;AACvC,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,MAAI,YAAY,QAAQ,KAAK,WAAW,MAAM;AACnC,cAAA,uBAAC,OAAG,UAAJ,WAAA,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAY,GAAA,IAAA;AAAA,EACvB;AACA,4CAAU,UAAH,WAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAW,GAAA,IAAA;AACnB;"}
@@ -1,50 +1,55 @@
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
1
2
  import { memo, useMemo, createElement } from "react";
2
3
  import { defaultDeserialize } from "./defaultDeserialize.js";
3
4
  import { renderChildren } from "./renderChildren.js";
4
5
  import { RichTextRendererError } from "./RichTextRendererError.js";
5
6
  import { RichTextRenderMetadataContext } from "./RichTextRenderMetadataContext.js";
6
- import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
7
- var _jsxFileName = "/__w/admin/admin/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx";
8
7
  const RichTextRenderer = memo(function RichTextRenderer2({
9
8
  deserialize = defaultDeserialize,
10
9
  renderElement,
11
10
  renderLeaf,
12
- renderBlock = ({
13
- children
14
- }) => /* @__PURE__ */ jsxDEV(Fragment, {
15
- children
16
- }, void 0, false),
11
+ renderBlock = ({ children }) => /* @__PURE__ */ jsxDEV(Fragment, { children }, void 0, false, {
12
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
13
+ lineNumber: 49,
14
+ columnNumber: 34
15
+ }, this),
17
16
  attributeNamePrefix,
18
17
  ...sourceProps
19
18
  }) {
20
19
  const normalizedSource = useMemo(() => {
21
20
  if ("source" in sourceProps && !("blocks" in sourceProps)) {
22
- return [{
23
- content: sourceProps.source ? deserialize(sourceProps.source) : {
24
- formatVersion: 0,
25
- children: []
26
- },
27
- id: void 0,
28
- referencesField: void 0,
29
- referenceDiscriminationField: void 0,
30
- referenceRenderers: {},
31
- references: void 0
32
- }];
21
+ return [
22
+ {
23
+ content: sourceProps.source ? deserialize(sourceProps.source) : {
24
+ formatVersion: 0,
25
+ children: []
26
+ },
27
+ id: void 0,
28
+ referencesField: void 0,
29
+ referenceDiscriminationField: void 0,
30
+ referenceRenderers: {},
31
+ references: void 0
32
+ }
33
+ ];
33
34
  }
34
- if ("blocks" in sourceProps) {
35
+ if (!("source" in sourceProps)) {
35
36
  const sourceField = sourceProps.sourceField ?? "source";
36
37
  const referencesField = sourceProps.referencesField ?? "references";
37
38
  const referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? "type";
38
39
  return sourceProps.blocks.map((block) => {
39
40
  if (!(sourceField in block)) {
40
- throw new RichTextRendererError(`Found a block without a '${sourceField}' field. ` + (sourceProps.sourceField === void 0 ? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.` : `That is what the 'sourceField' prop has been set to, and so either this is a typo, or the data supplied is invalid.`));
41
+ throw new RichTextRendererError(
42
+ `Found a block without a '${sourceField}' field. ` + (sourceProps.sourceField === void 0 ? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.` : `That is what the 'sourceField' prop has been set to, and so either this is a typo, or the data supplied is invalid.`)
43
+ );
41
44
  }
42
45
  const source = block[sourceField];
43
46
  if (typeof source !== "string") {
44
47
  throw new RichTextRendererError(`Found a block whose source is not a string.`);
45
48
  }
46
49
  if (sourceProps.referencesField !== void 0 && !(referencesField in block)) {
47
- throw new RichTextRendererError(`The 'referencesField' prop is set to '${referencesField}' but a block without such field has been encountered. Unless this is just a typo, if you do not wish to use references, avoid supplying the 'referencesField' prop.`);
50
+ throw new RichTextRendererError(
51
+ `The 'referencesField' prop is set to '${referencesField}' but a block without such field has been encountered. Unless this is just a typo, if you do not wish to use references, avoid supplying the 'referencesField' prop.`
52
+ );
48
53
  }
49
54
  const references = block[referencesField];
50
55
  let normalizedReferences = void 0;
@@ -58,7 +63,9 @@ const RichTextRenderer = memo(function RichTextRenderer2({
58
63
  throw new RichTextRendererError(`Found a reference without an id field.`);
59
64
  }
60
65
  if (!(referenceDiscriminationField in reference)) {
61
- throw new RichTextRendererError(`Found a reference without a '${referenceDiscriminationField}' field. ` + (sourceProps.referenceDiscriminationField === void 0 ? `The 'referenceDiscriminationField' prop has not been supplied, and so '${referenceDiscriminationField}' was used as a default.` : `That is what the 'referenceDiscriminationField' prop has been set to, and so either this is a typo, or the data supplied is invalid.`));
66
+ throw new RichTextRendererError(
67
+ `Found a reference without a '${referenceDiscriminationField}' field. ` + (sourceProps.referenceDiscriminationField === void 0 ? `The 'referenceDiscriminationField' prop has not been supplied, and so '${referenceDiscriminationField}' was used as a default.` : `That is what the 'referenceDiscriminationField' prop has been set to, and so either this is a typo, or the data supplied is invalid.`)
68
+ );
62
69
  }
63
70
  normalizedReferences.set(reference.id, reference);
64
71
  }
@@ -75,8 +82,9 @@ const RichTextRenderer = memo(function RichTextRenderer2({
75
82
  }
76
83
  throw new RichTextRendererError(`RichTextRenderer: invalid data supplied.`);
77
84
  }, [deserialize, sourceProps]);
78
- return /* @__PURE__ */ jsxDEV(Fragment, {
79
- children: normalizedSource.map((block, i) => /* @__PURE__ */ jsxDEV(RichTextRenderMetadataContext.Provider, {
85
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: normalizedSource.map((block, i) => /* @__PURE__ */ jsxDEV(
86
+ RichTextRenderMetadataContext.Provider,
87
+ {
80
88
  value: {
81
89
  formatVersion: block.content.formatVersion,
82
90
  referenceRenderers: block.referenceRenderers,
@@ -84,19 +92,31 @@ const RichTextRenderer = memo(function RichTextRenderer2({
84
92
  referenceDiscriminationField: block.referenceDiscriminationField,
85
93
  references: block.references
86
94
  },
87
- children: createElement(renderBlock, {
88
- block
89
- }, renderChildren(block.content.children, {
90
- renderLeaf,
91
- renderElement,
92
- attributeNamePrefix
93
- }))
94
- }, block.id ?? i, false, {
95
- fileName: _jsxFileName,
95
+ children: createElement(
96
+ renderBlock,
97
+ {
98
+ block
99
+ },
100
+ renderChildren(block.content.children, {
101
+ renderLeaf,
102
+ renderElement,
103
+ attributeNamePrefix
104
+ })
105
+ )
106
+ },
107
+ block.id ?? i,
108
+ false,
109
+ {
110
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
96
111
  lineNumber: 140,
97
112
  columnNumber: 5
98
- }, this))
99
- }, void 0, false);
113
+ },
114
+ this
115
+ )) }, void 0, false, {
116
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/RichTextRenderer.tsx",
117
+ lineNumber: 138,
118
+ columnNumber: 3
119
+ }, this);
100
120
  });
101
121
  export {
102
122
  RichTextRenderer
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextRenderer.js","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"sourcesContent":["import { ComponentType, createElement, memo, ReactElement, ReactNode, useMemo } from 'react'\nimport { defaultDeserialize } from './defaultDeserialize'\nimport type { RenderElement } from './ElementRenderer'\nimport type { RenderLeaf } from './LeafRenderer'\nimport type { NormalizedRichTextBlock } from './NormalizedRichTextBlock'\nimport type { ReferenceRenderer } from './ReferenceRenderer'\nimport { renderChildren } from './renderChildren'\nimport type { RichTextBlock } from './RichTextBlock'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { RichTextRenderMetadataContext } from './RichTextRenderMetadataContext'\nimport type { RootEditorNode } from './RootEditorNode'\n\nexport interface RichTextRendererFieldProps {\n\tsource: string | null\n}\n\nexport interface RichTextRendererBlockProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\tblocks: RichTextBlock[]\n\treferenceRenderers?: Record<string, ReferenceRenderer<any, CustomElements, CustomLeaves>>\n\tsourceField?: string\n\treferencesField?: string\n\treferenceDiscriminationField?: string\n}\n\nexport type RichTextRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> = {\n\tdeserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n\trenderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>\n} & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)\n\nexport const RichTextRenderer = memo(function RichTextRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({\n\tdeserialize = defaultDeserialize,\n\trenderElement,\n\trenderLeaf,\n\trenderBlock = ({ children }) => <>{children}</>,\n\tattributeNamePrefix,\n\t...sourceProps\n}: RichTextRendererProps<CustomElements, CustomLeaves>) {\n\tconst normalizedSource = useMemo<NormalizedRichTextBlock<CustomElements, CustomLeaves>[]>(() => {\n\t\tif ('source' in sourceProps && !('blocks' in sourceProps)) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: sourceProps.source\n\t\t\t\t\t\t? deserialize(sourceProps.source)\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tformatVersion: 0,\n\t\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t },\n\t\t\t\t\tid: undefined,\n\t\t\t\t\treferencesField: undefined,\n\t\t\t\t\treferenceDiscriminationField: undefined,\n\t\t\t\t\treferenceRenderers: {},\n\t\t\t\t\treferences: undefined,\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\t\tif ('blocks' in sourceProps) {\n\t\t\tconst sourceField = sourceProps.sourceField ?? 'source'\n\t\t\tconst referencesField = sourceProps.referencesField ?? 'references'\n\t\t\tconst referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? 'type'\n\n\t\t\treturn sourceProps.blocks.map(block => {\n\t\t\t\tif (!(sourceField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`Found a block without a '${sourceField}' field. ` +\n\t\t\t\t\t\t\t(sourceProps.sourceField === undefined\n\t\t\t\t\t\t\t\t? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.`\n\t\t\t\t\t\t\t\t: `That is what the 'sourceField' prop has been set to, and so either this is a typo, ` +\n\t\t\t\t\t\t\t\t `or the data supplied is invalid.`),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst source = block[sourceField]\n\t\t\t\tif (typeof source !== 'string') {\n\t\t\t\t\tthrow new RichTextRendererError(`Found a block whose source is not a string.`)\n\t\t\t\t}\n\n\t\t\t\tif (sourceProps.referencesField !== undefined && !(referencesField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`The 'referencesField' prop is set to '${referencesField}' but a block without such field ` +\n\t\t\t\t\t\t\t`has been encountered. Unless this is just a typo, ` +\n\t\t\t\t\t\t\t`if you do not wish to use references, avoid supplying the 'referencesField' prop.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst references = block[referencesField]\n\n\t\t\t\tlet normalizedReferences: Map<string, RichTextReference> | undefined = undefined\n\t\t\t\tif (references) {\n\t\t\t\t\tif (typeof Object(references)[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new RichTextRendererError(`The set of references must be an iterable!`)\n\t\t\t\t\t}\n\n\t\t\t\t\tnormalizedReferences = new Map()\n\t\t\t\t\tfor (const reference of references as Iterable<RichTextReference>) {\n\t\t\t\t\t\tif (!('id' in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(`Found a reference without an id field.`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!(referenceDiscriminationField in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t\t\t`Found a reference without a '${referenceDiscriminationField}' field. ` +\n\t\t\t\t\t\t\t\t\t(sourceProps.referenceDiscriminationField === undefined\n\t\t\t\t\t\t\t\t\t\t? `The 'referenceDiscriminationField' prop has not been supplied, ` +\n\t\t\t\t\t\t\t\t\t\t `and so '${referenceDiscriminationField}' was used as a default.`\n\t\t\t\t\t\t\t\t\t\t: `That is what the 'referenceDiscriminationField' prop has been set to, ` +\n\t\t\t\t\t\t\t\t\t\t `and so either this is a typo, or the data supplied is invalid.`),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnormalizedReferences.set(reference.id, reference)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: typeof block.id === 'string' ? block.id : undefined,\n\t\t\t\t\tcontent: deserialize(source),\n\t\t\t\t\treferenceDiscriminationField,\n\t\t\t\t\treferenceRenderers: sourceProps.referenceRenderers ?? {},\n\t\t\t\t\treferencesField,\n\t\t\t\t\treferences: normalizedReferences,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthrow new RichTextRendererError(`RichTextRenderer: invalid data supplied.`)\n\t}, [deserialize, sourceProps])\n\n\treturn (\n\t\t<>\n\t\t\t{normalizedSource.map((block, i) => (\n\t\t\t\t<RichTextRenderMetadataContext.Provider\n\t\t\t\t\tkey={block.id ?? i}\n\t\t\t\t\tvalue={{\n\t\t\t\t\t\tformatVersion: block.content.formatVersion,\n\t\t\t\t\t\treferenceRenderers: block.referenceRenderers,\n\t\t\t\t\t\treferencesField: block.referencesField,\n\t\t\t\t\t\treferenceDiscriminationField: block.referenceDiscriminationField,\n\t\t\t\t\t\treferences: block.references,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{createElement(\n\t\t\t\t\t\trenderBlock, {\n\t\t\t\t\t\t\tblock,\n\t\t\t\t\t\t}, renderChildren(block.content.children, {\n\t\t\t\t\t\t\trenderLeaf,\n\t\t\t\t\t\t\trenderElement,\n\t\t\t\t\t\t\tattributeNamePrefix,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)}\n\t\t\t\t</RichTextRenderMetadataContext.Provider>\n\t\t\t))}\n\t\t</>\n\t)\n}) as <CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never>(\n\tprops: RichTextRendererProps<CustomElements, CustomLeaves>,\n) => ReactElement\n"],"names":["RichTextRenderer","memo","deserialize","defaultDeserialize","renderElement","renderLeaf","renderBlock","children","_Fragment","attributeNamePrefix","sourceProps","normalizedSource","useMemo","content","source","formatVersion","id","undefined","referencesField","referenceDiscriminationField","referenceRenderers","references","sourceField","blocks","map","block","RichTextRendererError","normalizedReferences","Object","Symbol","iterator","Map","reference","set","i","_jsxDEV","createElement","renderChildren"],"mappings":"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"}
1
+ {"version":3,"file":"RichTextRenderer.js","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"sourcesContent":["import { ComponentType, createElement, memo, ReactElement, ReactNode, useMemo } from 'react'\nimport { defaultDeserialize } from './defaultDeserialize'\nimport type { RenderElement } from './ElementRenderer'\nimport type { RenderLeaf } from './LeafRenderer'\nimport type { NormalizedRichTextBlock } from './NormalizedRichTextBlock'\nimport type { ReferenceRenderer } from './ReferenceRenderer'\nimport { renderChildren } from './renderChildren'\nimport type { RichTextBlock } from './RichTextBlock'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { RichTextRendererError } from './RichTextRendererError'\nimport { RichTextRenderMetadataContext } from './RichTextRenderMetadataContext'\nimport type { RootEditorNode } from './RootEditorNode'\n\nexport interface RichTextRendererFieldProps {\n\tsource: string | null\n}\n\nexport interface RichTextRendererBlockProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\tblocks: RichTextBlock[]\n\treferenceRenderers?: Record<string, ReferenceRenderer<any, CustomElements, CustomLeaves>>\n\tsourceField?: string\n\treferencesField?: string\n\treferenceDiscriminationField?: string\n}\n\nexport type RichTextRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> = {\n\tdeserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n\trenderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>\n} & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)\n\nexport const RichTextRenderer = memo(function RichTextRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({\n\tdeserialize = defaultDeserialize,\n\trenderElement,\n\trenderLeaf,\n\trenderBlock = ({ children }) => <>{children}</>,\n\tattributeNamePrefix,\n\t...sourceProps\n}: RichTextRendererProps<CustomElements, CustomLeaves>) {\n\tconst normalizedSource = useMemo<NormalizedRichTextBlock<CustomElements, CustomLeaves>[]>(() => {\n\t\tif ('source' in sourceProps && !('blocks' in sourceProps)) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tcontent: sourceProps.source\n\t\t\t\t\t\t? deserialize(sourceProps.source)\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tformatVersion: 0,\n\t\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t },\n\t\t\t\t\tid: undefined,\n\t\t\t\t\treferencesField: undefined,\n\t\t\t\t\treferenceDiscriminationField: undefined,\n\t\t\t\t\treferenceRenderers: {},\n\t\t\t\t\treferences: undefined,\n\t\t\t\t},\n\t\t\t]\n\t\t}\n\t\tif (!('source' in sourceProps)) {\n\t\t\tconst sourceField = sourceProps.sourceField ?? 'source'\n\t\t\tconst referencesField = sourceProps.referencesField ?? 'references'\n\t\t\tconst referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? 'type'\n\n\t\t\treturn sourceProps.blocks.map(block => {\n\t\t\t\tif (!(sourceField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`Found a block without a '${sourceField}' field. ` +\n\t\t\t\t\t\t\t(sourceProps.sourceField === undefined\n\t\t\t\t\t\t\t\t? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.`\n\t\t\t\t\t\t\t\t: `That is what the 'sourceField' prop has been set to, and so either this is a typo, ` +\n\t\t\t\t\t\t\t\t `or the data supplied is invalid.`),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst source = block[sourceField]\n\t\t\t\tif (typeof source !== 'string') {\n\t\t\t\t\tthrow new RichTextRendererError(`Found a block whose source is not a string.`)\n\t\t\t\t}\n\n\t\t\t\tif (sourceProps.referencesField !== undefined && !(referencesField in block)) {\n\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t`The 'referencesField' prop is set to '${referencesField}' but a block without such field ` +\n\t\t\t\t\t\t\t`has been encountered. Unless this is just a typo, ` +\n\t\t\t\t\t\t\t`if you do not wish to use references, avoid supplying the 'referencesField' prop.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tconst references = block[referencesField]\n\n\t\t\t\tlet normalizedReferences: Map<string, RichTextReference> | undefined = undefined\n\t\t\t\tif (references) {\n\t\t\t\t\tif (typeof Object(references)[Symbol.iterator] !== 'function') {\n\t\t\t\t\t\tthrow new RichTextRendererError(`The set of references must be an iterable!`)\n\t\t\t\t\t}\n\n\t\t\t\t\tnormalizedReferences = new Map()\n\t\t\t\t\tfor (const reference of references as Iterable<RichTextReference>) {\n\t\t\t\t\t\tif (!('id' in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(`Found a reference without an id field.`)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!(referenceDiscriminationField in reference)) {\n\t\t\t\t\t\t\tthrow new RichTextRendererError(\n\t\t\t\t\t\t\t\t`Found a reference without a '${referenceDiscriminationField}' field. ` +\n\t\t\t\t\t\t\t\t\t(sourceProps.referenceDiscriminationField === undefined\n\t\t\t\t\t\t\t\t\t\t? `The 'referenceDiscriminationField' prop has not been supplied, ` +\n\t\t\t\t\t\t\t\t\t\t `and so '${referenceDiscriminationField}' was used as a default.`\n\t\t\t\t\t\t\t\t\t\t: `That is what the 'referenceDiscriminationField' prop has been set to, ` +\n\t\t\t\t\t\t\t\t\t\t `and so either this is a typo, or the data supplied is invalid.`),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnormalizedReferences.set(reference.id, reference)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: typeof block.id === 'string' ? block.id : undefined,\n\t\t\t\t\tcontent: deserialize(source),\n\t\t\t\t\treferenceDiscriminationField,\n\t\t\t\t\treferenceRenderers: sourceProps.referenceRenderers ?? {},\n\t\t\t\t\treferencesField,\n\t\t\t\t\treferences: normalizedReferences,\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\t\tthrow new RichTextRendererError(`RichTextRenderer: invalid data supplied.`)\n\t}, [deserialize, sourceProps])\n\n\treturn (\n\t\t<>\n\t\t\t{normalizedSource.map((block, i) => (\n\t\t\t\t<RichTextRenderMetadataContext.Provider\n\t\t\t\t\tkey={block.id ?? i}\n\t\t\t\t\tvalue={{\n\t\t\t\t\t\tformatVersion: block.content.formatVersion,\n\t\t\t\t\t\treferenceRenderers: block.referenceRenderers,\n\t\t\t\t\t\treferencesField: block.referencesField,\n\t\t\t\t\t\treferenceDiscriminationField: block.referenceDiscriminationField,\n\t\t\t\t\t\treferences: block.references,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{createElement(\n\t\t\t\t\t\trenderBlock, {\n\t\t\t\t\t\t\tblock,\n\t\t\t\t\t\t}, renderChildren(block.content.children, {\n\t\t\t\t\t\t\trenderLeaf,\n\t\t\t\t\t\t\trenderElement,\n\t\t\t\t\t\t\tattributeNamePrefix,\n\t\t\t\t\t\t}),\n\t\t\t\t\t)}\n\t\t\t\t</RichTextRenderMetadataContext.Provider>\n\t\t\t))}\n\t\t</>\n\t)\n}) as <CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never>(\n\tprops: RichTextRendererProps<CustomElements, CustomLeaves>,\n) => ReactElement\n"],"names":["RichTextRenderer"],"mappings":"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"}
@@ -1,37 +1,31 @@
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
1
2
  import { ElementRenderer } from "./ElementRenderer.js";
2
3
  import { LeafRenderer } from "./LeafRenderer.js";
3
- import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
4
- var _jsxFileName = "/__w/admin/admin/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx";
5
4
  const renderChildren = (children, options) => {
6
5
  if (!Array.isArray(children)) {
7
6
  children = [children];
8
7
  }
9
- return /* @__PURE__ */ jsxDEV(Fragment, {
10
- children: children.map((child, i) => {
11
- if ("text" in child) {
12
- return /* @__PURE__ */ jsxDEV(LeafRenderer, {
13
- leaf: child,
14
- renderLeaf: options.renderLeaf
15
- }, i, false, {
16
- fileName: _jsxFileName,
17
- lineNumber: 37,
18
- columnNumber: 13
19
- }, void 0);
20
- }
21
- if ("children" in child) {
22
- return /* @__PURE__ */ jsxDEV(ElementRenderer, {
23
- element: child,
24
- options,
25
- children: renderChildren(child.children, options)
26
- }, i, false, {
27
- fileName: _jsxFileName,
28
- lineNumber: 41,
29
- columnNumber: 7
30
- }, void 0);
31
- }
32
- return null;
33
- })
34
- }, void 0, false);
8
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: children.map((child, i) => {
9
+ if ("text" in child) {
10
+ return /* @__PURE__ */ jsxDEV(LeafRenderer, { leaf: child, renderLeaf: options.renderLeaf }, i, false, {
11
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
12
+ lineNumber: 37,
13
+ columnNumber: 13
14
+ }, globalThis);
15
+ }
16
+ if ("children" in child) {
17
+ return /* @__PURE__ */ jsxDEV(ElementRenderer, { element: child, options, children: renderChildren(child.children, options) }, i, false, {
18
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
19
+ lineNumber: 41,
20
+ columnNumber: 7
21
+ }, globalThis);
22
+ }
23
+ return null;
24
+ }) }, void 0, false, {
25
+ fileName: "/__w/interface/interface/packages/react-client/src/components/RichTextRenderer/renderChildren.tsx",
26
+ lineNumber: 34,
27
+ columnNumber: 3
28
+ }, globalThis);
35
29
  };
36
30
  export {
37
31
  renderChildren
@@ -1 +1 @@
1
- {"version":3,"file":"renderChildren.js","sources":["../../../../src/components/RichTextRenderer/renderChildren.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { ElementRenderer, RenderElement } from './ElementRenderer'\nimport { LeafRenderer, RenderLeaf } from './LeafRenderer'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\n\nexport interface RenderChildrenOptions<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n}\n\nexport const renderChildren = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\tchildren:\n\t\t| CustomElements\n\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t| CustomLeaves\n\t\t| BuiltinLeaves\n\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n): ReactElement => {\n\tif (!Array.isArray(children)) {\n\t\tchildren = [children]\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children.map((child, i) => {\n\t\t\t\tif ('text' in child) {\n\t\t\t\t\treturn <LeafRenderer<CustomLeaves> key={i} leaf={child} renderLeaf={options.renderLeaf} />\n\t\t\t\t}\n\t\t\t\tif ('children' in child) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ElementRenderer<CustomElements, CustomLeaves> key={i} element={child} options={options}>\n\t\t\t\t\t\t\t{renderChildren<CustomElements, CustomLeaves>(child.children as typeof children, options)}\n\t\t\t\t\t\t</ElementRenderer>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn null // Throw?\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":["renderChildren","children","options","Array","isArray","_Fragment","map","child","i","renderLeaf"],"mappings":";;;;AAiBaA,MAAAA,iBAAiB,CAI7BC,UAMAC,YACkB;AAClB,MAAI,CAACC,MAAMC,QAAQH,QAAQ,GAAG;AAC7BA,eAAW,CAACA,QAAQ;AAAA,EACrB;AACA,gCACCI,UAAA;AAAA,IAAA,UACEJ,SAASK,IAAI,CAACC,OAAOC,MAAM;AAC3B,UAAI,UAAUD,OAAO;AACpB,sCAAQ,cAAY;AAAA,UAAuB,MAAMA;AAAAA,UAAO,YAAYL,QAAQO;AAAAA,QAAAA,GAApCD,GAAC,OAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAAiD,MAAA;AAAA,MAC3F;AACA,UAAI,cAAcD,OAAO;AACxB,sCACE,iBAAe;AAAA,UAAuC,SAASA;AAAAA,UAAO;AAAA,UAAiB,UACtFP,eAA6CO,MAAMN,UAA6BC,OAAO;AAAA,QAAA,GADrCM,GAAC,OAAA;AAAA,UAAA,UAAA;AAAA,UAAA,YAAA;AAAA,UAAA,cAAA;AAAA,QAAA,GAEnC,MAAA;AAAA,MAEpB;AACO,aAAA;AAAA,IAAA,CACP;AAAA,EAAA,GACC,QAAA,KAAA;AAEL;"}
1
+ {"version":3,"file":"renderChildren.js","sources":["../../../../src/components/RichTextRenderer/renderChildren.tsx"],"sourcesContent":["import type { ReactElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport { ElementRenderer, RenderElement } from './ElementRenderer'\nimport { LeafRenderer, RenderLeaf } from './LeafRenderer'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextLeaf } from './RichTextLeaf'\n\nexport interface RenderChildrenOptions<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\trenderElement?: RenderElement<CustomElements, CustomLeaves>\n\trenderLeaf?: RenderLeaf<CustomLeaves>\n\tattributeNamePrefix?: string\n}\n\nexport const renderChildren = <\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>(\n\tchildren:\n\t\t| CustomElements\n\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t| CustomLeaves\n\t\t| BuiltinLeaves\n\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n): ReactElement => {\n\tif (!Array.isArray(children)) {\n\t\tchildren = [children]\n\t}\n\treturn (\n\t\t<>\n\t\t\t{children.map((child, i) => {\n\t\t\t\tif ('text' in child) {\n\t\t\t\t\treturn <LeafRenderer<CustomLeaves> key={i} leaf={child} renderLeaf={options.renderLeaf} />\n\t\t\t\t}\n\t\t\t\tif ('children' in child) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ElementRenderer<CustomElements, CustomLeaves> key={i} element={child} options={options}>\n\t\t\t\t\t\t\t{renderChildren<CustomElements, CustomLeaves>(child.children as typeof children, options)}\n\t\t\t\t\t\t</ElementRenderer>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\treturn null // Throw?\n\t\t\t})}\n\t\t</>\n\t)\n}\n"],"names":["this"],"mappings":";;;AAiBa,MAAA,iBAAiB,CAI7B,UAMA,YACkB;AAClB,MAAI,CAAC,MAAM,QAAQ,QAAQ,GAAG;AAC7B,eAAW,CAAC,QAAQ;AAAA,EACrB;AACA,SAEG,uBAAA,UAAA,EAAA,UAAA,SAAS,IAAI,CAAC,OAAO,MAAM;AAC3B,QAAI,UAAU,OAAO;AACpB,oCAAQ,cAAmC,EAAA,MAAM,OAAO,YAAY,QAAQ,cAApC,GAAjC,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAAiF,GAAAA,UAAA;AAAA,IACzF;AACA,QAAI,cAAc,OAAO;AAEvB,aAAA,uBAAC,iBAAsD,EAAA,SAAS,OAAO,SACrE,yBAA6C,MAAM,UAA6B,OAAO,EAAA,GADrC,GAApD,OAAA;AAAA,QAAA,UAAA;AAAA,QAAA,YAAA;AAAA,QAAA,cAAA;AAAA,MAEA,GAAAA,UAAA;AAAA,IAEF;AACO,WAAA;AAAA,EAAA,CACP,EAbF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAcA,GAAAA,UAAA;AAEF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileUploadReducer.js","sources":["../../../src/upload/fileUploadReducer.ts"],"sourcesContent":["import { FileUploadError } from '@contember/client'\nimport { assertNever } from '../utils'\nimport type { FileId } from './FileId'\nimport type { FileUploadAction } from './FileUploadAction'\nimport type { FileUploadMultiTemporalState } from './FileUploadMultiTemporalState'\nimport { toFileId } from './toFileId'\n\nexport const initializeFileUploadState = <Result = unknown, Metadata = undefined>(): FileUploadMultiTemporalState<\n\tResult,\n\tMetadata\n> => ({\n\tlastUpdateTime: 0,\n\tfileIdByFile: new WeakMap<File, FileId>(),\n\tliveState: new Map(),\n\tpublicState: new Map(),\n\tisLiveStateDirty: false,\n})\n\nexport const fileUploadReducer = <Result = unknown, Metadata = undefined>(\n\tpreviousState: FileUploadMultiTemporalState<Result, Metadata>,\n\taction: FileUploadAction<Result, Metadata>,\n): FileUploadMultiTemporalState<Result, Metadata> => {\n\tconst publishNewState = (): FileUploadMultiTemporalState<Result, Metadata> => ({\n\t\tpublicState: previousState.liveState,\n\t\tfileIdByFile: previousState.fileIdByFile,\n\t\tlastUpdateTime: previousState.lastUpdateTime,\n\t\tisLiveStateDirty: false,\n\n\t\t// Immediately make the live state referentially unequal so that this doesn't have to happen during each action\n\t\t// several times between two publishes.\n\t\tliveState: new Map(previousState.liveState),\n\t})\n\tconst getNewDirtyState = (): FileUploadMultiTemporalState<Result, Metadata> => ({\n\t\tfileIdByFile: previousState.fileIdByFile,\n\t\tliveState: previousState.liveState,\n\t\tpublicState: previousState.publicState,\n\t\tisLiveStateDirty: true,\n\t\tlastUpdateTime: Date.now(),\n\t})\n\tswitch (action.type) {\n\t\tcase 'publishNewestState': {\n\t\t\treturn publishNewState()\n\t\t}\n\t\tcase 'initialize': {\n\t\t\tfor (const [fileId, metadata] of action.files) {\n\t\t\t\t// Deliberately allowing starting a new upload with the same id\n\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'initializing',\n\t\t\t\t\tabortController: metadata.abortController,\n\t\t\t\t\tpreviewUrl: metadata.previewUrl,\n\t\t\t\t\tfile: metadata.file,\n\t\t\t\t})\n\t\t\t\tpreviousState.fileIdByFile.set(metadata.file, fileId)\n\t\t\t}\n\t\t\treturn publishNewState() /* Making the feedback about new files immediate*/\n\t\t}\n\t\tcase 'startUploading': {\n\t\t\tfor (const [fileOrId, metadata] of action.files) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst fileState = previousState.liveState.get(fileId)\n\n\t\t\t\tif (fileState === undefined || fileState.readyState !== 'initializing') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'uploading',\n\t\t\t\t\tabortController: fileState.abortController,\n\t\t\t\t\tfile: fileState.file,\n\t\t\t\t\tmetadata: metadata.metadata!, // If the user didn't supply the metadata, then that's on them.\n\t\t\t\t\tpreviewUrl: fileState.previewUrl,\n\t\t\t\t\tprogress: undefined,\n\t\t\t\t\tuploader: metadata.uploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn publishNewState() /* Making the feedback about started upload immediate*/\n\t\t}\n\t\tcase 'finishSuccessfully': {\n\t\t\tfor (const [fileOrId, result] of action.result) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (previousFileState === undefined || previousFileState.readyState !== 'uploading') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'success',\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tmetadata: previousFileState.metadata,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tresult,\n\t\t\t\t\tuploader: previousFileState.uploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\t// return publishNewState() // Making the feedback about successful upload immediate.\n\t\t\treturn getNewDirtyState()\n\t\t}\n\t\tcase 'finishWithError': {\n\t\t\tfor (const errorSpec of action.error) {\n\t\t\t\tlet fileOrId: File | FileId\n\t\t\t\tlet rawError: unknown\n\n\t\t\t\tif (Array.isArray(errorSpec)) {\n\t\t\t\t\t[fileOrId, rawError] = errorSpec\n\t\t\t\t} else {\n\t\t\t\t\tfileOrId = errorSpec\n\t\t\t\t\trawError = undefined\n\t\t\t\t}\n\n\t\t\t\tconst errors: FileUploadError[] = []\n\n\t\t\t\tif (rawError instanceof FileUploadError) {\n\t\t\t\t\terrors.push(rawError)\n\t\t\t\t} else if (Array.isArray(rawError)) {\n\t\t\t\t\tfor (const error of rawError) {\n\t\t\t\t\t\tif (error instanceof FileUploadError) {\n\t\t\t\t\t\t\terrors.push(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (\n\t\t\t\t\tpreviousFileState === undefined ||\n\t\t\t\t\t(previousFileState.readyState !== 'initializing' && previousFileState.readyState !== 'uploading')\n\t\t\t\t) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst uploader = previousFileState.readyState === 'uploading' ? previousFileState.uploader : undefined\n\t\t\t\tconst metadata = previousFileState.readyState === 'uploading' ? previousFileState.metadata : undefined\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'error',\n\t\t\t\t\terrors: errors.length ? errors : undefined,\n\t\t\t\t\trawError,\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tuploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn getNewDirtyState() // Bad news can wait.\n\t\t}\n\t\tcase 'purge': {\n\t\t\tlet atLeastOnePurged = false\n\t\t\tfor (const fileOrId of action.files) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst fileState = previousState.liveState.get(fileId)\n\n\t\t\t\tif (fileState === undefined) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tatLeastOnePurged = true\n\t\t\t\tif (fileState.readyState === 'initializing' || fileState.readyState === 'uploading') {\n\t\t\t\t\tfileState.abortController.abort() // This is a bit naughty… We shouldn't do this from here.\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.delete(fileId)\n\t\t\t}\n\t\t\tif (atLeastOnePurged) {\n\t\t\t\treturn getNewDirtyState()\n\t\t\t}\n\t\t\treturn previousState\n\t\t}\n\t\tcase 'updateUploadProgress': {\n\t\t\tfor (const [fileOrId, { progress }] of action.progress) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (progress === undefined || previousFileState === undefined || previousFileState.readyState !== 'uploading') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'uploading',\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tuploader: previousFileState.uploader,\n\t\t\t\t\tabortController: previousFileState.abortController,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tmetadata: previousFileState.metadata,\n\t\t\t\t\tprogress,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn getNewDirtyState()\n\t\t}\n\t}\n\tassertNever(action)\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fileUploadReducer.js","sources":["../../../src/upload/fileUploadReducer.ts"],"sourcesContent":["import { FileUploadError } from '@contember/client'\nimport { assertNever } from '../utils'\nimport type { FileId } from './FileId'\nimport type { FileUploadAction } from './FileUploadAction'\nimport type { FileUploadMultiTemporalState } from './FileUploadMultiTemporalState'\nimport { toFileId } from './toFileId'\n\nexport const initializeFileUploadState = <Result = unknown, Metadata = undefined>(): FileUploadMultiTemporalState<\n\tResult,\n\tMetadata\n> => ({\n\tlastUpdateTime: 0,\n\tfileIdByFile: new WeakMap<File, FileId>(),\n\tliveState: new Map(),\n\tpublicState: new Map(),\n\tisLiveStateDirty: false,\n})\n\nexport const fileUploadReducer = <Result = unknown, Metadata = undefined>(\n\tpreviousState: FileUploadMultiTemporalState<Result, Metadata>,\n\taction: FileUploadAction<Result, Metadata>,\n): FileUploadMultiTemporalState<Result, Metadata> => {\n\tconst publishNewState = (): FileUploadMultiTemporalState<Result, Metadata> => ({\n\t\tpublicState: previousState.liveState,\n\t\tfileIdByFile: previousState.fileIdByFile,\n\t\tlastUpdateTime: previousState.lastUpdateTime,\n\t\tisLiveStateDirty: false,\n\n\t\t// Immediately make the live state referentially unequal so that this doesn't have to happen during each action\n\t\t// several times between two publishes.\n\t\tliveState: new Map(previousState.liveState),\n\t})\n\tconst getNewDirtyState = (): FileUploadMultiTemporalState<Result, Metadata> => ({\n\t\tfileIdByFile: previousState.fileIdByFile,\n\t\tliveState: previousState.liveState,\n\t\tpublicState: previousState.publicState,\n\t\tisLiveStateDirty: true,\n\t\tlastUpdateTime: Date.now(),\n\t})\n\tswitch (action.type) {\n\t\tcase 'publishNewestState': {\n\t\t\treturn publishNewState()\n\t\t}\n\t\tcase 'initialize': {\n\t\t\tfor (const [fileId, metadata] of action.files) {\n\t\t\t\t// Deliberately allowing starting a new upload with the same id\n\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'initializing',\n\t\t\t\t\tabortController: metadata.abortController,\n\t\t\t\t\tpreviewUrl: metadata.previewUrl,\n\t\t\t\t\tfile: metadata.file,\n\t\t\t\t})\n\t\t\t\tpreviousState.fileIdByFile.set(metadata.file, fileId)\n\t\t\t}\n\t\t\treturn publishNewState() /* Making the feedback about new files immediate*/\n\t\t}\n\t\tcase 'startUploading': {\n\t\t\tfor (const [fileOrId, metadata] of action.files) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst fileState = previousState.liveState.get(fileId)\n\n\t\t\t\tif (fileState === undefined || fileState.readyState !== 'initializing') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'uploading',\n\t\t\t\t\tabortController: fileState.abortController,\n\t\t\t\t\tfile: fileState.file,\n\t\t\t\t\tmetadata: metadata.metadata!, // If the user didn't supply the metadata, then that's on them.\n\t\t\t\t\tpreviewUrl: fileState.previewUrl,\n\t\t\t\t\tprogress: undefined,\n\t\t\t\t\tuploader: metadata.uploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn publishNewState() /* Making the feedback about started upload immediate*/\n\t\t}\n\t\tcase 'finishSuccessfully': {\n\t\t\tfor (const [fileOrId, result] of action.result) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (previousFileState === undefined || previousFileState.readyState !== 'uploading') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'success',\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tmetadata: previousFileState.metadata,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tresult,\n\t\t\t\t\tuploader: previousFileState.uploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\t// return publishNewState() // Making the feedback about successful upload immediate.\n\t\t\treturn getNewDirtyState()\n\t\t}\n\t\tcase 'finishWithError': {\n\t\t\tfor (const errorSpec of action.error) {\n\t\t\t\tlet fileOrId: File | FileId\n\t\t\t\tlet rawError: unknown\n\n\t\t\t\tif (Array.isArray(errorSpec)) {\n\t\t\t\t\t[fileOrId, rawError] = errorSpec\n\t\t\t\t} else {\n\t\t\t\t\tfileOrId = errorSpec\n\t\t\t\t\trawError = undefined\n\t\t\t\t}\n\n\t\t\t\tconst errors: FileUploadError[] = []\n\n\t\t\t\tif (rawError instanceof FileUploadError) {\n\t\t\t\t\terrors.push(rawError)\n\t\t\t\t} else if (Array.isArray(rawError)) {\n\t\t\t\t\tfor (const error of rawError) {\n\t\t\t\t\t\tif (error instanceof FileUploadError) {\n\t\t\t\t\t\t\terrors.push(error)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (\n\t\t\t\t\tpreviousFileState === undefined ||\n\t\t\t\t\t(previousFileState.readyState !== 'initializing' && previousFileState.readyState !== 'uploading')\n\t\t\t\t) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tconst uploader = previousFileState.readyState === 'uploading' ? previousFileState.uploader : undefined\n\t\t\t\tconst metadata = previousFileState.readyState === 'uploading' ? previousFileState.metadata : undefined\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'error',\n\t\t\t\t\terrors: errors.length ? errors : undefined,\n\t\t\t\t\trawError,\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tuploader,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn getNewDirtyState() // Bad news can wait.\n\t\t}\n\t\tcase 'purge': {\n\t\t\tlet atLeastOnePurged = false\n\t\t\tfor (const fileOrId of action.files) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst fileState = previousState.liveState.get(fileId)\n\n\t\t\t\tif (fileState === undefined) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tatLeastOnePurged = true\n\t\t\t\tif (fileState.readyState === 'initializing' || fileState.readyState === 'uploading') {\n\t\t\t\t\tfileState.abortController.abort() // This is a bit naughty… We shouldn't do this from here.\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.delete(fileId)\n\t\t\t}\n\t\t\tif (atLeastOnePurged) {\n\t\t\t\treturn getNewDirtyState()\n\t\t\t}\n\t\t\treturn previousState\n\t\t}\n\t\tcase 'updateUploadProgress': {\n\t\t\tfor (const [fileOrId, { progress }] of action.progress) {\n\t\t\t\tconst fileId = toFileId(previousState, fileOrId)\n\t\t\t\tconst previousFileState = previousState.liveState.get(fileId)\n\t\t\t\tif (progress === undefined || previousFileState === undefined || previousFileState.readyState !== 'uploading') {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tpreviousState.liveState.set(fileId, {\n\t\t\t\t\treadyState: 'uploading',\n\t\t\t\t\tfile: previousFileState.file,\n\t\t\t\t\tuploader: previousFileState.uploader,\n\t\t\t\t\tabortController: previousFileState.abortController,\n\t\t\t\t\tpreviewUrl: previousFileState.previewUrl,\n\t\t\t\t\tmetadata: previousFileState.metadata,\n\t\t\t\t\tprogress,\n\t\t\t\t})\n\t\t\t}\n\t\t\treturn getNewDirtyState()\n\t\t}\n\t}\n\tassertNever(action)\n}\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { memo, useState, useCallback } from "react";
2
1
  import { jsx } from "react/jsx-runtime";
2
+ import { memo, useState, useCallback } from "react";
3
3
  import { ApiBaseUrlContext } from "./config/ApiBaseUrlContext.js";
4
4
  import { LoginTokenContext } from "./config/LoginTokenContext.js";
5
5
  import { SetSessionTokenContext } from "./auth/SetSessionTokenContext.js";
@@ -24,25 +24,7 @@ const ContemberClient = memo(function ContemberClient2({
24
24
  }
25
25
  setSessionTokenInner(token);
26
26
  }, []);
27
- return /* @__PURE__ */ jsx(ApiBaseUrlContext.Provider, {
28
- value: apiBaseUrl,
29
- children: /* @__PURE__ */ jsx(LoginTokenContext.Provider, {
30
- value: loginToken,
31
- children: /* @__PURE__ */ jsx(SetSessionTokenContext.Provider, {
32
- value: setSessionToken,
33
- children: /* @__PURE__ */ jsx(SessionTokenContext.Provider, {
34
- value: sessionTokenInner,
35
- children: /* @__PURE__ */ jsx(ProjectSlugContext.Provider, {
36
- value: project,
37
- children: /* @__PURE__ */ jsx(StageSlugContext.Provider, {
38
- value: stage,
39
- children
40
- })
41
- })
42
- })
43
- })
44
- })
45
- });
27
+ return /* @__PURE__ */ jsx(ApiBaseUrlContext.Provider, { value: apiBaseUrl, children: /* @__PURE__ */ jsx(LoginTokenContext.Provider, { value: loginToken, children: /* @__PURE__ */ jsx(SetSessionTokenContext.Provider, { value: setSessionToken, children: /* @__PURE__ */ jsx(SessionTokenContext.Provider, { value: sessionTokenInner, children: /* @__PURE__ */ jsx(ProjectSlugContext.Provider, { value: project, children: /* @__PURE__ */ jsx(StageSlugContext.Provider, { value: stage, children }) }) }) }) }) });
46
28
  });
47
29
  export {
48
30
  ContemberClient
@@ -1 +1 @@
1
- {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useState } from 'react'\nimport { SessionTokenContext, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenInner}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":["sessionTokenKey","ContemberClient","memo","apiBaseUrl","children","loginToken","project","sessionToken","stage","sessionTokenInner","setSessionTokenInner","useState","localStorage","getItem","undefined","setSessionToken","useCallback","token","setItem","removeItem","_jsx"],"mappings":";;;;;;;;AAaA,MAAMA,kBAAkB;AAEXC,MAAAA,kBAAkBC,KAA2D,SAASD,iBAAgB;AAAA,EAClHE;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AAAAA,EACAC;AACD,GAAG;AACI,QAAA,CAACC,mBAAmBC,oBAAoB,IAAIC,SAAS,MAAMC,aAAaC,QAAQb,eAAe,KAAKO,gBAAiBO,MAAS;AAE9HC,QAAAA,kBAAkBC,YAAY,CAACC,UAA8B;AAClE,QAAIA,UAAUH,QAAW;AACXI,mBAAAA,QAAQlB,iBAAiBiB,KAAK;AAAA,IAAA,OACrC;AACNL,mBAAaO,WAAWnB,eAAe;AAAA,IACxC;AACAU,yBAAqBO,KAAK;AAAA,EAC3B,GAAG,CAAE,CAAA;AAGJ,SAAAG,oBAAC,kBAAkB,UAAQ;AAAA,IAAC,OAAOjB;AAAAA,IAAW,UAC5CiB,oBAAA,kBAAkB,UAAQ;AAAA,MAAC,OAAOf;AAAAA,MAAW,UAC5Ce,oBAAA,uBAAuB,UAAQ;AAAA,QAAC,OAAOL;AAAAA,QAAgB,UACtDK,oBAAA,oBAAoB,UAAQ;AAAA,UAAC,OAAOX;AAAAA,UAAkB,UACrDW,oBAAA,mBAAmB,UAAQ;AAAA,YAAC,OAAOd;AAAAA,YAAQ,UAC1Cc,oBAAA,iBAAiB,UAAQ;AAAA,cAAC,OAAOZ;AAAAA,cAAM;AAAA,YAAA,CAAU;AAAA,UAAA,CAA6B;AAAA,QAAA,CAClD;AAAA,MAAA,CACA;AAAA,IAAA,CACE;AAAA,EAAA,CAEP;AAE/B,CAAC;"}
1
+ {"version":3,"file":"ContemberClient.js","sources":["../../src/ContemberClient.tsx"],"sourcesContent":["import { memo, useCallback, useEffect, useState } from 'react'\nimport { SessionTokenContext, SetSessionTokenContext } from './auth'\nimport { ApiBaseUrlContext, LoginTokenContext } from './config'\nimport { ProjectSlugContext, StageSlugContext } from './project'\n\nexport interface ContemberClientProps {\n\tapiBaseUrl: string\n\tsessionToken?: string\n\tloginToken?: string\n\tproject?: string\n\tstage?: string\n}\n\nconst sessionTokenKey = 'contember_session_token'\n\nexport const ContemberClient = memo<ContemberClientProps & { children: React.ReactNode }>(function ContemberClient({\n\tapiBaseUrl,\n\tchildren,\n\tloginToken,\n\tproject,\n\tsessionToken,\n\tstage,\n}) {\n\tconst [sessionTokenInner, setSessionTokenInner] = useState(() => localStorage.getItem(sessionTokenKey) ?? sessionToken ?? undefined)\n\n\tconst setSessionToken = useCallback((token: string | undefined) => {\n\t\tif (token !== undefined) {\n\t\t\tlocalStorage.setItem(sessionTokenKey, token)\n\t\t} else {\n\t\t\tlocalStorage.removeItem(sessionTokenKey)\n\t\t}\n\t\tsetSessionTokenInner(token)\n\t}, [])\n\n\treturn (\n\t\t<ApiBaseUrlContext.Provider value={apiBaseUrl}>\n\t\t\t<LoginTokenContext.Provider value={loginToken}>\n\t\t\t\t<SetSessionTokenContext.Provider value={setSessionToken}>\n\t\t\t\t\t<SessionTokenContext.Provider value={sessionTokenInner}>\n\t\t\t\t\t\t<ProjectSlugContext.Provider value={project}>\n\t\t\t\t\t\t\t<StageSlugContext.Provider value={stage}>{children}</StageSlugContext.Provider>\n\t\t\t\t\t\t</ProjectSlugContext.Provider>\n\t\t\t\t\t</SessionTokenContext.Provider>\n\t\t\t\t</SetSessionTokenContext.Provider>\n\t\t\t</LoginTokenContext.Provider>\n\t\t</ApiBaseUrlContext.Provider>\n\t)\n})\n"],"names":["ContemberClient"],"mappings":";;;;;;;;AAaA,MAAM,kBAAkB;AAEX,MAAA,kBAAkB,KAA2D,SAASA,iBAAgB;AAAA,EAClH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAG;AACI,QAAA,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,MAAM,aAAa,QAAQ,eAAe,KAAK,gBAAiB,MAAS;AAE9H,QAAA,kBAAkB,YAAY,CAAC,UAA8B;AAClE,QAAI,UAAU,QAAW;AACX,mBAAA,QAAQ,iBAAiB,KAAK;AAAA,IAAA,OACrC;AACN,mBAAa,WAAW,eAAe;AAAA,IACxC;AACA,yBAAqB,KAAK;AAAA,EAC3B,GAAG,CAAE,CAAA;AAEL,6BACE,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,8BAAC,kBAAkB,UAAlB,EAA2B,OAAO,YAClC,UAAC,oBAAA,uBAAuB,UAAvB,EAAgC,OAAO,iBACvC,UAAC,oBAAA,oBAAoB,UAApB,EAA6B,OAAO,mBACpC,UAAA,oBAAC,mBAAmB,UAAnB,EAA4B,OAAO,SACnC,UAAA,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,OAAQ,SAAS,CAAA,GACpD,EACD,CAAA,EACD,CAAA,GACD,EACD,CAAA;AAEF,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiRequestReducer.js","sources":["../../../src/apiRequest/apiRequestReducer.ts"],"sourcesContent":["import type { ApiRequestAction } from './ApiRequestAction'\nimport type { ApiRequestState } from './ApiRequestState'\n\nexport type ApiRequestReducer<SuccessData> = (\n\tpreviousState: ApiRequestState<SuccessData>,\n\taction: ApiRequestAction<SuccessData>,\n) => ApiRequestState<SuccessData>\n\nexport const apiRequestReducer = <SuccessData>(\n\tpreviousState: ApiRequestState<SuccessData>,\n\taction: ApiRequestAction<SuccessData>,\n): ApiRequestState<SuccessData> => {\n\tswitch (action.type) {\n\t\tcase 'uninitialize':\n\t\t\treturn {\n\t\t\t\treadyState: 'uninitialized',\n\t\t\t\tisFinished: false,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t\tcase 'initialize':\n\t\t\treturn {\n\t\t\t\treadyState: 'pending',\n\t\t\t\tisFinished: false,\n\t\t\t\tisLoading: true,\n\t\t\t}\n\t\tcase 'resolveSuccessfully':\n\t\t\treturn {\n\t\t\t\treadyState: 'networkSuccess',\n\t\t\t\tdata: action.data,\n\t\t\t\tisFinished: true,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t\tcase 'resolveWithError':\n\t\t\treturn {\n\t\t\t\treadyState: 'networkError',\n\t\t\t\tdata: action.error,\n\t\t\t\tisFinished: true,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAQa,MAAA,oBAAoB,CAChC,eACA,WACkC;AAClC,UAAQ,OAAO;AAAA,SACT;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,SAER;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,SAER;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,SAER;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA;AAGf;"}
1
+ {"version":3,"file":"apiRequestReducer.js","sources":["../../../src/apiRequest/apiRequestReducer.ts"],"sourcesContent":["import type { ApiRequestAction } from './ApiRequestAction'\nimport type { ApiRequestState } from './ApiRequestState'\n\nexport type ApiRequestReducer<SuccessData> = (\n\tpreviousState: ApiRequestState<SuccessData>,\n\taction: ApiRequestAction<SuccessData>,\n) => ApiRequestState<SuccessData>\n\nexport const apiRequestReducer = <SuccessData>(\n\tpreviousState: ApiRequestState<SuccessData>,\n\taction: ApiRequestAction<SuccessData>,\n): ApiRequestState<SuccessData> => {\n\tswitch (action.type) {\n\t\tcase 'uninitialize':\n\t\t\treturn {\n\t\t\t\treadyState: 'uninitialized',\n\t\t\t\tisFinished: false,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t\tcase 'initialize':\n\t\t\treturn {\n\t\t\t\treadyState: 'pending',\n\t\t\t\tisFinished: false,\n\t\t\t\tisLoading: true,\n\t\t\t}\n\t\tcase 'resolveSuccessfully':\n\t\t\treturn {\n\t\t\t\treadyState: 'networkSuccess',\n\t\t\t\tdata: action.data,\n\t\t\t\tisFinished: true,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t\tcase 'resolveWithError':\n\t\t\treturn {\n\t\t\t\treadyState: 'networkError',\n\t\t\t\tdata: action.error,\n\t\t\t\tisFinished: true,\n\t\t\t\tisLoading: false,\n\t\t\t}\n\t}\n}\n"],"names":[],"mappings":"AAQa,MAAA,oBAAoB,CAChC,eACA,WACkC;AAClC,UAAQ,OAAO,MAAM;AAAA,IACpB,KAAK;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,IAEb,KAAK;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,IAEb,KAAK;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,IAEb,KAAK;AACG,aAAA;AAAA,QACN,YAAY;AAAA,QACZ,MAAM,OAAO;AAAA,QACb,YAAY;AAAA,QACZ,WAAW;AAAA,MAAA;AAAA,EAEd;AACD;"}
@@ -1,21 +1,13 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { createElement } from "react";
2
3
  import { renderChildren } from "./renderChildren.js";
3
4
  import { RenderElementFallback } from "./RenderElementFallback.js";
4
5
  import { resolveRichTextElementMetadata } from "./resolveRichTextElementMetadata.js";
5
6
  import { useRichTextRenderMetadata } from "./RichTextRenderMetadataContext.js";
6
- import { jsx } from "react/jsx-runtime";
7
- function ElementRenderer({
8
- element,
9
- children,
10
- options
11
- }) {
7
+ function ElementRenderer({ element, children, options }) {
12
8
  const metadata = useRichTextRenderMetadata();
13
9
  const elementMetadata = resolveRichTextElementMetadata(element, metadata);
14
- const fallback = /* @__PURE__ */ jsx(RenderElementFallback, {
15
- element,
16
- options,
17
- children
18
- });
10
+ const fallback = /* @__PURE__ */ jsx(RenderElementFallback, { element, options, children });
19
11
  return options.renderElement ? createElement(options.renderElement, {
20
12
  ...elementMetadata,
21
13
  element,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRenderer.js","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport type { RenderChildrenOptions } from './renderChildren'\nimport { renderChildren } from './renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextElementMetadata } from './RichTextElementMetadata'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderElement<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n\tReference extends RichTextReference = RichTextReference,\n> = ComponentType<\n\t{\n\t\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\t\tchildren: ReactElement\n\n\t\tfallback: ReactElement\n\n\t\trenderChildren: (\n\t\t\tchildren:\n\t\t\t\t| CustomElements\n\t\t\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t\t\t| CustomLeaves\n\t\t\t\t| BuiltinLeaves\n\t\t\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\t\t\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n\t\t) => ReactElement\n\t\trenderChildrenOptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n\t} & RichTextElementMetadata<CustomElements, CustomLeaves, Reference>\n>\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tconst fallback = (\n\t\t<RenderElementFallback element={element as BuiltinElements} options={options}>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t\t...elementMetadata,\n\t\t\t\telement,\n\t\t\t\tfallback,\n\t\t\t\tchildren,\n\t\t\t\trenderChildren,\n\t\t\t\trenderChildrenOptions: options,\n\t\t })\n\t\t: fallback\n}\n"],"names":["ElementRenderer","element","children","options","metadata","useRichTextRenderMetadata","elementMetadata","resolveRichTextElementMetadata","fallback","renderElement","createElement","renderChildren","renderChildrenOptions"],"mappings":";;;;;;AA+CO,SAASA,gBAGd;AAAA,EAAEC;AAAAA,EAASC;AAAAA,EAAUC;AAA4D,GAAG;AACrF,QAAMC,WAAWC;AACXC,QAAAA,kBAAkBC,+BAA6DN,SAASG,QAAQ;AAEhGI,QAAAA,+BACJ,uBAAqB;AAAA,IAAC;AAAA,IAAqC;AAAA,IAAiB;AAAA,EAAA,CAG7E;AAED,SAAOL,QAAQM,gBACZC,cAAcP,QAAQM,eAAe;AAAA,IACrC,GAAGH;AAAAA,IACHL;AAAAA,IACAO;AAAAA,IACAN;AAAAA,IACAS;AAAAA,IACAC,uBAAuBT;AAAAA,EACtB,CAAA,IACDK;AACJ;"}
1
+ {"version":3,"file":"ElementRenderer.js","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"sourcesContent":["import type { ComponentType, ReactElement } from 'react'\nimport { createElement } from 'react'\nimport type { BuiltinElements } from './BuiltinElements'\nimport type { BuiltinLeaves } from './BuiltinLeaves'\nimport type { RenderChildrenOptions } from './renderChildren'\nimport { renderChildren } from './renderChildren'\nimport { RenderElementFallback } from './RenderElementFallback'\nimport { resolveRichTextElementMetadata } from './resolveRichTextElementMetadata'\nimport type { RichTextElement } from './RichTextElement'\nimport type { RichTextElementMetadata } from './RichTextElementMetadata'\nimport type { RichTextLeaf } from './RichTextLeaf'\nimport type { RichTextReference } from './RichTextReference'\nimport { useRichTextRenderMetadata } from './RichTextRenderMetadataContext'\n\nexport type RenderElement<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n\tReference extends RichTextReference = RichTextReference,\n> = ComponentType<\n\t{\n\t\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\t\tchildren: ReactElement\n\n\t\tfallback: ReactElement\n\n\t\trenderChildren: (\n\t\t\tchildren:\n\t\t\t\t| CustomElements\n\t\t\t\t| BuiltinElements<CustomElements, CustomLeaves>\n\t\t\t\t| CustomLeaves\n\t\t\t\t| BuiltinLeaves\n\t\t\t\t| Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,\n\t\t\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>,\n\t\t) => ReactElement\n\t\trenderChildrenOptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n\t} & RichTextElementMetadata<CustomElements, CustomLeaves, Reference>\n>\n\nexport interface ElementRendererProps<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n> {\n\telement: CustomElements | BuiltinElements<CustomElements, CustomLeaves>\n\tchildren: ReactElement\n\toptions: RenderChildrenOptions<CustomElements, CustomLeaves>\n}\n\nexport function ElementRenderer<\n\tCustomElements extends RichTextElement = never,\n\tCustomLeaves extends RichTextLeaf = never,\n>({ element, children, options }: ElementRendererProps<CustomElements, CustomLeaves>) {\n\tconst metadata = useRichTextRenderMetadata<CustomElements, CustomLeaves>()\n\tconst elementMetadata = resolveRichTextElementMetadata<CustomElements, CustomLeaves>(element, metadata)\n\n\tconst fallback = (\n\t\t<RenderElementFallback element={element as BuiltinElements} options={options}>\n\t\t\t{children}\n\t\t</RenderElementFallback>\n\t)\n\n\treturn options.renderElement\n\t\t? createElement(options.renderElement, {\n\t\t\t\t...elementMetadata,\n\t\t\t\telement,\n\t\t\t\tfallback,\n\t\t\t\tchildren,\n\t\t\t\trenderChildren,\n\t\t\t\trenderChildrenOptions: options,\n\t\t })\n\t\t: fallback\n}\n"],"names":[],"mappings":";;;;;;AA+CO,SAAS,gBAGd,EAAE,SAAS,UAAU,WAA+D;AACrF,QAAM,WAAW;AACX,QAAA,kBAAkB,+BAA6D,SAAS,QAAQ;AAEtG,QAAM,WACL,oBAAC,uBAAsB,EAAA,SAAqC,SAC1D,SACF,CAAA;AAGD,SAAO,QAAQ,gBACZ,cAAc,QAAQ,eAAe;AAAA,IACrC,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,uBAAuB;AAAA,EACtB,CAAA,IACD;AACJ;"}
@@ -1,20 +1,22 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { createElement } from "react";
2
3
  import { RenderLeafFallback } from "./RenderLeafFallback.js";
3
4
  import { useRichTextRenderMetadata } from "./RichTextRenderMetadataContext.js";
4
- import { jsx } from "react/jsx-runtime";
5
5
  function LeafRenderer({
6
6
  leaf,
7
7
  renderLeaf
8
8
  }) {
9
9
  const formatVersion = useRichTextRenderMetadata().formatVersion;
10
- const fallback = /* @__PURE__ */ jsx(RenderLeafFallback, {
11
- leaf
12
- });
13
- return renderLeaf ? createElement(renderLeaf, {
14
- formatVersion,
15
- leaf,
16
- fallback
17
- }, leaf.text) : fallback;
10
+ const fallback = /* @__PURE__ */ jsx(RenderLeafFallback, { leaf });
11
+ return renderLeaf ? createElement(
12
+ renderLeaf,
13
+ {
14
+ formatVersion,
15
+ leaf,
16
+ fallback
17
+ },
18
+ leaf.text
19
+ ) : fallback;
18
20
  }
19
21
  export {
20
22
  LeafRenderer