tinacms 0.0.0-b20679d-20241024054309 → 0.0.0-b25c5f0-20250618074247

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 (82) 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/components/Page.d.ts +3 -9
  5. package/dist/admin/components/Sidebar.d.ts +0 -3
  6. package/dist/admin/components/ui/tooltip.d.ts +7 -0
  7. package/dist/admin/pages/CollectionCreatePage.d.ts +1 -1
  8. package/dist/admin/pages/CollectionListPage.d.ts +2 -2
  9. package/dist/admin/pages/DashboardPage.d.ts +0 -3
  10. package/dist/admin/pages/ScreenPage.d.ts +0 -3
  11. package/dist/admin/types.d.ts +3 -0
  12. package/dist/auth/TinaCloudProvider.d.ts +1 -1
  13. package/dist/cache/node-cache.d.ts +1 -1
  14. package/dist/client.js +86 -50
  15. package/dist/client.mjs +59 -36
  16. package/dist/hooks/create-page-plugin.d.ts +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.js +9354 -8093
  19. package/dist/index.mjs +11817 -10557
  20. package/dist/internalClient/index.d.ts +3 -3
  21. package/dist/{node-cache-906fcb22.mjs → node-cache-5e8db9f0.mjs} +27 -14
  22. package/dist/react.d.ts +1 -0
  23. package/dist/react.js +13 -1
  24. package/dist/react.mjs +13 -1
  25. package/dist/rich-text/prism.js +1 -1
  26. package/dist/rich-text/prism.mjs +1 -1
  27. package/dist/toolkit/components/media/media-item.d.ts +1 -1
  28. package/dist/toolkit/components/media/media-manager.d.ts +1 -1
  29. package/dist/toolkit/components/ui/breadcrumb.d.ts +11 -0
  30. package/dist/toolkit/components/ui/dropdown-menu.d.ts +25 -0
  31. package/dist/toolkit/fields/components/password-field.d.ts +1 -1
  32. package/dist/toolkit/fields/components/reference/components/button.d.ts +1 -1
  33. package/dist/toolkit/fields/components/reference/components/popover.d.ts +1 -1
  34. package/dist/toolkit/fields/components/reference/model/reference-link-props.d.ts +2 -0
  35. package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
  36. package/dist/toolkit/fields/components/select.d.ts +2 -2
  37. package/dist/toolkit/fields/components/text-field.d.ts +1 -1
  38. package/dist/toolkit/fields/plugins/group-field-plugin.d.ts +1 -1
  39. package/dist/toolkit/fields/plugins/list-field-meta.d.ts +1 -1
  40. package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +5 -2
  41. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
  42. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
  43. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
  44. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +6 -11
  45. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +5 -1
  46. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +2 -2
  47. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/transforms/is-url.d.ts +1 -2
  48. package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
  49. package/dist/toolkit/form-builder/fields-builder.d.ts +1 -1
  50. package/dist/toolkit/form-builder/form-builder.d.ts +15 -5
  51. package/dist/toolkit/forms/field.d.ts +3 -0
  52. package/dist/toolkit/forms/form.d.ts +22 -3
  53. package/dist/toolkit/git-client/git-client.d.ts +25 -2
  54. package/dist/toolkit/git-client/git-file.d.ts +18 -0
  55. package/dist/toolkit/git-client/git-media-store.d.ts +13 -0
  56. package/dist/toolkit/git-client/use-git-file.d.ts +4 -0
  57. package/dist/toolkit/icons/Tina.d.ts +0 -5
  58. package/dist/toolkit/index.d.ts +1 -1
  59. package/dist/toolkit/plugin-branch-switcher/branch-button.d.ts +1 -0
  60. package/dist/toolkit/plugin-branch-switcher/branch-switcher-legacy.d.ts +1 -1
  61. package/dist/toolkit/plugin-branch-switcher/branch-switcher.d.ts +1 -1
  62. package/dist/toolkit/plugin-branch-switcher/index.d.ts +0 -1
  63. package/dist/toolkit/react-cloud-config/cloud-config-plugin.d.ts +3 -3
  64. package/dist/toolkit/react-sidebar/components/alert.d.ts +5 -0
  65. package/dist/toolkit/react-sidebar/components/form-list.d.ts +1 -1
  66. package/dist/toolkit/react-sidebar/components/nav.d.ts +5 -3
  67. package/dist/toolkit/react-sidebar/components/resize-handle.d.ts +0 -5
  68. package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +7 -10
  69. package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
  70. package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
  71. package/dist/toolkit/react-sidebar/components/sidebar.d.ts +0 -7
  72. package/dist/toolkit/react-sidebar/components/sync-status.d.ts +5 -8
  73. package/dist/toolkit/react-sidebar/index.d.ts +1 -1
  74. package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
  75. package/dist/toolkit/styles/button.d.ts +2 -2
  76. package/dist/toolkit/tina-cms.d.ts +3 -3
  77. package/dist/toolkit/tina-state.d.ts +15 -0
  78. package/dist/unifiedClient/index.d.ts +8 -1
  79. package/dist/utils/cn.d.ts +2 -0
  80. package/package.json +41 -41
  81. package/dist/toolkit/plugin-branch-switcher/branch-banner.d.ts +0 -2
  82. package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @deprecated as the API is clunky and hard to use. Mutations should now be
