tinacms 2.8.3 → 2.9.0

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/dist/client.js CHANGED
@@ -106,13 +106,13 @@
106
106
  additionalInfo = "Please check that your client ID, URL and read only token are configured properly.";
107
107
  }
108
108
  throw new Error(
109
- `Server responded with status code ${res.status}, ${res.statusText}. ${additionalInfo ? additionalInfo : ""} Please see our FAQ for more information: https://tina.io/docs/errors/faq/`
109
+ `Server responded with status code ${res.status}, ${res.statusText}. ${additionalInfo ? additionalInfo : ""} Please see our FAQ for more information: https://tina.io/docs/r/FAQ/`
110
110
  );
111
111
  }
112
112
  const json = await res.json();
113
113
  if (json.errors && errorPolicyDefined === "throw") {
114
114
  throw new Error(
115
- `Unable to fetch, please see our FAQ for more information: https://tina.io/docs/errors/faq/
115
+ `Unable to fetch, please see our FAQ for more information: https://tina.io/docs/r/FAQ/
116
116
  Errors:
117
117
  ${json.errors.map((error) => error.message).join("\n")}`
118
118
  );
package/dist/client.mjs CHANGED
@@ -103,13 +103,13 @@ async function requestFromServer(url, query, optionsObject, errorPolicyDefined)
103
103
  additionalInfo = "Please check that your client ID, URL and read only token are configured properly.";
104
104
  }
105
105
  throw new Error(
106
- `Server responded with status code ${res.status}, ${res.statusText}. ${additionalInfo ? additionalInfo : ""} Please see our FAQ for more information: https://tina.io/docs/errors/faq/`
106
+ `Server responded with status code ${res.status}, ${res.statusText}. ${additionalInfo ? additionalInfo : ""} Please see our FAQ for more information: https://tina.io/docs/r/FAQ/`
107
107
  );
108
108
  }
109
109
  const json = await res.json();
110
110
  if (json.errors && errorPolicyDefined === "throw") {
111
111
  throw new Error(
112
- `Unable to fetch, please see our FAQ for more information: https://tina.io/docs/errors/faq/
112
+ `Unable to fetch, please see our FAQ for more information: https://tina.io/docs/r/FAQ/
113
113
  Errors:
114
114
  ${json.errors.map((error) => error.message).join("\n")}`
115
115
  );
package/dist/index.js CHANGED
@@ -38855,6 +38855,18 @@ Please wrap them with useCallback or configure the deps array correctly.`
38855
38855
  }
38856
38856
  );
38857
38857
  };
38858
+ function MdCheckCircle(props) {
38859
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }, "child": [] }] })(props);
38860
+ }
38861
+ function MdInfo(props) {
38862
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }, "child": [] }] })(props);
38863
+ }
38864
+ function MdError(props) {
38865
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }, "child": [] }] })(props);
38866
+ }
38867
+ function MdWarning(props) {
38868
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }, "child": [] }] })(props);
38869
+ }
38858
38870
  function MdVpnKey(props) {
38859
38871
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12.65 10A5.99 5.99 0 0 0 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 0 0 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" }, "child": [] }] })(props);
38860
38872
  }
@@ -42585,13 +42597,13 @@ Please wrap them with useCallback or configure the deps array correctly.`
42585
42597
  {
42586
42598
  target: "_blank",
42587
42599
  className: "transition-all duration-150 ease-out text-blue-600 hover:text-blue-400 hover:underline no-underline",
42588
- href: "https://tina.io/docs/tina-cloud/"
42600
+ href: "https://tina.io/docs/r/what-is-tinacloud/"
42589
42601
  },
42590
42602
  "Learn more about moving to production with TinaCloud."
42591
42603
  )), /* @__PURE__ */ React__namespace.createElement("p", null, /* @__PURE__ */ React__namespace.createElement(
42592
42604
  Button$1,
42593
42605
  {
42594
- href: "https://tina.io/docs/tina-cloud/",
42606
+ href: "https://tina.io/docs/r/what-is-tinacloud/",
42595
42607
  target: "_blank",
42596
42608
  as: "a"
42597
42609
  },
@@ -42821,13 +42833,13 @@ Please wrap them with useCallback or configure the deps array correctly.`
42821
42833
  {
42822
42834
  target: "_blank",
42823
42835
  className: "transition-all duration-150 ease-out text-blue-600 hover:text-blue-400 hover:underline no-underline",
42824
- href: "https://tina.io/docs/tina-cloud/"
42836
+ href: "https://tina.io/docs/r/what-is-tinacloud/"
42825
42837
  },
42826
42838
  "Learn more about moving to production with TinaCloud."
