tinacms 0.0.0-e0ddb8c-20241004065742 → 0.0.0-e5c0e91-20250421003142

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 (55) hide show
  1. package/README.md +1 -1
  2. package/dist/admin/api.d.ts +1 -0
  3. package/dist/admin/components/GetCollection.d.ts +2 -2
  4. package/dist/admin/types.d.ts +3 -0
  5. package/dist/auth/TinaCloudProvider.d.ts +1 -1
  6. package/dist/auth/authenticate.d.ts +1 -1
  7. package/dist/cache/node-cache.d.ts +1 -0
  8. package/dist/client.d.ts +1 -4
  9. package/dist/client.js +100 -62
  10. package/dist/client.mjs +59 -36
  11. package/dist/hooks/create-page-plugin.d.ts +1 -1
  12. package/dist/index.d.ts +1 -61
  13. package/dist/index.js +4138 -2382
  14. package/dist/index.mjs +4134 -2375
  15. package/dist/internalClient/authProvider.d.ts +2 -0
  16. package/dist/internalClient/index.d.ts +3 -3
  17. package/dist/node-cache-5e8db9f0.mjs +63 -0
  18. package/dist/react.d.ts +1 -33
  19. package/dist/react.js +13 -1
  20. package/dist/react.mjs +13 -1
  21. package/dist/rich-text/index.d.ts +1 -142
  22. package/dist/rich-text/index.js +42 -11
  23. package/dist/rich-text/index.mjs +42 -11
  24. package/dist/rich-text/prism.d.ts +1 -10
  25. package/dist/toolkit/components/media/media-manager.d.ts +1 -1
  26. package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
  27. package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +4 -1
  28. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/fixed-toolbar-buttons.d.ts +0 -4
  29. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
  30. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
  31. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/resizable.d.ts +39 -0
  32. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-cell-element.d.ts +27 -0
  33. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-dropdown-menu.d.ts +3 -0
  34. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-element.d.ts +14 -0
  35. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-row-element.d.ts +13 -0
  36. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
  37. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/common.d.ts +1 -0
  38. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +54 -11
  39. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +11 -3
  40. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +2 -2
  41. package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
  42. package/dist/toolkit/plugin-branch-switcher/branch-switcher-legacy.d.ts +1 -1
  43. package/dist/toolkit/plugin-branch-switcher/branch-switcher.d.ts +1 -1
  44. package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
  45. package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +5 -4
  46. package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
  47. package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
  48. package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
  49. package/dist/toolkit/tina-state.d.ts +4 -0
  50. package/dist/unifiedClient/index.d.ts +8 -1
  51. package/package.json +43 -42
  52. package/dist/__vite-browser-external-d06ac358.mjs +0 -4
  53. package/dist/node-cache-7fa2452c.mjs +0 -43
  54. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/hooks/use-mermaid-element.d.ts +0 -3
  55. package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
@@ -33,6 +33,7 @@ export declare class TinaCloudAuthProvider extends AbstractAuthProvider {
33
33
  clientId: string;
34
34
  identityApiUrl: string;
35
35
  frontendUrl: string;
36
+ oauth2: boolean;
36
37
  token: string;
37
38
  setToken: (_token: TokenObject) => void;
38
39
  getToken: () => Promise<TokenObject>;
@@ -42,6 +43,7 @@ export declare class TinaCloudAuthProvider extends AbstractAuthProvider {
42
43
  tokenStorage?: 'MEMORY' | 'LOCAL_STORAGE' | 'CUSTOM';
43
44
  getTokenFn?: () => Promise<TokenObject>;
44
45
  frontendUrl: string;
46
+ oauth2?: boolean;
45
47
  });
46
48
  authenticate(): Promise<TokenObject>;
47
49
  getUser(): Promise<any>;