3
+ * done via Graphql. This will be removed by July 2025.
4
+ */
1
5
  export declare class GitClient {
2
6
  private baseUrl;
3
7
  constructor(baseUrl: string);
@@ -29,6 +33,9 @@ export declare class GitClient {
29
33
  * @deprecated
30
34
  */
31
35
  isAuthenticated(): boolean;
36
+ /**
37
+ * @deprecated
38
+ */
32
39
  commit(data: {
33
40
  files: string[];
34
41
  message?: string;
@@ -36,15 +43,17 @@ export declare class GitClient {
36
43
  email?: string;
37
44
  }): Promise<Response>;
38
45
  /**
39
- *
40
46
  * TODO: Add return type.
41
47
  * TODO: Remove `catch`
48
+ *
49
+ * @deprecated
42
50
  */
43
51
  push(): Promise<any>;
44
52
  /**
45
- *
46
53
  * TODO: Add return type.
47
54
  * TODO: Remove `catch`
55
+ *
56
+ * @deprecated
48
57
  */
49
58
  writeToDisk(data: {
50
59
  fileRelativePath: string;
@@ -53,6 +62,8 @@ export declare class GitClient {
53
62
  /**
54
63
  * Uploads a File to disk
55
64
  * TODO: Remove `catch`
65
+ *
66
+ * @deprecated
56
67
  */
57
68
  writeMediaToDisk(data: {
58
69
  directory: string;
@@ -62,31 +73,43 @@ export declare class GitClient {
62
73
  * TODO: rename `data.relPath` to `data.fileRelativePath`
63
74
  * TODO: Add return type.
64
75
  * TODO: Remove `catch`
76
+ *
77
+ * @deprecated
65
78
  */
66
79
  deleteFromDisk(data: {
67
80
  relPath: string;
68
81
  }): Promise<any>;
69
82
  /**
70
83
  * Resets the given files.
84
+ *
85
+ * @deprecated
71
86
  */
72
87
  reset(data: {
73
88
  files: string[];
74
89
  }): Promise<Response>;
75
90
  /**
76
91
  * Get the contents of a file or directory on disk.
92
+ *
93
+ * @deprecated
77
94
  */
78
95
  getFile(fileRelativePath: string): Promise<any>;
79
96
  /**
80
97
  * Get the contents of a file for the most recent commit.
98
+ *
99
+ * @deprecated
81
100
  */
82
101
  show(fileRelativePath: string): Promise<any>;
83
102
  /**
84
103
  * Get information about a local branch by name, or the current branch if no
85
104
  * name is specified.
105
+ *
106
+ * @deprecated
86
107
  */
87
108
  branch(name?: string): Promise<any>;
88
109
  /**
89
110
  * Get a list of the names of all local branches.
111
+ *
112
+ * @deprecated
90
113
  */
91
114
  branches(): Promise<any>;
92
115
  }
@@ -1,4 +1,8 @@
1
1
  import { CMS } from '../core';
2
+ /**
3
+ * @deprecated as the API is clunky and hard to use. Mutations should now be
4
+ * done via Graphql. This will be removed by July 2025.
5
+ */
2
6
  export declare class GitFile {
3
7
  private cms;
4
8
  relativePath: string;
@@ -7,10 +11,24 @@ export declare class GitFile {
7
11
  constructor(cms: CMS, relativePath: string, format: (file: any) => string, parse: (content: string) => any);
8
12
  /**
9
13
  * Load the contents of this file at HEAD
14
+ *
15
+ * @deprecated
10
16
  */
11
17
  show: () => Promise<any>;
18
+ /**
19
+ * @deprecated
20
+ */
12
21
  commit: () => Promise<void>;
22
+ /**
23
+ * @deprecated
24
+ */
13
25
  reset: () => void;
26
+ /**
27
+ * @deprecated
28
+ */
14
29
  write: (values: any) => void;
30
+ /**
31
+ * @deprecated
32
+ */
15
33
  private get git();
16
34
  }
@@ -1,11 +1,24 @@
1
1
  import { MediaStore, MediaUploadOptions, Media, MediaListOptions, MediaList } from '../core';
2
2
  import { GitClient } from './git-client';
3
+ /**
4
+ * @deprecated as the API is clunky and hard to use. Mutations should now be
5
+ * done via Graphql. This will be removed by July 2025.
6
+ */
3
7
  export declare class GitMediaStore implements MediaStore {
4
8
  private client;
5
9
  accept: string;
6
10
  constructor(client: GitClient);
11
+ /**
12
+ * @deprecated
13
+ */
7
14
  persist(files: MediaUploadOptions[]): Promise<Media[]>;
15
+ /**
16
+ * @deprecated
17
+ */
8
18
  list(options?: MediaListOptions): Promise<MediaList>;
19
+ /**
20
+ * @deprecated
21
+ */
9
22
  delete(media: Media): Promise<void>;
10
23
  }
11
24
  export declare const nextOffset: (offset: number, limit: number, count: number) => number;
@@ -1,2 +1,6 @@
1
1
  import { GitFile } from './git-file';
2
+ /**
3
+ * @deprecated as the API is clunky and hard to use. Mutations should now be
4
+ * done via Graphql. This will be removed by July 2025.
5
+ */
2
6
  export declare function useGitFile(relativePath: string, format: (file: any) => string, parse: (content: string) => any): GitFile;
@@ -1,8 +1,3 @@
1
- /**
2
-
3
-
4
-
5
- */
6
1
  import * as React from 'react';
7
2
  export declare const TinaIcon: ({ ...props }: {
8
3
  [x: string]: any;
@@ -19,7 +19,7 @@ export type { TinaState } from './tina-state';
19
19
  export * from './forms';
20
20
  export * from './icons';
21
21
  export * from './react-dismissible';
22
- export { Nav, LocalWarning, BillingWarning, SyncStatus, } from './react-sidebar';
22
+ export { Nav, LocalWarning, BillingWarning, SyncStatusButton, } from './react-sidebar';
23
23
  export { useCMS } from './react-core';
24
24
  /**
25
25
  * Custom `tinacms` things
@@ -1,2 +1,3 @@
1
1
  import * as React from 'react';
2
2
  export declare const BranchButton: () => React.JSX.Element;
3
+ export declare const BranchPreviewButton: (props: React.ButtonHTMLAttributes<HTMLButtonElement>) => React.JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { BranchSwitcherProps, Branch } from './types';
2
+ import { Branch, BranchSwitcherProps } from './types';
3
3
  export declare function formatBranchName(str: string): string;
4
4
  export declare const BranchSwitcherLegacy: ({ listBranches, createBranch, chooseBranch, }: BranchSwitcherProps) => React.JSX.Element;
5
5
  export declare const getFilteredBranchList: (branchList: Branch[], filter: string, currentBranchName: string) => Branch[];
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { BranchSwitcherProps, Branch } from './types';
2
+ import { Branch, BranchSwitcherProps } from './types';
3
3
  export declare function formatBranchName(str: string): string;
4
4
  export declare const BranchSwitcher: (props: BranchSwitcherProps) => React.JSX.Element;
5
5
  export declare const EditoralBranchSwitcher: ({ listBranches, createBranch, chooseBranch, setModalTitle, }: BranchSwitcherProps) => React.JSX.Element;
@@ -2,5 +2,4 @@ export * from './plugin';
2
2
  export * from './types';
3
3
  export * from './branch-switcher';
4
4
  export * from './branch-data';
5
- export * from './branch-banner';
6
5
  export * from './branch-button';
@@ -1,13 +1,13 @@
1
1
  import { Plugin } from '../core';
2
2
  import type { IconType } from 'react-icons';
3
3
  /**
4
- * Represents a Tina Cloud Config that should be accessible via the CMS.
4
+ * Represents a TinaCloud Config that should be accessible via the CMS.
5
5
  *
6
6
  * The purpose of these configs is to give a way to display & edit information
7
- * about TIna Cloud Configuration
7
+ * about TinaCloud Configuration
8
8
  * cases may include:
9
9
  *
10
- * * Tina Cloud Project Configuration
10
+ * * TinaCloud Project Configuration
11
11
  * * User Management
12
12
  */
13
13
  export interface CloudConfigPlugin extends Plugin {
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export declare const Alert: ({ children, alertStyle, className, ...props }: {
3
+ children?: React.ReactNode;
4
+ alertStyle?: "warning";
5
+ } & React.HTMLProps<HTMLDivElement>) => React.JSX.Element;
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import type { TinaState } from '../../tina-state';
2
+ import * as React from 'react';
3
3
  type FormListItem = TinaState['formLists'][number]['items'][number];
4
4
  export interface FormsListProps {
5
5
  formList: FormListItem[];
@@ -1,6 +1,6 @@
1
- import * as React from 'react';
2
- import type { ScreenPlugin } from '../../react-screens';
3
1
  import type { CloudConfigPlugin } from '../../react-cloud-config';
2
+ import type { ScreenPlugin } from '../../react-screens';
3
+ import * as React from 'react';
4
4
  interface NavCollection {
5
5
  label?: string;
6
6
  name: string;
@@ -8,6 +8,8 @@ interface NavCollection {
8
8
  }
9
9
  interface NavProps {
10
10
  isLocalMode: boolean;
11
+ showHamburger?: boolean;
12
+ toggleMenu: () => void;
11
13
  children?: any;
12
14
  className?: string;
13
15
  userName?: string;
@@ -38,5 +40,5 @@ interface NavProps {
38
40
  };
39
41
  }>;
40
42
  }
41
- export declare const Nav: ({ isLocalMode, className, children, showCollections, collectionsInfo, screens, cloudConfigs, contentCreators, sidebarWidth, RenderNavSite, RenderNavCloud, RenderNavCollection, AuthRenderNavCollection, ...props }: NavProps) => React.JSX.Element;
43
+ export declare const Nav: ({ isLocalMode, showHamburger, toggleMenu, className, children, showCollections, collectionsInfo, screens, cloudConfigs, contentCreators, sidebarWidth, RenderNavSite, RenderNavCloud, RenderNavCollection, AuthRenderNavCollection, ...props }: NavProps) => React.JSX.Element;
42
44
  export {};
@@ -1,7 +1,2 @@
1
- /**
2
-
3
-
4
-
5
- */
6
1
  import * as React from 'react';
7
2
  export declare const ResizeHandle: () => React.JSX.Element;
@@ -1,15 +1,9 @@
1
- import * as React from 'react';
2
1
  import type { Form } from '../../forms';
3
- export declare const FormsView: ({ children, }: {
4
- children?: React.ReactChild | React.ReactChild[];
5
- }) => React.JSX.Element;
6
- export interface MultiformFormHeaderProps {
7
- activeForm: {
8
- activeFieldName?: string;
9
- tinaForm: Form;
10
- };
2
+ import * as React from 'react';
3
+ export interface FormsViewProps {
4
+ loadingPlaceholder?: React.FC;
11
5
  }
12
- export declare const MultiformFormHeader: ({ activeForm, }: MultiformFormHeaderProps) => React.JSX.Element;
6
+ export declare const FormsView: ({ loadingPlaceholder }?: FormsViewProps) => React.JSX.Element;
13
7
  export interface FormHeaderProps {
14
8
  activeForm: {
15
9
  activeFieldName?: string;
@@ -17,3 +11,6 @@ export interface FormHeaderProps {
17
11
  };
18
12
  }
19
13
  export declare const FormHeader: ({ activeForm }: FormHeaderProps) => React.JSX.Element;
14
+ export declare const FormBreadcrumbs: ({ rootBreadcrumbName, ...props }: {
15
+ rootBreadcrumbName?: string;
16
+ } & React.HTMLAttributes<HTMLDivElement>) => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const SidebarLoadingPlaceholder: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const SidebarNoFormsPlaceholder: () => React.JSX.Element;
@@ -3,7 +3,6 @@ import type { SidebarState, SidebarStateOptions } from '../sidebar';
3
3
  export declare const SidebarContext: React.Context<any>;
4
4
  export declare const minPreviewWidth = 440;
5
5
  export declare const minSidebarWidth = 360;
6
- export declare const navBreakpoint = 1279;
7
6
  export interface SidebarProviderProps {
8
7
  sidebar: SidebarState;
9
8
  resizingSidebar: boolean;
@@ -13,9 +12,3 @@ export interface SidebarProviderProps {
13
12
  defaultState?: SidebarStateOptions['defaultState'];
14
13
  }
15
14
  export declare function SidebarProvider({ position, resizingSidebar, setResizingSidebar, defaultWidth, sidebar, }: SidebarProviderProps): React.JSX.Element;
16
- export declare const updateBodyDisplacement: ({ position, displayState, sidebarWidth, resizingSidebar, }: {
17
- position?: string;
18
- displayState: any;
19
- sidebarWidth: any;
20
- resizingSidebar: any;
21
- }) => void;
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import { TinaCMS } from '../../tina-cms';
2
+ import * as React from 'react';
3
3
  export declare const useGetEvents: (cms: TinaCMS, cursor?: string, existingEvents?: {
4
4
  message: string;
5
5
  id: string;
@@ -18,14 +18,11 @@ export declare const useGetEvents: (cms: TinaCMS, cursor?: string, existingEvent
18
18
  loading: boolean;
19
19
  error: Error;
20
20
  };
21
- export declare const SyncErrorWidget: ({ cms }: {
22
- cms: any;
23
- }) => React.JSX.Element;
24
21
  export declare const SyncStatusModal: ({ closeEventsModal, cms }: {
25
22
  closeEventsModal: any;
26
23
  cms: any;
27
24
  }) => React.JSX.Element;
28
- export declare const SyncStatus: ({ cms, setEventsOpen }: {
29
- cms: any;
30
- setEventsOpen: any;
31
- }) => React.JSX.Element;
25
+ export declare const SyncStatusButton: ({ cms, setEventsOpen, ...buttonProps }: {
26
+ cms: TinaCMS;
27
+ setEventsOpen: (open: boolean) => void;
28
+ } & React.ButtonHTMLAttributes<HTMLButtonElement>) => React.JSX.Element;
@@ -2,4 +2,4 @@ export * from './sidebar';
2
2
  export { SidebarProvider } from './components/sidebar';
3
3
  export { Nav } from './components/nav';
4
4
  export { LocalWarning, BillingWarning } from './components/local-warning';
5
- export { SyncStatus } from './components/sync-status';
5
+ export { SyncStatusButton } from './components/sync-status';
@@ -1,5 +1,5 @@
1
- import { EventBus, Callback } from '../core';
2
1
  import * as React from 'react';
2
+ import { Callback, EventBus } from '../core';
3
3
  export interface SidebarStateOptions {
4
4
  position?: SidebarPosition;
5
5
  buttons?: SidebarButtons;
@@ -22,7 +22,7 @@ export declare type DefaultSidebarState = 'open' | 'closed';
22
22
  export declare class SidebarState {
23
23
  private events;
24
24
  private _isOpen;
25
- placeholder: React.FC;
25
+ loadingPlaceholder: React.FC;
26
26
  defaultState: DefaultSidebarState;
27
27
  position: SidebarPosition;
28
28
  renderNav: boolean;
@@ -1,12 +1,12 @@
1
1
  import * as React from 'react';
2
2
  export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
3
- variant?: 'primary' | 'secondary' | 'white' | 'ghost' | 'danger';
3
+ variant?: 'primary' | 'secondary' | 'white' | 'ghost' | 'danger' | 'custom';
4
4
  as?: React.ElementType;
5
5
  href?: string;
6
6
  target?: string;
7
7
  size?: 'small' | 'medium' | 'custom';
8
8
  busy?: boolean;
9
- rounded?: 'full' | 'left' | 'right' | 'custom';
9
+ rounded?: 'full' | 'left' | 'right' | 'custom' | 'none';
10
10
  disabled?: boolean;
11
11
  className?: string;
12
12
  children?: React.ReactNode;
@@ -1,11 +1,11 @@
1
+ import { Alerts, type EventsToAlerts } from './alerts';
1
2
  import { CMS, type CMSConfig, type PluginType } from './core';
2
3
  import type { FieldPlugin } from './form-builder';
3
- import type { ScreenPlugin } from './react-screens';
4
4
  import type { Form } from './forms';
5
- import { Alerts, type EventsToAlerts } from './alerts';
5
+ import type { ScreenPlugin } from './react-screens';
6
6
  import { SidebarState, type SidebarStateOptions } from './react-sidebar';
7
- import type { TinaAction, TinaState } from './tina-state';
8
7
  import type { Client } from '../internalClient';
8
+ import type { TinaAction, TinaState } from './tina-state';
9
9
  export interface TinaCMSConfig extends CMSConfig {
10
10
  sidebar?: SidebarStateOptions | boolean;
11
11
  alerts?: EventsToAlerts;
@@ -15,6 +15,12 @@ type FormList = {
15
15
  items: FormListItem[];
16
16
  formIds: string[];
17
17
  };
18
+ type Breadcrumb = {
19
+ label: string;
20
+ formId: string;
21
+ formName: string;
22
+ namespace: string[];
23
+ };
18
24
  export type TinaAction = {
19
25
  type: 'forms:add';
20
26
  value: Form;
@@ -58,8 +64,12 @@ export type TinaAction = {
58
64
  } | {
59
65
  type: 'sidebar:set-display-state';
60
66
  value: TinaState['sidebarDisplayState'] | 'openOrFull';
67
+ } | {
68
+ type: 'sidebar:set-loading-state';
69
+ value: boolean;
61
70
  };
62
71
  export interface TinaState {
72
+ breadcrumbs: Breadcrumb[];
63
73
  activeFormId: string | null;
64
74
  /**
65
75
  * Forms are wrapped here because we need `activeFieldName` to be reactive, so adding it as a propery
@@ -76,9 +86,14 @@ export interface TinaState {
76
86
  }[];
77
87
  formLists: FormList[];
78
88
  editingMode: 'visual' | 'basic';
89
+ isLoadingContent: boolean;
79
90
  quickEditSupported: boolean;
80
91
  sidebarDisplayState: 'closed' | 'open' | 'fullscreen';
81
92
  }
82
93
  export declare const initialState: (cms: TinaCMS) => TinaState;
83
94
  export declare function tinaReducer(state: TinaState, action: TinaAction): TinaState;
95
+ export declare function calculateBreadcrumbs(forms: {
96
+ activeFieldName?: string | null;
97
+ tinaForm: Form;
98
+ }[], activeFormId: string, activeFieldName?: string): Breadcrumb[];
84
99
  export {};
@@ -1,4 +1,6 @@
1
1
  import type { Config } from '@tinacms/schema-tools';
2
+ import AsyncLock from 'async-lock';
3
+ import type { GraphQLError } from 'graphql';
2
4
  import type { Cache } from '../cache/index';
3
5
  export declare const TINA_HOST = "content.tinajs.io";
4
6
  export interface TinaClientArgs<GenQueries = Record<string, unknown>> {
@@ -25,12 +27,17 @@ export declare class TinaClient<GenQueries> {
25
27
  queries: GenQueries;
26
28
  errorPolicy: Config['client']['errorPolicy'];
27
29
  initialized: boolean;
30
+ cacheLock: AsyncLock | undefined;
28
31
  cacheDir: string;
29
32
  cache: Cache;
30
33
  constructor({ token, url, queries, errorPolicy, cacheDir, }: TinaClientArgs<GenQueries>);
31
34
  init(): Promise<void>;
32
35
  request<DataType extends Record<string, any> = any>({ errorPolicy, ...args }: TinaClientRequestArgs, options: {
33
36
  fetchOptions?: Parameters<typeof fetch>[1];
34
- }): Promise<any>;
37
+ }): Promise<{
38
+ data: DataType;
39
+ errors: GraphQLError[] | null;
40
+ query: string;
41
+ }>;
35
42
  }
36
43
  export declare function createClient<GenQueries>(args: TinaClientArgs<GenQueries>): TinaClient<GenQueries>;
@@ -0,0 +1,2 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinacms",
3
- "version": "0.0.0-b20679d-20241024054309",
3
+ "version": "0.0.0-b25c5f0-20250618074247",
4
4
  "main": "dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "exports": {
@@ -60,21 +60,21 @@
60
60
  "typings": "dist/index.d.ts",
61
61
  "license": "Apache-2.0",
62
62
  "dependencies": {
63
- "@ariakit/react": "^0.4.11",
64
- "@floating-ui/dom": "^1.6.11",
63
+ "@ariakit/react": "^0.4.15",
64
+ "@floating-ui/dom": "^1.6.13",
65
65
  "@floating-ui/react-dom": "^2.1.2",
66
- "@graphql-inspector/core": "^6.1.0",
66
+ "@graphql-inspector/core": "^6.2.1",
67
67
  "@headlessui/react": "2.1.8",
68
68
  "@heroicons/react": "^1.0.6",
69
- "@monaco-editor/react": "4.4.5",
70
- "@radix-ui/react-checkbox": "^1.1.1",
71
- "@radix-ui/react-dialog": "^1.1.1",
72
- "@radix-ui/react-dropdown-menu": "^2.1.1",
73
- "@radix-ui/react-popover": "^1.1.1",
74
- "@radix-ui/react-separator": "^1.1.0",
75
- "@radix-ui/react-slot": "^1.1.0",
76
- "@radix-ui/react-toolbar": "^1.1.0",
77
- "@radix-ui/react-tooltip": "^1.1.2",
69
+ "@monaco-editor/react": "4.7.0-rc.0",
70
+ "@radix-ui/react-checkbox": "^1.1.4",
71
+ "@radix-ui/react-dialog": "^1.1.6",
72
+ "@radix-ui/react-dropdown-menu": "^2.1.6",
73
+ "@radix-ui/react-popover": "^1.1.6",
74
+ "@radix-ui/react-separator": "^1.1.2",
75
+ "@radix-ui/react-slot": "^1.1.2",
76
+ "@radix-ui/react-toolbar": "^1.1.2",
77
+ "@radix-ui/react-tooltip": "^1.2.6",
78
78
  "@react-hook/window-size": "^3.1.1",
79
79
  "@udecode/cn": "^33.0.0",
80
80
  "@udecode/plate": "^36.5.9",
@@ -92,13 +92,13 @@
92
92
  "@udecode/plate-resizable": "36.0.0",
93
93
  "@udecode/plate-slash-command": "^36.0.0",
94
94
  "@udecode/plate-table": "36.5.8",
95
- "class-variance-authority": "^0.7.0",
95
+ "async-lock": "^1.4.1",
96
+ "class-variance-authority": "^0.7.1",
96
97
  "clsx": "^2.1.1",
97
- "cmdk": "^1.0.0",
98
+ "cmdk": "^1.0.4",
98
99
  "color-string": "^1.9.1",
99
100
  "crypto-js": "^4.2.0",
100
101
  "date-fns": "2.30.0",
101
- "fetch-ponyfill": "^7.1.0",
102
102
  "final-form": "4.20.10",
103
103
  "final-form-arrays": "^3.1.0",
104
104
  "final-form-set-field-data": "^1.0.2",
@@ -111,47 +111,47 @@
111
111
  "mermaid": "9.3.0",
112
112
  "moment": "2.29.4",
113
113
  "monaco-editor": "0.31.0",
114
- "prism-react-renderer": "^2.4.0",
114
+ "prism-react-renderer": "^2.4.1",
115
115
  "prop-types": "15.7.2",
116
116
  "react-beautiful-dnd": "^13.1.1",
117
117
  "react-color": "^2.19.3",
118
- "react-datetime": "^3.2.0",
118
+ "react-datetime": "^3.3.1",
119
119
  "react-dropzone": "14.2.3",
120
120
  "react-final-form": "^6.5.9",
121
- "react-icons": "^5.3.0",
122
- "react-onclickoutside": "^6.13.1",
121
+ "react-icons": "^5.4.0",
123
122
  "react-router-dom": "6.3.0",
123
+ "react-use": "^17.6.0",
124
124
  "slate": "^0.103.0",
125
125
  "slate-history": "^0.100.0",
126
126
  "slate-hyperscript": "^0.100.0",
127
127
  "slate-react": "^0.107.1",
128
- "tailwind-merge": "^2.5.2",
128
+ "tailwind-merge": "^2.6.0",
129
129
  "webfontloader": "1.6.28",
130
- "yup": "^1.4.0",
131
- "zod": "^3.23.8",
132
- "@tinacms/schema-tools": "0.0.0-b20679d-20241024054309",
133
- "@tinacms/search": "0.0.0-b20679d-20241024054309",
134
- "@tinacms/mdx": "0.0.0-b20679d-20241024054309"
130
+ "yup": "^1.6.1",
131
+ "zod": "^3.24.2",
132
+ "@tinacms/schema-tools": "0.0.0-b25c5f0-20250618074247",
133
+ "@tinacms/mdx": "0.0.0-b25c5f0-20250618074247",
134
+ "@tinacms/search": "0.0.0-b25c5f0-20250618074247"
135
135
  },
136
136
  "devDependencies": {
137
- "@graphql-tools/utils": "^10.5.4",
137
+ "@graphql-tools/utils": "^10.8.1",
138
138
  "@testing-library/dom": "^10.4.0",
139
- "@testing-library/jest-dom": "^6.5.0",
140
- "@testing-library/react": "^16.0.1",
141
- "@testing-library/user-event": "^14.5.2",
139
+ "@testing-library/jest-dom": "^6.6.3",
140
+ "@testing-library/react": "^16.2.0",
141
+ "@testing-library/user-event": "^14.6.1",
142
142
  "@types/atob": "^2.1.4",
143
143
  "@types/codemirror": "^5.60.15",
144
144
  "@types/color-string": "^1.5.5",
145
145
  "@types/lodash.debounce": "^4.0.9",
146
146
  "@types/lodash.get": "^4.4.9",
147
- "@types/node": "^22.7.4",
148
- "@types/prop-types": "^15.7.13",
149
- "@types/react": "^18.3.10",
147
+ "@types/node": "^22.13.1",
148
+ "@types/prop-types": "^15.7.14",
149
+ "@types/react": "^18.3.18",
150
150
  "@types/react-beautiful-dnd": "^13.1.8",
151
- "@types/react-color": "^3.0.12",
152
- "@types/react-dom": "^18.3.0",
151
+ "@types/react-color": "^3.0.13",
152
+ "@types/react-dom": "^18.3.5",
153
153
  "@types/yup": "^0.32.0",
154
- "happy-dom": "^14.12.3",
154
+ "happy-dom": "15.10.2",
155
155
  "identity-obj-proxy": "^3.0.0",
156
156
  "isomorphic-fetch": "^3.0.0",
157
157
  "jest-file-snapshot": "^0.7.0",
@@ -160,11 +160,11 @@
160
160
  "react-dom": "^18.3.1",
161
161
  "react-is": "^18.3.1",
162
162
  "tsc-alias": "^1.8.10",
163
- "tslib": "^2.7.0",
164
- "typescript": "^5.6.2",
165
- "vite": "^5.4.8",
166
- "vitest": "^2.1.1",
167
- "@tinacms/scripts": "1.3.0"
163
+ "tslib": "^2.8.1",
164
+ "typescript": "^5.7.3",
165
+ "vite": "^5.4.14",
166
+ "vitest": "^2.1.9",
167
+ "@tinacms/scripts": "1.3.5"
168
168
  },
169
169
  "peerDependencies": {
170
170
  "react": ">=16.14.0",
@@ -1,2 +0,0 @@
1
- import * as React from 'react';
2
- export declare const BranchBanner: () => React.JSX.Element;
@@ -1,8 +0,0 @@
1
- /**
2
-
3
-
4
-
5
- */
6
- import * as React from 'react';
7
- export declare const PendingFormsPlaceholder: () => React.JSX.Element;
8
- export declare const NoFormsPlaceholder: () => React.JSX.Element;