tinacms 0.0.0-b4c6a60-20241010070518 → 0.0.0-b551232-20250318064010

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/dist/admin/api.d.ts +1 -0
  2. package/dist/admin/components/GetCollection.d.ts +2 -2
  3. package/dist/admin/types.d.ts +3 -0
  4. package/dist/auth/TinaCloudProvider.d.ts +1 -1
  5. package/dist/cache/node-cache.d.ts +1 -0
  6. package/dist/client.js +90 -61
  7. package/dist/client.mjs +49 -35
  8. package/dist/hooks/create-page-plugin.d.ts +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.js +1875 -643
  11. package/dist/index.mjs +1892 -660
  12. package/dist/node-cache-5e8db9f0.mjs +63 -0
  13. package/dist/react.d.ts +1 -0
  14. package/dist/react.js +10 -1
  15. package/dist/react.mjs +10 -1
  16. package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
  17. package/dist/toolkit/fields/plugins/mdx-field-plugin/index.d.ts +4 -1
  18. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
  19. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
  20. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/index.d.ts +1 -1
  21. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +6 -11
  22. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +5 -1
  23. package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-provider.d.ts +2 -2
  24. package/dist/toolkit/fields/plugins/wrap-field-with-meta.d.ts +8 -0
  25. package/dist/unifiedClient/index.d.ts +8 -1
  26. package/package.json +41 -41
  27. package/dist/__vite-browser-external-d06ac358.mjs +0 -4
  28. package/dist/node-cache-7fa2452c.mjs +0 -43
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("zod"), require("react"), require("react-dom"), require("@udecode/cn"), require("@udecode/plate"), require("@udecode/plate-common"), require("@udecode/plate-slash-command"), require("slate-react"), require("@udecode/plate-code-block"), require("@monaco-editor/react"), require("@headlessui/react"), require("class-variance-authority"), require("lucide-react"), require("mermaid"), require("@udecode/plate-heading"), require("@ariakit/react"), require("@udecode/plate-combobox"), require("@udecode/plate-table"), require("@udecode/plate-resizable"), require("@radix-ui/react-popover"), require("@radix-ui/react-slot"), require("@radix-ui/react-dropdown-menu"), require("@radix-ui/react-separator"), require("final-form-arrays"), require("final-form-set-field-data"), require("final-form"), require("react-final-form"), require("prop-types"), require("react-beautiful-dnd"), require("react-color"), require("color-string"), require("react-dropzone"), require("clsx"), require("tailwind-merge"), require("cmdk"), require("is-hotkey"), require("slate"), require("lodash.get"), require("moment"), require("date-fns"), require("@udecode/plate-link"), require("@radix-ui/react-toolbar"), require("@radix-ui/react-tooltip"), require("@udecode/plate-paragraph"), require("@udecode/plate-block-quote"), require("@udecode/plate-floating"), require("@react-hook/window-size"), require("graphql"), require("graphql-tag"), require("@tinacms/schema-tools"), require("yup"), require("@graphql-inspector/core"), require("react-router-dom"), require("@tinacms/mdx")) : typeof define === "function" && define.amd ? define(["exports", "zod", "react", "react-dom", "@udecode/cn", "@udecode/plate", "@udecode/plate-common", "@udecode/plate-slash-command", "slate-react", "@udecode/plate-code-block", "@monaco-editor/react", "@headlessui/react", "class-variance-authority", "lucide-react", "mermaid", "@udecode/plate-heading", "@ariakit/react", "@udecode/plate-combobox", "@udecode/plate-table", "@udecode/plate-resizable", "@radix-ui/react-popover", "@radix-ui/react-slot", "@radix-ui/react-dropdown-menu", "@radix-ui/react-separator", "final-form-arrays", "final-form-set-field-data", "final-form", "react-final-form", "prop-types", "react-beautiful-dnd", "react-color", "color-string", "react-dropzone", "clsx", "tailwind-merge", "cmdk", "is-hotkey", "slate", "lodash.get", "moment", "date-fns", "@udecode/plate-link", "@radix-ui/react-toolbar", "@radix-ui/react-tooltip", "@udecode/plate-paragraph", "@udecode/plate-block-quote", "@udecode/plate-floating", "@react-hook/window-size", "graphql", "graphql-tag", "@tinacms/schema-tools", "yup", "@graphql-inspector/core", "react-router-dom", "@tinacms/mdx"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tinacms = {}, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP));
3
- })(this, function(exports2, zod, React, reactDom, cn$1, plate, plateCommon, plateSlashCommand, slateReact, plateCodeBlock, MonacoEditor, react, classVarianceAuthority, lucideReact, mermaid, plateHeading, react$1, plateCombobox, plateTable, plateResizable, PopoverPrimitive, reactSlot, DropdownMenuPrimitive, SeparatorPrimitive, arrayMutators, setFieldData, finalForm, reactFinalForm, PropTypes, reactBeautifulDnd, pkg$1, pkg, dropzone, clsx, tailwindMerge, cmdk, isHotkey, slate, get, moment, dateFns, plateLink, ToolbarPrimitive, TooltipPrimitive, plateParagraph, plateBlockQuote, plateFloating, windowSize, graphql, gql, schemaTools, yup, core, reactRouterDom, mdx) {
2
+ typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("zod"), require("react"), require("react-dom"), require("@udecode/cn"), require("@udecode/plate"), require("@udecode/plate-common"), require("@udecode/plate-slash-command"), require("slate-react"), require("@udecode/plate-code-block"), require("@monaco-editor/react"), require("@headlessui/react"), require("class-variance-authority"), require("lucide-react"), require("mermaid"), require("@udecode/plate-heading"), require("@ariakit/react"), require("@udecode/plate-combobox"), require("@udecode/plate-table"), require("@udecode/plate-resizable"), require("@radix-ui/react-popover"), require("@radix-ui/react-slot"), require("@radix-ui/react-dropdown-menu"), require("@radix-ui/react-separator"), require("final-form-arrays"), require("final-form-set-field-data"), require("final-form"), require("react-final-form"), require("prop-types"), require("react-beautiful-dnd"), require("react-color"), require("color-string"), require("react-dropzone"), require("clsx"), require("tailwind-merge"), require("cmdk"), require("is-hotkey"), require("slate"), require("lodash.get"), require("moment"), require("date-fns"), require("@udecode/plate-link"), require("@radix-ui/react-toolbar"), require("@radix-ui/react-tooltip"), require("@udecode/plate-paragraph"), require("@udecode/plate-block-quote"), require("@udecode/plate-floating"), require("@react-hook/window-size"), require("graphql"), require("graphql-tag"), require("@tinacms/schema-tools"), require("@graphql-inspector/core"), require("yup"), require("react-router-dom"), require("@tinacms/mdx")) : typeof define === "function" && define.amd ? define(["exports", "zod", "react", "react-dom", "@udecode/cn", "@udecode/plate", "@udecode/plate-common", "@udecode/plate-slash-command", "slate-react", "@udecode/plate-code-block", "@monaco-editor/react", "@headlessui/react", "class-variance-authority", "lucide-react", "mermaid", "@udecode/plate-heading", "@ariakit/react", "@udecode/plate-combobox", "@udecode/plate-table", "@udecode/plate-resizable", "@radix-ui/react-popover", "@radix-ui/react-slot", "@radix-ui/react-dropdown-menu", "@radix-ui/react-separator", "final-form-arrays", "final-form-set-field-data", "final-form", "react-final-form", "prop-types", "react-beautiful-dnd", "react-color", "color-string", "react-dropzone", "clsx", "tailwind-merge", "cmdk", "is-hotkey", "slate", "lodash.get", "moment", "date-fns", "@udecode/plate-link", "@radix-ui/react-toolbar", "@radix-ui/react-tooltip", "@udecode/plate-paragraph", "@udecode/plate-block-quote", "@udecode/plate-floating", "@react-hook/window-size", "graphql", "graphql-tag", "@tinacms/schema-tools", "@graphql-inspector/core", "yup", "react-router-dom", "@tinacms/mdx"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.tinacms = {}, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP, global.NOOP));
3
+ })(this, function(exports2, zod, React, reactDom, cn$1, plate, plateCommon, plateSlashCommand, slateReact, plateCodeBlock, MonacoEditor, react, classVarianceAuthority, lucideReact, mermaid, plateHeading, react$1, plateCombobox, plateTable, plateResizable, PopoverPrimitive, reactSlot, DropdownMenuPrimitive, SeparatorPrimitive, arrayMutators, setFieldData, finalForm, reactFinalForm, PropTypes, reactBeautifulDnd, pkg$1, pkg, dropzone, clsx, tailwindMerge, cmdk, isHotkey, slate, get, moment, dateFns, plateLink, ToolbarPrimitive, TooltipPrimitive, plateParagraph, plateBlockQuote, plateFloating, windowSize, graphql, gql, schemaTools, core, yup, reactRouterDom, mdx) {
4
4
  "use strict";var __defProp = Object.defineProperty;
5
5
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
6
  var __publicField = (obj, key, value) => {
@@ -774,6 +774,22 @@ var __publicField = (obj, key, value) => {
774
774
  );
775
775
  };
776
776
  }
777
+ function wrapFieldWithNoHeader(Field) {
778
+ return (props) => {
779
+ return /* @__PURE__ */ React__namespace.createElement(
780
+ FieldMeta,
781
+ {
782
+ name: props.input.name,
783
+ label: false,
784
+ description: "",
785
+ error: props.meta.error,
786
+ index: props.index,
787
+ tinaForm: props.tinaForm
788
+ },
789
+ /* @__PURE__ */ React__namespace.createElement(Field, { ...props })
790
+ );
791
+ };
792
+ }
777
793
  function wrapFieldWithError(Field) {
778
794
  return (props) => {
779
795
  return /* @__PURE__ */ React__namespace.createElement(
@@ -846,6 +862,16 @@ var __publicField = (obj, key, value) => {
846
862
  className,
847
863
  ...props
848
864
  }) => {
865
+ if (typeof children === "string") {
866
+ return /* @__PURE__ */ React__namespace.createElement(
867
+ "span",
868
+ {
869
+ className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0 ${className}`,
870
+ ...props,
871
+ dangerouslySetInnerHTML: { __html: children }
872
+ }
873
+ );
874
+ }
849
875
  return /* @__PURE__ */ React__namespace.createElement(
850
876
  "span",
851
877
  {
@@ -1321,7 +1347,7 @@ var __publicField = (obj, key, value) => {
1321
1347
  React.useEffect(() => {
1322
1348
  if (mermaidRef.current) {
1323
1349
  mermaid.initialize({ startOnLoad: true });
1324
- mermaid.run();
1350
+ mermaid.init();
1325
1351
  }
1326
1352
  }, [config]);
1327
1353
  return /* @__PURE__ */ React.createElement("div", { contentEditable: false, className: "border-border border-b" }, /* @__PURE__ */ React.createElement("div", { ref: mermaidRef }, /* @__PURE__ */ React.createElement("pre", { className: "mermaid not-tina-prose" }, config)));
@@ -1348,7 +1374,7 @@ flowchart TD
1348
1374
  --> id2(modify me to see changes!)
1349
1375
  id2
1350
1376
  --> id3(Click the top button to preview the changes)
1351
- --> id4(Learn about mermaid diagrams @ mermaid.js.org)`;
1377
+ --> id4(Learn about mermaid diagrams - mermaid.js.org)`;
1352
1378
  const MermaidElement = cn$1.withRef(
1353
1379
  ({ children, nodeProps, element, ...props }, ref) => {
1354
1380
  const [mermaidConfig, setMermaidConfig] = React.useState(
@@ -1364,7 +1390,7 @@ flowchart TD
1364
1390
  children: [{ type: "text", text: "" }]
1365
1391
  };
1366
1392
  React.useEffect(() => {
1367
- if (mermaid.parse(mermaidConfig, { suppressErrors: false })) {
1393
+ if (mermaid.parse(mermaidConfig)) {
1368
1394
  setMermaidError(null);
1369
1395
  }
1370
1396
  }, [mermaidConfig]);
@@ -2917,7 +2943,7 @@ flowchart TD
2917
2943
  ),
2918
2944
  [plate.MARK_CODE]: CodeLeaf,
2919
2945
  [plate.MARK_UNDERLINE]: cn$1.withProps(plateCommon.PlateLeaf, { as: "u" }),
2920
- [plate.MARK_STRIKETHROUGH]: cn$1.withProps(plateCommon.PlateLeaf, { as: "s" }),
2946
+ [plate.MARK_STRIKETHROUGH]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React.createElement("s", { ...props.attributes, ...props }),
2921
2947
  [plate.MARK_ITALIC]: cn$1.withProps(plateCommon.PlateLeaf, { as: "em" }),
2922
2948
  [plate.MARK_BOLD]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React.createElement("strong", { ...props.attributes, ...props }),
2923
2949
  [plate.ELEMENT_HR]: ({
@@ -3676,7 +3702,7 @@ flowchart TD
3676
3702
  };
3677
3703
  const sizeClasses = {
3678
3704
  small: `text-xs h-8 px-3`,
3679
- medium: `text-sm h-10 px-4`,
3705
+ medium: `text-sm h-10 px-8`,
3680
3706
  custom: ``
3681
3707
  };
3682
3708
  return /* @__PURE__ */ React__namespace.createElement(
@@ -3804,7 +3830,7 @@ flowchart TD
3804
3830
  function _objectWithoutProperties(source, excluded) {
3805
3831
  if (source == null)
3806
3832
  return {};
3807
- var target = _objectWithoutPropertiesLoose$1(source, excluded);
3833
+ var target = _objectWithoutPropertiesLoose(source, excluded);
3808
3834
  var key, i;
3809
3835
  if (Object.getOwnPropertySymbols) {
3810
3836
  var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
@@ -3819,7 +3845,7 @@ flowchart TD
3819
3845
  }
3820
3846
  return target;
3821
3847
  }
3822
- function _objectWithoutPropertiesLoose$1(source, excluded) {
3848
+ function _objectWithoutPropertiesLoose(source, excluded) {
3823
3849
  if (source == null)
3824
3850
  return {};
3825
3851
  var target = {};
@@ -4909,7 +4935,28 @@ flowchart TD
4909
4935
  onChange,
4910
4936
  value,
4911
4937
  step
4912
- }) => /* @__PURE__ */ React__namespace.createElement(Input, { type: "number", step, value, onChange });
4938
+ }) => /* @__PURE__ */ React__namespace.createElement(
4939
+ Input,
4940
+ {
4941
+ type: "number",
4942
+ step,
4943
+ value,
4944
+ onChange: (event) => {
4945
+ const inputValue = event.target.value;
4946
+ const newValue = inputValue === "" ? void 0 : inputValue;
4947
+ if (onChange) {
4948
+ const syntheticEvent = {
4949
+ ...event,
4950
+ target: {
4951
+ ...event.target,
4952
+ value: newValue
4953
+ }
4954
+ };
4955
+ onChange(syntheticEvent);
4956
+ }
4957
+ }
4958
+ }
4959
+ );
4913
4960
  function useCMS() {
4914
4961
  return useCMS$1();
4915
4962
  }
@@ -5150,7 +5197,7 @@ flowchart TD
5150
5197
  side: "bottom",
5151
5198
  className: cn(
5152
5199
  "rounded-md border bg-white p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
5153
- "max-h-[30vh] max-w-[30vh] overflow-y-auto",
5200
+ "max-h-[30vh] max-w-[30vw] overflow-y-auto",
5154
5201
  className
5155
5202
  ),
5156
5203
  ...props
@@ -5242,11 +5289,7 @@ flowchart TD
5242
5289
  const node = nodes.find((node2) => node2.id === value);
5243
5290
  return node ? node._internalSys.filename : null;
5244
5291
  };
5245
- const ComboboxDemo = ({
5246
- cms,
5247
- input,
5248
- field
5249
- }) => {
5292
+ const Combobox = ({ cms, input, field }) => {
5250
5293
  const [open2, setOpen] = React__namespace.useState(false);
5251
5294
  const [value, setValue] = React__namespace.useState(input.value);
5252
5295
  const [displayText, setDisplayText] = React__namespace.useState(null);
@@ -5262,7 +5305,9 @@ flowchart TD
5262
5305
  }, [value, input, optionSets]);
5263
5306
  React__namespace.useEffect(() => {
5264
5307
  if (field.experimental___filter && optionSets.length > 0) {
5265
- setFilteredOptionsList(field.experimental___filter(optionSets, void 0));
5308
+ setFilteredOptionsList(
5309
+ field.experimental___filter(optionSets, void 0)
5310
+ );
5266
5311
  } else {
5267
5312
  setFilteredOptionsList(optionSets);
5268
5313
  }
@@ -5270,17 +5315,17 @@ flowchart TD
5270
5315
  if (loading === true) {
5271
5316
  return /* @__PURE__ */ React__namespace.createElement(LoadingDots, { color: "var(--tina-color-primary)" });
5272
5317
  }
5273
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(Popover, { open: open2, onOpenChange: setOpen }, /* @__PURE__ */ React__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React__namespace.createElement(
5318
+ return /* @__PURE__ */ React__namespace.createElement(Popover, { open: open2, onOpenChange: setOpen }, /* @__PURE__ */ React__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React__namespace.createElement(
5274
5319
  Button,
5275
5320
  {
5276
5321
  variant: "outline",
5277
5322
  role: "combobox",
5278
5323
  "aria-expanded": open2,
5279
- className: "w-52 justify-between"
5324
+ className: "w-full justify-between"
5280
5325
  },
5281
5326
  /* @__PURE__ */ React__namespace.createElement("p", { className: "truncate" }, displayText ?? "Choose an option..."),
5282
5327
  open2 ? /* @__PURE__ */ React__namespace.createElement(IoMdArrowDropup, { size: 20 }) : /* @__PURE__ */ React__namespace.createElement(IoMdArrowDropdown, { size: 20 })
5283
- )), /* @__PURE__ */ React__namespace.createElement(PopoverContent, { className: "p-0 relative" }, /* @__PURE__ */ React__namespace.createElement(
5328
+ )), /* @__PURE__ */ React__namespace.createElement(PopoverContent, { className: "p-0 relative min-w-[var(--radix-popover-trigger-width)]" }, /* @__PURE__ */ React__namespace.createElement(
5284
5329
  Command,
5285
5330
  {
5286
5331
  shouldFilter: !field.experimental___filter,
@@ -5304,32 +5349,25 @@ flowchart TD
5304
5349
  }
5305
5350
  ),
5306
5351
  /* @__PURE__ */ React__namespace.createElement(CommandEmpty, null, "No reference found"),
5307
- /* @__PURE__ */ React__namespace.createElement(CommandList, null, filteredOptionsList.length > 0 && (filteredOptionsList == null ? void 0 : filteredOptionsList.map(({ collection, edges }) => /* @__PURE__ */ React__namespace.createElement(
5308
- CommandGroup,
5309
- {
5310
- key: `${collection}-group`,
5311
- heading: collection
5312
- },
5313
- /* @__PURE__ */ React__namespace.createElement(CommandList, null, edges == null ? void 0 : edges.map(({ node }) => {
5314
- const { id, _values } = node;
5315
- return /* @__PURE__ */ React__namespace.createElement(
5316
- OptionComponent,
5317
- {
5318
- id,
5319
- key: id,
5320
- value,
5321
- field,
5322
- _values,
5323
- node,
5324
- onSelect: (currentValue) => {
5325
- setValue(currentValue);
5326
- setOpen(false);
5327
- }
5352
+ /* @__PURE__ */ React__namespace.createElement(CommandList, null, filteredOptionsList.length > 0 && (filteredOptionsList == null ? void 0 : filteredOptionsList.map(({ collection, edges }) => /* @__PURE__ */ React__namespace.createElement(CommandGroup, { key: `${collection}-group`, heading: collection }, /* @__PURE__ */ React__namespace.createElement(CommandList, null, edges == null ? void 0 : edges.map(({ node }) => {
5353
+ const { id, _values } = node;
5354
+ return /* @__PURE__ */ React__namespace.createElement(
5355
+ OptionComponent,
5356
+ {
5357
+ id,
5358
+ key: id,
5359
+ value,
5360
+ field,
5361
+ _values,
5362
+ node,
5363
+ onSelect: (currentValue) => {
5364
+ setValue(currentValue);
5365
+ setOpen(false);
5328
5366
  }
5329
- );
5330
- }))
5331
- ))))
5332
- ))));
5367
+ }
5368
+ );
5369
+ }))))))
5370
+ )));
5333
5371
  };
5334
5372
  const useGetNode = (cms, id) => {
5335
5373
  const [document2, setDocument] = React__namespace.useState(
@@ -5402,7 +5440,7 @@ flowchart TD
5402
5440
  };
5403
5441
  const Reference = ({ input, field }) => {
5404
5442
  const cms = useCMS();
5405
- return /* @__PURE__ */ React__namespace.createElement("div", null, /* @__PURE__ */ React__namespace.createElement("div", { className: "relative group" }, /* @__PURE__ */ React__namespace.createElement(ComboboxDemo, { cms, input, field })), /* @__PURE__ */ React__namespace.createElement(ReferenceLink, { cms, input }));
5443
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement("div", { className: "relative group" }, /* @__PURE__ */ React__namespace.createElement(Combobox, { cms, input, field })), /* @__PURE__ */ React__namespace.createElement(ReferenceLink, { cms, input }));
5406
5444
  };
5407
5445
  const ButtonToggle = ({
5408
5446
  input,
@@ -5639,7 +5677,9 @@ flowchart TD
5639
5677
  onClick: () => {
5640
5678
  const state = tinaForm.finalForm.getState();
5641
5679
  if (state.invalid === true) {
5642
- cms.alerts.error("Cannot navigate away from an invalid form.");
5680
+ cms.alerts.error(
5681
+ "Cannot navigate away from an invalid form."
5682
+ );
5643
5683
  return;
5644
5684
  }
5645
5685
  cms.dispatch({
@@ -5710,10 +5750,11 @@ flowchart TD
5710
5750
  return /* @__PURE__ */ React.createElement(
5711
5751
  "button",
5712
5752
  {
5713
- className: `w-8 px-1 py-2.5 flex items-center justify-center hover:bg-gray-50 text-gray-200 hover:text-red-500 ${disabled && "pointer-events-none opacity-30 cursor-not-allowed"}`,
5753
+ type: "button",
5754
+ className: `w-8 px-1 py-2.5 flex items-center justify-center text-gray-200 hover:opacity-100 opacity-30 hover:bg-gray-50 ${disabled && "pointer-events-none opacity-30 cursor-not-allowed"}`,
5714
5755
  onClick
5715
5756
  },
5716
- /* @__PURE__ */ React.createElement(TrashIcon, { className: "fill-current transition-colors ease-out duration-100" })
5757
+ /* @__PURE__ */ React.createElement(TrashIcon, { className: "h-5 w-auto fill-current text-red-500 transition-colors duration-150 ease-out" })
5717
5758
  );
5718
5759
  };
5719
5760
  const DragHandle = ({ isDragging }) => {
@@ -5791,27 +5832,35 @@ flowchart TD
5791
5832
  ))))
5792
5833
  ))));
5793
5834
  };
5794
- const Group = wrapFieldWithError(({ tinaForm, field }) => {
5795
- const cms = useCMS$1();
5796
- React__namespace.useState(false);
5797
- return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
5798
- Header,
5799
- {
5800
- onClick: () => {
5801
- const state = tinaForm.finalForm.getState();
5802
- if (state.invalid === true) {
5803
- cms.alerts.error("Cannot navigate away from an invalid form.");
5804
- return;
5835
+ const Group = wrapFieldWithNoHeader(
5836
+ ({ tinaForm, field }) => {
5837
+ const cms = useCMS$1();
5838
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
5839
+ Header,
5840
+ {
5841
+ onClick: () => {
5842
+ const state = tinaForm.finalForm.getState();
5843
+ if (state.invalid === true) {
5844
+ cms.alerts.error("Cannot navigate away from an invalid form.");
5845
+ return;
5846
+ }
5847
+ cms.dispatch({
5848
+ type: "forms:set-active-field-name",
5849
+ value: { formId: tinaForm.id, fieldName: field.name }
5850
+ });
5805
5851
  }
5806
- cms.dispatch({
5807
- type: "forms:set-active-field-name",
5808
- value: { formId: tinaForm.id, fieldName: field.name }
5809
- });
5810
- }
5811
- },
5812
- field.label || field.name
5813
- ));
5814
- });
5852
+ },
5853
+ field.label || field.name,
5854
+ field.description && /* @__PURE__ */ React__namespace.createElement(
5855
+ "span",
5856
+ {
5857
+ className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0`,
5858
+ dangerouslySetInnerHTML: { __html: field.description }
5859
+ }
5860
+ )
5861
+ ));
5862
+ }
5863
+ );
5815
5864
  const Header = ({ onClick, children }) => {
5816
5865
  return /* @__PURE__ */ React__namespace.createElement("div", { className: "pt-1 mb-5" }, /* @__PURE__ */ React__namespace.createElement(
5817
5866
  "button",
@@ -6214,7 +6263,9 @@ flowchart TD
6214
6263
  onClick: () => {
6215
6264
  const state = tinaForm.finalForm.getState();
6216
6265
  if (state.invalid === true) {
6217
- cms.alerts.error("Cannot navigate away from an invalid form.");
6266
+ cms.alerts.error(
6267
+ "Cannot navigate away from an invalid form."
6268
+ );
6218
6269
  return;
6219
6270
  }
6220
6271
  cms.dispatch({
@@ -6696,28 +6747,28 @@ flowchart TD
6696
6747
  }
6697
6748
  renderDayHeaders() {
6698
6749
  const locale = this.props.viewDate.localeData();
6699
- let dayItems = getDaysOfWeek(locale).map((day, index) => /* @__PURE__ */ React.createElement("th", { key: day + index, className: "dow" }, day));
6750
+ const dayItems = getDaysOfWeek(locale).map((day, index) => /* @__PURE__ */ React.createElement("th", { key: day + index, className: "dow" }, day));
6700
6751
  return /* @__PURE__ */ React.createElement("tr", null, dayItems);
6701
6752
  }
6702
6753
  renderDays() {
6703
6754
  const date = this.props.viewDate;
6704
6755
  const startOfMonth = date.clone().startOf("month");
6705
6756
  const endOfMonth = date.clone().endOf("month");
6706
- let rows = [[], [], [], [], [], []];
6707
- let startDate = date.clone().subtract(1, "months");
6757
+ const rows = [[], [], [], [], [], []];
6758
+ const startDate = date.clone().subtract(1, "months");
6708
6759
  startDate.date(startDate.daysInMonth()).startOf("week");
6709
- let endDate = startDate.clone().add(42, "d");
6760
+ const endDate = startDate.clone().add(42, "d");
6710
6761
  let i = 0;
6711
6762
  while (startDate.isBefore(endDate)) {
6712
- let row = getRow$2(rows, i++);
6763
+ const row = getRow$2(rows, i++);
6713
6764
  row.push(this.renderDay(startDate, startOfMonth, endOfMonth));
6714
6765
  startDate.add(1, "d");
6715
6766
  }
6716
6767
  return rows.map((r, i2) => /* @__PURE__ */ React.createElement("tr", { key: `${endDate.month()}_${i2}` }, r));
6717
6768
  }
6718
6769
  renderDay(date, startOfMonth, endOfMonth) {
6719
- let selectedDate = this.props.selectedDate;
6720
- let dayProps = {
6770
+ const selectedDate = this.props.selectedDate;
6771
+ const dayProps = {
6721
6772
  key: date.format("M_D"),
6722
6773
  "data-value": date.date(),
6723
6774
  "data-month": date.month(),
@@ -6771,7 +6822,7 @@ flowchart TD
6771
6822
  }
6772
6823
  function getDaysOfWeek(locale) {
6773
6824
  const first = locale.firstDayOfWeek();
6774
- let dow = [];
6825
+ const dow = [];
6775
6826
  let i = 0;
6776
6827
  locale._weekdaysMin.forEach(function(day) {
6777
6828
  dow[(7 + i++ - first) % 7] = day;
@@ -6789,7 +6840,7 @@ flowchart TD
6789
6840
  return /* @__PURE__ */ React.createElement("div", { className: "rdtMonths" }, /* @__PURE__ */ React.createElement("table", null, /* @__PURE__ */ React.createElement("thead", null, this.renderNavigation())), /* @__PURE__ */ React.createElement("table", null, /* @__PURE__ */ React.createElement("tbody", null, this.renderMonths())));
6790
6841
  }
6791
6842
  renderNavigation() {
6792
- let year = this.props.viewDate.year();
6843
+ const year = this.props.viewDate.year();
6793
6844
  return /* @__PURE__ */ React.createElement(
6794
6845
  ViewNavigation,
6795
6846
  {
@@ -6802,9 +6853,9 @@ flowchart TD
6802
6853
  );
6803
6854
  }
6804
6855
  renderMonths() {
6805
- let rows = [[], [], []];
6856
+ const rows = [[], [], []];
6806
6857
  for (let month = 0; month < 12; month++) {
6807
- let row = getRow$1(rows, month);
6858
+ const row = getRow$1(rows, month);
6808
6859
  row.push(this.renderMonth(month));
6809
6860
  }
6810
6861
  return rows.map((months, i) => /* @__PURE__ */ React.createElement("tr", { key: i }, months));
@@ -6821,7 +6872,7 @@ flowchart TD
6821
6872
  if (selectedDate && selectedDate.year() === this.props.viewDate.year() && selectedDate.month() === month) {
6822
6873
  className += " rdtActive";
6823
6874
  }
6824
- let props = { key: month, className, "data-value": month, onClick };
6875
+ const props = { key: month, className, "data-value": month, onClick };
6825
6876
  if (this.props.renderMonth) {
6826
6877
  return this.props.renderMonth(
6827
6878
  props,
@@ -6833,11 +6884,11 @@ flowchart TD
6833
6884
  return /* @__PURE__ */ React.createElement("td", { ...props }, this.getMonthText(month));
6834
6885
  }
6835
6886
  isDisabledMonth(month) {
6836
- let isValidDate = this.props.isValidDate;
6887
+ const isValidDate = this.props.isValidDate;
6837
6888
  if (!isValidDate) {
6838
6889
  return false;
6839
6890
  }
6840
- let date = this.props.viewDate.clone().set({ month });
6891
+ const date = this.props.viewDate.clone().set({ month });
6841
6892
  let day = date.endOf("month").date() + 1;
6842
6893
  while (day-- > 1) {
6843
6894
  if (isValidDate(date.date(day))) {
@@ -6889,9 +6940,9 @@ flowchart TD
6889
6940
  }
6890
6941
  renderYears() {
6891
6942
  const viewYear = this.getViewYear();
6892
- let rows = [[], [], []];
6943
+ const rows = [[], [], []];
6893
6944
  for (let year = viewYear - 1; year < viewYear + 11; year++) {
6894
- let row = getRow(rows, year - viewYear);
6945
+ const row = getRow(rows, year - viewYear);
6895
6946
  row.push(this.renderYear(year));
6896
6947
  }
6897
6948
  return rows.map((years, i) => /* @__PURE__ */ React.createElement("tr", { key: i }, years));
@@ -6908,7 +6959,7 @@ flowchart TD
6908
6959
  if (selectedYear === year) {
6909
6960
  className += " rdtActive";
6910
6961
  }
6911
- let props = { key: year, className, "data-value": year, onClick };
6962
+ const props = { key: year, className, "data-value": year, onClick };
6912
6963
  return this.props.renderYear(
6913
6964
  props,
6914
6965
  year,
@@ -6922,15 +6973,15 @@ flowchart TD
6922
6973
  return this.props.selectedDate && this.props.selectedDate.year();
6923
6974
  }
6924
6975
  isDisabledYear(year) {
6925
- let cache = this.disabledYearsCache;
6976
+ const cache = this.disabledYearsCache;
6926
6977
  if (cache[year] !== void 0) {
6927
6978
  return cache[year];
6928
6979
  }
6929
- let isValidDate = this.props.isValidDate;
6980
+ const isValidDate = this.props.isValidDate;
6930
6981
  if (!isValidDate) {
6931
6982
  return false;
6932
6983
  }
6933
- let date = this.props.viewDate.clone().set({ year });
6984
+ const date = this.props.viewDate.clone().set({ year });
6934
6985
  let day = date.endOf("year").dayOfYear() + 1;
6935
6986
  while (day-- > 1) {
6936
6987
  if (isValidDate(date.dayOfYear(day))) {
@@ -6977,7 +7028,7 @@ flowchart TD
6977
7028
  }
6978
7029
  };
6979
7030
  function createConstraints(overrideTimeConstraints) {
6980
- let constraints = {};
7031
+ const constraints = {};
6981
7032
  Object.keys(timeConstraints).forEach((type) => {
6982
7033
  constraints[type] = {
6983
7034
  ...timeConstraints[type],
@@ -6993,7 +7044,7 @@ flowchart TD
6993
7044
  this.state = this.getTimeParts(props.selectedDate || props.viewDate);
6994
7045
  }
6995
7046
  render() {
6996
- let items2 = [];
7047
+ const items2 = [];
6997
7048
  const timeParts = this.state;
6998
7049
  this.getCounters().forEach((c, i) => {
6999
7050
  if (i && c !== "ampm") {
@@ -7055,8 +7106,8 @@ flowchart TD
7055
7106
  }
7056
7107
  if (type === "ampm")
7057
7108
  return this.toggleDayPart();
7058
- let update = {};
7059
- let body = document.body;
7109
+ const update = {};
7110
+ const body = document.body;
7060
7111
  update[type] = this[action](type);
7061
7112
  this.setState(update);
7062
7113
  this.timer = setTimeout(() => {
@@ -7099,8 +7150,8 @@ flowchart TD
7099
7150
  return pad(type, value);
7100
7151
  }
7101
7152
  getCounters() {
7102
- let counters = [];
7103
- let format2 = this.props.timeFormat;
7153
+ const counters = [];
7154
+ const format2 = this.props.timeFormat;
7104
7155
  if (format2.toLowerCase().indexOf("h") !== -1) {
7105
7156
  counters.push("hours");
7106
7157
  if (format2.indexOf("m") !== -1) {
@@ -7153,244 +7204,65 @@ flowchart TD
7153
7204
  str = "0" + str;
7154
7205
  return str;
7155
7206
  }
7156
- function _inheritsLoose(subClass, superClass) {
7157
- subClass.prototype = Object.create(superClass.prototype);
7158
- subClass.prototype.constructor = subClass;
7159
- _setPrototypeOf(subClass, superClass);
7160
- }
7161
- function _setPrototypeOf(o, p) {
7162
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p2) {
7163
- o2.__proto__ = p2;
7164
- return o2;
7165
- };
7166
- return _setPrototypeOf(o, p);
7167
- }
7168
- function _objectWithoutPropertiesLoose(source, excluded) {
7169
- if (source == null)
7170
- return {};
7171
- var target = {};
7172
- var sourceKeys = Object.keys(source);
7173
- var key, i;
7174
- for (i = 0; i < sourceKeys.length; i++) {
7175
- key = sourceKeys[i];
7176
- if (excluded.indexOf(key) >= 0)
7177
- continue;
7178
- target[key] = source[key];
7179
- }
7180
- return target;
7181
- }
7182
- function _assertThisInitialized(self2) {
7183
- if (self2 === void 0) {
7184
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
7185
- }
7186
- return self2;
7187
- }
7188
- function isNodeFound(current, componentNode, ignoreClass) {
7189
- if (current === componentNode) {
7190
- return true;
7191
- }
7192
- if (current.correspondingElement) {
7193
- return current.correspondingElement.classList.contains(ignoreClass);
7194
- }
7195
- return current.classList.contains(ignoreClass);
7196
- }
7197
- function findHighest(current, componentNode, ignoreClass) {
7198
- if (current === componentNode) {
7199
- return true;
7207
+ var useClickAway$1 = {};
7208
+ var util = {};
7209
+ Object.defineProperty(util, "__esModule", { value: true });
7210
+ util.isNavigator = util.isBrowser = util.off = util.on = util.noop = void 0;
7211
+ var noop = function() {
7212
+ };
7213
+ util.noop = noop;
7214
+ function on(obj) {
7215
+ var args = [];
7216
+ for (var _i = 1; _i < arguments.length; _i++) {
7217
+ args[_i - 1] = arguments[_i];
7200
7218
  }
7201
- while (current.parentNode || current.host) {
7202
- if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {
7203
- return true;
7204
- }
7205
- current = current.parentNode || current.host;
7219
+ if (obj && obj.addEventListener) {
7220
+ obj.addEventListener.apply(obj, args);
7206
7221
  }
7207
- return current;
7208
7222
  }
7209
- function clickedScrollbar(evt) {
7210
- return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;
7211
- }
7212
- var testPassiveEventSupport = function testPassiveEventSupport2() {
7213
- if (typeof window === "undefined" || typeof window.addEventListener !== "function") {
7214
- return;
7223
+ util.on = on;
7224
+ function off(obj) {
7225
+ var args = [];
7226
+ for (var _i = 1; _i < arguments.length; _i++) {
7227
+ args[_i - 1] = arguments[_i];
7215
7228
  }
7216
- var passive = false;
7217
- var options = Object.defineProperty({}, "passive", {
7218
- get: function get2() {
7219
- passive = true;
7220
- }
7221
- });
7222
- var noop = function noop2() {
7223
- };
7224
- window.addEventListener("testPassiveEventSupport", noop, options);
7225
- window.removeEventListener("testPassiveEventSupport", noop, options);
7226
- return passive;
7227
- };
7228
- function autoInc(seed) {
7229
- if (seed === void 0) {
7230
- seed = 0;
7229
+ if (obj && obj.removeEventListener) {
7230
+ obj.removeEventListener.apply(obj, args);
7231
7231
  }
7232
- return function() {
7233
- return ++seed;
7234
- };
7235
- }
7236
- var uid = autoInc();
7237
- var passiveEventSupport;
7238
- var handlersMap = {};
7239
- var enabledInstances = {};
7240
- var touchEvents = ["touchstart", "touchmove"];
7241
- var IGNORE_CLASS_NAME = "ignore-react-onclickoutside";
7242
- function getEventHandlerOptions(instance, eventName) {
7243
- var handlerOptions = {};
7244
- var isTouchEvent = touchEvents.indexOf(eventName) !== -1;
7245
- if (isTouchEvent && passiveEventSupport) {
7246
- handlerOptions.passive = !instance.props.preventDefault;
7247
- }
7248
- return handlerOptions;
7249
7232
  }
7250
- function onClickOutsideHOC(WrappedComponent, config) {
7251
- var _class, _temp;
7252
- var componentName = WrappedComponent.displayName || WrappedComponent.name || "Component";
7253
- return _temp = _class = /* @__PURE__ */ function(_Component) {
7254
- _inheritsLoose(onClickOutside, _Component);
7255
- function onClickOutside(props) {
7256
- var _this;
7257
- _this = _Component.call(this, props) || this;
7258
- _this.__outsideClickHandler = function(event) {
7259
- if (typeof _this.__clickOutsideHandlerProp === "function") {
7260
- _this.__clickOutsideHandlerProp(event);
7261
- return;
7262
- }
7263
- var instance = _this.getInstance();
7264
- if (typeof instance.props.handleClickOutside === "function") {
7265
- instance.props.handleClickOutside(event);
7266
- return;
7267
- }
7268
- if (typeof instance.handleClickOutside === "function") {
7269
- instance.handleClickOutside(event);
7270
- return;
7271
- }
7272
- throw new Error("WrappedComponent: " + componentName + " lacks a handleClickOutside(event) function for processing outside click events.");
7273
- };
7274
- _this.__getComponentNode = function() {
7275
- var instance = _this.getInstance();
7276
- if (config && typeof config.setClickOutsideRef === "function") {
7277
- return config.setClickOutsideRef()(instance);
7278
- }
7279
- if (typeof instance.setClickOutsideRef === "function") {
7280
- return instance.setClickOutsideRef();
7281
- }
7282
- return reactDom.findDOMNode(instance);
7283
- };
7284
- _this.enableOnClickOutside = function() {
7285
- if (typeof document === "undefined" || enabledInstances[_this._uid]) {
7286
- return;
7287
- }
7288
- if (typeof passiveEventSupport === "undefined") {
7289
- passiveEventSupport = testPassiveEventSupport();
7290
- }
7291
- enabledInstances[_this._uid] = true;
7292
- var events = _this.props.eventTypes;
7293
- if (!events.forEach) {
7294
- events = [events];
7295
- }
7296
- handlersMap[_this._uid] = function(event) {
7297
- if (_this.componentNode === null)
7298
- return;
7299
- if (_this.initTimeStamp > event.timeStamp)
7300
- return;
7301
- if (_this.props.preventDefault) {
7302
- event.preventDefault();
7303
- }
7304
- if (_this.props.stopPropagation) {
7305
- event.stopPropagation();
7306
- }
7307
- if (_this.props.excludeScrollbar && clickedScrollbar(event))
7308
- return;
7309
- var current = event.composed && event.composedPath && event.composedPath().shift() || event.target;
7310
- if (findHighest(current, _this.componentNode, _this.props.outsideClickIgnoreClass) !== document) {
7311
- return;
7312
- }
7313
- _this.__outsideClickHandler(event);
7314
- };
7315
- events.forEach(function(eventName) {
7316
- document.addEventListener(eventName, handlersMap[_this._uid], getEventHandlerOptions(_assertThisInitialized(_this), eventName));
7317
- });
7318
- };
7319
- _this.disableOnClickOutside = function() {
7320
- delete enabledInstances[_this._uid];
7321
- var fn = handlersMap[_this._uid];
7322
- if (fn && typeof document !== "undefined") {
7323
- var events = _this.props.eventTypes;
7324
- if (!events.forEach) {
7325
- events = [events];
7326
- }
7327
- events.forEach(function(eventName) {
7328
- return document.removeEventListener(eventName, fn, getEventHandlerOptions(_assertThisInitialized(_this), eventName));
7329
- });
7330
- delete handlersMap[_this._uid];
7331
- }
7332
- };
7333
- _this.getRef = function(ref) {
7334
- return _this.instanceRef = ref;
7335
- };
7336
- _this._uid = uid();
7337
- _this.initTimeStamp = performance.now();
7338
- return _this;
7339
- }
7340
- var _proto = onClickOutside.prototype;
7341
- _proto.getInstance = function getInstance() {
7342
- if (WrappedComponent.prototype && !WrappedComponent.prototype.isReactComponent) {
7343
- return this;
7344
- }
7345
- var ref = this.instanceRef;
7346
- return ref.getInstance ? ref.getInstance() : ref;
7347
- };
7348
- _proto.componentDidMount = function componentDidMount() {
7349
- if (typeof document === "undefined" || !document.createElement) {
7350
- return;
7351
- }
7352
- var instance = this.getInstance();
7353
- if (config && typeof config.handleClickOutside === "function") {
7354
- this.__clickOutsideHandlerProp = config.handleClickOutside(instance);
7355
- if (typeof this.__clickOutsideHandlerProp !== "function") {
7356
- throw new Error("WrappedComponent: " + componentName + " lacks a function for processing outside click events specified by the handleClickOutside config option.");
7357
- }
7358
- }
7359
- this.componentNode = this.__getComponentNode();
7360
- if (this.props.disableOnClickOutside)
7361
- return;
7362
- this.enableOnClickOutside();
7363
- };
7364
- _proto.componentDidUpdate = function componentDidUpdate() {
7365
- this.componentNode = this.__getComponentNode();
7366
- };
7367
- _proto.componentWillUnmount = function componentWillUnmount() {
7368
- this.disableOnClickOutside();
7233
+ util.off = off;
7234
+ util.isBrowser = typeof window !== "undefined";
7235
+ util.isNavigator = typeof navigator !== "undefined";
7236
+ Object.defineProperty(useClickAway$1, "__esModule", { value: true });
7237
+ var react_1 = React;
7238
+ var util_1 = util;
7239
+ var defaultEvents = ["mousedown", "touchstart"];
7240
+ var useClickAway = function(ref, onClickAway, events) {
7241
+ if (events === void 0) {
7242
+ events = defaultEvents;
7243
+ }
7244
+ var savedCallback = react_1.useRef(onClickAway);
7245
+ react_1.useEffect(function() {
7246
+ savedCallback.current = onClickAway;
7247
+ }, [onClickAway]);
7248
+ react_1.useEffect(function() {
7249
+ var handler = function(event) {
7250
+ var el = ref.current;
7251
+ el && !el.contains(event.target) && savedCallback.current(event);
7369
7252
  };
7370
- _proto.render = function render() {
7371
- var _this$props = this.props;
7372
- _this$props.excludeScrollbar;
7373
- var props = _objectWithoutPropertiesLoose(_this$props, ["excludeScrollbar"]);
7374
- if (WrappedComponent.prototype && WrappedComponent.prototype.isReactComponent) {
7375
- props.ref = this.getRef;
7376
- } else {
7377
- props.wrappedRef = this.getRef;
7253
+ for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
7254
+ var eventName = events_1[_i];
7255
+ util_1.on(document, eventName, handler);
7256
+ }
7257
+ return function() {
7258
+ for (var _i2 = 0, events_2 = events; _i2 < events_2.length; _i2++) {
7259
+ var eventName2 = events_2[_i2];
7260
+ util_1.off(document, eventName2, handler);
7378
7261
  }
7379
- props.disableOnClickOutside = this.disableOnClickOutside;
7380
- props.enableOnClickOutside = this.enableOnClickOutside;
7381
- return React.createElement(WrappedComponent, props);
7382
7262
  };
7383
- return onClickOutside;
7384
- }(React.Component), _class.displayName = "OnClickOutside(" + componentName + ")", _class.defaultProps = {
7385
- eventTypes: ["mousedown", "touchstart"],
7386
- excludeScrollbar: config && config.excludeScrollbar || false,
7387
- outsideClickIgnoreClass: IGNORE_CLASS_NAME,
7388
- preventDefault: false,
7389
- stopPropagation: false
7390
- }, _class.getClass = function() {
7391
- return WrappedComponent.getClass ? WrappedComponent.getClass() : WrappedComponent;
7392
- }, _temp;
7393
- }
7263
+ }, [events, ref]);
7264
+ };
7265
+ var _default = useClickAway$1.default = useClickAway;
7394
7266
  const viewModes = {
7395
7267
  YEARS: "years",
7396
7268
  MONTHS: "months",
@@ -7411,7 +7283,7 @@ flowchart TD
7411
7283
  __publicField(this, "_renderCalendar", () => {
7412
7284
  const props = this.props;
7413
7285
  const state = this.state;
7414
- let viewProps = {
7286
+ const viewProps = {
7415
7287
  viewDate: state.viewDate.clone(),
7416
7288
  selectedDate: this.getSelectedDate(),
7417
7289
  isValidDate: props.isValidDate,
@@ -7454,10 +7326,10 @@ flowchart TD
7454
7326
  __publicField(this, "viewToMethod", { days: "date", months: "month", years: "year" });
7455
7327
  __publicField(this, "nextView", { days: "time", months: "days", years: "months" });
7456
7328
  __publicField(this, "_updateDate", (e) => {
7457
- let state = this.state;
7458
- let currentView = state.currentView;
7459
- let updateOnView = this.getUpdateOn(this.getFormat("date"));
7460
- let viewDate = this.state.viewDate.clone();
7329
+ const state = this.state;
7330
+ const currentView = state.currentView;
7331
+ const updateOnView = this.getUpdateOn(this.getFormat("date"));
7332
+ const viewDate = this.state.viewDate.clone();
7461
7333
  viewDate[this.viewToMethod[currentView]](
7462
7334
  parseInt(e.target.getAttribute("data-value"), 10)
7463
7335
  );
@@ -7465,7 +7337,7 @@ flowchart TD
7465
7337
  viewDate.month(parseInt(e.target.getAttribute("data-month"), 10));
7466
7338
  viewDate.year(parseInt(e.target.getAttribute("data-year"), 10));
7467
7339
  }
7468
- let update = { viewDate };
7340
+ const update = { viewDate };
7469
7341
  if (currentView === updateOnView) {
7470
7342
  update.selectedDate = viewDate.clone();
7471
7343
  update.inputValue = viewDate.format(this.getFormat("datetime"));
@@ -7479,7 +7351,7 @@ flowchart TD
7479
7351
  this.setState(update);
7480
7352
  });
7481
7353
  __publicField(this, "_viewNavigate", (modifier, unit) => {
7482
- let viewDate = this.state.viewDate.clone();
7354
+ const viewDate = this.state.viewDate.clone();
7483
7355
  viewDate.add(modifier, unit);
7484
7356
  if (modifier > 0) {
7485
7357
  this.props.onNavigateForward(modifier, unit);
@@ -7489,7 +7361,7 @@ flowchart TD
7489
7361
  this.setState({ viewDate });
7490
7362
  });
7491
7363
  __publicField(this, "_setTime", (type, value) => {
7492
- let date = (this.getSelectedDate() || this.state.viewDate).clone();
7364
+ const date = (this.getSelectedDate() || this.state.viewDate).clone();
7493
7365
  date[type](value);
7494
7366
  if (!this.props.value) {
7495
7367
  this.setState({
@@ -7513,7 +7385,7 @@ flowchart TD
7513
7385
  });
7514
7386
  });
7515
7387
  __publicField(this, "_handleClickOutside", () => {
7516
- let props = this.props;
7388
+ const props = this.props;
7517
7389
  if (props.input && this.state.open && props.open === void 0 && props.closeOnClickOutside) {
7518
7390
  this._closeCalendar();
7519
7391
  }
@@ -7528,7 +7400,7 @@ flowchart TD
7528
7400
  return;
7529
7401
  const value = e.target ? e.target.value : e;
7530
7402
  const localMoment = this.localMoment(value, this.getFormat("datetime"));
7531
- let update = { inputValue: value };
7403
+ const update = { inputValue: value };
7532
7404
  if (localMoment.isValid()) {
7533
7405
  update.selectedDate = localMoment;
7534
7406
  update.viewDate = localMoment.clone().startOf("month");
@@ -7592,9 +7464,9 @@ flowchart TD
7592
7464
  return this.props.renderView(this.state.currentView, this._renderCalendar);
7593
7465
  }
7594
7466
  getInitialState() {
7595
- let props = this.props;
7596
- let inputFormat = this.getFormat("datetime");
7597
- let selectedDate = this.parseDate(
7467
+ const props = this.props;
7468
+ const inputFormat = this.getFormat("datetime");
7469
+ const selectedDate = this.parseDate(
7598
7470
  props.value || props.initialValue,
7599
7471
  inputFormat
7600
7472
  );
@@ -7625,7 +7497,7 @@ flowchart TD
7625
7497
  return this.getInitialDate();
7626
7498
  }
7627
7499
  getInitialDate() {
7628
- let m = this.localMoment();
7500
+ const m = this.localMoment();
7629
7501
  m.hour(0).minute(0).second(0).millisecond(0);
7630
7502
  return m;
7631
7503
  }
@@ -7645,8 +7517,8 @@ flowchart TD
7645
7517
  }
7646
7518
  getClassName() {
7647
7519
  let cn2 = "rdt";
7648
- let props = this.props;
7649
- let propCn = props.className;
7520
+ const props = this.props;
7521
+ const propCn = props.className;
7650
7522
  if (Array.isArray(propCn)) {
7651
7523
  cn2 += " " + propCn.join(" ");
7652
7524
  } else if (propCn) {
@@ -7679,14 +7551,14 @@ flowchart TD
7679
7551
  return viewModes.DAYS;
7680
7552
  }
7681
7553
  getLocaleData() {
7682
- let p = this.props;
7554
+ const p = this.props;
7683
7555
  return this.localMoment(
7684
7556
  p.value || p.defaultValue || /* @__PURE__ */ new Date()
7685
7557
  ).localeData();
7686
7558
  }
7687
7559
  getDateFormat() {
7688
7560
  const locale = this.getLocaleData();
7689
- let format2 = this.props.dateFormat;
7561
+ const format2 = this.props.dateFormat;
7690
7562
  if (format2 === true)
7691
7563
  return locale.longDateFormat("L");
7692
7564
  if (format2)
@@ -7695,7 +7567,7 @@ flowchart TD
7695
7567
  }
7696
7568
  getTimeFormat() {
7697
7569
  const locale = this.getLocaleData();
7698
- let format2 = this.props.timeFormat;
7570
+ const format2 = this.props.timeFormat;
7699
7571
  if (format2 === true) {
7700
7572
  return locale.longDateFormat("LT");
7701
7573
  }
@@ -7707,12 +7579,12 @@ flowchart TD
7707
7579
  } else if (type === "time") {
7708
7580
  return this.getTimeFormat();
7709
7581
  }
7710
- let dateFormat = this.getDateFormat();
7711
- let timeFormat = this.getTimeFormat();
7582
+ const dateFormat = this.getDateFormat();
7583
+ const timeFormat = this.getTimeFormat();
7712
7584
  return dateFormat && timeFormat ? dateFormat + " " + timeFormat : dateFormat || timeFormat;
7713
7585
  }
7714
7586
  updateTime(op, amount, type, toSelected) {
7715
- let update = {};
7587
+ const update = {};
7716
7588
  const date = toSelected ? "selectedDate" : "viewDate";
7717
7589
  update[date] = this.state[date].clone()[op](amount, type);
7718
7590
  this.setState(update);
@@ -7745,7 +7617,7 @@ flowchart TD
7745
7617
  if (prevProps === this.props)
7746
7618
  return;
7747
7619
  let needsUpdate = false;
7748
- let thisProps = this.props;
7620
+ const thisProps = this.props;
7749
7621
  ["locale", "utc", "displayZone", "dateFormat", "timeFormat"].forEach(
7750
7622
  function(p) {
7751
7623
  prevProps[p] !== thisProps[p] && (needsUpdate = true);
@@ -7761,8 +7633,8 @@ flowchart TD
7761
7633
  }
7762
7634
  regenerateDates() {
7763
7635
  const props = this.props;
7764
- let viewDate = this.state.viewDate.clone();
7765
- let selectedDate = this.state.selectedDate && this.state.selectedDate.clone();
7636
+ const viewDate = this.state.viewDate.clone();
7637
+ const selectedDate = this.state.selectedDate && this.state.selectedDate.clone();
7766
7638
  if (props.locale) {
7767
7639
  viewDate.locale(props.locale);
7768
7640
  selectedDate && selectedDate.locale(props.locale);
@@ -7777,7 +7649,7 @@ flowchart TD
7777
7649
  viewDate.locale();
7778
7650
  selectedDate && selectedDate.locale();
7779
7651
  }
7780
- let update = { viewDate, selectedDate };
7652
+ const update = { viewDate, selectedDate };
7781
7653
  if (selectedDate && selectedDate.isValid()) {
7782
7654
  update.inputValue = selectedDate.format(this.getFormat("datetime"));
7783
7655
  }
@@ -7786,7 +7658,7 @@ flowchart TD
7786
7658
  getSelectedDate() {
7787
7659
  if (this.props.value === void 0)
7788
7660
  return this.state.selectedDate;
7789
- let selectedDate = this.parseDate(
7661
+ const selectedDate = this.parseDate(
7790
7662
  this.props.value,
7791
7663
  this.getFormat("datetime")
7792
7664
  );
@@ -7805,7 +7677,7 @@ flowchart TD
7805
7677
  return "";
7806
7678
  }
7807
7679
  getInputValue() {
7808
- let selectedDate = this.getSelectedDate();
7680
+ const selectedDate = this.getSelectedDate();
7809
7681
  return selectedDate ? selectedDate.format(this.getFormat("datetime")) : this.state.inputValue;
7810
7682
  }
7811
7683
  /**
@@ -7815,7 +7687,7 @@ flowchart TD
7815
7687
  * @public
7816
7688
  */
7817
7689
  setViewDate(date) {
7818
- let logError = function() {
7690
+ const logError = function() {
7819
7691
  return log("Invalid date passed to the `setViewDate` method: " + date);
7820
7692
  };
7821
7693
  if (!date)
@@ -7911,7 +7783,7 @@ flowchart TD
7911
7783
  // Make moment accessible through the Datetime class
7912
7784
  __publicField(Datetime, "moment", moment);
7913
7785
  function log(message, method) {
7914
- let con = typeof window !== "undefined" && window.console;
7786
+ const con = typeof window !== "undefined" && window.console;
7915
7787
  if (!con)
7916
7788
  return;
7917
7789
  if (!method) {
@@ -7919,22 +7791,13 @@ flowchart TD
7919
7791
  }
7920
7792
  con[method]("***react-datetime:" + message);
7921
7793
  }
7922
- class ClickOutBase extends React.Component {
7923
- constructor() {
7924
- super(...arguments);
7925
- __publicField(this, "container", React.createRef());
7926
- }
7927
- render() {
7928
- return /* @__PURE__ */ React.createElement("div", { className: this.props.className, ref: this.container }, this.props.children);
7929
- }
7930
- handleClickOutside(e) {
7931
- this.props.onClickOut(e);
7932
- }
7933
- setClickOutsideRef() {
7934
- return this.container.current;
7935
- }
7794
+ function ClickableWrapper({ className, onClickOut, children }) {
7795
+ const containerRef = React.useRef(null);
7796
+ _default(containerRef, (event) => {
7797
+ onClickOut(event);
7798
+ });
7799
+ return /* @__PURE__ */ React.createElement("div", { className, ref: containerRef }, children);
7936
7800
  }
7937
- const ClickableWrapper = onClickOutsideHOC(ClickOutBase);
7938
7801
  const DEFAULT_DATE_DISPLAY_FORMAT = "MMM DD, YYYY";
7939
7802
  const DEFAULT_TIME_DISPLAY_FORMAT = "h:mm A";
7940
7803
  const format$1 = (val, _name, field) => {
@@ -7977,7 +7840,10 @@ flowchart TD
7977
7840
  ReactDateTimeWithStyles,
7978
7841
  {
7979
7842
  value: input.value,
7980
- onChange: input.onChange,
7843
+ onChange: (value) => {
7844
+ const newValue = value === "" ? void 0 : value;
7845
+ input.onChange(newValue);
7846
+ },
7981
7847
  dateFormat: dateFormat || DEFAULT_DATE_DISPLAY_FORMAT,
7982
7848
  timeFormat: timeFormat || false,
7983
7849
  inputProps: { className: textFieldClasses },
@@ -8740,7 +8606,10 @@ flowchart TD
8740
8606
  label: "View in GitHub",
8741
8607
  Icon: /* @__PURE__ */ React__namespace.createElement(BiLinkExternal, { className: "w-5 h-auto text-blue-500 opacity-70" }),
8742
8608
  onMouseDown: () => {
8743
- window.open(branch.githubPullRequestUrl, "_blank");
8609
+ window.open(
8610
+ branch.githubPullRequestUrl,
8611
+ "_blank"
8612
+ );
8744
8613
  }
8745
8614
  },
8746
8615
  typeof previewFunction === "function" && ((_b2 = previewFunction({ branch: branch.name })) == null ? void 0 : _b2.url) && {
@@ -9046,7 +8915,9 @@ flowchart TD
9046
8915
  } else {
9047
8916
  events = event;
9048
8917
  }
9049
- const newListeners = events.map((event2) => new Listener(event2, callback));
8918
+ const newListeners = events.map(
8919
+ (event2) => new Listener(event2, callback)
8920
+ );
9050
8921
  newListeners.forEach((newListener) => this.listeners.add(newListener));
9051
8922
  return () => {
9052
8923
  newListeners.forEach((listener) => this.listeners.delete(listener));
@@ -9402,9 +9273,7 @@ flowchart TD
9402
9273
  const deleteStartTime = Date.now();
9403
9274
  while (true) {
9404
9275
  await new Promise((resolve) => setTimeout(resolve, 1e3));
9405
- const { error, message } = await this.api.getRequestStatus(
9406
- requestId
9407
- );
9276
+ const { error, message } = await this.api.getRequestStatus(requestId);
9408
9277
  if (error !== void 0) {
9409
9278
  if (error) {
9410
9279
  throw new Error(message);
@@ -9429,6 +9298,17 @@ flowchart TD
9429
9298
  }
9430
9299
  }
9431
9300
  }
9301
+ const encodeUrlIfNeeded = (url) => {
9302
+ if (url) {
9303
+ try {
9304
+ return new URL(url).toString();
9305
+ } catch (e) {
9306
+ return url;
9307
+ }
9308
+ } else {
9309
+ return url;
9310
+ }
9311
+ };
9432
9312
  let MediaManager$1 = class MediaManager {
9433
9313
  constructor(store, events) {
9434
9314
  this.store = store;
@@ -9501,6 +9381,20 @@ flowchart TD
9501
9381
  try {
9502
9382
  this.events.dispatch({ type: "media:list:start", ...options });
9503
9383
  const media = await this.store.list(options);
9384
+ media.items = media.items.map((item) => {
9385
+ if (item.type === "dir") {
9386
+ return item;
9387
+ }
9388
+ if (item.thumbnails) {
9389
+ for (const [size, src] of Object.entries(item.thumbnails)) {
9390
+ item.thumbnails[size] = encodeUrlIfNeeded(src);
9391
+ }
9392
+ }
9393
+ return {
9394
+ ...item,
9395
+ src: encodeUrlIfNeeded(item.src)
9396
+ };
9397
+ });
9504
9398
  this.events.dispatch({ type: "media:list:success", ...options, media });
9505
9399
  return media;
9506
9400
  } catch (error) {
@@ -10308,7 +10202,7 @@ flowchart TD
10308
10202
  "Event Log"
10309
10203
  ));
10310
10204
  };
10311
- const version = "2.2.9";
10205
+ const version = "2.7.3";
10312
10206
  const Nav = ({
10313
10207
  isLocalMode,
10314
10208
  className = "",
@@ -10944,7 +10838,7 @@ flowchart TD
10944
10838
  className: "h-5 w-auto -mx-1 text-blue-500",
10945
10839
  stroke: "currentColor",
10946
10840
  fill: "currentColor",
10947
- "stroke-width": "0",
10841
+ strokeWidth: "0",
10948
10842
  viewBox: "0 0 24 24",
10949
10843
  xmlns: "http://www.w3.org/2000/svg"
10950
10844
  },
@@ -11534,7 +11428,10 @@ flowchart TD
11534
11428
  const observer = new IntersectionObserver((entries) => {
11535
11429
  const target = entries[0];
11536
11430
  if (target.isIntersecting && list.nextOffset) {
11537
- setOffsetHistory((offsetHistory2) => [...offsetHistory2, list.nextOffset]);
11431
+ setOffsetHistory((offsetHistory2) => [
11432
+ ...offsetHistory2,
11433
+ list.nextOffset
11434
+ ]);
11538
11435
  }
11539
11436
  });
11540
11437
  if (loaderRef.current) {
@@ -12498,7 +12395,9 @@ flowchart TD
12498
12395
  if (activeEle) {
12499
12396
  setDisplay(true);
12500
12397
  setPosition(activeEle.getBoundingClientRect());
12501
- const iframe = document.getElementById("tina-iframe");
12398
+ const iframe = document.getElementById(
12399
+ "tina-iframe"
12400
+ );
12502
12401
  if (iframe) {
12503
12402
  setIframePosition(iframe.getBoundingClientRect());
12504
12403
  }
@@ -12839,15 +12738,14 @@ flowchart TD
12839
12738
  fields: fieldGroup.fields
12840
12739
  }
12841
12740
  ) : /* @__PURE__ */ React__namespace.createElement(NoFieldsPlaceholder, null)
12842
- )), !hideFooter && /* @__PURE__ */ React__namespace.createElement("div", { className: "relative flex-none w-full h-16 px-6 bg-white border-t border-gray-100 flex items-center justify-center" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 w-full flex justify-between gap-4 items-center max-w-form" }, tinaForm.reset && /* @__PURE__ */ React__namespace.createElement(
12741
+ )), !hideFooter && /* @__PURE__ */ React__namespace.createElement("div", { className: "relative flex-none w-full h-16 px-12 bg-white border-t border-gray-100 flex items-center justify-end" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 w-full justify-end gap-2 flex items-center max-w-form" }, tinaForm.reset && /* @__PURE__ */ React__namespace.createElement(
12843
12742
  ResetForm,
12844
12743
  {
12845
12744
  pristine,
12846
12745
  reset: async () => {
12847
12746
  finalForm2.reset();
12848
12747
  await tinaForm.reset();
12849
- },
12850
- style: { flexGrow: 1 }
12748
+ }
12851
12749
  },
12852
12750
  tinaForm.buttons.reset
12853
12751
  ), /* @__PURE__ */ React__namespace.createElement(
@@ -12856,8 +12754,7 @@ flowchart TD
12856
12754
  onClick: safeHandleSubmit,
12857
12755
  disabled: !canSubmit,
12858
12756
  busy: submitting,
12859
- variant: "primary",
12860
- style: { flexGrow: 3 }
12757
+ variant: "primary"
12861
12758
  },
12862
12759
  submitting && /* @__PURE__ */ React__namespace.createElement(LoadingDots, null),
12863
12760
  !submitting && tinaForm.buttons.save
@@ -12942,7 +12839,6 @@ flowchart TD
12942
12839
  }) => {
12943
12840
  const cms = useCMS$1();
12944
12841
  const tinaApi = cms.api.tina;
12945
- tinaApi.branch;
12946
12842
  const [disabled, setDisabled] = React__namespace.useState(false);
12947
12843
  const [newBranchName, setNewBranchName] = React__namespace.useState("");
12948
12844
  const [error, setError] = React__namespace.useState("");
@@ -12968,10 +12864,10 @@ flowchart TD
12968
12864
  const newUrl = window.location.href.replace(hash, newHash);
12969
12865
  window.location.href = newUrl;
12970
12866
  };
12971
- return /* @__PURE__ */ React__namespace.createElement(Modal, null, /* @__PURE__ */ React__namespace.createElement(PopupModal, null, /* @__PURE__ */ React__namespace.createElement(ModalHeader, { close: close2 }, /* @__PURE__ */ React__namespace.createElement(BiGitBranch, { className: "w-6 h-auto mr-1 text-blue-500 opacity-70" }), " ", "Create Branch"), /* @__PURE__ */ React__namespace.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-base text-gray-700 mb-2" }, "This branch is ", /* @__PURE__ */ React__namespace.createElement("strong", null, "protected"), ". Create a new branch to save your changes."), /* @__PURE__ */ React__namespace.createElement(
12867
+ return /* @__PURE__ */ React__namespace.createElement(Modal, null, /* @__PURE__ */ React__namespace.createElement(PopupModal, null, /* @__PURE__ */ React__namespace.createElement(ModalHeader, { close: close2 }, /* @__PURE__ */ React__namespace.createElement(BiGitBranch, { className: "w-6 h-auto mr-1 text-blue-500 opacity-70" }), " ", "Create Branch"), /* @__PURE__ */ React__namespace.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React__namespace.createElement("p", { className: "text-lg text-gray-700 font-bold mb-2" }, "This content is protected 🚧"), /* @__PURE__ */ React__namespace.createElement("p", { className: "text-sm text-gray-700 mb-4" }, "To make changes, you need to create a copy then get it approved and merged for it to go live."), /* @__PURE__ */ React__namespace.createElement(
12972
12868
  PrefixedTextField,
12973
12869
  {
12974
- placeholder: "Branch Name",
12870
+ placeholder: "e.g. {{PAGE-NAME}}-updates",
12975
12871
  value: newBranchName,
12976
12872
  onChange: (e) => {
12977
12873
  setError("");
@@ -13118,7 +13014,9 @@ flowchart TD
13118
13014
  const { fieldName } = useTemplates();
13119
13015
  const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
13120
13016
  useHotkey("enter", () => {
13121
- plateCommon.insertNodes(editor, [{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }]);
13017
+ plateCommon.insertNodes(editor, [
13018
+ { type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
13019
+ ]);
13122
13020
  });
13123
13021
  return /* @__PURE__ */ React.createElement("span", { ...attributes, className: "" }, children, element.url ? /* @__PURE__ */ React.createElement(
13124
13022
  "div",
@@ -13261,7 +13159,9 @@ flowchart TD
13261
13159
  const { templates, fieldName } = useTemplates();
13262
13160
  const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
13263
13161
  useHotkey("enter", () => {
13264
- plateCommon.insertNodes(editor, [{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }]);
13162
+ plateCommon.insertNodes(editor, [
13163
+ { type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
13164
+ ]);
13265
13165
  });
13266
13166
  useHotkey("space", () => {
13267
13167
  plateCommon.insertNodes(editor, [{ text: " " }], {
@@ -13317,7 +13217,9 @@ flowchart TD
13317
13217
  const { templates, fieldName } = useTemplates();
13318
13218
  const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
13319
13219
  useHotkey("enter", () => {
13320
- plateCommon.insertNodes(editor, [{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }]);
13220
+ plateCommon.insertNodes(editor, [
13221
+ { type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
13222
+ ]);
13321
13223
  });
13322
13224
  const activeTemplate = templates.find(
13323
13225
  (template) => template.name === element.name
@@ -13663,6 +13565,11 @@ flowchart TD
13663
13565
  mode: "mark",
13664
13566
  type: plate.MARK_CODE,
13665
13567
  match: "`"
13568
+ },
13569
+ {
13570
+ mode: "mark",
13571
+ type: plate.MARK_STRIKETHROUGH,
13572
+ match: ["~~", "~"]
13666
13573
  }
13667
13574
  ];
13668
13575
  const autoformatRules = [
@@ -13804,16 +13711,14 @@ flowchart TD
13804
13711
  })
13805
13712
  ];
13806
13713
  const plugins = [
13714
+ plate.createBasicMarksPlugin(),
13807
13715
  plate.createHeadingPlugin(),
13808
13716
  plate.createParagraphPlugin(),
13809
13717
  createCodeBlockPlugin(),
13810
13718
  createHTMLBlockPlugin(),
13811
13719
  createHTMLInlinePlugin(),
13812
13720
  plate.createBlockquotePlugin(),
13813
- plate.createBoldPlugin(),
13814
- plate.createItalicPlugin(),
13815
13721
  plate.createUnderlinePlugin(),
13816
- plate.createCodePlugin(),
13817
13722
  plate.createListPlugin(),
13818
13723
  plate.createIndentListPlugin(),
13819
13724
  plate.createHorizontalRulePlugin(),
@@ -13827,6 +13732,7 @@ flowchart TD
13827
13732
  "Unordered List",
13828
13733
  "Ordered List",
13829
13734
  "Quote",
13735
+ "Mermaid",
13830
13736
  "Heading 1",
13831
13737
  "Heading 2",
13832
13738
  "Heading 3",
@@ -14172,7 +14078,9 @@ flowchart TD
14172
14078
  const CONTAINER_MD_BREAKPOINT = 448;
14173
14079
  const FLOAT_BUTTON_WIDTH = 25;
14174
14080
  const HEADING_LABEL = "Headings";
14175
- const ToolbarContext = React.createContext(void 0);
14081
+ const ToolbarContext = React.createContext(
14082
+ void 0
14083
+ );
14176
14084
  const ToolbarProvider = ({
14177
14085
  tinaForm,
14178
14086
  templates,
@@ -14322,7 +14230,7 @@ flowchart TD
14322
14230
  const CodeBlockToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14323
14231
  const state = useCodeBlockToolbarButtonState();
14324
14232
  const { props } = useCodeBlockToolbarButton(state);
14325
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.codeBlock, null));
14233
+ return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Code Block", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.codeBlock, null));
14326
14234
  });
14327
14235
  const useImageToolbarButtonState = () => {
14328
14236
  const editor = plateCommon.useEditorState();
@@ -14354,36 +14262,54 @@ flowchart TD
14354
14262
  const ImageToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14355
14263
  const state = useImageToolbarButtonState();
14356
14264
  const { props } = useImageToolbarButton(state);
14357
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.image, null));
14358
- });
14359
- const IndentListToolbarButton = cn$1.withRef(({ nodeType = plate.ELEMENT_UL }, ref) => {
14360
- const editor = plateCommon.useEditorState();
14361
- const state = plate.useListToolbarButtonState({ nodeType });
14362
- const { props } = plate.useListToolbarButton(state);
14363
- return /* @__PURE__ */ React.createElement(
14364
- ToolbarButton,
14365
- {
14366
- ref,
14367
- tooltip: nodeType === plate.ELEMENT_UL ? "Bulleted List" : "Numbered List",
14368
- ...props,
14369
- onClick: (e) => {
14370
- e.preventDefault();
14371
- e.stopPropagation();
14372
- plate.toggleList(editor, { type: nodeType });
14373
- }
14374
- },
14375
- nodeType === plate.ELEMENT_UL ? /* @__PURE__ */ React.createElement(Icons.ul, null) : /* @__PURE__ */ React.createElement(Icons.ol, null)
14376
- );
14265
+ return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Image", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.image, null));
14377
14266
  });
14267
+ const UnorderedListToolbarButton = cn$1.withRef(
14268
+ (props, ref) => {
14269
+ const editor = plateCommon.useEditorState();
14270
+ const state = plate.useListToolbarButtonState({ nodeType: plate.ELEMENT_UL });
14271
+ const { props: buttonProps } = plate.useListToolbarButton(state);
14272
+ return /* @__PURE__ */ React.createElement(
14273
+ ToolbarButton,
14274
+ {
14275
+ ref,
14276
+ tooltip: "Bulleted List",
14277
+ ...buttonProps,
14278
+ onClick: (e) => {
14279
+ e.preventDefault();
14280
+ e.stopPropagation();
14281
+ plate.toggleList(editor, { type: plate.ELEMENT_UL });
14282
+ }
14283
+ },
14284
+ /* @__PURE__ */ React.createElement(Icons.ul, null)
14285
+ );
14286
+ }
14287
+ );
14288
+ const OrderedListToolbarButton = cn$1.withRef(
14289
+ (props, ref) => {
14290
+ const editor = plateCommon.useEditorState();
14291
+ const state = plate.useListToolbarButtonState({ nodeType: plate.ELEMENT_OL });
14292
+ const { props: buttonProps } = plate.useListToolbarButton(state);
14293
+ return /* @__PURE__ */ React.createElement(
14294
+ ToolbarButton,
14295
+ {
14296
+ ref,
14297
+ tooltip: "Numbered List",
14298
+ ...buttonProps,
14299
+ onClick: (e) => {
14300
+ e.preventDefault();
14301
+ e.stopPropagation();
14302
+ plate.toggleList(editor, { type: plate.ELEMENT_OL });
14303
+ }
14304
+ },
14305
+ /* @__PURE__ */ React.createElement(Icons.ol, null)
14306
+ );
14307
+ }
14308
+ );
14378
14309
  const LinkToolbarButton = cn$1.withRef((rest, ref) => {
14379
14310
  const state = plateLink.useLinkToolbarButtonState();
14380
14311
  const { props } = plateLink.useLinkToolbarButton(state);
14381
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...props, ...rest }, /* @__PURE__ */ React.createElement(Icons.link, null));
14382
- });
14383
- const MarkToolbarButton = cn$1.withRef(({ clear, nodeType, ...rest }, ref) => {
14384
- const state = plateCommon.useMarkToolbarButtonState({ clear, nodeType });
14385
- const { props } = plateCommon.useMarkToolbarButton(state);
14386
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest });
14312
+ return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest, tooltip: "Link" }, /* @__PURE__ */ React.createElement(Icons.link, null));
14387
14313
  });
14388
14314
  const useMermaidToolbarButtonState = () => {
14389
14315
  const editor = plateCommon.useEditorState();
@@ -14426,6 +14352,7 @@ flowchart TD
14426
14352
  ToolbarButton,
14427
14353
  {
14428
14354
  showArrow: false,
14355
+ "data-testid": "rich-text-editor-overflow-menu-button",
14429
14356
  className: "lg:min-w-[130px]",
14430
14357
  isDropdown: true,
14431
14358
  pressed: openState.open,
@@ -14463,7 +14390,7 @@ flowchart TD
14463
14390
  const QuoteToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14464
14391
  const state = useBlockQuoteToolbarButtonState();
14465
14392
  const { props } = useBlockQuoteToolbarButton(state);
14466
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.quote, null));
14393
+ return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Quote (⌘+⇧+.)", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.quote, null));
14467
14394
  });
14468
14395
  const useRawMarkdownToolbarButton = () => {
14469
14396
  const { setRawMode } = useEditorContext();
@@ -14479,7 +14406,17 @@ flowchart TD
14479
14406
  };
14480
14407
  const RawMarkdownToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14481
14408
  const { props } = useRawMarkdownToolbarButton();
14482
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.raw, null));
14409
+ return /* @__PURE__ */ React.createElement(
14410
+ ToolbarButton,
14411
+ {
14412
+ ref,
14413
+ tooltip: "Raw Markdown",
14414
+ ...rest,
14415
+ ...props,
14416
+ "data-testid": "markdown-button"
14417
+ },
14418
+ /* @__PURE__ */ React.createElement(Icons.raw, null)
14419
+ );
14483
14420
  });
14484
14421
  function TableDropdownMenu(props) {
14485
14422
  const tableSelected = plateCommon.useEditorSelector(
@@ -14618,7 +14555,7 @@ flowchart TD
14618
14555
  key: template.name,
14619
14556
  onMouseDown: (e) => {
14620
14557
  e.preventDefault();
14621
- close();
14558
+ setOpen(false);
14622
14559
  insertMDX(editor, template);
14623
14560
  },
14624
14561
  className: ""
@@ -14626,6 +14563,15 @@ flowchart TD
14626
14563
  template.label || template.name
14627
14564
  ))));
14628
14565
  };
14566
+ const MarkToolbarButton = cn$1.withRef(({ clear, nodeType, ...rest }, ref) => {
14567
+ const state = plateCommon.useMarkToolbarButtonState({ clear, nodeType });
14568
+ const { props } = plateCommon.useMarkToolbarButton(state);
14569
+ return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest });
14570
+ });
14571
+ const BoldToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Bold (⌘+B)", nodeType: plate.MARK_BOLD }, /* @__PURE__ */ React.createElement(Icons.bold, null));
14572
+ const StrikethroughToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Strikethrough", nodeType: plate.MARK_STRIKETHROUGH }, /* @__PURE__ */ React.createElement(Icons.strikethrough, null));
14573
+ const ItalicToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Italic (⌘+I)", nodeType: plate.MARK_ITALIC }, /* @__PURE__ */ React.createElement(Icons.italic, null));
14574
+ const CodeToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Code (⌘+E)", nodeType: plate.MARK_CODE }, /* @__PURE__ */ React.createElement(Icons.code, null));
14629
14575
  const toolbarItems = {
14630
14576
  heading: {
14631
14577
  label: HEADING_LABEL,
@@ -14646,32 +14592,37 @@ flowchart TD
14646
14592
  quote: {
14647
14593
  label: "Quote",
14648
14594
  width: () => STANDARD_ICON_WIDTH,
14649
- Component: /* @__PURE__ */ React.createElement(QuoteToolbarButton, { tooltip: "Quote Quote (⌘+⇧+.)" })
14595
+ Component: /* @__PURE__ */ React.createElement(QuoteToolbarButton, null)
14650
14596
  },
14651
14597
  ul: {
14652
14598
  label: "Unordered List",
14653
14599
  width: () => STANDARD_ICON_WIDTH,
14654
- Component: /* @__PURE__ */ React.createElement(IndentListToolbarButton, { nodeType: plate.ELEMENT_UL })
14600
+ Component: /* @__PURE__ */ React.createElement(UnorderedListToolbarButton, null)
14655
14601
  },
14656
14602
  ol: {
14657
14603
  label: "Ordered List",
14658
14604
  width: () => STANDARD_ICON_WIDTH,
14659
- Component: /* @__PURE__ */ React.createElement(IndentListToolbarButton, { nodeType: plate.ELEMENT_OL })
14605
+ Component: /* @__PURE__ */ React.createElement(OrderedListToolbarButton, null)
14660
14606
  },
14661
14607
  bold: {
14662
14608
  label: "Bold",
14663
14609
  width: () => STANDARD_ICON_WIDTH,
14664
- Component: /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Bold (⌘+B)", nodeType: plate.MARK_BOLD }, /* @__PURE__ */ React.createElement(Icons.bold, null))
14610
+ Component: /* @__PURE__ */ React.createElement(BoldToolbarButton, null)
14611
+ },
14612
+ strikethrough: {
14613
+ label: "Strikethrough",
14614
+ width: () => STANDARD_ICON_WIDTH,
14615
+ Component: /* @__PURE__ */ React.createElement(StrikethroughToolbarButton, null)
14665
14616
  },
14666
14617
  italic: {
14667
14618
  label: "Italic",
14668
14619
  width: () => STANDARD_ICON_WIDTH,
14669
- Component: /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Italic (⌘+I)", nodeType: plate.MARK_ITALIC }, /* @__PURE__ */ React.createElement(Icons.italic, null))
14620
+ Component: /* @__PURE__ */ React.createElement(ItalicToolbarButton, null)
14670
14621
  },
14671
14622
  code: {
14672
14623
  label: "Code",
14673
14624
  width: () => STANDARD_ICON_WIDTH,
14674
- Component: /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Code (⌘+E)", nodeType: plate.MARK_CODE }, /* @__PURE__ */ React.createElement(Icons.code, null))
14625
+ Component: /* @__PURE__ */ React.createElement(CodeToolbarButton, null)
14675
14626
  },
14676
14627
  codeBlock: {
14677
14628
  label: "Code Block",
@@ -14704,7 +14655,12 @@ flowchart TD
14704
14655
  const [itemsShown, setItemsShown] = React.useState(11);
14705
14656
  const { overrides, templates } = useToolbarContext();
14706
14657
  const showEmbedButton = templates.length > 0;
14707
- let items2 = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14658
+ let items2 = [];
14659
+ if (Array.isArray(overrides)) {
14660
+ items2 = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14661
+ } else {
14662
+ items2 = (overrides == null ? void 0 : overrides.toolbar) === void 0 ? Object.values(toolbarItems) : overrides.toolbar.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14663
+ }
14708
14664
  if (!showEmbedButton) {
14709
14665
  items2 = items2.filter((item) => item.label !== toolbarItems.embed.label);
14710
14666
  }
@@ -15032,6 +14988,9 @@ flowchart TD
15032
14988
  if (typeof string !== "string") {
15033
14989
  return false;
15034
14990
  }
14991
+ if (string.startsWith("#")) {
14992
+ return true;
14993
+ }
15035
14994
  const generalMatch = string.match(protocolAndDomainRE);
15036
14995
  const emailLinkMatch = string.match(emailLintRE);
15037
14996
  const localUrlMatch = string.match(localUrlRE);
@@ -15053,12 +15012,12 @@ flowchart TD
15053
15012
  }
15054
15013
  return localhostDomainRE.test(everythingAfterProtocol) || nonLocalhostDomainRE.test(everythingAfterProtocol);
15055
15014
  };
15056
- const RichEditor = (props) => {
15015
+ const RichEditor = ({ input, tinaForm, field }) => {
15057
15016
  var _a;
15058
15017
  const initialValue = React.useMemo(
15059
15018
  () => {
15060
15019
  var _a2, _b;
15061
- return ((_b = (_a2 = props.input.value) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) ? props.input.value.children.map(helpers.normalize) : [{ type: "p", children: [{ type: "text", text: "" }] }];
15020
+ return ((_b = (_a2 = input.value) == null ? void 0 : _a2.children) == null ? void 0 : _b.length) ? input.value.children.map(helpers.normalize) : [{ type: "p", children: [{ type: "text", text: "" }] }];
15062
15021
  },
15063
15022
  []
15064
15023
  );
@@ -15086,7 +15045,7 @@ flowchart TD
15086
15045
  ),
15087
15046
  []
15088
15047
  );
15089
- const tempId = [props.tinaForm.id, props.input.name].join(".");
15048
+ const tempId = [tinaForm.id, input.name].join(".");
15090
15049
  const id = React.useMemo(() => uuid() + tempId, [tempId]);
15091
15050
  const ref = React.useRef(null);
15092
15051
  React.useEffect(() => {
@@ -15096,13 +15055,13 @@ flowchart TD
15096
15055
  const plateElement = (_a2 = ref.current) == null ? void 0 : _a2.querySelector(
15097
15056
  '[role="textbox"]'
15098
15057
  );
15099
- if (props.field.experimental_focusIntent && plateElement) {
15058
+ if (field.experimental_focusIntent && plateElement) {
15100
15059
  if (plateElement)
15101
15060
  plateElement.focus();
15102
15061
  }
15103
15062
  }, 100);
15104
15063
  }
15105
- }, [props.field.experimental_focusIntent, ref]);
15064
+ }, [field.experimental_focusIntent, ref]);
15106
15065
  return /* @__PURE__ */ React.createElement("div", { ref }, /* @__PURE__ */ React.createElement(
15107
15066
  plateCommon.Plate,
15108
15067
  {
@@ -15110,7 +15069,7 @@ flowchart TD
15110
15069
  initialValue,
15111
15070
  plugins: plugins$2,
15112
15071
  onChange: (value) => {
15113
- props.input.onChange({
15072
+ input.onChange({
15114
15073
  type: "root",
15115
15074
  children: value
15116
15075
  });
@@ -15119,12 +15078,12 @@ flowchart TD
15119
15078
  /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(
15120
15079
  ToolbarProvider,
15121
15080
  {
15122
- tinaForm: props.tinaForm,
15123
- templates: props.field.templates,
15124
- overrides: (_a = props.field) == null ? void 0 : _a.toolbarOverride
15081
+ tinaForm,
15082
+ templates: field.templates,
15083
+ overrides: (field == null ? void 0 : field.toolbarOverride) ? field.toolbarOverride : field.overrides
15125
15084
  },
15126
15085
  /* @__PURE__ */ React.createElement(FixedToolbar, null, /* @__PURE__ */ React.createElement(FixedToolbarButtons, null)),
15127
- /* @__PURE__ */ React.createElement(FloatingToolbar, null, /* @__PURE__ */ React.createElement(FloatingToolbarButtons, null))
15086
+ ((_a = field == null ? void 0 : field.overrides) == null ? void 0 : _a.showFloatingToolbar) !== false ? /* @__PURE__ */ React.createElement(FloatingToolbar, null, /* @__PURE__ */ React.createElement(FloatingToolbarButtons, null)) : null
15128
15087
  ), /* @__PURE__ */ React.createElement(Editor, null))
15129
15088
  ));
15130
15089
  };
@@ -16312,132 +16271,1209 @@ flowchart TD
16312
16271
  "হয়"
16313
16272
  ];
16314
16273
  const bre = [
16274
+ "'blam",
16275
+ "'d",
16276
+ "'m",
16277
+ "'r",
16278
+ "'ta",
16279
+ "'vat",
16280
+ "'z",
16281
+ "'zo",
16315
16282
  "a",
16316
- "ainda",
16317
- "alem",
16318
- "ambas",
16319
- "ambos",
16320
- "antes",
16321
- "ao",
16322
- "aonde",
16323
- "aos",
16324
- "apos",
16325
- "aquele",
16326
- "aqueles",
16327
- "as",
16328
- "assim",
16329
- "com",
16330
- "como",
16331
- "contra",
16332
- "contudo",
16333
- "cuja",
16334
- "cujas",
16335
- "cujo",
16336
- "cujos",
16283
+ "a:",
16284
+ "aba",
16285
+ "abalamour",
16286
+ "abaoe",
16287
+ "ac'hane",
16288
+ "ac'hanoc'h",
16289
+ "ac'hanomp",
16290
+ "ac'hanon",
16291
+ "ac'hanout",
16292
+ "adal",
16293
+ "adalek",
16294
+ "adarre",
16295
+ "ae",
16296
+ "aec'h",
16297
+ "aed",
16298
+ "aemp",
16299
+ "aen",
16300
+ "aent",
16301
+ "aes",
16302
+ "afe",
16303
+ "afec'h",
16304
+ "afed",
16305
+ "afemp",
16306
+ "afen",
16307
+ "afent",
16308
+ "afes",
16309
+ "ag",
16310
+ "ah",
16311
+ "aimp",
16312
+ "aint",
16313
+ "aio",
16314
+ "aiou",
16315
+ "aje",
16316
+ "ajec'h",
16317
+ "ajed",
16318
+ "ajemp",
16319
+ "ajen",
16320
+ "ajent",
16321
+ "ajes",
16322
+ "al",
16323
+ "alato",
16324
+ "alies",
16325
+ "aliesañ",
16326
+ "alkent",
16327
+ "all",
16328
+ "allas",
16329
+ "allo",
16330
+ "allô",
16331
+ "am",
16332
+ "amañ",
16333
+ "amzer",
16334
+ "an",
16335
+ "anezhañ",
16336
+ "anezhe",
16337
+ "anezhi",
16338
+ "anezho",
16339
+ "anvet",
16340
+ "aon",
16341
+ "aotren",
16342
+ "ar",
16343
+ "arall",
16344
+ "araok",
16345
+ "araoki",
16346
+ "araozañ",
16347
+ "araozo",
16348
+ "araozoc'h",
16349
+ "araozomp",
16350
+ "araozon",
16351
+ "araozor",
16352
+ "araozout",
16353
+ "arbenn",
16354
+ "arre",
16355
+ "atalek",
16356
+ "atav",
16357
+ "az",
16358
+ "azalek",
16359
+ "azirazañ",
16360
+ "azirazi",
16361
+ "azirazo",
16362
+ "azirazoc'h",
16363
+ "azirazomp",
16364
+ "azirazon",
16365
+ "azirazor",
16366
+ "azirazout",
16367
+ "b:",
16368
+ "ba",
16369
+ "ba'l",
16370
+ "ba'n",
16371
+ "ba'r",
16372
+ "bad",
16373
+ "bah",
16374
+ "bal",
16375
+ "ban",
16376
+ "bar",
16377
+ "bastañ",
16378
+ "befe",
16379
+ "bell",
16380
+ "benaos",
16381
+ "benn",
16382
+ "bennag",
16383
+ "bennak",
16384
+ "bennozh",
16385
+ "bep",
16386
+ "bepred",
16387
+ "berr",
16388
+ "berzh",
16389
+ "bet",
16390
+ "betek",
16391
+ "betra",
16392
+ "bev",
16393
+ "bevet",
16394
+ "bez",
16395
+ "bezañ",
16396
+ "beze",
16397
+ "bezent",
16398
+ "bezet",
16399
+ "bezh",
16400
+ "bezit",
16401
+ "bezomp",
16402
+ "bihan",
16403
+ "bije",
16404
+ "biou",
16405
+ "biskoazh",
16406
+ "blam",
16407
+ "bo",
16408
+ "boa",
16409
+ "bominapl",
16410
+ "boudoudom",
16411
+ "bouez",
16412
+ "boull",
16413
+ "boum",
16414
+ "bout",
16415
+ "bras",
16416
+ "brasañ",
16417
+ "brav",
16418
+ "bravo",
16419
+ "bremañ",
16420
+ "bres",
16421
+ "brokenn",
16422
+ "bronn",
16423
+ "brrr",
16424
+ "brutal",
16425
+ "buhezek",
16426
+ "c'h:",
16427
+ "c'haout",
16428
+ "c'he",
16429
+ "c'hem",
16430
+ "c'herz",
16431
+ "c'heñver",
16432
+ "c'hichen",
16433
+ "c'hiz",
16434
+ "c'hoazh",
16435
+ "c'horre",
16436
+ "c'houde",
16437
+ "c'houst",
16438
+ "c'hreiz",
16439
+ "c'hwec'h",
16440
+ "c'hwec'hvet",
16441
+ "c'hwezek",
16442
+ "c'hwi",
16443
+ "ch:",
16444
+ "chaous",
16445
+ "chik",
16446
+ "chit",
16447
+ "chom",
16448
+ "chut",
16449
+ "d'",
16450
+ "d'al",
16451
+ "d'an",
16452
+ "d'ar",
16453
+ "d'az",
16454
+ "d'e",
16455
+ "d'he",
16456
+ "d'ho",
16457
+ "d'hol",
16458
+ "d'hon",
16459
+ "d'hor",
16460
+ "d'o",
16461
+ "d'ober",
16462
+ "d'ul",
16463
+ "d'un",
16464
+ "d'ur",
16465
+ "d:",
16337
16466
  "da",
16338
- "das",
16339
- "de",
16340
- "dela",
16341
- "dele",
16342
- "deles",
16343
- "demais",
16344
- "depois",
16345
- "desde",
16346
- "desta",
16347
- "deste",
16348
- "dispoe",
16349
- "dispoem",
16350
- "diversa",
16351
- "diversas",
16352
- "diversos",
16467
+ "dak",
16468
+ "daka",
16469
+ "dal",
16470
+ "dalbezh",
16471
+ "dalc'hmat",
16472
+ "dalit",
16473
+ "damdost",
16474
+ "damheñvel",
16475
+ "damm",
16476
+ "dan",
16477
+ "danvez",
16478
+ "dao",
16479
+ "daol",
16480
+ "daonet",
16481
+ "daou",
16482
+ "daoust",
16483
+ "daouzek",
16484
+ "daouzekvet",
16485
+ "darn",
16486
+ "dastrewiñ",
16487
+ "dav",
16488
+ "davedoc'h",
16489
+ "davedomp",
16490
+ "davedon",
16491
+ "davedor",
16492
+ "davedout",
16493
+ "davet",
16494
+ "davetañ",
16495
+ "davete",
16496
+ "daveti",
16497
+ "daveto",
16498
+ "defe",
16499
+ "dehou",
16500
+ "dek",
16501
+ "dekvet",
16502
+ "den",
16503
+ "deoc'h",
16504
+ "deomp",
16505
+ "deor",
16506
+ "derc'hel",
16507
+ "deus",
16508
+ "dez",
16509
+ "deze",
16510
+ "dezhañ",
16511
+ "dezhe",
16512
+ "dezhi",
16513
+ "dezho",
16514
+ "di",
16515
+ "diabarzh",
16516
+ "diagent",
16517
+ "diar",
16518
+ "diaraok",
16519
+ "diavaez",
16520
+ "dibaoe",
16521
+ "dibaot",
16522
+ "dibar",
16523
+ "dic'halañ",
16524
+ "didiac'h",
16525
+ "dienn",
16526
+ "difer",
16527
+ "diganeoc'h",
16528
+ "diganeomp",
16529
+ "diganeor",
16530
+ "diganimp",
16531
+ "diganin",
16532
+ "diganit",
16533
+ "digant",
16534
+ "digantañ",
16535
+ "digante",
16536
+ "diganti",
16537
+ "diganto",
16538
+ "digemmesk",
16539
+ "diget",
16540
+ "digor",
16541
+ "digoret",
16542
+ "dija",
16543
+ "dije",
16544
+ "dimp",
16545
+ "din",
16546
+ "dinaou",
16547
+ "dindan",
16548
+ "dindanañ",
16549
+ "dindani",
16550
+ "dindano",
16551
+ "dindanoc'h",
16552
+ "dindanomp",
16553
+ "dindanon",
16554
+ "dindanor",
16555
+ "dindanout",
16556
+ "dioutañ",
16557
+ "dioute",
16558
+ "diouti",
16559
+ "diouto",
16560
+ "diouzh",
16561
+ "diouzhin",
16562
+ "diouzhit",
16563
+ "diouzhoc'h",
16564
+ "diouzhomp",
16565
+ "diouzhor",
16566
+ "dirak",
16567
+ "dirazañ",
16568
+ "dirazi",
16569
+ "dirazo",
16570
+ "dirazoc'h",
16571
+ "dirazomp",
16572
+ "dirazon",
16573
+ "dirazor",
16574
+ "dirazout",
16575
+ "disheñvel",
16576
+ "dispar",
16577
+ "distank",
16578
+ "dister",
16579
+ "disterañ",
16580
+ "disterig",
16581
+ "distro",
16582
+ "dit",
16583
+ "divaez",
16584
+ "diwar",
16585
+ "diwezhat",
16586
+ "diwezhañ",
16353
16587
  "do",
16354
- "dos",
16355
- "durante",
16588
+ "doa",
16589
+ "doare",
16590
+ "dont",
16591
+ "dost",
16592
+ "doue",
16593
+ "douetus",
16594
+ "douez",
16595
+ "doug",
16596
+ "draou",
16597
+ "draoñ",
16598
+ "dre",
16599
+ "drede",
16600
+ "dreist",
16601
+ "dreistañ",
16602
+ "dreisti",
16603
+ "dreisto",
16604
+ "dreistoc'h",
16605
+ "dreistomp",
16606
+ "dreiston",
16607
+ "dreistor",
16608
+ "dreistout",
16609
+ "drek",
16610
+ "dreñv",
16611
+ "dring",
16612
+ "dro",
16613
+ "du",
16356
16614
  "e",
16357
- "ela",
16358
- "elas",
16359
- "ele",
16360
- "eles",
16615
+ "e:",
16616
+ "eas",
16617
+ "ebet",
16618
+ "ec'h",
16619
+ "edo",
16620
+ "edoc'h",
16621
+ "edod",
16622
+ "edomp",
16623
+ "edon",
16624
+ "edont",
16625
+ "edos",
16626
+ "eer",
16627
+ "eeun",
16628
+ "efed",
16629
+ "egedoc'h",
16630
+ "egedomp",
16631
+ "egedon",
16632
+ "egedor",
16633
+ "egedout",
16634
+ "eget",
16635
+ "egetañ",
16636
+ "egete",
16637
+ "egeti",
16638
+ "egeto",
16639
+ "eh",
16640
+ "eil",
16641
+ "eilvet",
16642
+ "eizh",
16643
+ "eizhvet",
16644
+ "ejoc'h",
16645
+ "ejod",
16646
+ "ejomp",
16647
+ "ejont",
16648
+ "ejout",
16649
+ "el",
16361
16650
  "em",
16362
- "entao",
16363
- "entre",
16364
- "essa",
16365
- "essas",
16366
- "esse",
16367
- "esses",
16368
- "esta",
16369
- "estas",
16370
- "este",
16371
- "estes",
16651
+ "emaint",
16652
+ "emaoc'h",
16653
+ "emaomp",
16654
+ "emaon",
16655
+ "emaout",
16656
+ "emañ",
16657
+ "eme",
16658
+ "emeur",
16659
+ "emezañ",
16660
+ "emezi",
16661
+ "emezo",
16662
+ "emezoc'h",
16663
+ "emezomp",
16664
+ "emezon",
16665
+ "emezout",
16666
+ "emporzhiañ",
16667
+ "en",
16668
+ "end",
16669
+ "endan",
16670
+ "endra",
16671
+ "enep",
16672
+ "ennañ",
16673
+ "enni",
16674
+ "enno",
16675
+ "ennoc'h",
16676
+ "ennomp",
16677
+ "ennon",
16678
+ "ennor",
16679
+ "ennout",
16680
+ "enta",
16681
+ "eo",
16682
+ "eomp",
16683
+ "eont",
16684
+ "eor",
16685
+ "eot",
16686
+ "er",
16687
+ "erbet",
16688
+ "erfin",
16689
+ "esa",
16690
+ "esae",
16691
+ "espar",
16692
+ "estlamm",
16693
+ "estrañj",
16694
+ "eta",
16695
+ "etre",
16696
+ "etreoc'h",
16697
+ "etrezo",
16698
+ "etrezoc'h",
16699
+ "etrezomp",
16700
+ "etrezor",
16701
+ "euh",
16702
+ "eur",
16703
+ "eus",
16704
+ "evel",
16705
+ "evelato",
16706
+ "eveldoc'h",
16707
+ "eveldomp",
16708
+ "eveldon",
16709
+ "eveldor",
16710
+ "eveldout",
16711
+ "evelkent",
16712
+ "eveltañ",
16713
+ "evelte",
16714
+ "evelti",
16715
+ "evelto",
16716
+ "evidoc'h",
16717
+ "evidomp",
16718
+ "evidon",
16719
+ "evidor",
16720
+ "evidout",
16721
+ "evit",
16722
+ "evitañ",
16723
+ "evite",
16724
+ "eviti",
16725
+ "evito",
16726
+ "ez",
16727
+ "eñ",
16728
+ "f:",
16729
+ "fac'h",
16730
+ "fall",
16731
+ "fed",
16732
+ "feiz",
16733
+ "fenn",
16734
+ "fezh",
16735
+ "fin",
16736
+ "finsalvet",
16737
+ "foei",
16738
+ "fouilhezañ",
16739
+ "g:",
16740
+ "gallout",
16741
+ "ganeoc'h",
16742
+ "ganeomp",
16743
+ "ganin",
16744
+ "ganit",
16745
+ "gant",
16746
+ "gantañ",
16747
+ "ganti",
16748
+ "ganto",
16749
+ "gaout",
16750
+ "gast",
16751
+ "gein",
16752
+ "gellout",
16753
+ "genndost",
16754
+ "gentañ",
16755
+ "ger",
16756
+ "gerz",
16757
+ "get",
16758
+ "geñver",
16759
+ "gichen",
16760
+ "gin",
16761
+ "giz",
16762
+ "glan",
16763
+ "gloev",
16764
+ "goll",
16765
+ "gorre",
16766
+ "goude",
16767
+ "gouez",
16768
+ "gouezit",
16769
+ "gouezomp",
16770
+ "goulz",
16771
+ "gounnar",
16772
+ "gour",
16773
+ "goust",
16774
+ "gouze",
16775
+ "gouzout",
16776
+ "gra",
16777
+ "grak",
16778
+ "grec'h",
16779
+ "greiz",
16780
+ "grenn",
16781
+ "greomp",
16782
+ "grit",
16783
+ "groñs",
16784
+ "gutez",
16785
+ "gwall",
16786
+ "gwashoc'h",
16787
+ "gwazh",
16788
+ "gwech",
16789
+ "gwechall",
16790
+ "gwechoù",
16791
+ "gwell",
16792
+ "gwezh",
16793
+ "gwezhall",
16794
+ "gwezharall",
16795
+ "gwezhoù",
16796
+ "gwig",
16797
+ "gwirionez",
16798
+ "gwitibunan",
16799
+ "gêr",
16800
+ "h:",
16372
16801
  "ha",
16373
- "isso",
16374
- "isto",
16375
- "logo",
16376
- "mais",
16377
- "mas",
16378
- "mediante",
16379
- "menos",
16380
- "mesma",
16381
- "mesmas",
16382
- "mesmo",
16383
- "mesmos",
16802
+ "hag",
16803
+ "han",
16804
+ "hanter",
16805
+ "hanterc'hantad",
16806
+ "hanterkantved",
16807
+ "harz",
16808
+ "hañ",
16809
+ "hañval",
16810
+ "he",
16811
+ "hebioù",
16812
+ "hec'h",
16813
+ "hei",
16814
+ "hein",
16815
+ "hem",
16816
+ "hemañ",
16817
+ "hen",
16818
+ "hend",
16819
+ "henhont",
16820
+ "henn",
16821
+ "hennezh",
16822
+ "hent",
16823
+ "hep",
16824
+ "hervez",
16825
+ "hervezañ",
16826
+ "hervezi",
16827
+ "hervezo",
16828
+ "hervezoc'h",
16829
+ "hervezomp",
16830
+ "hervezon",
16831
+ "hervezor",
16832
+ "hervezout",
16833
+ "heul",
16834
+ "heuliañ",
16835
+ "hevelep",
16836
+ "heverk",
16837
+ "heñvel",
16838
+ "heñvelat",
16839
+ "heñvelañ",
16840
+ "heñveliñ",
16841
+ "heñveloc'h",
16842
+ "heñvelout",
16843
+ "hi",
16844
+ "hilh",
16845
+ "hini",
16846
+ "hirie",
16847
+ "hirio",
16848
+ "hiziv",
16849
+ "hiziviken",
16850
+ "ho",
16851
+ "hoaliñ",
16852
+ "hoc'h",
16853
+ "hogen",
16854
+ "hogos",
16855
+ "hogozik",
16856
+ "hol",
16857
+ "holl",
16858
+ "holà",
16859
+ "homañ",
16860
+ "hon",
16861
+ "honhont",
16862
+ "honnezh",
16863
+ "hont",
16864
+ "hop",
16865
+ "hopala",
16866
+ "hor",
16867
+ "hou",
16868
+ "houp",
16869
+ "hudu",
16870
+ "hue",
16871
+ "hui",
16872
+ "hum",
16873
+ "hurrah",
16874
+ "i",
16875
+ "i:",
16876
+ "in",
16877
+ "int",
16878
+ "is",
16879
+ "ispisial",
16880
+ "isurzhiet",
16881
+ "it",
16882
+ "ivez",
16883
+ "izelañ",
16884
+ "j:",
16885
+ "just",
16886
+ "k:",
16887
+ "kae",
16888
+ "kaer",
16889
+ "kalon",
16890
+ "kalz",
16891
+ "kant",
16892
+ "kaout",
16893
+ "kar",
16894
+ "kazi",
16895
+ "keid",
16896
+ "kein",
16897
+ "keit",
16898
+ "kel",
16899
+ "kellies",
16900
+ "keloù",
16901
+ "kement",
16902
+ "ken",
16903
+ "kenkent",
16904
+ "kenkoulz",
16905
+ "kenment",
16906
+ "kent",
16907
+ "kentañ",
16908
+ "kentizh",
16909
+ "kentoc'h",
16910
+ "kentre",
16911
+ "ker",
16912
+ "kerkent",
16913
+ "kerz",
16914
+ "kerzh",
16915
+ "ket",
16916
+ "keta",
16917
+ "keñver",
16918
+ "keñverel",
16919
+ "keñverius",
16920
+ "kichen",
16921
+ "kichenik",
16922
+ "kit",
16923
+ "kiz",
16924
+ "klak",
16925
+ "klek",
16926
+ "klik",
16927
+ "komprenet",
16928
+ "komz",
16929
+ "kont",
16930
+ "korf",
16931
+ "korre",
16932
+ "koulskoude",
16933
+ "koulz",
16934
+ "koust",
16935
+ "krak",
16936
+ "krampouezh",
16937
+ "krec'h",
16938
+ "kreiz",
16939
+ "kuit",
16940
+ "kwir",
16941
+ "l:",
16942
+ "la",
16943
+ "laez",
16944
+ "laoskel",
16945
+ "laouen",
16946
+ "lavar",
16947
+ "lavaret",
16948
+ "lavarout",
16949
+ "lec'h",
16950
+ "lein",
16951
+ "leizh",
16952
+ "lerc'h",
16953
+ "leun",
16954
+ "leuskel",
16955
+ "lew",
16956
+ "lies",
16957
+ "liesañ",
16958
+ "lod",
16959
+ "lusk",
16960
+ "lâr",
16961
+ "lârout",
16962
+ "m:",
16963
+ "ma",
16964
+ "ma'z",
16965
+ "mac'h",
16966
+ "mac'hat",
16967
+ "mac'hañ",
16968
+ "mac'hoc'h",
16969
+ "mad",
16970
+ "maez",
16971
+ "maksimal",
16972
+ "mann",
16973
+ "mar",
16974
+ "mard",
16975
+ "marg",
16976
+ "marzh",
16977
+ "mat",
16978
+ "mañ",
16979
+ "me",
16980
+ "memes",
16981
+ "memestra",
16982
+ "merkapl",
16983
+ "mersi",
16984
+ "mes",
16985
+ "mesk",
16986
+ "met",
16987
+ "meur",
16988
+ "mil",
16989
+ "minimal",
16990
+ "moan",
16991
+ "moaniaat",
16992
+ "mod",
16993
+ "mont",
16994
+ "mout",
16995
+ "mui",
16996
+ "muiañ",
16997
+ "muioc'h",
16998
+ "n",
16999
+ "n'",
17000
+ "n:",
16384
17001
  "na",
16385
- "nao",
16386
- "nas",
16387
- "nem",
16388
- "nesse",
16389
- "neste",
16390
- "nos",
17002
+ "nag",
17003
+ "naontek",
17004
+ "naturel",
17005
+ "nav",
17006
+ "navet",
17007
+ "ne",
17008
+ "nebeudig",
17009
+ "nebeut",
17010
+ "nebeutañ",
17011
+ "nebeutoc'h",
17012
+ "neketa",
17013
+ "nemedoc'h",
17014
+ "nemedomp",
17015
+ "nemedon",
17016
+ "nemedor",
17017
+ "nemedout",
17018
+ "nemet",
17019
+ "nemetañ",
17020
+ "nemete",
17021
+ "nemeti",
17022
+ "nemeto",
17023
+ "nemeur",
17024
+ "neoac'h",
17025
+ "nepell",
17026
+ "nerzh",
17027
+ "nes",
17028
+ "neseser",
17029
+ "netra",
17030
+ "neubeudoù",
17031
+ "neuhe",
17032
+ "neuze",
17033
+ "nevez",
17034
+ "newazh",
17035
+ "nez",
17036
+ "ni",
17037
+ "nikun",
17038
+ "niverus",
17039
+ "nul",
16391
17040
  "o",
16392
- "os",
16393
- "ou",
16394
- "outra",
16395
- "outras",
16396
- "outro",
16397
- "outros",
16398
- "pelas",
16399
- "pelo",
16400
- "pelos",
16401
- "perante",
16402
- "pois",
16403
- "por",
16404
- "porque",
16405
- "portanto",
16406
- "propios",
16407
- "proprio",
16408
- "quais",
16409
- "qual",
16410
- "qualquer",
16411
- "quando",
16412
- "quanto",
16413
- "que",
16414
- "quem",
16415
- "quer",
17041
+ "o:",
17042
+ "oa",
17043
+ "oac'h",
17044
+ "oad",
17045
+ "oamp",
17046
+ "oan",
17047
+ "oant",
17048
+ "oar",
17049
+ "oas",
17050
+ "ober",
17051
+ "oc'h",
17052
+ "oc'ho",
17053
+ "oc'hola",
17054
+ "oc'hpenn",
17055
+ "oh",
17056
+ "ohe",
17057
+ "ollé",
17058
+ "olole",
17059
+ "olé",
17060
+ "omp",
17061
+ "on",
17062
+ "ordin",
17063
+ "ordinal",
17064
+ "ouejoc'h",
17065
+ "ouejod",
17066
+ "ouejomp",
17067
+ "ouejont",
17068
+ "ouejout",
17069
+ "ouek",
17070
+ "ouezas",
17071
+ "ouezi",
17072
+ "ouezimp",
17073
+ "ouezin",
17074
+ "ouezint",
17075
+ "ouezis",
17076
+ "ouezo",
17077
+ "ouezoc'h",
17078
+ "ouezor",
17079
+ "ouf",
17080
+ "oufe",
17081
+ "oufec'h",
17082
+ "oufed",
17083
+ "oufemp",
17084
+ "oufen",
17085
+ "oufent",
17086
+ "oufes",
17087
+ "ouie",
17088
+ "ouiec'h",
17089
+ "ouied",
17090
+ "ouiemp",
17091
+ "ouien",
17092
+ "ouient",
17093
+ "ouies",
17094
+ "ouije",
17095
+ "ouijec'h",
17096
+ "ouijed",
17097
+ "ouijemp",
17098
+ "ouijen",
17099
+ "ouijent",
17100
+ "ouijes",
17101
+ "out",
17102
+ "outañ",
17103
+ "outi",
17104
+ "outo",
17105
+ "ouzer",
17106
+ "ouzh",
17107
+ "ouzhin",
17108
+ "ouzhit",
17109
+ "ouzhoc'h",
17110
+ "ouzhomp",
17111
+ "ouzhor",
17112
+ "ouzhpenn",
17113
+ "ouzhpennik",
17114
+ "ouzoc'h",
17115
+ "ouzomp",
17116
+ "ouzon",
17117
+ "ouzont",
17118
+ "ouzout",
17119
+ "p'",
17120
+ "p:",
17121
+ "pa",
17122
+ "pad",
17123
+ "padal",
17124
+ "paf",
17125
+ "pan",
17126
+ "panevedeoc'h",
17127
+ "panevedo",
17128
+ "panevedomp",
17129
+ "panevedon",
17130
+ "panevedout",
17131
+ "panevet",
17132
+ "panevetañ",
17133
+ "paneveti",
17134
+ "pas",
17135
+ "paseet",
17136
+ "pe",
17137
+ "peadra",
17138
+ "peder",
17139
+ "pedervet",
17140
+ "pedervetvet",
17141
+ "pefe",
17142
+ "pegeit",
17143
+ "pegement",
17144
+ "pegen",
17145
+ "pegiz",
17146
+ "pegoulz",
17147
+ "pehini",
17148
+ "pelec'h",
17149
+ "pell",
17150
+ "pemod",
17151
+ "pemp",
17152
+ "pempved",
17153
+ "pemzek",
17154
+ "penaos",
17155
+ "penn",
17156
+ "peogwir",
17157
+ "peotramant",
17158
+ "pep",
17159
+ "perak",
17160
+ "perc'hennañ",
17161
+ "pergen",
17162
+ "permetiñ",
17163
+ "peseurt",
17164
+ "pet",
17165
+ "petiaoul",
17166
+ "petoare",
17167
+ "petra",
17168
+ "peur",
17169
+ "peurgetket",
17170
+ "peurheñvel",
17171
+ "peurliesañ",
17172
+ "peurvuiañ",
17173
+ "peus",
17174
+ "peustost",
17175
+ "peuz",
17176
+ "pevar",
17177
+ "pevare",
17178
+ "pevarevet",
17179
+ "pevarzek",
17180
+ "pez",
17181
+ "peze",
17182
+ "pezh",
17183
+ "pff",
17184
+ "pfft",
17185
+ "pfut",
17186
+ "picher",
17187
+ "pif",
17188
+ "pife",
17189
+ "pign",
17190
+ "pije",
17191
+ "pikol",
17192
+ "pitiaoul",
17193
+ "piv",
17194
+ "plaouf",
17195
+ "plok",
17196
+ "plouf",
17197
+ "po",
17198
+ "poa",
17199
+ "poelladus",
17200
+ "pof",
17201
+ "pok",
17202
+ "posupl",
17203
+ "pouah",
17204
+ "pourc'henn",
17205
+ "prest",
17206
+ "prestik",
17207
+ "prim",
17208
+ "prin",
17209
+ "provostapl",
17210
+ "pst",
17211
+ "pu",
17212
+ "pur",
17213
+ "r:",
17214
+ "ra",
17215
+ "rae",
17216
+ "raec'h",
17217
+ "raed",
17218
+ "raemp",
17219
+ "raen",
17220
+ "raent",
17221
+ "raes",
17222
+ "rafe",
17223
+ "rafec'h",
17224
+ "rafed",
17225
+ "rafemp",
17226
+ "rafen",
17227
+ "rafent",
17228
+ "rafes",
17229
+ "rag",
17230
+ "raimp",
17231
+ "raint",
17232
+ "raio",
17233
+ "raje",
17234
+ "rajec'h",
17235
+ "rajed",
17236
+ "rajemp",
17237
+ "rajen",
17238
+ "rajent",
17239
+ "rajes",
17240
+ "rak",
17241
+ "ral",
17242
+ "ran",
17243
+ "rankout",
17244
+ "raok",
17245
+ "razh",
17246
+ "re",
17247
+ "reas",
17248
+ "reer",
17249
+ "regennoù",
17250
+ "reiñ",
17251
+ "rejoc'h",
17252
+ "rejod",
17253
+ "rejomp",
17254
+ "rejont",
17255
+ "rejout",
17256
+ "rener",
17257
+ "rentañ",
17258
+ "reoc'h",
17259
+ "reomp",
17260
+ "reont",
17261
+ "reor",
17262
+ "reot",
17263
+ "resis",
17264
+ "ret",
17265
+ "reve",
17266
+ "rez",
17267
+ "ri",
17268
+ "rik",
17269
+ "rin",
17270
+ "ris",
17271
+ "rit",
17272
+ "rouez",
17273
+ "s:",
17274
+ "sac'h",
17275
+ "sant",
17276
+ "sav",
17277
+ "sañset",
16416
17278
  "se",
16417
- "seja",
16418
- "sem",
16419
- "sendo",
16420
- "seu",
16421
- "seus",
16422
- "sob",
16423
- "sobre",
16424
- "sua",
16425
- "suas",
17279
+ "sed",
17280
+ "seitek",
17281
+ "seizh",
17282
+ "seizhvet",
17283
+ "sell",
17284
+ "sellit",
17285
+ "ser",
17286
+ "setu",
17287
+ "seul",
17288
+ "seurt",
17289
+ "siwazh",
17290
+ "skignañ",
17291
+ "skoaz",
17292
+ "skouer",
17293
+ "sort",
17294
+ "souden",
17295
+ "souvitañ",
17296
+ "soñj",
17297
+ "speriañ",
17298
+ "spririñ",
17299
+ "stad",
17300
+ "stlabezañ",
17301
+ "stop",
17302
+ "stranañ",
17303
+ "strewiñ",
17304
+ "strishaat",
17305
+ "stumm",
17306
+ "sujed",
17307
+ "surtoud",
17308
+ "t:",
17309
+ "ta",
17310
+ "taer",
17311
+ "tailh",
17312
+ "tak",
16426
17313
  "tal",
16427
- "tambem",
16428
- "teu",
17314
+ "talvoudegezh",
17315
+ "tamm",
17316
+ "tanav",
17317
+ "taol",
17318
+ "te",
17319
+ "techet",
17320
+ "teir",
17321
+ "teirvet",
17322
+ "telt",
17323
+ "teltenn",
16429
17324
  "teus",
16430
- "toda",
16431
- "todas",
16432
- "todo",
16433
- "todos",
16434
- "tua",
16435
- "tuas",
16436
- "tudo",
16437
- "um",
16438
- "uma",
16439
- "umas",
16440
- "uns"
17325
+ "teut",
17326
+ "teuteu",
17327
+ "ti",
17328
+ "tik",
17329
+ "toa",
17330
+ "tok",
17331
+ "tost",
17332
+ "tostig",
17333
+ "toud",
17334
+ "touesk",
17335
+ "touez",
17336
+ "toull",
17337
+ "tra",
17338
+ "trantenn",
17339
+ "traoñ",
17340
+ "trawalc'h",
17341
+ "tre",
17342
+ "trede",
17343
+ "tregont",
17344
+ "tremenet",
17345
+ "tri",
17346
+ "trivet",
17347
+ "triwec'h",
17348
+ "trizek",
17349
+ "tro",
17350
+ "trugarez",
17351
+ "trumm",
17352
+ "tsoin",
17353
+ "tsouin",
17354
+ "tu",
17355
+ "tud",
17356
+ "u:",
17357
+ "ugent",
17358
+ "uhel",
17359
+ "uhelañ",
17360
+ "ul",
17361
+ "un",
17362
+ "unan",
17363
+ "unanez",
17364
+ "unanig",
17365
+ "unnek",
17366
+ "unnekvet",
17367
+ "ur",
17368
+ "urzh",
17369
+ "us",
17370
+ "v:",
17371
+ "va",
17372
+ "vale",
17373
+ "van",
17374
+ "vare",
17375
+ "vat",
17376
+ "vefe",
17377
+ "vefec'h",
17378
+ "vefed",
17379
+ "vefemp",
17380
+ "vefen",
17381
+ "vefent",
17382
+ "vefes",
17383
+ "vesk",
17384
+ "vete",
17385
+ "vez",
17386
+ "vezan",
17387
+ "vezañ",
17388
+ "veze",
17389
+ "vezec'h",
17390
+ "vezed",
17391
+ "vezemp",
17392
+ "vezen",
17393
+ "vezent",
17394
+ "vezer",
17395
+ "vezes",
17396
+ "vezez",
17397
+ "vezit",
17398
+ "vezomp",
17399
+ "vezont",
17400
+ "vi",
17401
+ "vihan",
17402
+ "vihanañ",
17403
+ "vije",
17404
+ "vijec'h",
17405
+ "vijed",
17406
+ "vijemp",
17407
+ "vijen",
17408
+ "vijent",
17409
+ "vijes",
17410
+ "viken",
17411
+ "vimp",
17412
+ "vin",
17413
+ "vint",
17414
+ "vior",
17415
+ "viot",
17416
+ "virviken",
17417
+ "viskoazh",
17418
+ "vlan",
17419
+ "vlaou",
17420
+ "vo",
17421
+ "vod",
17422
+ "voe",
17423
+ "voec'h",
17424
+ "voed",
17425
+ "voemp",
17426
+ "voen",
17427
+ "voent",
17428
+ "voes",
17429
+ "vont",
17430
+ "vostapl",
17431
+ "vrac'h",
17432
+ "vrasañ",
17433
+ "vremañ",
17434
+ "w:",
17435
+ "walc'h",
17436
+ "war",
17437
+ "warnañ",
17438
+ "warni",
17439
+ "warno",
17440
+ "warnoc'h",
17441
+ "warnomp",
17442
+ "warnon",
17443
+ "warnor",
17444
+ "warnout",
17445
+ "wazh",
17446
+ "wech",
17447
+ "wechoù",
17448
+ "well",
17449
+ "y:",
17450
+ "you",
17451
+ "youadenn",
17452
+ "youc'hadenn",
17453
+ "youc'hou",
17454
+ "z:",
17455
+ "za",
17456
+ "zan",
17457
+ "zaw",
17458
+ "zeu",
17459
+ "zi",
17460
+ "ziar",
17461
+ "zigarez",
17462
+ "ziget",
17463
+ "zindan",
17464
+ "zioc'h",
17465
+ "ziouzh",
17466
+ "zirak",
17467
+ "zivout",
17468
+ "ziwar",
17469
+ "ziwezhañ",
17470
+ "zo",
17471
+ "zoken",
17472
+ "zokenoc'h",
17473
+ "zouesk",
17474
+ "zouez",
17475
+ "zro",
17476
+ "zu"
16441
17477
  ];
16442
17478
  const bul = [
16443
17479
  "а",
@@ -28093,22 +29129,32 @@ flowchart TD
28093
29129
  "şöyle"
28094
29130
  ];
28095
29131
  const ukr = [
29132
+ "а",
29133
+ "або",
28096
29134
  "авжеж",
28097
29135
  "адже",
29136
+ "аж",
28098
29137
  "але",
29138
+ "ані",
28099
29139
  "б",
28100
29140
  "без",
29141
+ "би",
29142
+ "бо",
28101
29143
  "був",
28102
29144
  "була",
28103
29145
  "були",
28104
29146
  "було",
28105
29147
  "бути",
28106
29148
  "більш",
29149
+ "в",
28107
29150
  "вам",
29151
+ "вами",
28108
29152
  "вас",
28109
29153
  "весь",
29154
+ "вже",
28110
29155
  "вздовж",
28111
29156
  "ви",
29157
+ "від",
28112
29158
  "вниз",
28113
29159
  "внизу",
28114
29160
  "вона",
@@ -28117,55 +29163,138 @@ flowchart TD
28117
29163
  "все",
28118
29164
  "всередині",
28119
29165
  "всіх",
29166
+ "вся",
28120
29167
  "від",
28121
29168
  "він",
28122
29169
  "да",
28123
29170
  "давай",
28124
29171
  "давати",
28125
29172
  "де",
29173
+ "десь",
28126
29174
  "дещо",
28127
29175
  "для",
28128
29176
  "до",
29177
+ "є",
29178
+ "ж",
29179
+ "же",
28129
29180
  "з",
29181
+ "за",
28130
29182
  "завжди",
28131
29183
  "замість",
29184
+ "зі",
29185
+ "і",
29186
+ "із",
29187
+ "інших",
29188
+ "її",
29189
+ "їй",
29190
+ "їм",
29191
+ "їх",
28132
29192
  "й",
29193
+ "його",
29194
+ "йому",
28133
29195
  "коли",
28134
29196
  "ледве",
29197
+ "лиш",
28135
29198
  "майже",
29199
+ "мене",
29200
+ "мені",
28136
29201
  "ми",
29202
+ "між",
29203
+ "мій",
29204
+ "мною",
29205
+ "мов",
29206
+ "мого",
29207
+ "моєї",
29208
+ "моє",
29209
+ "може",
29210
+ "мої",
29211
+ "моїх",
29212
+ "моя",
29213
+ "на",
29214
+ "над",
28137
29215
  "навколо",
28138
29216
  "навіть",
28139
29217
  "нам",
29218
+ "нами",
29219
+ "нас",
29220
+ "наче",
29221
+ "наш",
29222
+ "не",
29223
+ "нє",
29224
+ "неї",
29225
+ "нема",
29226
+ "немов",
29227
+ "неначе",
29228
+ "нею",
29229
+ "ним",
29230
+ "ними",
29231
+ "них",
29232
+ "ні",
29233
+ "ніби",
29234
+ "ніщо",
29235
+ "нього",
29236
+ "о",
29237
+ "ось",
28140
29238
  "от",
28141
29239
  "отже",
28142
29240
  "отож",
29241
+ "під",
29242
+ "по",
28143
29243
  "поза",
28144
29244
  "про",
28145
29245
  "під",
29246
+ "сам",
29247
+ "сама",
29248
+ "свій",
29249
+ "свої",
29250
+ "своя",
29251
+ "свою",
29252
+ "себе",
29253
+ "собі",
28146
29254
  "та",
29255
+ "там",
28147
29256
  "так",
29257
+ "така",
28148
29258
  "такий",
28149
29259
  "також",
29260
+ "твій",
29261
+ "твого",
29262
+ "твоєї",
29263
+ "твої",
29264
+ "твоя",
28150
29265
  "те",
29266
+ "тебе",
28151
29267
  "ти",
29268
+ "ті",
29269
+ "тільки",
29270
+ "то",
29271
+ "тобі",
29272
+ "тобою",
28152
29273
  "тобто",
29274
+ "тоді",
28153
29275
  "тож",
29276
+ "той",
28154
29277
  "тощо",
29278
+ "тут",
29279
+ "у",
29280
+ "хіба",
29281
+ "хоч",
28155
29282
  "хоча",
28156
29283
  "це",
28157
29284
  "цей",
29285
+ "ці",
29286
+ "ця",
28158
29287
  "чи",
28159
29288
  "чого",
29289
+ "ще",
28160
29290
  "що",
29291
+ "щоб",
29292
+ "щось",
29293
+ "я",
28161
29294
  "як",
29295
+ "яка",
28162
29296
  "який",
28163
- "якої",
28164
- "є",
28165
- "із",
28166
- "інших",
28167
- "їх",
28168
- "її"
29297
+ "якої"
28169
29298
  ];
28170
29299
  const urd = [
28171
29300
  "آئی",
@@ -29163,7 +30292,14 @@ flowchart TD
29163
30292
  const AUTH_TOKEN_KEY = "tinacms-auth";
29164
30293
  const authenticate = (clientId, frontendUrl) => {
29165
30294
  return new Promise((resolve) => {
29166
- let authTab;
30295
+ const origin = `${window.location.protocol}//${window.location.host}`;
30296
+ const authTab = popupWindow(
30297
+ `${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
30298
+ "_blank",
30299
+ window,
30300
+ 1e3,
30301
+ 700
30302
+ );
29167
30303
  window.addEventListener("message", function(e) {
29168
30304
  if (e.data.source === TINA_LOGIN_EVENT) {
29169
30305
  if (authTab) {
@@ -29176,14 +30312,6 @@ flowchart TD
29176
30312
  });
29177
30313
  }
29178
30314
  });
29179
- const origin = `${window.location.protocol}//${window.location.host}`;
29180
- authTab = popupWindow(
29181
- `${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
29182
- "_blank",
29183
- window,
29184
- 1e3,
29185
- 700
29186
- );
29187
30315
  });
29188
30316
  };
29189
30317
  const DefaultSessionProvider = ({
@@ -29889,56 +31017,6 @@ mutation addPendingDocumentMutation(
29889
31017
  !submitting && name
29890
31018
  );
29891
31019
  };
29892
- const TINA_AUTH_CONFIG = "tina_auth_config";
29893
- const useTinaAuthRedirect = () => {
29894
- React.useEffect(() => {
29895
- const urlParams = new URLSearchParams(window.location.search);
29896
- const config = {
29897
- code: urlParams.get("code") || "",
29898
- scope: urlParams.get("scope") || "email",
29899
- state: urlParams.get("state")
29900
- };
29901
- if (!config.code) {
29902
- return;
29903
- }
29904
- localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
29905
- }, []);
29906
- };
29907
- const createClient = ({
29908
- clientId,
29909
- isLocalClient = true,
29910
- branch,
29911
- tinaioConfig,
29912
- schema,
29913
- apiUrl,
29914
- tinaGraphQLVersion
29915
- }) => {
29916
- return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
29917
- clientId: clientId || "",
29918
- branch: branch || "main",
29919
- tokenStorage: "LOCAL_STORAGE",
29920
- tinaioConfig,
29921
- schema,
29922
- tinaGraphQLVersion
29923
- });
29924
- };
29925
- function assertShape(value, yupSchema, errorMessage) {
29926
- const shape = yupSchema(yup__namespace);
29927
- try {
29928
- shape.validateSync(value);
29929
- } catch (e) {
29930
- const message = errorMessage || `Failed to assertShape - ${e.message}`;
29931
- throw new Error(message);
29932
- }
29933
- }
29934
- function safeAssertShape(value, yupSchema) {
29935
- try {
29936
- assertShape(value, yupSchema);
29937
- return true;
29938
- } catch (e) {
29939
- return false;
29940
- }
29941
- }
29942
31020
  class TinaAdminApi {
29943
31021
  constructor(cms) {
29944
31022
  var _a, _b, _c, _d;
@@ -30078,6 +31156,7 @@ mutation addPendingDocumentMutation(
30078
31156
  relativePath
30079
31157
  filename
30080
31158
  extension
31159
+ hasReferences
30081
31160
  }
30082
31161
  }
30083
31162
  }
@@ -30169,6 +31248,9 @@ mutation addPendingDocumentMutation(
30169
31248
  document(collection:$collection, relativePath:$relativePath) {
30170
31249
  ... on Document {
30171
31250
  _values
31251
+ _sys {
31252
+ hasReferences
31253
+ }
30172
31254
  }
30173
31255
  }
30174
31256
  }`;
@@ -30281,6 +31363,56 @@ mutation addPendingDocumentMutation(
30281
31363
  );
30282
31364
  }
30283
31365
  }
31366
+ const createClient = ({
31367
+ clientId,
31368
+ isLocalClient = true,
31369
+ branch,
31370
+ tinaioConfig,
31371
+ schema,
31372
+ apiUrl,
31373
+ tinaGraphQLVersion
31374
+ }) => {
31375
+ return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
31376
+ clientId: clientId || "",
31377
+ branch: branch || "main",
31378
+ tokenStorage: "LOCAL_STORAGE",
31379
+ tinaioConfig,
31380
+ schema,
31381
+ tinaGraphQLVersion
31382
+ });
31383
+ };
31384
+ function assertShape(value, yupSchema, errorMessage) {
31385
+ const shape = yupSchema(yup__namespace);
31386
+ try {
31387
+ shape.validateSync(value);
31388
+ } catch (e) {
31389
+ const message = errorMessage || `Failed to assertShape - ${e.message}`;
31390
+ throw new Error(message);
31391
+ }
31392
+ }
31393
+ function safeAssertShape(value, yupSchema) {
31394
+ try {
31395
+ assertShape(value, yupSchema);
31396
+ return true;
31397
+ } catch (e) {
31398
+ return false;
31399
+ }
31400
+ }
31401
+ const TINA_AUTH_CONFIG = "tina_auth_config";
31402
+ const useTinaAuthRedirect = () => {
31403
+ React.useEffect(() => {
31404
+ const urlParams = new URLSearchParams(window.location.search);
31405
+ const config = {
31406
+ code: urlParams.get("code") || "",
31407
+ scope: urlParams.get("scope") || "email",
31408
+ state: urlParams.get("state")
31409
+ };
31410
+ if (!config.code) {
31411
+ return;
31412
+ }
31413
+ localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
31414
+ }, []);
31415
+ };
30284
31416
  function sleep(ms) {
30285
31417
  return new Promise((resolve) => setTimeout(resolve, ms));
30286
31418
  }
@@ -30617,6 +31749,9 @@ mutation addPendingDocumentMutation(
30617
31749
  cms.flags.set("branch-switcher", true);
30618
31750
  client.usingEditorialWorkflow = true;
30619
31751
  client.protectedBranches = project.protectedBranches;
31752
+ if (!project.metadata[currentBranch]) {
31753
+ setCurrentBranch(project.defaultBranch || "main");
31754
+ }
30620
31755
  }
30621
31756
  });
30622
31757
  };
@@ -30629,7 +31764,7 @@ mutation addPendingDocumentMutation(
30629
31764
  }
30630
31765
  });
30631
31766
  return unsubscribe;
30632
- }, [isTinaCloud, cms]);
31767
+ }, [currentBranch, isTinaCloud, cms]);
30633
31768
  return /* @__PURE__ */ React.createElement(SessionProvider, { basePath: "/api/tina/auth" }, /* @__PURE__ */ React.createElement(
30634
31769
  BranchDataProvider,
30635
31770
  {
@@ -31482,6 +32617,35 @@ This will work when developing locally but NOT when deployed to production.
31482
32617
  }) => {
31483
32618
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center items-center h-screen bg-gray-100" }, /* @__PURE__ */ React.createElement("div", { className: "text-red-500 text-4xl mb-6 flex items-center" }, /* @__PURE__ */ React.createElement(BiError, { className: "w-12 h-auto fill-current text-red-400 opacity-70 mr-1" }), " ", title), /* @__PURE__ */ React.createElement("p", { className: "text-gray-700 text-xl mb-8" }, errorMessage), /* @__PURE__ */ React.createElement(Button$1, { variant: "danger", onClick: () => window.location.reload() }, /* @__PURE__ */ React.createElement(BiSync, { className: "w-7 h-auto fill-current opacity-70 mr-1" }), " Reload"));
31484
32619
  };
32620
+ const isValidSortKey = (sortKey, collection) => {
32621
+ if (collection.fields) {
32622
+ const sortKeys = collection.fields.map((x) => x.name);
32623
+ return sortKeys.includes(sortKey);
32624
+ } else if (collection.templates) {
32625
+ const collectionMap = {};
32626
+ const conflictedFields = /* @__PURE__ */ new Set();
32627
+ for (const template of collection.templates) {
32628
+ for (const field of template.fields) {
32629
+ if (collectionMap[field.name]) {
32630
+ if (collectionMap[field.name].type !== field.type) {
32631
+ conflictedFields.add(field.name);
32632
+ }
32633
+ } else {
32634
+ collectionMap[field.name] = field;
32635
+ }
32636
+ }
32637
+ }
32638
+ for (const key in conflictedFields) {
32639
+ delete collectionMap[key];
32640
+ }
32641
+ for (const key in collectionMap) {
32642
+ if (key === sortKey) {
32643
+ return true;
32644
+ }
32645
+ }
32646
+ return false;
32647
+ }
32648
+ };
31485
32649
  const useGetCollection = (cms, collectionName, includeDocuments = true, folder, after = "", sortKey, filterArgs) => {
31486
32650
  const api = new TinaAdminApi(cms);
31487
32651
  const schema = cms.api.tina.schema;
@@ -31493,10 +32657,9 @@ This will work when developing locally but NOT when deployed to production.
31493
32657
  React.useEffect(() => {
31494
32658
  let cancelled = false;
31495
32659
  const fetchCollection = async () => {
31496
- var _a;
31497
32660
  if (await api.isAuthenticated() && !folder.loading && !cancelled) {
31498
32661
  const { name, order } = JSON.parse(sortKey || "{}");
31499
- const validSortKey = ((_a = collectionExtra.fields) == null ? void 0 : _a.map((x) => x.name).includes(name)) ? name : void 0;
32662
+ const validSortKey = isValidSortKey(name, collectionExtra) ? name : void 0;
31500
32663
  try {
31501
32664
  const collection2 = await api.fetchCollection(
31502
32665
  collectionName,
@@ -31792,6 +32955,7 @@ This will work when developing locally but NOT when deployed to production.
31792
32955
  const [vars, setVars] = React.useState({
31793
32956
  collection: collectionName,
31794
32957
  relativePath: "",
32958
+ relativePathWithoutExtension: "",
31795
32959
  newRelativePath: "",
31796
32960
  filterField: "",
31797
32961
  folderName: "",
@@ -31833,6 +32997,7 @@ This will work when developing locally but NOT when deployed to production.
31833
32997
  ...old,
31834
32998
  collection: collectionName,
31835
32999
  relativePath: "",
33000
+ relativePathWithoutExtension: "",
31836
33001
  newRelativePath: "",
31837
33002
  filterField: "",
31838
33003
  startsWith: "",
@@ -31858,6 +33023,7 @@ This will work when developing locally but NOT when deployed to production.
31858
33023
  collectionName === vars.collection ? vars : {
31859
33024
  collection: collectionName,
31860
33025
  relativePath: "",
33026
+ relativePathWithoutExtension: "",
31861
33027
  newRelativePath: "",
31862
33028
  filterField: "",
31863
33029
  startsWith: "",
@@ -31895,6 +33061,23 @@ This will work when developing locally but NOT when deployed to production.
31895
33061
  DeleteModal,
31896
33062
  {
31897
33063
  filename: vars.relativePath,
33064
+ checkRefsFunc: async () => {
33065
+ var _a2, _b2;
33066
+ try {
33067
+ const doc = await admin.fetchDocument(
33068
+ collection.name,
33069
+ vars.relativePath,
33070
+ true
33071
+ );
33072
+ return (_b2 = (_a2 = doc == null ? void 0 : doc.document) == null ? void 0 : _a2._sys) == null ? void 0 : _b2.hasReferences;
33073
+ } catch (error) {
33074
+ cms.alerts.error(
33075
+ "Document was not found, ask a developer for help or check the console for an error message"
33076
+ );
33077
+ console.error(error);
33078
+ throw error;
33079
+ }
33080
+ },
31898
33081
  deleteFunc: async () => {
31899
33082
  try {
31900
33083
  await admin.deleteDocument(vars);
@@ -31903,6 +33086,12 @@ This will work when developing locally but NOT when deployed to production.
31903
33086
  );
31904
33087
  reFetchCollection();
31905
33088
  } catch (error) {
33089
+ if (error.message.indexOf("has references")) {
33090
+ cms.alerts.error(
33091
+ error.message.split("\n ").filter(Boolean)[1]
33092
+ );
33093
+ return;
33094
+ }
31906
33095
  cms.alerts.warn(
31907
33096
  "Document was not deleted, ask a developer for help or check the console for an error message"
31908
33097
  );
@@ -31922,7 +33111,9 @@ This will work when developing locally but NOT when deployed to production.
31922
33111
  safeSubmit: async () => {
31923
33112
  try {
31924
33113
  await admin.deleteDocument(vars);
31925
- cms.alerts.info("Document was successfully deleted");
33114
+ cms.alerts.info(
33115
+ "Document was successfully deleted"
33116
+ );
31926
33117
  reFetchCollection();
31927
33118
  } catch (error) {
31928
33119
  cms.alerts.warn(
@@ -31936,7 +33127,7 @@ This will work when developing locally but NOT when deployed to production.
31936
33127
  ), renameModalOpen && /* @__PURE__ */ React.createElement(
31937
33128
  RenameModal,
31938
33129
  {
31939
- filename: vars.relativePath,
33130
+ filename: vars.relativePathWithoutExtension,
31940
33131
  newRelativePath: vars.newRelativePath,
31941
33132
  setNewRelativePath: (newRelativePath) => {
31942
33133
  setVars((vars2) => {
@@ -31951,9 +33142,17 @@ This will work when developing locally but NOT when deployed to production.
31951
33142
  relativePath: vars.relativePath,
31952
33143
  newRelativePath
31953
33144
  });
31954
- cms.alerts.info("Document was successfully renamed");
33145
+ cms.alerts.info(
33146
+ "Document was successfully renamed"
33147
+ );
31955
33148
  reFetchCollection();
31956
33149
  } catch (error) {
33150
+ if (error.message.indexOf("has references")) {
33151
+ cms.alerts.error(
33152
+ error.message.split("\n ").filter(Boolean)[1]
33153
+ );
33154
+ return;
33155
+ }
31957
33156
  cms.alerts.warn(
31958
33157
  "Document was not renamed, ask a developer for help or check the console for an error message"
31959
33158
  );
@@ -32045,7 +33244,9 @@ This will work when developing locally but NOT when deployed to production.
32045
33244
  name: "sort",
32046
33245
  value: sortKey,
32047
33246
  onChange: (e) => {
32048
- const val = JSON.parse(e.target.value);
33247
+ const val = JSON.parse(
33248
+ e.target.value
33249
+ );
32049
33250
  setEndCursor("");
32050
33251
  setPrevCursors([]);
32051
33252
  window == null ? void 0 : window.localStorage.setItem(
@@ -32251,6 +33452,9 @@ This will work when developing locally but NOT when deployed to production.
32251
33452
  setVars((old) => ({
32252
33453
  ...old,
32253
33454
  collection: collectionName,
33455
+ relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
33456
+ "/"
33457
+ ),
32254
33458
  relativePath: document2.node._sys.breadcrumbs.join(
32255
33459
  "/"
32256
33460
  ) + document2.node._sys.extension,
@@ -32273,6 +33477,9 @@ This will work when developing locally but NOT when deployed to production.
32273
33477
  setVars((old) => ({
32274
33478
  ...old,
32275
33479
  collection: collectionName,
33480
+ relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
33481
+ "/"
33482
+ ),
32276
33483
  relativePath: document2.node._sys.breadcrumbs.join(
32277
33484
  "/"
32278
33485
  ) + document2.node._sys.extension,
@@ -32427,8 +33634,19 @@ This will work when developing locally but NOT when deployed to production.
32427
33634
  const NoDocumentsPlaceholder = () => {
32428
33635
  return /* @__PURE__ */ React.createElement("div", { className: "text-center px-5 py-3 flex flex-col items-center justify-center shadow border border-gray-100 bg-gray-50 border-b border-gray-200 w-full max-w-full rounded-lg" }, /* @__PURE__ */ React.createElement("p", { className: "text-base italic font-medium text-gray-300" }, "No documents found."));
32429
33636
  };
32430
- const DeleteModal = ({ close: close2, deleteFunc, filename }) => {
32431
- return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", null, `Are you sure you want to delete ${filename}?`)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React.createElement(
33637
+ const DeleteModal = ({
33638
+ close: close2,
33639
+ deleteFunc,
33640
+ checkRefsFunc,
33641
+ filename
33642
+ }) => {
33643
+ const [hasRefs, setHasRefs] = React.useState();
33644
+ React.useEffect(() => {
33645
+ checkRefsFunc().then((result) => {
33646
+ setHasRefs(result);
33647
+ });
33648
+ }, [filename, checkRefsFunc]);
33649
+ return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Delete ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement("p", null, `Are you sure you want to delete ${filename}?${hasRefs ? " References to this document will also be deleted." : ""}`)), /* @__PURE__ */ React.createElement(ModalActions, null, /* @__PURE__ */ React.createElement(Button$1, { style: { flexGrow: 2 }, onClick: close2 }, "Cancel"), /* @__PURE__ */ React.createElement(
32432
33650
  Button$1,
32433
33651
  {
32434
33652
  style: { flexGrow: 3 },
@@ -32474,7 +33692,7 @@ This will work when developing locally but NOT when deployed to production.
32474
33692
  newRelativePath,
32475
33693
  setNewRelativePath
32476
33694
  }) => {
32477
- return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Rename ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", { className: "mb-4" }, "Are you sure you want to rename ", /* @__PURE__ */ React.createElement("strong", null, filename), "? TinaCMS uses the filename as the ID; renaming this file could result in unresolved references."), /* @__PURE__ */ React.createElement(
33695
+ return /* @__PURE__ */ React.createElement(Modal, null, /* @__PURE__ */ React.createElement(PopupModal, null, /* @__PURE__ */ React.createElement(ModalHeader, { close: close2 }, "Rename ", filename), /* @__PURE__ */ React.createElement(ModalBody, { padded: true }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", { className: "mb-4" }, "Are you sure you want to rename ", /* @__PURE__ */ React.createElement("strong", null, filename), "?"), /* @__PURE__ */ React.createElement(
32478
33696
  BaseTextField,
32479
33697
  {
32480
33698
  placeholder: "Enter a new name for the document's file",
@@ -32489,7 +33707,8 @@ This will work when developing locally but NOT when deployed to production.
32489
33707
  onClick: async () => {
32490
33708
  await renameFunc();
32491
33709
  close2();
32492
- }
33710
+ },
33711
+ disabled: !newRelativePath || newRelativePath === filename
32493
33712
  },
32494
33713
  "Rename"
32495
33714
  ))));
@@ -32816,7 +34035,10 @@ This will work when developing locally but NOT when deployed to production.
32816
34035
  const fetchDocument = async () => {
32817
34036
  if (api.isAuthenticated()) {
32818
34037
  try {
32819
- const response = await api.fetchDocument(collectionName, relativePath2);
34038
+ const response = await api.fetchDocument(
34039
+ collectionName,
34040
+ relativePath2
34041
+ );
32820
34042
  setDocument(response.document);
32821
34043
  } catch (error2) {
32822
34044
  cms.alerts.error(
@@ -33160,15 +34382,24 @@ This will work when developing locally but NOT when deployed to production.
33160
34382
  }
33161
34383
  }
33162
34384
  if (state === "creatingPR") {
33163
- const foo = await tinaApi.createPullRequest({
33164
- baseBranch,
33165
- branch,
33166
- title: `${branch.replace("tina/", "").replace("-", " ")} (PR from TinaCMS)`
33167
- });
33168
- console.log("PR created", foo);
33169
- cms.alerts.success("Pull request created.");
33170
- localStorage.setItem("tina.createBranchState", "done");
33171
- setState("done");
34385
+ try {
34386
+ const foo = await tinaApi.createPullRequest({
34387
+ baseBranch,
34388
+ branch,
34389
+ title: `${branch.replace("tina/", "").replace("-", " ")} (PR from TinaCMS)`
34390
+ });
34391
+ console.log("PR created", foo);
34392
+ cms.alerts.success("Pull request created.");
34393
+ localStorage.setItem("tina.createBranchState", "done");
34394
+ setState("done");
34395
+ } catch (e) {
34396
+ console.error(e);
34397
+ cms.alerts.error("Failed to create PR");
34398
+ setErrorMessage(
34399
+ "Failed to create PR, please try again. If the problem persists please contact support."
34400
+ );
34401
+ setState("error");
34402
+ }
33172
34403
  }
33173
34404
  if (state === "done") {
33174
34405
  window.location.href = back;
@@ -33795,6 +35026,7 @@ This will work when developing locally but NOT when deployed to production.
33795
35026
  exports2.useScreenPlugin = useScreenPlugin;
33796
35027
  exports2.useTinaAuthRedirect = useTinaAuthRedirect;
33797
35028
  exports2.wrapFieldWithError = wrapFieldWithError;
35029
+ exports2.wrapFieldWithNoHeader = wrapFieldWithNoHeader;
33798
35030
  exports2.wrapFieldsWithMeta = wrapFieldsWithMeta;
33799
35031
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
33800
35032
  });