@@ -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 declare function useTina<T extends object>(props: {
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
- parent.postMessage({ type: "open", ...props, id }, window.location.origin);
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
- parent.postMessage({ type: "open", ...props, id }, window.location.origin);
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,142 +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
- mermaid?: {
69
- value: string;
70
- };
71
- img?: {
72
- url: string;
73
- caption?: string;
74
- alt?: string;
75
- };
76
- hr?: {};
77
- break?: {};
78
- maybe_mdx?: {
79
- children: JSX.Element;
80
- };
81
- html?: {
82
- value: string;
83
- };
84
- html_inline?: {
85
- value: string;
86
- };
87
- table?: {
88
- align?: ('left' | 'right' | 'center')[];
89
- tableRows: {
90
- tableCells: {
91
- value: TinaMarkdownContent;
92
- }[];
93
- }[];
94
- };
95
- component_missing?: {
96
- name: string;
97
- };
98
- };
99
- type BaseComponentSignature = {
100
- [BK in keyof BaseComponents]: (props: BaseComponents[BK]) => JSX.Element;
101
- };
102
- /**
103
- * Define the allowed components and their props
104
- * ```ts
105
- * const components:
106
- * Components<{
107
- * BlockQuote: {
108
- * children: TinaMarkdownContent;
109
- * authorName: string;
110
- * };
111
- * }> = {
112
- * BlockQuote: (props: {
113
- * children: TinaMarkdownContent;
114
- * authorName: string;
115
- * }) => {
116
- * return (
117
- * <div>
118
- * <blockquote>
119
- * <TinaMarkdown content={props.children} />
120
- * {props.authorName}
121
- * </blockquote>
122
- * </div>
123
- * );
124
- * }
125
- * }
126
- * }
127
- * ```
128
- */
129
- export type Components<ComponentAndProps extends object> = {
130
- [K in keyof ComponentAndProps]: (props: ComponentAndProps[K]) => JSX.Element;
131
- } & BaseComponentSignature;
132
- export type TinaMarkdownContent = {
133
- type: string;
134
- children: TinaMarkdownContent[];
135
- };
136
- export declare const TinaMarkdown: <CustomComponents extends {
137
- [key: string]: object;
138
- } = any>({ content, components, }: {
139
- content: TinaMarkdownContent | TinaMarkdownContent[];
140
- components?: Components<{}> | Components<{ [BK in keyof CustomComponents]: (props: CustomComponents[BK]) => JSX.Element; }>;
141
- }) => React.JSX.Element;
142
- export {};
1
+ export * from "../../src/rich-text/index"
@@ -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":
@@ -152,33 +152,33 @@
152
152
  } else {
153
153
  if (child.name === "table") {
154
154
  const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
155
- const rows = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
155
+ const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
156
156
  const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
157
- const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
158
- const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
157
+ const TableComponent2 = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
158
+ const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
159
159
  const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
160
- const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
161
- const align = ((_f = child.props) == null ? void 0 : _f.align) || [];
162
- return /* @__PURE__ */ React.createElement(TableComponent, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent, null, header.tableCells.map((c, i) => {
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) => {
163
163
  return /* @__PURE__ */ React.createElement(
164
164
  TinaMarkdown,
165
165
  {
166
166
  key: i,
167
167
  components: {
168
- p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align[i], ...props2 })
168
+ p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
169
169
  },
170
170
  content: c.value
171
171
  }
172
172
  );
173
- }))), /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
173
+ }))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
174
174
  var _a2;
175
- return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
175
+ return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
176
176
  return /* @__PURE__ */ React.createElement(
177
177
  TinaMarkdown,
178
178
  {
179
179
  key: i2,
180
180
  components: {
181
- p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
181
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
182
182
  },
183
183
  content: c.value
184
184
  }
@@ -193,6 +193,37 @@
193
193
  return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
194
194
  }
195
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
+ })));
196
227
  case "maybe_mdx":
197
228
  return null;
198
229
  case "html":
