tinacms 0.0.0-ef282d9-20241024212433 → 0.0.0-f696c7d-20241104134240

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.
@@ -25,6 +25,9 @@ export interface DocumentNode {
25
25
  }
26
26
  export interface DocumentForm {
27
27
  _values: Object;
28
+ _sys?: {
29
+ hasReferences?: boolean;
30
+ };
28
31
  }
29
32
  export interface DocumentSys {
30
33
  _sys: {
package/dist/index.js CHANGED
@@ -774,6 +774,22 @@ var __publicField = (obj, key, value) => {
774
774
  );
775
775
  };
776
776
  }
777
+ function wrapFieldWithNoHeader(Field) {
778
+ return (props) => {
779
+ return /* @__PURE__ */ React__namespace.createElement(
780
+ FieldMeta,
781
+ {
782
+ name: props.input.name,
783
+ label: false,
784
+ description: "",
785
+ error: props.meta.error,
786
+ index: props.index,
787
+ tinaForm: props.tinaForm
788
+ },
789
+ /* @__PURE__ */ React__namespace.createElement(Field, { ...props })
790
+ );
791
+ };
792
+ }
777
793
  function wrapFieldWithError(Field) {
778
794
  return (props) => {
779
795
  return /* @__PURE__ */ React__namespace.createElement(
@@ -850,9 +866,9 @@ var __publicField = (obj, key, value) => {
850
866
  "span",
851
867
  {
852
868
  className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0 ${className}`,
853
- ...props
854
- },
855
- children
869
+ ...props,
870
+ dangerouslySetInnerHTML: { __html: children }
871
+ }
856
872
  );
857
873
  };
858
874
  const FieldError = ({
@@ -5791,27 +5807,35 @@ flowchart TD
5791
5807
  ))))
5792
5808
  ))));
5793
5809
  };
5794
- const Group = wrapFieldWithError(({ tinaForm, field }) => {
5795
- const cms = useCMS$1();
5796
- React__namespace.useState(false);
5797
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
5798
- Header,
5799
- {
5800
- onClick: () => {
5801
- const state = tinaForm.finalForm.getState();
5802
- if (state.invalid === true) {
5803
- cms.alerts.error("Cannot navigate away from an invalid form.");
5804
- return;
5810
+ const Group = wrapFieldWithNoHeader(
5811
+ ({ tinaForm, field }) => {
5812
+ const cms = useCMS$1();
5813
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
5814
+ Header,
5815
+ {
5816
+ onClick: () => {
5817
+ const state = tinaForm.finalForm.getState();
5818
+ if (state.invalid === true) {
5819
+ cms.alerts.error("Cannot navigate away from an invalid form.");
5820
+ return;
5821
+ }
5822
+ cms.dispatch({
5823
+ type: "forms:set-active-field-name",
5824
+ value: { formId: tinaForm.id, fieldName: field.name }
5825
+ });
5805
5826
  }
5806
- cms.dispatch({
5807
- type: "forms:set-active-field-name",
5808
- value: { formId: tinaForm.id, fieldName: field.name }
5809
- });
5810
- }
5811
- },
5812
- field.label || field.name
5813
- ));
5814
- });
5827
+ },
5828
+ field.label || field.name,
5829
+ field.description && /* @__PURE__ */ React__namespace.createElement(
5830
+ "span",
5831
+ {
5832
+ className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0`,
5833
+ dangerouslySetInnerHTML: { __html: field.description }
5834
+ }
5835
+ )
5836
+ ));
5837
+ }
5838
+ );
5815
5839
  const Header = ({ onClick, children }) => {
5816
5840
  return /* @__PURE__ */ React__namespace.createElement("div", { className: "pt-1 mb-5" }, /* @__PURE__ */ React__namespace.createElement(
5817
5841
  "button",
@@ -10308,7 +10332,7 @@ flowchart TD
10308
10332
  "Event Log"
10309
10333
  ));
10310
10334
  };
