tinacms 0.68.4 → 0.68.7

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/index.js CHANGED
@@ -30,8 +30,8 @@ var __objRest = (source, exclude) => {
30
30
  return target;
31
31
  };
32
32
  (function(global, factory) {
33
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@tinacms/toolkit"), require("graphql"), require("lodash.set"), require("react"), require("final-form"), require("@tinacms/schema-tools"), require("graphql-tag"), require("yup"), require("styled-components"), require("@tinacms/sharedctx"), require("url-pattern"), require("react-router-dom"), require("@headlessui/react")) : typeof define === "function" && define.amd ? define(["exports", "@tinacms/toolkit", "graphql", "lodash.set", "react", "final-form", "@tinacms/schema-tools", "graphql-tag", "yup", "styled-components", "@tinacms/sharedctx", "url-pattern", "react-router-dom", "@headlessui/react"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tinacms = {}, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP));
34
- })(this, function(exports2, toolkit, G, set, React, finalForm, schemaTools, gql$1, yup, styled, sharedctx, UrlPattern, reactRouterDom, react) {
33
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@tinacms/toolkit"), require("graphql"), require("lodash.set"), require("react"), require("final-form"), require("@tinacms/schema-tools"), require("graphql-tag"), require("yup"), require("styled-components"), require("@tinacms/sharedctx"), require("url-pattern"), require("react-router-dom"), require("@headlessui/react"), require("@react-hook/window-size")) : typeof define === "function" && define.amd ? define(["exports", "@tinacms/toolkit", "graphql", "lodash.set", "react", "final-form", "@tinacms/schema-tools", "graphql-tag", "yup", "styled-components", "@tinacms/sharedctx", "url-pattern", "react-router-dom", "@headlessui/react", "@react-hook/window-size"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tinacms = {}, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP));
34
+ })(this, function(exports2, toolkit, G, set, React, finalForm, schemaTools, gql$1, yup, styled, sharedctx, UrlPattern, reactRouterDom, react, windowSize) {
35
35
  "use strict";
36
36
  function _interopDefaultLegacy(e) {
37
37
  return e && typeof e === "object" && "default" in e ? e : { "default": e };
@@ -59,6 +59,7 @@ var __objRest = (source, exclude) => {
59
59
  var G__namespace = /* @__PURE__ */ _interopNamespace(G);
60
60
  var set__default = /* @__PURE__ */ _interopDefaultLegacy(set);
61
61
  var React__default = /* @__PURE__ */ _interopDefaultLegacy(React);
62
+ var React__namespace = /* @__PURE__ */ _interopNamespace(React);
62
63
  var gql__default = /* @__PURE__ */ _interopDefaultLegacy(gql$1);
63
64
  var yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
64
65
  var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
@@ -2442,6 +2443,7 @@ mutation addPendingDocumentMutation(
2442
2443
  constructor(cms) {
2443
2444
  this.api = cms.api.tina;
2444
2445
  this.schema = cms.api.tina.schema;
2446
+ this.useDataLayer = cms.flags.get("experimentalData");
2445
2447
  }
2446
2448
  async isAuthenticated() {
2447
2449
  return await this.api.isAuthenticated();
@@ -2466,21 +2468,30 @@ mutation addPendingDocumentMutation(
2466
2468
  }
2467
2469
  }`, { variables: { collection, relativePath } });
2468
2470
  }
2469
- async fetchCollection(collectionName, includeDocuments) {
2471
+ async fetchCollection(collectionName, includeDocuments, after) {
2470
2472
  if (includeDocuments === true) {
2471
- const response = await this.api.request(`#graphql
2472
- query($collection: String!, $includeDocuments: Boolean!){
2473
+ if (this.useDataLayer) {
2474
+ const sort = this.schema.getIsTitleFieldName(collectionName);
2475
+ const response = await this.api.request(`#graphql
2476
+ query($collection: String!, $includeDocuments: Boolean!, $sort: String, $limit: Float, $after: String){
2473
2477
  collection(collection: $collection){
2474
2478
  name
2475
2479
  label
2476
2480
  format
2477
2481
  templates
2478
- documents @include(if: $includeDocuments) {
2482
+ documents(sort: $sort, after: $after, first: $limit) @include(if: $includeDocuments) {
2479
2483
  totalCount
2484
+ pageInfo {
2485
+ hasPreviousPage
2486
+ hasNextPage
2487
+ startCursor
2488
+ endCursor
2489
+ }
2480
2490
  edges {
2481
2491
  node {
2482
2492
  ... on Document {
2483
2493
  _sys {
2494
+ title
2484
2495
  template
2485
2496
  breadcrumbs
2486
2497
  path
@@ -2494,8 +2505,46 @@ mutation addPendingDocumentMutation(
2494
2505
  }
2495
2506
  }
2496
2507
  }
2497
- }`, { variables: { collection: collectionName, includeDocuments } });
2498
- return response.collection;
2508
+ }`, {
2509
+ variables: {
2510
+ collection: collectionName,
2511
+ includeDocuments,
2512
+ sort,
2513
+ limit: 10,
2514
+ after
2515
+ }
2516
+ });
2517
+ return response.collection;
2518
+ } else {
2519
+ const response = await this.api.request(`#graphql
2520
+ query($collection: String!, $includeDocuments: Boolean!){
2521
+ collection(collection: $collection){
2522
+ name
2523
+ label
2524
+ format
2525
+ templates
2526
+ documents @include(if: $includeDocuments) {
2527
+ totalCount
2528
+ edges {
2529
+ node {
2530
+ ... on Document {
2531
+ _sys {
2532
+ template
2533
+ breadcrumbs
2534
+ path
2535
+ basename
2536
+ relativePath
2537
+ filename
2538
+ extension
2539
+ }
2540
+ }
2541
+ }
2542
+ }
2543
+ }
2544
+ }
2545
+ }`, { variables: { collection: collectionName, includeDocuments } });
2546
+ return response.collection;
2547
+ }
2499
2548
  } else {
2500
2549
  try {
2501
2550
  const collection = this.schema.getCollection(collectionName);
@@ -2623,7 +2672,9 @@ mutation addPendingDocumentMutation(
2623
2672
  sidebar: true
2624
2673
  }), [props.cms]);
2625
2674
  if (!cms.api.tina) {
2626
- cms.registerApi("tina", createClient(props));
2675
+ cms.registerApi("tina", createClient(__spreadProps(__spreadValues({}, props), { branch: currentBranch })));
2676
+ } else {
2677
+ cms.api.tina.setBranch(currentBranch);
2627
2678
  }
2628
2679
  if (!cms.api.admin) {
2629
2680
  cms.registerApi("admin", new TinaAdminApi(cms));
@@ -2692,7 +2743,7 @@ mutation addPendingDocumentMutation(
2692
2743
  }))));
2693
2744
  };
2694
2745
  const TinaCloudAuthWall = TinaCloudProvider;
2695
- var styles = '*, ::before, ::after {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(0 132 255 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.tina-tailwind .static {\n position: static;\n}\n.tina-tailwind .fixed {\n position: fixed;\n}\n.tina-tailwind .absolute {\n position: absolute;\n}\n.tina-tailwind .relative {\n position: relative;\n}\n.tina-tailwind .left-0 {\n left: 0px;\n}\n.tina-tailwind .right-0 {\n right: 0px;\n}\n.tina-tailwind .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.tina-tailwind .mr-2 {\n margin-right: 8px;\n}\n.tina-tailwind .mb-2 {\n margin-bottom: 8px;\n}\n.tina-tailwind .mb-1 {\n margin-bottom: 4px;\n}\n.tina-tailwind .-mt-0\\.5 {\n margin-top: -2px;\n}\n.tina-tailwind .-mt-0 {\n margin-top: -0px;\n}\n.tina-tailwind .ml-1 {\n margin-left: 4px;\n}\n.tina-tailwind .mt-2 {\n margin-top: 8px;\n}\n.tina-tailwind .mr-1\\.5 {\n margin-right: 6px;\n}\n.tina-tailwind .mr-1 {\n margin-right: 4px;\n}\n.tina-tailwind .block {\n display: block;\n}\n.tina-tailwind .inline-block {\n display: inline-block;\n}\n.tina-tailwind .inline {\n display: inline;\n}\n.tina-tailwind .flex {\n display: flex;\n}\n.tina-tailwind .inline-flex {\n display: inline-flex;\n}\n.tina-tailwind .table {\n display: table;\n}\n.tina-tailwind .h-screen {\n height: 100vh;\n}\n.tina-tailwind .h-auto {\n height: auto;\n}\n.tina-tailwind .h-full {\n height: 100%;\n}\n.tina-tailwind .h-6 {\n height: 24px;\n}\n.tina-tailwind .h-10 {\n height: 40px;\n}\n.tina-tailwind .h-5 {\n height: 20px;\n}\n.tina-tailwind .h-12 {\n height: 48px;\n}\n.tina-tailwind .w-full {\n width: 100%;\n}\n.tina-tailwind .w-10 {\n width: 40px;\n}\n.tina-tailwind .w-auto {\n width: auto;\n}\n.tina-tailwind .w-5 {\n width: 20px;\n}\n.tina-tailwind .w-56 {\n width: 224px;\n}\n.tina-tailwind .w-0 {\n width: 0px;\n}\n.tina-tailwind .w-6 {\n width: 24px;\n}\n.tina-tailwind .max-w-lg {\n max-width: 32rem;\n}\n.tina-tailwind .max-w-screen-xl {\n max-width: 1280px;\n}\n.tina-tailwind .max-w-form {\n max-width: 900px;\n}\n.tina-tailwind .max-w-full {\n max-width: 100%;\n}\n.tina-tailwind .flex-1 {\n flex: 1 1 0%;\n}\n.tina-tailwind .flex-shrink-0 {\n flex-shrink: 0;\n}\n.tina-tailwind .flex-grow-0 {\n flex-grow: 0;\n}\n.tina-tailwind .table-auto {\n table-layout: auto;\n}\n.tina-tailwind .origin-top-right {\n transform-origin: top right;\n}\n.tina-tailwind .scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .cursor-pointer {\n cursor: pointer;\n}\n.tina-tailwind .flex-col {\n flex-direction: column;\n}\n.tina-tailwind .items-end {\n align-items: flex-end;\n}\n.tina-tailwind .items-center {\n align-items: center;\n}\n.tina-tailwind .items-stretch {\n align-items: stretch;\n}\n.tina-tailwind .justify-end {\n justify-content: flex-end;\n}\n.tina-tailwind .justify-center {\n justify-content: center;\n}\n.tina-tailwind .justify-between {\n justify-content: space-between;\n}\n.tina-tailwind .gap-0\\.5 {\n gap: 2px;\n}\n.tina-tailwind .gap-0 {\n gap: 0px;\n}\n.tina-tailwind .gap-4 {\n gap: 16px;\n}\n.tina-tailwind .gap-3 {\n gap: 12px;\n}\n.tina-tailwind .divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.tina-tailwind .divide-gray-150 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(230 227 239 / var(--tw-divide-opacity));\n}\n.tina-tailwind .overflow-hidden {\n overflow: hidden;\n}\n.tina-tailwind .overflow-y-auto {\n overflow-y: auto;\n}\n.tina-tailwind .whitespace-nowrap {\n white-space: nowrap;\n}\n.tina-tailwind .rounded-lg {\n border-radius: 8px;\n}\n.tina-tailwind .rounded-full {\n border-radius: 9999px;\n}\n.tina-tailwind .rounded-md {\n border-radius: 6px;\n}\n.tina-tailwind .border {\n border-width: 1px;\n}\n.tina-tailwind .border-b {\n border-bottom-width: 1px;\n}\n.tina-tailwind .border-gray-150 {\n --tw-border-opacity: 1;\n border-color: rgb(230 227 239 / var(--tw-border-opacity));\n}\n.tina-tailwind .border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(225 221 236 / var(--tw-border-opacity));\n}\n.tina-tailwind .bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(246 246 249 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(0 132 255 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.tina-tailwind .from-blue-900 {\n --tw-gradient-from: #1D2C6C;\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(29 44 108 / 0));\n}\n.tina-tailwind .to-gray-900 {\n --tw-gradient-to: #252336;\n}\n.tina-tailwind .px-4 {\n padding-left: 16px;\n padding-right: 16px;\n}\n.tina-tailwind .py-6 {\n padding-top: 24px;\n padding-bottom: 24px;\n}\n.tina-tailwind .px-5 {\n padding-left: 20px;\n padding-right: 20px;\n}\n.tina-tailwind .py-4 {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.tina-tailwind .px-12 {\n padding-left: 48px;\n padding-right: 48px;\n}\n.tina-tailwind .py-10 {\n padding-top: 40px;\n padding-bottom: 40px;\n}\n.tina-tailwind .px-20 {\n padding-left: 80px;\n padding-right: 80px;\n}\n.tina-tailwind .px-6 {\n padding-left: 24px;\n padding-right: 24px;\n}\n.tina-tailwind .py-1 {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.tina-tailwind .py-2 {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.tina-tailwind .pt-4 {\n padding-top: 16px;\n}\n.tina-tailwind .pb-4 {\n padding-bottom: 16px;\n}\n.tina-tailwind .pt-18 {\n padding-top: 72px;\n}\n.tina-tailwind .text-left {\n text-align: left;\n}\n.tina-tailwind .text-center {\n text-align: center;\n}\n.tina-tailwind .font-sans {\n font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n.tina-tailwind .text-2xl {\n font-size: 24px;\n line-height: 1.33;\n}\n.tina-tailwind .text-base {\n font-size: 16px;\n line-height: 1.5;\n}\n.tina-tailwind .text-sm {\n font-size: 14px;\n line-height: 1.43;\n}\n.tina-tailwind .text-xl {\n font-size: 20px;\n line-height: 1.4;\n}\n.tina-tailwind .text-md {\n font-size: 16px;\n line-height: 1.5;\n}\n.tina-tailwind .text-xs {\n font-size: 13px;\n line-height: 1.33;\n}\n.tina-tailwind .font-medium {\n font-weight: 500;\n}\n.tina-tailwind .uppercase {\n text-transform: uppercase;\n}\n.tina-tailwind .italic {\n font-style: italic;\n}\n.tina-tailwind .leading-normal {\n line-height: 1.5;\n}\n.tina-tailwind .leading-tight {\n line-height: 1.25;\n}\n.tina-tailwind .leading-5 {\n line-height: 20px;\n}\n.tina-tailwind .tracking-wide {\n letter-spacing: 0.025em;\n}\n.tina-tailwind .text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(86 81 101 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(67 62 82 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(5 116 228 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(113 108 127 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(145 140 158 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-current {\n color: currentColor;\n}\n.tina-tailwind .text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-800 {\n --tw-text-opacity: 1;\n color: rgb(54 49 69 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(37 35 54 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity));\n}\n.tina-tailwind .underline {\n text-decoration-line: underline;\n}\n.tina-tailwind .opacity-100 {\n opacity: 1;\n}\n.tina-tailwind .opacity-90 {\n opacity: .9;\n}\n.tina-tailwind .opacity-80 {\n opacity: .8;\n}\n.tina-tailwind .opacity-50 {\n opacity: .5;\n}\n.tina-tailwind .opacity-70 {\n opacity: .7;\n}\n.tina-tailwind .opacity-0 {\n opacity: 0;\n}\n.tina-tailwind .shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.tina-tailwind .ring-black {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));\n}\n.tina-tailwind .ring-opacity-5 {\n --tw-ring-opacity: .05;\n}\n.tina-tailwind .filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.tina-tailwind .transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .duration-300 {\n transition-duration: 300ms;\n}\n.tina-tailwind .duration-150 {\n transition-duration: 150ms;\n}\n.tina-tailwind .duration-100 {\n transition-duration: 100ms;\n}\n.tina-tailwind .duration-75 {\n transition-duration: 75ms;\n}\n.tina-tailwind .ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.tina-tailwind .ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n.tina-tailwind .icon-parent svg {\n fill: currentColor;\n }\n\n.tina-tailwind {\n font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n font-size: 16px;\n line-height: 1.5;\n --tw-text-opacity: 1;\n color: rgb(86 81 101 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:bg-blue-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(5 116 228 / var(--tw-bg-opacity));\n}\n\n.tina-tailwind .hover\\:text-blue-600:hover {\n --tw-text-opacity: 1;\n color: rgb(5 116 228 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:text-blue-400:hover {\n --tw-text-opacity: 1;\n color: rgb(34 150 254 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:opacity-100:hover {\n opacity: 1;\n}\n\n.tina-tailwind .focus\\:text-blue-400:focus {\n --tw-text-opacity: 1;\n color: rgb(34 150 254 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .focus\\:underline:focus {\n text-decoration-line: underline;\n}\n\n.tina-tailwind .focus\\:shadow-outline:focus {\n --tw-shadow: 0 0 0 3px rgba(66, 153, 225, 0.5);\n --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.tina-tailwind .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.tina-tailwind .focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.tina-tailwind .focus\\:ring-blue-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 132 255 / var(--tw-ring-opacity));\n}\n';
2746
+ var styles = '*, ::before, ::after {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(0 132 255 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.tina-tailwind .pointer-events-auto {\n pointer-events: auto;\n}\n.tina-tailwind .static {\n position: static;\n}\n.tina-tailwind .fixed {\n position: fixed;\n}\n.tina-tailwind .absolute {\n position: absolute;\n}\n.tina-tailwind .relative {\n position: relative;\n}\n.tina-tailwind .inset-0 {\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n}\n.tina-tailwind .left-0 {\n left: 0px;\n}\n.tina-tailwind .top-0 {\n top: 0px;\n}\n.tina-tailwind .top-8 {\n top: 32px;\n}\n.tina-tailwind .right-0 {\n right: 0px;\n}\n.tina-tailwind .top-10 {\n top: 40px;\n}\n.tina-tailwind .top-4 {\n top: 16px;\n}\n.tina-tailwind .z-overlay {\n z-index: 10600;\n}\n.tina-tailwind .z-menu {\n z-index: 9800;\n}\n.tina-tailwind .z-50 {\n z-index: 50;\n}\n.tina-tailwind .mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.tina-tailwind .-ml-px {\n margin-left: -1px;\n}\n.tina-tailwind .mr-2 {\n margin-right: 8px;\n}\n.tina-tailwind .mb-2 {\n margin-bottom: 8px;\n}\n.tina-tailwind .mb-1 {\n margin-bottom: 4px;\n}\n.tina-tailwind .-mt-0\\.5 {\n margin-top: -2px;\n}\n.tina-tailwind .-mt-0 {\n margin-top: -0px;\n}\n.tina-tailwind .ml-1 {\n margin-left: 4px;\n}\n.tina-tailwind .mt-2 {\n margin-top: 8px;\n}\n.tina-tailwind .mr-1\\.5 {\n margin-right: 6px;\n}\n.tina-tailwind .mr-1 {\n margin-right: 4px;\n}\n.tina-tailwind .block {\n display: block;\n}\n.tina-tailwind .inline-block {\n display: inline-block;\n}\n.tina-tailwind .inline {\n display: inline;\n}\n.tina-tailwind .flex {\n display: flex;\n}\n.tina-tailwind .inline-flex {\n display: inline-flex;\n}\n.tina-tailwind .table {\n display: table;\n}\n.tina-tailwind .h-screen {\n height: 100vh;\n}\n.tina-tailwind .h-auto {\n height: auto;\n}\n.tina-tailwind .h-full {\n height: 100%;\n}\n.tina-tailwind .h-6 {\n height: 24px;\n}\n.tina-tailwind .h-7 {\n height: 28px;\n}\n.tina-tailwind .h-10 {\n height: 40px;\n}\n.tina-tailwind .h-5 {\n height: 20px;\n}\n.tina-tailwind .h-12 {\n height: 48px;\n}\n.tina-tailwind .w-full {\n width: 100%;\n}\n.tina-tailwind .w-10 {\n width: 40px;\n}\n.tina-tailwind .w-auto {\n width: auto;\n}\n.tina-tailwind .w-5 {\n width: 20px;\n}\n.tina-tailwind .w-56 {\n width: 224px;\n}\n.tina-tailwind .w-0 {\n width: 0px;\n}\n.tina-tailwind .w-6 {\n width: 24px;\n}\n.tina-tailwind .max-w-lg {\n max-width: 32rem;\n}\n.tina-tailwind .max-w-screen-xl {\n max-width: 1280px;\n}\n.tina-tailwind .max-w-form {\n max-width: 900px;\n}\n.tina-tailwind .max-w-full {\n max-width: 100%;\n}\n.tina-tailwind .flex-1 {\n flex: 1 1 0%;\n}\n.tina-tailwind .flex-shrink-0 {\n flex-shrink: 0;\n}\n.tina-tailwind .flex-grow-0 {\n flex-grow: 0;\n}\n.tina-tailwind .table-auto {\n table-layout: auto;\n}\n.tina-tailwind .origin-top-right {\n transform-origin: top right;\n}\n.tina-tailwind .-translate-x-full {\n --tw-translate-x: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .translate-x-full {\n --tw-translate-x: 100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .scale-95 {\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .scale-100 {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tina-tailwind .cursor-pointer {\n cursor: pointer;\n}\n.tina-tailwind .flex-col {\n flex-direction: column;\n}\n.tina-tailwind .items-end {\n align-items: flex-end;\n}\n.tina-tailwind .items-center {\n align-items: center;\n}\n.tina-tailwind .items-stretch {\n align-items: stretch;\n}\n.tina-tailwind .justify-end {\n justify-content: flex-end;\n}\n.tina-tailwind .justify-center {\n justify-content: center;\n}\n.tina-tailwind .justify-between {\n justify-content: space-between;\n}\n.tina-tailwind .gap-0\\.5 {\n gap: 2px;\n}\n.tina-tailwind .gap-0 {\n gap: 0px;\n}\n.tina-tailwind .gap-4 {\n gap: 16px;\n}\n.tina-tailwind .gap-3 {\n gap: 12px;\n}\n.tina-tailwind .divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse));\n}\n.tina-tailwind .divide-gray-150 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(230 227 239 / var(--tw-divide-opacity));\n}\n.tina-tailwind .overflow-hidden {\n overflow: hidden;\n}\n.tina-tailwind .overflow-y-auto {\n overflow-y: auto;\n}\n.tina-tailwind .whitespace-nowrap {\n white-space: nowrap;\n}\n.tina-tailwind .rounded-lg {\n border-radius: 8px;\n}\n.tina-tailwind .rounded {\n border-radius: 4px;\n}\n.tina-tailwind .rounded-full {\n border-radius: 9999px;\n}\n.tina-tailwind .rounded-md {\n border-radius: 6px;\n}\n.tina-tailwind .rounded-r-md {\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n}\n.tina-tailwind .border {\n border-width: 1px;\n}\n.tina-tailwind .border-b {\n border-bottom-width: 1px;\n}\n.tina-tailwind .border-gray-150 {\n --tw-border-opacity: 1;\n border-color: rgb(230 227 239 / var(--tw-border-opacity));\n}\n.tina-tailwind .border-gray-200 {\n --tw-border-opacity: 1;\n border-color: rgb(225 221 236 / var(--tw-border-opacity));\n}\n.tina-tailwind .bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-gray-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(246 246 249 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-blue-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(0 132 255 / var(--tw-bg-opacity));\n}\n.tina-tailwind .bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n}\n.tina-tailwind .bg-gradient-to-br {\n background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));\n}\n.tina-tailwind .from-blue-900 {\n --tw-gradient-from: #1D2C6C;\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(29 44 108 / 0));\n}\n.tina-tailwind .from-gray-800 {\n --tw-gradient-from: #363145;\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(54 49 69 / 0));\n}\n.tina-tailwind .via-gray-900 {\n --tw-gradient-stops: var(--tw-gradient-from), #252336, var(--tw-gradient-to, rgb(37 35 54 / 0));\n}\n.tina-tailwind .to-gray-900 {\n --tw-gradient-to: #252336;\n}\n.tina-tailwind .to-black {\n --tw-gradient-to: #000;\n}\n.tina-tailwind .px-4 {\n padding-left: 16px;\n padding-right: 16px;\n}\n.tina-tailwind .py-6 {\n padding-top: 24px;\n padding-bottom: 24px;\n}\n.tina-tailwind .px-5 {\n padding-left: 20px;\n padding-right: 20px;\n}\n.tina-tailwind .py-4 {\n padding-top: 16px;\n padding-bottom: 16px;\n}\n.tina-tailwind .px-12 {\n padding-left: 48px;\n padding-right: 48px;\n}\n.tina-tailwind .py-10 {\n padding-top: 40px;\n padding-bottom: 40px;\n}\n.tina-tailwind .px-20 {\n padding-left: 80px;\n padding-right: 80px;\n}\n.tina-tailwind .px-6 {\n padding-left: 24px;\n padding-right: 24px;\n}\n.tina-tailwind .py-1 {\n padding-top: 4px;\n padding-bottom: 4px;\n}\n.tina-tailwind .py-2 {\n padding-top: 8px;\n padding-bottom: 8px;\n}\n.tina-tailwind .py-5 {\n padding-top: 20px;\n padding-bottom: 20px;\n}\n.tina-tailwind .pt-4 {\n padding-top: 16px;\n}\n.tina-tailwind .pb-4 {\n padding-bottom: 16px;\n}\n.tina-tailwind .pt-18 {\n padding-top: 72px;\n}\n.tina-tailwind .pt-3 {\n padding-top: 12px;\n}\n.tina-tailwind .pl-18 {\n padding-left: 72px;\n}\n.tina-tailwind .text-left {\n text-align: left;\n}\n.tina-tailwind .text-center {\n text-align: center;\n}\n.tina-tailwind .font-sans {\n font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n}\n.tina-tailwind .text-2xl {\n font-size: 24px;\n line-height: 1.33;\n}\n.tina-tailwind .text-base {\n font-size: 16px;\n line-height: 1.5;\n}\n.tina-tailwind .text-sm {\n font-size: 14px;\n line-height: 1.43;\n}\n.tina-tailwind .text-xl {\n font-size: 20px;\n line-height: 1.4;\n}\n.tina-tailwind .text-md {\n font-size: 16px;\n line-height: 1.5;\n}\n.tina-tailwind .text-xs {\n font-size: 13px;\n line-height: 1.33;\n}\n.tina-tailwind .font-medium {\n font-weight: 500;\n}\n.tina-tailwind .uppercase {\n text-transform: uppercase;\n}\n.tina-tailwind .italic {\n font-style: italic;\n}\n.tina-tailwind .leading-normal {\n line-height: 1.5;\n}\n.tina-tailwind .leading-tight {\n line-height: 1.25;\n}\n.tina-tailwind .leading-5 {\n line-height: 20px;\n}\n.tina-tailwind .tracking-wide {\n letter-spacing: 0.025em;\n}\n.tina-tailwind .text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(86 81 101 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-700 {\n --tw-text-opacity: 1;\n color: rgb(67 62 82 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-blue-600 {\n --tw-text-opacity: 1;\n color: rgb(5 116 228 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(113 108 127 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-400 {\n --tw-text-opacity: 1;\n color: rgb(145 140 158 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-current {\n color: currentColor;\n}\n.tina-tailwind .text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-800 {\n --tw-text-opacity: 1;\n color: rgb(54 49 69 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(37 35 54 / var(--tw-text-opacity));\n}\n.tina-tailwind .text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity));\n}\n.tina-tailwind .underline {\n text-decoration-line: underline;\n}\n.tina-tailwind .opacity-100 {\n opacity: 1;\n}\n.tina-tailwind .opacity-0 {\n opacity: 0;\n}\n.tina-tailwind .opacity-80 {\n opacity: .8;\n}\n.tina-tailwind .opacity-90 {\n opacity: .9;\n}\n.tina-tailwind .opacity-50 {\n opacity: .5;\n}\n.tina-tailwind .opacity-70 {\n opacity: .7;\n}\n.tina-tailwind .shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);\n --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tina-tailwind .ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n.tina-tailwind .ring-black {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));\n}\n.tina-tailwind .ring-opacity-5 {\n --tw-ring-opacity: .05;\n}\n.tina-tailwind .filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.tina-tailwind .transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tina-tailwind .duration-300 {\n transition-duration: 300ms;\n}\n.tina-tailwind .duration-200 {\n transition-duration: 200ms;\n}\n.tina-tailwind .duration-150 {\n transition-duration: 150ms;\n}\n.tina-tailwind .duration-100 {\n transition-duration: 100ms;\n}\n.tina-tailwind .duration-75 {\n transition-duration: 75ms;\n}\n.tina-tailwind .ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n.tina-tailwind .ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n.tina-tailwind .icon-parent svg {\n fill: currentColor;\n }\n\n.tina-tailwind {\n font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";\n font-size: 16px;\n line-height: 1.5;\n --tw-text-opacity: 1;\n color: rgb(86 81 101 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:bg-blue-600:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(5 116 228 / var(--tw-bg-opacity));\n}\n\n.tina-tailwind .hover\\:text-blue-600:hover {\n --tw-text-opacity: 1;\n color: rgb(5 116 228 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:text-blue-400:hover {\n --tw-text-opacity: 1;\n color: rgb(34 150 254 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .hover\\:opacity-100:hover {\n opacity: 1;\n}\n\n.tina-tailwind .focus\\:text-blue-400:focus {\n --tw-text-opacity: 1;\n color: rgb(34 150 254 / var(--tw-text-opacity));\n}\n\n.tina-tailwind .focus\\:underline:focus {\n text-decoration-line: underline;\n}\n\n.tina-tailwind .focus\\:shadow-outline:focus {\n --tw-shadow: 0 0 0 3px rgba(66, 153, 225, 0.5);\n --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.tina-tailwind .focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.tina-tailwind .focus\\:ring-2:focus {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);\n}\n\n.tina-tailwind .focus\\:ring-blue-500:focus {\n --tw-ring-opacity: 1;\n --tw-ring-color: rgb(0 132 255 / var(--tw-ring-opacity));\n}\n';
2696
2747
  class ContentCreatorPlugin {
2697
2748
  constructor(options) {
2698
2749
  this.__type = "content-creator";
@@ -3357,13 +3408,46 @@ This will work when developing locally but NOT when deployed to production.
3357
3408
  }, [cms]);
3358
3409
  return { collections, loading, error };
3359
3410
  };
3411
+ function IoMdClose(props) {
3412
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 512 512" }, "child": [{ "tag": "path", "attr": { "d": "M405 136.798L375.202 107 256 226.202 136.798 107 107 136.798 226.202 256 107 375.202 136.798 405 256 285.798 375.202 405 405 375.202 285.798 256z" } }] })(props);
3413
+ }
3414
+ function BiEdit(props) {
3415
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "m7 17.013 4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z" } }, { "tag": "path", "attr": { "d": "M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z" } }] })(props);
3416
+ }
3417
+ function BiLeftArrowAlt(props) {
3418
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M12.707 17.293 8.414 13H18v-2H8.414l4.293-4.293-1.414-1.414L4.586 12l6.707 6.707z" } }] })(props);
3419
+ }
3420
+ function BiLogIn(props) {
3421
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "m13 16 5-4-5-4v3H4v2h9z" } }, { "tag": "path", "attr": { "d": "M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z" } }] })(props);
3422
+ }
3423
+ function BiLogOut(props) {
3424
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M16 13v-2H7V8l-5 4 5 4v-3z" } }, { "tag": "path", "attr": { "d": "M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z" } }] })(props);
3425
+ }
3426
+ function BiMenu(props) {
3427
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z" } }] })(props);
3428
+ }
3429
+ function BiPlus(props) {
3430
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z" } }] })(props);
3431
+ }
3432
+ function BiRightArrowAlt(props) {
3433
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "m11.293 17.293 1.414 1.414L19.414 12l-6.707-6.707-1.414 1.414L15.586 11H6v2h9.586z" } }] })(props);
3434
+ }
3435
+ function BiTrash(props) {
3436
+ return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M5 20a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8h2V6h-4V4a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v2H3v2h2zM9 4h6v2H9zM8 8h9v12H7V8z" } }, { "tag": "path", "attr": { "d": "M9 10h2v8H9zm4 0h2v8h-2z" } }] })(props);
3437
+ }
3360
3438
  const slugify = (text) => {
3361
3439
  return text.toString().toLowerCase().trim().replace(/[^\w\s-]/g, "").replace(/[\s_-]+/g, "_").replace(/^-+|-+$/g, "");
3362
3440
  };
3363
3441
  const Sidebar = ({ cms }) => {
3442
+ var _a, _b;
3364
3443
  const collectionsInfo = useGetCollections(cms);
3365
3444
  const screens = cms.plugins.getType("screen").all();
3366
- return /* @__PURE__ */ React__default["default"].createElement(toolkit.Nav, {
3445
+ const [menuIsOpen, setMenuIsOpen] = React__default["default"].useState(false);
3446
+ const isLocalMode = (_b = (_a = cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode;
3447
+ const navBreakpoint = 1e3;
3448
+ const windowWidth = windowSize.useWindowWidth();
3449
+ const renderDesktopNav = windowWidth > navBreakpoint;
3450
+ return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, renderDesktopNav && /* @__PURE__ */ React__default["default"].createElement(toolkit.Nav, {
3367
3451
  sidebarWidth: 360,
3368
3452
  showCollections: true,
3369
3453
  collectionsInfo,
@@ -3379,7 +3463,76 @@ This will work when developing locally but NOT when deployed to production.
3379
3463
  to: `collections/${collection.name}`,
3380
3464
  Icon: ImFilesEmpty
3381
3465
  })
3382
- });
3466
+ }), !renderDesktopNav && /* @__PURE__ */ React__default["default"].createElement(react.Transition, {
3467
+ show: menuIsOpen
3468
+ }, /* @__PURE__ */ React__default["default"].createElement(react.Transition.Child, {
3469
+ as: React__default["default"].Fragment,
3470
+ enter: "transform transition-all ease-out duration-300",
3471
+ enterFrom: "opacity-0 -translate-x-full",
3472
+ enterTo: "opacity-100 translate-x-0",
3473
+ leave: "transform transition-all ease-in duration-200",
3474
+ leaveFrom: "opacity-100 translate-x-0",
3475
+ leaveTo: "opacity-0 -translate-x-full"
3476
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
3477
+ className: "fixed left-0 top-0 z-overlay h-full transform"
3478
+ }, /* @__PURE__ */ React__default["default"].createElement(toolkit.Nav, {
3479
+ className: "rounded-r-md",
3480
+ sidebarWidth: 360,
3481
+ showCollections: true,
3482
+ collectionsInfo,
3483
+ screens,
3484
+ contentCreators: [],
3485
+ RenderNavSite: ({ view }) => /* @__PURE__ */ React__default["default"].createElement(SidebarLink, {
3486
+ label: view.name,
3487
+ to: `screens/${slugify(view.name)}`,
3488
+ Icon: view.Icon ? view.Icon : ImFilesEmpty,
3489
+ onClick: () => {
3490
+ setMenuIsOpen(false);
3491
+ }
3492
+ }),
3493
+ RenderNavCollection: ({ collection }) => /* @__PURE__ */ React__default["default"].createElement(SidebarLink, {
3494
+ label: collection.label ? collection.label : collection.name,
3495
+ to: `collections/${collection.name}`,
3496
+ Icon: ImFilesEmpty,
3497
+ onClick: () => {
3498
+ setMenuIsOpen(false);
3499
+ }
3500
+ })
3501
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
3502
+ className: "absolute top-8 right-0 transform translate-x-full overflow-hidden"
3503
+ }, /* @__PURE__ */ React__default["default"].createElement(toolkit.Button, {
3504
+ rounded: "right",
3505
+ variant: "secondary",
3506
+ onClick: () => {
3507
+ setMenuIsOpen(false);
3508
+ },
3509
+ className: `transition-opacity duration-150 ease-out`
3510
+ }, /* @__PURE__ */ React__default["default"].createElement(IoMdClose, {
3511
+ className: "h-6 w-auto"
3512
+ })))))), /* @__PURE__ */ React__default["default"].createElement(react.Transition.Child, {
3513
+ as: React__default["default"].Fragment,
3514
+ enter: "ease-out duration-300",
3515
+ enterFrom: "opacity-0",
3516
+ enterTo: "opacity-80",
3517
+ entered: "opacity-80",
3518
+ leave: "ease-in duration-200",
3519
+ leaveFrom: "opacity-80",
3520
+ leaveTo: "opacity-0"
3521
+ }, /* @__PURE__ */ React__default["default"].createElement("div", {
3522
+ onClick: () => {
3523
+ setMenuIsOpen(false);
3524
+ },
3525
+ className: "fixed z-menu inset-0 bg-gradient-to-br from-gray-800 via-gray-900 to-black"
3526
+ }))), !renderDesktopNav && /* @__PURE__ */ React__default["default"].createElement(toolkit.Button, {
3527
+ rounded: "right",
3528
+ variant: "secondary",
3529
+ onClick: () => {
3530
+ setMenuIsOpen(true);
3531
+ },
3532
+ className: `pointer-events-auto -ml-px absolute left-0 z-50 ${isLocalMode ? `top-10` : `top-4`}`
3533
+ }, /* @__PURE__ */ React__default["default"].createElement(BiMenu, {
3534
+ className: "h-7 w-auto"
3535
+ })));
3383
3536
  };
3384
3537
  const SidebarLink = (props) => {
3385
3538
  const { to, label, Icon } = props;
@@ -3387,6 +3540,8 @@ This will work when developing locally but NOT when deployed to production.
3387
3540
  className: ({ isActive }) => {
3388
3541
  return `text-base tracking-wide ${isActive ? "text-blue-600" : "text-gray-500"} hover:text-blue-600 flex items-center opacity-90 hover:opacity-100`;
3389
3542
  },
3543
+ onClick: props.onClick ? props.onClick : () => {
3544
+ },
3390
3545
  to
3391
3546
  }, /* @__PURE__ */ React__default["default"].createElement(Icon, {
3392
3547
  className: "mr-2 h-6 opacity-80 w-auto"
@@ -3400,21 +3555,6 @@ This will work when developing locally but NOT when deployed to production.
3400
3555
  return null;
3401
3556
  }
3402
3557
  };
3403
- function BiEdit(props) {
3404
- return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "m7 17.013 4.413-.015 9.632-9.54c.378-.378.586-.88.586-1.414s-.208-1.036-.586-1.414l-1.586-1.586c-.756-.756-2.075-.752-2.825-.003L7 12.583v4.43zM18.045 4.458l1.589 1.583-1.597 1.582-1.586-1.585 1.594-1.58zM9 13.417l6.03-5.973 1.586 1.586-6.029 5.971L9 15.006v-1.589z" } }, { "tag": "path", "attr": { "d": "M5 21h14c1.103 0 2-.897 2-2v-8.668l-2 2V19H8.158c-.026 0-.053.01-.079.01-.033 0-.066-.009-.1-.01H5V5h6.847l2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2z" } }] })(props);
3405
- }
3406
- function BiLogIn(props) {
3407
- return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "m13 16 5-4-5-4v3H4v2h9z" } }, { "tag": "path", "attr": { "d": "M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z" } }] })(props);
3408
- }
3409
- function BiLogOut(props) {
3410
- return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M16 13v-2H7V8l-5 4 5 4v-3z" } }, { "tag": "path", "attr": { "d": "M20 3h-9c-1.103 0-2 .897-2 2v4h2V5h9v14h-9v-4H9v4c0 1.103.897 2 2 2h9c1.103 0 2-.897 2-2V5c0-1.103-.897-2-2-2z" } }] })(props);
3411
- }
3412
- function BiPlus(props) {
3413
- return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z" } }] })(props);
3414
- }
3415
- function BiTrash(props) {
3416
- return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M5 20a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8h2V6h-4V4a2 2 0 0 0-2-2H9a2 2 0 0 0-2 2v2H3v2h2zM9 4h6v2H9zM8 8h9v12H7V8z" } }, { "tag": "path", "attr": { "d": "M9 10h2v8H9zm4 0h2v8h-2z" } }] })(props);
3417
- }
3418
3558
  function MdOutlineArrowBack(props) {
3419
3559
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "fill": "none", "d": "M0 0h24v24H0V0z" } }, { "tag": "path", "attr": { "d": "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z" } }] })(props);
3420
3560
  }
@@ -3635,7 +3775,7 @@ This will work when developing locally but NOT when deployed to production.
3635
3775
  fontWeight: "normal"
3636
3776
  }
3637
3777
  }, "Please wait, Tina is loading data..."))));
3638
- const useGetCollection = (cms, collectionName, includeDocuments = true) => {
3778
+ const useGetCollection = (cms, collectionName, includeDocuments = true, after = "") => {
3639
3779
  const api = new TinaAdminApi(cms);
3640
3780
  const [collection, setCollection] = React.useState(void 0);
3641
3781
  const [loading, setLoading] = React.useState(true);
@@ -3645,7 +3785,7 @@ This will work when developing locally but NOT when deployed to production.
3645
3785
  const fetchCollection = async () => {
3646
3786
  if (await api.isAuthenticated()) {
3647
3787
  try {
3648
- const collection2 = await api.fetchCollection(collectionName, includeDocuments);
3788
+ const collection2 = await api.fetchCollection(collectionName, includeDocuments, after);
3649
3789
  setCollection(collection2);
3650
3790
  } catch (error2) {
3651
3791
  cms.alerts.error(`[${error2.name}] GetCollection failed: ${error2.message}`, 30 * 1e3);
@@ -3658,7 +3798,7 @@ This will work when developing locally but NOT when deployed to production.
3658
3798
  };
3659
3799
  setLoading(true);
3660
3800
  fetchCollection();
3661
- }, [cms, collectionName, resetState]);
3801
+ }, [cms, collectionName, resetState, after]);
3662
3802
  const reFetchCollection = () => setResetSate((x) => x + 1);
3663
3803
  return { collection, loading, error, reFetchCollection };
3664
3804
  };
@@ -3666,9 +3806,10 @@ This will work when developing locally but NOT when deployed to production.
3666
3806
  cms,
3667
3807
  collectionName,
3668
3808
  includeDocuments = true,
3809
+ startCursor,
3669
3810
  children
3670
3811
  }) => {
3671
- const { collection, loading, error, reFetchCollection } = useGetCollection(cms, collectionName, includeDocuments);
3812
+ const { collection, loading, error, reFetchCollection } = useGetCollection(cms, collectionName, includeDocuments, startCursor || "");
3672
3813
  if (error) {
3673
3814
  return null;
3674
3815
  }
@@ -3677,6 +3818,148 @@ This will work when developing locally but NOT when deployed to production.
3677
3818
  }
3678
3819
  return /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, children(collection, loading, reFetchCollection));
3679
3820
  };
3821
+ const theme = styled.css`
3822
+ :root {
3823
+ --tina-color-primary-light: #2296fe;
3824
+ --tina-color-primary: #0084ff;
3825
+ --tina-color-primary-dark: #0574e4;
3826
+ --tina-color-error-light: #eb6337;
3827
+ --tina-color-error: #ec4815;
3828
+ --tina-color-error-dark: #dc4419;
3829
+ --tina-color-warning-light: #f5e06e;
3830
+ --tina-color-warning: #e9d050;
3831
+ --tina-color-warning-dark: #d3ba38;
3832
+ --tina-color-success-light: #57c355;
3833
+ --tina-color-success: #3cad3a;
3834
+ --tina-color-success-dark: #249a21;
3835
+ --tina-color-grey-0: #ffffff;
3836
+ --tina-color-grey-1: #f6f6f9;
3837
+ --tina-color-grey-2: #edecf3;
3838
+ --tina-color-grey-3: #e1ddec;
3839
+ --tina-color-grey-4: #b2adbe;
3840
+ --tina-color-grey-5: #918c9e;
3841
+ --tina-color-grey-6: #716c7f;
3842
+ --tina-color-grey-7: #565165;
3843
+ --tina-color-grey-8: #433e52;
3844
+ --tina-color-grey-9: #363145;
3845
+ --tina-color-grey-10: #252336;
3846
+ --tina-color-indicator: var(--tina-color-primary);
3847
+
3848
+ --tina-radius-small: 5px;
3849
+ --tina-radius-big: 24px;
3850
+
3851
+ --tina-padding-small: 12px;
3852
+ --tina-padding-big: 20px;
3853
+
3854
+ --tina-font-size-0: 12px;
3855
+ --tina-font-size-1: 13px;
3856
+ --tina-font-size-2: 15px;
3857
+ --tina-font-size-3: 16px;
3858
+ --tina-font-size-4: 18px;
3859
+ --tina-font-size-5: 20px;
3860
+ --tina-font-size-6: 22px;
3861
+ --tina-font-size-7: 26px;
3862
+ --tina-font-size-8: 32px;
3863
+
3864
+ --tina-font-family: 'Inter', sans-serif;
3865
+
3866
+ --tina-font-weight-regular: 400;
3867
+ --tina-font-weight-bold: 600;
3868
+
3869
+ --tina-shadow-big: 0px 2px 3px rgba(0, 0, 0, 0.05),
3870
+ 0 4px 12px rgba(0, 0, 0, 0.1);
3871
+ --tina-shadow-small: 0px 2px 3px rgba(0, 0, 0, 0.12);
3872
+
3873
+ --tina-timing-short: 85ms;
3874
+ --tina-timing-medium: 150ms;
3875
+ --tina-timing-long: 250ms;
3876
+
3877
+ --tina-z-index-0: 0;
3878
+ --tina-z-index-1: 10;
3879
+ --tina-z-index-2: 20;
3880
+ --tina-z-index-3: 30;
3881
+ --tina-z-index-4: 40;
3882
+ --tina-z-index-5: 50;
3883
+
3884
+ --tina-sidebar-width: 340px;
3885
+ --tina-sidebar-header-height: 60px;
3886
+ --tina-toolbar-height: 62px;
3887
+ }
3888
+ `;
3889
+ styled.createGlobalStyle`
3890
+ ${theme};
3891
+ `;
3892
+ const Button = (_g) => {
3893
+ var _h = _g, {
3894
+ variant = "secondary",
3895
+ as: Tag = "button",
3896
+ size = "medium",
3897
+ busy,
3898
+ disabled,
3899
+ rounded = "full",
3900
+ children,
3901
+ className
3902
+ } = _h, props = __objRest(_h, [
3903
+ "variant",
3904
+ "as",
3905
+ "size",
3906
+ "busy",
3907
+ "disabled",
3908
+ "rounded",
3909
+ "children",
3910
+ "className"
3911
+ ]);
3912
+ const baseClasses = "icon-parent inline-flex items-center font-medium focus:outline-none focus:ring-2 focus:shadow-outline text-center inline-flex justify-center transition-all duration-150 ease-out ";
3913
+ const variantClasses = {
3914
+ primary: `shadow text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500`,
3915
+ secondary: `shadow text-gray-500 hover:text-blue-500 bg-gray-50 hover:bg-white border border-gray-200`,
3916
+ white: `shadow text-gray-500 hover:text-blue-500 bg-white hover:bg-gray-50 border border-gray-200`,
3917
+ ghost: `text-gray-500 hover:text-blue-500 hover:shadow border border-transparent hover:border-gray-200 bg-transparent`,
3918
+ danger: `shadow text-white bg-red-500 hover:bg-red-600 focus:ring-red-500`
3919
+ };
3920
+ const state = busy ? `busy` : disabled ? `disabled` : `default`;
3921
+ const stateClasses = {
3922
+ disabled: `pointer-events-none opacity-30 cursor-not-allowed`,
3923
+ busy: `pointer-events-none opacity-70 cursor-wait`,
3924
+ default: ``
3925
+ };
3926
+ const roundedClasses = {
3927
+ full: `rounded-full`,
3928
+ left: `rounded-l-full`,
3929
+ right: `rounded-r-full`
3930
+ };
3931
+ const sizeClasses = {
3932
+ small: `text-xs h-8 px-3`,
3933
+ medium: `text-sm h-10 px-4`,
3934
+ custom: ``
3935
+ };
3936
+ return /* @__PURE__ */ React__namespace.createElement(Tag, __spreadValues({
3937
+ className: `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${stateClasses[state]} ${roundedClasses[rounded]} ${className}`
3938
+ }, props), children);
3939
+ };
3940
+ function CursorPaginator({
3941
+ navigateNext,
3942
+ navigatePrev,
3943
+ hasNext,
3944
+ hasPrev,
3945
+ variant = "secondary"
3946
+ }) {
3947
+ return /* @__PURE__ */ React__default["default"].createElement("div", {
3948
+ className: "w-full flex flex-shrink-0 justify-end gap-2 items-center"
3949
+ }, /* @__PURE__ */ React__default["default"].createElement(Button, {
3950
+ variant,
3951
+ disabled: !hasPrev,
3952
+ onClick: navigatePrev
3953
+ }, /* @__PURE__ */ React__default["default"].createElement(BiLeftArrowAlt, {
3954
+ className: "w-6 h-full mr-2 opacity-70"
3955
+ }), " Previous"), /* @__PURE__ */ React__default["default"].createElement(Button, {
3956
+ variant,
3957
+ disabled: !hasNext,
3958
+ onClick: navigateNext
3959
+ }, "Next ", /* @__PURE__ */ React__default["default"].createElement(BiRightArrowAlt, {
3960
+ className: "w-6 h-full ml-2 opacity-70"
3961
+ })));
3962
+ }
3680
3963
  const TemplateMenu = ({ templates }) => {
3681
3964
  return /* @__PURE__ */ React__default["default"].createElement(react.Menu, {
3682
3965
  as: "div",
@@ -3723,16 +4006,26 @@ This will work when developing locally but NOT when deployed to production.
3723
4006
  collection: collectionName,
3724
4007
  relativePath: ""
3725
4008
  });
4009
+ const [endCursor, setEndCursor] = React.useState("");
4010
+ const [prevCursors, setPrevCursors] = React.useState([]);
4011
+ const loc = reactRouterDom.useLocation();
4012
+ React.useEffect(() => {
4013
+ setEndCursor("");
4014
+ setPrevCursors([]);
4015
+ }, [loc]);
3726
4016
  return /* @__PURE__ */ React__default["default"].createElement(GetCMS, null, (cms) => {
3727
4017
  return /* @__PURE__ */ React__default["default"].createElement(GetCollection, {
3728
4018
  cms,
3729
4019
  collectionName,
3730
- includeDocuments: true
4020
+ includeDocuments: true,
4021
+ startCursor: endCursor
3731
4022
  }, (collection, _loading, reFetchCollection) => {
3732
4023
  var _a, _b;
3733
4024
  const totalCount = collection.documents.totalCount;
3734
4025
  const documents = collection.documents.edges;
3735
4026
  const admin = cms.api.admin;
4027
+ const pageInfo = collection.documents.pageInfo;
4028
+ const useDataFlag = cms.flags.get("experimentalData");
3736
4029
  return /* @__PURE__ */ React__default["default"].createElement(PageWrapper, null, /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, open && /* @__PURE__ */ React__default["default"].createElement(DeleteModal, {
3737
4030
  filename: vars.relativePath,
3738
4031
  deleteFunc: async () => {
@@ -3765,6 +4058,8 @@ This will work when developing locally but NOT when deployed to production.
3765
4058
  }, /* @__PURE__ */ React__default["default"].createElement("tbody", {
3766
4059
  className: "divide-y divide-gray-150"
3767
4060
  }, documents.map((document) => {
4061
+ var _a2;
4062
+ const hasTitle = Boolean(document.node._sys.title);
3768
4063
  const subfolders = document.node._sys.breadcrumbs.slice(0, -1).join("/");
3769
4064
  return /* @__PURE__ */ React__default["default"].createElement("tr", {
3770
4065
  key: `document-${document.node._sys.relativePath}`,
@@ -3780,11 +4075,17 @@ This will work when developing locally but NOT when deployed to production.
3780
4075
  className: "inline-block h-6 w-auto opacity-70"
3781
4076
  }), /* @__PURE__ */ React__default["default"].createElement("span", null, /* @__PURE__ */ React__default["default"].createElement("span", {
3782
4077
  className: "block text-xs text-gray-400 mb-1 uppercase"
3783
- }, "Filename"), /* @__PURE__ */ React__default["default"].createElement("span", {
4078
+ }, hasTitle ? "Title" : "Filename"), /* @__PURE__ */ React__default["default"].createElement("span", {
3784
4079
  className: "h-5 leading-5 block whitespace-nowrap"
3785
4080
  }, subfolders && /* @__PURE__ */ React__default["default"].createElement("span", {
3786
4081
  className: "text-xs text-gray-400"
3787
- }, `${subfolders}/`), /* @__PURE__ */ React__default["default"].createElement("span", null, document.node._sys.filename))))), /* @__PURE__ */ React__default["default"].createElement("td", {
4082
+ }, `${subfolders}/`), /* @__PURE__ */ React__default["default"].createElement("span", null, hasTitle ? (_a2 = document.node._sys) == null ? void 0 : _a2.title : document.node._sys.filename))))), hasTitle && /* @__PURE__ */ React__default["default"].createElement("td", {
4083
+ className: "px-6 py-4 whitespace-nowrap"
4084
+ }, /* @__PURE__ */ React__default["default"].createElement("span", {
4085
+ className: "block text-xs text-gray-400 mb-1 uppercase"
4086
+ }, "Filename"), /* @__PURE__ */ React__default["default"].createElement("span", {
4087
+ className: "h-5 leading-5 block text-sm font-medium text-gray-900"
4088
+ }, document.node._sys.filename)), /* @__PURE__ */ React__default["default"].createElement("td", {
3788
4089
  className: "px-6 py-4 whitespace-nowrap"
3789
4090
  }, /* @__PURE__ */ React__default["default"].createElement("span", {
3790
4091
  className: "block text-xs text-gray-400 mb-1 uppercase"
@@ -3827,7 +4128,26 @@ This will work when developing locally but NOT when deployed to production.
3827
4128
  }
3828
4129
  ]
3829
4130
  })));
3830
- })))))));
4131
+ }))), useDataFlag && /* @__PURE__ */ React__default["default"].createElement("div", {
4132
+ className: "pt-3"
4133
+ }, /* @__PURE__ */ React__default["default"].createElement(CursorPaginator, {
4134
+ variant: "white",
4135
+ hasNext: pageInfo == null ? void 0 : pageInfo.hasNextPage,
4136
+ navigateNext: () => {
4137
+ const newState = [...prevCursors, endCursor];
4138
+ setPrevCursors(newState);
4139
+ setEndCursor(pageInfo == null ? void 0 : pageInfo.endCursor);
4140
+ },
4141
+ hasPrev: prevCursors.length > 0,
4142
+ navigatePrev: () => {
4143
+ const prev = prevCursors[prevCursors.length - 1];
4144
+ if (typeof prev === "string") {
4145
+ const newState = prevCursors.slice(0, -1);
4146
+ setPrevCursors(newState);
4147
+ setEndCursor(prev);
4148
+ }
4149
+ }
4150
+ }))))));
3831
4151
  });
3832
4152
  });
3833
4153
  };
@@ -3944,8 +4264,12 @@ This will work when developing locally but NOT when deployed to production.
3944
4264
  }
3945
4265
  });
3946
4266
  }, [cms, collection, mutationInfo]);
4267
+ const navBreakpoint = 1e3;
4268
+ const windowWidth = windowSize.useWindowWidth();
4269
+ const renderNavToggle = windowWidth < navBreakpoint + 1;
4270
+ const headerPadding = renderNavToggle ? "px-20" : "px-6";
3947
4271
  return /* @__PURE__ */ React__default["default"].createElement(PageWrapper, null, /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default["default"].createElement(toolkit.LocalWarning, null), /* @__PURE__ */ React__default["default"].createElement("div", {
3948
- className: "py-4 px-20 border-b border-gray-200 bg-white"
4272
+ className: `py-4 border-b border-gray-200 bg-white ${headerPadding}`
3949
4273
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
3950
4274
  className: "max-w-form mx-auto"
3951
4275
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
@@ -4088,8 +4412,12 @@ This will work when developing locally but NOT when deployed to production.
4088
4412
  }
4089
4413
  });
4090
4414
  }, [cms, document, relativePath, collection, mutationInfo]);
4415
+ const navBreakpoint = 1e3;
4416
+ const windowWidth = windowSize.useWindowWidth();
4417
+ const renderNavToggle = windowWidth < navBreakpoint + 1;
4418
+ const headerPadding = renderNavToggle ? "px-20" : "px-6";
4091
4419
  return /* @__PURE__ */ React__default["default"].createElement(PageWrapper, null, /* @__PURE__ */ React__default["default"].createElement(React__default["default"].Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default["default"].createElement(toolkit.LocalWarning, null), /* @__PURE__ */ React__default["default"].createElement("div", {
4092
- className: "py-4 px-20 border-b border-gray-200 bg-white"
4420
+ className: `py-4 border-b border-gray-200 bg-white ${headerPadding}`
4093
4421
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
4094
4422
  className: "max-w-form mx-auto"
4095
4423
  }, /* @__PURE__ */ React__default["default"].createElement("div", {
@@ -4112,13 +4440,18 @@ This will work when developing locally but NOT when deployed to production.
4112
4440
  };
4113
4441
  const ScreenPage = () => {
4114
4442
  const { screenName } = reactRouterDom.useParams();
4443
+ const navBreakpoint = 1e3;
4444
+ const windowWidth = windowSize.useWindowWidth();
4445
+ const renderNavToggle = windowWidth < navBreakpoint + 1;
4115
4446
  return /* @__PURE__ */ React__default["default"].createElement(GetCMS, null, (cms) => {
4116
4447
  var _a, _b;
4117
4448
  const screens = cms.plugins.getType("screen").all();
4118
4449
  const selectedScreen = screens.find(({ name }) => slugify(name) === screenName);
4119
4450
  return /* @__PURE__ */ React__default["default"].createElement("div", {
4120
4451
  className: "relative w-full h-full flex flex-col items-stretch justify-between"
4121
- }, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default["default"].createElement(toolkit.LocalWarning, null), /* @__PURE__ */ React__default["default"].createElement("div", {
4452
+ }, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default["default"].createElement(toolkit.LocalWarning, null), renderNavToggle && /* @__PURE__ */ React__default["default"].createElement("div", {
4453
+ className: `py-5 border-b border-gray-200 bg-white pl-18`
4454
+ }, selectedScreen.name), /* @__PURE__ */ React__default["default"].createElement("div", {
4122
4455
  className: "flex-1 overflow-y-auto relative flex flex-col items-stretch justify-between"
4123
4456
  }, /* @__PURE__ */ React__default["default"].createElement(selectedScreen.Component, {
4124
4457
  close: () => {