tinacms 0.0.0-99bb59f-20250220002800 → 0.0.0-9b751ce-20251121051639
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 +3 -0
- package/dist/admin/components/GetCollection.d.ts +2 -2
- package/dist/admin/components/Page.d.ts +3 -9
- package/dist/admin/components/Sidebar.d.ts +0 -3
- package/dist/admin/components/ui/tooltip.d.ts +7 -0
- package/dist/admin/pages/CollectionCreatePage.d.ts +1 -1
- package/dist/admin/pages/CollectionListPage.d.ts +2 -2
- package/dist/admin/pages/DashboardPage.d.ts +0 -3
- package/dist/admin/pages/ScreenPage.d.ts +0 -3
- package/dist/auth/AuthModal.d.ts +1 -4
- package/dist/auth/TinaCloudProvider.d.ts +1 -2
- package/dist/client.js +12 -3
- package/dist/client.mjs +12 -3
- package/dist/hooks/create-page-plugin.d.ts +1 -1
- package/dist/index.js +103272 -15033
- package/dist/index.mjs +103531 -15291
- package/dist/internalClient/index.d.ts +28 -3
- package/dist/react.d.ts +13 -6
- package/dist/react.js +63 -52
- package/dist/react.mjs +63 -52
- package/dist/rich-text/index.d.ts +6 -0
- package/dist/rich-text/index.js +18 -5
- package/dist/rich-text/index.mjs +18 -5
- package/dist/rich-text/prism.js +1 -1
- package/dist/rich-text/prism.mjs +1 -1
- package/dist/rich-text/static.d.ts +154 -0
- package/dist/rich-text/static.js +246 -0
- package/dist/rich-text/static.mjs +243 -0
- package/dist/tina-cms.d.ts +1 -1
- package/dist/toolkit/components/ProgressBar.d.ts +11 -0
- package/dist/toolkit/components/media/media-item.d.ts +11 -1
- package/dist/toolkit/components/media/media-manager.d.ts +1 -1
- package/dist/toolkit/components/ui/breadcrumb.d.ts +11 -0
- package/dist/toolkit/components/ui/dropdown-menu.d.ts +25 -0
- package/dist/toolkit/fields/components/password-field.d.ts +1 -1
- package/dist/toolkit/fields/components/reference/components/button.d.ts +2 -2
- package/dist/toolkit/fields/components/reference/components/command.d.ts +21 -33
- package/dist/toolkit/fields/components/reference/components/popover.d.ts +1 -1
- package/dist/toolkit/fields/components/reference/model/reference-link-props.d.ts +2 -0
- package/dist/toolkit/fields/components/select.d.ts +2 -2
- package/dist/toolkit/fields/components/text-field.d.ts +1 -1
- package/dist/toolkit/fields/plugins/dnd-kit-wrapper.d.ts +49 -0
- package/dist/toolkit/fields/plugins/group-field-plugin.d.ts +1 -1
- package/dist/toolkit/fields/plugins/group-list-field-plugin.d.ts +3 -1
- package/dist/toolkit/fields/plugins/list-field-meta.d.ts +1 -1
- package/dist/toolkit/fields/plugins/list-field-plugin.d.ts +1 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/editor.d.ts +20 -18
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/blockquote-element.d.ts +14 -10
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/button.d.ts +5 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block/code-block-element.d.ts +17 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block/error-message.d.ts +6 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-combobox.d.ts +6 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-toolbar-button.d.ts +6 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-leaf.d.ts +2 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-line-element.d.ts +14 -10
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-syntax-leaf.d.ts +2 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/command.d.ts +112 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/dialog.d.ts +12 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/dropdown-menu.d.ts +10 -10
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/floating-toolbar.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/hr-element.d.ts +3 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/hr-toolbar-button.d.ts +18 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/icons.d.ts +2 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/image-toolbar-button.d.ts +6 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +6 -7
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/inline-combobox.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/input.d.ts +3 -3
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-element.d.ts +4 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-floating-toolbar.d.ts +4 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/link-toolbar-button.d.ts +4 -4
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/list-element.d.ts +28 -11
- 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 +3 -10
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mermaid-toolbar-button.d.ts +6 -8
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/paragraph-element.d.ts +15 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/popover.d.ts +7 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/quote-toolbar-button.d.ts +6 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/raw-markdown-toolbar-button.d.ts +6 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/resizable.d.ts +24 -21
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/separator.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/slash-input-element.d.ts +15 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/block-selection.d.ts +6 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-cell-element.d.ts +33 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/{table-dropdown-menu.d.ts → table/table-dropdown-menu.d.ts} +1 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-element.d.ts +20 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table/table-row-element.d.ts +15 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/toolbar.d.ts +7 -7
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/use-floating-toolbar-hook.d.ts +10 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/use-floating-toolbar-state.d.ts +22 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/hooks/use-create-editor.d.ts +6 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-block.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-lists.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-marks.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/autoformat/autoformat-utils.d.ts +3 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/common.d.ts +11 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/formatting.d.ts +18 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/index.d.ts +0 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-html-block/index.d.ts +6 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-img-plugin/index.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-invalid-markdown-plugin/index.d.ts +5 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-mdx-plugins/component.d.ts +7 -4
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-mdx-plugins/index.d.ts +3 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/editor-plugins.d.ts +520 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +262 -207
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/floating-toolbar-plugin.d.ts +1 -0
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +1 -1
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/transforms/is-url.d.ts +1 -2
- package/dist/toolkit/form-builder/create-branch-modal.d.ts +13 -0
- package/dist/toolkit/form-builder/editorial-workflow-constants.d.ts +17 -0
- package/dist/toolkit/form-builder/fields-builder.d.ts +1 -1
- package/dist/toolkit/form-builder/form-builder.d.ts +8 -9
- package/dist/toolkit/form-builder/index.d.ts +1 -0
- package/dist/toolkit/forms/field.d.ts +3 -0
- package/dist/toolkit/forms/form.d.ts +22 -3
- package/dist/toolkit/git-client/git-client.d.ts +25 -2
- package/dist/toolkit/git-client/git-file.d.ts +18 -0
- package/dist/toolkit/git-client/git-media-store.d.ts +13 -0
- package/dist/toolkit/git-client/use-git-file.d.ts +4 -0
- package/dist/toolkit/icons/Tina.d.ts +0 -5
- package/dist/toolkit/icons/TinaExtended.d.ts +4 -0
- package/dist/toolkit/icons/index.d.ts +1 -0
- package/dist/toolkit/index.d.ts +1 -1
- package/dist/toolkit/plugin-branch-switcher/branch-button.d.ts +4 -1
- 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/plugin-branch-switcher/index.d.ts +0 -1
- package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
- package/dist/toolkit/react-modals/modal/modal-actions.d.ts +2 -1
- package/dist/toolkit/react-modals/modal/modal-header.d.ts +1 -1
- package/dist/toolkit/react-sidebar/components/VersionInfo.d.ts +2 -0
- package/dist/toolkit/react-sidebar/components/badge.d.ts +6 -0
- package/dist/toolkit/react-sidebar/components/callout.d.ts +5 -0
- package/dist/toolkit/react-sidebar/components/form-list.d.ts +1 -1
- package/dist/toolkit/react-sidebar/components/local-warning.d.ts +3 -1
- package/dist/toolkit/react-sidebar/components/nav.d.ts +6 -3
- package/dist/toolkit/react-sidebar/components/resize-handle.d.ts +0 -5
- package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +7 -10
- 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/components/sidebar.d.ts +0 -7
- package/dist/toolkit/react-sidebar/components/sync-status.d.ts +5 -8
- package/dist/toolkit/react-sidebar/index.d.ts +1 -1
- package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
- package/dist/toolkit/styles/button.d.ts +2 -2
- package/dist/toolkit/styles/dropdown-button.d.ts +75 -0
- package/dist/toolkit/styles/index.d.ts +1 -0
- package/dist/toolkit/tina-cms.d.ts +3 -3
- package/dist/toolkit/tina-state.d.ts +15 -0
- package/dist/unifiedClient/index.d.ts +1 -1
- package/dist/utils/cn.d.ts +2 -0
- package/dist/utils/index.d.ts +1 -0
- package/package.json +42 -33
- package/dist/admin/pages/IndexingPage.d.ts +0 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/code-block-element.d.ts +0 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-cell-element.d.ts +0 -27
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-element.d.ts +0 -14
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/table-row-element.d.ts +0 -13
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/core/with-correct-void-behavior.d.ts +0 -8
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-code-block/index.d.ts +0 -3
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/create-link-plugin/index.d.ts +0 -15
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/custom/mermaid-plugin.d.ts +0 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/create-soft-break-plugin.d.ts +0 -7
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/index.d.ts +0 -6
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/on-key-down-soft-break.d.ts +0 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/soft-break/types.d.ts +0 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/code-block/index.d.ts +0 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/transforms/insert-empty-block.d.ts +0 -2
- package/dist/toolkit/plugin-branch-switcher/branch-banner.d.ts +0 -2
- 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;
|
|
@@ -141,6 +141,26 @@ export declare class Client {
|
|
|
141
141
|
}[]>;
|
|
142
142
|
usingProtectedBranch(): boolean;
|
|
143
143
|
createBranch({ baseBranch, branchName }: BranchData): Promise<string>;
|
|
144
|
+
getLatestVersion(): Promise<LatestVersionResponse>;
|
|
145
|
+
/**
|
|
146
|
+
* Initiate and poll for the results of an editorial workflow operation
|
|
147
|
+
*
|
|
148
|
+
* @param options Editorial workflow options
|
|
149
|
+
* @returns Object with branch and PR info when complete
|
|
150
|
+
*/
|
|
151
|
+
executeEditorialWorkflow(options: {
|
|
152
|
+
branchName: string;
|
|
153
|
+
baseBranch: string;
|
|
154
|
+
prTitle?: string;
|
|
155
|
+
graphQLContentOp?: {
|
|
156
|
+
query: string;
|
|
157
|
+
variables: Record<string, unknown>;
|
|
158
|
+
};
|
|
159
|
+
onStatusUpdate?: (status: {
|
|
160
|
+
status: string;
|
|
161
|
+
message?: string;
|
|
162
|
+
}) => void;
|
|
163
|
+
}): Promise<any>;
|
|
144
164
|
}
|
|
145
165
|
export declare const DEFAULT_LOCAL_TINA_GQL_SERVER_URL = "http://localhost:4001/graphql";
|
|
146
166
|
export declare class LocalClient extends Client {
|
|
@@ -185,3 +205,8 @@ export declare class LocalSearchClient implements SearchClient {
|
|
|
185
205
|
put(docs: any[]): Promise<any>;
|
|
186
206
|
supportsClientSideIndexing(): boolean;
|
|
187
207
|
}
|
|
208
|
+
export type PackageVersionInfo = {
|
|
209
|
+
version: string;
|
|
210
|
+
publishedAt: string;
|
|
211
|
+
};
|
|
212
|
+
export type LatestVersionResponse = Record<string, PackageVersionInfo>;
|
package/dist/react.d.ts
CHANGED
|
@@ -15,16 +15,23 @@ export declare function useEditState(): {
|
|
|
15
15
|
* to signal to Tina which DOM element the field
|
|
16
16
|
* is working with.
|
|
17
17
|
*/
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Generate a field identifier for Tina to associate DOM elements with form fields.
|
|
20
|
+
* Format: "queryId---path.to.field" or "queryId---path.to.array.index"
|
|
21
|
+
*/
|
|
22
|
+
export declare const tinaField: <T extends {
|
|
19
23
|
_content_source?: {
|
|
20
24
|
queryId: string;
|
|
21
25
|
path: (number | string)[];
|
|
22
26
|
};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
} | Record<string, unknown> | null | undefined>(object: T, property?: keyof Omit<NonNullable<T>, "__typename" | "_sys">, index?: number) => string;
|
|
28
|
+
/**
|
|
29
|
+
* FIX: This function is updated to be more robust. It explicitly checks for
|
|
30
|
+
* `null` and `String` objects to prevent them from being processed as
|
|
31
|
+
* iterable objects, which is the root cause of the "Objects are not valid
|
|
32
|
+
* as a React child" error.
|
|
33
|
+
*/
|
|
34
|
+
export declare const addMetadata: <T extends object>(id: string, obj: T, path?: (string | number)[]) => T;
|
|
28
35
|
/**
|
|
29
36
|
* This is a pretty rudimentary approach to hashing the query and variables to
|
|
30
37
|
* ensure we treat multiple queries on the page uniquely. It's possible
|
package/dist/react.js
CHANGED
|
@@ -11,14 +11,23 @@
|
|
|
11
11
|
() => hashFromQuery(stringifiedQuery),
|
|
12
12
|
[stringifiedQuery]
|
|
13
13
|
);
|
|
14
|
-
const
|
|
14
|
+
const processedData = React.useMemo(() => {
|
|
15
|
+
if (props.data) {
|
|
16
|
+
const dataCopy = JSON.parse(JSON.stringify(props.data));
|
|
17
|
+
return addMetadata(id, dataCopy, []);
|
|
18
|
+
}
|
|
19
|
+
}, [props.data, id]);
|
|
20
|
+
const [data, setData] = React.useState(processedData);
|
|
15
21
|
const [isClient, setIsClient] = React.useState(false);
|
|
16
22
|
const [quickEditEnabled, setQuickEditEnabled] = React.useState(false);
|
|
17
23
|
const [isInTinaIframe, setIsInTinaIframe] = React.useState(false);
|
|
18
24
|
React.useEffect(() => {
|
|
19
25
|
setIsClient(true);
|
|
20
|
-
setData(
|
|
21
|
-
|
|
26
|
+
setData(processedData);
|
|
27
|
+
parent.postMessage({
|
|
28
|
+
type: "url-changed"
|
|
29
|
+
});
|
|
30
|
+
}, [id, processedData]);
|
|
22
31
|
React.useEffect(() => {
|
|
23
32
|
if (quickEditEnabled) {
|
|
24
33
|
let mouseDownHandler = function(e) {
|
|
@@ -110,12 +119,18 @@
|
|
|
110
119
|
React.useEffect(() => {
|
|
111
120
|
const { experimental___selectFormByFormId, ...rest } = props;
|
|
112
121
|
parent.postMessage({ type: "open", ...rest, id }, window.location.origin);
|
|
113
|
-
|
|
122
|
+
const handleMessage = (event) => {
|
|
114
123
|
if (event.data.type === "quickEditEnabled") {
|
|
115
124
|
setQuickEditEnabled(event.data.value);
|
|
116
125
|
}
|
|
117
126
|
if (event.data.id === id && event.data.type === "updateData") {
|
|
118
|
-
|
|
127
|
+
const rawData = event.data.data;
|
|
128
|
+
const newlyProcessedData = addMetadata(
|
|
129
|
+
id,
|
|
130
|
+
JSON.parse(JSON.stringify(rawData)),
|
|
131
|
+
[]
|
|
132
|
+
);
|
|
133
|
+
setData(newlyProcessedData);
|
|
119
134
|
setIsInTinaIframe(true);
|
|
120
135
|
const anyTinaField = document.querySelector("[data-tina-field]");
|
|
121
136
|
if (anyTinaField) {
|
|
@@ -130,8 +145,10 @@
|
|
|
130
145
|
);
|
|
131
146
|
}
|
|
132
147
|
}
|
|
133
|
-
}
|
|
148
|
+
};
|
|
149
|
+
window.addEventListener("message", handleMessage);
|
|
134
150
|
return () => {
|
|
151
|
+
window.removeEventListener("message", handleMessage);
|
|
135
152
|
parent.postMessage({ type: "close", id }, window.location.origin);
|
|
136
153
|
};
|
|
137
154
|
}, [id, setQuickEditEnabled]);
|
|
@@ -153,59 +170,53 @@
|
|
|
153
170
|
return { edit };
|
|
154
171
|
}
|
|
155
172
|
const tinaField = (object, property, index) => {
|
|
156
|
-
|
|
157
|
-
if (!
|
|
173
|
+
const contentSource = object == null ? void 0 : object._content_source;
|
|
174
|
+
if (!contentSource) {
|
|
158
175
|
return "";
|
|
159
176
|
}
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
(_a = object._content_source) == null ? void 0 : _a.queryId,
|
|
164
|
-
object._content_source.path.join(".")
|
|
165
|
-
].join("---");
|
|
166
|
-
}
|
|
167
|
-
if (typeof index === "number") {
|
|
168
|
-
return [
|
|
169
|
-
(_b = object._content_source) == null ? void 0 : _b.queryId,
|
|
170
|
-
[...object._content_source.path, property, index].join(".")
|
|
171
|
-
].join("---");
|
|
172
|
-
}
|
|
173
|
-
return [
|
|
174
|
-
(_c = object._content_source) == null ? void 0 : _c.queryId,
|
|
175
|
-
[...object._content_source.path, property].join(".")
|
|
176
|
-
].join("---");
|
|
177
|
+
const { queryId, path } = contentSource;
|
|
178
|
+
if (!property) {
|
|
179
|
+
return `${queryId}---${path.join(".")}`;
|
|
177
180
|
}
|
|
178
|
-
|
|
181
|
+
const fullPath = typeof index === "number" ? [...path, property, index] : [...path, property];
|
|
182
|
+
return `${queryId}---${fullPath.join(".")}`;
|
|
179
183
|
};
|
|
180
|
-
const addMetadata = (id,
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
184
|
+
const addMetadata = (id, obj, path = []) => {
|
|
185
|
+
if (obj === null) {
|
|
186
|
+
return obj;
|
|
187
|
+
}
|
|
188
|
+
if (isScalarOrUndefined(obj)) {
|
|
189
|
+
return obj;
|
|
190
|
+
}
|
|
191
|
+
if (obj instanceof String) {
|
|
192
|
+
return obj.valueOf();
|
|
193
|
+
}
|
|
194
|
+
if (Array.isArray(obj)) {
|
|
195
|
+
return obj.map(
|
|
196
|
+
(item, index) => addMetadata(id, item, [...path, index])
|
|
197
|
+
);
|
|
198
|
+
}
|
|
199
|
+
const transformedObj = {};
|
|
200
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
201
|
+
const currentPath = [...path, key];
|
|
202
|
+
if ([
|
|
203
|
+
"__typename",
|
|
204
|
+
"_sys",
|
|
205
|
+
"_internalSys",
|
|
206
|
+
"_values",
|
|
207
|
+
"_internalValues",
|
|
208
|
+
"_content_source",
|
|
209
|
+
"_tina_metadata"
|
|
210
|
+
].includes(key)) {
|
|
211
|
+
transformedObj[key] = value;
|
|
193
212
|
} else {
|
|
194
|
-
|
|
195
|
-
return;
|
|
196
|
-
}
|
|
197
|
-
const itemObject = value;
|
|
198
|
-
addMetadata(id, itemObject, [...path, key]);
|
|
213
|
+
transformedObj[key] = addMetadata(id, value, currentPath);
|
|
199
214
|
}
|
|
200
|
-
});
|
|
201
|
-
if ((object == null ? void 0 : object.type) === "root") {
|
|
202
|
-
return;
|
|
203
215
|
}
|
|
204
|
-
object.
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
};
|
|
208
|
-
return object;
|
|
216
|
+
if (transformedObj && typeof transformedObj === "object" && "type" in transformedObj && transformedObj.type === "root") {
|
|
217
|
+
return transformedObj;
|
|
218
|
+
}
|
|
219
|
+
return { ...transformedObj, _content_source: { queryId: id, path } };
|
|
209
220
|
};
|
|
210
221
|
function isScalarOrUndefined(value) {
|
|
211
222
|
const type = typeof value;
|
package/dist/react.mjs
CHANGED
|
@@ -8,14 +8,23 @@ function useTina(props) {
|
|
|
8
8
|
() => hashFromQuery(stringifiedQuery),
|
|
9
9
|
[stringifiedQuery]
|
|
10
10
|
);
|
|
11
|
-
const
|
|
11
|
+
const processedData = React.useMemo(() => {
|
|
12
|
+
if (props.data) {
|
|
13
|
+
const dataCopy = JSON.parse(JSON.stringify(props.data));
|
|
14
|
+
return addMetadata(id, dataCopy, []);
|
|
15
|
+
}
|
|
16
|
+
}, [props.data, id]);
|
|
17
|
+
const [data, setData] = React.useState(processedData);
|
|
12
18
|
const [isClient, setIsClient] = React.useState(false);
|
|
13
19
|
const [quickEditEnabled, setQuickEditEnabled] = React.useState(false);
|
|
14
20
|
const [isInTinaIframe, setIsInTinaIframe] = React.useState(false);
|
|
15
21
|
React.useEffect(() => {
|
|
16
22
|
setIsClient(true);
|
|
17
|
-
setData(
|
|
18
|
-
|
|
23
|
+
setData(processedData);
|
|
24
|
+
parent.postMessage({
|
|
25
|
+
type: "url-changed"
|
|
26
|
+
});
|
|
27
|
+
}, [id, processedData]);
|
|
19
28
|
React.useEffect(() => {
|
|
20
29
|
if (quickEditEnabled) {
|
|
21
30
|
let mouseDownHandler = function(e) {
|
|
@@ -107,12 +116,18 @@ function useTina(props) {
|
|
|
107
116
|
React.useEffect(() => {
|
|
108
117
|
const { experimental___selectFormByFormId, ...rest } = props;
|
|
109
118
|
parent.postMessage({ type: "open", ...rest, id }, window.location.origin);
|
|
110
|
-
|
|
119
|
+
const handleMessage = (event) => {
|
|
111
120
|
if (event.data.type === "quickEditEnabled") {
|
|
112
121
|
setQuickEditEnabled(event.data.value);
|
|
113
122
|
}
|
|
114
123
|
if (event.data.id === id && event.data.type === "updateData") {
|
|
115
|
-
|
|
124
|
+
const rawData = event.data.data;
|
|
125
|
+
const newlyProcessedData = addMetadata(
|
|
126
|
+
id,
|
|
127
|
+
JSON.parse(JSON.stringify(rawData)),
|
|
128
|
+
[]
|
|
129
|
+
);
|
|
130
|
+
setData(newlyProcessedData);
|
|
116
131
|
setIsInTinaIframe(true);
|
|
117
132
|
const anyTinaField = document.querySelector("[data-tina-field]");
|
|
118
133
|
if (anyTinaField) {
|
|
@@ -127,8 +142,10 @@ function useTina(props) {
|
|
|
127
142
|
);
|
|
128
143
|
}
|
|
129
144
|
}
|
|
130
|
-
}
|
|
145
|
+
};
|
|
146
|
+
window.addEventListener("message", handleMessage);
|
|
131
147
|
return () => {
|
|
148
|
+
window.removeEventListener("message", handleMessage);
|
|
132
149
|
parent.postMessage({ type: "close", id }, window.location.origin);
|
|
133
150
|
};
|
|
134
151
|
}, [id, setQuickEditEnabled]);
|
|
@@ -150,59 +167,53 @@ function useEditState() {
|
|
|
150
167
|
return { edit };
|
|
151
168
|
}
|
|
152
169
|
const tinaField = (object, property, index) => {
|
|
153
|
-
|
|
154
|
-
if (!
|
|
170
|
+
const contentSource = object == null ? void 0 : object._content_source;
|
|
171
|
+
if (!contentSource) {
|
|
155
172
|
return "";
|
|
156
173
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
(_a = object._content_source) == null ? void 0 : _a.queryId,
|
|
161
|
-
object._content_source.path.join(".")
|
|
162
|
-
].join("---");
|
|
163
|
-
}
|
|
164
|
-
if (typeof index === "number") {
|
|
165
|
-
return [
|
|
166
|
-
(_b = object._content_source) == null ? void 0 : _b.queryId,
|
|
167
|
-
[...object._content_source.path, property, index].join(".")
|
|
168
|
-
].join("---");
|
|
169
|
-
}
|
|
170
|
-
return [
|
|
171
|
-
(_c = object._content_source) == null ? void 0 : _c.queryId,
|
|
172
|
-
[...object._content_source.path, property].join(".")
|
|
173
|
-
].join("---");
|
|
174
|
+
const { queryId, path } = contentSource;
|
|
175
|
+
if (!property) {
|
|
176
|
+
return `${queryId}---${path.join(".")}`;
|
|
174
177
|
}
|
|
175
|
-
|
|
178
|
+
const fullPath = typeof index === "number" ? [...path, property, index] : [...path, property];
|
|
179
|
+
return `${queryId}---${fullPath.join(".")}`;
|
|
176
180
|
};
|
|
177
|
-
const addMetadata = (id,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
181
|
+
const addMetadata = (id, obj, path = []) => {
|
|
182
|
+
if (obj === null) {
|
|
183
|
+
return obj;
|
|
184
|
+
}
|
|
185
|
+
if (isScalarOrUndefined(obj)) {
|
|
186
|
+
return obj;
|
|
187
|
+
}
|
|
188
|
+
if (obj instanceof String) {
|
|
189
|
+
return obj.valueOf();
|
|
190
|
+
}
|
|
191
|
+
if (Array.isArray(obj)) {
|
|
192
|
+
return obj.map(
|
|
193
|
+
(item, index) => addMetadata(id, item, [...path, index])
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
const transformedObj = {};
|
|
197
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
198
|
+
const currentPath = [...path, key];
|
|
199
|
+
if ([
|
|
200
|
+
"__typename",
|
|
201
|
+
"_sys",
|
|
202
|
+
"_internalSys",
|
|
203
|
+
"_values",
|
|
204
|
+
"_internalValues",
|
|
205
|
+
"_content_source",
|
|
206
|
+
"_tina_metadata"
|
|
207
|
+
].includes(key)) {
|
|
208
|
+
transformedObj[key] = value;
|
|
190
209
|
} else {
|
|
191
|
-
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
const itemObject = value;
|
|
195
|
-
addMetadata(id, itemObject, [...path, key]);
|
|
210
|
+
transformedObj[key] = addMetadata(id, value, currentPath);
|
|
196
211
|
}
|
|
197
|
-
});
|
|
198
|
-
if ((object == null ? void 0 : object.type) === "root") {
|
|
199
|
-
return;
|
|
200
212
|
}
|
|
201
|
-
object.
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
};
|
|
205
|
-
return object;
|
|
213
|
+
if (transformedObj && typeof transformedObj === "object" && "type" in transformedObj && transformedObj.type === "root") {
|
|
214
|
+
return transformedObj;
|
|
215
|
+
}
|
|
216
|
+
return { ...transformedObj, _content_source: { queryId: id, path } };
|
|
206
217
|
};
|
|
207
218
|
function isScalarOrUndefined(value) {
|
|
208
219
|
const type = typeof value;
|
|
@@ -58,9 +58,15 @@ type BaseComponents = {
|
|
|
58
58
|
lic?: {
|
|
59
59
|
children: JSX.Element;
|
|
60
60
|
};
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use `blockquote` instead. This was incorrectly named and will be removed in a future version.
|
|
63
|
+
*/
|
|
61
64
|
block_quote?: {
|
|
62
65
|
children: JSX.Element;
|
|
63
66
|
};
|
|
67
|
+
blockquote?: {
|
|
68
|
+
children: JSX.Element;
|
|
69
|
+
};
|
|
64
70
|
code_block?: {
|
|
65
71
|
lang?: string;
|
|
66
72
|
value: string;
|
package/dist/rich-text/index.js
CHANGED
|
@@ -82,7 +82,6 @@
|
|
|
82
82
|
case "h5":
|
|
83
83
|
case "h6":
|
|
84
84
|
case "p":
|
|
85
|
-
case "blockquote":
|
|
86
85
|
case "ol":
|
|
87
86
|
case "ul":
|
|
88
87
|
case "li":
|
|
@@ -99,6 +98,14 @@
|
|
|
99
98
|
return /* @__PURE__ */ React.createElement(Component2, { ...props }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }));
|
|
100
99
|
}
|
|
101
100
|
return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: child.children }));
|
|
101
|
+
case "blockquote":
|
|
102
|
+
const BlockquoteComponent = components.blockquote || components.block_quote;
|
|
103
|
+
if (BlockquoteComponent) {
|
|
104
|
+
return /* @__PURE__ */ React.createElement(BlockquoteComponent, { ...props }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }));
|
|
105
|
+
}
|
|
106
|
+
return React.createElement("blockquote", {
|
|
107
|
+
children: /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children })
|
|
108
|
+
});
|
|
102
109
|
case "img":
|
|
103
110
|
if (components[child.type]) {
|
|
104
111
|
const Component2 = components[child.type];
|
|
@@ -117,17 +124,23 @@
|
|
|
117
124
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
118
125
|
/* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }))
|
|
119
126
|
);
|
|
120
|
-
case "mermaid":
|
|
121
127
|
case "code_block": {
|
|
122
|
-
|
|
128
|
+
let codeString = "";
|
|
129
|
+
if (Array.isArray(child.children)) {
|
|
130
|
+
codeString = child.children.map(
|
|
131
|
+
(line) => Array.isArray(line.children) ? line.children.map((t) => t.text).join("") : ""
|
|
132
|
+
).join("\n");
|
|
133
|
+
} else if (typeof child.value === "string") {
|
|
134
|
+
codeString = child.value;
|
|
135
|
+
}
|
|
123
136
|
if (components[child.type]) {
|
|
124
137
|
const Component2 = components[child.type];
|
|
125
138
|
return (
|
|
126
139
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
127
|
-
/* @__PURE__ */ React.createElement(Component2, { ...props })
|
|
140
|
+
/* @__PURE__ */ React.createElement(Component2, { ...props, value: codeString })
|
|
128
141
|
);
|
|
129
142
|
}
|
|
130
|
-
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null,
|
|
143
|
+
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, codeString));
|
|
131
144
|
}
|
|
132
145
|
case "hr":
|
|
133
146
|
if (components[child.type]) {
|
package/dist/rich-text/index.mjs
CHANGED
|
@@ -79,7 +79,6 @@ const Node = ({ components, child }) => {
|
|
|
79
79
|
case "h5":
|
|
80
80
|
case "h6":
|
|
81
81
|
case "p":
|
|
82
|
-
case "blockquote":
|
|
83
82
|
case "ol":
|
|
84
83
|
case "ul":
|
|
85
84
|
case "li":
|
|
@@ -96,6 +95,14 @@ const Node = ({ components, child }) => {
|
|
|
96
95
|
return /* @__PURE__ */ React.createElement(Component2, { ...props }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }));
|
|
97
96
|
}
|
|
98
97
|
return /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: child.children }));
|
|
98
|
+
case "blockquote":
|
|
99
|
+
const BlockquoteComponent = components.blockquote || components.block_quote;
|
|
100
|
+
if (BlockquoteComponent) {
|
|
101
|
+
return /* @__PURE__ */ React.createElement(BlockquoteComponent, { ...props }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }));
|
|
102
|
+
}
|
|
103
|
+
return React.createElement("blockquote", {
|
|
104
|
+
children: /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children })
|
|
105
|
+
});
|
|
99
106
|
case "img":
|
|
100
107
|
if (components[child.type]) {
|
|
101
108
|
const Component2 = components[child.type];
|
|
@@ -114,17 +121,23 @@ const Node = ({ components, child }) => {
|
|
|
114
121
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
115
122
|
/* @__PURE__ */ React.createElement("a", { href: child.url }, /* @__PURE__ */ React.createElement(TinaMarkdown, { components, content: children }))
|
|
116
123
|
);
|
|
117
|
-
case "mermaid":
|
|
118
124
|
case "code_block": {
|
|
119
|
-
|
|
125
|
+
let codeString = "";
|
|
126
|
+
if (Array.isArray(child.children)) {
|
|
127
|
+
codeString = child.children.map(
|
|
128
|
+
(line) => Array.isArray(line.children) ? line.children.map((t) => t.text).join("") : ""
|
|
129
|
+
).join("\n");
|
|
130
|
+
} else if (typeof child.value === "string") {
|
|
131
|
+
codeString = child.value;
|
|
132
|
+
}
|
|
120
133
|
if (components[child.type]) {
|
|
121
134
|
const Component2 = components[child.type];
|
|
122
135
|
return (
|
|
123
136
|
// @ts-ignore FIXME: TinaMarkdownContent needs to be a union of all possible node types
|
|
124
|
-
/* @__PURE__ */ React.createElement(Component2, { ...props })
|
|
137
|
+
/* @__PURE__ */ React.createElement(Component2, { ...props, value: codeString })
|
|
125
138
|
);
|
|
126
139
|
}
|
|
127
|
-
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null,
|
|
140
|
+
return /* @__PURE__ */ React.createElement("pre", null, /* @__PURE__ */ React.createElement("code", null, codeString));
|
|
128
141
|
}
|
|
129
142
|
case "hr":
|
|
130
143
|
if (components[child.type]) {
|
package/dist/rich-text/prism.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
prismReactRenderer.Highlight,
|
|
8
8
|
{
|
|
9
9
|
theme: prismReactRenderer.themes[props.theme || "github"],
|
|
10
|
-
code: props.value,
|
|
10
|
+
code: props.value || "",
|
|
11
11
|
language: props.lang || ""
|
|
12
12
|
},
|
|
13
13
|
({ className, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React.createElement("pre", { className, style }, tokens.map((line, i) => /* @__PURE__ */ React.createElement("div", { ...getLineProps({ line, key: i }) }, line.map((token, key) => /* @__PURE__ */ React.createElement("span", { ...getTokenProps({ token, key }) })))))
|
package/dist/rich-text/prism.mjs
CHANGED
|
@@ -5,7 +5,7 @@ const Prism = (props) => {
|
|
|
5
5
|
Highlight,
|
|
6
6
|
{
|
|
7
7
|
theme: themes[props.theme || "github"],
|
|
8
|
-
code: props.value,
|
|
8
|
+
code: props.value || "",
|
|
9
9
|
language: props.lang || ""
|
|
10
10
|
},
|
|
11
11
|
({ className, style, tokens, getLineProps, getTokenProps }) => /* @__PURE__ */ React.createElement("pre", { className, style }, tokens.map((line, i) => /* @__PURE__ */ React.createElement("div", { ...getLineProps({ line, key: i }) }, line.map((token, key) => /* @__PURE__ */ React.createElement("span", { ...getTokenProps({ token, key }) })))))
|