@contember/react-client 1.3.0-alpha.7 → 1.3.0-alpha.8

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 (174) hide show
  1. package/dist/development/index.cjs +9 -5
  2. package/dist/development/index.cjs.map +1 -1
  3. package/dist/development/index.js +1 -4
  4. package/dist/development/index.js.map +1 -1
  5. package/dist/development/upload/useFileUpload.cjs.map +1 -1
  6. package/dist/development/upload/useFileUpload.js.map +1 -1
  7. package/dist/development/useGraphQlClient.cjs.map +1 -1
  8. package/dist/development/useGraphQlClient.js.map +1 -1
  9. package/dist/production/index.cjs +9 -5
  10. package/dist/production/index.cjs.map +1 -1
  11. package/dist/production/index.js +1 -4
  12. package/dist/production/index.js.map +1 -1
  13. package/dist/production/upload/useFileUpload.cjs.map +1 -1
  14. package/dist/production/upload/useFileUpload.js.map +1 -1
  15. package/dist/production/useGraphQlClient.cjs.map +1 -1
  16. package/dist/production/useGraphQlClient.js.map +1 -1
  17. package/dist/types/index.d.ts +1 -1
  18. package/dist/types/index.d.ts.map +1 -1
  19. package/dist/types/tsconfig.tsbuildinfo +1 -1
  20. package/package.json +4 -3
  21. package/src/index.ts +1 -1
  22. package/src/tsconfig.json +1 -0
  23. package/dist/development/components/RichTextRenderer/ElementRenderer.cjs +0 -27
  24. package/dist/development/components/RichTextRenderer/ElementRenderer.cjs.map +0 -1
  25. package/dist/development/components/RichTextRenderer/ElementRenderer.js +0 -27
  26. package/dist/development/components/RichTextRenderer/ElementRenderer.js.map +0 -1
  27. package/dist/development/components/RichTextRenderer/LeafRenderer.cjs +0 -28
  28. package/dist/development/components/RichTextRenderer/LeafRenderer.cjs.map +0 -1
  29. package/dist/development/components/RichTextRenderer/LeafRenderer.js +0 -28
  30. package/dist/development/components/RichTextRenderer/LeafRenderer.js.map +0 -1
  31. package/dist/development/components/RichTextRenderer/RenderElementFallback.cjs +0 -155
  32. package/dist/development/components/RichTextRenderer/RenderElementFallback.cjs.map +0 -1
  33. package/dist/development/components/RichTextRenderer/RenderElementFallback.js +0 -155
  34. package/dist/development/components/RichTextRenderer/RenderElementFallback.js.map +0 -1
  35. package/dist/development/components/RichTextRenderer/RenderLeafFallback.cjs +0 -74
  36. package/dist/development/components/RichTextRenderer/RenderLeafFallback.cjs.map +0 -1
  37. package/dist/development/components/RichTextRenderer/RenderLeafFallback.js +0 -74
  38. package/dist/development/components/RichTextRenderer/RenderLeafFallback.js.map +0 -1
  39. package/dist/development/components/RichTextRenderer/RichTextRenderMetadataContext.cjs +0 -15
  40. package/dist/development/components/RichTextRenderer/RichTextRenderMetadataContext.cjs.map +0 -1
  41. package/dist/development/components/RichTextRenderer/RichTextRenderMetadataContext.js +0 -15
  42. package/dist/development/components/RichTextRenderer/RichTextRenderMetadataContext.js.map +0 -1
  43. package/dist/development/components/RichTextRenderer/RichTextRenderer.cjs +0 -124
  44. package/dist/development/components/RichTextRenderer/RichTextRenderer.cjs.map +0 -1
  45. package/dist/development/components/RichTextRenderer/RichTextRenderer.js +0 -124
  46. package/dist/development/components/RichTextRenderer/RichTextRenderer.js.map +0 -1
  47. package/dist/development/components/RichTextRenderer/RichTextRendererError.cjs +0 -6
  48. package/dist/development/components/RichTextRenderer/RichTextRendererError.cjs.map +0 -1
  49. package/dist/development/components/RichTextRenderer/RichTextRendererError.js +0 -6
  50. package/dist/development/components/RichTextRenderer/RichTextRendererError.js.map +0 -1
  51. package/dist/development/components/RichTextRenderer/defaultDeserialize.cjs +0 -14
  52. package/dist/development/components/RichTextRenderer/defaultDeserialize.cjs.map +0 -1
  53. package/dist/development/components/RichTextRenderer/defaultDeserialize.js +0 -14
  54. package/dist/development/components/RichTextRenderer/defaultDeserialize.js.map +0 -1
  55. package/dist/development/components/RichTextRenderer/renderChildren.cjs +0 -33
  56. package/dist/development/components/RichTextRenderer/renderChildren.cjs.map +0 -1
  57. package/dist/development/components/RichTextRenderer/renderChildren.js +0 -33
  58. package/dist/development/components/RichTextRenderer/renderChildren.js.map +0 -1
  59. package/dist/development/components/RichTextRenderer/resolveRichTextElementMetadata.cjs +0 -29
  60. package/dist/development/components/RichTextRenderer/resolveRichTextElementMetadata.cjs.map +0 -1
  61. package/dist/development/components/RichTextRenderer/resolveRichTextElementMetadata.js +0 -29
  62. package/dist/development/components/RichTextRenderer/resolveRichTextElementMetadata.js.map +0 -1
  63. package/dist/production/components/RichTextRenderer/ElementRenderer.cjs +0 -23
  64. package/dist/production/components/RichTextRenderer/ElementRenderer.cjs.map +0 -1
  65. package/dist/production/components/RichTextRenderer/ElementRenderer.js +0 -23
  66. package/dist/production/components/RichTextRenderer/ElementRenderer.js.map +0 -1
  67. package/dist/production/components/RichTextRenderer/LeafRenderer.cjs +0 -24
  68. package/dist/production/components/RichTextRenderer/LeafRenderer.cjs.map +0 -1
  69. package/dist/production/components/RichTextRenderer/LeafRenderer.js +0 -24
  70. package/dist/production/components/RichTextRenderer/LeafRenderer.js.map +0 -1
  71. package/dist/production/components/RichTextRenderer/RenderElementFallback.cjs +0 -82
  72. package/dist/production/components/RichTextRenderer/RenderElementFallback.cjs.map +0 -1
  73. package/dist/production/components/RichTextRenderer/RenderElementFallback.js +0 -82
  74. package/dist/production/components/RichTextRenderer/RenderElementFallback.js.map +0 -1
  75. package/dist/production/components/RichTextRenderer/RenderLeafFallback.cjs +0 -38
  76. package/dist/production/components/RichTextRenderer/RenderLeafFallback.cjs.map +0 -1
  77. package/dist/production/components/RichTextRenderer/RenderLeafFallback.js +0 -38
  78. package/dist/production/components/RichTextRenderer/RenderLeafFallback.js.map +0 -1
  79. package/dist/production/components/RichTextRenderer/RichTextRenderMetadataContext.cjs +0 -15
  80. package/dist/production/components/RichTextRenderer/RichTextRenderMetadataContext.cjs.map +0 -1
  81. package/dist/production/components/RichTextRenderer/RichTextRenderMetadataContext.js +0 -15
  82. package/dist/production/components/RichTextRenderer/RichTextRenderMetadataContext.js.map +0 -1
  83. package/dist/production/components/RichTextRenderer/RichTextRenderer.cjs +0 -109
  84. package/dist/production/components/RichTextRenderer/RichTextRenderer.cjs.map +0 -1
  85. package/dist/production/components/RichTextRenderer/RichTextRenderer.js +0 -109
  86. package/dist/production/components/RichTextRenderer/RichTextRenderer.js.map +0 -1
  87. package/dist/production/components/RichTextRenderer/RichTextRendererError.cjs +0 -6
  88. package/dist/production/components/RichTextRenderer/RichTextRendererError.cjs.map +0 -1
  89. package/dist/production/components/RichTextRenderer/RichTextRendererError.js +0 -6
  90. package/dist/production/components/RichTextRenderer/RichTextRendererError.js.map +0 -1
  91. package/dist/production/components/RichTextRenderer/defaultDeserialize.cjs +0 -14
  92. package/dist/production/components/RichTextRenderer/defaultDeserialize.cjs.map +0 -1
  93. package/dist/production/components/RichTextRenderer/defaultDeserialize.js +0 -14
  94. package/dist/production/components/RichTextRenderer/defaultDeserialize.js.map +0 -1
  95. package/dist/production/components/RichTextRenderer/renderChildren.cjs +0 -21
  96. package/dist/production/components/RichTextRenderer/renderChildren.cjs.map +0 -1
  97. package/dist/production/components/RichTextRenderer/renderChildren.js +0 -21
  98. package/dist/production/components/RichTextRenderer/renderChildren.js.map +0 -1
  99. package/dist/production/components/RichTextRenderer/resolveRichTextElementMetadata.cjs +0 -29
  100. package/dist/production/components/RichTextRenderer/resolveRichTextElementMetadata.cjs.map +0 -1
  101. package/dist/production/components/RichTextRenderer/resolveRichTextElementMetadata.js +0 -29
  102. package/dist/production/components/RichTextRenderer/resolveRichTextElementMetadata.js.map +0 -1
  103. package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts +0 -49
  104. package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts.map +0 -1
  105. package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts +0 -21
  106. package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts.map +0 -1
  107. package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts +0 -22
  108. package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts.map +0 -1
  109. package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts +0 -14
  110. package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts.map +0 -1
  111. package/dist/types/components/RichTextRenderer/NormalizedRichTextBlock.d.ts +0 -14
  112. package/dist/types/components/RichTextRenderer/NormalizedRichTextBlock.d.ts.map +0 -1
  113. package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts +0 -14
  114. package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts.map +0 -1
  115. package/dist/types/components/RichTextRenderer/RenderElementFallback.d.ts +0 -12
  116. package/dist/types/components/RichTextRenderer/RenderElementFallback.d.ts.map +0 -1
  117. package/dist/types/components/RichTextRenderer/RenderLeafFallback.d.ts +0 -6
  118. package/dist/types/components/RichTextRenderer/RenderLeafFallback.d.ts.map +0 -1
  119. package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts +0 -2
  120. package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts.map +0 -1
  121. package/dist/types/components/RichTextRenderer/RichTextElement.d.ts +0 -7
  122. package/dist/types/components/RichTextRenderer/RichTextElement.d.ts.map +0 -1
  123. package/dist/types/components/RichTextRenderer/RichTextElementMetadata.d.ts +0 -11
  124. package/dist/types/components/RichTextRenderer/RichTextElementMetadata.d.ts.map +0 -1
  125. package/dist/types/components/RichTextRenderer/RichTextLeaf.d.ts +0 -4
  126. package/dist/types/components/RichTextRenderer/RichTextLeaf.d.ts.map +0 -1
  127. package/dist/types/components/RichTextRenderer/RichTextLeafMetadata.d.ts +0 -4
  128. package/dist/types/components/RichTextRenderer/RichTextLeafMetadata.d.ts.map +0 -1
  129. package/dist/types/components/RichTextRenderer/RichTextReference.d.ts +0 -4
  130. package/dist/types/components/RichTextRenderer/RichTextReference.d.ts.map +0 -1
  131. package/dist/types/components/RichTextRenderer/RichTextRenderMetadata.d.ts +0 -12
  132. package/dist/types/components/RichTextRenderer/RichTextRenderMetadata.d.ts.map +0 -1
  133. package/dist/types/components/RichTextRenderer/RichTextRenderMetadataContext.d.ts +0 -7
  134. package/dist/types/components/RichTextRenderer/RichTextRenderMetadataContext.d.ts.map +0 -1
  135. package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts +0 -33
  136. package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts.map +0 -1
  137. package/dist/types/components/RichTextRenderer/RichTextRendererError.d.ts +0 -3
  138. package/dist/types/components/RichTextRenderer/RichTextRendererError.d.ts.map +0 -1
  139. package/dist/types/components/RichTextRenderer/RootEditorNode.d.ts +0 -9
  140. package/dist/types/components/RichTextRenderer/RootEditorNode.d.ts.map +0 -1
  141. package/dist/types/components/RichTextRenderer/defaultDeserialize.d.ts +0 -5
  142. package/dist/types/components/RichTextRenderer/defaultDeserialize.d.ts.map +0 -1
  143. package/dist/types/components/RichTextRenderer/index.d.ts +0 -16
  144. package/dist/types/components/RichTextRenderer/index.d.ts.map +0 -1
  145. package/dist/types/components/RichTextRenderer/renderChildren.d.ts +0 -14
  146. package/dist/types/components/RichTextRenderer/renderChildren.d.ts.map +0 -1
  147. package/dist/types/components/RichTextRenderer/resolveRichTextElementMetadata.d.ts +0 -8
  148. package/dist/types/components/RichTextRenderer/resolveRichTextElementMetadata.d.ts.map +0 -1
  149. package/dist/types/components/index.d.ts +0 -2
  150. package/dist/types/components/index.d.ts.map +0 -1
  151. package/src/components/RichTextRenderer/BuiltinElements.ts +0 -112
  152. package/src/components/RichTextRenderer/BuiltinLeaves.ts +0 -32
  153. package/src/components/RichTextRenderer/ElementRenderer.tsx +0 -71
  154. package/src/components/RichTextRenderer/LeafRenderer.tsx +0 -39
  155. package/src/components/RichTextRenderer/NormalizedRichTextBlock.ts +0 -17
  156. package/src/components/RichTextRenderer/ReferenceRenderer.ts +0 -26
  157. package/src/components/RichTextRenderer/RenderElementFallback.tsx +0 -147
  158. package/src/components/RichTextRenderer/RenderLeafFallback.tsx +0 -43
  159. package/src/components/RichTextRenderer/RichTextBlock.ts +0 -1
  160. package/src/components/RichTextRenderer/RichTextElement.ts +0 -10
  161. package/src/components/RichTextRenderer/RichTextElementMetadata.ts +0 -15
  162. package/src/components/RichTextRenderer/RichTextLeaf.ts +0 -3
  163. package/src/components/RichTextRenderer/RichTextLeafMetadata.ts +0 -3
  164. package/src/components/RichTextRenderer/RichTextReference.ts +0 -3
  165. package/src/components/RichTextRenderer/RichTextRenderMetadata.ts +0 -16
  166. package/src/components/RichTextRenderer/RichTextRenderMetadataContext.ts +0 -20
  167. package/src/components/RichTextRenderer/RichTextRenderer.tsx +0 -168
  168. package/src/components/RichTextRenderer/RichTextRendererError.ts +0 -1
  169. package/src/components/RichTextRenderer/RootEditorNode.ts +0 -12
  170. package/src/components/RichTextRenderer/defaultDeserialize.ts +0 -19
  171. package/src/components/RichTextRenderer/index.ts +0 -15
  172. package/src/components/RichTextRenderer/renderChildren.tsx +0 -50
  173. package/src/components/RichTextRenderer/resolveRichTextElementMetadata.ts +0 -50
  174. package/src/components/index.ts +0 -1
