tinacms 0.68.6 → 0.68.9

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.es.js CHANGED
@@ -29,20 +29,21 @@ var __objRest = (source, exclude) => {
29
29
  }
30
30
  return target;
31
31
  };
32
- import { useCMS, Form, GlobalFormPlugin, EventBus, Modal, ModalPopup, ModalHeader, ModalBody, ModalActions, Button, LoadingDots, useLocalStorage, TinaCMS, BranchSwitcherPlugin, BranchDataProvider, TinaProvider, Nav, LocalWarning, OverflowMenu, FormStatus, FormBuilder } from "@tinacms/toolkit";
32
+ import { useCMS, Form, GlobalFormPlugin, EventBus, Modal, ModalPopup, ModalHeader, ModalBody, ModalActions, Button as Button$1, LoadingDots, useLocalStorage, TinaCMS, BranchSwitcherPlugin, BranchDataProvider, TinaProvider, Nav, LocalWarning, OverflowMenu, FormStatus, FormBuilder } from "@tinacms/toolkit";
33
33
  export * from "@tinacms/toolkit";
34
34
  import * as G from "graphql";
35
35
  import { TypeInfo, visit, visitWithTypeInfo, getNamedType, GraphQLObjectType, isLeafType, GraphQLUnionType, isScalarType as isScalarType$1, getIntrospectionQuery, buildClientSchema, print, parse } from "graphql";
36
36
  import set from "lodash.set";
37
- import React, { useState, useCallback, useEffect, Fragment, useMemo } from "react";
37
+ import * as React from "react";
38
+ import React__default, { useState, useCallback, useEffect, Fragment, useMemo } from "react";
38
39
  import { getIn, setIn } from "final-form";
39
40
  import { resolveForm, TinaSchema, addNamespaceToSchema, validateSchema } from "@tinacms/schema-tools";
40
41
  import gql$1 from "graphql-tag";
41
42
  import * as yup from "yup";
42
- import styled from "styled-components";
43
+ import styled, { css, createGlobalStyle } from "styled-components";
43
44
  import { setEditing, TinaDataContext, useEditState } from "@tinacms/sharedctx";
44
45
  import UrlPattern from "url-pattern";
45
- import { NavLink, useNavigate, useParams, Link, HashRouter, Routes, Route } from "react-router-dom";
46
+ import { NavLink, useNavigate, useParams, useLocation, Link, HashRouter, Routes, Route } from "react-router-dom";
46
47
  import { Transition, Menu } from "@headlessui/react";
47
48
  import { useWindowWidth } from "@react-hook/window-size";
