tinacms 0.0.0-bf22bf8-20241004045704 → 0.0.0-c312c38-20250414065513
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/README.md +1 -1
- package/dist/admin/api.d.ts +1 -0
- package/dist/admin/components/GetCollection.d.ts +2 -2
- package/dist/admin/types.d.ts +3 -0
- package/dist/auth/TinaCloudProvider.d.ts +1 -1
- package/dist/cache/node-cache.d.ts +1 -0
- package/dist/client.d.ts +1 -4
- package/dist/client.js +100 -62
- package/dist/client.mjs +59 -36
- package/dist/hooks/create-page-plugin.d.ts +1 -1
- package/dist/index.d.ts +1 -61
- package/dist/index.js +4207 -2267
- package/dist/index.mjs +4203 -2259
- package/dist/internalClient/index.d.ts +3 -3
- package/dist/node-cache-5e8db9f0.mjs +63 -0
- package/dist/react.d.ts +1 -33
- package/dist/react.js +13 -1
- package/dist/react.mjs +13 -1
- package/dist/rich-text/index.d.ts +1 -139
- package/dist/rich-text/index.js +45 -12
- package/dist/rich-text/index.mjs +45 -12
- package/dist/rich-text/prism.d.ts +1 -10
- package/dist/toolkit/components/media/media-manager.d.ts +1 -1
- package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +4 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/fixed-toolbar-buttons.d.ts +0 -4
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/icons.d.ts +2 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-element.d.ts +11 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-toolbar-button.d.ts +20 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/resizable.d.ts +39 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-cell-element.d.ts +27 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-dropdown-menu.d.ts +3 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-element.d.ts +14 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-row-element.d.ts +13 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/text-area.d.ts +5 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/common.d.ts +1 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/custom/mermaid-plugin.d.ts +2 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/code-block/index.d.ts +4 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/code-block/use-monaco.d.ts +3 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +64 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +11 -3
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +3 -3
- package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
- package/dist/toolkit/plugin-branch-switcher/branch-switcher-legacy.d.ts +1 -1
- package/dist/toolkit/plugin-branch-switcher/branch-switcher.d.ts +1 -1
- package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
- package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +5 -4
- package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
- package/dist/toolkit/tina-state.d.ts +4 -0
- package/dist/unifiedClient/index.d.ts +8 -1
- package/package.json +43 -41
- package/dist/__vite-browser-external-d06ac358.mjs +0 -4
- package/dist/node-cache-7fa2452c.mjs +0 -43
- package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { TokenObject } from '../auth/authenticate';
|
|
2
1
|
import { BranchData, EventBus } from '@tinacms/toolkit';
|
|
3
2
|
import { DocumentNode, GraphQLSchema } from 'graphql';
|
|
3
|
+
import { TokenObject } from '../auth/authenticate';
|
|
4
|
+
import { AuthProvider, Schema, TinaSchema } from '@tinacms/schema-tools';
|
|
5
|
+
import { SearchClient } from '@tinacms/search/dist/index-client';
|
|
4
6
|
import gql from 'graphql-tag';
|
|
5
|
-
import { TinaSchema, Schema, AuthProvider } from '@tinacms/schema-tools';
|
|
6
7
|
import { TinaCloudProject } from './types';
|
|
7
|
-
import { SearchClient } from '@tinacms/search/dist/index-client';
|
|
8
8
|
export * from './authProvider';
|
|
9
9
|
export type OnLoginFunc = (args: {
|
|
10
10
|
token?: TokenObject;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
const makeCacheDir = async (dir, fs, path, os) => {
|
|
2
|
+
const pathParts = dir.split(path.sep).filter(Boolean);
|
|
3
|
+
const cacheHash = pathParts[pathParts.length - 1];
|
|
4
|
+
const rootUser = pathParts[0];
|
|
5
|
+
let cacheDir = dir;
|
|
6
|
+
if (!fs.existsSync(path.join(path.sep, rootUser))) {
|
|
7
|
+
cacheDir = path.join(os.tmpdir(), cacheHash);
|
|
8
|
+
}
|
|
9
|
+
try {
|
|
10
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
11
|
+
} catch (error) {
|
|
12
|
+
throw new Error(`Failed to create cache directory: ${error.message}`);
|
|
13
|
+
}
|
|
14
|
+
return cacheDir;
|
|
15
|
+
};
|
|
16
|
+
const NodeCache = async (dir) => {
|
|
17
|
+
const fs = require("node:fs");
|
|
18
|
+
const path = require("node:path");
|
|
19
|
+
const os = require("node:os");
|
|
20
|
+
const { createHash } = require("node:crypto");
|
|
21
|
+
const cacheDir = await makeCacheDir(dir, fs, path, os);
|
|
22
|
+
return {
|
|
23
|
+
makeKey: (key) => {
|
|
24
|
+
const input = key && key instanceof Object ? JSON.stringify(key) : key || "";
|
|
25
|
+
return createHash("sha256").update(input).digest("hex");
|
|
26
|
+
},
|
|
27
|
+
get: async (key) => {
|
|
28
|
+
let readValue;
|
|
29
|
+
const cacheFilename = `${cacheDir}/${key}`;
|
|
30
|
+
try {
|
|
31
|
+
const data = await fs.promises.readFile(cacheFilename, "utf-8");
|
|
32
|
+
readValue = JSON.parse(data);
|
|
33
|
+
} catch (e) {
|
|
34
|
+
if (e.code !== "ENOENT") {
|
|
35
|
+
console.error(
|
|
36
|
+
`Failed to read cache file to ${cacheFilename}: ${e.message}`
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return readValue;
|
|
41
|
+
},
|
|
42
|
+
set: async (key, value) => {
|
|
43
|
+
const cacheFilename = `${cacheDir}/${key}`;
|
|
44
|
+
try {
|
|
45
|
+
await fs.promises.writeFile(cacheFilename, JSON.stringify(value), {
|
|
46
|
+
encoding: "utf-8",
|
|
47
|
+
flag: "wx"
|
|
48
|
+
// Don't overwrite existing caches
|
|
49
|
+
});
|
|
50
|
+
} catch (e) {
|
|
51
|
+
if (e.code !== "EEXIST") {
|
|
52
|
+
console.error(
|
|
53
|
+
`Failed to write cache file to ${cacheFilename}: ${e.message}`
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
NodeCache,
|
|
62
|
+
makeCacheDir
|
|
63
|
+
};
|
package/dist/react.d.ts
CHANGED
|
@@ -1,33 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
query: string;
|
|
3
|
-
variables: object;
|
|
4
|
-
data: T;
|
|
5
|
-
}): {
|
|
6
|
-
data: T;
|
|
7
|
-
isClient: boolean;
|
|
8
|
-
};
|
|
9
|
-
export declare function useEditState(): {
|
|
10
|
-
edit: boolean;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Grab the field name for the given attribute
|
|
14
|
-
* to signal to Tina which DOM element the field
|
|
15
|
-
* is working with.
|
|
16
|
-
*/
|
|
17
|
-
export declare const tinaField: <T extends (object & {
|
|
18
|
-
_content_source?: {
|
|
19
|
-
queryId: string;
|
|
20
|
-
path: (number | string)[];
|
|
21
|
-
};
|
|
22
|
-
}) | undefined | null>(object: T, property?: keyof Omit<NonNullable<T>, "__typename" | "_sys">, index?: number) => string;
|
|
23
|
-
export declare const addMetadata: <T extends object>(id: string, object: T & {
|
|
24
|
-
type?: string;
|
|
25
|
-
_content_source?: unknown;
|
|
26
|
-
}, path: (string | number)[]) => T;
|
|
27
|
-
/**
|
|
28
|
-
* This is a pretty rudimentary approach to hashing the query and variables to
|
|
29
|
-
* ensure we treat multiple queries on the page uniquely. It's possible
|
|
30
|
-
* that we would have collisions, and I'm not sure of the likeliness but seems
|
|
31
|
-
* like it'd be rare.
|
|
32
|
-
*/
|
|
33
|
-
export declare const hashFromQuery: (input: string) => string;
|
|
1
|
+
export * from "../src/react"
|
package/dist/react.js
CHANGED
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
React.useEffect(() => {
|
|
19
19
|
setIsClient(true);
|
|
20
20
|
setData(props.data);
|
|
21
|
+
parent.postMessage({
|
|
22
|
+
type: "url-changed"
|
|
23
|
+
});
|
|
21
24
|
}, [id]);
|
|
22
25
|
React.useEffect(() => {
|
|
23
26
|
if (quickEditEnabled) {
|
|
@@ -100,7 +103,16 @@
|
|
|
100
103
|
}
|
|
101
104
|
}, [quickEditEnabled, isInTinaIframe]);
|
|
102
105
|
React.useEffect(() => {
|
|
103
|
-
|
|
106
|
+
if (props == null ? void 0 : props.experimental___selectFormByFormId) {
|
|
107
|
+
parent.postMessage({
|
|
108
|
+
type: "user-select-form",
|
|
109
|
+
formId: props.experimental___selectFormByFormId()
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}, [id]);
|
|
113
|
+
React.useEffect(() => {
|
|
114
|
+
const { experimental___selectFormByFormId, ...rest } = props;
|
|
115
|
+
parent.postMessage({ type: "open", ...rest, id }, window.location.origin);
|
|
104
116
|
window.addEventListener("message", (event) => {
|
|
105
117
|
if (event.data.type === "quickEditEnabled") {
|
|
106
118
|
setQuickEditEnabled(event.data.value);
|
package/dist/react.mjs
CHANGED
|
@@ -15,6 +15,9 @@ function useTina(props) {
|
|
|
15
15
|
React.useEffect(() => {
|
|
16
16
|
setIsClient(true);
|
|
17
17
|
setData(props.data);
|
|
18
|
+
parent.postMessage({
|
|
19
|
+
type: "url-changed"
|
|
20
|
+
});
|
|
18
21
|
}, [id]);
|
|
19
22
|
React.useEffect(() => {
|
|
20
23
|
if (quickEditEnabled) {
|
|
@@ -97,7 +100,16 @@ function useTina(props) {
|
|
|
97
100
|
}
|
|
98
101
|
}, [quickEditEnabled, isInTinaIframe]);
|
|
99
102
|
React.useEffect(() => {
|
|
100
|
-
|
|
103
|
+
if (props == null ? void 0 : props.experimental___selectFormByFormId) {
|
|
104
|
+
parent.postMessage({
|
|
105
|
+
type: "user-select-form",
|
|
106
|
+
formId: props.experimental___selectFormByFormId()
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}, [id]);
|
|
110
|
+
React.useEffect(() => {
|
|
111
|
+
const { experimental___selectFormByFormId, ...rest } = props;
|
|
112
|
+
parent.postMessage({ type: "open", ...rest, id }, window.location.origin);
|
|
101
113
|
window.addEventListener("message", (event) => {
|
|
102
114
|
if (event.data.type === "quickEditEnabled") {
|
|
103
115
|
setQuickEditEnabled(event.data.value);
|
|
@@ -1,139 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
import React from 'react';
|
|
5
|
-
type BaseComponents = {
|
|
6
|
-
h1?: {
|
|
7
|
-
children: JSX.Element;
|
|
8
|
-
};
|
|
9
|
-
h2?: {
|
|
10
|
-
children: JSX.Element;
|
|
11
|
-
};
|
|
12
|
-
h3?: {
|
|
13
|
-
children: JSX.Element;
|
|
14
|
-
};
|
|
15
|
-
h4?: {
|
|
16
|
-
children: JSX.Element;
|
|
17
|
-
};
|
|
18
|
-
h5?: {
|
|
19
|
-
children: JSX.Element;
|
|
20
|
-
};
|
|
21
|
-
h6?: {
|
|
22
|
-
children: JSX.Element;
|
|
23
|
-
};
|
|
24
|
-
p?: {
|
|
25
|
-
children: JSX.Element;
|
|
26
|
-
};
|
|
27
|
-
a?: {
|
|
28
|
-
url: string;
|
|
29
|
-
children: JSX.Element;
|
|
30
|
-
};
|
|
31
|
-
italic?: {
|
|
32
|
-
children: JSX.Element;
|
|
33
|
-
};
|
|
34
|
-
bold?: {
|
|
35
|
-
children: JSX.Element;
|
|
36
|
-
};
|
|
37
|
-
strikethrough?: {
|
|
38
|
-
children: JSX.Element;
|
|
39
|
-
};
|
|
40
|
-
underline?: {
|
|
41
|
-
children: JSX.Element;
|
|
42
|
-
};
|
|
43
|
-
code?: {
|
|
44
|
-
children: JSX.Element;
|
|
45
|
-
};
|
|
46
|
-
text?: {
|
|
47
|
-
children: string;
|
|
48
|
-
};
|
|
49
|
-
ul?: {
|
|
50
|
-
children: JSX.Element;
|
|
51
|
-
};
|
|
52
|
-
ol?: {
|
|
53
|
-
children: JSX.Element;
|
|
54
|
-
};
|
|
55
|
-
li?: {
|
|
56
|
-
children: JSX.Element;
|
|
57
|
-
};
|
|
58
|
-
lic?: {
|
|
59
|
-
children: JSX.Element;
|
|
60
|
-
};
|
|
61
|
-
block_quote?: {
|
|
62
|
-
children: JSX.Element;
|
|
63
|
-
};
|
|
64
|
-
code_block?: {
|
|
65
|
-
lang?: string;
|
|
66
|
-
value: string;
|
|
67
|
-
};
|
|
68
|
-
img?: {
|
|
69
|
-
url: string;
|
|
70
|
-
caption?: string;
|
|
71
|
-
alt?: string;
|
|
72
|
-
};
|
|
73
|
-
hr?: {};
|
|
74
|
-
break?: {};
|
|
75
|
-
maybe_mdx?: {
|
|
76
|
-
children: JSX.Element;
|
|
77
|
-
};
|
|
78
|
-
html?: {
|
|
79
|
-
value: string;
|
|
80
|
-
};
|
|
81
|
-
html_inline?: {
|
|
82
|
-
value: string;
|
|
83
|
-
};
|
|
84
|
-
table?: {
|
|
85
|
-
align?: ('left' | 'right' | 'center')[];
|
|
86
|
-
tableRows: {
|
|
87
|
-
tableCells: {
|
|
88
|
-
value: TinaMarkdownContent;
|
|
89
|
-
}[];
|
|
90
|
-
}[];
|
|
91
|
-
};
|
|
92
|
-
component_missing?: {
|
|
93
|
-
name: string;
|
|
94
|
-
};
|
|
95
|
-
};
|
|
96
|
-
type BaseComponentSignature = {
|
|
97
|
-
[BK in keyof BaseComponents]: (props: BaseComponents[BK]) => JSX.Element;
|
|
98
|
-
};
|
|
99
|
-
/**
|
|
100
|
-
* Define the allowed components and their props
|
|
101
|
-
* ```ts
|
|
102
|
-
* const components:
|
|
103
|
-
* Components<{
|
|
104
|
-
* BlockQuote: {
|
|
105
|
-
* children: TinaMarkdownContent;
|
|
106
|
-
* authorName: string;
|
|
107
|
-
* };
|
|
108
|
-
* }> = {
|
|
109
|
-
* BlockQuote: (props: {
|
|
110
|
-
* children: TinaMarkdownContent;
|
|
111
|
-
* authorName: string;
|
|
112
|
-
* }) => {
|
|
113
|
-
* return (
|
|
114
|
-
* <div>
|
|
115
|
-
* <blockquote>
|
|
116
|
-
* <TinaMarkdown content={props.children} />
|
|
117
|
-
* {props.authorName}
|
|
118
|
-
* </blockquote>
|
|
119
|
-
* </div>
|
|
120
|
-
* );
|
|
121
|
-
* }
|
|
122
|
-
* }
|
|
123
|
-
* }
|
|
124
|
-
* ```
|
|
125
|
-
*/
|
|
126
|
-
export type Components<ComponentAndProps extends object> = {
|
|
127
|
-
[K in keyof ComponentAndProps]: (props: ComponentAndProps[K]) => JSX.Element;
|
|
128
|
-
} & BaseComponentSignature;
|
|
129
|
-
export type TinaMarkdownContent = {
|
|
130
|
-
type: string;
|
|
131
|
-
children: TinaMarkdownContent[];
|
|
132
|
-
};
|
|
133
|
-
export declare const TinaMarkdown: <CustomComponents extends {
|
|
134
|
-
[key: string]: object;
|
|
135
|
-
} = any>({ content, components, }: {
|
|
136
|
-
content: TinaMarkdownContent | TinaMarkdownContent[];
|
|
137
|
-
components?: Components<{}> | Components<{ [BK in keyof CustomComponents]: (props: CustomComponents[BK]) => JSX.Element; }>;
|
|
138
|
-
}) => React.JSX.Element;
|
|
139
|
-
export {};
|
|
1
|
+
export * from "../../src/rich-text/index"
|
package/dist/rich-text/index.js
CHANGED
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
return MNode;
|
|
73
73
|
};
|
|
74
74
|
const Node = ({ components, child }) => {
|
|
75
|
-
var _a, _b, _c, _d, _e, _f;
|
|
75
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
76
76
|
const { children, ...props } = child;
|
|
77
77
|
switch (child.type) {
|
|
78
78
|
case "h1":
|
|
@@ -117,7 +117,8 @@
|
|
|
117
117
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
118
118
|
/* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }))
|
|
119
119
|
);
|
|
120
|
-
case "
|
|
120
|
+
case "mermaid":
|
|
121
|
+
case "code_block": {
|
|
121
122
|
const value = child.value;
|
|
122
123
|
if (components[child.type]) {
|
|
123
124
|
const Component2 = components[child.type];
|
|
@@ -127,6 +128,7 @@
|
|
|
127
128
|
);
|
|
128
129
|
}
|
|
129
130
|
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, value));
|
|
131
|
+
}
|
|
130
132
|
case "hr":
|
|
131
133
|
if (components[child.type]) {
|
|
132
134
|
const Component2 = components[child.type];
|
|
@@ -150,33 +152,33 @@
|
|
|
150
152
|
} else {
|
|
151
153
|
if (child.name === "table") {
|
|
152
154
|
const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
|
|
153
|
-
const
|
|
155
|
+
const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
|
|
154
156
|
const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
+
const TableComponent2 = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
|
|
158
|
+
const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
|
|
157
159
|
const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
|
|
158
|
-
const
|
|
159
|
-
const
|
|
160
|
-
return /* @__PURE__ */ React.createElement(
|
|
160
|
+
const TdComponent2 = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
|
|
161
|
+
const align2 = ((_f = child.props) == null ? void 0 : _f.align) || [];
|
|
162
|
+
return /* @__PURE__ */ React.createElement(TableComponent2, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent2, null, header.tableCells.map((c, i) => {
|
|
161
163
|
return /* @__PURE__ */ React.createElement(
|
|
162
164
|
TinaMarkdown,
|
|
163
165
|
{
|
|
164
166
|
key: i,
|
|
165
167
|
components: {
|
|
166
|
-
p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align:
|
|
168
|
+
p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
|
|
167
169
|
},
|
|
168
170
|
content: c.value
|
|
169
171
|
}
|
|
170
172
|
);
|
|
171
|
-
}))), /* @__PURE__ */ React.createElement("tbody", null,
|
|
173
|
+
}))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
|
|
172
174
|
var _a2;
|
|
173
|
-
return /* @__PURE__ */ React.createElement(
|
|
175
|
+
return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
|
|
174
176
|
return /* @__PURE__ */ React.createElement(
|
|
175
177
|
TinaMarkdown,
|
|
176
178
|
{
|
|
177
179
|
key: i2,
|
|
178
180
|
components: {
|
|
179
|
-
p: (props2) => /* @__PURE__ */ React.createElement(
|
|
181
|
+
p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
|
|
180
182
|
},
|
|
181
183
|
content: c.value
|
|
182
184
|
}
|
|
@@ -191,6 +193,37 @@
|
|
|
191
193
|
return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
|
|
192
194
|
}
|
|
193
195
|
}
|
|
196
|
+
case "table":
|
|
197
|
+
const rows = child.children || [];
|
|
198
|
+
const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { style: { border: "1px solid #EDECF3" }, ...props2 }));
|
|
199
|
+
const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
|
|
200
|
+
const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement(
|
|
201
|
+
"td",
|
|
202
|
+
{
|
|
203
|
+
style: {
|
|
204
|
+
textAlign: (props2 == null ? void 0 : props2.align) || "auto",
|
|
205
|
+
border: "1px solid #EDECF3",
|
|
206
|
+
padding: "0.25rem"
|
|
207
|
+
},
|
|
208
|
+
...props2
|
|
209
|
+
}
|
|
210
|
+
));
|
|
211
|
+
const align = ((_g = child.props) == null ? void 0 : _g.align) || [];
|
|
212
|
+
return /* @__PURE__ */ React.createElement(TableComponent, null, /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
|
|
213
|
+
var _a2;
|
|
214
|
+
return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row.children) == null ? void 0 : _a2.map((cell, i2) => {
|
|
215
|
+
return /* @__PURE__ */ React.createElement(
|
|
216
|
+
TinaMarkdown,
|
|
217
|
+
{
|
|
218
|
+
key: i2,
|
|
219
|
+
components: {
|
|
220
|
+
p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
|
|
221
|
+
},
|
|
222
|
+
content: cell.children
|
|
223
|
+
}
|
|
224
|
+
);
|
|
225
|
+
}));
|
|
226
|
+
})));
|
|
194
227
|
case "maybe_mdx":
|
|
195
228
|
return null;
|
|
196
229
|
case "html":
|
package/dist/rich-text/index.mjs
CHANGED
|
@@ -69,7 +69,7 @@ const MemoNode = (props) => {
|
|
|
69
69
|
return MNode;
|
|
70
70
|
};
|
|
71
71
|
const Node = ({ components, child }) => {
|
|
72
|
-
var _a, _b, _c, _d, _e, _f;
|
|
72
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
73
73
|
const { children, ...props } = child;
|
|
74
74
|
switch (child.type) {
|
|
75
75
|
case "h1":
|
|
@@ -114,7 +114,8 @@ const Node = ({ components, child }) => {
|
|
|
114
114
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
115
115
|
/* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }))
|
|
116
116
|
);
|
|
117
|
-
case "
|
|
117
|
+
case "mermaid":
|
|
118
|
+
case "code_block": {
|
|
118
119
|
const value = child.value;
|
|
119
120
|
if (components[child.type]) {
|
|
120
121
|
const Component2 = components[child.type];
|
|
@@ -124,6 +125,7 @@ const Node = ({ components, child }) => {
|
|
|
124
125
|
);
|
|
125
126
|
}
|
|
126
127
|
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, value));
|
|
128
|
+
}
|
|
127
129
|
case "hr":
|
|
128
130
|
if (components[child.type]) {
|
|
129
131
|
const Component2 = components[child.type];
|
|
@@ -147,33 +149,33 @@ const Node = ({ components, child }) => {
|
|
|
147
149
|
} else {
|
|
148
150
|
if (child.name === "table") {
|
|
149
151
|
const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
|
|
150
|
-
const
|
|
152
|
+
const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
|
|
151
153
|
const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
|
|
152
|
-
const
|
|
153
|
-
const
|
|
154
|
+
const TableComponent2 = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
|
|
155
|
+
const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
|
|
154
156
|
const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
|
|
155
|
-
const
|
|
156
|
-
const
|
|
157
|
-
return /* @__PURE__ */ React.createElement(
|
|
157
|
+
const TdComponent2 = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
|
|
158
|
+
const align2 = ((_f = child.props) == null ? void 0 : _f.align) || [];
|
|
159
|
+
return /* @__PURE__ */ React.createElement(TableComponent2, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent2, null, header.tableCells.map((c, i) => {
|
|
158
160
|
return /* @__PURE__ */ React.createElement(
|
|
159
161
|
TinaMarkdown,
|
|
160
162
|
{
|
|
161
163
|
key: i,
|
|
162
164
|
components: {
|
|
163
|
-
p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align:
|
|
165
|
+
p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
|
|
164
166
|
},
|
|
165
167
|
content: c.value
|
|
166
168
|
}
|
|
167
169
|
);
|
|
168
|
-
}))), /* @__PURE__ */ React.createElement("tbody", null,
|
|
170
|
+
}))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
|
|
169
171
|
var _a2;
|
|
170
|
-
return /* @__PURE__ */ React.createElement(
|
|
172
|
+
return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
|
|
171
173
|
return /* @__PURE__ */ React.createElement(
|
|
172
174
|
TinaMarkdown,
|
|
173
175
|
{
|
|
174
176
|
key: i2,
|
|
175
177
|
components: {
|
|
176
|
-
p: (props2) => /* @__PURE__ */ React.createElement(
|
|
178
|
+
p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
|
|
177
179
|
},
|
|
178
180
|
content: c.value
|
|
179
181
|
}
|
|
@@ -188,6 +190,37 @@ const Node = ({ components, child }) => {
|
|
|
188
190
|
return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
|
|
189
191
|
}
|
|
190
192
|
}
|
|
193
|
+
case "table":
|
|
194
|
+
const rows = child.children || [];
|
|
195
|
+
const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { style: { border: "1px solid #EDECF3" }, ...props2 }));
|
|
196
|
+
const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
|
|
197
|
+
const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement(
|
|
198
|
+
"td",
|
|
199
|
+
{
|
|
200
|
+
style: {
|
|
201
|
+
textAlign: (props2 == null ? void 0 : props2.align) || "auto",
|
|
202
|
+
border: "1px solid #EDECF3",
|
|
203
|
+
padding: "0.25rem"
|
|
204
|
+
},
|
|
205
|
+
...props2
|
|
206
|
+
}
|
|
207
|
+
));
|
|
208
|
+
const align = ((_g = child.props) == null ? void 0 : _g.align) || [];
|
|
209
|
+
return /* @__PURE__ */ React.createElement(TableComponent, null, /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
|
|
210
|
+
var _a2;
|
|
211
|
+
return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row.children) == null ? void 0 : _a2.map((cell, i2) => {
|
|
212
|
+
return /* @__PURE__ */ React.createElement(
|
|
213
|
+
TinaMarkdown,
|
|
214
|
+
{
|
|
215
|
+
key: i2,
|
|
216
|
+
components: {
|
|
217
|
+
p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
|
|
218
|
+
},
|
|
219
|
+
content: cell.children
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
}));
|
|
223
|
+
})));
|
|
191
224
|
case "maybe_mdx":
|
|
192
225
|
return null;
|
|
193
226
|
case "html":
|
|
@@ -1,10 +1 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { themes } from 'prism-react-renderer';
|
|
6
|
-
export declare const Prism: (props: {
|
|
7
|
-
value: string;
|
|
8
|
-
lang?: string;
|
|
9
|
-
theme?: keyof typeof themes;
|
|
10
|
-
}) => React.JSX.Element;
|
|
1
|
+
export * from "../../src/rich-text/prism"
|
|
@@ -7,5 +7,5 @@ interface ReferenceSelectProps {
|
|
|
7
7
|
input: any;
|
|
8
8
|
field: ReferenceFieldProps & Field;
|
|
9
9
|
}
|
|
10
|
-
declare const
|
|
11
|
-
export default
|
|
10
|
+
declare const Combobox: React.FC<ReferenceSelectProps>;
|
|
11
|
+
export default Combobox;
|
|
@@ -2,16 +2,18 @@ import React from 'react';
|
|
|
2
2
|
import { type InputFieldType } from '../wrap-field-with-meta';
|
|
3
3
|
import type { MdxTemplate } from './plate/types';
|
|
4
4
|
import type { InputProps } from '../../../fields/components';
|
|
5
|
-
import type { ToolbarOverrideType } from './plate/toolbar/toolbar-overrides';
|
|
5
|
+
import type { ToolbarOverrides, ToolbarOverrideType } from './plate/toolbar/toolbar-overrides';
|
|
6
6
|
export type RichTextType = React.PropsWithChildren<InputFieldType<InputProps, {
|
|
7
7
|
templates: MdxTemplate[];
|
|
8
8
|
toolbarOverride?: ToolbarOverrideType[];
|
|
9
|
+
overrides?: ToolbarOverrides;
|
|
9
10
|
}>>;
|
|
10
11
|
export declare const MdxFieldPlugin: {
|
|
11
12
|
name: string;
|
|
12
13
|
Component: (props: InputFieldType<InputProps, {
|
|
13
14
|
templates: MdxTemplate[];
|
|
14
15
|
toolbarOverride?: ToolbarOverrideType[];
|
|
16
|
+
overrides?: ToolbarOverrides;
|
|
15
17
|
}>) => React.JSX.Element;
|
|
16
18
|
};
|
|
17
19
|
export declare const MdxFieldPluginExtendible: {
|
|
@@ -20,5 +22,6 @@ export declare const MdxFieldPluginExtendible: {
|
|
|
20
22
|
Component: (props: InputFieldType<InputProps, {
|
|
21
23
|
templates: MdxTemplate[];
|
|
22
24
|
toolbarOverride?: ToolbarOverrideType[];
|
|
25
|
+
overrides?: ToolbarOverrides;
|
|
23
26
|
}>) => React.JSX.Element;
|
|
24
27
|
};
|
|
@@ -33,6 +33,7 @@ export declare const Icons: {
|
|
|
33
33
|
chevronsUpDown: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
34
34
|
clear: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
35
35
|
close: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
36
|
+
paint: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
36
37
|
codeblock: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
37
38
|
color: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
38
39
|
column: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
@@ -55,6 +56,7 @@ export declare const Icons: {
|
|
|
55
56
|
kbd: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
56
57
|
lineHeight: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
57
58
|
minus: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
59
|
+
mermaid: () => React.JSX.Element;
|
|
58
60
|
more: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
59
61
|
outdent: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
60
62
|
paragraph: React.ForwardRefExoticComponent<Omit<LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
export declare const IndentListToolbarButton: React.ForwardRefExoticComponent<{
|
|
4
|
-
nodeType?: typeof ELEMENT_UL | typeof ELEMENT_OL;
|
|
5
|
-
} & Omit<Omit<{
|
|
2
|
+
export declare const UnorderedListToolbarButton: React.ForwardRefExoticComponent<Omit<Omit<{
|
|
6
3
|
tooltip?: React.ReactNode;
|
|
7
4
|
tooltipContentProps?: Omit<React.ComponentPropsWithoutRef<React.ForwardRefExoticComponent<import("@radix-ui/react-tooltip").TooltipContentProps & React.RefAttributes<HTMLDivElement>>>, "children">;
|
|
8
5
|
tooltipProps?: Omit<React.ComponentPropsWithoutRef<React.FC<import("@radix-ui/react-tooltip").TooltipProps>>, "children">;
|
|
@@ -16,4 +13,19 @@ export declare const IndentListToolbarButton: React.ForwardRefExoticComponent<{
|
|
|
16
13
|
} & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref">, "value" | "asChild"> & import("class-variance-authority").VariantProps<(props?: {
|
|
17
14
|
size?: "default" | "sm" | "lg";
|
|
18
15
|
variant?: "default" | "outline";
|
|
19
|
-
} & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">,
|
|
16
|
+
} & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">, never> & React.RefAttributes<HTMLButtonElement>>;
|
|
17
|
+
export declare const OrderedListToolbarButton: React.ForwardRefExoticComponent<Omit<Omit<{
|
|
18
|
+
tooltip?: React.ReactNode;
|
|
19
|
+
tooltipContentProps?: Omit<React.ComponentPropsWithoutRef<React.ForwardRefExoticComponent<import("@radix-ui/react-tooltip").TooltipContentProps & React.RefAttributes<HTMLDivElement>>>, "children">;
|
|
20
|
+
tooltipProps?: Omit<React.ComponentPropsWithoutRef<React.FC<import("@radix-ui/react-tooltip").TooltipProps>>, "children">;
|
|
21
|
+
} & Omit<{
|
|
22
|
+
isDropdown?: boolean;
|
|
23
|
+
pressed?: boolean;
|
|
24
|
+
showArrow?: boolean;
|
|
25
|
+
} & Omit<Omit<Omit<import("@radix-ui/react-toolbar").ToolbarToggleItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & import("class-variance-authority").VariantProps<(props?: {
|
|
26
|
+
size?: "default" | "sm" | "lg";
|
|
27
|
+
variant?: "default" | "outline";
|
|
28
|
+
} & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref">, "value" | "asChild"> & import("class-variance-authority").VariantProps<(props?: {
|
|
29
|
+
size?: "default" | "sm" | "lg";
|
|
30
|
+
variant?: "default" | "outline";
|
|
31
|
+
} & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">, never> & React.RefAttributes<HTMLButtonElement>>;
|