tinacms 0.68.15 → 0.69.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/dist/index.es.js +7 -5
- package/dist/index.js +7 -5
- package/dist/{rich-text.d.ts → rich-text/index.d.ts} +6 -0
- package/dist/rich-text/index.es.js +221 -0
- package/dist/{rich-text.js → rich-text/index.js} +142 -144
- package/dist/tina-cms.d.ts +1 -101
- package/dist/types/cms.d.ts +64 -0
- package/package.json +15 -8
- package/dist/rich-text.es.js +0 -223
package/dist/index.d.ts
CHANGED
|
@@ -20,7 +20,8 @@ export * from '@tinacms/toolkit';
|
|
|
20
20
|
export { TinaAdmin } from './admin';
|
|
21
21
|
export { RouteMappingPlugin } from './admin/plugins/route-mapping';
|
|
22
22
|
export { TinaAdminApi } from './admin/api';
|
|
23
|
-
import { TinaCMSProvider2
|
|
23
|
+
import { TinaCMSProvider2 } from './tina-cms';
|
|
24
|
+
import type { TinaCMSProviderDefaultProps } from './types/cms';
|
|
24
25
|
export type { TinaCMSProviderDefaultProps };
|
|
25
26
|
export default TinaCMSProvider2;
|
|
26
27
|
import type { TinaCloudSchema as TinaCloudSchemaBase, TinaCloudCollection as TinaCloudCollectionBase, TinaCloudTemplateBase as TinaTemplate, TinaFieldBase } from '@tinacms/schema-tools';
|
package/dist/index.es.js
CHANGED
|
@@ -4016,16 +4016,18 @@ const TinaCMSProvider2 = ({
|
|
|
4016
4016
|
...props
|
|
4017
4017
|
}) => {
|
|
4018
4018
|
var _a;
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
if (!apiURL && !validOldSetup) {
|
|
4022
|
-
throw new Error(`Must provide apiUrl or a client to the TinaWrapper component`);
|
|
4019
|
+
if (props == null ? void 0 : props.apiURL) {
|
|
4020
|
+
console.warn("The apiURL prop is deprecated. Please see https://tina.io/blog/tina-v-0.68.14 for information on how to upgrade to the new API");
|
|
4023
4021
|
}
|
|
4022
|
+
const apiURL = ((_a = props == null ? void 0 : props.client) == null ? void 0 : _a.apiUrl) || (props == null ? void 0 : props.apiURL);
|
|
4024
4023
|
const { branch, clientId, isLocalClient } = apiURL ? parseURL(apiURL) : {
|
|
4025
4024
|
branch: props.branch,
|
|
4026
4025
|
clientId: props.clientId,
|
|
4027
|
-
isLocalClient: props.isLocalClient
|
|
4026
|
+
isLocalClient: props == null ? void 0 : props.isLocalClient
|
|
4028
4027
|
};
|
|
4028
|
+
if (typeof isLocalClient === "undefined" || !isLocalClient && (!branch || !clientId)) {
|
|
4029
|
+
throw new Error("Invalid setup. See https://tina.io/docs/tina-cloud/connecting-site/ for more information.");
|
|
4030
|
+
}
|
|
4029
4031
|
if (!schema) {
|
|
4030
4032
|
throw new Error("`schema` is required to be passed as a property to `TinaProvider`. You can learn more about this change here: https://github.com/tinacms/tinacms/pull/2823");
|
|
4031
4033
|
}
|
package/dist/index.js
CHANGED
|
@@ -4034,16 +4034,18 @@ mutation addPendingDocumentMutation(
|
|
|
4034
4034
|
...props
|
|
4035
4035
|
}) => {
|
|
4036
4036
|
var _a;
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
if (!apiURL && !validOldSetup) {
|
|
4040
|
-
throw new Error(`Must provide apiUrl or a client to the TinaWrapper component`);
|
|
4037
|
+
if (props == null ? void 0 : props.apiURL) {
|
|
4038
|
+
console.warn("The apiURL prop is deprecated. Please see https://tina.io/blog/tina-v-0.68.14 for information on how to upgrade to the new API");
|
|
4041
4039
|
}
|
|
4040
|
+
const apiURL = ((_a = props == null ? void 0 : props.client) == null ? void 0 : _a.apiUrl) || (props == null ? void 0 : props.apiURL);
|
|
4042
4041
|
const { branch, clientId, isLocalClient } = apiURL ? parseURL(apiURL) : {
|
|
4043
4042
|
branch: props.branch,
|
|
4044
4043
|
clientId: props.clientId,
|
|
4045
|
-
isLocalClient: props.isLocalClient
|
|
4044
|
+
isLocalClient: props == null ? void 0 : props.isLocalClient
|
|
4046
4045
|
};
|
|
4046
|
+
if (typeof isLocalClient === "undefined" || !isLocalClient && (!branch || !clientId)) {
|
|
4047
|
+
throw new Error("Invalid setup. See https://tina.io/docs/tina-cloud/connecting-site/ for more information.");
|
|
4048
|
+
}
|
|
4047
4049
|
if (!schema) {
|
|
4048
4050
|
throw new Error("`schema` is required to be passed as a property to `TinaProvider`. You can learn more about this change here: https://github.com/tinacms/tinacms/pull/2823");
|
|
4049
4051
|
}
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
const TinaMarkdown = ({
|
|
3
|
+
content,
|
|
4
|
+
components = {}
|
|
5
|
+
}) => {
|
|
6
|
+
if (!content) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
const nodes = Array.isArray(content) ? content : content.children;
|
|
10
|
+
if (!nodes) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, nodes.map((child, index) => {
|
|
14
|
+
return /* @__PURE__ */ React.createElement(MemoNode, {
|
|
15
|
+
components,
|
|
16
|
+
key: index,
|
|
17
|
+
child
|
|
18
|
+
});
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
const Leaf = (props) => {
|
|
22
|
+
if (props.bold) {
|
|
23
|
+
const { bold, ...rest } = props;
|
|
24
|
+
if (props.components.bold) {
|
|
25
|
+
const Component = props.components.bold;
|
|
26
|
+
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
27
|
+
...rest
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
return /* @__PURE__ */ React.createElement("strong", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
31
|
+
...rest
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
if (props.italic) {
|
|
35
|
+
const { italic, ...rest } = props;
|
|
36
|
+
if (props.components.italic) {
|
|
37
|
+
const Component = props.components.italic;
|
|
38
|
+
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
39
|
+
...rest
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
return /* @__PURE__ */ React.createElement("em", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
43
|
+
...rest
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
if (props.underline) {
|
|
47
|
+
const { underline, ...rest } = props;
|
|
48
|
+
if (props.components.underline) {
|
|
49
|
+
const Component = props.components.underline;
|
|
50
|
+
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
51
|
+
...rest
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
return /* @__PURE__ */ React.createElement("u", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
55
|
+
...rest
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
if (props.strikethrough) {
|
|
59
|
+
const { strikethrough, ...rest } = props;
|
|
60
|
+
if (props.components.strikethrough) {
|
|
61
|
+
const Component = props.components.strikethrough;
|
|
62
|
+
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
63
|
+
...rest
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
return /* @__PURE__ */ React.createElement("s", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
67
|
+
...rest
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
if (props.code) {
|
|
71
|
+
const { code, ...rest } = props;
|
|
72
|
+
if (props.components.code) {
|
|
73
|
+
const Component = props.components.code;
|
|
74
|
+
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
75
|
+
...rest
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
return /* @__PURE__ */ React.createElement("code", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
79
|
+
...rest
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
82
|
+
return /* @__PURE__ */ React.createElement(React.Fragment, null, props.text);
|
|
83
|
+
};
|
|
84
|
+
const MemoNode = (props) => {
|
|
85
|
+
const MNode = React.useMemo(() => /* @__PURE__ */ React.createElement(Node, {
|
|
86
|
+
...props
|
|
87
|
+
}), [JSON.stringify(props)]);
|
|
88
|
+
return MNode;
|
|
89
|
+
};
|
|
90
|
+
const Node = ({ components, child }) => {
|
|
91
|
+
const { children, ...props } = child;
|
|
92
|
+
switch (child.type) {
|
|
93
|
+
case "h1":
|
|
94
|
+
case "h2":
|
|
95
|
+
case "h3":
|
|
96
|
+
case "h4":
|
|
97
|
+
case "h5":
|
|
98
|
+
case "h6":
|
|
99
|
+
case "p":
|
|
100
|
+
case "blockquote":
|
|
101
|
+
case "ol":
|
|
102
|
+
case "ul":
|
|
103
|
+
case "li":
|
|
104
|
+
if (components[child.type]) {
|
|
105
|
+
const Component2 = components[child.type];
|
|
106
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
107
|
+
...props
|
|
108
|
+
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
109
|
+
components,
|
|
110
|
+
content: children
|
|
111
|
+
}));
|
|
112
|
+
}
|
|
113
|
+
return React.createElement(child.type, {
|
|
114
|
+
children: /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
115
|
+
components,
|
|
116
|
+
content: children
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
case "lic":
|
|
120
|
+
return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
121
|
+
components,
|
|
122
|
+
content: child.children
|
|
123
|
+
}));
|
|
124
|
+
case "img":
|
|
125
|
+
if (components[child.type]) {
|
|
126
|
+
const Component2 = components[child.type];
|
|
127
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
128
|
+
...props
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return /* @__PURE__ */ React.createElement("img", {
|
|
132
|
+
src: child.url,
|
|
133
|
+
alt: child.caption
|
|
134
|
+
});
|
|
135
|
+
case "a":
|
|
136
|
+
if (components[child.type]) {
|
|
137
|
+
const Component2 = components[child.type];
|
|
138
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
139
|
+
...props
|
|
140
|
+
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
141
|
+
components,
|
|
142
|
+
content: children
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
145
|
+
return /* @__PURE__ */ React.createElement("a", {
|
|
146
|
+
href: child.url
|
|
147
|
+
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
148
|
+
components,
|
|
149
|
+
content: children
|
|
150
|
+
}));
|
|
151
|
+
case "code_block":
|
|
152
|
+
const value = child.value;
|
|
153
|
+
if (components[child.type]) {
|
|
154
|
+
const Component2 = components[child.type];
|
|
155
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
156
|
+
...props
|
|
157
|
+
}, value);
|
|
158
|
+
}
|
|
159
|
+
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, value));
|
|
160
|
+
case "hr":
|
|
161
|
+
if (components[child.type]) {
|
|
162
|
+
const Component2 = components[child.type];
|
|
163
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
164
|
+
...props
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
return /* @__PURE__ */ React.createElement("hr", null);
|
|
168
|
+
case "break":
|
|
169
|
+
if (components[child.type]) {
|
|
170
|
+
const Component2 = components[child.type];
|
|
171
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
172
|
+
...props
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return /* @__PURE__ */ React.createElement("br", null);
|
|
176
|
+
case "text":
|
|
177
|
+
return /* @__PURE__ */ React.createElement(Leaf, {
|
|
178
|
+
components,
|
|
179
|
+
...child
|
|
180
|
+
});
|
|
181
|
+
case "mdxJsxTextElement":
|
|
182
|
+
case "mdxJsxFlowElement":
|
|
183
|
+
const Component = components[child.name];
|
|
184
|
+
if (Component) {
|
|
185
|
+
const props2 = child.props ? child.props : {};
|
|
186
|
+
return /* @__PURE__ */ React.createElement(Component, {
|
|
187
|
+
...props2
|
|
188
|
+
});
|
|
189
|
+
} else {
|
|
190
|
+
const ComponentMissing = components["component_missing"];
|
|
191
|
+
if (ComponentMissing) {
|
|
192
|
+
return /* @__PURE__ */ React.createElement(ComponentMissing, {
|
|
193
|
+
name: child.name
|
|
194
|
+
});
|
|
195
|
+
} else {
|
|
196
|
+
return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
case "maybe_mdx":
|
|
200
|
+
return null;
|
|
201
|
+
case "html":
|
|
202
|
+
case "html_inline":
|
|
203
|
+
if (components[child.type]) {
|
|
204
|
+
const Component2 = components[child.type];
|
|
205
|
+
return /* @__PURE__ */ React.createElement(Component2, {
|
|
206
|
+
...props
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return child.value;
|
|
210
|
+
case "invalid_markdown":
|
|
211
|
+
return /* @__PURE__ */ React.createElement("pre", null, child.value);
|
|
212
|
+
default:
|
|
213
|
+
if (typeof child.text === "string") {
|
|
214
|
+
return /* @__PURE__ */ React.createElement(Leaf, {
|
|
215
|
+
components,
|
|
216
|
+
...child
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
export { TinaMarkdown };
|
|
@@ -18,150 +18,11 @@
|
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
20
|
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, nodes.map((child, index) => {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
case "h3":
|
|
27
|
-
case "h4":
|
|
28
|
-
case "h5":
|
|
29
|
-
case "h6":
|
|
30
|
-
case "p":
|
|
31
|
-
case "blockquote":
|
|
32
|
-
case "ol":
|
|
33
|
-
case "ul":
|
|
34
|
-
case "li":
|
|
35
|
-
if (components[child.type]) {
|
|
36
|
-
const Component2 = components[child.type];
|
|
37
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
38
|
-
key,
|
|
39
|
-
...props
|
|
40
|
-
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
41
|
-
components,
|
|
42
|
-
content: children
|
|
43
|
-
}));
|
|
44
|
-
}
|
|
45
|
-
return React__default["default"].createElement(child.type, {
|
|
46
|
-
key,
|
|
47
|
-
children: /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
48
|
-
components,
|
|
49
|
-
content: children
|
|
50
|
-
})
|
|
51
|
-
});
|
|
52
|
-
case "lic":
|
|
53
|
-
return /* @__PURE__ */ React__default["default"].createElement("div", {
|
|
54
|
-
key
|
|
55
|
-
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
56
|
-
components,
|
|
57
|
-
content: child.children
|
|
58
|
-
}));
|
|
59
|
-
case "img":
|
|
60
|
-
if (components[child.type]) {
|
|
61
|
-
const Component2 = components[child.type];
|
|
62
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
63
|
-
key,
|
|
64
|
-
...props
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
return /* @__PURE__ */ React__default["default"].createElement("img", {
|
|
68
|
-
key,
|
|
69
|
-
src: child.url,
|
|
70
|
-
alt: child.caption
|
|
71
|
-
});
|
|
72
|
-
case "a":
|
|
73
|
-
if (components[child.type]) {
|
|
74
|
-
const Component2 = components[child.type];
|
|
75
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
76
|
-
key,
|
|
77
|
-
...props
|
|
78
|
-
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
79
|
-
components,
|
|
80
|
-
content: children
|
|
81
|
-
}));
|
|
82
|
-
}
|
|
83
|
-
return /* @__PURE__ */ React__default["default"].createElement("a", {
|
|
84
|
-
key,
|
|
85
|
-
href: child.url
|
|
86
|
-
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
87
|
-
components,
|
|
88
|
-
content: children
|
|
89
|
-
}));
|
|
90
|
-
case "code_block":
|
|
91
|
-
const value = child.children.map((item) => {
|
|
92
|
-
var _a;
|
|
93
|
-
return item.children ? ((_a = item.children[0]) == null ? void 0 : _a.text) || "" : "";
|
|
94
|
-
}).join("\n");
|
|
95
|
-
if (components[child.type]) {
|
|
96
|
-
const Component2 = components[child.type];
|
|
97
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
98
|
-
key,
|
|
99
|
-
...props
|
|
100
|
-
}, value);
|
|
101
|
-
}
|
|
102
|
-
return /* @__PURE__ */ React__default["default"].createElement("pre", {
|
|
103
|
-
key
|
|
104
|
-
}, /* @__PURE__ */ React__default["default"].createElement("code", null, value));
|
|
105
|
-
case "hr":
|
|
106
|
-
if (components[child.type]) {
|
|
107
|
-
const Component2 = components[child.type];
|
|
108
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
109
|
-
key,
|
|
110
|
-
...props
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return /* @__PURE__ */ React__default["default"].createElement("hr", {
|
|
114
|
-
key
|
|
115
|
-
});
|
|
116
|
-
case "break":
|
|
117
|
-
if (components[child.type]) {
|
|
118
|
-
const Component2 = components[child.type];
|
|
119
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
120
|
-
key,
|
|
121
|
-
...props
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
return /* @__PURE__ */ React__default["default"].createElement("br", {
|
|
125
|
-
key
|
|
126
|
-
});
|
|
127
|
-
case "text":
|
|
128
|
-
return /* @__PURE__ */ React__default["default"].createElement(Leaf, {
|
|
129
|
-
key,
|
|
130
|
-
components,
|
|
131
|
-
...child
|
|
132
|
-
});
|
|
133
|
-
case "mdxJsxTextElement":
|
|
134
|
-
case "mdxJsxFlowElement":
|
|
135
|
-
const Component = components[child.name];
|
|
136
|
-
if (Component) {
|
|
137
|
-
const props2 = child.props ? child.props : {};
|
|
138
|
-
return /* @__PURE__ */ React__default["default"].createElement(Component, {
|
|
139
|
-
key,
|
|
140
|
-
...props2
|
|
141
|
-
});
|
|
142
|
-
} else {
|
|
143
|
-
const ComponentMissing = components["component_missing"];
|
|
144
|
-
if (ComponentMissing) {
|
|
145
|
-
return /* @__PURE__ */ React__default["default"].createElement(ComponentMissing, {
|
|
146
|
-
key,
|
|
147
|
-
name: child.name
|
|
148
|
-
});
|
|
149
|
-
} else {
|
|
150
|
-
throw new Error(`No component provided for ${child.name}`);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
case "maybe_mdx":
|
|
154
|
-
return null;
|
|
155
|
-
default:
|
|
156
|
-
if (typeof child.text === "string") {
|
|
157
|
-
return /* @__PURE__ */ React__default["default"].createElement(Leaf, {
|
|
158
|
-
key,
|
|
159
|
-
components,
|
|
160
|
-
...child
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
console.log(`No tina renderer for ${child.type}`, child);
|
|
164
|
-
}
|
|
21
|
+
return /* @__PURE__ */ React__default["default"].createElement(MemoNode, {
|
|
22
|
+
components,
|
|
23
|
+
key: index,
|
|
24
|
+
child
|
|
25
|
+
});
|
|
165
26
|
}));
|
|
166
27
|
};
|
|
167
28
|
const Leaf = (props) => {
|
|
@@ -227,6 +88,143 @@
|
|
|
227
88
|
}
|
|
228
89
|
return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, props.text);
|
|
229
90
|
};
|
|
91
|
+
const MemoNode = (props) => {
|
|
92
|
+
const MNode = React__default["default"].useMemo(() => /* @__PURE__ */ React__default["default"].createElement(Node, {
|
|
93
|
+
...props
|
|
94
|
+
}), [JSON.stringify(props)]);
|
|
95
|
+
return MNode;
|
|
96
|
+
};
|
|
97
|
+
const Node = ({ components, child }) => {
|
|
98
|
+
const { children, ...props } = child;
|
|
99
|
+
switch (child.type) {
|
|
100
|
+
case "h1":
|
|
101
|
+
case "h2":
|
|
102
|
+
case "h3":
|
|
103
|
+
case "h4":
|
|
104
|
+
case "h5":
|
|
105
|
+
case "h6":
|
|
106
|
+
case "p":
|
|
107
|
+
case "blockquote":
|
|
108
|
+
case "ol":
|
|
109
|
+
case "ul":
|
|
110
|
+
case "li":
|
|
111
|
+
if (components[child.type]) {
|
|
112
|
+
const Component2 = components[child.type];
|
|
113
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
114
|
+
...props
|
|
115
|
+
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
116
|
+
components,
|
|
117
|
+
content: children
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
return React__default["default"].createElement(child.type, {
|
|
121
|
+
children: /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
122
|
+
components,
|
|
123
|
+
content: children
|
|
124
|
+
})
|
|
125
|
+
});
|
|
126
|
+
case "lic":
|
|
127
|
+
return /* @__PURE__ */ React__default["default"].createElement("div", null, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
128
|
+
components,
|
|
129
|
+
content: child.children
|
|
130
|
+
}));
|
|
131
|
+
case "img":
|
|
132
|
+
if (components[child.type]) {
|
|
133
|
+
const Component2 = components[child.type];
|
|
134
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
135
|
+
...props
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return /* @__PURE__ */ React__default["default"].createElement("img", {
|
|
139
|
+
src: child.url,
|
|
140
|
+
alt: child.caption
|
|
141
|
+
});
|
|
142
|
+
case "a":
|
|
143
|
+
if (components[child.type]) {
|
|
144
|
+
const Component2 = components[child.type];
|
|
145
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
146
|
+
...props
|
|
147
|
+
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
148
|
+
components,
|
|
149
|
+
content: children
|
|
150
|
+
}));
|
|
151
|
+
}
|
|
152
|
+
return /* @__PURE__ */ React__default["default"].createElement("a", {
|
|
153
|
+
href: child.url
|
|
154
|
+
}, /* @__PURE__ */ React__default["default"].createElement(TinaMarkdown, {
|
|
155
|
+
components,
|
|
156
|
+
content: children
|
|
157
|
+
}));
|
|
158
|
+
case "code_block":
|
|
159
|
+
const value = child.value;
|
|
160
|
+
if (components[child.type]) {
|
|
161
|
+
const Component2 = components[child.type];
|
|
162
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
163
|
+
...props
|
|
164
|
+
}, value);
|
|
165
|
+
}
|
|
166
|
+
return /* @__PURE__ */ React__default["default"].createElement("pre", null, /* @__PURE__ */ React__default["default"].createElement("code", null, value));
|
|
167
|
+
case "hr":
|
|
168
|
+
if (components[child.type]) {
|
|
169
|
+
const Component2 = components[child.type];
|
|
170
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
171
|
+
...props
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
return /* @__PURE__ */ React__default["default"].createElement("hr", null);
|
|
175
|
+
case "break":
|
|
176
|
+
if (components[child.type]) {
|
|
177
|
+
const Component2 = components[child.type];
|
|
178
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
179
|
+
...props
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return /* @__PURE__ */ React__default["default"].createElement("br", null);
|
|
183
|
+
case "text":
|
|
184
|
+
return /* @__PURE__ */ React__default["default"].createElement(Leaf, {
|
|
185
|
+
components,
|
|
186
|
+
...child
|
|
187
|
+
});
|
|
188
|
+
case "mdxJsxTextElement":
|
|
189
|
+
case "mdxJsxFlowElement":
|
|
190
|
+
const Component = components[child.name];
|
|
191
|
+
if (Component) {
|
|
192
|
+
const props2 = child.props ? child.props : {};
|
|
193
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component, {
|
|
194
|
+
...props2
|
|
195
|
+
});
|
|
196
|
+
} else {
|
|
197
|
+
const ComponentMissing = components["component_missing"];
|
|
198
|
+
if (ComponentMissing) {
|
|
199
|
+
return /* @__PURE__ */ React__default["default"].createElement(ComponentMissing, {
|
|
200
|
+
name: child.name
|
|
201
|
+
});
|
|
202
|
+
} else {
|
|
203
|
+
return /* @__PURE__ */ React__default["default"].createElement("span", null, `No component provided for ${child.name}`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
case "maybe_mdx":
|
|
207
|
+
return null;
|
|
208
|
+
case "html":
|
|
209
|
+
case "html_inline":
|
|
210
|
+
if (components[child.type]) {
|
|
211
|
+
const Component2 = components[child.type];
|
|
212
|
+
return /* @__PURE__ */ React__default["default"].createElement(Component2, {
|
|
213
|
+
...props
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
return child.value;
|
|
217
|
+
case "invalid_markdown":
|
|
218
|
+
return /* @__PURE__ */ React__default["default"].createElement("pre", null, child.value);
|
|
219
|
+
default:
|
|
220
|
+
if (typeof child.text === "string") {
|
|
221
|
+
return /* @__PURE__ */ React__default["default"].createElement(Leaf, {
|
|
222
|
+
components,
|
|
223
|
+
...child
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
};
|
|
230
228
|
exports2.TinaMarkdown = TinaMarkdown;
|
|
231
229
|
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
232
230
|
});
|
package/dist/tina-cms.d.ts
CHANGED
|
@@ -10,107 +10,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
10
10
|
See the License for the specific language governing permissions and
|
|
11
11
|
limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import type { TinaClient } from './client';
|
|
15
|
-
import { TinaCloudMediaStoreClass } from './auth';
|
|
16
|
-
import type { TinaCMS } from '@tinacms/toolkit';
|
|
17
|
-
import type { TinaCloudSchema } from '@tinacms/schema-tools';
|
|
18
|
-
import type { TinaIOConfig } from './internalClient/index';
|
|
19
13
|
import type { formifyCallback } from './hooks/use-graphql-forms';
|
|
20
|
-
import {
|
|
21
|
-
declare type APIProviderProps = {
|
|
22
|
-
/**
|
|
23
|
-
* The API url From this client will be used to make requests.
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
client?: never;
|
|
27
|
-
/**
|
|
28
|
-
* Content API URL
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
apiURL: string;
|
|
32
|
-
/**
|
|
33
|
-
* Point to the local version of GraphQL instead of tina.io
|
|
34
|
-
* https://tina.io/docs/tinacms-context/#adding-tina-to-the-sites-frontend
|
|
35
|
-
*
|
|
36
|
-
* @deprecated use apiURL instead
|
|
37
|
-
*/
|
|
38
|
-
isLocalClient?: never;
|
|
39
|
-
/**
|
|
40
|
-
* The base branch to pull content from. Note that this is ignored for local development
|
|
41
|
-
*
|
|
42
|
-
* @deprecated use apiURL instead
|
|
43
|
-
*/
|
|
44
|
-
branch?: never;
|
|
45
|
-
/**
|
|
46
|
-
* Your clientId from tina.io
|
|
47
|
-
*
|
|
48
|
-
* @deprecated use apiURL instead
|
|
49
|
-
*/
|
|
50
|
-
clientId?: never;
|
|
51
|
-
} | {
|
|
52
|
-
/**
|
|
53
|
-
* The API url From this client will be used to make requests.
|
|
54
|
-
*
|
|
55
|
-
*/
|
|
56
|
-
client: TinaClient<unknown>;
|
|
57
|
-
/**
|
|
58
|
-
* Content API URL
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
apiURL?: never;
|
|
62
|
-
/**
|
|
63
|
-
* Point to the local version of GraphQL instead of tina.io
|
|
64
|
-
* https://tina.io/docs/tinacms-context/#adding-tina-to-the-sites-frontend
|
|
65
|
-
*
|
|
66
|
-
* @deprecated use apiURL instead
|
|
67
|
-
*/
|
|
68
|
-
isLocalClient?: never;
|
|
69
|
-
/**
|
|
70
|
-
* The base branch to pull content from. Note that this is ignored for local development
|
|
71
|
-
*
|
|
72
|
-
* @deprecated use apiURL instead
|
|
73
|
-
*/
|
|
74
|
-
branch?: never;
|
|
75
|
-
/**
|
|
76
|
-
* Your clientId from tina.io
|
|
77
|
-
*
|
|
78
|
-
* @deprecated use apiURL instead
|
|
79
|
-
*/
|
|
80
|
-
clientId?: never;
|
|
81
|
-
};
|
|
82
|
-
interface BaseProviderProps {
|
|
83
|
-
/** Callback if you need access to the TinaCMS instance */
|
|
84
|
-
cmsCallback?: (cms: TinaCMS) => TinaCMS;
|
|
85
|
-
/** Callback if you need access to the "formify" API */
|
|
86
|
-
formifyCallback?: formifyCallback;
|
|
87
|
-
/** Callback if you need access to the "document creator" API */
|
|
88
|
-
documentCreatorCallback?: Parameters<typeof useDocumentCreatorPlugin>[0];
|
|
89
|
-
/** TinaCMS media store instance */
|
|
90
|
-
mediaStore?: TinaCloudMediaStoreClass | (() => Promise<TinaCloudMediaStoreClass>);
|
|
91
|
-
tinaioConfig?: TinaIOConfig;
|
|
92
|
-
schema?: TinaCloudSchema<false>;
|
|
93
|
-
}
|
|
94
|
-
declare type QueryProviderProps = {
|
|
95
|
-
/** Your React page component */
|
|
96
|
-
children: (props?: any) => React.ReactNode;
|
|
97
|
-
/** The query from getStaticProps */
|
|
98
|
-
query: string | undefined;
|
|
99
|
-
/** Any variables from getStaticProps */
|
|
100
|
-
variables: object | undefined;
|
|
101
|
-
/** The `data` from getStaticProps */
|
|
102
|
-
data: object;
|
|
103
|
-
} | {
|
|
104
|
-
/** Your React page component */
|
|
105
|
-
children: React.ReactNode;
|
|
106
|
-
/** The query from getStaticProps */
|
|
107
|
-
query?: never;
|
|
108
|
-
/** Any variables from getStaticProps */
|
|
109
|
-
variables?: never;
|
|
110
|
-
/** The `data` from getStaticProps */
|
|
111
|
-
data?: never;
|
|
112
|
-
};
|
|
113
|
-
export declare type TinaCMSProviderDefaultProps = QueryProviderProps & APIProviderProps & BaseProviderProps;
|
|
14
|
+
import { TinaCMSProviderDefaultProps } from './types/cms';
|
|
114
15
|
export declare const TinaCMSProvider2: ({ query, documentCreatorCallback, formifyCallback, schema, ...props }: TinaCMSProviderDefaultProps) => JSX.Element;
|
|
115
16
|
export declare const TinaDataProvider: ({ children, formifyCallback, }: {
|
|
116
17
|
children: any;
|
|
@@ -144,4 +45,3 @@ export declare const staticRequest: ({ query, variables, }: {
|
|
|
144
45
|
* query or muation
|
|
145
46
|
*/
|
|
146
47
|
export declare function gql(strings: TemplateStringsArray, ...args: string[]): string;
|
|
147
|
-
export {};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Copyright 2021 Forestry.io Holdings, Inc.
|
|
3
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
you may not use this file except in compliance with the License.
|
|
5
|
+
You may obtain a copy of the License at
|
|
6
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
+
Unless required by applicable law or agreed to in writing, software
|
|
8
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
+
See the License for the specific language governing permissions and
|
|
11
|
+
limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
/// <reference types="react" />
|
|
14
|
+
import type { TinaCMS } from '@tinacms/toolkit';
|
|
15
|
+
import type { TinaCloudSchema, TinaCloudSchemaConfig } from '@tinacms/schema-tools';
|
|
16
|
+
import type { TinaCloudMediaStoreClass } from '../auth';
|
|
17
|
+
import type { useDocumentCreatorPlugin } from '../hooks/use-content-creator';
|
|
18
|
+
import type { formifyCallback } from '../hooks/use-graphql-forms';
|
|
19
|
+
import type { TinaIOConfig } from '../internalClient';
|
|
20
|
+
import type { TinaClient } from '../client';
|
|
21
|
+
declare type APIProviderProps = {
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Please see https://tina.io/blog/tina-v-0.68.14 for information on how to upgrade to the new API
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
apiURL?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The API url From this client will be used to make requests.
|
|
29
|
+
*/
|
|
30
|
+
client: TinaClient<unknown>;
|
|
31
|
+
};
|
|
32
|
+
interface BaseProviderProps {
|
|
33
|
+
/** Callback if you need access to the TinaCMS instance */
|
|
34
|
+
cmsCallback?: (cms: TinaCMS) => TinaCMS;
|
|
35
|
+
/** Callback if you need access to the "formify" API */
|
|
36
|
+
formifyCallback?: formifyCallback;
|
|
37
|
+
/** Callback if you need access to the "document creator" API */
|
|
38
|
+
documentCreatorCallback?: Parameters<typeof useDocumentCreatorPlugin>[0];
|
|
39
|
+
/** TinaCMS media store instance */
|
|
40
|
+
mediaStore?: TinaCloudMediaStoreClass | (() => Promise<TinaCloudMediaStoreClass>);
|
|
41
|
+
tinaioConfig?: TinaIOConfig;
|
|
42
|
+
schema?: TinaCloudSchema<false>;
|
|
43
|
+
}
|
|
44
|
+
declare type QueryProviderProps = {
|
|
45
|
+
/** Your React page component */
|
|
46
|
+
children: (props?: any) => React.ReactNode;
|
|
47
|
+
/** The query from getStaticProps */
|
|
48
|
+
query: string | undefined;
|
|
49
|
+
/** Any variables from getStaticProps */
|
|
50
|
+
variables: object | undefined;
|
|
51
|
+
/** The `data` from getStaticProps */
|
|
52
|
+
data: object;
|
|
53
|
+
} | {
|
|
54
|
+
/** Your React page component */
|
|
55
|
+
children: React.ReactNode;
|
|
56
|
+
/** The query from getStaticProps */
|
|
57
|
+
query?: never;
|
|
58
|
+
/** Any variables from getStaticProps */
|
|
59
|
+
variables?: never;
|
|
60
|
+
/** The `data` from getStaticProps */
|
|
61
|
+
data?: never;
|
|
62
|
+
};
|
|
63
|
+
export declare type TinaCMSProviderDefaultProps = QueryProviderProps & APIProviderProps & BaseProviderProps & TinaCloudSchemaConfig;
|
|
64
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tinacms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "./dist/index.es.js",
|
|
6
6
|
"exports": {
|
|
@@ -20,9 +20,14 @@
|
|
|
20
20
|
"require": "./dist/edit-state.js"
|
|
21
21
|
},
|
|
22
22
|
"./dist/rich-text": {
|
|
23
|
-
"types": "./dist/rich-text.d.ts",
|
|
24
|
-
"import": "./dist/rich-text.es.js",
|
|
25
|
-
"require": "./dist/rich-text.js"
|
|
23
|
+
"types": "./dist/rich-text/index.d.ts",
|
|
24
|
+
"import": "./dist/rich-text/index.es.js",
|
|
25
|
+
"require": "./dist/rich-text/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./dist/rich-text/prism": {
|
|
28
|
+
"types": "./dist/rich-text/prism.d.ts",
|
|
29
|
+
"import": "./dist/rich-text/prism.es.js",
|
|
30
|
+
"require": "./dist/rich-text/prism.js"
|
|
26
31
|
}
|
|
27
32
|
},
|
|
28
33
|
"files": [
|
|
@@ -32,7 +37,7 @@
|
|
|
32
37
|
"entryPoints": [
|
|
33
38
|
"src/index.ts",
|
|
34
39
|
"src/edit-state.tsx",
|
|
35
|
-
"src/rich-text.tsx",
|
|
40
|
+
"src/rich-text/index.tsx",
|
|
36
41
|
"src/client.ts"
|
|
37
42
|
]
|
|
38
43
|
},
|
|
@@ -43,15 +48,17 @@
|
|
|
43
48
|
"@headlessui/react": "^1.5.0",
|
|
44
49
|
"@heroicons/react": "^1.0.4",
|
|
45
50
|
"@react-hook/window-size": "^3.0.7",
|
|
46
|
-
"@tinacms/schema-tools": "0.0
|
|
51
|
+
"@tinacms/schema-tools": "0.1.0",
|
|
47
52
|
"@tinacms/sharedctx": "0.1.2",
|
|
48
|
-
"@tinacms/toolkit": "0.
|
|
53
|
+
"@tinacms/toolkit": "0.57.0",
|
|
49
54
|
"crypto-js": "^4.0.0",
|
|
50
55
|
"fetch-ponyfill": "^7.1.0",
|
|
51
56
|
"final-form": "4.20.1",
|
|
52
57
|
"graphql": "^15.1.0",
|
|
53
58
|
"graphql-tag": "^2.11.0",
|
|
54
59
|
"lodash.set": "^4.3.2",
|
|
60
|
+
"prism-react-renderer": "^1.3.5",
|
|
61
|
+
"prism": "^4.1.2",
|
|
55
62
|
"react-icons": "^4.3.1",
|
|
56
63
|
"react-router-dom": "6",
|
|
57
64
|
"url-pattern": "^1.0.3",
|
|
@@ -63,7 +70,7 @@
|
|
|
63
70
|
"@testing-library/react": "^12.0.0",
|
|
64
71
|
"@testing-library/react-hooks": "^7.0.2",
|
|
65
72
|
"@testing-library/user-event": "^12.7.0",
|
|
66
|
-
"@tinacms/scripts": "0.
|
|
73
|
+
"@tinacms/scripts": "0.51.0",
|
|
67
74
|
"@types/jest": "^27.0.1",
|
|
68
75
|
"@types/lodash": "^4.14.169",
|
|
69
76
|
"@types/node": "^14.0.13",
|
package/dist/rich-text.es.js
DELETED
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
const TinaMarkdown = ({
|
|
3
|
-
content,
|
|
4
|
-
components = {}
|
|
5
|
-
}) => {
|
|
6
|
-
if (!content) {
|
|
7
|
-
return null;
|
|
8
|
-
}
|
|
9
|
-
const nodes = Array.isArray(content) ? content : content.children;
|
|
10
|
-
if (!nodes) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, nodes.map((child, index) => {
|
|
14
|
-
const key = index;
|
|
15
|
-
const { children, ...props } = child;
|
|
16
|
-
switch (child.type) {
|
|
17
|
-
case "h1":
|
|
18
|
-
case "h2":
|
|
19
|
-
case "h3":
|
|
20
|
-
case "h4":
|
|
21
|
-
case "h5":
|
|
22
|
-
case "h6":
|
|
23
|
-
case "p":
|
|
24
|
-
case "blockquote":
|
|
25
|
-
case "ol":
|
|
26
|
-
case "ul":
|
|
27
|
-
case "li":
|
|
28
|
-
if (components[child.type]) {
|
|
29
|
-
const Component2 = components[child.type];
|
|
30
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
31
|
-
key,
|
|
32
|
-
...props
|
|
33
|
-
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
34
|
-
components,
|
|
35
|
-
content: children
|
|
36
|
-
}));
|
|
37
|
-
}
|
|
38
|
-
return React.createElement(child.type, {
|
|
39
|
-
key,
|
|
40
|
-
children: /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
41
|
-
components,
|
|
42
|
-
content: children
|
|
43
|
-
})
|
|
44
|
-
});
|
|
45
|
-
case "lic":
|
|
46
|
-
return /* @__PURE__ */ React.createElement("div", {
|
|
47
|
-
key
|
|
48
|
-
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
49
|
-
components,
|
|
50
|
-
content: child.children
|
|
51
|
-
}));
|
|
52
|
-
case "img":
|
|
53
|
-
if (components[child.type]) {
|
|
54
|
-
const Component2 = components[child.type];
|
|
55
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
56
|
-
key,
|
|
57
|
-
...props
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return /* @__PURE__ */ React.createElement("img", {
|
|
61
|
-
key,
|
|
62
|
-
src: child.url,
|
|
63
|
-
alt: child.caption
|
|
64
|
-
});
|
|
65
|
-
case "a":
|
|
66
|
-
if (components[child.type]) {
|
|
67
|
-
const Component2 = components[child.type];
|
|
68
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
69
|
-
key,
|
|
70
|
-
...props
|
|
71
|
-
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
72
|
-
components,
|
|
73
|
-
content: children
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
return /* @__PURE__ */ React.createElement("a", {
|
|
77
|
-
key,
|
|
78
|
-
href: child.url
|
|
79
|
-
}, /* @__PURE__ */ React.createElement(TinaMarkdown, {
|
|
80
|
-
components,
|
|
81
|
-
content: children
|
|
82
|
-
}));
|
|
83
|
-
case "code_block":
|
|
84
|
-
const value = child.children.map((item) => {
|
|
85
|
-
var _a;
|
|
86
|
-
return item.children ? ((_a = item.children[0]) == null ? void 0 : _a.text) || "" : "";
|
|
87
|
-
}).join("\n");
|
|
88
|
-
if (components[child.type]) {
|
|
89
|
-
const Component2 = components[child.type];
|
|
90
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
91
|
-
key,
|
|
92
|
-
...props
|
|
93
|
-
}, value);
|
|
94
|
-
}
|
|
95
|
-
return /* @__PURE__ */ React.createElement("pre", {
|
|
96
|
-
key
|
|
97
|
-
}, /* @__PURE__ */ React.createElement("code", null, value));
|
|
98
|
-
case "hr":
|
|
99
|
-
if (components[child.type]) {
|
|
100
|
-
const Component2 = components[child.type];
|
|
101
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
102
|
-
key,
|
|
103
|
-
...props
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
return /* @__PURE__ */ React.createElement("hr", {
|
|
107
|
-
key
|
|
108
|
-
});
|
|
109
|
-
case "break":
|
|
110
|
-
if (components[child.type]) {
|
|
111
|
-
const Component2 = components[child.type];
|
|
112
|
-
return /* @__PURE__ */ React.createElement(Component2, {
|
|
113
|
-
key,
|
|
114
|
-
...props
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
return /* @__PURE__ */ React.createElement("br", {
|
|
118
|
-
key
|
|
119
|
-
});
|
|
120
|
-
case "text":
|
|
121
|
-
return /* @__PURE__ */ React.createElement(Leaf, {
|
|
122
|
-
key,
|
|
123
|
-
components,
|
|
124
|
-
...child
|
|
125
|
-
});
|
|
126
|
-
case "mdxJsxTextElement":
|
|
127
|
-
case "mdxJsxFlowElement":
|
|
128
|
-
const Component = components[child.name];
|
|
129
|
-
if (Component) {
|
|
130
|
-
const props2 = child.props ? child.props : {};
|
|
131
|
-
return /* @__PURE__ */ React.createElement(Component, {
|
|
132
|
-
key,
|
|
133
|
-
...props2
|
|
134
|
-
});
|
|
135
|
-
} else {
|
|
136
|
-
const ComponentMissing = components["component_missing"];
|
|
137
|
-
if (ComponentMissing) {
|
|
138
|
-
return /* @__PURE__ */ React.createElement(ComponentMissing, {
|
|
139
|
-
key,
|
|
140
|
-
name: child.name
|
|
141
|
-
});
|
|
142
|
-
} else {
|
|
143
|
-
throw new Error(`No component provided for ${child.name}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
case "maybe_mdx":
|
|
147
|
-
return null;
|
|
148
|
-
default:
|
|
149
|
-
if (typeof child.text === "string") {
|
|
150
|
-
return /* @__PURE__ */ React.createElement(Leaf, {
|
|
151
|
-
key,
|
|
152
|
-
components,
|
|
153
|
-
...child
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
console.log(`No tina renderer for ${child.type}`, child);
|
|
157
|
-
}
|
|
158
|
-
}));
|
|
159
|
-
};
|
|
160
|
-
const Leaf = (props) => {
|
|
161
|
-
if (props.bold) {
|
|
162
|
-
const { bold, ...rest } = props;
|
|
163
|
-
if (props.components.bold) {
|
|
164
|
-
const Component = props.components.bold;
|
|
165
|
-
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
166
|
-
...rest
|
|
167
|
-
}));
|
|
168
|
-
}
|
|
169
|
-
return /* @__PURE__ */ React.createElement("strong", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
170
|
-
...rest
|
|
171
|
-
}));
|
|
172
|
-
}
|
|
173
|
-
if (props.italic) {
|
|
174
|
-
const { italic, ...rest } = props;
|
|
175
|
-
if (props.components.italic) {
|
|
176
|
-
const Component = props.components.italic;
|
|
177
|
-
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
178
|
-
...rest
|
|
179
|
-
}));
|
|
180
|
-
}
|
|
181
|
-
return /* @__PURE__ */ React.createElement("em", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
182
|
-
...rest
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
if (props.underline) {
|
|
186
|
-
const { underline, ...rest } = props;
|
|
187
|
-
if (props.components.underline) {
|
|
188
|
-
const Component = props.components.underline;
|
|
189
|
-
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
190
|
-
...rest
|
|
191
|
-
}));
|
|
192
|
-
}
|
|
193
|
-
return /* @__PURE__ */ React.createElement("u", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
194
|
-
...rest
|
|
195
|
-
}));
|
|
196
|
-
}
|
|
197
|
-
if (props.strikethrough) {
|
|
198
|
-
const { strikethrough, ...rest } = props;
|
|
199
|
-
if (props.components.strikethrough) {
|
|
200
|
-
const Component = props.components.strikethrough;
|
|
201
|
-
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
202
|
-
...rest
|
|
203
|
-
}));
|
|
204
|
-
}
|
|
205
|
-
return /* @__PURE__ */ React.createElement("s", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
206
|
-
...rest
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
if (props.code) {
|
|
210
|
-
const { code, ...rest } = props;
|
|
211
|
-
if (props.components.code) {
|
|
212
|
-
const Component = props.components.code;
|
|
213
|
-
return /* @__PURE__ */ React.createElement(Component, null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
214
|
-
...rest
|
|
215
|
-
}));
|
|
216
|
-
}
|
|
217
|
-
return /* @__PURE__ */ React.createElement("code", null, /* @__PURE__ */ React.createElement(Leaf, {
|
|
218
|
-
...rest
|
|
219
|
-
}));
|
|
220
|
-
}
|
|
221
|
-
return /* @__PURE__ */ React.createElement(React.Fragment, null, props.text);
|
|
222
|
-
};
|
|
223
|
-
export { TinaMarkdown };
|