48
49
  function popupWindow(url, title, window2, w, h) {
@@ -1661,8 +1662,8 @@ const useFormify = ({
1661
1662
  formify: formifyFunc,
1662
1663
  eventList
1663
1664
  }) => {
1664
- const formIds = React.useRef([]);
1665
- const [state, dispatch] = React.useReducer(reducer, {
1665
+ const formIds = React__default.useRef([]);
1666
+ const [state, dispatch] = React__default.useReducer(reducer, {
1666
1667
  status: "idle",
1667
1668
  schema: void 0,
1668
1669
  query: query ? G.parse(query) : null,
@@ -1674,7 +1675,7 @@ const useFormify = ({
1674
1675
  formNodes: [],
1675
1676
  documentForms: []
1676
1677
  });
1677
- React.useEffect(() => {
1678
+ React__default.useEffect(() => {
1678
1679
  if (query) {
1679
1680
  dispatch({ type: "start", value: { query } });
1680
1681
  formIds.current.forEach((formId) => {
@@ -1685,7 +1686,7 @@ const useFormify = ({
1685
1686
  });
1686
1687
  }
1687
1688
  }, [query, JSON.stringify(variables)]);
1688
- React.useEffect(() => {
1689
+ React__default.useEffect(() => {
1689
1690
  if (state.status === "initialized") {
1690
1691
  cms.api.tina.request(query, { variables }).then((res) => {
1691
1692
  delete res.paths;
@@ -1693,7 +1694,7 @@ const useFormify = ({
1693
1694
  });
1694
1695
  }
1695
1696
  }, [state.status]);
1696
- React.useEffect(() => {
1697
+ React__default.useEffect(() => {
1697
1698
  const run = async () => {
1698
1699
  const schema = await cms.api.tina.getSchema();
1699
1700
  const result = await formify({
@@ -1710,7 +1711,7 @@ const useFormify = ({
1710
1711
  run();
1711
1712
  }
1712
1713
  }, [state.status]);
1713
- React.useEffect(() => {
1714
+ React__default.useEffect(() => {
1714
1715
  const run = async () => {
1715
1716
  const result = await cms.api.tina.request(G.print(state.query), {
1716
1717
  variables
@@ -1762,7 +1763,7 @@ const useFormify = ({
1762
1763
  run();
1763
1764
  }
1764
1765
  }, [state.status]);
1765
- React.useEffect(() => {
1766
+ React__default.useEffect(() => {
1766
1767
  if (state.status === "ready") {
1767
1768
  cms.events.subscribe(`forms:reset`, (event) => {
1768
1769
  if (eventList) {
@@ -1816,7 +1817,7 @@ const useFormify = ({
1816
1817
  dispatch({ type: "done" });
1817
1818
  }
1818
1819
  }, [state.status]);
1819
- React.useEffect(() => {
1820
+ React__default.useEffect(() => {
1820
1821
  state.changeSets.forEach((changeSet) => {
1821
1822
  if (changeSet.mutationType.type === "reset") {
1822
1823
  const form = cms.forms.find(changeSet.formId);
@@ -1912,10 +1913,10 @@ const useFormify = ({
1912
1913
  }
1913
1914
  });
1914
1915
  }, [state.changeSets.length]);
1915
- React.useEffect(() => {
1916
+ React__default.useEffect(() => {
1916
1917
  formIds.current = state.documentForms.map((df) => df.id);
1917
1918
  }, [state.documentForms.length]);
1918
- React.useEffect(() => {
1919
+ React__default.useEffect(() => {
1919
1920
  return () => {
1920
1921
  formIds.current.forEach((formId) => {
1921
1922
  const form = cms.forms.find(formId);
@@ -1925,7 +1926,7 @@ const useFormify = ({
1925
1926
  });
1926
1927
  };
1927
1928
  }, []);
1928
- const resolveSubFields = React.useCallback(async (args) => {
1929
+ const resolveSubFields = React__default.useCallback(async (args) => {
1929
1930
  const { form, formNode, prefix, loc } = args;
1930
1931
  const data = {};
1931
1932
  await sequential(form.fields, async (field) => {
@@ -2377,9 +2378,9 @@ class LocalClient extends Client {
2377
2378
  }
2378
2379
  }
2379
2380
  function ModalBuilder(modalProps) {
2380
- return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(ModalPopup, null, /* @__PURE__ */ React.createElement(ModalHeader, null, modalProps.title), /* @__PURE__ */ React.createElement(ModalBody, {
2381
+ return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(ModalPopup, null, /* @__PURE__ */ React__default.createElement(ModalHeader, null, modalProps.title), /* @__PURE__ */ React__default.createElement(ModalBody, {
2381
2382
  padded: true
2382
- }, /* @__PURE__ */ React.createElement("p", null, modalProps.message), modalProps.error && /* @__PURE__ */ React.createElement(ErrorLabel, null, modalProps.error)), /* @__PURE__ */ React.createElement(ModalActions, null, modalProps.actions.map((action) => /* @__PURE__ */ React.createElement(AsyncButton, __spreadValues({
2383
+ }, /* @__PURE__ */ React__default.createElement("p", null, modalProps.message), modalProps.error && /* @__PURE__ */ React__default.createElement(ErrorLabel, null, modalProps.error)), /* @__PURE__ */ React__default.createElement(ModalActions, null, modalProps.actions.map((action) => /* @__PURE__ */ React__default.createElement(AsyncButton, __spreadValues({
2383
2384
  key: action.name
2384
2385
  }, action))))));
2385
2386
  }
@@ -2398,12 +2399,12 @@ const AsyncButton = ({ name, primary, action }) => {
2398
2399
  throw e;
2399
2400
  }
2400
2401
  }, [action, setSubmitting]);
2401
- return /* @__PURE__ */ React.createElement(Button, {
2402
+ return /* @__PURE__ */ React__default.createElement(Button$1, {
2402
2403
  variant: primary ? "primary" : "secondary",
2403
2404
  onClick,
2404
2405
  busy: submitting,
2405
2406
  disabled: submitting
2406
- }, submitting && /* @__PURE__ */ React.createElement(LoadingDots, null), !submitting && name);
2407
+ }, submitting && /* @__PURE__ */ React__default.createElement(LoadingDots, null), !submitting && name);
2407
2408
  };
2408
2409
  const TINA_AUTH_CONFIG = "tina_auth_config";
2409
2410
  const useTinaAuthRedirect = () => {
@@ -2449,19 +2450,25 @@ class TinaAdminApi {
2449
2450
  }
2450
2451
  }`, { variables: { collection, relativePath } });
2451
2452
  }
2452
- async fetchCollection(collectionName, includeDocuments) {
2453
+ async fetchCollection(collectionName, includeDocuments, after) {
2453
2454
  if (includeDocuments === true) {
2454
2455
  if (this.useDataLayer) {
2455
2456
  const sort = this.schema.getIsTitleFieldName(collectionName);
2456
2457
  const response = await this.api.request(`#graphql
2457
- query($collection: String!, $includeDocuments: Boolean!, $sort: String){
2458
+ query($collection: String!, $includeDocuments: Boolean!, $sort: String, $limit: Float, $after: String){
2458
2459
  collection(collection: $collection){
2459
2460
  name
2460
2461
  label
2461
2462
  format
2462
2463
  templates
2463
- documents(sort: $sort) @include(if: $includeDocuments) {
2464
+ documents(sort: $sort, after: $after, first: $limit) @include(if: $includeDocuments) {
2464
2465
  totalCount
2466
+ pageInfo {
2467
+ hasPreviousPage
2468
+ hasNextPage
2469
+ startCursor
2470
+ endCursor
2471
+ }
2465
2472
  edges {
2466
2473
  node {
2467
2474
  ... on Document {
@@ -2480,7 +2487,15 @@ class TinaAdminApi {
2480
2487
  }
2481
2488
  }
2482
2489
  }
2483
- }`, { variables: { collection: collectionName, includeDocuments, sort } });
2490
+ }`, {
2491
+ variables: {
2492
+ collection: collectionName,
2493
+ includeDocuments,
2494
+ sort,
2495
+ limit: 10,
2496
+ after
2497
+ }
2498
+ });
2484
2499
  return response.collection;
2485
2500
  } else {
2486
2501
  const response = await this.api.request(`#graphql
@@ -2496,7 +2511,6 @@ class TinaAdminApi {
2496
2511
  node {
2497
2512
  ... on Document {
2498
2513
  _sys {
2499
- # TODO: only include title if we need to
2500
2514
  template
2501
2515
  breadcrumbs
2502
2516
  path
@@ -2581,7 +2595,7 @@ const AuthWallInner = ({
2581
2595
  const client = cms.api.tina;
2582
2596
  const [activeModal, setActiveModal] = useState(null);
2583
2597
  const [showChildren, setShowChildren] = useState(false);
2584
- React.useEffect(() => {
2598
+ React__default.useEffect(() => {
2585
2599
  client.isAuthenticated().then((isAuthenticated) => {
2586
2600
  if (isAuthenticated) {
2587
2601
  setShowChildren(true);
@@ -2606,7 +2620,7 @@ const AuthWallInner = ({
2606
2620
  setActiveModal(null);
2607
2621
  }
2608
2622
  }) : [];
2609
- return /* @__PURE__ */ React.createElement(React.Fragment, null, activeModal === "authenticate" && /* @__PURE__ */ React.createElement(ModalBuilder, {
2623
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, activeModal === "authenticate" && /* @__PURE__ */ React__default.createElement(ModalBuilder, {
2610
2624
  title: "Tina Cloud Authorization",
2611
2625
  message: "To save edits, Tina Cloud authorization is required. On save, changes will get commited using your account.",
2612
2626
  close,
@@ -2635,7 +2649,7 @@ const TinaCloudProvider = (props) => {
2635
2649
  const baseBranch = props.branch || "main";
2636
2650
  const [currentBranch, setCurrentBranch] = useLocalStorage("tinacms-current-branch", baseBranch);
2637
2651
  useTinaAuthRedirect();
2638
- const cms = React.useMemo(() => props.cms || new TinaCMS({
2652
+ const cms = React__default.useMemo(() => props.cms || new TinaCMS({
2639
2653
  enabled: true,
2640
2654
  sidebar: true
2641
2655
  }), [props.cms]);
@@ -2671,15 +2685,15 @@ const TinaCloudProvider = (props) => {
2671
2685
  return newBranch;
2672
2686
  };
2673
2687
  setupMedia();
2674
- const [branchingEnabled, setBranchingEnabled] = React.useState(() => cms.flags.get("branch-switcher"));
2675
- React.useEffect(() => {
2688
+ const [branchingEnabled, setBranchingEnabled] = React__default.useState(() => cms.flags.get("branch-switcher"));
2689
+ React__default.useEffect(() => {
2676
2690
  cms.events.subscribe("flag:set", ({ key, value }) => {
2677
2691
  if (key === "branch-switcher") {
2678
2692
  setBranchingEnabled(value);
2679
2693
  }
2680
2694
  });
2681
2695
  }, [cms.events]);
2682
- React.useEffect(() => {
2696
+ React__default.useEffect(() => {
2683
2697
  let branchSwitcher;
2684
2698
  if (branchingEnabled) {
2685
2699
  branchSwitcher = new BranchSwitcherPlugin({
@@ -2694,24 +2708,902 @@ const TinaCloudProvider = (props) => {
2694
2708
  }
2695
2709
  };
2696
2710
  }, [branchingEnabled, props.branch]);
2697
- React.useEffect(() => {
2711
+ React__default.useEffect(() => {
2698
2712
  if (props.cmsCallback) {
2699
2713
  props.cmsCallback(cms);
2700
2714
  }
2701
2715
  }, []);
2702
- return /* @__PURE__ */ React.createElement(BranchDataProvider, {
2716
+ return /* @__PURE__ */ React__default.createElement(BranchDataProvider, {
2703
2717
  currentBranch,
2704
2718
  setCurrentBranch: (b) => {
2705
2719
  setCurrentBranch(b);
2706
2720
  }
2707
- }, /* @__PURE__ */ React.createElement(TinaProvider, {
2721
+ }, /* @__PURE__ */ React__default.createElement(TinaProvider, {
2708
2722
  cms
2709
- }, /* @__PURE__ */ React.createElement(AuthWallInner, __spreadProps(__spreadValues({}, props), {
2723
+ }, /* @__PURE__ */ React__default.createElement(AuthWallInner, __spreadProps(__spreadValues({}, props), {
2710
2724
  cms
2711
2725
  }))));
2712
2726
  };
2713
2727
  const TinaCloudAuthWall = TinaCloudProvider;
2714
- 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 .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';
2728
+ var styles = `.tina-tailwind {
2729
+ line-height: 1.5;
2730
+ -webkit-text-size-adjust: 100%;
2731
+ -moz-tab-size: 4;
2732
+ tab-size: 4;
2733
+ }
2734
+
2735
+ .tina-tailwind *,
2736
+ .tina-tailwind ::before,
2737
+ .tina-tailwind ::after {
2738
+ box-sizing: border-box;
2739
+ border-width: 0;
2740
+ border-style: solid;
2741
+ border-color: transparent;
2742
+ }
2743
+
2744
+ .tina-tailwind ::before,
2745
+ .tina-tailwind ::after {
2746
+ --tw-content: '';
2747
+ }
2748
+
2749
+ .tina-tailwind hr {
2750
+ height: 0; /* 1 */
2751
+ color: inherit; /* 2 */
2752
+ border-top-width: 1px; /* 3 */
2753
+ }
2754
+
2755
+ .tina-tailwind abbr:where([title]) {
2756
+ text-decoration: underline dotted;
2757
+ }
2758
+
2759
+ .tina-tailwind h1,
2760
+ .tina-tailwind h2,
2761
+ .tina-tailwind h3,
2762
+ .tina-tailwind h4,
2763
+ .tina-tailwind h5,
2764
+ .tina-tailwind h6 {
2765
+ font-size: inherit;
2766
+ font-weight: inherit;
2767
+ }
2768
+
2769
+ .tina-tailwind a {
2770
+ color: inherit;
2771
+ text-decoration: inherit;
2772
+ }
2773
+
2774
+ .tina-tailwind b,
2775
+ .tina-tailwind strong {
2776
+ font-weight: bolder;
2777
+ }
2778
+
2779
+ .tina-tailwind code,
2780
+ .tina-tailwind kbd,
2781
+ .tina-tailwind samp,
2782
+ .tina-tailwind pre {
2783
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
2784
+ font-size: 1em; /* 2 */
2785
+ }
2786
+
2787
+ .tina-tailwind small {
2788
+ font-size: 80%;
2789
+ }
2790
+
2791
+ .tina-tailwind sub,
2792
+ .tina-tailwind sup {
2793
+ font-size: 75%;
2794
+ line-height: 0;
2795
+ position: relative;
2796
+ vertical-align: baseline;
2797
+ }
2798
+
2799
+ .tina-tailwind sub {
2800
+ bottom: -0.25em;
2801
+ }
2802
+
2803
+ .tina-tailwind sup {
2804
+ top: -0.5em;
2805
+ }
2806
+
2807
+ .tina-tailwind table {
2808
+ text-indent: 0; /* 1 */
2809
+ border-color: inherit; /* 2 */
2810
+ border-collapse: collapse; /* 3 */
2811
+ }
2812
+
2813
+ .tina-tailwind button,
2814
+ .tina-tailwind input,
2815
+ .tina-tailwind optgroup,
2816
+ .tina-tailwind select,
2817
+ .tina-tailwind textarea {
2818
+ font-family: inherit; /* 1 */
2819
+ font-size: 100%; /* 1 */
2820
+ line-height: inherit; /* 1 */
2821
+ color: inherit; /* 1 */
2822
+ margin: 0; /* 2 */
2823
+ padding: 0; /* 3 */
2824
+ }
2825
+
2826
+ .tina-tailwind button,
2827
+ .tina-tailwind select {
2828
+ text-transform: none;
2829
+ }
2830
+
2831
+ .tina-tailwind button,
2832
+ .tina-tailwind [type='button'],
2833
+ .tina-tailwind [type='reset'],
2834
+ .tina-tailwind [type='submit'] {
2835
+ -webkit-appearance: button; /* 1 */
2836
+ background-color: transparent; /* 2 */
2837
+ background-image: none; /* 2 */
2838
+ }
2839
+
2840
+ .tina-tailwind :-moz-focusring {
2841
+ outline: auto;
2842
+ }
2843
+
2844
+ .tina-tailwind :-moz-ui-invalid {
2845
+ box-shadow: none;
2846
+ }
2847
+
2848
+ .tina-tailwind progress {
2849
+ vertical-align: baseline;
2850
+ }
2851
+
2852
+ .tina-tailwind ::-webkit-inner-spin-button,
2853
+ .tina-tailwind ::-webkit-outer-spin-button {
2854
+ height: auto;
2855
+ }
2856
+
2857
+ .tina-tailwind [type='search'] {
2858
+ -webkit-appearance: textfield; /* 1 */
2859
+ outline-offset: -2px; /* 2 */
2860
+ }
2861
+
2862
+ .tina-tailwind ::-webkit-search-decoration {
2863
+ -webkit-appearance: none;
2864
+ }
2865
+
2866
+ .tina-tailwind ::-webkit-file-upload-button {
2867
+ -webkit-appearance: button; /* 1 */
2868
+ font: inherit; /* 2 */
2869
+ }
2870
+
2871
+ .tina-tailwind summary {
2872
+ display: list-item;
2873
+ }
2874
+
2875
+ .tina-tailwind blockquote,
2876
+ .tina-tailwind dl,
2877
+ .tina-tailwind dd,
2878
+ .tina-tailwind h1,
2879
+ .tina-tailwind h2,
2880
+ .tina-tailwind h3,
2881
+ .tina-tailwind h4,
2882
+ .tina-tailwind h5,
2883
+ .tina-tailwind h6,
2884
+ .tina-tailwind hr,
2885
+ .tina-tailwind figure,
2886
+ .tina-tailwind p,
2887
+ .tina-tailwind pre {
2888
+ margin: 0;
2889
+ }
2890
+
2891
+ .tina-tailwind fieldset {
2892
+ margin: 0;
2893
+ padding: 0;
2894
+ }
2895
+
2896
+ .tina-tailwind legend {
2897
+ padding: 0;
2898
+ }
2899
+
2900
+ .tina-tailwind ol,
2901
+ .tina-tailwind ul,
2902
+ .tina-tailwind menu {
2903
+ list-style: none;
2904
+ margin: 0;
2905
+ padding: 0;
2906
+ }
2907
+
2908
+ .tina-tailwind li:before {
2909
+ display: none;
2910
+ }
2911
+
2912
+ .tina-tailwind textarea {
2913
+ resize: vertical;
2914
+ }
2915
+
2916
+ .tina-tailwind input::placeholder,
2917
+ .tina-tailwind textarea::placeholder {
2918
+ opacity: 1; /* 1 */
2919
+ color: #918c9e; /* 2 */
2920
+ }
2921
+
2922
+ .tina-tailwind button,
2923
+ .tina-tailwind [role='button'] {
2924
+ cursor: pointer;
2925
+ }
2926
+
2927
+ .tina-tailwind :disabled {
2928
+ cursor: default;
2929
+ }
2930
+
2931
+ .tina-tailwind img,
2932
+ .tina-tailwind svg,
2933
+ .tina-tailwind video,
2934
+ .tina-tailwind canvas,
2935
+ .tina-tailwind audio,
2936
+ .tina-tailwind iframe,
2937
+ .tina-tailwind embed,
2938
+ .tina-tailwind object {
2939
+ display: block; /* 1 */
2940
+ vertical-align: middle; /* 2 */
2941
+ }
2942
+
2943
+ .tina-tailwind img,
2944
+ .tina-tailwind video {
2945
+ max-width: 100%;
2946
+ height: auto;
2947
+ }
2948
+
2949
+ .tina-tailwind [hidden] {
2950
+ display: none;
2951
+ }
2952
+ *, ::before, ::after {
2953
+ --tw-translate-x: 0;
2954
+ --tw-translate-y: 0;
2955
+ --tw-rotate: 0;
2956
+ --tw-skew-x: 0;
2957
+ --tw-skew-y: 0;
2958
+ --tw-scale-x: 1;
2959
+ --tw-scale-y: 1;
2960
+ --tw-pan-x: ;
2961
+ --tw-pan-y: ;
2962
+ --tw-pinch-zoom: ;
2963
+ --tw-scroll-snap-strictness: proximity;
2964
+ --tw-ordinal: ;
2965
+ --tw-slashed-zero: ;
2966
+ --tw-numeric-figure: ;
2967
+ --tw-numeric-spacing: ;
2968
+ --tw-numeric-fraction: ;
2969
+ --tw-ring-inset: ;
2970
+ --tw-ring-offset-width: 0px;
2971
+ --tw-ring-offset-color: #fff;
2972
+ --tw-ring-color: rgb(0 132 255 / 0.5);
2973
+ --tw-ring-offset-shadow: 0 0 #0000;
2974
+ --tw-ring-shadow: 0 0 #0000;
2975
+ --tw-shadow: 0 0 #0000;
2976
+ --tw-shadow-colored: 0 0 #0000;
2977
+ --tw-blur: ;
2978
+ --tw-brightness: ;
2979
+ --tw-contrast: ;
2980
+ --tw-grayscale: ;
2981
+ --tw-hue-rotate: ;
2982
+ --tw-invert: ;
2983
+ --tw-saturate: ;
2984
+ --tw-sepia: ;
2985
+ --tw-drop-shadow: ;
2986
+ --tw-backdrop-blur: ;
2987
+ --tw-backdrop-brightness: ;
2988
+ --tw-backdrop-contrast: ;
2989
+ --tw-backdrop-grayscale: ;
2990
+ --tw-backdrop-hue-rotate: ;
2991
+ --tw-backdrop-invert: ;
2992
+ --tw-backdrop-opacity: ;
2993
+ --tw-backdrop-saturate: ;
2994
+ --tw-backdrop-sepia: ;
2995
+ }
2996
+ .tina-tailwind .pointer-events-auto {
2997
+ pointer-events: auto;
2998
+ }
2999
+ .tina-tailwind .static {
3000
+ position: static;
3001
+ }
3002
+ .tina-tailwind .fixed {
3003
+ position: fixed;
3004
+ }
3005
+ .tina-tailwind .absolute {
3006
+ position: absolute;
3007
+ }
3008
+ .tina-tailwind .relative {
3009
+ position: relative;
3010
+ }
3011
+ .tina-tailwind .inset-0 {
3012
+ top: 0px;
3013
+ right: 0px;
3014
+ bottom: 0px;
3015
+ left: 0px;
3016
+ }
3017
+ .tina-tailwind .left-0 {
3018
+ left: 0px;
3019
+ }
3020
+ .tina-tailwind .top-0 {
3021
+ top: 0px;
3022
+ }
3023
+ .tina-tailwind .top-8 {
3024
+ top: 32px;
3025
+ }
3026
+ .tina-tailwind .right-0 {
3027
+ right: 0px;
3028
+ }
3029
+ .tina-tailwind .top-10 {
3030
+ top: 40px;
3031
+ }
3032
+ .tina-tailwind .top-4 {
3033
+ top: 16px;
3034
+ }
3035
+ .tina-tailwind .z-overlay {
3036
+ z-index: 10600;
3037
+ }
3038
+ .tina-tailwind .z-menu {
3039
+ z-index: 9800;
3040
+ }
3041
+ .tina-tailwind .z-50 {
3042
+ z-index: 50;
3043
+ }
3044
+ .tina-tailwind .mx-auto {
3045
+ margin-left: auto;
3046
+ margin-right: auto;
3047
+ }
3048
+ .tina-tailwind .-ml-px {
3049
+ margin-left: -1px;
3050
+ }
3051
+ .tina-tailwind .mr-2 {
3052
+ margin-right: 8px;
3053
+ }
3054
+ .tina-tailwind .mb-2 {
3055
+ margin-bottom: 8px;
3056
+ }
3057
+ .tina-tailwind .mb-1 {
3058
+ margin-bottom: 4px;
3059
+ }
3060
+ .tina-tailwind .-mt-0\\.5 {
3061
+ margin-top: -2px;
3062
+ }
3063
+ .tina-tailwind .-mt-0 {
3064
+ margin-top: -0px;
3065
+ }
3066
+ .tina-tailwind .ml-1 {
3067
+ margin-left: 4px;
3068
+ }
3069
+ .tina-tailwind .mt-2 {
3070
+ margin-top: 8px;
3071
+ }
3072
+ .tina-tailwind .mr-1\\.5 {
3073
+ margin-right: 6px;
3074
+ }
3075
+ .tina-tailwind .mr-1 {
3076
+ margin-right: 4px;
3077
+ }
3078
+ .tina-tailwind .block {
3079
+ display: block;
3080
+ }
3081
+ .tina-tailwind .inline-block {
3082
+ display: inline-block;
3083
+ }
3084
+ .tina-tailwind .inline {
3085
+ display: inline;
3086
+ }
3087
+ .tina-tailwind .flex {
3088
+ display: flex;
3089
+ }
3090
+ .tina-tailwind .inline-flex {
3091
+ display: inline-flex;
3092
+ }
3093
+ .tina-tailwind .table {
3094
+ display: table;
3095
+ }
3096
+ .tina-tailwind .h-screen {
3097
+ height: 100vh;
3098
+ }
3099
+ .tina-tailwind .h-auto {
3100
+ height: auto;
3101
+ }
3102
+ .tina-tailwind .h-full {
3103
+ height: 100%;
3104
+ }
3105
+ .tina-tailwind .h-6 {
3106
+ height: 24px;
3107
+ }
3108
+ .tina-tailwind .h-7 {
3109
+ height: 28px;
3110
+ }
3111
+ .tina-tailwind .h-10 {
3112
+ height: 40px;
3113
+ }
3114
+ .tina-tailwind .h-5 {
3115
+ height: 20px;
3116
+ }
3117
+ .tina-tailwind .h-12 {
3118
+ height: 48px;
3119
+ }
3120
+ .tina-tailwind .w-full {
3121
+ width: 100%;
3122
+ }
3123
+ .tina-tailwind .w-10 {
3124
+ width: 40px;
3125
+ }
3126
+ .tina-tailwind .w-auto {
3127
+ width: auto;
3128
+ }
3129
+ .tina-tailwind .w-5 {
3130
+ width: 20px;
3131
+ }
3132
+ .tina-tailwind .w-56 {
3133
+ width: 224px;
3134
+ }
3135
+ .tina-tailwind .w-0 {
3136
+ width: 0px;
3137
+ }
3138
+ .tina-tailwind .w-6 {
3139
+ width: 24px;
3140
+ }
3141
+ .tina-tailwind .max-w-lg {
3142
+ max-width: 32rem;
3143
+ }
3144
+ .tina-tailwind .max-w-screen-xl {
3145
+ max-width: 1280px;
3146
+ }
3147
+ .tina-tailwind .max-w-form {
3148
+ max-width: 900px;
3149
+ }
3150
+ .tina-tailwind .max-w-full {
3151
+ max-width: 100%;
3152
+ }
3153
+ .tina-tailwind .flex-1 {
3154
+ flex: 1 1 0%;
3155
+ }
3156
+ .tina-tailwind .flex-shrink-0 {
3157
+ flex-shrink: 0;
3158
+ }
3159
+ .tina-tailwind .flex-grow-0 {
3160
+ flex-grow: 0;
3161
+ }
3162
+ .tina-tailwind .table-auto {
3163
+ table-layout: auto;
3164
+ }
3165
+ .tina-tailwind .origin-top-right {
3166
+ transform-origin: top right;
3167
+ }
3168
+ .tina-tailwind .-translate-x-full {
3169
+ --tw-translate-x: -100%;
3170
+ 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));
3171
+ }
3172
+ .tina-tailwind .translate-x-0 {
3173
+ --tw-translate-x: 0px;
3174
+ 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));
3175
+ }
3176
+ .tina-tailwind .translate-x-full {
3177
+ --tw-translate-x: 100%;
3178
+ 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));
3179
+ }
3180
+ .tina-tailwind .scale-95 {
3181
+ --tw-scale-x: .95;
3182
+ --tw-scale-y: .95;
3183
+ 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));
3184
+ }
3185
+ .tina-tailwind .scale-100 {
3186
+ --tw-scale-x: 1;
3187
+ --tw-scale-y: 1;
3188
+ 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));
3189
+ }
3190
+ .tina-tailwind .transform {
3191
+ 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));
3192
+ }
3193
+ .tina-tailwind .cursor-pointer {
3194
+ cursor: pointer;
3195
+ }
3196
+ .tina-tailwind .flex-col {
3197
+ flex-direction: column;
3198
+ }
3199
+ .tina-tailwind .items-end {
3200
+ align-items: flex-end;
3201
+ }
3202
+ .tina-tailwind .items-center {
3203
+ align-items: center;
3204
+ }
3205
+ .tina-tailwind .items-stretch {
3206
+ align-items: stretch;
3207
+ }
3208
+ .tina-tailwind .justify-end {
3209
+ justify-content: flex-end;
3210
+ }
3211
+ .tina-tailwind .justify-center {
3212
+ justify-content: center;
3213
+ }
3214
+ .tina-tailwind .justify-between {
3215
+ justify-content: space-between;
3216
+ }
3217
+ .tina-tailwind .gap-0\\.5 {
3218
+ gap: 2px;
3219
+ }
3220
+ .tina-tailwind .gap-0 {
3221
+ gap: 0px;
3222
+ }
3223
+ .tina-tailwind .gap-4 {
3224
+ gap: 16px;
3225
+ }
3226
+ .tina-tailwind .gap-3 {
3227
+ gap: 12px;
3228
+ }
3229
+ .tina-tailwind .divide-y > :not([hidden]) ~ :not([hidden]) {
3230
+ --tw-divide-y-reverse: 0;
3231
+ border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
3232
+ border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
3233
+ }
3234
+ .tina-tailwind .divide-gray-150 > :not([hidden]) ~ :not([hidden]) {
3235
+ --tw-divide-opacity: 1;
3236
+ border-color: rgb(230 227 239 / var(--tw-divide-opacity));
3237
+ }
3238
+ .tina-tailwind .overflow-hidden {
3239
+ overflow: hidden;
3240
+ }
3241
+ .tina-tailwind .overflow-y-auto {
3242
+ overflow-y: auto;
3243
+ }
3244
+ .tina-tailwind .whitespace-nowrap {
3245
+ white-space: nowrap;
3246
+ }
3247
+ .tina-tailwind .rounded-lg {
3248
+ border-radius: 8px;
3249
+ }
3250
+ .tina-tailwind .rounded {
3251
+ border-radius: 4px;
3252
+ }
3253
+ .tina-tailwind .rounded-full {
3254
+ border-radius: 9999px;
3255
+ }
3256
+ .tina-tailwind .rounded-md {
3257
+ border-radius: 6px;
3258
+ }
3259
+ .tina-tailwind .rounded-r-md {
3260
+ border-top-right-radius: 6px;
3261
+ border-bottom-right-radius: 6px;
3262
+ }
3263
+ .tina-tailwind .border {
3264
+ border-width: 1px;
3265
+ }
3266
+ .tina-tailwind .border-b {
3267
+ border-bottom-width: 1px;
3268
+ }
3269
+ .tina-tailwind .border-gray-150 {
3270
+ --tw-border-opacity: 1;
3271
+ border-color: rgb(230 227 239 / var(--tw-border-opacity));
3272
+ }
3273
+ .tina-tailwind .border-gray-200 {
3274
+ --tw-border-opacity: 1;
3275
+ border-color: rgb(225 221 236 / var(--tw-border-opacity));
3276
+ }
3277
+ .tina-tailwind .bg-white {
3278
+ --tw-bg-opacity: 1;
3279
+ background-color: rgb(255 255 255 / var(--tw-bg-opacity));
3280
+ }
3281
+ .tina-tailwind .bg-gray-50 {
3282
+ --tw-bg-opacity: 1;
3283
+ background-color: rgb(246 246 249 / var(--tw-bg-opacity));
3284
+ }
3285
+ .tina-tailwind .bg-blue-500 {
3286
+ --tw-bg-opacity: 1;
3287
+ background-color: rgb(0 132 255 / var(--tw-bg-opacity));
3288
+ }
3289
+ .tina-tailwind .bg-gradient-to-b {
3290
+ background-image: linear-gradient(to bottom, var(--tw-gradient-stops));
3291
+ }
3292
+ .tina-tailwind .bg-gradient-to-br {
3293
+ background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
3294
+ }
3295
+ .tina-tailwind .from-blue-900 {
3296
+ --tw-gradient-from: #1D2C6C;
3297
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(29 44 108 / 0));
3298
+ }
3299
+ .tina-tailwind .from-gray-800 {
3300
+ --tw-gradient-from: #363145;
3301
+ --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(54 49 69 / 0));
3302
+ }
3303
+ .tina-tailwind .via-gray-900 {
3304
+ --tw-gradient-stops: var(--tw-gradient-from), #252336, var(--tw-gradient-to, rgb(37 35 54 / 0));
3305
+ }
3306
+ .tina-tailwind .to-gray-900 {
3307
+ --tw-gradient-to: #252336;
3308
+ }
3309
+ .tina-tailwind .to-black {
3310
+ --tw-gradient-to: #000;
3311
+ }
3312
+ .tina-tailwind .px-4 {
3313
+ padding-left: 16px;
3314
+ padding-right: 16px;
3315
+ }
3316
+ .tina-tailwind .py-6 {
3317
+ padding-top: 24px;
3318
+ padding-bottom: 24px;
3319
+ }
3320
+ .tina-tailwind .px-5 {
3321
+ padding-left: 20px;
3322
+ padding-right: 20px;
3323
+ }
3324
+ .tina-tailwind .py-4 {
3325
+ padding-top: 16px;
3326
+ padding-bottom: 16px;
3327
+ }
3328
+ .tina-tailwind .px-12 {
3329
+ padding-left: 48px;
3330
+ padding-right: 48px;
3331
+ }
3332
+ .tina-tailwind .py-10 {
3333
+ padding-top: 40px;
3334
+ padding-bottom: 40px;
3335
+ }
3336
+ .tina-tailwind .px-20 {
3337
+ padding-left: 80px;
3338
+ padding-right: 80px;
3339
+ }
3340
+ .tina-tailwind .px-6 {
3341
+ padding-left: 24px;
3342
+ padding-right: 24px;
3343
+ }
3344
+ .tina-tailwind .py-1 {
3345
+ padding-top: 4px;
3346
+ padding-bottom: 4px;
3347
+ }
3348
+ .tina-tailwind .py-2 {
3349
+ padding-top: 8px;
3350
+ padding-bottom: 8px;
3351
+ }
3352
+ .tina-tailwind .py-5 {
3353
+ padding-top: 20px;
3354
+ padding-bottom: 20px;
3355
+ }
3356
+ .tina-tailwind .pt-4 {
3357
+ padding-top: 16px;
3358
+ }
3359
+ .tina-tailwind .pb-4 {
3360
+ padding-bottom: 16px;
3361
+ }
3362
+ .tina-tailwind .pt-18 {
3363
+ padding-top: 72px;
3364
+ }
3365
+ .tina-tailwind .pt-3 {
3366
+ padding-top: 12px;
3367
+ }
3368
+ .tina-tailwind .pl-18 {
3369
+ padding-left: 72px;
3370
+ }
3371
+ .tina-tailwind .text-left {
3372
+ text-align: left;
3373
+ }
3374
+ .tina-tailwind .text-center {
3375
+ text-align: center;
3376
+ }
3377
+ .tina-tailwind .font-sans {
3378
+ 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";
3379
+ }
3380
+ .tina-tailwind .text-2xl {
3381
+ font-size: 24px;
3382
+ line-height: 1.33;
3383
+ }
3384
+ .tina-tailwind .text-base {
3385
+ font-size: 16px;
3386
+ line-height: 1.5;
3387
+ }
3388
+ .tina-tailwind .text-sm {
3389
+ font-size: 14px;
3390
+ line-height: 1.43;
3391
+ }
3392
+ .tina-tailwind .text-xl {
3393
+ font-size: 20px;
3394
+ line-height: 1.4;
3395
+ }
3396
+ .tina-tailwind .text-md {
3397
+ font-size: 16px;
3398
+ line-height: 1.5;
3399
+ }
3400
+ .tina-tailwind .text-xs {
3401
+ font-size: 13px;
3402
+ line-height: 1.33;
3403
+ }
3404
+ .tina-tailwind .font-medium {
3405
+ font-weight: 500;
3406
+ }
3407
+ .tina-tailwind .uppercase {
3408
+ text-transform: uppercase;
3409
+ }
3410
+ .tina-tailwind .italic {
3411
+ font-style: italic;
3412
+ }
3413
+ .tina-tailwind .leading-normal {
3414
+ line-height: 1.5;
3415
+ }
3416
+ .tina-tailwind .leading-tight {
3417
+ line-height: 1.25;
3418
+ }
3419
+ .tina-tailwind .leading-5 {
3420
+ line-height: 20px;
3421
+ }
3422
+ .tina-tailwind .tracking-wide {
3423
+ letter-spacing: 0.025em;
3424
+ }
3425
+ .tina-tailwind .text-gray-600 {
3426
+ --tw-text-opacity: 1;
3427
+ color: rgb(86 81 101 / var(--tw-text-opacity));
3428
+ }
3429
+ .tina-tailwind .text-gray-700 {
3430
+ --tw-text-opacity: 1;
3431
+ color: rgb(67 62 82 / var(--tw-text-opacity));
3432
+ }
3433
+ .tina-tailwind .text-blue-600 {
3434
+ --tw-text-opacity: 1;
3435
+ color: rgb(5 116 228 / var(--tw-text-opacity));
3436
+ }
3437
+ .tina-tailwind .text-gray-500 {
3438
+ --tw-text-opacity: 1;
3439
+ color: rgb(113 108 127 / var(--tw-text-opacity));
3440
+ }
3441
+ .tina-tailwind .text-gray-400 {
3442
+ --tw-text-opacity: 1;
3443
+ color: rgb(145 140 158 / var(--tw-text-opacity));
3444
+ }
3445
+ .tina-tailwind .text-current {
3446
+ color: currentColor;
3447
+ }
3448
+ .tina-tailwind .text-white {
3449
+ --tw-text-opacity: 1;
3450
+ color: rgb(255 255 255 / var(--tw-text-opacity));
3451
+ }
3452
+ .tina-tailwind .text-gray-800 {
3453
+ --tw-text-opacity: 1;
3454
+ color: rgb(54 49 69 / var(--tw-text-opacity));
3455
+ }
3456
+ .tina-tailwind .text-gray-900 {
3457
+ --tw-text-opacity: 1;
3458
+ color: rgb(37 35 54 / var(--tw-text-opacity));
3459
+ }
3460
+ .tina-tailwind .text-red-500 {
3461
+ --tw-text-opacity: 1;
3462
+ color: rgb(239 68 68 / var(--tw-text-opacity));
3463
+ }
3464
+ .tina-tailwind .underline {
3465
+ text-decoration-line: underline;
3466
+ }
3467
+ .tina-tailwind .opacity-100 {
3468
+ opacity: 1;
3469
+ }
3470
+ .tina-tailwind .opacity-0 {
3471
+ opacity: 0;
3472
+ }
3473
+ .tina-tailwind .opacity-80 {
3474
+ opacity: .8;
3475
+ }
3476
+ .tina-tailwind .opacity-90 {
3477
+ opacity: .9;
3478
+ }
3479
+ .tina-tailwind .opacity-50 {
3480
+ opacity: .5;
3481
+ }
3482
+ .tina-tailwind .opacity-70 {
3483
+ opacity: .7;
3484
+ }
3485
+ .tina-tailwind .shadow-lg {
3486
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
3487
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
3488
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3489
+ }
3490
+ .tina-tailwind .shadow-2xl {
3491
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
3492
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
3493
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3494
+ }
3495
+ .tina-tailwind .shadow {
3496
+ --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
3497
+ --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
3498
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3499
+ }
3500
+ .tina-tailwind .ring-1 {
3501
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3502
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
3503
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3504
+ }
3505
+ .tina-tailwind .ring-black {
3506
+ --tw-ring-opacity: 1;
3507
+ --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity));
3508
+ }
3509
+ .tina-tailwind .ring-opacity-5 {
3510
+ --tw-ring-opacity: .05;
3511
+ }
3512
+ .tina-tailwind .filter {
3513
+ 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);
3514
+ }
3515
+ .tina-tailwind .transition-opacity {
3516
+ transition-property: opacity;
3517
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3518
+ transition-duration: 150ms;
3519
+ }
3520
+ .tina-tailwind .transition-all {
3521
+ transition-property: all;
3522
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3523
+ transition-duration: 150ms;
3524
+ }
3525
+ .tina-tailwind .transition-colors {
3526
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
3527
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3528
+ transition-duration: 150ms;
3529
+ }
3530
+ .tina-tailwind .transition {
3531
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
3532
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
3533
+ transition-duration: 150ms;
3534
+ }
3535
+ .tina-tailwind .duration-300 {
3536
+ transition-duration: 300ms;
3537
+ }
3538
+ .tina-tailwind .duration-200 {
3539
+ transition-duration: 200ms;
3540
+ }
3541
+ .tina-tailwind .duration-150 {
3542
+ transition-duration: 150ms;
3543
+ }
3544
+ .tina-tailwind .duration-100 {
3545
+ transition-duration: 100ms;
3546
+ }
3547
+ .tina-tailwind .duration-75 {
3548
+ transition-duration: 75ms;
3549
+ }
3550
+ .tina-tailwind .ease-out {
3551
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
3552
+ }
3553
+ .tina-tailwind .ease-in {
3554
+ transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
3555
+ }
3556
+ .tina-tailwind .icon-parent svg {
3557
+ fill: currentColor;
3558
+ }
3559
+ .tina-tailwind {
3560
+ 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";
3561
+ font-size: 16px;
3562
+ line-height: 1.5;
3563
+ --tw-text-opacity: 1;
3564
+ color: rgb(86 81 101 / var(--tw-text-opacity));
3565
+ }
3566
+ .tina-tailwind .hover\\:bg-blue-600:hover {
3567
+ --tw-bg-opacity: 1;
3568
+ background-color: rgb(5 116 228 / var(--tw-bg-opacity));
3569
+ }
3570
+ .tina-tailwind .hover\\:text-blue-600:hover {
3571
+ --tw-text-opacity: 1;
3572
+ color: rgb(5 116 228 / var(--tw-text-opacity));
3573
+ }
3574
+ .tina-tailwind .hover\\:text-blue-400:hover {
3575
+ --tw-text-opacity: 1;
3576
+ color: rgb(34 150 254 / var(--tw-text-opacity));
3577
+ }
3578
+ .tina-tailwind .hover\\:opacity-100:hover {
3579
+ opacity: 1;
3580
+ }
3581
+ .tina-tailwind .focus\\:text-blue-400:focus {
3582
+ --tw-text-opacity: 1;
3583
+ color: rgb(34 150 254 / var(--tw-text-opacity));
3584
+ }
3585
+ .tina-tailwind .focus\\:underline:focus {
3586
+ text-decoration-line: underline;
3587
+ }
3588
+ .tina-tailwind .focus\\:shadow-outline:focus {
3589
+ --tw-shadow: 0 0 0 3px rgba(66, 153, 225, 0.5);
3590
+ --tw-shadow-colored: 0 0 0 3px var(--tw-shadow-color);
3591
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
3592
+ }
3593
+ .tina-tailwind .focus\\:outline-none:focus {
3594
+ outline: 2px solid transparent;
3595
+ outline-offset: 2px;
3596
+ }
3597
+ .tina-tailwind .focus\\:ring-2:focus {
3598
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3599
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
3600
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
3601
+ }
3602
+ .tina-tailwind .focus\\:ring-blue-500:focus {
3603
+ --tw-ring-opacity: 1;
3604
+ --tw-ring-color: rgb(0 132 255 / var(--tw-ring-opacity));
3605
+ }
3606
+ `;
2715
3607
  class ContentCreatorPlugin {
2716
3608
  constructor(options) {
2717
3609
  this.__type = "content-creator";
@@ -2760,9 +3652,9 @@ class ContentCreatorPlugin {
2760
3652
  }
2761
3653
  const useDocumentCreatorPlugin = (args) => {
2762
3654
  const cms = useCMS();
2763
- const [values, setValues] = React.useState({});
2764
- const [plugin, setPlugin] = React.useState(null);
2765
- React.useEffect(() => {
3655
+ const [values, setValues] = React__default.useState({});
3656
+ const [plugin, setPlugin] = React__default.useState(null);
3657
+ React__default.useEffect(() => {
2766
3658
  const run = async () => {
2767
3659
  var _a;
2768
3660
  const res = await cms.api.tina.request((gql2) => gql2`
@@ -2863,7 +3755,7 @@ const useDocumentCreatorPlugin = (args) => {
2863
3755
  };
2864
3756
  run();
2865
3757
  }, [cms]);
2866
- React.useEffect(() => {
3758
+ React__default.useEffect(() => {
2867
3759
  if (plugin) {
2868
3760
  cms.plugins.add(plugin);
2869
3761
  }
@@ -2884,10 +3776,10 @@ function useTina({
2884
3776
  state,
2885
3777
  isDummyContainer,
2886
3778
  isLoading: contextLoading
2887
- } = React.useContext(TinaDataContext);
3779
+ } = React__default.useContext(TinaDataContext);
2888
3780
  const [waitForContextRerender, setWaitForContextRerender] = useState(!isDummyContainer);
2889
3781
  const isLoading = contextLoading || waitForContextRerender;
2890
- React.useEffect(() => {
3782
+ React__default.useEffect(() => {
2891
3783
  setRequest({ query, variables });
2892
3784
  }, [JSON.stringify(variables), query]);
2893
3785
  useEffect(() => {
@@ -2939,7 +3831,7 @@ const errorButtonStyles = {
2939
3831
  color: "white",
2940
3832
  margin: "1rem 0"
2941
3833
  };
2942
- class ErrorBoundary extends React.Component {
3834
+ class ErrorBoundary extends React__default.Component {
2943
3835
  constructor(props) {
2944
3836
  super(props);
2945
3837
  this.state = {
@@ -2955,7 +3847,7 @@ class ErrorBoundary extends React.Component {
2955
3847
  const branchData = window.localStorage && window.localStorage.getItem("tinacms-current-branch");
2956
3848
  const hasBranchData = branchData && branchData.length > 0;
2957
3849
  if (this.state.hasError && !this.state.pageRefresh) {
2958
- return /* @__PURE__ */ React.createElement("div", {
3850
+ return /* @__PURE__ */ React__default.createElement("div", {
2959
3851
  style: {
2960
3852
  background: "#efefef",
2961
3853
  height: "100vh",
@@ -2963,7 +3855,7 @@ class ErrorBoundary extends React.Component {
2963
3855
  alignItems: "center",
2964
3856
  justifyContent: "center"
2965
3857
  }
2966
- }, /* @__PURE__ */ React.createElement("style", null, " body { margin: 0; } "), /* @__PURE__ */ React.createElement("div", {
3858
+ }, /* @__PURE__ */ React__default.createElement("style", null, " body { margin: 0; } "), /* @__PURE__ */ React__default.createElement("div", {
2967
3859
  style: {
2968
3860
  background: "#fff",
2969
3861
  maxWidth: "400px",
@@ -2972,27 +3864,27 @@ class ErrorBoundary extends React.Component {
2972
3864
  borderRadius: "5px",
2973
3865
  boxShadow: "0 6px 24px rgb(0 37 91 / 5%), 0 2px 4px rgb(0 37 91 / 3%)"
2974
3866
  }
2975
- }, /* @__PURE__ */ React.createElement("h3", {
3867
+ }, /* @__PURE__ */ React__default.createElement("h3", {
2976
3868
  style: { color: "#eb6337" }
2977
- }, "TinaCMS Render Error"), /* @__PURE__ */ React.createElement("p", null, "Tina caught an error while updating the page:"), /* @__PURE__ */ React.createElement("pre", {
3869
+ }, "TinaCMS Render Error"), /* @__PURE__ */ React__default.createElement("p", null, "Tina caught an error while updating the page:"), /* @__PURE__ */ React__default.createElement("pre", {
2978
3870
  style: { marginTop: "1rem", overflowX: "auto" }
2979
- }, this.state.message), /* @__PURE__ */ React.createElement("br", null), /* @__PURE__ */ React.createElement("p", null, `If you've just updated the form, undo your most recent changes and click "refresh". If after a few refreshes, you're still encountering this error. There is a bigger issue with the site. Please reach out to your site admin.`), /* @__PURE__ */ React.createElement("p", null, "See our", " ", /* @__PURE__ */ React.createElement("a", {
3871
+ }, this.state.message), /* @__PURE__ */ React__default.createElement("br", null), /* @__PURE__ */ React__default.createElement("p", null, `If you've just updated the form, undo your most recent changes and click "refresh". If after a few refreshes, you're still encountering this error. There is a bigger issue with the site. Please reach out to your site admin.`), /* @__PURE__ */ React__default.createElement("p", null, "See our", " ", /* @__PURE__ */ React__default.createElement("a", {
2980
3872
  className: "text-gray-600",
2981
3873
  style: { textDecoration: "underline" },
2982
3874
  href: "https://tina.io/docs/errors/faq/",
2983
3875
  target: "_blank"
2984
- }, " ", "Error FAQ", " "), " ", "for more information."), /* @__PURE__ */ React.createElement("button", {
3876
+ }, " ", "Error FAQ", " "), " ", "for more information."), /* @__PURE__ */ React__default.createElement("button", {
2985
3877
  style: errorButtonStyles,
2986
3878
  onClick: () => {
2987
3879
  this.setState({ pageRefresh: true });
2988
3880
  setTimeout(() => this.setState({ hasError: false, pageRefresh: false }), 3e3);
2989
3881
  }
2990
- }, "Refresh"), hasBranchData && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", null, `If you're using the branch switcher, you may currently be on a "stale" branch that has been deleted or whose content is not compatible with the latest version of the site's layout. Click the button below to switch back to the default branch for this deployment.`), /* @__PURE__ */ React.createElement("p", null, "See our", " ", /* @__PURE__ */ React.createElement("a", {
3882
+ }, "Refresh"), hasBranchData && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("p", null, `If you're using the branch switcher, you may currently be on a "stale" branch that has been deleted or whose content is not compatible with the latest version of the site's layout. Click the button below to switch back to the default branch for this deployment.`), /* @__PURE__ */ React__default.createElement("p", null, "See our", " ", /* @__PURE__ */ React__default.createElement("a", {
2991
3883
  className: "text-gray-600",
2992
3884
  style: { textDecoration: "underline" },
2993
3885
  href: "https://tina.io/docs/errors/faq/",
2994
3886
  target: "_blank"
2995
- }, " ", "Error FAQ", " "), " ", "for more information."), /* @__PURE__ */ React.createElement("button", {
3887
+ }, " ", "Error FAQ", " "), " ", "for more information."), /* @__PURE__ */ React__default.createElement("button", {
2996
3888
  style: errorButtonStyles,
2997
3889
  onClick: () => {
2998
3890
  window.localStorage.removeItem("tinacms-current-branch");
@@ -3001,7 +3893,7 @@ class ErrorBoundary extends React.Component {
3001
3893
  }, "Switch to default branch"))));
3002
3894
  }
3003
3895
  if (this.state.pageRefresh) {
3004
- return /* @__PURE__ */ React.createElement(Loader, null, "Let's try that again.");
3896
+ return /* @__PURE__ */ React__default.createElement(Loader, null, "Let's try that again.");
3005
3897
  }
3006
3898
  return this.props.children;
3007
3899
  }
@@ -3032,7 +3924,7 @@ const TinaCMSProvider2 = (_c) => {
3032
3924
  if (!schema) {
3033
3925
  throw new Error("`schema` is required to be passed as a property to `TinaProvider`. You can learn more about this change here: https://github.com/tinacms/tinacms/pull/2823");
3034
3926
  }
3035
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TinaCloudProvider, {
3927
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(TinaCloudProvider, {
3036
3928
  branch,
3037
3929
  clientId,
3038
3930
  tinaioConfig: props.tinaioConfig,
@@ -3040,11 +3932,11 @@ const TinaCMSProvider2 = (_c) => {
3040
3932
  cmsCallback: props.cmsCallback,
3041
3933
  mediaStore: props.mediaStore,
3042
3934
  schema
3043
- }, /* @__PURE__ */ React.createElement("style", null, styles), /* @__PURE__ */ React.createElement(ErrorBoundary, null, /* @__PURE__ */ React.createElement(DocumentCreator, {
3935
+ }, /* @__PURE__ */ React__default.createElement("style", null, styles), /* @__PURE__ */ React__default.createElement(ErrorBoundary, null, /* @__PURE__ */ React__default.createElement(DocumentCreator, {
3044
3936
  documentCreatorCallback
3045
- }), /* @__PURE__ */ React.createElement(TinaDataProvider, {
3937
+ }), /* @__PURE__ */ React__default.createElement(TinaDataProvider, {
3046
3938
  formifyCallback
3047
- }, typeof props.children == "function" ? /* @__PURE__ */ React.createElement(TinaQuery, __spreadProps(__spreadValues({}, props), {
3939
+ }, typeof props.children == "function" ? /* @__PURE__ */ React__default.createElement(TinaQuery, __spreadProps(__spreadValues({}, props), {
3048
3940
  variables: props.variables,
3049
3941
  data: props.data,
3050
3942
  query,
@@ -3059,7 +3951,7 @@ const DocumentCreator = ({
3059
3951
  return null;
3060
3952
  };
3061
3953
  const TinaQuery = (props) => {
3062
- return /* @__PURE__ */ React.createElement(TinaQueryInner, __spreadValues({
3954
+ return /* @__PURE__ */ React__default.createElement(TinaQueryInner, __spreadValues({
3063
3955
  key: `rootQuery-${props.query}`
3064
3956
  }, props));
3065
3957
  };
@@ -3070,24 +3962,24 @@ const TinaQueryInner = (_e) => {
3070
3962
  variables: props.variables,
3071
3963
  data: props.data
3072
3964
  });
3073
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children(isLoading || !props.query ? props : __spreadProps(__spreadValues({}, props), { data: liveData })));
3965
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children(isLoading || !props.query ? props : __spreadProps(__spreadValues({}, props), { data: liveData })));
3074
3966
  };
3075
3967
  const TinaDataProvider = ({
3076
3968
  children,
3077
3969
  formifyCallback
3078
3970
  }) => {
3079
3971
  const [request, setRequest] = useState();
3080
- const [state, setState] = React.useState({
3972
+ const [state, setState] = React__default.useState({
3081
3973
  payload: void 0,
3082
3974
  isLoading: true
3083
3975
  });
3084
- return /* @__PURE__ */ React.createElement(TinaDataContext.Provider, {
3976
+ return /* @__PURE__ */ React__default.createElement(TinaDataContext.Provider, {
3085
3977
  value: {
3086
3978
  setRequest,
3087
3979
  isLoading: state.isLoading,
3088
3980
  state: { payload: state.payload }
3089
3981
  }
3090
- }, /* @__PURE__ */ React.createElement(FormRegistrar, {
3982
+ }, /* @__PURE__ */ React__default.createElement(FormRegistrar, {
3091
3983
  key: request == null ? void 0 : request.query,
3092
3984
  request,
3093
3985
  formifyCallback,
@@ -3111,13 +4003,13 @@ const FormRegistrar = ({
3111
4003
  }
3112
4004
  }
3113
4005
  });
3114
- React.useEffect(() => {
4006
+ React__default.useEffect(() => {
3115
4007
  onPayloadStateChange({ payload, isLoading });
3116
4008
  }, [JSON.stringify(payload), isLoading]);
3117
- return isLoading ? /* @__PURE__ */ React.createElement(Loader, null, /* @__PURE__ */ React.createElement(React.Fragment, null)) : null;
4009
+ return isLoading ? /* @__PURE__ */ React__default.createElement(Loader, null, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null)) : null;
3118
4010
  };
3119
4011
  const Loader = (props) => {
3120
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
4012
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", {
3121
4013
  style: {
3122
4014
  position: "fixed",
3123
4015
  background: "rgba(0, 0, 0, 0.5)",
@@ -3129,7 +4021,7 @@ const Loader = (props) => {
3129
4021
  justifyContent: "center",
3130
4022
  padding: "40px"
3131
4023
  }
3132
- }, /* @__PURE__ */ React.createElement("div", {
4024
+ }, /* @__PURE__ */ React__default.createElement("div", {
3133
4025
  style: {
3134
4026
  background: "#f6f6f9",
3135
4027
  boxShadow: "0px 2px 3px rgba(0, 0, 0, 0.05), 0 4px 12px rgba(0, 0, 0, 0.1)",
@@ -3142,7 +4034,7 @@ const Loader = (props) => {
3142
4034
  justifyContent: "center",
3143
4035
  flexDirection: "column"
3144
4036
  }
3145
- }, /* @__PURE__ */ React.createElement("svg", {
4037
+ }, /* @__PURE__ */ React__default.createElement("svg", {
3146
4038
  style: {
3147
4039
  width: "64px",
3148
4040
  color: "#2296fe",
@@ -3158,13 +4050,13 @@ const Loader = (props) => {
3158
4050
  viewBox: "0 0 100 64",
3159
4051
  enableBackground: "new 0 0 0 0",
3160
4052
  xmlSpace: "preserve"
3161
- }, /* @__PURE__ */ React.createElement("circle", {
4053
+ }, /* @__PURE__ */ React__default.createElement("circle", {
3162
4054
  fill: "currentColor",
3163
4055
  stroke: "none",
3164
4056
  cx: 6,
3165
4057
  cy: 32,
3166
4058
  r: 6
3167
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4059
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3168
4060
  attributeName: "transform",
3169
4061
  dur: "1s",
3170
4062
  type: "translate",
@@ -3173,13 +4065,13 @@ const Loader = (props) => {
3173
4065
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3174
4066
  repeatCount: "indefinite",
3175
4067
  begin: "0.1"
3176
- })), /* @__PURE__ */ React.createElement("circle", {
4068
+ })), /* @__PURE__ */ React__default.createElement("circle", {
3177
4069
  fill: "currentColor",
3178
4070
  stroke: "none",
3179
4071
  cx: 30,
3180
4072
  cy: 32,
3181
4073
  r: 6
3182
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4074
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3183
4075
  attributeName: "transform",
3184
4076
  dur: "1s",
3185
4077
  type: "translate",
@@ -3188,13 +4080,13 @@ const Loader = (props) => {
3188
4080
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3189
4081
  repeatCount: "indefinite",
3190
4082
  begin: "0.2"
3191
- })), /* @__PURE__ */ React.createElement("circle", {
4083
+ })), /* @__PURE__ */ React__default.createElement("circle", {
3192
4084
  fill: "currentColor",
3193
4085
  stroke: "none",
3194
4086
  cx: 54,
3195
4087
  cy: 32,
3196
4088
  r: 6
3197
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4089
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3198
4090
  attributeName: "transform",
3199
4091
  dur: "1s",
3200
4092
  type: "translate",
@@ -3203,7 +4095,7 @@ const Loader = (props) => {
3203
4095
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3204
4096
  repeatCount: "indefinite",
3205
4097
  begin: "0.3"
3206
- }))), /* @__PURE__ */ React.createElement("p", {
4098
+ }))), /* @__PURE__ */ React__default.createElement("p", {
3207
4099
  style: {
3208
4100
  fontSize: "18px",
3209
4101
  color: "#252336",
@@ -3260,7 +4152,7 @@ function gql(strings, ...args) {
3260
4152
  return str;
3261
4153
  }
3262
4154
  const Layout = ({ children }) => {
3263
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("style", null, styles), /* @__PURE__ */ React.createElement("div", {
4155
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("style", null, styles), /* @__PURE__ */ React__default.createElement("div", {
3264
4156
  className: "tina-tailwind",
3265
4157
  style: {
3266
4158
  position: "fixed",
@@ -3282,7 +4174,7 @@ var DefaultContext = {
3282
4174
  style: void 0,
3283
4175
  attr: void 0
3284
4176
  };
3285
- var IconContext = React.createContext && React.createContext(DefaultContext);
4177
+ var IconContext = React__default.createContext && React__default.createContext(DefaultContext);
3286
4178
  var __assign = function() {
3287
4179
  __assign = Object.assign || function(t) {
3288
4180
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -3309,14 +4201,14 @@ var __rest = function(s, e) {
3309
4201
  };
3310
4202
  function Tree2Element(tree) {
3311
4203
  return tree && tree.map(function(node2, i) {
3312
- return React.createElement(node2.tag, __assign({
4204
+ return React__default.createElement(node2.tag, __assign({
3313
4205
  key: i
3314
4206
  }, node2.attr), Tree2Element(node2.child));
3315
4207
  });
3316
4208
  }
3317
4209
  function GenIcon(data) {
3318
4210
  return function(props) {
3319
- return React.createElement(IconBase, __assign({
4211
+ return React__default.createElement(IconBase, __assign({
3320
4212
  attr: __assign({}, data.attr)
3321
4213
  }, props), Tree2Element(data.child));
3322
4214
  };
@@ -3330,7 +4222,7 @@ function IconBase(props) {
3330
4222
  className = conf.className;
3331
4223
  if (props.className)
3332
4224
  className = (className ? className + " " : "") + props.className;
3333
- return React.createElement("svg", __assign({
4225
+ return React__default.createElement("svg", __assign({
3334
4226
  stroke: "currentColor",
3335
4227
  fill: "currentColor",
3336
4228
  strokeWidth: "0"
@@ -3342,9 +4234,9 @@ function IconBase(props) {
3342
4234
  height: computedSize,
3343
4235
  width: computedSize,
3344
4236
  xmlns: "http://www.w3.org/2000/svg"
3345
- }), title && React.createElement("title", null, title), props.children);
4237
+ }), title && React__default.createElement("title", null, title), props.children);
3346
4238
  };
3347
- return IconContext !== void 0 ? React.createElement(IconContext.Consumer, null, function(conf) {
4239
+ return IconContext !== void 0 ? React__default.createElement(IconContext.Consumer, null, function(conf) {
3348
4240
  return elem(conf);
3349
4241
  }) : elem(DefaultContext);
3350
4242
  }
@@ -3382,6 +4274,9 @@ function IoMdClose(props) {
3382
4274
  function BiEdit(props) {
3383
4275
  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);
3384
4276
  }
4277
+ function BiLeftArrowAlt(props) {
4278
+ 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);
4279
+ }
3385
4280
  function BiLogIn(props) {
3386
4281
  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);
3387
4282
  }
@@ -3394,6 +4289,9 @@ function BiMenu(props) {
3394
4289
  function BiPlus(props) {
3395
4290
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 24 24" }, "child": [{ "tag": "path", "attr": { "d": "M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z" } }] })(props);
3396
4291
  }
4292
+ function BiRightArrowAlt(props) {
4293
+ 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);
4294
+ }
3397
4295
  function BiTrash(props) {
3398
4296
  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);
3399
4297
  }
@@ -3404,47 +4302,47 @@ const Sidebar = ({ cms }) => {
3404
4302
  var _a, _b;
3405
4303
  const collectionsInfo = useGetCollections(cms);
3406
4304
  const screens = cms.plugins.getType("screen").all();
3407
- const [menuIsOpen, setMenuIsOpen] = React.useState(false);
4305
+ const [menuIsOpen, setMenuIsOpen] = React__default.useState(false);
3408
4306
  const isLocalMode = (_b = (_a = cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode;
3409
4307
  const navBreakpoint = 1e3;
3410
4308
  const windowWidth = useWindowWidth();
3411
4309
  const renderDesktopNav = windowWidth > navBreakpoint;
3412
- return /* @__PURE__ */ React.createElement(React.Fragment, null, renderDesktopNav && /* @__PURE__ */ React.createElement(Nav, {
4310
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, renderDesktopNav && /* @__PURE__ */ React__default.createElement(Nav, {
3413
4311
  sidebarWidth: 360,
3414
4312
  showCollections: true,
3415
4313
  collectionsInfo,
3416
4314
  screens,
3417
4315
  contentCreators: [],
3418
- RenderNavSite: ({ view }) => /* @__PURE__ */ React.createElement(SidebarLink, {
4316
+ RenderNavSite: ({ view }) => /* @__PURE__ */ React__default.createElement(SidebarLink, {
3419
4317
  label: view.name,
3420
4318
  to: `screens/${slugify(view.name)}`,
3421
4319
  Icon: view.Icon ? view.Icon : ImFilesEmpty
3422
4320
  }),
3423
- RenderNavCollection: ({ collection }) => /* @__PURE__ */ React.createElement(SidebarLink, {
4321
+ RenderNavCollection: ({ collection }) => /* @__PURE__ */ React__default.createElement(SidebarLink, {
3424
4322
  label: collection.label ? collection.label : collection.name,
3425
4323
  to: `collections/${collection.name}`,
3426
4324
  Icon: ImFilesEmpty
3427
4325
  })
3428
- }), !renderDesktopNav && /* @__PURE__ */ React.createElement(Transition, {
4326
+ }), !renderDesktopNav && /* @__PURE__ */ React__default.createElement(Transition, {
3429
4327
  show: menuIsOpen
3430
- }, /* @__PURE__ */ React.createElement(Transition.Child, {
3431
- as: React.Fragment,
4328
+ }, /* @__PURE__ */ React__default.createElement(Transition.Child, {
4329
+ as: React__default.Fragment,
3432
4330
  enter: "transform transition-all ease-out duration-300",
3433
4331
  enterFrom: "opacity-0 -translate-x-full",
3434
4332
  enterTo: "opacity-100 translate-x-0",
3435
4333
  leave: "transform transition-all ease-in duration-200",
3436
4334
  leaveFrom: "opacity-100 translate-x-0",
3437
4335
  leaveTo: "opacity-0 -translate-x-full"
3438
- }, /* @__PURE__ */ React.createElement("div", {
4336
+ }, /* @__PURE__ */ React__default.createElement("div", {
3439
4337
  className: "fixed left-0 top-0 z-overlay h-full transform"
3440
- }, /* @__PURE__ */ React.createElement(Nav, {
4338
+ }, /* @__PURE__ */ React__default.createElement(Nav, {
3441
4339
  className: "rounded-r-md",
3442
4340
  sidebarWidth: 360,
3443
4341
  showCollections: true,
3444
4342
  collectionsInfo,
3445
4343
  screens,
3446
4344
  contentCreators: [],
3447
- RenderNavSite: ({ view }) => /* @__PURE__ */ React.createElement(SidebarLink, {
4345
+ RenderNavSite: ({ view }) => /* @__PURE__ */ React__default.createElement(SidebarLink, {
3448
4346
  label: view.name,
3449
4347
  to: `screens/${slugify(view.name)}`,
3450
4348
  Icon: view.Icon ? view.Icon : ImFilesEmpty,
@@ -3452,7 +4350,7 @@ const Sidebar = ({ cms }) => {
3452
4350
  setMenuIsOpen(false);
3453
4351
  }
3454
4352
  }),
3455
- RenderNavCollection: ({ collection }) => /* @__PURE__ */ React.createElement(SidebarLink, {
4353
+ RenderNavCollection: ({ collection }) => /* @__PURE__ */ React__default.createElement(SidebarLink, {
3456
4354
  label: collection.label ? collection.label : collection.name,
3457
4355
  to: `collections/${collection.name}`,
3458
4356
  Icon: ImFilesEmpty,
@@ -3460,19 +4358,19 @@ const Sidebar = ({ cms }) => {
3460
4358
  setMenuIsOpen(false);
3461
4359
  }
3462
4360
  })
3463
- }, /* @__PURE__ */ React.createElement("div", {
4361
+ }, /* @__PURE__ */ React__default.createElement("div", {
3464
4362
  className: "absolute top-8 right-0 transform translate-x-full overflow-hidden"
3465
- }, /* @__PURE__ */ React.createElement(Button, {
4363
+ }, /* @__PURE__ */ React__default.createElement(Button$1, {
3466
4364
  rounded: "right",
3467
4365
  variant: "secondary",
3468
4366
  onClick: () => {
3469
4367
  setMenuIsOpen(false);
3470
4368
  },
3471
4369
  className: `transition-opacity duration-150 ease-out`
3472
- }, /* @__PURE__ */ React.createElement(IoMdClose, {
4370
+ }, /* @__PURE__ */ React__default.createElement(IoMdClose, {
3473
4371
  className: "h-6 w-auto"
3474
- })))))), /* @__PURE__ */ React.createElement(Transition.Child, {
3475
- as: React.Fragment,
4372
+ })))))), /* @__PURE__ */ React__default.createElement(Transition.Child, {
4373
+ as: React__default.Fragment,
3476
4374
  enter: "ease-out duration-300",
3477
4375
  enterFrom: "opacity-0",
3478
4376
  enterTo: "opacity-80",
@@ -3480,39 +4378,39 @@ const Sidebar = ({ cms }) => {
3480
4378
  leave: "ease-in duration-200",
3481
4379
  leaveFrom: "opacity-80",
3482
4380
  leaveTo: "opacity-0"
3483
- }, /* @__PURE__ */ React.createElement("div", {
4381
+ }, /* @__PURE__ */ React__default.createElement("div", {
3484
4382
  onClick: () => {
3485
4383
  setMenuIsOpen(false);
3486
4384
  },
3487
4385
  className: "fixed z-menu inset-0 bg-gradient-to-br from-gray-800 via-gray-900 to-black"
3488
- }))), !renderDesktopNav && /* @__PURE__ */ React.createElement(Button, {
4386
+ }))), !renderDesktopNav && /* @__PURE__ */ React__default.createElement(Button$1, {
3489
4387
  rounded: "right",
3490
4388
  variant: "secondary",
3491
4389
  onClick: () => {
3492
4390
  setMenuIsOpen(true);
3493
4391
  },
3494
4392
  className: `pointer-events-auto -ml-px absolute left-0 z-50 ${isLocalMode ? `top-10` : `top-4`}`
3495
- }, /* @__PURE__ */ React.createElement(BiMenu, {
4393
+ }, /* @__PURE__ */ React__default.createElement(BiMenu, {
3496
4394
  className: "h-7 w-auto"
3497
4395
  })));
3498
4396
  };
3499
4397
  const SidebarLink = (props) => {
3500
4398
  const { to, label, Icon } = props;
3501
- return /* @__PURE__ */ React.createElement(NavLink, {
4399
+ return /* @__PURE__ */ React__default.createElement(NavLink, {
3502
4400
  className: ({ isActive }) => {
3503
4401
  return `text-base tracking-wide ${isActive ? "text-blue-600" : "text-gray-500"} hover:text-blue-600 flex items-center opacity-90 hover:opacity-100`;
3504
4402
  },
3505
4403
  onClick: props.onClick ? props.onClick : () => {
3506
4404
  },
3507
4405
  to
3508
- }, /* @__PURE__ */ React.createElement(Icon, {
4406
+ }, /* @__PURE__ */ React__default.createElement(Icon, {
3509
4407
  className: "mr-2 h-6 opacity-80 w-auto"
3510
4408
  }), " ", label);
3511
4409
  };
3512
4410
  const GetCMS = ({ children }) => {
3513
4411
  try {
3514
4412
  const cms = useCMS();
3515
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children(cms));
4413
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children(cms));
3516
4414
  } catch (e) {
3517
4415
  return null;
3518
4416
  }
@@ -3524,52 +4422,52 @@ const AuthTemplate = ({
3524
4422
  message,
3525
4423
  children
3526
4424
  }) => {
3527
- return /* @__PURE__ */ React.createElement("div", {
4425
+ return /* @__PURE__ */ React__default.createElement("div", {
3528
4426
  className: "h-screen w-full bg-gradient-to-b from-blue-900 to-gray-900 flex items-center justify-center px-4 py-6"
3529
- }, /* @__PURE__ */ React.createElement("div", {
4427
+ }, /* @__PURE__ */ React__default.createElement("div", {
3530
4428
  className: "bg-white rounded-lg overflow-hidden shadow-lg w-full max-w-lg"
3531
- }, /* @__PURE__ */ React.createElement("div", {
4429
+ }, /* @__PURE__ */ React__default.createElement("div", {
3532
4430
  className: "px-5 py-4 border-b border-gray-150"
3533
- }, /* @__PURE__ */ React.createElement("h2", {
3534
- className: "text-2xl tracking-wide text-gray-700 flex items-center gap-0.5"
3535
- }, /* @__PURE__ */ React.createElement("svg", {
4431
+ }, /* @__PURE__ */ React__default.createElement("h2", {
4432
+ className: "text-2xl font-sans tracking-wide text-gray-700 flex items-center gap-0.5"
4433
+ }, /* @__PURE__ */ React__default.createElement("svg", {
3536
4434
  viewBox: "0 0 32 32",
3537
4435
  fill: "#EC4815",
3538
4436
  xmlns: "http://www.w3.org/2000/svg",
3539
4437
  className: "w-10 h-auto"
3540
- }, /* @__PURE__ */ React.createElement("path", {
4438
+ }, /* @__PURE__ */ React__default.createElement("path", {
3541
4439
  d: "M18.6466 14.5553C19.9018 13.5141 20.458 7.36086 21.0014 5.14903C21.5447 2.9372 23.7919 3.04938 23.7919 3.04938C23.7919 3.04938 23.2085 4.06764 23.4464 4.82751C23.6844 5.58738 25.3145 6.26662 25.3145 6.26662L24.9629 7.19622C24.9629 7.19622 24.2288 7.10204 23.7919 7.9785C23.355 8.85496 24.3392 17.4442 24.3392 17.4442C24.3392 17.4442 21.4469 22.7275 21.4469 24.9206C21.4469 27.1136 22.4819 28.9515 22.4819 28.9515H21.0296C21.0296 28.9515 18.899 26.4086 18.462 25.1378C18.0251 23.8669 18.1998 22.596 18.1998 22.596C18.1998 22.596 15.8839 22.4646 13.8303 22.596C11.7767 22.7275 10.4072 24.498 10.16 25.4884C9.91287 26.4787 9.81048 28.9515 9.81048 28.9515H8.66211C7.96315 26.7882 7.40803 26.0129 7.70918 24.9206C8.54334 21.8949 8.37949 20.1788 8.18635 19.4145C7.99321 18.6501 6.68552 17.983 6.68552 17.983C7.32609 16.6741 7.97996 16.0452 10.7926 15.9796C13.6052 15.914 17.3915 15.5965 18.6466 14.5553Z"
3542
- }), /* @__PURE__ */ React.createElement("path", {
4440
+ }), /* @__PURE__ */ React__default.createElement("path", {
3543
4441
  d: "M11.1268 24.7939C11.1268 24.7939 11.4236 27.5481 13.0001 28.9516H14.3511C13.0001 27.4166 12.8527 23.4155 12.8527 23.4155C12.1656 23.6399 11.3045 24.3846 11.1268 24.7939Z"
3544
- })), /* @__PURE__ */ React.createElement("span", null, "Tina"))), message && /* @__PURE__ */ React.createElement("div", {
4442
+ })), /* @__PURE__ */ React__default.createElement("span", null, "Tina"))), message && /* @__PURE__ */ React__default.createElement("div", {
3545
4443
  className: "px-5 pt-4"
3546
- }, /* @__PURE__ */ React.createElement("p", {
4444
+ }, /* @__PURE__ */ React__default.createElement("p", {
3547
4445
  className: "text-base font-sans leading-normal"
3548
- }, message)), /* @__PURE__ */ React.createElement("div", {
4446
+ }, message)), /* @__PURE__ */ React__default.createElement("div", {
3549
4447
  className: "px-5 py-4 flex gap-4 w-full justify-between"
3550
4448
  }, children)));
3551
4449
  };
3552
4450
  const LoginPage = () => {
3553
4451
  const { setEdit } = useEditState();
3554
4452
  const login = () => setEdit(true);
3555
- return /* @__PURE__ */ React.createElement(AuthTemplate, null, /* @__PURE__ */ React.createElement("div", {
4453
+ return /* @__PURE__ */ React__default.createElement(AuthTemplate, null, /* @__PURE__ */ React__default.createElement("div", {
3556
4454
  className: "flex w-full flex-1 gap-4 items-center justify-end"
3557
- }, /* @__PURE__ */ React.createElement(Button, {
4455
+ }, /* @__PURE__ */ React__default.createElement(Button$1, {
3558
4456
  onClick: () => {
3559
4457
  window.location.href = "/";
3560
4458
  },
3561
4459
  variant: "white",
3562
4460
  size: "custom",
3563
4461
  className: "text-base h-12 px-6 flex-shrink-0 flex-grow-0"
3564
- }, /* @__PURE__ */ React.createElement(MdOutlineArrowBack, {
4462
+ }, /* @__PURE__ */ React__default.createElement(MdOutlineArrowBack, {
3565
4463
  className: "w-6 h-auto mr-1.5 opacity-80"
3566
- }), " Back To Site"), /* @__PURE__ */ React.createElement(Button, {
4464
+ }), " Back To Site"), /* @__PURE__ */ React__default.createElement(Button$1, {
3567
4465
  onClick: () => login(),
3568
4466
  variant: "primary",
3569
4467
  size: "custom",
3570
4468
  className: "text-base h-12 px-6 flex-1",
3571
4469
  type: "submit"
3572
- }, /* @__PURE__ */ React.createElement(BiLogIn, {
4470
+ }, /* @__PURE__ */ React__default.createElement(BiLogIn, {
3573
4471
  className: "w-6 h-auto mr-2 opacity-80"
3574
4472
  }), " Edit With Tina")));
3575
4473
  };
@@ -3578,67 +4476,67 @@ const logout = () => {
3578
4476
  window.location.href = "/";
3579
4477
  };
3580
4478
  const LogoutPage = () => {
3581
- return /* @__PURE__ */ React.createElement(AuthTemplate, null, /* @__PURE__ */ React.createElement("div", {
4479
+ return /* @__PURE__ */ React__default.createElement(AuthTemplate, null, /* @__PURE__ */ React__default.createElement("div", {
3582
4480
  className: "flex w-full flex-1 gap-4 items-center justify-end"
3583
- }, /* @__PURE__ */ React.createElement(Button, {
4481
+ }, /* @__PURE__ */ React__default.createElement(Button$1, {
3584
4482
  onClick: () => {
3585
4483
  window.location.href = "/";
3586
4484
  },
3587
4485
  variant: "white",
3588
4486
  size: "custom",
3589
4487
  className: "text-base h-12 px-6 flex-shrink-0 flex-grow-0"
3590
- }, /* @__PURE__ */ React.createElement(MdOutlineArrowBack, {
4488
+ }, /* @__PURE__ */ React__default.createElement(MdOutlineArrowBack, {
3591
4489
  className: "w-6 h-auto mr-1.5 opacity-80"
3592
- }), " Back To Site"), /* @__PURE__ */ React.createElement(Button, {
4490
+ }), " Back To Site"), /* @__PURE__ */ React__default.createElement(Button$1, {
3593
4491
  onClick: () => logout(),
3594
4492
  type: "submit",
3595
4493
  variant: "primary",
3596
4494
  size: "custom",
3597
4495
  className: "text-base h-12 px-6 flex-1"
3598
- }, /* @__PURE__ */ React.createElement(BiLogOut, {
4496
+ }, /* @__PURE__ */ React__default.createElement(BiLogOut, {
3599
4497
  className: "w-6 h-auto mr-1.5 opacity-80"
3600
4498
  }), " Log Out of Tina")));
3601
4499
  };
3602
4500
  const PageWrapper = ({
3603
4501
  children
3604
4502
  }) => {
3605
- return /* @__PURE__ */ React.createElement("div", {
4503
+ return /* @__PURE__ */ React__default.createElement("div", {
3606
4504
  className: "relative left-0 w-full h-full bg-gray-50 shadow-2xl overflow-y-auto transition-opacity duration-300 ease-out flex flex-col opacity-100"
3607
4505
  }, children);
3608
4506
  };
3609
4507
  const PageHeader = ({
3610
4508
  isLocalMode,
3611
4509
  children
3612
- }) => /* @__PURE__ */ React.createElement(React.Fragment, null, isLocalMode && /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement("div", {
4510
+ }) => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, isLocalMode && /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement("div", {
3613
4511
  className: "bg-white pb-4 pt-18 border-b border-gray-200 px-12"
3614
- }, /* @__PURE__ */ React.createElement("div", {
4512
+ }, /* @__PURE__ */ React__default.createElement("div", {
3615
4513
  className: "w-full mx-auto max-w-screen-xl"
3616
- }, /* @__PURE__ */ React.createElement("div", {
4514
+ }, /* @__PURE__ */ React__default.createElement("div", {
3617
4515
  className: "w-full flex justify-between items-end"
3618
4516
  }, children))));
3619
4517
  const PageBody = ({
3620
4518
  children
3621
- }) => /* @__PURE__ */ React.createElement("div", {
4519
+ }) => /* @__PURE__ */ React__default.createElement("div", {
3622
4520
  className: "py-10 px-12"
3623
4521
  }, children);
3624
4522
  const PageBodyNarrow = ({
3625
4523
  children
3626
- }) => /* @__PURE__ */ React.createElement("div", {
4524
+ }) => /* @__PURE__ */ React__default.createElement("div", {
3627
4525
  className: "py-10 px-12"
3628
- }, /* @__PURE__ */ React.createElement("div", {
4526
+ }, /* @__PURE__ */ React__default.createElement("div", {
3629
4527
  className: "w-full mx-auto max-w-screen-xl"
3630
4528
  }, children));
3631
4529
  const DashboardPage = () => {
3632
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => {
4530
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => {
3633
4531
  var _a, _b;
3634
- return /* @__PURE__ */ React.createElement(PageWrapper, null, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(PageHeader, {
4532
+ return /* @__PURE__ */ React__default.createElement(PageWrapper, null, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(PageHeader, {
3635
4533
  isLocalMode: (_b = (_a = cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode
3636
- }, /* @__PURE__ */ React.createElement("h3", {
3637
- className: "text-2xl text-gray-700"
3638
- }, "Welcome to Tina!")), /* @__PURE__ */ React.createElement(PageBodyNarrow, null, "This is your dashboard for editing or creating content. Select a collection on the left to begin.")));
4534
+ }, /* @__PURE__ */ React__default.createElement("h3", {
4535
+ className: "text-2xl font-sans text-gray-700"
4536
+ }, "Welcome to Tina!")), /* @__PURE__ */ React__default.createElement(PageBodyNarrow, null, "This is your dashboard for editing or creating content. Select a collection on the left to begin.")));
3639
4537
  });
3640
4538
  };
3641
- const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", {
4539
+ const LoadingPage = () => /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("div", {
3642
4540
  style: {
3643
4541
  position: "absolute",
3644
4542
  top: 0,
@@ -3652,7 +4550,7 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3652
4550
  justifyContent: "center",
3653
4551
  padding: "120px 40px 40px 40px"
3654
4552
  }
3655
- }, /* @__PURE__ */ React.createElement("div", {
4553
+ }, /* @__PURE__ */ React__default.createElement("div", {
3656
4554
  style: {
3657
4555
  background: "#FFF",
3658
4556
  border: "1px solid #EDECF3",
@@ -3666,7 +4564,7 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3666
4564
  justifyContent: "center",
3667
4565
  flexDirection: "column"
3668
4566
  }
3669
- }, /* @__PURE__ */ React.createElement("svg", {
4567
+ }, /* @__PURE__ */ React__default.createElement("svg", {
3670
4568
  style: {
3671
4569
  width: "64px",
3672
4570
  color: "#2296fe",
@@ -3682,13 +4580,13 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3682
4580
  viewBox: "0 0 100 64",
3683
4581
  enableBackground: "new 0 0 0 0",
3684
4582
  xmlSpace: "preserve"
3685
- }, /* @__PURE__ */ React.createElement("circle", {
4583
+ }, /* @__PURE__ */ React__default.createElement("circle", {
3686
4584
  fill: "currentColor",
3687
4585
  stroke: "none",
3688
4586
  cx: 6,
3689
4587
  cy: 32,
3690
4588
  r: 6
3691
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4589
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3692
4590
  attributeName: "transform",
3693
4591
  dur: "1s",
3694
4592
  type: "translate",
@@ -3697,13 +4595,13 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3697
4595
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3698
4596
  repeatCount: "indefinite",
3699
4597
  begin: "0.1"
3700
- })), /* @__PURE__ */ React.createElement("circle", {
4598
+ })), /* @__PURE__ */ React__default.createElement("circle", {
3701
4599
  fill: "currentColor",
3702
4600
  stroke: "none",
3703
4601
  cx: 30,
3704
4602
  cy: 32,
3705
4603
  r: 6
3706
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4604
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3707
4605
  attributeName: "transform",
3708
4606
  dur: "1s",
3709
4607
  type: "translate",
@@ -3712,13 +4610,13 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3712
4610
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3713
4611
  repeatCount: "indefinite",
3714
4612
  begin: "0.2"
3715
- })), /* @__PURE__ */ React.createElement("circle", {
4613
+ })), /* @__PURE__ */ React__default.createElement("circle", {
3716
4614
  fill: "currentColor",
3717
4615
  stroke: "none",
3718
4616
  cx: 54,
3719
4617
  cy: 32,
3720
4618
  r: 6
3721
- }, /* @__PURE__ */ React.createElement("animateTransform", {
4619
+ }, /* @__PURE__ */ React__default.createElement("animateTransform", {
3722
4620
  attributeName: "transform",
3723
4621
  dur: "1s",
3724
4622
  type: "translate",
@@ -3727,7 +4625,7 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3727
4625
  keySplines: "0.8 0 0.4 1; 0.4 0 0.2 1",
3728
4626
  repeatCount: "indefinite",
3729
4627
  begin: "0.3"
3730
- }))), /* @__PURE__ */ React.createElement("p", {
4628
+ }))), /* @__PURE__ */ React__default.createElement("p", {
3731
4629
  style: {
3732
4630
  fontSize: "16px",
3733
4631
  color: "#716c7f",
@@ -3737,7 +4635,7 @@ const LoadingPage = () => /* @__PURE__ */ React.createElement(React.Fragment, nu
3737
4635
  fontWeight: "normal"
3738
4636
  }
3739
4637
  }, "Please wait, Tina is loading data..."))));
3740
- const useGetCollection = (cms, collectionName, includeDocuments = true) => {
4638
+ const useGetCollection = (cms, collectionName, includeDocuments = true, after = "") => {
3741
4639
  const api = new TinaAdminApi(cms);
3742
4640
  const [collection, setCollection] = useState(void 0);
3743
4641
  const [loading, setLoading] = useState(true);
@@ -3747,7 +4645,7 @@ const useGetCollection = (cms, collectionName, includeDocuments = true) => {
3747
4645
  const fetchCollection = async () => {
3748
4646
  if (await api.isAuthenticated()) {
3749
4647
  try {
3750
- const collection2 = await api.fetchCollection(collectionName, includeDocuments);
4648
+ const collection2 = await api.fetchCollection(collectionName, includeDocuments, after);
3751
4649
  setCollection(collection2);
3752
4650
  } catch (error2) {
3753
4651
  cms.alerts.error(`[${error2.name}] GetCollection failed: ${error2.message}`, 30 * 1e3);
@@ -3760,7 +4658,7 @@ const useGetCollection = (cms, collectionName, includeDocuments = true) => {
3760
4658
  };
3761
4659
  setLoading(true);
3762
4660
  fetchCollection();
3763
- }, [cms, collectionName, resetState]);
4661
+ }, [cms, collectionName, resetState, after]);
3764
4662
  const reFetchCollection = () => setResetSate((x) => x + 1);
3765
4663
  return { collection, loading, error, reFetchCollection };
3766
4664
  };
@@ -3768,26 +4666,169 @@ const GetCollection = ({
3768
4666
  cms,
3769
4667
  collectionName,
3770
4668
  includeDocuments = true,
4669
+ startCursor,
3771
4670
  children
3772
4671
  }) => {
3773
- const { collection, loading, error, reFetchCollection } = useGetCollection(cms, collectionName, includeDocuments);
4672
+ const { collection, loading, error, reFetchCollection } = useGetCollection(cms, collectionName, includeDocuments, startCursor || "");
3774
4673
  if (error) {
3775
4674
  return null;
3776
4675
  }
3777
4676
  if (loading) {
3778
- return /* @__PURE__ */ React.createElement(LoadingPage, null);
4677
+ return /* @__PURE__ */ React__default.createElement(LoadingPage, null);
3779
4678
  }
3780
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children(collection, loading, reFetchCollection));
4679
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children(collection, loading, reFetchCollection));
3781
4680
  };
4681
+ const theme = css`
4682
+ :root {
4683
+ --tina-color-primary-light: #2296fe;
4684
+ --tina-color-primary: #0084ff;
4685
+ --tina-color-primary-dark: #0574e4;
4686
+ --tina-color-error-light: #eb6337;
4687
+ --tina-color-error: #ec4815;
4688
+ --tina-color-error-dark: #dc4419;
4689
+ --tina-color-warning-light: #f5e06e;
4690
+ --tina-color-warning: #e9d050;
4691
+ --tina-color-warning-dark: #d3ba38;
4692
+ --tina-color-success-light: #57c355;
4693
+ --tina-color-success: #3cad3a;
4694
+ --tina-color-success-dark: #249a21;
4695
+ --tina-color-grey-0: #ffffff;
4696
+ --tina-color-grey-1: #f6f6f9;
4697
+ --tina-color-grey-2: #edecf3;
4698
+ --tina-color-grey-3: #e1ddec;
4699
+ --tina-color-grey-4: #b2adbe;
4700
+ --tina-color-grey-5: #918c9e;
4701
+ --tina-color-grey-6: #716c7f;
4702
+ --tina-color-grey-7: #565165;
4703
+ --tina-color-grey-8: #433e52;
4704
+ --tina-color-grey-9: #363145;
4705
+ --tina-color-grey-10: #252336;
4706
+ --tina-color-indicator: var(--tina-color-primary);
4707
+
4708
+ --tina-radius-small: 5px;
4709
+ --tina-radius-big: 24px;
4710
+
4711
+ --tina-padding-small: 12px;
4712
+ --tina-padding-big: 20px;
4713
+
4714
+ --tina-font-size-0: 12px;
4715
+ --tina-font-size-1: 13px;
4716
+ --tina-font-size-2: 15px;
4717
+ --tina-font-size-3: 16px;
4718
+ --tina-font-size-4: 18px;
4719
+ --tina-font-size-5: 20px;
4720
+ --tina-font-size-6: 22px;
4721
+ --tina-font-size-7: 26px;
4722
+ --tina-font-size-8: 32px;
4723
+
4724
+ --tina-font-family: 'Inter', sans-serif;
4725
+
4726
+ --tina-font-weight-regular: 400;
4727
+ --tina-font-weight-bold: 600;
4728
+
4729
+ --tina-shadow-big: 0px 2px 3px rgba(0, 0, 0, 0.05),
4730
+ 0 4px 12px rgba(0, 0, 0, 0.1);
4731
+ --tina-shadow-small: 0px 2px 3px rgba(0, 0, 0, 0.12);
4732
+
4733
+ --tina-timing-short: 85ms;
4734
+ --tina-timing-medium: 150ms;
4735
+ --tina-timing-long: 250ms;
4736
+
4737
+ --tina-z-index-0: 0;
4738
+ --tina-z-index-1: 10;
4739
+ --tina-z-index-2: 20;
4740
+ --tina-z-index-3: 30;
4741
+ --tina-z-index-4: 40;
4742
+ --tina-z-index-5: 50;
4743
+
4744
+ --tina-sidebar-width: 340px;
4745
+ --tina-sidebar-header-height: 60px;
4746
+ --tina-toolbar-height: 62px;
4747
+ }
4748
+ `;
4749
+ createGlobalStyle`
4750
+ ${theme};
4751
+ `;
4752
+ const Button = (_g) => {
4753
+ var _h = _g, {
4754
+ variant = "secondary",
4755
+ as: Tag = "button",
4756
+ size = "medium",
4757
+ busy,
4758
+ disabled,
4759
+ rounded = "full",
4760
+ children,
4761
+ className
4762
+ } = _h, props = __objRest(_h, [
4763
+ "variant",
4764
+ "as",
4765
+ "size",
4766
+ "busy",
4767
+ "disabled",
4768
+ "rounded",
4769
+ "children",
4770
+ "className"
4771
+ ]);
4772
+ const baseClasses = "icon-parent border-0 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 ";
4773
+ const variantClasses = {
4774
+ primary: `shadow text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500`,
4775
+ secondary: `shadow text-gray-500 hover:text-blue-500 bg-gray-50 hover:bg-white border border-gray-200`,
4776
+ white: `shadow text-gray-500 hover:text-blue-500 bg-white hover:bg-gray-50 border border-gray-200`,
4777
+ ghost: `text-gray-500 hover:text-blue-500 hover:shadow border border-transparent hover:border-gray-200 bg-transparent`,
4778
+ danger: `shadow text-white bg-red-500 hover:bg-red-600 focus:ring-red-500`
4779
+ };
4780
+ const state = busy ? `busy` : disabled ? `disabled` : `default`;
4781
+ const stateClasses = {
4782
+ disabled: `pointer-events-none opacity-30 cursor-not-allowed`,
4783
+ busy: `pointer-events-none opacity-70 cursor-wait`,
4784
+ default: ``
4785
+ };
4786
+ const roundedClasses = {
4787
+ full: `rounded-full`,
4788
+ left: `rounded-l-full`,
4789
+ right: `rounded-r-full`
4790
+ };
4791
+ const sizeClasses = {
4792
+ small: `text-xs h-8 px-3`,
4793
+ medium: `text-sm h-10 px-4`,
4794
+ custom: ``
4795
+ };
4796
+ return /* @__PURE__ */ React.createElement(Tag, __spreadValues({
4797
+ className: `${baseClasses} ${variantClasses[variant]} ${sizeClasses[size]} ${stateClasses[state]} ${roundedClasses[rounded]} ${className}`
4798
+ }, props), children);
4799
+ };
4800
+ function CursorPaginator({
4801
+ navigateNext,
4802
+ navigatePrev,
4803
+ hasNext,
4804
+ hasPrev,
4805
+ variant = "secondary"
4806
+ }) {
4807
+ return /* @__PURE__ */ React__default.createElement("div", {
4808
+ className: "w-full flex flex-shrink-0 justify-end gap-2 items-center"
4809
+ }, /* @__PURE__ */ React__default.createElement(Button, {
4810
+ variant,
4811
+ disabled: !hasPrev,
4812
+ onClick: navigatePrev
4813
+ }, /* @__PURE__ */ React__default.createElement(BiLeftArrowAlt, {
4814
+ className: "w-6 h-full mr-2 opacity-70"
4815
+ }), " Previous"), /* @__PURE__ */ React__default.createElement(Button, {
4816
+ variant,
4817
+ disabled: !hasNext,
4818
+ onClick: navigateNext
4819
+ }, "Next ", /* @__PURE__ */ React__default.createElement(BiRightArrowAlt, {
4820
+ className: "w-6 h-full ml-2 opacity-70"
4821
+ })));
4822
+ }
3782
4823
  const TemplateMenu = ({ templates }) => {
3783
- return /* @__PURE__ */ React.createElement(Menu, {
4824
+ return /* @__PURE__ */ React__default.createElement(Menu, {
3784
4825
  as: "div",
3785
4826
  className: "relative inline-block text-left"
3786
- }, () => /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(Menu.Button, {
4827
+ }, () => /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(Menu.Button, {
3787
4828
  className: "icon-parent inline-flex items-center font-medium focus:outline-none focus:ring-2 focus:shadow-outline text-center rounded-full justify-center transition-all duration-150 ease-out shadow text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 text-sm h-10 px-6"
3788
- }, "Create New ", /* @__PURE__ */ React.createElement(BiPlus, {
4829
+ }, "Create New ", /* @__PURE__ */ React__default.createElement(BiPlus, {
3789
4830
  className: "w-5 h-full ml-1 opacity-70"
3790
- }))), /* @__PURE__ */ React.createElement(Transition, {
4831
+ }))), /* @__PURE__ */ React__default.createElement(Transition, {
3791
4832
  as: Fragment,
3792
4833
  enter: "transition ease-out duration-100",
3793
4834
  enterFrom: "transform opacity-0 scale-95",
@@ -3795,13 +4836,13 @@ const TemplateMenu = ({ templates }) => {
3795
4836
  leave: "transition ease-in duration-75",
3796
4837
  leaveFrom: "transform opacity-100 scale-100",
3797
4838
  leaveTo: "transform opacity-0 scale-95"
3798
- }, /* @__PURE__ */ React.createElement(Menu.Items, {
4839
+ }, /* @__PURE__ */ React__default.createElement(Menu.Items, {
3799
4840
  className: "origin-top-right absolute right-0 mt-2 w-56 rounded-md shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none"
3800
- }, /* @__PURE__ */ React.createElement("div", {
4841
+ }, /* @__PURE__ */ React__default.createElement("div", {
3801
4842
  className: "py-1"
3802
- }, templates.map((template) => /* @__PURE__ */ React.createElement(Menu.Item, {
4843
+ }, templates.map((template) => /* @__PURE__ */ React__default.createElement(Menu.Item, {
3803
4844
  key: `${template.label}-${template.name}`
3804
- }, ({ active }) => /* @__PURE__ */ React.createElement(Link, {
4845
+ }, ({ active }) => /* @__PURE__ */ React__default.createElement(Link, {
3805
4846
  to: `${template.name}/new`,
3806
4847
  className: `w-full text-md px-4 py-2 tracking-wide flex items-center opacity-80 text-gray-600 ${active && "text-gray-800 opacity-100"}`
3807
4848
  }, template.label))))))));
@@ -3820,22 +4861,32 @@ const handleNavigate = (navigate, cms, collection, document) => {
3820
4861
  const CollectionListPage = () => {
3821
4862
  const navigate = useNavigate();
3822
4863
  const { collectionName } = useParams();
3823
- const [open, setOpen] = React.useState(false);
3824
- const [vars, setVars] = React.useState({
4864
+ const [open, setOpen] = React__default.useState(false);
4865
+ const [vars, setVars] = React__default.useState({
3825
4866
  collection: collectionName,
3826
4867
  relativePath: ""
3827
4868
  });
3828
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => {
3829
- return /* @__PURE__ */ React.createElement(GetCollection, {
4869
+ const [endCursor, setEndCursor] = useState("");
4870
+ const [prevCursors, setPrevCursors] = useState([]);
4871
+ const loc = useLocation();
4872
+ useEffect(() => {
4873
+ setEndCursor("");
4874
+ setPrevCursors([]);
4875
+ }, [loc]);
4876
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => {
4877
+ return /* @__PURE__ */ React__default.createElement(GetCollection, {
3830
4878
  cms,
3831
4879
  collectionName,
3832
- includeDocuments: true
4880
+ includeDocuments: true,
4881
+ startCursor: endCursor
3833
4882
  }, (collection, _loading, reFetchCollection) => {
3834
4883
  var _a, _b;
3835
4884
  const totalCount = collection.documents.totalCount;
3836
4885
  const documents = collection.documents.edges;
3837
4886
  const admin = cms.api.admin;
3838
- return /* @__PURE__ */ React.createElement(PageWrapper, null, /* @__PURE__ */ React.createElement(React.Fragment, null, open && /* @__PURE__ */ React.createElement(DeleteModal, {
4887
+ const pageInfo = collection.documents.pageInfo;
4888
+ const useDataFlag = cms.flags.get("experimentalData");
4889
+ return /* @__PURE__ */ React__default.createElement(PageWrapper, null, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, open && /* @__PURE__ */ React__default.createElement(DeleteModal, {
3839
4890
  filename: vars.relativePath,
3840
4891
  deleteFunc: async () => {
3841
4892
  try {
@@ -3849,114 +4900,133 @@ const CollectionListPage = () => {
3849
4900
  }
3850
4901
  },
3851
4902
  close: () => setOpen(false)
3852
- }), /* @__PURE__ */ React.createElement(PageHeader, {
4903
+ }), /* @__PURE__ */ React__default.createElement(PageHeader, {
3853
4904
  isLocalMode: (_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode
3854
- }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("h3", {
3855
- className: "text-2xl text-gray-700"
3856
- }, collection.label ? collection.label : collection.name), !collection.templates && /* @__PURE__ */ React.createElement(Link, {
4905
+ }, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("h3", {
4906
+ className: "font-sans text-2xl text-gray-700"
4907
+ }, collection.label ? collection.label : collection.name), !collection.templates && /* @__PURE__ */ React__default.createElement(Link, {
3857
4908
  to: `new`,
3858
4909
  className: "icon-parent inline-flex items-center font-medium focus:outline-none focus:ring-2 focus:shadow-outline text-center rounded-full justify-center transition-all duration-150 ease-out shadow text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 text-sm h-10 px-6"
3859
- }, "Create New", " ", /* @__PURE__ */ React.createElement(BiPlus, {
4910
+ }, "Create New", " ", /* @__PURE__ */ React__default.createElement(BiPlus, {
3860
4911
  className: "w-5 h-full ml-1 opacity-70"
3861
- })), collection.templates && /* @__PURE__ */ React.createElement(TemplateMenu, {
4912
+ })), collection.templates && /* @__PURE__ */ React__default.createElement(TemplateMenu, {
3862
4913
  templates: collection.templates
3863
- }))), /* @__PURE__ */ React.createElement(PageBody, null, /* @__PURE__ */ React.createElement("div", {
4914
+ }))), /* @__PURE__ */ React__default.createElement(PageBody, null, /* @__PURE__ */ React__default.createElement("div", {
3864
4915
  className: "w-full mx-auto max-w-screen-xl"
3865
- }, totalCount > 0 && /* @__PURE__ */ React.createElement("table", {
4916
+ }, totalCount > 0 && /* @__PURE__ */ React__default.createElement("table", {
3866
4917
  className: "table-auto shadow bg-white border-b border-gray-200 w-full max-w-full rounded-lg"
3867
- }, /* @__PURE__ */ React.createElement("tbody", {
4918
+ }, /* @__PURE__ */ React__default.createElement("tbody", {
3868
4919
  className: "divide-y divide-gray-150"
3869
4920
  }, documents.map((document) => {
3870
4921
  var _a2;
3871
4922
  const hasTitle = Boolean(document.node._sys.title);
3872
4923
  const subfolders = document.node._sys.breadcrumbs.slice(0, -1).join("/");
3873
- return /* @__PURE__ */ React.createElement("tr", {
4924
+ return /* @__PURE__ */ React__default.createElement("tr", {
3874
4925
  key: `document-${document.node._sys.relativePath}`,
3875
4926
  className: ""
3876
- }, /* @__PURE__ */ React.createElement("td", {
4927
+ }, /* @__PURE__ */ React__default.createElement("td", {
3877
4928
  className: "px-6 py-2 whitespace-nowrap"
3878
- }, /* @__PURE__ */ React.createElement("a", {
4929
+ }, /* @__PURE__ */ React__default.createElement("a", {
3879
4930
  className: "text-blue-600 hover:text-blue-400 flex items-center gap-3 cursor-pointer",
3880
4931
  onClick: () => {
3881
4932
  handleNavigate(navigate, cms, collection, document.node);
3882
4933
  }
3883
- }, /* @__PURE__ */ React.createElement(BiEdit, {
4934
+ }, /* @__PURE__ */ React__default.createElement(BiEdit, {
3884
4935
  className: "inline-block h-6 w-auto opacity-70"
3885
- }), /* @__PURE__ */ React.createElement("span", null, /* @__PURE__ */ React.createElement("span", {
4936
+ }), /* @__PURE__ */ React__default.createElement("span", null, /* @__PURE__ */ React__default.createElement("span", {
3886
4937
  className: "block text-xs text-gray-400 mb-1 uppercase"
3887
- }, hasTitle ? "Title" : "Filename"), /* @__PURE__ */ React.createElement("span", {
4938
+ }, hasTitle ? "Title" : "Filename"), /* @__PURE__ */ React__default.createElement("span", {
3888
4939
  className: "h-5 leading-5 block whitespace-nowrap"
3889
- }, subfolders && /* @__PURE__ */ React.createElement("span", {
4940
+ }, subfolders && /* @__PURE__ */ React__default.createElement("span", {
3890
4941
  className: "text-xs text-gray-400"
3891
- }, `${subfolders}/`), /* @__PURE__ */ React.createElement("span", null, hasTitle ? (_a2 = document.node._sys) == null ? void 0 : _a2.title : document.node._sys.filename))))), hasTitle && /* @__PURE__ */ React.createElement("td", {
4942
+ }, `${subfolders}/`), /* @__PURE__ */ React__default.createElement("span", null, hasTitle ? (_a2 = document.node._sys) == null ? void 0 : _a2.title : document.node._sys.filename))))), hasTitle && /* @__PURE__ */ React__default.createElement("td", {
3892
4943
  className: "px-6 py-4 whitespace-nowrap"
3893
- }, /* @__PURE__ */ React.createElement("span", {
4944
+ }, /* @__PURE__ */ React__default.createElement("span", {
3894
4945
  className: "block text-xs text-gray-400 mb-1 uppercase"
3895
- }, "Filename"), /* @__PURE__ */ React.createElement("span", {
4946
+ }, "Filename"), /* @__PURE__ */ React__default.createElement("span", {
3896
4947
  className: "h-5 leading-5 block text-sm font-medium text-gray-900"
3897
- }, document.node._sys.filename)), /* @__PURE__ */ React.createElement("td", {
4948
+ }, document.node._sys.filename)), /* @__PURE__ */ React__default.createElement("td", {
3898
4949
  className: "px-6 py-4 whitespace-nowrap"
3899
- }, /* @__PURE__ */ React.createElement("span", {
4950
+ }, /* @__PURE__ */ React__default.createElement("span", {
3900
4951
  className: "block text-xs text-gray-400 mb-1 uppercase"
3901
- }, "Extension"), /* @__PURE__ */ React.createElement("span", {
4952
+ }, "Extension"), /* @__PURE__ */ React__default.createElement("span", {
3902
4953
  className: "h-5 leading-5 block text-sm font-medium text-gray-900"
3903
- }, document.node._sys.extension)), /* @__PURE__ */ React.createElement("td", {
4954
+ }, document.node._sys.extension)), /* @__PURE__ */ React__default.createElement("td", {
3904
4955
  className: "px-6 py-4 whitespace-nowrap"
3905
- }, /* @__PURE__ */ React.createElement("span", {
4956
+ }, /* @__PURE__ */ React__default.createElement("span", {
3906
4957
  className: "block text-xs text-gray-400 mb-1 uppercase"
3907
- }, "Template"), /* @__PURE__ */ React.createElement("span", {
4958
+ }, "Template"), /* @__PURE__ */ React__default.createElement("span", {
3908
4959
  className: "h-5 leading-5 block text-sm font-medium text-gray-900"
3909
- }, document.node._sys.template)), /* @__PURE__ */ React.createElement("td", {
4960
+ }, document.node._sys.template)), /* @__PURE__ */ React__default.createElement("td", {
3910
4961
  className: "w-0"
3911
- }, /* @__PURE__ */ React.createElement(OverflowMenu, {
4962
+ }, /* @__PURE__ */ React__default.createElement(OverflowMenu, {
3912
4963
  toolbarItems: [
3913
4964
  {
3914
4965
  name: "edit",
3915
4966
  label: "Edit in Admin",
3916
- Icon: /* @__PURE__ */ React.createElement(BiEdit, {
4967
+ Icon: /* @__PURE__ */ React__default.createElement(BiEdit, {
3917
4968
  size: "1.3rem"
3918
4969
  }),
3919
4970
  onMouseDown: () => {
3920
- navigate(`${document.node._sys.filename}`, { replace: true });
4971
+ navigate(`${document.node._sys.breadcrumbs.join("/")}`, { replace: true });
3921
4972
  }
3922
4973
  },
3923
4974
  {
3924
4975
  name: "delete",
3925
4976
  label: "Delete",
3926
- Icon: /* @__PURE__ */ React.createElement(BiTrash, {
4977
+ Icon: /* @__PURE__ */ React__default.createElement(BiTrash, {
3927
4978
  size: "1.3rem",
3928
4979
  className: "text-red-500"
3929
4980
  }),
3930
4981
  onMouseDown: () => {
3931
4982
  setVars({
3932
4983
  collection: collectionName,
3933
- relativePath: document.node._sys.filename + document.node._sys.extension
4984
+ relativePath: document.node._sys.breadcrumbs.join("/") + document.node._sys.extension
3934
4985
  });
3935
4986
  setOpen(true);
3936
4987
  }
3937
4988
  }
3938
4989
  ]
3939
4990
  })));
3940
- })))))));
4991
+ }))), useDataFlag && /* @__PURE__ */ React__default.createElement("div", {
4992
+ className: "pt-3"
4993
+ }, /* @__PURE__ */ React__default.createElement(CursorPaginator, {
4994
+ variant: "white",
4995
+ hasNext: pageInfo == null ? void 0 : pageInfo.hasNextPage,
4996
+ navigateNext: () => {
4997
+ const newState = [...prevCursors, endCursor];
4998
+ setPrevCursors(newState);
4999
+ setEndCursor(pageInfo == null ? void 0 : pageInfo.endCursor);
5000
+ },
5001
+ hasPrev: prevCursors.length > 0,
5002
+ navigatePrev: () => {
5003
+ const prev = prevCursors[prevCursors.length - 1];
5004
+ if (typeof prev === "string") {
5005
+ const newState = prevCursors.slice(0, -1);
5006
+ setPrevCursors(newState);
5007
+ setEndCursor(prev);
5008
+ }
5009
+ }
5010
+ }))))));
3941
5011
  });
3942
5012
  });
3943
5013
  };
3944
5014
  const DeleteModal = ({ close: close2, deleteFunc, filename }) => {
3945
- return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(ModalPopup, null, /* @__PURE__ */ React.createElement(ModalHeader, {
5015
+ return /* @__PURE__ */ React__default.createElement(Modal, null, /* @__PURE__ */ React__default.createElement(ModalHeader, {
3946
5016
  close: close2
3947
- }, "Delete ", filename), /* @__PURE__ */ React.createElement(ModalBody, {
5017
+ }, "Delete ", filename), /* @__PURE__ */ React__default.createElement(ModalBody, {
3948
5018
  padded: true
3949
- }, /* @__PURE__ */ React.createElement("p", null, `Are you sure you want to delete ${filename}?`)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(Button, {
5019
+ }, /* @__PURE__ */ React__default.createElement("p", null, `Are you sure you want to delete ${filename}?`)), /* @__PURE__ */ React__default.createElement(ModalActions, null, /* @__PURE__ */ React__default.createElement(Button$1, {
3950
5020
  style: { flexGrow: 2 },
3951
5021
  onClick: close2
3952
- }, "Cancel"), /* @__PURE__ */ React.createElement(Button, {
5022
+ }, "Cancel"), /* @__PURE__ */ React__default.createElement(Button$1, {
3953
5023
  style: { flexGrow: 3 },
3954
5024
  variant: "danger",
3955
5025
  onClick: async () => {
3956
5026
  await deleteFunc();
3957
5027
  close2();
3958
5028
  }
3959
- }, "Delete"))));
5029
+ }, "Delete")));
3960
5030
  };
3961
5031
  function HiChevronRight(props) {
3962
5032
  return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 20 20", "fill": "currentColor" }, "child": [{ "tag": "path", "attr": { "fillRule": "evenodd", "d": "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z", "clipRule": "evenodd" } }] })(props);
@@ -3983,7 +5053,7 @@ const createDocument = async (cms, collection, template, mutationInfo, values) =
3983
5053
  };
3984
5054
  const CollectionCreatePage = () => {
3985
5055
  const { collectionName, templateName } = useParams();
3986
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => /* @__PURE__ */ React.createElement(GetCollection, {
5056
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => /* @__PURE__ */ React__default.createElement(GetCollection, {
3987
5057
  cms,
3988
5058
  collectionName,
3989
5059
  includeDocuments: false
@@ -3992,7 +5062,7 @@ const CollectionCreatePage = () => {
3992
5062
  includeCollection: true,
3993
5063
  includeTemplate: !!collection.templates
3994
5064
  };
3995
- return /* @__PURE__ */ React.createElement(RenderForm$1, {
5065
+ return /* @__PURE__ */ React__default.createElement(RenderForm$1, {
3996
5066
  cms,
3997
5067
  collection,
3998
5068
  templateName,
@@ -4025,7 +5095,7 @@ const RenderForm$1 = ({ cms, collection, templateName, mutationInfo }) => {
4025
5095
  name: "filename",
4026
5096
  label: "Filename",
4027
5097
  component: "text",
4028
- description: /* @__PURE__ */ React.createElement("span", null, "A unique filename for the content.", /* @__PURE__ */ React.createElement("br", null), "Examples: ", /* @__PURE__ */ React.createElement("code", null, "My_Document"), ", ", /* @__PURE__ */ React.createElement("code", null, "My_Document.en"), ",", " ", /* @__PURE__ */ React.createElement("code", null, "sub-folder/My_Document")),
5098
+ description: /* @__PURE__ */ React__default.createElement("span", null, "A unique filename for the content.", /* @__PURE__ */ React__default.createElement("br", null), "Examples: ", /* @__PURE__ */ React__default.createElement("code", null, "My_Document"), ", ", /* @__PURE__ */ React__default.createElement("code", null, "My_Document.en"), ",", " ", /* @__PURE__ */ React__default.createElement("code", null, "sub-folder/My_Document")),
4029
5099
  placeholder: `My_Document`,
4030
5100
  validate: (value, allValues, meta) => {
4031
5101
  if (!value) {
@@ -4058,24 +5128,24 @@ const RenderForm$1 = ({ cms, collection, templateName, mutationInfo }) => {
4058
5128
  const windowWidth = useWindowWidth();
4059
5129
  const renderNavToggle = windowWidth < navBreakpoint + 1;
4060
5130
  const headerPadding = renderNavToggle ? "px-20" : "px-6";
4061
- return /* @__PURE__ */ React.createElement(PageWrapper, null, /* @__PURE__ */ React.createElement(React.Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement("div", {
5131
+ return /* @__PURE__ */ React__default.createElement(PageWrapper, null, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement("div", {
4062
5132
  className: `py-4 border-b border-gray-200 bg-white ${headerPadding}`
4063
- }, /* @__PURE__ */ React.createElement("div", {
5133
+ }, /* @__PURE__ */ React__default.createElement("div", {
4064
5134
  className: "max-w-form mx-auto"
4065
- }, /* @__PURE__ */ React.createElement("div", {
5135
+ }, /* @__PURE__ */ React__default.createElement("div", {
4066
5136
  className: "mb-2"
4067
- }, /* @__PURE__ */ React.createElement("span", {
5137
+ }, /* @__PURE__ */ React__default.createElement("span", {
4068
5138
  className: "block text-sm leading-tight uppercase text-gray-400 mb-1"
4069
- }, /* @__PURE__ */ React.createElement(Link, {
5139
+ }, /* @__PURE__ */ React__default.createElement(Link, {
4070
5140
  to: `/collections/${collection.name}`,
4071
5141
  className: "inline-block text-current hover:text-blue-400 focus:underline focus:outline-none focus:text-blue-400 font-medium transition-colors duration-150 ease-out"
4072
- }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React.createElement(HiChevronRight, {
5142
+ }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React__default.createElement(HiChevronRight, {
4073
5143
  className: "inline-block -mt-0.5 opacity-50"
4074
- })), /* @__PURE__ */ React.createElement("span", {
5144
+ })), /* @__PURE__ */ React__default.createElement("span", {
4075
5145
  className: "text-xl text-gray-700 font-medium leading-tight"
4076
- }, "Create New")), /* @__PURE__ */ React.createElement(FormStatus, {
5146
+ }, "Create New")), /* @__PURE__ */ React__default.createElement(FormStatus, {
4077
5147
  pristine: formIsPristine
4078
- }))), /* @__PURE__ */ React.createElement(FormBuilder, {
5148
+ }))), /* @__PURE__ */ React__default.createElement(FormBuilder, {
4079
5149
  form,
4080
5150
  onPristineChange: setFormIsPristine
4081
5151
  })));
@@ -4116,9 +5186,9 @@ const GetDocument = ({
4116
5186
  return null;
4117
5187
  }
4118
5188
  if (loading) {
4119
- return /* @__PURE__ */ React.createElement(LoadingPage, null);
5189
+ return /* @__PURE__ */ React__default.createElement(LoadingPage, null);
4120
5190
  }
4121
- return /* @__PURE__ */ React.createElement(React.Fragment, null, children(document, loading));
5191
+ return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children(document, loading));
4122
5192
  };
4123
5193
  const updateDocument = async (cms, relativePath, collection, mutationInfo, values) => {
4124
5194
  const api = new TinaAdminApi(cms);
@@ -4139,7 +5209,7 @@ const updateDocument = async (cms, relativePath, collection, mutationInfo, value
4139
5209
  const CollectionUpdatePage = () => {
4140
5210
  const _a = useParams(), { collectionName } = _a, rest = __objRest(_a, ["collectionName"]);
4141
5211
  const { "*": filename } = rest;
4142
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => /* @__PURE__ */ React.createElement(GetCollection, {
5212
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => /* @__PURE__ */ React__default.createElement(GetCollection, {
4143
5213
  cms,
4144
5214
  collectionName,
4145
5215
  includeDocuments: false
@@ -4149,11 +5219,11 @@ const CollectionUpdatePage = () => {
4149
5219
  includeCollection: true,
4150
5220
  includeTemplate: !!collection.templates
4151
5221
  };
4152
- return /* @__PURE__ */ React.createElement(GetDocument, {
5222
+ return /* @__PURE__ */ React__default.createElement(GetDocument, {
4153
5223
  cms,
4154
5224
  collectionName: collection.name,
4155
5225
  relativePath
4156
- }, (document) => /* @__PURE__ */ React.createElement(RenderForm, {
5226
+ }, (document) => /* @__PURE__ */ React__default.createElement(RenderForm, {
4157
5227
  cms,
4158
5228
  document,
4159
5229
  filename,
@@ -4206,24 +5276,24 @@ const RenderForm = ({
4206
5276
  const windowWidth = useWindowWidth();
4207
5277
  const renderNavToggle = windowWidth < navBreakpoint + 1;
4208
5278
  const headerPadding = renderNavToggle ? "px-20" : "px-6";
4209
- return /* @__PURE__ */ React.createElement(PageWrapper, null, /* @__PURE__ */ React.createElement(React.Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React.createElement(LocalWarning, null), /* @__PURE__ */ React.createElement("div", {
5279
+ return /* @__PURE__ */ React__default.createElement(PageWrapper, null, /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default.createElement(LocalWarning, null), /* @__PURE__ */ React__default.createElement("div", {
4210
5280
  className: `py-4 border-b border-gray-200 bg-white ${headerPadding}`
4211
- }, /* @__PURE__ */ React.createElement("div", {
5281
+ }, /* @__PURE__ */ React__default.createElement("div", {
4212
5282
  className: "max-w-form mx-auto"
4213
- }, /* @__PURE__ */ React.createElement("div", {
5283
+ }, /* @__PURE__ */ React__default.createElement("div", {
4214
5284
  className: "mb-2"
4215
- }, /* @__PURE__ */ React.createElement("span", {
5285
+ }, /* @__PURE__ */ React__default.createElement("span", {
4216
5286
  className: "block text-sm leading-tight uppercase text-gray-400 mb-1"
4217
- }, /* @__PURE__ */ React.createElement(Link, {
5287
+ }, /* @__PURE__ */ React__default.createElement(Link, {
4218
5288
  to: `/collections/${collection.name}`,
4219
5289
  className: "inline-block text-current hover:text-blue-400 focus:underline focus:outline-none focus:text-blue-400 font-medium transition-colors duration-150 ease-out"
4220
- }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React.createElement(HiChevronRight, {
5290
+ }, collection.label ? collection.label : collection.name), /* @__PURE__ */ React__default.createElement(HiChevronRight, {
4221
5291
  className: "inline-block -mt-0.5 opacity-50"
4222
- })), /* @__PURE__ */ React.createElement("span", {
5292
+ })), /* @__PURE__ */ React__default.createElement("span", {
4223
5293
  className: "text-xl text-gray-700 font-medium leading-tight"
4224
- }, "Edit ", `${filename}.${collection.format}`)), /* @__PURE__ */ React.createElement(FormStatus, {
5294
+ }, "Edit ", `${filename}.${collection.format}`)), /* @__PURE__ */ React__default.createElement(FormStatus, {
4225
5295
  pristine: formIsPristine
4226
- }))), /* @__PURE__ */ React.createElement(FormBuilder, {
5296
+ }))), /* @__PURE__ */ React__default.createElement(FormBuilder, {
4227
5297
  form,
4228
5298
  onPristineChange: setFormIsPristine
4229
5299
  })));
@@ -4233,24 +5303,24 @@ const ScreenPage = () => {
4233
5303
  const navBreakpoint = 1e3;
4234
5304
  const windowWidth = useWindowWidth();
4235
5305
  const renderNavToggle = windowWidth < navBreakpoint + 1;
4236
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => {
5306
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => {
4237
5307
  var _a, _b;
4238
5308
  const screens = cms.plugins.getType("screen").all();
4239
5309
  const selectedScreen = screens.find(({ name }) => slugify(name) === screenName);
4240
- return /* @__PURE__ */ React.createElement("div", {
5310
+ return /* @__PURE__ */ React__default.createElement("div", {
4241
5311
  className: "relative w-full h-full flex flex-col items-stretch justify-between"
4242
- }, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React.createElement(LocalWarning, null), renderNavToggle && /* @__PURE__ */ React.createElement("div", {
5312
+ }, ((_b = (_a = cms == null ? void 0 : cms.api) == null ? void 0 : _a.tina) == null ? void 0 : _b.isLocalMode) && /* @__PURE__ */ React__default.createElement(LocalWarning, null), renderNavToggle && /* @__PURE__ */ React__default.createElement("div", {
4243
5313
  className: `py-5 border-b border-gray-200 bg-white pl-18`
4244
- }, selectedScreen.name), /* @__PURE__ */ React.createElement("div", {
5314
+ }, selectedScreen.name), /* @__PURE__ */ React__default.createElement("div", {
4245
5315
  className: "flex-1 overflow-y-auto relative flex flex-col items-stretch justify-between"
4246
- }, /* @__PURE__ */ React.createElement(selectedScreen.Component, {
5316
+ }, /* @__PURE__ */ React__default.createElement(selectedScreen.Component, {
4247
5317
  close: () => {
4248
5318
  }
4249
5319
  })));
4250
5320
  });
4251
5321
  };
4252
5322
  const Redirect = () => {
4253
- React.useEffect(() => {
5323
+ React__default.useEffect(() => {
4254
5324
  if (window) {
4255
5325
  window.location.assign("/");
4256
5326
  }
@@ -4264,43 +5334,43 @@ const TinaAdmin = () => {
4264
5334
  return null;
4265
5335
  }
4266
5336
  if (!edit) {
4267
- return /* @__PURE__ */ React.createElement(Layout, null, /* @__PURE__ */ React.createElement(LoginPage, null));
5337
+ return /* @__PURE__ */ React__default.createElement(Layout, null, /* @__PURE__ */ React__default.createElement(LoginPage, null));
4268
5338
  }
4269
- return /* @__PURE__ */ React.createElement(GetCMS, null, (cms) => {
5339
+ return /* @__PURE__ */ React__default.createElement(GetCMS, null, (cms) => {
4270
5340
  const isTinaAdminEnabled = cms.flags.get("tina-admin") === false ? false : true;
4271
5341
  if (isTinaAdminEnabled) {
4272
- return /* @__PURE__ */ React.createElement(Layout, null, /* @__PURE__ */ React.createElement(HashRouter, null, /* @__PURE__ */ React.createElement("div", {
5342
+ return /* @__PURE__ */ React__default.createElement(Layout, null, /* @__PURE__ */ React__default.createElement(HashRouter, null, /* @__PURE__ */ React__default.createElement("div", {
4273
5343
  className: "flex items-stretch h-screen overflow-hidden"
4274
- }, /* @__PURE__ */ React.createElement(Sidebar, {
5344
+ }, /* @__PURE__ */ React__default.createElement(Sidebar, {
4275
5345
  cms
4276
- }), /* @__PURE__ */ React.createElement("div", {
5346
+ }), /* @__PURE__ */ React__default.createElement("div", {
4277
5347
  className: "flex-1 relative"
4278
- }, /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route, {
5348
+ }, /* @__PURE__ */ React__default.createElement(Routes, null, /* @__PURE__ */ React__default.createElement(Route, {
4279
5349
  path: "collections/:collectionName/new",
4280
- element: /* @__PURE__ */ React.createElement(CollectionCreatePage, null)
4281
- }), /* @__PURE__ */ React.createElement(Route, {
5350
+ element: /* @__PURE__ */ React__default.createElement(CollectionCreatePage, null)
5351
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4282
5352
  path: "collections/:collectionName/:templateName/new",
4283
- element: /* @__PURE__ */ React.createElement(CollectionCreatePage, null)
4284
- }), /* @__PURE__ */ React.createElement(Route, {
5353
+ element: /* @__PURE__ */ React__default.createElement(CollectionCreatePage, null)
5354
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4285
5355
  path: "collections/:collectionName/*",
4286
- element: /* @__PURE__ */ React.createElement(CollectionUpdatePage, null)
4287
- }), /* @__PURE__ */ React.createElement(Route, {
5356
+ element: /* @__PURE__ */ React__default.createElement(CollectionUpdatePage, null)
5357
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4288
5358
  path: "collections/:collectionName",
4289
- element: /* @__PURE__ */ React.createElement(CollectionListPage, null)
4290
- }), /* @__PURE__ */ React.createElement(Route, {
5359
+ element: /* @__PURE__ */ React__default.createElement(CollectionListPage, null)
5360
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4291
5361
  path: "screens/:screenName",
4292
- element: /* @__PURE__ */ React.createElement(ScreenPage, null)
4293
- }), /* @__PURE__ */ React.createElement(Route, {
5362
+ element: /* @__PURE__ */ React__default.createElement(ScreenPage, null)
5363
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4294
5364
  path: "/",
4295
- element: /* @__PURE__ */ React.createElement(DashboardPage, null)
5365
+ element: /* @__PURE__ */ React__default.createElement(DashboardPage, null)
4296
5366
  }))))));
4297
5367
  } else {
4298
- return /* @__PURE__ */ React.createElement(Layout, null, /* @__PURE__ */ React.createElement(HashRouter, null, /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route, {
5368
+ return /* @__PURE__ */ React__default.createElement(Layout, null, /* @__PURE__ */ React__default.createElement(HashRouter, null, /* @__PURE__ */ React__default.createElement(Routes, null, /* @__PURE__ */ React__default.createElement(Route, {
4299
5369
  path: "logout",
4300
- element: /* @__PURE__ */ React.createElement(LogoutPage, null)
4301
- }), /* @__PURE__ */ React.createElement(Route, {
5370
+ element: /* @__PURE__ */ React__default.createElement(LogoutPage, null)
5371
+ }), /* @__PURE__ */ React__default.createElement(Route, {
4302
5372
  path: "/",
4303
- element: /* @__PURE__ */ React.createElement(Redirect, null)
5373
+ element: /* @__PURE__ */ React__default.createElement(Redirect, null)
4304
5374
  }))));
4305
5375
  }
4306
5376
  });