@@ -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":
@@ -149,33 +149,33 @@ const Node = ({ components, child }) => {
149
149
  } else {
150
150
  if (child.name === "table") {
151
151
  const firstRowHeader = (_a = child.props) == null ? void 0 : _a.firstRowHeader;
152
- const rows = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
152
+ const rows2 = (firstRowHeader ? (_b = child.props) == null ? void 0 : _b.tableRows.filter((_, i) => i !== 0) : (_c = child.props) == null ? void 0 : _c.tableRows) || [];
153
153
  const header = (_e = (_d = child.props) == null ? void 0 : _d.tableRows) == null ? void 0 : _e.at(0);
154
- const TableComponent = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
155
- const TrComponent = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
154
+ const TableComponent2 = components["table"] || ((props2) => /* @__PURE__ */ React.createElement("table", { ...props2 }));
155
+ const TrComponent2 = components["tr"] || ((props2) => /* @__PURE__ */ React.createElement("tr", { ...props2 }));
156
156
  const ThComponent = components["th"] || ((props2) => /* @__PURE__ */ React.createElement("th", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
157
- const TdComponent = components["td"] || ((props2) => /* @__PURE__ */ React.createElement("td", { style: { textAlign: (props2 == null ? void 0 : props2.align) || "auto" }, ...props2 }));
158
- const align = ((_f = child.props) == null ? void 0 : _f.align) || [];
159
- return /* @__PURE__ */ React.createElement(TableComponent, null, firstRowHeader && /* @__PURE__ */ React.createElement("thead", null, /* @__PURE__ */ React.createElement(TrComponent, null, header.tableCells.map((c, i) => {
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) => {
160
160
  return /* @__PURE__ */ React.createElement(
161
161
  TinaMarkdown,
162
162
  {
163
163
  key: i,
164
164
  components: {
165
- p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align[i], ...props2 })
165
+ p: (props2) => /* @__PURE__ */ React.createElement(ThComponent, { align: align2[i], ...props2 })
166
166
  },
167
167
  content: c.value
168
168
  }
169
169
  );
170
- }))), /* @__PURE__ */ React.createElement("tbody", null, rows.map((row, i) => {
170
+ }))), /* @__PURE__ */ React.createElement("tbody", null, rows2.map((row, i) => {
171
171
  var _a2;
172
- return /* @__PURE__ */ React.createElement(TrComponent, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
172
+ return /* @__PURE__ */ React.createElement(TrComponent2, { key: i }, (_a2 = row == null ? void 0 : row.tableCells) == null ? void 0 : _a2.map((c, i2) => {
173
173
  return /* @__PURE__ */ React.createElement(
174
174
  TinaMarkdown,
175
175
  {
176
176
  key: i2,
177
177
  components: {
178
- p: (props2) => /* @__PURE__ */ React.createElement(TdComponent, { align: align[i2], ...props2 })
178
+ p: (props2) => /* @__PURE__ */ React.createElement(TdComponent2, { align: align2[i2], ...props2 })
179
179
  },
180
180
  content: c.value
181
181
  }
@@ -190,6 +190,37 @@ const Node = ({ components, child }) => {
190
190
  return /* @__PURE__ */ React.createElement("span", null, `No component provided for ${child.name}`);
191
191
  }
192
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
+ })));
193
224
  case "maybe_mdx":
194
225
  return null;
195
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"
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
1
  import { Media } from '../../core';
2
+ import React from 'react';
3
3
  export interface MediaRequest {
4
4
  directory?: string;
5
5
  onSelect?(_media: Media): void;
@@ -7,5 +7,5 @@ interface ReferenceSelectProps {
7
7
  input: any;
8
8
  field: ReferenceFieldProps & Field;
9
9
  }
10
- declare const ComboboxDemo: React.FC<ReferenceSelectProps>;
11
- export default ComboboxDemo;
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
  };
@@ -1,6 +1,2 @@
1
1
  import React from 'react';
2
- export type ToolbarItem = {
3
- label: string;
4
- Component: React.ReactNode;
5
- };
6
2
  export default function FixedToolbarButtons(): React.JSX.Element;
@@ -1,8 +1,5 @@
1
1
  import React from 'react';
2
- import { type ELEMENT_OL, ELEMENT_UL } from '@udecode/plate';
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">, "nodeType"> & React.RefAttributes<HTMLButtonElement>>;
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>>;
@@ -1,19 +1,5 @@
1
1
  import React from 'react';
2
- export declare const MarkToolbarButton: React.ForwardRefExoticComponent<{
3
- clear?: string | string[];
4
- nodeType: string;
5
- } & Omit<Omit<{
6
- tooltip?: React.ReactNode;
7
- tooltipContentProps?: Omit<React.ComponentPropsWithoutRef<React.ForwardRefExoticComponent<import("@radix-ui/react-tooltip").TooltipContentProps & React.RefAttributes<HTMLDivElement>>>, "children">;
8
- tooltipProps?: Omit<React.ComponentPropsWithoutRef<React.FC<import("@radix-ui/react-tooltip").TooltipProps>>, "children">;
9
- } & Omit<{
10
- isDropdown?: boolean;
11
- pressed?: boolean;
12
- showArrow?: boolean;
13
- } & Omit<Omit<Omit<import("@radix-ui/react-toolbar").ToolbarToggleItemProps & React.RefAttributes<HTMLButtonElement>, "ref"> & import("class-variance-authority").VariantProps<(props?: {
14
- size?: "default" | "sm" | "lg";
15
- variant?: "default" | "outline";
16
- } & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref">, "value" | "asChild"> & import("class-variance-authority").VariantProps<(props?: {
17
- size?: "default" | "sm" | "lg";
18
- variant?: "default" | "outline";
19
- } & import("class-variance-authority/dist/types").ClassProp) => string> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref">, "clear" | "nodeType"> & React.RefAttributes<HTMLButtonElement>>;
2
+ export declare const BoldToolbarButton: () => React.JSX.Element;
3
+ export declare const StrikethroughToolbarButton: () => React.JSX.Element;
4
+ export declare const ItalicToolbarButton: () => React.JSX.Element;
5
+ export declare const CodeToolbarButton: () => React.JSX.Element;