10311
- const version = "2.3.0";
10335
+ const version = "2.4.0";
10312
10336
  const Nav = ({
10313
10337
  isLocalMode,
10314
10338
  className = "",
@@ -14425,6 +14449,7 @@ flowchart TD
14425
14449
  ToolbarButton,
14426
14450
  {
14427
14451
  showArrow: false,
14452
+ "data-testid": "rich-text-editor-overflow-menu-button",
14428
14453
  className: "lg:min-w-[130px]",
14429
14454
  isDropdown: true,
14430
14455
  pressed: openState.open,
@@ -14478,7 +14503,17 @@ flowchart TD
14478
14503
  };
14479
14504
  const RawMarkdownToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14480
14505
  const { props } = useRawMarkdownToolbarButton();
14481
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.raw, null));
14506
+ return /* @__PURE__ */ React.createElement(
14507
+ ToolbarButton,
14508
+ {
14509
+ ref,
14510
+ tooltip: "Link",
14511
+ ...rest,
14512
+ ...props,
14513
+ "data-testid": "markdown-button"
14514
+ },
14515
+ /* @__PURE__ */ React.createElement(Icons.raw, null)
14516
+ );
14482
14517
  });
14483
14518
  function TableDropdownMenu(props) {
14484
14519
  const tableSelected = plateCommon.useEditorSelector(
@@ -30077,6 +30112,7 @@ mutation addPendingDocumentMutation(
30077
30112
  relativePath
30078
30113
  filename
30079
30114
  extension
30115
+ hasReferences
30080
30116
  }
30081
30117
  }
30082
30118
  }
@@ -30168,6 +30204,9 @@ mutation addPendingDocumentMutation(
30168
30204
  document(collection:$collection, relativePath:$relativePath) {
30169
30205
  ... on Document {
30170
30206
  _values
30207
+ _sys {
30208
+ hasReferences
30209
+ }
30171
30210
  }
30172
30211
  }
30173
30212
  }`;
@@ -31894,6 +31933,23 @@ This will work when developing locally but NOT when deployed to production.
31894
31933
  DeleteModal,
31895
31934
  {
31896
31935
  filename: vars.relativePath,
31936
+ checkRefsFunc: async () => {
31937
+ var _a2, _b2;
31938
+ try {
31939
+ const doc = await admin.fetchDocument(
31940
+ collection.name,
31941
+ vars.relativePath,
31942
+ true
31943
+ );
31944
+ return (_b2 = (_a2 = doc == null ? void 0 : doc.document) == null ? void 0 : _a2._sys) == null ? void 0 : _b2.hasReferences;
31945
+ } catch (error) {
31946
+ cms.alerts.error(
31947
+ "Document was not found, ask a developer for help or check the console for an error message"
31948
+ );
31949
+ console.error(error);
31950
+ throw error;
31951
+ }
31952
+ },
31897
31953
  deleteFunc: async () => {
31898
31954
  try {
31899
31955
  await admin.deleteDocument(vars);
@@ -31902,6 +31958,12 @@ This will work when developing locally but NOT when deployed to production.
31902
31958
  );
31903
31959
  reFetchCollection();
31904
31960
  } catch (error) {
31961
+ if (error.message.indexOf("has references")) {
31962
+ cms.alerts.error(
31963
+ error.message.split("\n ").filter(Boolean)[1]
31964
+ );
31965
+ return;
31966
+ }
31905
31967
  cms.alerts.warn(
31906
31968
  "Document was not deleted, ask a developer for help or check the console for an error message"
31907
31969
  );
@@ -31953,6 +32015,12 @@ This will work when developing locally but NOT when deployed to production.
31953
32015
  cms.alerts.info("Document was successfully renamed");
31954
32016
  reFetchCollection();
31955
32017
  } catch (error) {
32018
+ if (error.message.indexOf("has references")) {
32019
+ cms.alerts.error(
32020
+ error.message.split("\n ").filter(Boolean)[1]
32021
+ );
32022
+ return;
32023
+ }
31956
32024
  cms.alerts.warn(
31957
32025
  "Document was not renamed, ask a developer for help or check the console for an error message"
31958
32026
  );
@@ -32426,8 +32494,19 @@ This will work when developing locally but NOT when deployed to production.
32426
32494
  const NoDocumentsPlaceholder = () => {
32427
32495
  return /* @__PURE__ */ React.createElement("div", { className: "text-center px-5 py-3 flex flex-col items-center justify-center shadow border border-gray-100 bg-gray-50 border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React.createElement("p", { className: "text-base italic font-medium text-gray-300" }, "No documents found."));
32428
32496
  };
32429
- const DeleteModal = ({ close: close2, deleteFunc, filename }) => {
32430
- return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", null, `Are you sure you want to delete ${filename}?`)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React.createElement(
32497
+ const DeleteModal = ({
32498
+ close: close2,
32499
+ deleteFunc,
32500
+ checkRefsFunc,
32501
+ filename
32502
+ }) => {
32503
+ const [hasRefs, setHasRefs] = React.useState();
32504
+ React.useEffect(() => {
32505
+ checkRefsFunc().then((result) => {
32506
+ setHasRefs(result);
32507
+ });
32508
+ }, [filename, checkRefsFunc]);
32509
+ return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", null, `Are you sure you want to delete ${filename}?${hasRefs ? " References to this document will also be deleted." : ""}`)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React.createElement(
32431
32510
  Button$1,
32432
32511
  {
32433
32512
  style: { flexGrow: 3 },
@@ -33794,6 +33873,7 @@ This will work when developing locally but NOT when deployed to production.
33794
33873
  exports2.useScreenPlugin = useScreenPlugin;
33795
33874
  exports2.useTinaAuthRedirect = useTinaAuthRedirect;
33796
33875
  exports2.wrapFieldWithError = wrapFieldWithError;
33876
+ exports2.wrapFieldWithNoHeader = wrapFieldWithNoHeader;
33797
33877
  exports2.wrapFieldsWithMeta = wrapFieldsWithMeta;
33798
33878
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
33799
33879
  });
package/dist/index.mjs CHANGED
@@ -801,6 +801,22 @@ function wrapFieldsWithMeta(Field2) {
801
801
  );
802
802
  };
803
803
  }
804
+ function wrapFieldWithNoHeader(Field2) {
805
+ return (props) => {
806
+ return /* @__PURE__ */ React.createElement(
807
+ FieldMeta,
808
+ {
809
+ name: props.input.name,
810
+ label: false,
811
+ description: "",
812
+ error: props.meta.error,
813
+ index: props.index,
814
+ tinaForm: props.tinaForm
815
+ },
816
+ /* @__PURE__ */ React.createElement(Field2, { ...props })
817
+ );
818
+ };
819
+ }
804
820
  function wrapFieldWithError(Field2) {
805
821
  return (props) => {
806
822
  return /* @__PURE__ */ React.createElement(
@@ -877,9 +893,9 @@ const FieldDescription = ({
877
893
  "span",
878
894
  {
879
895
  className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0 ${className}`,