42827
42839
  )), /* @__PURE__ */ React__namespace.createElement("p", null, /* @__PURE__ */ React__namespace.createElement(
42828
42840
  Button$1,
42829
42841
  {
42830
- href: "https://tina.io/docs/tina-cloud/",
42842
+ href: "https://tina.io/docs/r/what-is-tinacloud/",
42831
42843
  target: "_blank",
42832
42844
  as: "a"
42833
42845
  },
@@ -43744,18 +43756,14 @@ Please wrap them with useCallback or configure the deps array correctly.`
43744
43756
  }
43745
43757
  let res;
43746
43758
  if (!this.isLocal) {
43747
- if (await this.isAuthenticated()) {
43748
- res = await this.api.authProvider.fetchWithToken(
43749
- `${this.url}/list/${options.directory || ""}?limit=${options.limit || 20}${options.offset ? `&cursor=${options.offset}` : ""}`
43750
- );
43751
- if (res.status == 401) {
43752
- throw E_UNAUTHORIZED;
43753
- }
43754
- if (res.status == 404) {
43755
- throw E_BAD_ROUTE;
43756
- }
43757
- } else {
43758
- throw new Error("Not authenticated");
43759
+ res = await this.api.authProvider.fetchWithToken(
43760
+ `${this.url}/list/${options.directory || ""}?limit=${options.limit || 20}${options.offset ? `&cursor=${options.offset}` : ""}`
43761
+ );
43762
+ if (res.status == 401) {
43763
+ throw E_UNAUTHORIZED;
43764
+ }
43765
+ if (res.status == 404) {
43766
+ throw E_BAD_ROUTE;
43759
43767
  }
43760
43768
  } else {
43761
43769
  res = await this.fetchFunction(
@@ -43955,18 +43963,17 @@ Please wrap them with useCallback or configure the deps array correctly.`
43955
43963
  const E_UNAUTHORIZED = new MediaListError({
43956
43964
  title: "Unauthorized",
43957
43965
  message: "You don't have access to this resource.",
43958
- docsLink: "https://tina.io/docs/reference/media/overview"
43966
+ docsLink: "https://tina.io/docs/r/repo-based-media"
43959
43967
  });
43960
43968
  const E_BAD_ROUTE = new MediaListError({
43961
43969
  title: "Bad Route",
43962
43970
  message: "The Cloudinary API route is missing or misconfigured.",
43963
- docsLink: "https://tina.io/docs/reference/media/external/authentication/"
43971
+ docsLink: "https://tina.io/docs/r/backend-media-handler/"
43964
43972
  });
43965
43973
  new MediaListError({
43966
43974
  title: "An Error Occurred",
43967
43975
  message: "Something went wrong accessing your media from TinaCloud.",
43968
- docsLink: ""
43969
- // TODO
43976
+ docsLink: "https://tina.io/docs/r/repo-based-media"
43970
43977
  });
43971
43978
  class Flags {
43972
43979
  constructor(events2) {
@@ -44110,7 +44117,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
44110
44117
  "a",
44111
44118
  {
44112
44119
  className: "text-blue-500 underline",
44113
- href: "https://tina.io/docs/editing/markdown/#registering-the-field-plugins",
44120
+ href: "https://tina.io/docs/r/custom-fields-react",
44114
44121
  target: "_blank",
44115
44122
  rel: "noreferrer noopener"
44116
44123
  },
@@ -44314,7 +44321,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
44314
44321
  }
44315
44322
  const thumbnail = (item.thumbnails || {})["400x400"];
44316
44323
  const itemIsImage = isImage(thumbnail);
44317
- return /* @__PURE__ */ React.createElement("li", { className: "block overflow-hidden flex justify-center shrink-0 w-full transition duration-150 ease-out" }, /* @__PURE__ */ React.createElement(
44324
+ return /* @__PURE__ */ React.createElement("li", { className: "block flex justify-center shrink-0 w-full transition duration-150 ease-out" }, /* @__PURE__ */ React.createElement(
44318
44325
  "button",
44319
44326
  {
44320
44327
  className: cn(
@@ -44332,6 +44339,17 @@ Please wrap them with useCallback or configure the deps array correctly.`
44332
44339
  }
44333
44340
  }
44334
44341
  },
44342
+ /* @__PURE__ */ React.createElement(
44343
+ "span",
44344
+ {
44345
+ className: cn(
44346
+ "absolute bottom-0 left-0 w-full text-xs text-white px-2 py-1 truncate z-10",
44347
+ active ? "bg-blue-500/60" : "bg-black/60"
44348
+ ),
44349
+ style: { pointerEvents: "none" }
44350
+ },
44351
+ item.filename
44352
+ ),
44335
44353
  item.new && /* @__PURE__ */ React.createElement("span", { className: "absolute top-1 right-1 rounded shadow bg-green-100 border border-green-200 text-[10px] tracking-wide font-bold text-green-600 px-1.5 py-0.5 z-10" }, "NEW"),
44336
44354
  /* @__PURE__ */ React.createElement("div", { className: "relative w-full flex items-center justify-center" }, itemIsImage ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
44337
44355
  "img",
@@ -44344,16 +44362,6 @@ Please wrap them with useCallback or configure the deps array correctly.`
44344
44362
  src: thumbnail,
44345
44363
  alt: item.filename
44346
44364
  }
44347
- ), /* @__PURE__ */ React.createElement(
44348
- "span",
44349
- {
44350
- className: cn(
44351
- "absolute bottom-0 left-0 w-full text-xs text-white px-2 py-1 truncate z-10",
44352
- active ? "bg-blue-500/60" : "bg-black/60"
44353
- ),
44354
- style: { pointerEvents: "none" }
44355
- },
44356
- item.filename
44357
44365
  )) : /* @__PURE__ */ React.createElement("div", { className: "p-4 w-full flex flex-col gap-4 items-center justify-center" }, /* @__PURE__ */ React.createElement(FileIcon, { className: "w-[30%] h-auto fill-gray-300" }), /* @__PURE__ */ React.createElement("span", { className: "block text-base text-gray-600 w-full break-words truncate" }, item.filename)))
44358
44366
  ));
44359
44367
  }
@@ -44449,7 +44457,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
44449
44457
  const defaultListError = new MediaListError({
44450
44458
  title: "Error fetching media",
44451
44459
  message: "Something went wrong while requesting the resource.",
44452
- docsLink: "https://tina.io/docs/media/#media-store"
44460
+ docsLink: "https://tina.io/docs/r/repo-based-media"
44453
44461
  });
44454
44462
  function MediaPicker({
44455
44463
  allowDelete,
@@ -44669,7 +44677,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
44669
44677
  {
44670
44678
  title: "No Media Store Configured",
44671
44679
  message: "To use the media manager, you need to configure a Media Store.",
44672
- docsLink: "https://tina.io/docs/reference/media/overview/"
44680
+ docsLink: "https://tina.io/docs/r/repo-based-media"
44673
44681
  }
44674
44682
  );
44675
44683
  }
@@ -45157,19 +45165,35 @@ Please wrap them with useCallback or configure the deps array correctly.`
45157
45165
  function PiSidebarSimpleLight(props) {
45158
45166
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 256 256", "fill": "currentColor" }, "child": [{ "tag": "path", "attr": { "d": "M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM38,200V56a2,2,0,0,1,2-2H82V202H40A2,2,0,0,1,38,200Zm180,0a2,2,0,0,1-2,2H94V54H216a2,2,0,0,1,2,2Z" }, "child": [] }] })(props);
45159
45167
  }
45160
- const Alert$1 = ({
45168
+ const Callout = ({
45161
45169
  children,
45162
- alertStyle = "warning",
45170
+ calloutStyle = "warning",
45163
45171
  className = "",
45164
45172
  ...props
45165
45173
  }) => {
45174
+ const commonAlertStyles = "ml-8 text-sm px-4 py-3 rounded-md border";
45166
45175
  const styles = {
45167
- warning: "ml-8 text-sm px-4 py-2 text-amber-700 bg-amber-100 rounded border border-amber-700/20"
45176
+ warning: `text-amber-700 bg-amber-100 border-amber-700/20`,
45177
+ info: `text-blue-600 bg-blue-100/50 border-blue-600/20`,
45178
+ success: `text-green-600 bg-green-100/50 border-green-600/20`,
45179
+ error: `text-red-600 bg-red-100/50 border-red-600/20`
45168
45180
  };
45169
45181
  const icon = {
45170
- warning: /* @__PURE__ */ React__namespace.createElement(AiFillWarning, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-amber-600" })
45182
+ warning: /* @__PURE__ */ React__namespace.createElement(MdWarning, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-amber-600" }),
45183
+ info: /* @__PURE__ */ React__namespace.createElement(MdInfo, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-[#1D4ED8]" }),
45184
+ success: /* @__PURE__ */ React__namespace.createElement(MdCheckCircle, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-green-600" }),
45185
+ error: /* @__PURE__ */ React__namespace.createElement(MdError, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-red-600" })
45171
45186
  };
45172
- return /* @__PURE__ */ React__namespace.createElement("div", { className: cn$1(styles[alertStyle], className), ...props }, icon[alertStyle], " ", children);
45187
+ return /* @__PURE__ */ React__namespace.createElement(
45188
+ "div",
45189
+ {
45190
+ className: cn$1(commonAlertStyles, styles[calloutStyle], className),
45191
+ ...props
45192
+ },
45193
+ icon[calloutStyle],
45194
+ " ",
45195
+ children
45196
+ );
45173
45197
  };
45174
45198
  const LocalWarning = () => {
45175
45199
  var _a2, _b;
@@ -45178,7 +45202,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
45178
45202
  if (!isLocalMode) {
45179
45203
  return null;
45180
45204
  }
45181
- return /* @__PURE__ */ React__namespace.createElement(Alert$1, { alertStyle: "warning" }, /* @__PURE__ */ React__namespace.createElement("a", { href: "https://tina.io/docs/tina-cloud/", target: "_blank" }, "You are in local mode"));
45205
+ return /* @__PURE__ */ React__namespace.createElement(Callout, { calloutStyle: "warning", className: "w-fit" }, /* @__PURE__ */ React__namespace.createElement("a", { href: "https://tina.io/docs/r/what-is-tinacloud/", target: "_blank" }, "You are in local mode"));
45182
45206
  };
45183
45207
  const BillingWarning = () => {
45184
45208
  var _a2;
@@ -45919,7 +45943,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
45919
45943
  requiredArgs(1, arguments);
45920
45944
  return formatDistance(dirtyDate, Date.now(), options);
45921
45945
  }
45922
- const version$1 = "2.8.3";
45946
+ const version$1 = "2.9.0";
45923
45947
  const VersionInfo = () => {
45924
45948
  var _a2, _b, _c, _d, _e, _f;
45925
45949
  const cms = useCMS();
@@ -46144,11 +46168,11 @@ Please wrap them with useCallback or configure the deps array correctly.`
46144
46168
  },
46145
46169
  { Site: [] }
46146
46170
  );
46147
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
46171
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex items-baseline" }, /* @__PURE__ */ React__namespace.createElement(
46148
46172
  "button",
46149
46173
  {
46150
46174
  className: cn(
46151
- "fixed pointer-events-auto p-4 hover:bg-gray-100 transition-colors duration-150 ease-in-out rounded z-10",
46175
+ "pointer-events-auto p-4 hover:bg-gray-100 transition-colors duration-150 ease-in-out rounded z-10",
46152
46176
  menuIsOpen ? "hidden" : ""
46153
46177
  ),
46154
46178
  onClick: () => {
@@ -46156,7 +46180,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
46156
46180
  }
46157
46181
  },
46158
46182
  /* @__PURE__ */ React__namespace.createElement(BiMenu, { className: "h-6 w-auto text-gray-600" })