@@ -1,20 +0,0 @@
1
- import { createContext, useContext } from 'react'
2
- import type { RichTextElement } from './RichTextElement'
3
- import type { RichTextLeaf } from './RichTextLeaf'
4
- import type { RichTextReference } from './RichTextReference'
5
- import type { RichTextRenderMetadata } from './RichTextRenderMetadata'
6
-
7
- export const RichTextRenderMetadataContext = createContext<RichTextRenderMetadata<any, any, any>>({
8
- formatVersion: 0,
9
- referencesField: undefined,
10
- referenceDiscriminationField: undefined,
11
- referenceRenderers: {},
12
- references: undefined,
13
- })
14
- RichTextRenderMetadataContext.displayName = 'RichTextRenderMetadataContext'
15
-
16
- export const useRichTextRenderMetadata = <
17
- CustomElements extends RichTextElement = never,
18
- CustomLeaves extends RichTextLeaf = never,
19
- Reference extends RichTextReference = RichTextReference,
20
- >() => useContext(RichTextRenderMetadataContext) as RichTextRenderMetadata<CustomElements, CustomLeaves, Reference>
@@ -1,168 +0,0 @@
1
- import { ComponentType, createElement, memo, ReactElement, ReactNode, useMemo } from 'react'
2
- import { defaultDeserialize } from './defaultDeserialize'
3
- import type { RenderElement } from './ElementRenderer'
4
- import type { RenderLeaf } from './LeafRenderer'
5
- import type { NormalizedRichTextBlock } from './NormalizedRichTextBlock'
6
- import type { ReferenceRenderer } from './ReferenceRenderer'
7
- import { renderChildren } from './renderChildren'
8
- import type { RichTextBlock } from './RichTextBlock'
9
- import type { RichTextElement } from './RichTextElement'
10
- import type { RichTextLeaf } from './RichTextLeaf'
11
- import type { RichTextReference } from './RichTextReference'
12
- import { RichTextRendererError } from './RichTextRendererError'
13
- import { RichTextRenderMetadataContext } from './RichTextRenderMetadataContext'
14
- import type { RootEditorNode } from './RootEditorNode'
15
-
16
- export interface RichTextRendererFieldProps {
17
- source: string | null
18
- }
19
-
20
- export interface RichTextRendererBlockProps<
21
- CustomElements extends RichTextElement = never,
22
- CustomLeaves extends RichTextLeaf = never,
23
- > {
24
- blocks: readonly RichTextBlock[]
25
- referenceRenderers?: Record<string, ReferenceRenderer<any, CustomElements, CustomLeaves>>
26
- sourceField?: string
27
- referencesField?: string
28
- referenceDiscriminationField?: string
29
- }
30
-
31
- export type RichTextRendererProps<
32
- CustomElements extends RichTextElement = never,
33
- CustomLeaves extends RichTextLeaf = never,
34
- > = {
35
- deserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>
36
- renderElement?: RenderElement<CustomElements, CustomLeaves>
37
- renderLeaf?: RenderLeaf<CustomLeaves>
38
- attributeNamePrefix?: string
39
- renderBlock?: ComponentType<{ block: unknown, children?: ReactNode }>
40
- } & (RichTextRendererFieldProps | RichTextRendererBlockProps<CustomElements, CustomLeaves>)
41
-
42
- /**
43
- * @group Content rendering
44
- */
45
- export const RichTextRenderer = memo(function RichTextRenderer<
46
- CustomElements extends RichTextElement = never,
47
- CustomLeaves extends RichTextLeaf = never,
48
- >({
49
- deserialize = defaultDeserialize,
50
- renderElement,
51
- renderLeaf,
52
- renderBlock = ({ children }) => <>{children}</>,
53
- attributeNamePrefix,
54
- ...sourceProps
55
- }: RichTextRendererProps<CustomElements, CustomLeaves>) {
56
- const normalizedSource = useMemo<NormalizedRichTextBlock<CustomElements, CustomLeaves>[]>(() => {
57
- if ('source' in sourceProps && !('blocks' in sourceProps)) {
58
- return [
59
- {
60
- content: sourceProps.source
61
- ? deserialize(sourceProps.source)
62
- : {
63
- formatVersion: 0,
64
- children: [],
65
- },
66
- id: undefined,
67
- referencesField: undefined,
68
- referenceDiscriminationField: undefined,
69
- referenceRenderers: {},
70
- references: undefined,
71
- },
72
- ]
73
- }
74
- if (!('source' in sourceProps)) {
75
- const sourceField = sourceProps.sourceField ?? 'source'
76
- const referencesField = sourceProps.referencesField ?? 'references'
77
- const referenceDiscriminationField = sourceProps.referenceDiscriminationField ?? 'type'
78
-
79
- return sourceProps.blocks.map(block => {
80
- if (!(sourceField in block)) {
81
- throw new RichTextRendererError(
82
- `Found a block without a '${sourceField}' field. ` +
83
- (sourceProps.sourceField === undefined
84
- ? `The 'sourceField' prop has not been supplied, and so '${sourceField}' was used as a default.`
85
- : `That is what the 'sourceField' prop has been set to, and so either this is a typo, ` +
86
- `or the data supplied is invalid.`),
87
- )
88
- }
89
- const source = block[sourceField]
90
- if (typeof source !== 'string') {
91
- throw new RichTextRendererError(`Found a block whose source is not a string.`)
92
- }
93
-
94
- if (sourceProps.referencesField !== undefined && !(referencesField in block)) {
95
- throw new RichTextRendererError(
96
- `The 'referencesField' prop is set to '${referencesField}' but a block without such field ` +
97
- `has been encountered. Unless this is just a typo, ` +
98
- `if you do not wish to use references, avoid supplying the 'referencesField' prop.`,
99
- )
100
- }
101
- const references = block[referencesField]
102
-
103
- let normalizedReferences: Map<string, RichTextReference> | undefined = undefined
104
- if (references) {
105
- if (typeof Object(references)[Symbol.iterator] !== 'function') {
106
- throw new RichTextRendererError(`The set of references must be an iterable!`)
107
- }
108
-
109
- normalizedReferences = new Map()
110
- for (const reference of references as Iterable<RichTextReference>) {
111
- if (!('id' in reference)) {
112
- throw new RichTextRendererError(`Found a reference without an id field.`)
113
- }
114
- if (!(referenceDiscriminationField in reference)) {
115
- throw new RichTextRendererError(
116
- `Found a reference without a '${referenceDiscriminationField}' field. ` +
117
- (sourceProps.referenceDiscriminationField === undefined
118
- ? `The 'referenceDiscriminationField' prop has not been supplied, ` +
119
- `and so '${referenceDiscriminationField}' was used as a default.`
120
- : `That is what the 'referenceDiscriminationField' prop has been set to, ` +
121
- `and so either this is a typo, or the data supplied is invalid.`),
122
- )
123
- }
124
- normalizedReferences.set(reference.id, reference)
125
- }
126
- }
127
- return {
128
- id: typeof block.id === 'string' ? block.id : undefined,
129
- content: deserialize(source),
130
- referenceDiscriminationField,
131
- referenceRenderers: sourceProps.referenceRenderers ?? {},
132
- referencesField,
133
- references: normalizedReferences,
134
- }
135
- })
136
- }
137
- throw new RichTextRendererError(`RichTextRenderer: invalid data supplied.`)
138
- }, [deserialize, sourceProps])
139
-
140
- return (
141
- <>
142
- {normalizedSource.map((block, i) => (
143
- <RichTextRenderMetadataContext.Provider
144
- key={block.id ?? i}
145
- value={{
146
- formatVersion: block.content.formatVersion,
147
- referenceRenderers: block.referenceRenderers,
148
- referencesField: block.referencesField,
149
- referenceDiscriminationField: block.referenceDiscriminationField,
150
- references: block.references,
151
- }}
152
- >
153
- {createElement(
154
- renderBlock, {
155
- block,
156
- }, renderChildren(block.content.children, {
157
- renderLeaf,
158
- renderElement,
159
- attributeNamePrefix,
160
- }),
161
- )}
162
- </RichTextRenderMetadataContext.Provider>
163
- ))}
164
- </>
165
- )
166
- }) as <CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never>(
167
- props: RichTextRendererProps<CustomElements, CustomLeaves>,
168
- ) => ReactElement
@@ -1 +0,0 @@
1
- export class RichTextRendererError extends Error {}
@@ -1,12 +0,0 @@
1
- import type { BuiltinElements } from './BuiltinElements'
2
- import type { BuiltinLeaves } from './BuiltinLeaves'
3
- import type { RichTextElement } from './RichTextElement'
4
- import type { RichTextLeaf } from './RichTextLeaf'
5
-
6
- export interface RootEditorNode<
7
- CustomElements extends RichTextElement = never,
8
- CustomLeaves extends RichTextLeaf = never,
9
- > {
10
- formatVersion: number
11
- children: Array<BuiltinElements<CustomElements, CustomLeaves> | CustomElements | BuiltinLeaves | CustomLeaves>
12
- }
@@ -1,19 +0,0 @@
1
- import type { RichTextElement } from './RichTextElement'
2
- import type { RichTextLeaf } from './RichTextLeaf'
3
- import type { RootEditorNode } from './RootEditorNode'
4
-
5
- export const defaultDeserialize = <
6
- CustomElements extends RichTextElement = never,
7
- CustomLeaves extends RichTextLeaf = never,
8
- >(
9
- source: string,
10
- ): RootEditorNode<CustomElements, CustomLeaves> => {
11
- try {
12
- return JSON.parse(source)
13
- } catch (e) {
14
- return {
15
- formatVersion: 0,
16
- children: [],
17
- }
18
- }
19
- }
@@ -1,15 +0,0 @@
1
- export * from './BuiltinElements'
2
- export * from './BuiltinLeaves'
3
- export * from './ReferenceRenderer'
4
- export * from './RichTextBlock'
5
- export * from './RichTextElement'
6
- export * from './RichTextElementMetadata'
7
- export * from './RichTextLeaf'
8
- export * from './RichTextLeafMetadata'
9
- export * from './RichTextReference'
10
- export * from './RichTextRenderer'
11
- export * from './RichTextRendererError'
12
- export * from './RootEditorNode'
13
- export type { RenderChildrenOptions } from './renderChildren'
14
- export type { RenderElement } from './ElementRenderer'
15
- export type { RenderLeaf } from './LeafRenderer'
@@ -1,50 +0,0 @@
1
- import type { ReactElement } from 'react'
2
- import type { BuiltinElements } from './BuiltinElements'
3
- import type { BuiltinLeaves } from './BuiltinLeaves'
4
- import { ElementRenderer, RenderElement } from './ElementRenderer'
5
- import { LeafRenderer, RenderLeaf } from './LeafRenderer'
6
- import type { RichTextElement } from './RichTextElement'
7
- import type { RichTextLeaf } from './RichTextLeaf'
8
-
9
- export interface RenderChildrenOptions<
10
- CustomElements extends RichTextElement = never,
11
- CustomLeaves extends RichTextLeaf = never,
12
- > {
13
- renderElement?: RenderElement<CustomElements, CustomLeaves>
14
- renderLeaf?: RenderLeaf<CustomLeaves>
15
- attributeNamePrefix?: string
16
- }
17
-
18
- export const renderChildren = <
19
- CustomElements extends RichTextElement = never,
20
- CustomLeaves extends RichTextLeaf = never,
21
- >(
22
- children:
23
- | CustomElements
24
- | BuiltinElements<CustomElements, CustomLeaves>
25
- | CustomLeaves
26
- | BuiltinLeaves
27
- | Array<CustomElements | BuiltinElements<CustomElements, CustomLeaves> | CustomLeaves | BuiltinLeaves>,
28
- options: RenderChildrenOptions<CustomElements, CustomLeaves>,
29
- ): ReactElement => {
30
- if (!Array.isArray(children)) {
31
- children = [children]
32
- }
33
- return (
34
- <>
35
- {children.map((child, i) => {
36
- if ('text' in child) {
37
- return <LeafRenderer<CustomLeaves> key={i} leaf={child} renderLeaf={options.renderLeaf} />
38
- }
39
- if ('children' in child) {
40
- return (
41
- <ElementRenderer<CustomElements, CustomLeaves> key={i} element={child} options={options}>
42
- {renderChildren<CustomElements, CustomLeaves>(child.children as typeof children, options)}
43
- </ElementRenderer>
44
- )
45
- }
46
- return null // Throw?
47
- })}
48
- </>
49
- )
50
- }
@@ -1,50 +0,0 @@
1
- import type { BuiltinElements } from './BuiltinElements'
2
- import type { ReferenceRenderer } from './ReferenceRenderer'
3
- import type { RichTextElement } from './RichTextElement'
4
- import type { RichTextElementMetadata } from './RichTextElementMetadata'
5
- import type { RichTextLeaf } from './RichTextLeaf'
6
- import type { RichTextReference } from './RichTextReference'
7
- import { RichTextRendererError } from './RichTextRendererError'
8
- import type { RichTextRenderMetadata } from './RichTextRenderMetadata'
9
-
10
- export const resolveRichTextElementMetadata = <
11
- CustomElements extends RichTextElement = never,
12
- CustomLeaves extends RichTextLeaf = never,
13
- Reference extends RichTextReference = RichTextReference,
14
- >(
15
- element: CustomElements | BuiltinElements<CustomElements, CustomLeaves>,
16
- metadata: RichTextRenderMetadata<CustomElements, CustomLeaves, Reference>,
17
- ): RichTextElementMetadata<CustomElements, CustomLeaves, Reference> => {
18
- let reference: Reference | undefined = undefined
19
-
20
- if ('referenceId' in element && typeof element['referenceId'] === 'string') {
21
- const resolved = metadata.references?.get(element['referenceId'])
22
-
23
- if (resolved === undefined) {
24
- throw new RichTextRendererError(
25
- `Cannot find reference id '${element['referenceId']}'` +
26
- (metadata.references === undefined
27
- ? ` because its containing block's lacks the '${metadata.referencesField}' field. `
28
- : `.`),
29
- )
30
- }
31
- reference = resolved as Reference
32
- }
33
-
34
- let referenceRenderer: ReferenceRenderer<Reference, CustomElements, CustomLeaves> | undefined = undefined
35
- let referenceType: string | undefined = undefined
36
-
37
- if (reference && metadata.referenceDiscriminationField) {
38
- referenceType = (reference as Reference & Record<typeof metadata.referenceDiscriminationField, string>)[
39
- metadata.referenceDiscriminationField
40
- ]
41
- referenceRenderer = metadata.referenceRenderers[referenceType]
42
- }
43
-
44
- return {
45
- formatVersion: metadata.formatVersion,
46
- reference,
47
- referenceType,
48
- referenceRenderer,
49
- }
50
- }
@@ -1 +0,0 @@
1
- export * from './RichTextRenderer'