880
- ...props
881
- },
882
- children
896
+ ...props,
897
+ dangerouslySetInnerHTML: { __html: children }
898
+ }
883
899
  );
884
900
  };
885
901
  const FieldError = ({
@@ -5818,27 +5834,35 @@ const BlockSelector = ({
5818
5834
  ))))
5819
5835
  ))));
5820
5836
  };
5821
- const Group = wrapFieldWithError(({ tinaForm, field }) => {
5822
- const cms = useCMS$1();
5823
- React.useState(false);
5824
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
5825
- Header,
5826
- {
5827
- onClick: () => {
5828
- const state = tinaForm.finalForm.getState();
5829
- if (state.invalid === true) {
5830
- cms.alerts.error("Cannot navigate away from an invalid form.");
5831
- return;
5837
+ const Group = wrapFieldWithNoHeader(
5838
+ ({ tinaForm, field }) => {
5839
+ const cms = useCMS$1();
5840
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
5841
+ Header,
5842
+ {
5843
+ onClick: () => {
5844
+ const state = tinaForm.finalForm.getState();
5845
+ if (state.invalid === true) {
5846
+ cms.alerts.error("Cannot navigate away from an invalid form.");
5847
+ return;
5848
+ }
5849
+ cms.dispatch({
5850
+ type: "forms:set-active-field-name",
5851
+ value: { formId: tinaForm.id, fieldName: field.name }
5852
+ });
5832
5853
  }
5833
- cms.dispatch({
5834
- type: "forms:set-active-field-name",
5835
- value: { formId: tinaForm.id, fieldName: field.name }
5836
- });
5837
- }
5838
- },
5839
- field.label || field.name
5840
- ));
5841
- });
5854
+ },
5855
+ field.label || field.name,
5856
+ field.description && /* @__PURE__ */ React.createElement(
5857
+ "span",
5858
+ {
5859
+ className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0`,
5860
+ dangerouslySetInnerHTML: { __html: field.description }
5861
+ }
5862
+ )
5863
+ ));
5864
+ }
5865
+ );
5842
5866
  const Header = ({ onClick, children }) => {
5843
5867
  return /* @__PURE__ */ React.createElement("div", { className: "pt-1 mb-5" }, /* @__PURE__ */ React.createElement(
5844
5868
  "button",
@@ -10335,7 +10359,7 @@ const SyncStatus = ({ cms, setEventsOpen }) => {
10335
10359
  "Event Log"
10336
10360
  ));
10337
10361
  };
10338
- const version = "2.3.0";
10362
+ const version = "2.4.0";
10339
10363
  const Nav = ({
10340
10364
  isLocalMode,
10341
10365
  className = "",
@@ -14452,6 +14476,7 @@ function OverflowMenu({
14452
14476
  ToolbarButton,
14453
14477
  {
14454
14478
  showArrow: false,
14479
+ "data-testid": "rich-text-editor-overflow-menu-button",
14455
14480
  className: "lg:min-w-[130px]",
14456
14481
  isDropdown: true,
14457
14482
  pressed: openState.open,
@@ -14505,7 +14530,17 @@ const useRawMarkdownToolbarButton = () => {
14505
14530
  };
14506
14531
  const RawMarkdownToolbarButton = withRef(({ clear, ...rest }, ref) => {
14507
14532
  const { props } = useRawMarkdownToolbarButton();
14508
- return /* @__PURE__ */ React__default.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React__default.createElement(Icons.raw, null));
14533
+ return /* @__PURE__ */ React__default.createElement(
14534
+ ToolbarButton,
14535
+ {
14536
+ ref,
14537
+ tooltip: "Link",
14538
+ ...rest,
14539
+ ...props,
14540
+ "data-testid": "markdown-button"
14541
+ },
14542
+ /* @__PURE__ */ React__default.createElement(Icons.raw, null)
14543
+ );
14509
14544
  });
14510
14545
  function TableDropdownMenu(props) {
14511
14546
  const tableSelected = useEditorSelector(
@@ -30104,6 +30139,7 @@ class TinaAdminApi {
30104
30139
  relativePath
30105
30140
  filename
30106
30141
  extension
30142
+ hasReferences
30107
30143
  }
30108
30144
  }
30109
30145
  }
@@ -30195,6 +30231,9 @@ class TinaAdminApi {
30195
30231
  document(collection:$collection, relativePath:$relativePath) {
30196
30232
  ... on Document {
30197
30233
  _values
30234
+ _sys {
30235
+ hasReferences
30236
+ }
30198
30237
  }
30199
30238
  }
30200
30239
  }`;
@@ -31921,6 +31960,23 @@ const CollectionListPage = () => {
31921
31960
  DeleteModal,
31922
31961
  {
31923
31962
  filename: vars.relativePath,
31963
+ checkRefsFunc: async () => {
31964
+ var _a2, _b2;
31965
+ try {
31966
+ const doc = await admin.fetchDocument(
31967
+ collection.name,
31968
+ vars.relativePath,
31969
+ true
31970
+ );
31971
+ return (_b2 = (_a2 = doc == null ? void 0 : doc.document) == null ? void 0 : _a2._sys) == null ? void 0 : _b2.hasReferences;
31972
+ } catch (error) {
31973
+ cms.alerts.error(
31974
+ "Document was not found, ask a developer for help or check the console for an error message"
31975
+ );
31976
+ console.error(error);
31977
+ throw error;
31978
+ }
31979
+ },
31924
31980
  deleteFunc: async () => {
31925
31981
  try {
31926
31982
  await admin.deleteDocument(vars);
@@ -31929,6 +31985,12 @@ const CollectionListPage = () => {
31929
31985
  );
31930
31986
  reFetchCollection();
31931
31987
  } catch (error) {
31988
+ if (error.message.indexOf("has references")) {
31989
+ cms.alerts.error(
31990
+ error.message.split("\n ").filter(Boolean)[1]
31991
+ );
31992
+ return;
31993
+ }
31932
31994
  cms.alerts.warn(
31933
31995
  "Document was not deleted, ask a developer for help or check the console for an error message"
31934
31996
  );
@@ -31980,6 +32042,12 @@ const CollectionListPage = () => {
31980
32042
  cms.alerts.info("Document was successfully renamed");
31981
32043
  reFetchCollection();
31982
32044
  } catch (error) {
32045
+ if (error.message.indexOf("has references")) {
32046
+ cms.alerts.error(
32047
+ error.message.split("\n ").filter(Boolean)[1]
32048
+ );
32049
+ return;
32050
+ }
31983
32051
  cms.alerts.warn(
31984
32052
  "Document was not renamed, ask a developer for help or check the console for an error message"
31985
32053
  );
@@ -32453,8 +32521,19 @@ const Breadcrumb = ({ folder, navigate, collectionName }) => {
32453
32521
  const NoDocumentsPlaceholder = () => {
32454
32522
  return /* @__PURE__ */ React__default.createElement("div", { className: "text-center px-5 py-3 flex flex-col items-center justify-center shadow border border-gray-100 bg-gray-50 border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React__default.createElement("p", { className: "text-base italic font-medium text-gray-300" }, "No documents found."));
32455
32523
  };
32456
- const DeleteModal = ({ close: close2, deleteFunc, filename }) => {
32457
- return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(PopupModal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement("p", null, `Are you sure you want to delete ${filename}?`)), /* @__PURE__ */ React__default.createElement(ModalActions, null, /* @__PURE__ */ React__default.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React__default.createElement(
32524
+ const DeleteModal = ({
32525
+ close: close2,
32526
+ deleteFunc,
32527
+ checkRefsFunc,
32528
+ filename
32529
+ }) => {
32530
+ const [hasRefs, setHasRefs] = React__default.useState();
32531
+ useEffect(() => {
32532
+ checkRefsFunc().then((result) => {
32533
+ setHasRefs(result);
32534
+ });
32535
+ }, [filename, checkRefsFunc]);
32536
+ return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(PopupModal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement("p", null, `Are you sure you want to delete ${filename}?${hasRefs ? " References to this document will also be deleted." : ""}`)), /* @__PURE__ */ React__default.createElement(ModalActions, null, /* @__PURE__ */ React__default.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React__default.createElement(
32458
32537
  Button$1,
32459
32538
  {
32460
32539
  style: { flexGrow: 3 },
@@ -33816,5 +33895,6 @@ export {
33816
33895
  useScreenPlugin,
33817
33896
  useTinaAuthRedirect,
33818
33897
  wrapFieldWithError,
33898
+ wrapFieldWithNoHeader,
33819
33899
  wrapFieldsWithMeta
33820
33900
  };
@@ -3,6 +3,14 @@ import { FieldProps } from './field-props';
3
3
  import { Form } from '../../forms';
4
4
  export type InputFieldType<ExtraFieldProps, InputProps> = FieldProps<InputProps> & ExtraFieldProps;
5
5
  export declare function wrapFieldsWithMeta<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
6
+ /**
7
+ * Same as wrapFieldsWithMeta but excludes the label, and description useful for fields that render their label and description
8
+ */
9
+ export declare function wrapFieldWithNoHeader<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
10
+ /**
11
+ * Same as above but excludes the label, useful for fields that have their own label
12
+ * @deprecated This function is deprecated and will be removed in future versions.
13
+ */
6
14
  export declare function wrapFieldWithError<ExtraFieldProps = {}, InputProps = {}>(Field: React.FunctionComponent<InputFieldType<ExtraFieldProps, InputProps>> | React.ComponentClass<InputFieldType<ExtraFieldProps, InputProps>>): (props: InputFieldType<ExtraFieldProps, InputProps>) => React.JSX.Element;
7
15
  interface FieldMetaProps extends React.HTMLAttributes<HTMLElement> {
8
16
  name: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinacms",
3
- "version": "0.0.0-ef282d9-20241024212433",
3
+ "version": "0.0.0-f696c7d-20241104134240",
4
4
  "main": "dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "exports": {
@@ -129,9 +129,9 @@
129
129
  "webfontloader": "1.6.28",
130
130
  "yup": "^1.4.0",
131
131
  "zod": "^3.23.8",
132
- "@tinacms/mdx": "0.0.0-ef282d9-20241024212433",
133
- "@tinacms/search": "0.0.0-ef282d9-20241024212433",
134
- "@tinacms/schema-tools": "0.0.0-ef282d9-20241024212433"
132
+ "@tinacms/mdx": "0.0.0-f696c7d-20241104134240",
133
+ "@tinacms/schema-tools": "0.0.0-f696c7d-20241104134240",
134
+ "@tinacms/search": "0.0.0-f696c7d-20241104134240"
135
135
  },
136
136
  "devDependencies": {
137
137
  "@graphql-tools/utils": "^10.5.4",