46159
- ), /* @__PURE__ */ React__namespace.createElement(
46183
+ )), /* @__PURE__ */ React__namespace.createElement(
46160
46184
  "div",
46161
46185
  {
46162
46186
  className: cn(
@@ -46182,7 +46206,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
46182
46206
  /* @__PURE__ */ React__namespace.createElement("div", { className: "flex flex-col px-6 flex-1 overflow-auto" }, showCollections && /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement("h4", { className: "flex space-x-1 justify-items-start uppercase font-sans font-bold text-sm mb-3 mt-8 text-gray-700" }, /* @__PURE__ */ React__namespace.createElement("span", null, "Collections"), isLocalMode && /* @__PURE__ */ React__namespace.createElement("span", { className: "flex items-center" }, /* @__PURE__ */ React__namespace.createElement(
46183
46207
  "a",
46184
46208
  {
46185
- href: "https://tina.io/docs/schema/#defining-collections",
46209
+ href: "https://tina.io/docs/r/content-modelling-collections",
46186
46210
  target: "_blank"
46187
46211
  },
46188
46212
  /* @__PURE__ */ React__namespace.createElement(FiInfo, null)
@@ -46626,12 +46650,12 @@ Please wrap them with useCallback or configure the deps array correctly.`
46626
46650
  /* @__PURE__ */ React__namespace.createElement("p", { className: "block pt-5" }, /* @__PURE__ */ React__namespace.createElement(
46627
46651
  Button$1,
46628
46652
  {
46629
- href: "https://tina.io/docs/contextual-editing/overview",
46653
+ href: "https://tina.io/docs/r/visual-editing-setup",
46630
46654
  target: "_blank",
46631
46655
  as: "a"
46632
46656
  },
46633
46657
  /* @__PURE__ */ React__namespace.createElement(Emoji$1, { className: "mr-1.5" }, "📖"),
46634
- " Contextual Editing Docs"
46658
+ " Visual Editing Docs"
46635
46659
  ))
46636
46660
  );
46637
46661
  const Emoji$1 = ({ className = "", ...props }) => /* @__PURE__ */ React__namespace.createElement(
@@ -47280,7 +47304,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47280
47304
  name: "Support",
47281
47305
  link: {
47282
47306
  text: "Support",
47283
- href: "https://tina.io/docs/support"
47307
+ href: "https://tina.io/docs/r/support"
47284
47308
  },
47285
47309
  Icon: MdOutlineHelpOutline
47286
47310
  })
@@ -47617,7 +47641,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47617
47641
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "fixed bottom-0 left-0 right-0 p-6 flex flex-col items-center z-[999999]" }, alerts.all.filter((alert) => {
47618
47642
  return alert.level !== "error";
47619
47643
  }).map((alert) => {
47620
- return /* @__PURE__ */ React.createElement(Alert, { key: alert.id, level: alert.level }, alert.level === "info" && /* @__PURE__ */ React.createElement(BiInfoCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "success" && /* @__PURE__ */ React.createElement(BiCheckCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "warn" && /* @__PURE__ */ React.createElement(BiError, { className: "w-5 h-auto opacity-70" }), /* @__PURE__ */ React.createElement("p", { className: "m-0 flex-1 max-w-[680px] text-left" }, parseUrlsInText(alert.message.toString())), /* @__PURE__ */ React.createElement(
47644
+ return /* @__PURE__ */ React.createElement(Alert, { key: alert.id, level: alert.level }, alert.level === "info" && /* @__PURE__ */ React.createElement(MdInfo, { className: "w-5 h-auto opacity-70" }), alert.level === "success" && /* @__PURE__ */ React.createElement(MdCheckCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "warn" && /* @__PURE__ */ React.createElement(MdWarning, { className: "w-5 h-auto opacity-70" }), /* @__PURE__ */ React.createElement("p", { className: "m-0 flex-1 max-w-[680px] text-left" }, parseUrlsInText(alert.message.toString())), /* @__PURE__ */ React.createElement(
47621
47645
  CloseAlert,
47622
47646
  {
47623
47647
  onClick: () => {
@@ -47638,7 +47662,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47638
47662
  alerts.dismiss(alert);
47639
47663
  }
47640
47664
  },
47641
- /* @__PURE__ */ React.createElement(BiError, { className: "mr-1 w-6 h-auto fill-current inline-block text-red-600" }),
47665
+ /* @__PURE__ */ React.createElement(MdError, { className: "mr-1 w-6 h-auto fill-current inline-block text-red-600" }),
47642
47666
  " ",
47643
47667
  "Error"
47644
47668
  ), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("div", { className: "tina-prose" }, /* @__PURE__ */ React.createElement(AlertMessage, null))), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement("div", { className: "flex-1" }), /* @__PURE__ */ React.createElement(
@@ -47672,7 +47696,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47672
47696
  return /* @__PURE__ */ React.createElement(
47673
47697
  "div",
47674
47698
  {
47675
- className: `rounded shadow-lg border-l-[6px] font-normal cursor-pointer pointer-events-all text-sm transition-all duration-100 ease-out mb-4 max-w-full ${colorClasses[level]}}`,
47699
+ className: `rounded shadow-lg font-normal cursor-pointer pointer-events-all text-sm transition-all duration-100 ease-out mb-4 max-w-full ${colorClasses[level]}}`,
47676
47700
  style: {
47677
47701
  animationName: "fly-in-up, fade-in",
47678
47702
  animationTimingFunction: "ease-out",
@@ -47684,7 +47708,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47684
47708
  /* @__PURE__ */ React.createElement(
47685
47709
  "div",
47686
47710
  {
47687
- className: `flex items-center gap-1.5 min-w-[350px] rounded-r border p-2 ${borderClasses[level]}`,
47711
+ className: `flex items-center gap-1.5 min-w-[350px] rounded-md border p-2 ${borderClasses[level]}`,
47688
47712
  ...props
47689
47713
  }
47690
47714
  )
@@ -47696,7 +47720,7 @@ Please wrap them with useCallback or configure the deps array correctly.`
47696
47720
  className: "border-none bg-transparent p-0 outline-none flex items-center",
47697
47721
  ...styleProps
47698
47722
  },
47699
- /* @__PURE__ */ React.createElement(BiX, { className: "w-5 auto flex-grow-0 flex-shrink-0 opacity-50" })
47723
+ /* @__PURE__ */ React.createElement(BiX, { className: "w-5 auto flex-grow-0 flex-shrink-0" })
47700
47724
  );
47701
47725
  function CursorPaginator({
47702
47726
  navigateNext,
@@ -119894,7 +119918,7 @@ mutation addPendingDocumentMutation(
119894
119918
  {
119895
119919
  className: "text-gray-600",
119896
119920
  style: { textDecoration: "underline" },
119897
- href: "https://tina.io/docs/errors/faq/",
119921
+ href: "https://tina.io/docs/r/FAQ/",
119898
119922
  target: "_blank"
119899
119923
  },
119900
119924
  " ",
@@ -119952,7 +119976,7 @@ mutation addPendingDocumentMutation(
119952
119976
  !schema.config.contentApiUrlOverride
119953
119977
  ) {
119954
119978
  throw new Error(
119955
- "Invalid setup. See https://tina.io/docs/tina-cloud/overview for more information."
119979
+ "Invalid setup. See https://tina.io/docs/r/what-is-tinacloud for more information."
119956
119980
  );
119957
119981
  }
119958
119982
  if (!schema) {
@@ -120286,7 +120310,7 @@ This will work when developing locally but NOT when deployed to production.
120286
120310
  {
120287
120311
  className: "text-gray-600",
120288
120312
  style: { textDecoration: "underline" },
120289
- href: "https://tina.io/docs/errors/faq/",
120313
+ href: "https://tina.io/docs/r/FAQ/",
120290
120314
  target: "_blank"
120291
120315
  },
120292
120316
  " ",
@@ -120412,7 +120436,7 @@ This will work when developing locally but NOT when deployed to production.
120412
120436
  headerClassName,
120413
120437
  children
120414
120438
  }) => {
120415
- return /* @__PURE__ */ React.createElement("div", { className: "relative left-0 w-full h-full bg-gradient-to-b from-gray-50/50 to-gray-50 shadow-2xl overflow-y-auto transition-opacity duration-300 ease-out flex flex-col opacity-100" }, /* @__PURE__ */ React.createElement("div", { className: `py-2 px-4 ${headerClassName}` }, /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement(BillingWarning, null), /* @__PURE__ */ React.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React.createElement(BranchButton, null), /* @__PURE__ */ React.createElement(BranchPreviewButton, null))), children);
120439
+ return /* @__PURE__ */ React.createElement("div", { className: "relative left-0 w-full h-full bg-gradient-to-b from-gray-50/50 to-gray-50 overflow-y-auto transition-opacity duration-300 ease-out flex flex-col opacity-100" }, /* @__PURE__ */ React.createElement("div", { className: `py-2 pl-4 pr-4 w-full ${headerClassName}` }, /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement(BillingWarning, null), /* @__PURE__ */ React.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React.createElement(BranchButton, null), /* @__PURE__ */ React.createElement(BranchPreviewButton, null))), children);
120416
120440
  };
120417
120441
  const PageHeader = ({
120418
120442
  children
@@ -120803,7 +120827,7 @@ This will work when developing locally but NOT when deployed to production.
120803
120827
  },
120804
120828
  close: () => setFolderModalOpen(false)
120805
120829
  }
120806
- ), /* @__PURE__ */ React.createElement(PageHeader, null, /* @__PURE__ */ React.createElement("div", { className: "w-full" }, /* @__PURE__ */ React.createElement("h3", { className: "font-sans text-2xl text-gray-700" }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col lg:flex-row justify-between lg:items-end pt-2" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col md:flex-row gap-2 md:gap-4 items-start" }, (fields == null ? void 0 : fields.length) > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, !search && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React.createElement(
120830
+ ), /* @__PURE__ */ React.createElement(PageHeader, null, /* @__PURE__ */ React.createElement("div", { className: "w-full" }, /* @__PURE__ */ React.createElement("h3", { className: "font-sans text-2xl text-tina-orange" }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React.createElement("div", { className: "flex flex-col lg:flex-row justify-between lg:items-end pt-2" }, /* @__PURE__ */ React.createElement("div", { className: "flex flex-col md:flex-row gap-2 md:gap-4 items-baseline" }, (fields == null ? void 0 : fields.length) > 0 && /* @__PURE__ */ React.createElement(React.Fragment, null, !search && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React.createElement(
120807
120831
  "label",
120808
120832
  {
120809
120833
  htmlFor: "sort",
@@ -120858,7 +120882,7 @@ This will work when developing locally but NOT when deployed to production.
120858
120882
  }
120859
120883
  }
120860
120884
  }
120861
- ))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 flex-col gap-2 items-start w-full" }, searchEnabled ? /* @__PURE__ */ React.createElement(
120885
+ ))), /* @__PURE__ */ React.createElement("div", { className: "flex flex-1 flex-row gap-2 items-end w-full" }, searchEnabled ? /* @__PURE__ */ React.createElement(
120862
120886
  SearchInput,
120863
120887
  {
120864
120888
  loading: _loading,
@@ -120867,16 +120891,15 @@ This will work when developing locally but NOT when deployed to production.
120867
120891
  searchInput,
120868
120892
  setSearchInput
120869
120893
  }
120870
- ) : /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React.createElement("div", { className: "h-4" }), /* @__PURE__ */ React.createElement(
120871
- Message,
120894
+ ) : /* @__PURE__ */ React.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React.createElement("div", { className: "block font-sans text-xs font-semibold opacity-0" }, " "), /* @__PURE__ */ React.createElement(Callout, { calloutStyle: "info" }, " ", "You have not configured search.", " ", /* @__PURE__ */ React.createElement(
120895
+ "a",
120872
120896
  {
120873
- link: "https://tina.io/docs/reference/search/overview",
120874
- linkLabel: "Read The Docs",
120875
- type: "info",
120876
- size: "small"
120897
+ href: "https://tina.io/docs/r/content-search",
120898
+ target: "_blank",
120899
+ className: "underline hover:text-blue-700 transition-all duration-150"
120877
120900
  },
120878
- "Search not configured."
120879
- )))), allowCreate && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-2 md:gap-0 pt-4 lg:pt-0" }, allowCreateNestedFolder && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement(
120901
+ "Read the docs"
120902
+ ))))), allowCreate && /* @__PURE__ */ React.createElement("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-2 md:gap-0 pt-4 lg:pt-0" }, allowCreateNestedFolder && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(Tooltip, null, /* @__PURE__ */ React.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement(
120880
120903
  reactRouterDom.Link,
120881
120904
  {
120882
120905
  onMouseDown: (evt) => {
@@ -120908,15 +120931,15 @@ This will work when developing locally but NOT when deployed to production.
120908
120931
  side: "top",
120909
120932
  align: "center"
120910
120933
  },
120911
- /* @__PURE__ */ React.createElement("p", null, "Folders cant be manually added when using templates.", /* @__PURE__ */ React.createElement("br", null), "See the docs -", " ", /* @__PURE__ */ React.createElement(
120934
+ /* @__PURE__ */ React.createElement("p", null, "Folders can't be manually added when using templates.", /* @__PURE__ */ React.createElement("br", null), "See the docs -", " ", /* @__PURE__ */ React.createElement(
120912
120935
  "a",
120913
120936
  {
120914
- href: "https://tina.io/docs/reference/templates",
120937
+ href: "https://tina.io/docs/r/content-modelling-templates",
120915
120938
  target: "_blank",
120916
120939
  rel: "noopener noreferrer",
120917
120940
  className: "underline text-blue-500"
120918
120941
  },
120919
- "https://tina.io/docs/reference/templates"
120942
+ "https://tina.io/docs/r/content-modelling-templates"
120920
120943
  ))
120921
120944
  )))), !collection.templates && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
120922
120945
  reactRouterDom.Link,
@@ -120943,7 +120966,7 @@ This will work when developing locally but NOT when deployed to production.
120943
120966
  templates: collection.templates,
120944
120967
  folder
120945
120968
  }
120946
- ))))), /* @__PURE__ */ React.createElement(PageBody, null, /* @__PURE__ */ React.createElement("div", { className: "w-full mx-auto max-w-screen-xl" }, sortField && !sortField.required && /* @__PURE__ */ React.createElement("p", { className: "mb-4 text-gray-500" }, /* @__PURE__ */ React.createElement("em", null, "Sorting on a non-required field. Some documents may be excluded (if they don't have a value for", " ", sortName, ")")), /* @__PURE__ */ React.createElement("div", { className: "w-full overflow-x-auto" }, (folder.name && !search || documents.length > 0) && /* @__PURE__ */ React.createElement("table", { className: "table-auto shadow bg-white border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React.createElement("tbody", { className: "divide-y divide-gray-150" }, folder.name && !search ? /* @__PURE__ */ React.createElement("tr", null, /* @__PURE__ */ React.createElement("td", { colSpan: 5 }, /* @__PURE__ */ React.createElement(
120969
+ ))))), /* @__PURE__ */ React.createElement(PageBody, null, /* @__PURE__ */ React.createElement("div", { className: "w-full mx-auto max-w-screen-xl" }, sortField && !sortField.required && /* @__PURE__ */ React.createElement("p", { className: "mb-4 text-gray-500" }, /* @__PURE__ */ React.createElement("em", null, "Sorting on a non-required field. Some documents may be excluded (if they don't have a value for", " ", sortName, ")")), /* @__PURE__ */ React.createElement("div", { className: "w-full overflow-x-auto shadow-md rounded-md" }, (folder.name && !search || documents.length > 0) && /* @__PURE__ */ React.createElement("table", { className: "table-auto shadow bg-white border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React.createElement("tbody", null, folder.name && !search ? /* @__PURE__ */ React.createElement("tr", null, /* @__PURE__ */ React.createElement("td", { colSpan: 5 }, /* @__PURE__ */ React.createElement(
120947
120970
  Breadcrumb,
120948
120971
  {
120949
120972
  folder,
@@ -120988,6 +121011,7 @@ This will work when developing locally but NOT when deployed to production.
120988
121011
  return /* @__PURE__ */ React.createElement(
120989
121012
  "tr",
120990
121013
  {
121014
+ className: "hover:bg-gray-100 transition-colors duration-300",
120991
121015
  key: `document-${document2.node._sys.relativePath}`
120992
121016
  },
120993
121017
  /* @__PURE__ */ React.createElement(
@@ -122067,7 +122091,7 @@ This will work when developing locally but NOT when deployed to production.
122067
122091
  const selectedScreen = screens.find(
122068
122092
  ({ name }) => slugify(name) === screenName
122069
122093
  );
122070
- return /* @__PURE__ */ React.createElement("div", { className: "relative w-full h-full flex flex-col items-stretch justify-between" }, /* @__PURE__ */ React.createElement("div", { className: "pt-2 px-6 bg-white" }, /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement(BillingWarning, null)), /* @__PURE__ */ React.createElement(
122094
+ return /* @__PURE__ */ React.createElement("div", { className: "relative w-full h-full flex flex-col items-stretch justify-between" }, /* @__PURE__ */ React.createElement("div", { className: "py-2 px-6 w-fit " }, /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement(BillingWarning, null)), /* @__PURE__ */ React.createElement(
122071
122095
  "div",
122072
122096
  {
122073
122097
  className: `xl:hidden pl-6 py-5 border-b border-gray-200 bg-white`
package/dist/index.mjs CHANGED
@@ -38882,6 +38882,18 @@ const ToggleInput = ({ disabled, ...props }) => {
38882
38882
  }
38883
38883
  );
38884
38884
  };
38885
+ function MdCheckCircle(props) {
38886
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }, "child": [] }] })(props);
38887
+ }
38888
+ function MdInfo(props) {
38889
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z" }, "child": [] }] })(props);
38890
+ }
38891
+ function MdError(props) {
38892
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z" }, "child": [] }] })(props);
38893
+ }
38894
+ function MdWarning(props) {
38895
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }, "child": [] }] })(props);
38896
+ }
38885
38897
  function MdVpnKey(props) {
38886
38898
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0z" }, "child": [] }, { "tag": "path", "attr": { "d": "M12.65 10A5.99 5.99 0 0 0 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 0 0 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z" }, "child": [] }] })(props);
38887
38899
  }
@@ -42612,13 +42624,13 @@ const BranchSwitcherLegacy = ({
42612
42624
  {
42613
42625
  target: "_blank",
42614
42626
  className: "transition-all duration-150 ease-out text-blue-600 hover:text-blue-400 hover:underline no-underline",
42615
- href: "https://tina.io/docs/tina-cloud/"
42627
+ href: "https://tina.io/docs/r/what-is-tinacloud/"
42616
42628
  },
42617
42629
  "Learn more about moving to production with TinaCloud."
42618
42630
  )), /* @__PURE__ */ React.createElement("p", null, /* @__PURE__ */ React.createElement(
42619
42631
  Button$1,
42620
42632
  {
42621
- href: "https://tina.io/docs/tina-cloud/",
42633
+ href: "https://tina.io/docs/r/what-is-tinacloud/",
42622
42634
  target: "_blank",
42623
42635
  as: "a"
42624
42636
  },
@@ -42848,13 +42860,13 @@ const EditoralBranchSwitcher = ({
42848
42860
  {
42849
42861
  target: "_blank",
42850
42862
  className: "transition-all duration-150 ease-out text-blue-600 hover:text-blue-400 hover:underline no-underline",
42851
- href: "https://tina.io/docs/tina-cloud/"
42863
+ href: "https://tina.io/docs/r/what-is-tinacloud/"
42852
42864
  },
42853
42865
  "Learn more about moving to production with TinaCloud."
42854
42866
  )), /* @__PURE__ */ React.createElement("p", null, /* @__PURE__ */ React.createElement(
42855
42867
  Button$1,
42856
42868
  {
42857
- href: "https://tina.io/docs/tina-cloud/",
42869
+ href: "https://tina.io/docs/r/what-is-tinacloud/",
42858
42870
  target: "_blank",
42859
42871
  as: "a"
42860
42872
  },
@@ -43771,18 +43783,14 @@ class TinaMediaStore {
43771
43783
  }
43772
43784
  let res;
43773
43785
  if (!this.isLocal) {
43774
- if (await this.isAuthenticated()) {
43775
- res = await this.api.authProvider.fetchWithToken(
43776
- `${this.url}/list/${options.directory || ""}?limit=${options.limit || 20}${options.offset ? `&cursor=${options.offset}` : ""}`
43777
- );
43778
- if (res.status == 401) {
43779
- throw E_UNAUTHORIZED;
43780
- }
43781
- if (res.status == 404) {
43782
- throw E_BAD_ROUTE;
43783
- }
43784
- } else {
43785
- throw new Error("Not authenticated");
43786
+ res = await this.api.authProvider.fetchWithToken(
43787
+ `${this.url}/list/${options.directory || ""}?limit=${options.limit || 20}${options.offset ? `&cursor=${options.offset}` : ""}`
43788
+ );
43789
+ if (res.status == 401) {
43790
+ throw E_UNAUTHORIZED;
43791
+ }
43792
+ if (res.status == 404) {
43793
+ throw E_BAD_ROUTE;
43786
43794
  }
43787
43795
  } else {
43788
43796
  res = await this.fetchFunction(
@@ -43982,18 +43990,17 @@ class MediaListError extends Error {
43982
43990
  const E_UNAUTHORIZED = new MediaListError({
43983
43991
  title: "Unauthorized",
43984
43992
  message: "You don't have access to this resource.",
43985
- docsLink: "https://tina.io/docs/reference/media/overview"
43993
+ docsLink: "https://tina.io/docs/r/repo-based-media"
43986
43994
  });
43987
43995
  const E_BAD_ROUTE = new MediaListError({
43988
43996
  title: "Bad Route",
43989
43997
  message: "The Cloudinary API route is missing or misconfigured.",
43990
- docsLink: "https://tina.io/docs/reference/media/external/authentication/"
43998
+ docsLink: "https://tina.io/docs/r/backend-media-handler/"
43991
43999
  });
43992
44000
  new MediaListError({
43993
44001
  title: "An Error Occurred",
43994
44002
  message: "Something went wrong accessing your media from TinaCloud.",
43995
- docsLink: ""
43996
- // TODO
44003
+ docsLink: "https://tina.io/docs/r/repo-based-media"
43997
44004
  });
43998
44005
  class Flags {
43999
44006
  constructor(events2) {
@@ -44137,7 +44144,7 @@ function createPlaceholder(name, _pr) {
44137
44144
  "a",
44138
44145
  {
44139
44146
  className: "text-blue-500 underline",
44140
- href: "https://tina.io/docs/editing/markdown/#registering-the-field-plugins",
44147
+ href: "https://tina.io/docs/r/custom-fields-react",
44141
44148
  target: "_blank",
44142
44149
  rel: "noreferrer noopener"
44143
44150
  },
@@ -44341,7 +44348,7 @@ function GridMediaItem({ item, active, onClick }) {
44341
44348
  }
44342
44349
  const thumbnail = (item.thumbnails || {})["400x400"];
44343
44350
  const itemIsImage = isImage(thumbnail);
44344
- return /* @__PURE__ */ React__default.createElement("li", { className: "block overflow-hidden flex justify-center shrink-0 w-full transition duration-150 ease-out" }, /* @__PURE__ */ React__default.createElement(
44351
+ return /* @__PURE__ */ React__default.createElement("li", { className: "block flex justify-center shrink-0 w-full transition duration-150 ease-out" }, /* @__PURE__ */ React__default.createElement(
44345
44352
  "button",
44346
44353
  {
44347
44354
  className: cn(
@@ -44359,6 +44366,17 @@ function GridMediaItem({ item, active, onClick }) {
44359
44366
  }
44360
44367
  }
44361
44368
  },
44369
+ /* @__PURE__ */ React__default.createElement(
44370
+ "span",
44371
+ {
44372
+ className: cn(
44373
+ "absolute bottom-0 left-0 w-full text-xs text-white px-2 py-1 truncate z-10",
44374
+ active ? "bg-blue-500/60" : "bg-black/60"
44375
+ ),
44376
+ style: { pointerEvents: "none" }
44377
+ },
44378
+ item.filename
44379
+ ),
44362
44380
  item.new && /* @__PURE__ */ React__default.createElement("span", { className: "absolute top-1 right-1 rounded shadow bg-green-100 border border-green-200 text-[10px] tracking-wide font-bold text-green-600 px-1.5 py-0.5 z-10" }, "NEW"),
44363
44381
  /* @__PURE__ */ React__default.createElement("div", { className: "relative w-full flex items-center justify-center" }, itemIsImage ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
44364
44382
  "img",
@@ -44371,16 +44389,6 @@ function GridMediaItem({ item, active, onClick }) {
44371
44389
  src: thumbnail,
44372
44390
  alt: item.filename
44373
44391
  }
44374
- ), /* @__PURE__ */ React__default.createElement(
44375
- "span",
44376
- {
44377
- className: cn(
44378
- "absolute bottom-0 left-0 w-full text-xs text-white px-2 py-1 truncate z-10",
44379
- active ? "bg-blue-500/60" : "bg-black/60"
44380
- ),
44381
- style: { pointerEvents: "none" }
44382
- },
44383
- item.filename
44384
44392
  )) : /* @__PURE__ */ React__default.createElement("div", { className: "p-4 w-full flex flex-col gap-4 items-center justify-center" }, /* @__PURE__ */ React__default.createElement(FileIcon, { className: "w-[30%] h-auto fill-gray-300" }), /* @__PURE__ */ React__default.createElement("span", { className: "block text-base text-gray-600 w-full break-words truncate" }, item.filename)))
44385
44393
  ));
44386
44394
  }
@@ -44476,7 +44484,7 @@ function MediaManager2() {
44476
44484
  const defaultListError = new MediaListError({
44477
44485
  title: "Error fetching media",
44478
44486
  message: "Something went wrong while requesting the resource.",
44479
- docsLink: "https://tina.io/docs/media/#media-store"
44487
+ docsLink: "https://tina.io/docs/r/repo-based-media"
44480
44488
  });
44481
44489
  function MediaPicker({
44482
44490
  allowDelete,
@@ -44696,7 +44704,7 @@ function MediaPicker({
44696
44704
  {
44697
44705
  title: "No Media Store Configured",
44698
44706
  message: "To use the media manager, you need to configure a Media Store.",
44699
- docsLink: "https://tina.io/docs/reference/media/overview/"
44707
+ docsLink: "https://tina.io/docs/r/repo-based-media"
44700
44708
  }
44701
44709
  );
44702
44710
  }
@@ -45184,19 +45192,35 @@ function ImUsers(props) {
45184
45192
  function PiSidebarSimpleLight(props) {
45185
45193
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 256 256", "fill": "currentColor" }, "child": [{ "tag": "path", "attr": { "d": "M216,42H40A14,14,0,0,0,26,56V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V56A14,14,0,0,0,216,42ZM38,200V56a2,2,0,0,1,2-2H82V202H40A2,2,0,0,1,38,200Zm180,0a2,2,0,0,1-2,2H94V54H216a2,2,0,0,1,2,2Z" }, "child": [] }] })(props);
45186
45194
  }
45187
- const Alert$1 = ({
45195
+ const Callout = ({
45188
45196
  children,
45189
- alertStyle = "warning",
45197
+ calloutStyle = "warning",
45190
45198
  className = "",
45191
45199
  ...props
45192
45200
  }) => {
45201
+ const commonAlertStyles = "ml-8 text-sm px-4 py-3 rounded-md border";
45193
45202
  const styles = {
45194
- warning: "ml-8 text-sm px-4 py-2 text-amber-700 bg-amber-100 rounded border border-amber-700/20"
45203
+ warning: `text-amber-700 bg-amber-100 border-amber-700/20`,
45204
+ info: `text-blue-600 bg-blue-100/50 border-blue-600/20`,
45205
+ success: `text-green-600 bg-green-100/50 border-green-600/20`,
45206
+ error: `text-red-600 bg-red-100/50 border-red-600/20`
45195
45207
  };
45196
45208
  const icon = {
45197
- warning: /* @__PURE__ */ React.createElement(AiFillWarning, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-amber-600" })
45209
+ warning: /* @__PURE__ */ React.createElement(MdWarning, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-amber-600" }),
45210
+ info: /* @__PURE__ */ React.createElement(MdInfo, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-[#1D4ED8]" }),
45211
+ success: /* @__PURE__ */ React.createElement(MdCheckCircle, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-green-600" }),
45212
+ error: /* @__PURE__ */ React.createElement(MdError, { className: "w-5 h-auto inline-block mr-1 opacity-70 text-red-600" })
45198
45213
  };
45199
- return /* @__PURE__ */ React.createElement("div", { className: cn$1(styles[alertStyle], className), ...props }, icon[alertStyle], " ", children);
45214
+ return /* @__PURE__ */ React.createElement(
45215
+ "div",
45216
+ {
45217
+ className: cn$1(commonAlertStyles, styles[calloutStyle], className),
45218
+ ...props
45219
+ },
45220
+ icon[calloutStyle],
45221
+ " ",
45222
+ children
45223
+ );
45200
45224
  };
45201
45225
  const LocalWarning = () => {
45202
45226
  var _a2, _b;
@@ -45205,7 +45229,7 @@ const LocalWarning = () => {
45205
45229
  if (!isLocalMode) {
45206
45230
  return null;
45207
45231
  }
45208
- return /* @__PURE__ */ React.createElement(Alert$1, { alertStyle: "warning" }, /* @__PURE__ */ React.createElement("a", { href: "https://tina.io/docs/tina-cloud/", target: "_blank" }, "You are in local mode"));
45232
+ return /* @__PURE__ */ React.createElement(Callout, { calloutStyle: "warning", className: "w-fit" }, /* @__PURE__ */ React.createElement("a", { href: "https://tina.io/docs/r/what-is-tinacloud/", target: "_blank" }, "You are in local mode"));
45209
45233
  };
45210
45234
  const BillingWarning = () => {
45211
45235
  var _a2;
@@ -45946,7 +45970,7 @@ function formatDistanceToNow(dirtyDate, options) {
45946
45970
  requiredArgs(1, arguments);
45947
45971
  return formatDistance2(dirtyDate, Date.now(), options);
45948
45972
  }
45949
- const version$1 = "2.8.3";
45973
+ const version$1 = "2.9.0";
45950
45974
  const VersionInfo = () => {
45951
45975
  var _a2, _b, _c, _d, _e, _f;
45952
45976
  const cms = useCMS();
@@ -46171,11 +46195,11 @@ const Nav = ({
46171
46195
  },
46172
46196
  { Site: [] }
46173
46197
  );
46174
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
46198
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", { className: "flex items-baseline" }, /* @__PURE__ */ React.createElement(
46175
46199
  "button",
46176
46200
  {
46177
46201
  className: cn(
46178
- "fixed pointer-events-auto p-4 hover:bg-gray-100 transition-colors duration-150 ease-in-out rounded z-10",
46202
+ "pointer-events-auto p-4 hover:bg-gray-100 transition-colors duration-150 ease-in-out rounded z-10",
46179
46203
  menuIsOpen ? "hidden" : ""
46180
46204
  ),
46181
46205
  onClick: () => {
@@ -46183,7 +46207,7 @@ const Nav = ({
46183
46207
  }
46184
46208
  },
46185
46209
  /* @__PURE__ */ React.createElement(BiMenu, { className: "h-6 w-auto text-gray-600" })
46186
- ), /* @__PURE__ */ React.createElement(
46210
+ )), /* @__PURE__ */ React.createElement(
46187
46211
  "div",
46188
46212
  {
46189
46213
  className: cn(
@@ -46209,7 +46233,7 @@ const Nav = ({
46209
46233
  /* @__PURE__ */ React.createElement("div", { className: "flex flex-col px-6 flex-1 overflow-auto" }, showCollections && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h4", { className: "flex space-x-1 justify-items-start uppercase font-sans font-bold text-sm mb-3 mt-8 text-gray-700" }, /* @__PURE__ */ React.createElement("span", null, "Collections"), isLocalMode && /* @__PURE__ */ React.createElement("span", { className: "flex items-center" }, /* @__PURE__ */ React.createElement(
46210
46234
  "a",
46211
46235
  {
46212
- href: "https://tina.io/docs/schema/#defining-collections",
46236
+ href: "https://tina.io/docs/r/content-modelling-collections",
46213
46237
  target: "_blank"
46214
46238
  },
46215
46239
  /* @__PURE__ */ React.createElement(FiInfo, null)
@@ -46653,12 +46677,12 @@ const SidebarNoFormsPlaceholder = () => /* @__PURE__ */ React.createElement(
46653
46677
  /* @__PURE__ */ React.createElement("p", { className: "block pt-5" }, /* @__PURE__ */ React.createElement(
46654
46678
  Button$1,
46655
46679
  {
46656
- href: "https://tina.io/docs/contextual-editing/overview",
46680
+ href: "https://tina.io/docs/r/visual-editing-setup",
46657
46681
  target: "_blank",
46658
46682
  as: "a"
46659
46683
  },
46660
46684
  /* @__PURE__ */ React.createElement(Emoji$1, { className: "mr-1.5" }, "📖"),
46661
- " Contextual Editing Docs"
46685
+ " Visual Editing Docs"
46662
46686
  ))
46663
46687
  );
46664
46688
  const Emoji$1 = ({ className = "", ...props }) => /* @__PURE__ */ React.createElement(
@@ -47307,7 +47331,7 @@ class TinaCMS extends CMS {
47307
47331
  name: "Support",
47308
47332
  link: {
47309
47333
  text: "Support",
47310
- href: "https://tina.io/docs/support"
47334
+ href: "https://tina.io/docs/r/support"
47311
47335
  },
47312
47336
  Icon: MdOutlineHelpOutline
47313
47337
  })
@@ -47644,7 +47668,7 @@ function Alerts2({ alerts }) {
47644
47668
  return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", { className: "fixed bottom-0 left-0 right-0 p-6 flex flex-col items-center z-[999999]" }, alerts.all.filter((alert) => {
47645
47669
  return alert.level !== "error";
47646
47670
  }).map((alert) => {
47647
- return /* @__PURE__ */ React__default.createElement(Alert, { key: alert.id, level: alert.level }, alert.level === "info" && /* @__PURE__ */ React__default.createElement(BiInfoCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "success" && /* @__PURE__ */ React__default.createElement(BiCheckCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "warn" && /* @__PURE__ */ React__default.createElement(BiError, { className: "w-5 h-auto opacity-70" }), /* @__PURE__ */ React__default.createElement("p", { className: "m-0 flex-1 max-w-[680px] text-left" }, parseUrlsInText(alert.message.toString())), /* @__PURE__ */ React__default.createElement(
47671
+ return /* @__PURE__ */ React__default.createElement(Alert, { key: alert.id, level: alert.level }, alert.level === "info" && /* @__PURE__ */ React__default.createElement(MdInfo, { className: "w-5 h-auto opacity-70" }), alert.level === "success" && /* @__PURE__ */ React__default.createElement(MdCheckCircle, { className: "w-5 h-auto opacity-70" }), alert.level === "warn" && /* @__PURE__ */ React__default.createElement(MdWarning, { className: "w-5 h-auto opacity-70" }), /* @__PURE__ */ React__default.createElement("p", { className: "m-0 flex-1 max-w-[680px] text-left" }, parseUrlsInText(alert.message.toString())), /* @__PURE__ */ React__default.createElement(
47648
47672
  CloseAlert,
47649
47673
  {
47650
47674
  onClick: () => {
@@ -47665,7 +47689,7 @@ function Alerts2({ alerts }) {
47665
47689
  alerts.dismiss(alert);
47666
47690
  }
47667
47691
  },
47668
- /* @__PURE__ */ React__default.createElement(BiError, { className: "mr-1 w-6 h-auto fill-current inline-block text-red-600" }),
47692
+ /* @__PURE__ */ React__default.createElement(MdError, { className: "mr-1 w-6 h-auto fill-current inline-block text-red-600" }),
47669
47693
  " ",
47670
47694
  "Error"
47671
47695
  ), /* @__PURE__ */ React__default.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__default.createElement("div", { className: "tina-prose" }, /* @__PURE__ */ React__default.createElement(AlertMessage, null))), /* @__PURE__ */ React__default.createElement(ModalActions, null, /* @__PURE__ */ React__default.createElement("div", { className: "flex-1" }), /* @__PURE__ */ React__default.createElement(
@@ -47699,7 +47723,7 @@ const Alert = ({
47699
47723
  return /* @__PURE__ */ React__default.createElement(
47700
47724
  "div",
47701
47725
  {
47702
- className: `rounded shadow-lg border-l-[6px] font-normal cursor-pointer pointer-events-all text-sm transition-all duration-100 ease-out mb-4 max-w-full ${colorClasses[level]}}`,
47726
+ className: `rounded shadow-lg font-normal cursor-pointer pointer-events-all text-sm transition-all duration-100 ease-out mb-4 max-w-full ${colorClasses[level]}}`,
47703
47727
  style: {
47704
47728
  animationName: "fly-in-up, fade-in",
47705
47729
  animationTimingFunction: "ease-out",
@@ -47711,7 +47735,7 @@ const Alert = ({
47711
47735
  /* @__PURE__ */ React__default.createElement(
47712
47736
  "div",
47713
47737
  {
47714
- className: `flex items-center gap-1.5 min-w-[350px] rounded-r border p-2 ${borderClasses[level]}`,
47738
+ className: `flex items-center gap-1.5 min-w-[350px] rounded-md border p-2 ${borderClasses[level]}`,
47715
47739
  ...props
47716
47740
  }
47717
47741
  )
@@ -47723,7 +47747,7 @@ const CloseAlert = ({ ...styleProps }) => /* @__PURE__ */ React__default.createE
47723
47747
  className: "border-none bg-transparent p-0 outline-none flex items-center",
47724
47748
  ...styleProps
47725
47749
  },
47726
- /* @__PURE__ */ React__default.createElement(BiX, { className: "w-5 auto flex-grow-0 flex-shrink-0 opacity-50" })
47750
+ /* @__PURE__ */ React__default.createElement(BiX, { className: "w-5 auto flex-grow-0 flex-shrink-0" })
47727
47751
  );
47728
47752
  function CursorPaginator({
47729
47753
  navigateNext,
@@ -119921,7 +119945,7 @@ class ErrorBoundary extends React__default.Component {
119921
119945
  {
119922
119946
  className: "text-gray-600",
119923
119947
  style: { textDecoration: "underline" },
119924
- href: "https://tina.io/docs/errors/faq/",
119948
+ href: "https://tina.io/docs/r/FAQ/",
119925
119949
  target: "_blank"
119926
119950
  },
119927
119951
  " ",
@@ -119979,7 +120003,7 @@ const TinaCMSProvider2 = ({
119979
120003
  !schema.config.contentApiUrlOverride
119980
120004
  ) {
119981
120005
  throw new Error(
119982
- "Invalid setup. See https://tina.io/docs/tina-cloud/overview for more information."
120006
+ "Invalid setup. See https://tina.io/docs/r/what-is-tinacloud for more information."
119983
120007
  );
119984
120008
  }
119985
120009
  if (!schema) {
@@ -120313,7 +120337,7 @@ const ErrorDialog = (props) => {
120313
120337
  {
120314
120338
  className: "text-gray-600",
120315
120339
  style: { textDecoration: "underline" },
120316
- href: "https://tina.io/docs/errors/faq/",
120340
+ href: "https://tina.io/docs/r/FAQ/",
120317
120341
  target: "_blank"
120318
120342
  },
120319
120343
  " ",
@@ -120439,7 +120463,7 @@ const PageWrapper = ({
120439
120463
  headerClassName,
120440
120464
  children
120441
120465
  }) => {
120442
- return /* @__PURE__ */ React__default.createElement("div", { className: "relative left-0 w-full h-full bg-gradient-to-b from-gray-50/50 to-gray-50 shadow-2xl overflow-y-auto transition-opacity duration-300 ease-out flex flex-col opacity-100" }, /* @__PURE__ */ React__default.createElement("div", { className: `py-2 px-4 ${headerClassName}` }, /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement(BillingWarning, null), /* @__PURE__ */ React__default.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React__default.createElement(BranchButton, null), /* @__PURE__ */ React__default.createElement(BranchPreviewButton, null))), children);
120466
+ return /* @__PURE__ */ React__default.createElement("div", { className: "relative left-0 w-full h-full bg-gradient-to-b from-gray-50/50 to-gray-50 overflow-y-auto transition-opacity duration-300 ease-out flex flex-col opacity-100" }, /* @__PURE__ */ React__default.createElement("div", { className: `py-2 pl-4 pr-4 w-full ${headerClassName}` }, /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement(BillingWarning, null), /* @__PURE__ */ React__default.createElement("div", { className: "flex justify-between items-center" }, /* @__PURE__ */ React__default.createElement(BranchButton, null), /* @__PURE__ */ React__default.createElement(BranchPreviewButton, null))), children);
120443
120467
  };
120444
120468
  const PageHeader = ({
120445
120469
  children
@@ -120830,7 +120854,7 @@ const CollectionListPage = () => {
120830
120854
  },
120831
120855
  close: () => setFolderModalOpen(false)
120832
120856
  }
120833
- ), /* @__PURE__ */ React__default.createElement(PageHeader, null, /* @__PURE__ */ React__default.createElement("div", { className: "w-full" }, /* @__PURE__ */ React__default.createElement("h3", { className: "font-sans text-2xl text-gray-700" }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col lg:flex-row justify-between lg:items-end pt-2" }, /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col md:flex-row gap-2 md:gap-4 items-start" }, (fields == null ? void 0 : fields.length) > 0 && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, !search && /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React__default.createElement(
120857
+ ), /* @__PURE__ */ React__default.createElement(PageHeader, null, /* @__PURE__ */ React__default.createElement("div", { className: "w-full" }, /* @__PURE__ */ React__default.createElement("h3", { className: "font-sans text-2xl text-tina-orange" }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col lg:flex-row justify-between lg:items-end pt-2" }, /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col md:flex-row gap-2 md:gap-4 items-baseline" }, (fields == null ? void 0 : fields.length) > 0 && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, !search && /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React__default.createElement(
120834
120858
  "label",
120835
120859
  {
120836
120860
  htmlFor: "sort",
@@ -120885,7 +120909,7 @@ const CollectionListPage = () => {
120885
120909
  }
120886
120910
  }
120887
120911
  }
120888
- ))), /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-1 flex-col gap-2 items-start w-full" }, searchEnabled ? /* @__PURE__ */ React__default.createElement(
120912
+ ))), /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-1 flex-row gap-2 items-end w-full" }, searchEnabled ? /* @__PURE__ */ React__default.createElement(
120889
120913
  SearchInput,
120890
120914
  {
120891
120915
  loading: _loading,
@@ -120894,16 +120918,15 @@ const CollectionListPage = () => {
120894
120918
  searchInput,
120895
120919
  setSearchInput
120896
120920
  }
120897
- ) : /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React__default.createElement("div", { className: "h-4" }), /* @__PURE__ */ React__default.createElement(
120898
- Message,
120921
+ ) : /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col gap-2 items-start w-full md:w-auto" }, /* @__PURE__ */ React__default.createElement("div", { className: "block font-sans text-xs font-semibold opacity-0" }, " "), /* @__PURE__ */ React__default.createElement(Callout, { calloutStyle: "info" }, " ", "You have not configured search.", " ", /* @__PURE__ */ React__default.createElement(
120922
+ "a",
120899
120923
  {
120900
- link: "https://tina.io/docs/reference/search/overview",
120901
- linkLabel: "Read The Docs",
120902
- type: "info",
120903
- size: "small"
120924
+ href: "https://tina.io/docs/r/content-search",
120925
+ target: "_blank",
120926
+ className: "underline hover:text-blue-700 transition-all duration-150"
120904
120927
  },
120905
- "Search not configured."
120906
- )))), allowCreate && /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-2 md:gap-0 pt-4 lg:pt-0" }, allowCreateNestedFolder && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(TooltipProvider, null, /* @__PURE__ */ React__default.createElement(Tooltip, null, /* @__PURE__ */ React__default.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement(
120928
+ "Read the docs"
120929
+ ))))), allowCreate && /* @__PURE__ */ React__default.createElement("div", { className: "flex flex-col md:flex-row items-start md:items-end gap-2 md:gap-0 pt-4 lg:pt-0" }, allowCreateNestedFolder && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(TooltipProvider, null, /* @__PURE__ */ React__default.createElement(Tooltip, null, /* @__PURE__ */ React__default.createElement(TooltipTrigger, { asChild: true }, /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement(
120907
120930
  Link$1,
120908
120931
  {
120909
120932
  onMouseDown: (evt) => {
@@ -120935,15 +120958,15 @@ const CollectionListPage = () => {
120935
120958
  side: "top",
120936
120959
  align: "center"
120937
120960
  },
120938
- /* @__PURE__ */ React__default.createElement("p", null, "Folders cant be manually added when using templates.", /* @__PURE__ */ React__default.createElement("br", null), "See the docs -", " ", /* @__PURE__ */ React__default.createElement(
120961
+ /* @__PURE__ */ React__default.createElement("p", null, "Folders can't be manually added when using templates.", /* @__PURE__ */ React__default.createElement("br", null), "See the docs -", " ", /* @__PURE__ */ React__default.createElement(
120939
120962
  "a",
120940
120963
  {
120941
- href: "https://tina.io/docs/reference/templates",
120964
+ href: "https://tina.io/docs/r/content-modelling-templates",
120942
120965
  target: "_blank",
120943
120966
  rel: "noopener noreferrer",
120944
120967
  className: "underline text-blue-500"
120945
120968
  },
120946
- "https://tina.io/docs/reference/templates"
120969
+ "https://tina.io/docs/r/content-modelling-templates"
120947
120970
  ))
120948
120971
  )))), !collection.templates && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
120949
120972
  Link$1,
@@ -120970,7 +120993,7 @@ const CollectionListPage = () => {
120970
120993
  templates: collection.templates,
120971
120994
  folder
120972
120995
  }
120973
- ))))), /* @__PURE__ */ React__default.createElement(PageBody, null, /* @__PURE__ */ React__default.createElement("div", { className: "w-full mx-auto max-w-screen-xl" }, sortField && !sortField.required && /* @__PURE__ */ React__default.createElement("p", { className: "mb-4 text-gray-500" }, /* @__PURE__ */ React__default.createElement("em", null, "Sorting on a non-required field. Some documents may be excluded (if they don't have a value for", " ", sortName, ")")), /* @__PURE__ */ React__default.createElement("div", { className: "w-full overflow-x-auto" }, (folder.name && !search || documents.length > 0) && /* @__PURE__ */ React__default.createElement("table", { className: "table-auto shadow bg-white border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React__default.createElement("tbody", { className: "divide-y divide-gray-150" }, folder.name && !search ? /* @__PURE__ */ React__default.createElement("tr", null, /* @__PURE__ */ React__default.createElement("td", { colSpan: 5 }, /* @__PURE__ */ React__default.createElement(
120996
+ ))))), /* @__PURE__ */ React__default.createElement(PageBody, null, /* @__PURE__ */ React__default.createElement("div", { className: "w-full mx-auto max-w-screen-xl" }, sortField && !sortField.required && /* @__PURE__ */ React__default.createElement("p", { className: "mb-4 text-gray-500" }, /* @__PURE__ */ React__default.createElement("em", null, "Sorting on a non-required field. Some documents may be excluded (if they don't have a value for", " ", sortName, ")")), /* @__PURE__ */ React__default.createElement("div", { className: "w-full overflow-x-auto shadow-md rounded-md" }, (folder.name && !search || documents.length > 0) && /* @__PURE__ */ React__default.createElement("table", { className: "table-auto shadow bg-white border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React__default.createElement("tbody", null, folder.name && !search ? /* @__PURE__ */ React__default.createElement("tr", null, /* @__PURE__ */ React__default.createElement("td", { colSpan: 5 }, /* @__PURE__ */ React__default.createElement(
120974
120997
  Breadcrumb,
120975
120998
  {
120976
120999
  folder,
@@ -121015,6 +121038,7 @@ const CollectionListPage = () => {
121015
121038
  return /* @__PURE__ */ React__default.createElement(
121016
121039
  "tr",
121017
121040
  {
121041
+ className: "hover:bg-gray-100 transition-colors duration-300",
121018
121042
  key: `document-${document2.node._sys.relativePath}`
121019
121043
  },
121020
121044
  /* @__PURE__ */ React__default.createElement(
@@ -122094,7 +122118,7 @@ const ScreenPage = () => {
122094
122118
  const selectedScreen = screens.find(
122095
122119
  ({ name }) => slugify(name) === screenName
122096
122120
  );
122097
- return /* @__PURE__ */ React__default.createElement("div", { className: "relative w-full h-full flex flex-col items-stretch justify-between" }, /* @__PURE__ */ React__default.createElement("div", { className: "pt-2 px-6 bg-white" }, /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement(BillingWarning, null)), /* @__PURE__ */ React__default.createElement(
122121
+ return /* @__PURE__ */ React__default.createElement("div", { className: "relative w-full h-full flex flex-col items-stretch justify-between" }, /* @__PURE__ */ React__default.createElement("div", { className: "py-2 px-6 w-fit " }, /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement(BillingWarning, null)), /* @__PURE__ */ React__default.createElement(
122098
122122
  "div",
122099
122123
  {
122100
122124
  className: `xl:hidden pl-6 py-5 border-b border-gray-200 bg-white`
@@ -9,7 +9,7 @@ import type { TinaCMSProviderDefaultProps } from './types/cms';
9
9
  export declare const TinaCMSProvider2: ({ query, documentCreatorCallback, formifyCallback, schema, ...props }: TinaCMSProviderDefaultProps) => React.JSX.Element;
10
10
  export type DocumentCreatorCallback = Parameters<typeof useDocumentCreatorPlugin>[0];
11
11
  /**
12
- * @deprecated v0.62.0: Use `staticRequest` and a "try catch" block instead. see https://tina.io/docs/features/data-fetching/#querying-tina-content-in-nextjs for more details
12
+ * @deprecated v0.62.0: Use `staticRequest` and a "try catch" block instead. see https://tina.io/docs/r/content-api-overview for more details
13
13
  *
14
14
  * A convenience function which makes a GraphQL request
15
15
  * to a local GraphQL server and ensures the response fits
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export declare const Badge: ({ children, calloutStyle, className, ...props }: {
3
+ children?: React.ReactNode;
4
+ calloutStyle?: "warning" | "info" | "success" | "error";
5
+ } & React.HTMLProps<HTMLDivElement>) => React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ export declare const Callout: ({ children, calloutStyle, className, ...props }: {
3
+ children?: React.ReactNode;
4
+ calloutStyle?: "warning" | "info" | "success" | "error";
5
+ } & React.HTMLProps<HTMLDivElement>) => React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tinacms",
3
- "version": "2.8.3",
3
+ "version": "2.9.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "exports": {
@@ -1,5 +0,0 @@
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;