tinacms 0.0.0-a318f2f-20241010063440 → 0.0.0-a4e58da-20250221000426

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -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);
@@ -5270,17 +5313,17 @@ flowchart TD
5270
5313
  if (loading === true) {
5271
5314
  return /* @__PURE__ */ React__namespace.createElement(LoadingDots, { color: "var(--tina-color-primary)" });
5272
5315
  }
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(
5316
+ return /* @__PURE__ */ React__namespace.createElement(Popover, { open: open2, onOpenChange: setOpen }, /* @__PURE__ */ React__namespace.createElement(PopoverTrigger, { asChild: true }, /* @__PURE__ */ React__namespace.createElement(
5274
5317
  Button,
5275
5318
  {
5276
5319
  variant: "outline",
5277
5320
  role: "combobox",
5278
5321
  "aria-expanded": open2,
5279
- className: "w-52 justify-between"
5322
+ className: "w-full justify-between"
5280
5323
  },
5281
5324
  /* @__PURE__ */ React__namespace.createElement("p", { className: "truncate" }, displayText ?? "Choose an option..."),
5282
5325
  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(
5326
+ )), /* @__PURE__ */ React__namespace.createElement(PopoverContent, { className: "p-0 relative min-w-[var(--radix-popover-trigger-width)]" }, /* @__PURE__ */ React__namespace.createElement(
5284
5327
  Command,
5285
5328
  {
5286
5329
  shouldFilter: !field.experimental___filter,
@@ -5304,32 +5347,25 @@ flowchart TD
5304
5347
  }
5305
5348
  ),
5306
5349
  /* @__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
- }
5350
+ /* @__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 }) => {
5351
+ const { id, _values } = node;
5352
+ return /* @__PURE__ */ React__namespace.createElement(
5353
+ OptionComponent,
5354
+ {
5355
+ id,
5356
+ key: id,
5357
+ value,
5358
+ field,
5359
+ _values,
5360
+ node,
5361
+ onSelect: (currentValue) => {
5362
+ setValue(currentValue);
5363
+ setOpen(false);
5328
5364
  }
5329
- );
5330
- }))
5331
- ))))
5332
- ))));
5365
+ }
5366
+ );
5367
+ }))))))
5368
+ )));
5333
5369
  };
5334
5370
  const useGetNode = (cms, id) => {
5335
5371
  const [document2, setDocument] = React__namespace.useState(
@@ -5402,7 +5438,7 @@ flowchart TD
5402
5438
  };
5403
5439
  const Reference = ({ input, field }) => {
5404
5440
  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 }));
5441
+ 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
5442
  };
5407
5443
  const ButtonToggle = ({
5408
5444
  input,
@@ -5710,10 +5746,11 @@ flowchart TD
5710
5746
  return /* @__PURE__ */ React.createElement(
5711
5747
  "button",
5712
5748
  {
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"}`,
5749
+ type: "button",
5750
+ 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
5751
  onClick
5715
5752
  },
5716
- /* @__PURE__ */ React.createElement(TrashIcon, { className: "fill-current transition-colors ease-out duration-100" })
5753
+ /* @__PURE__ */ React.createElement(TrashIcon, { className: "h-5 w-auto fill-current text-red-500 transition-colors duration-150 ease-out" })
5717
5754
  );
5718
5755
  };
5719
5756
  const DragHandle = ({ isDragging }) => {
@@ -5791,27 +5828,35 @@ flowchart TD
5791
5828
  ))))
5792
5829
  ))));
5793
5830
  };
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;
5831
+ const Group = wrapFieldWithNoHeader(
5832
+ ({ tinaForm, field }) => {
5833
+ const cms = useCMS$1();
5834
+ return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, /* @__PURE__ */ React__namespace.createElement(
5835
+ Header,
5836
+ {
5837
+ onClick: () => {
5838
+ const state = tinaForm.finalForm.getState();
5839
+ if (state.invalid === true) {
5840
+ cms.alerts.error("Cannot navigate away from an invalid form.");
5841
+ return;
5842
+ }
5843
+ cms.dispatch({
5844
+ type: "forms:set-active-field-name",
5845
+ value: { formId: tinaForm.id, fieldName: field.name }
5846
+ });
5805
5847
  }
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
- });
5848
+ },
5849
+ field.label || field.name,
5850
+ field.description && /* @__PURE__ */ React__namespace.createElement(
5851
+ "span",
5852
+ {
5853
+ className: `block font-sans text-xs italic font-light text-gray-400 pt-0.5 whitespace-normal m-0`,
5854
+ dangerouslySetInnerHTML: { __html: field.description }
5855
+ }
5856
+ )
5857
+ ));
5858
+ }
5859
+ );
5815
5860
  const Header = ({ onClick, children }) => {
5816
5861
  return /* @__PURE__ */ React__namespace.createElement("div", { className: "pt-1 mb-5" }, /* @__PURE__ */ React__namespace.createElement(
5817
5862
  "button",
@@ -7153,244 +7198,65 @@ flowchart TD
7153
7198
  str = "0" + str;
7154
7199
  return str;
7155
7200
  }
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);
7201
+ var useClickAway$1 = {};
7202
+ var util = {};
7203
+ Object.defineProperty(util, "__esModule", { value: true });
7204
+ util.isNavigator = util.isBrowser = util.off = util.on = util.noop = void 0;
7205
+ var noop = function() {
7206
+ };
7207
+ util.noop = noop;
7208
+ function on(obj) {
7209
+ var args = [];
7210
+ for (var _i = 1; _i < arguments.length; _i++) {
7211
+ args[_i - 1] = arguments[_i];
7194
7212
  }
7195
- return current.classList.contains(ignoreClass);
7196
- }
7197
- function findHighest(current, componentNode, ignoreClass) {
7198
- if (current === componentNode) {
7199
- return true;
7213
+ if (obj && obj.addEventListener) {
7214
+ obj.addEventListener.apply(obj, args);
7200
7215
  }
7201
- while (current.parentNode || current.host) {
7202
- if (current.parentNode && isNodeFound(current, componentNode, ignoreClass)) {
7203
- return true;
7204
- }
7205
- current = current.parentNode || current.host;
7206
- }
7207
- return current;
7208
- }
7209
- function clickedScrollbar(evt) {
7210
- return document.documentElement.clientWidth <= evt.clientX || document.documentElement.clientHeight <= evt.clientY;
7211
7216
  }
7212
- var testPassiveEventSupport = function testPassiveEventSupport2() {
7213
- if (typeof window === "undefined" || typeof window.addEventListener !== "function") {
7214
- return;
7217
+ util.on = on;
7218
+ function off(obj) {
7219
+ var args = [];
7220
+ for (var _i = 1; _i < arguments.length; _i++) {
7221
+ args[_i - 1] = arguments[_i];
7215
7222
  }
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;
7223
+ if (obj && obj.removeEventListener) {
7224
+ obj.removeEventListener.apply(obj, args);
7231
7225
  }
7232
- return function() {
7233
- return ++seed;
7234
- };
7235
7226
  }
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
- }
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();
7227
+ util.off = off;
7228
+ util.isBrowser = typeof window !== "undefined";
7229
+ util.isNavigator = typeof navigator !== "undefined";
7230
+ Object.defineProperty(useClickAway$1, "__esModule", { value: true });
7231
+ var react_1 = React;
7232
+ var util_1 = util;
7233
+ var defaultEvents = ["mousedown", "touchstart"];
7234
+ var useClickAway = function(ref, onClickAway, events) {
7235
+ if (events === void 0) {
7236
+ events = defaultEvents;
7237
+ }
7238
+ var savedCallback = react_1.useRef(onClickAway);
7239
+ react_1.useEffect(function() {
7240
+ savedCallback.current = onClickAway;
7241
+ }, [onClickAway]);
7242
+ react_1.useEffect(function() {
7243
+ var handler = function(event) {
7244
+ var el = ref.current;
7245
+ el && !el.contains(event.target) && savedCallback.current(event);
7363
7246
  };
7364
- _proto.componentDidUpdate = function componentDidUpdate() {
7365
- this.componentNode = this.__getComponentNode();
7366
- };
7367
- _proto.componentWillUnmount = function componentWillUnmount() {
7368
- this.disableOnClickOutside();
7369
- };
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;
7247
+ for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
7248
+ var eventName = events_1[_i];
7249
+ util_1.on(document, eventName, handler);
7250
+ }
7251
+ return function() {
7252
+ for (var _i2 = 0, events_2 = events; _i2 < events_2.length; _i2++) {
7253
+ var eventName2 = events_2[_i2];
7254
+ util_1.off(document, eventName2, handler);
7378
7255
  }
7379
- props.disableOnClickOutside = this.disableOnClickOutside;
7380
- props.enableOnClickOutside = this.enableOnClickOutside;
7381
- return React.createElement(WrappedComponent, props);
7382
7256
  };
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
- }
7257
+ }, [events, ref]);
7258
+ };
7259
+ var _default = useClickAway$1.default = useClickAway;
7394
7260
  const viewModes = {
7395
7261
  YEARS: "years",
7396
7262
  MONTHS: "months",
@@ -7919,22 +7785,13 @@ flowchart TD
7919
7785
  }
7920
7786
  con[method]("***react-datetime:" + message);
7921
7787
  }
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
- }
7788
+ function ClickableWrapper({ className, onClickOut, children }) {
7789
+ const containerRef = React.useRef(null);
7790
+ _default(containerRef, (event) => {
7791
+ onClickOut(event);
7792
+ });
7793
+ return /* @__PURE__ */ React.createElement("div", { className, ref: containerRef }, children);
7936
7794
  }
7937
- const ClickableWrapper = onClickOutsideHOC(ClickOutBase);
7938
7795
  const DEFAULT_DATE_DISPLAY_FORMAT = "MMM DD, YYYY";
7939
7796
  const DEFAULT_TIME_DISPLAY_FORMAT = "h:mm A";
7940
7797
  const format$1 = (val, _name, field) => {
@@ -7977,7 +7834,10 @@ flowchart TD
7977
7834
  ReactDateTimeWithStyles,
7978
7835
  {
7979
7836
  value: input.value,
7980
- onChange: input.onChange,
7837
+ onChange: (value) => {
7838
+ const newValue = value === "" ? void 0 : value;
7839
+ input.onChange(newValue);
7840
+ },
7981
7841
  dateFormat: dateFormat || DEFAULT_DATE_DISPLAY_FORMAT,
7982
7842
  timeFormat: timeFormat || false,
7983
7843
  inputProps: { className: textFieldClasses },
@@ -9429,6 +9289,19 @@ flowchart TD
9429
9289
  }
9430
9290
  }
9431
9291
  }
9292
+ const encodeUrlIfNeeded = (url) => {
9293
+ if (url) {
9294
+ try {
9295
+ const parsed = new URL(url);
9296
+ parsed.pathname = parsed.pathname.split("/").filter((part) => part !== "").map(encodeURIComponent).join("/");
9297
+ return parsed.toString();
9298
+ } catch (e) {
9299
+ return url;
9300
+ }
9301
+ } else {
9302
+ return url;
9303
+ }
9304
+ };
9432
9305
  let MediaManager$1 = class MediaManager {
9433
9306
  constructor(store, events) {
9434
9307
  this.store = store;
@@ -9501,6 +9374,20 @@ flowchart TD
9501
9374
  try {
9502
9375
  this.events.dispatch({ type: "media:list:start", ...options });
9503
9376
  const media = await this.store.list(options);
9377
+ media.items = media.items.map((item) => {
9378
+ if (item.type === "dir") {
9379
+ return item;
9380
+ }
9381
+ if (item.thumbnails) {
9382
+ for (const [size, src] of Object.entries(item.thumbnails)) {
9383
+ item.thumbnails[size] = encodeUrlIfNeeded(src);
9384
+ }
9385
+ }
9386
+ return {
9387
+ ...item,
9388
+ src: encodeUrlIfNeeded(item.src)
9389
+ };
9390
+ });
9504
9391
  this.events.dispatch({ type: "media:list:success", ...options, media });
9505
9392
  return media;
9506
9393
  } catch (error) {
@@ -10308,7 +10195,7 @@ flowchart TD
10308
10195
  "Event Log"
10309
10196
  ));
10310
10197
  };
10311
- const version = "2.2.9";
10198
+ const version = "2.7.0";
10312
10199
  const Nav = ({
10313
10200
  isLocalMode,
10314
10201
  className = "",
@@ -12839,15 +12726,14 @@ flowchart TD
12839
12726
  fields: fieldGroup.fields
12840
12727
  }
12841
12728
  ) : /* @__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(
12729
+ )), !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
12730
  ResetForm,
12844
12731
  {
12845
12732
  pristine,
12846
12733
  reset: async () => {
12847
12734
  finalForm2.reset();
12848
12735
  await tinaForm.reset();
12849
- },
12850
- style: { flexGrow: 1 }
12736
+ }
12851
12737
  },
12852
12738
  tinaForm.buttons.reset
12853
12739
  ), /* @__PURE__ */ React__namespace.createElement(
@@ -12856,8 +12742,7 @@ flowchart TD
12856
12742
  onClick: safeHandleSubmit,
12857
12743
  disabled: !canSubmit,
12858
12744
  busy: submitting,
12859
- variant: "primary",
12860
- style: { flexGrow: 3 }
12745
+ variant: "primary"
12861
12746
  },
12862
12747
  submitting && /* @__PURE__ */ React__namespace.createElement(LoadingDots, null),
12863
12748
  !submitting && tinaForm.buttons.save
@@ -13663,6 +13548,11 @@ flowchart TD
13663
13548
  mode: "mark",
13664
13549
  type: plate.MARK_CODE,
13665
13550
  match: "`"
13551
+ },
13552
+ {
13553
+ mode: "mark",
13554
+ type: plate.MARK_STRIKETHROUGH,
13555
+ match: ["~~", "~"]
13666
13556
  }
13667
13557
  ];
13668
13558
  const autoformatRules = [
@@ -13804,16 +13694,14 @@ flowchart TD
13804
13694
  })
13805
13695
  ];
13806
13696
  const plugins = [
13697
+ plate.createBasicMarksPlugin(),
13807
13698
  plate.createHeadingPlugin(),
13808
13699
  plate.createParagraphPlugin(),
13809
13700
  createCodeBlockPlugin(),
13810
13701
  createHTMLBlockPlugin(),
13811
13702
  createHTMLInlinePlugin(),
13812
13703
  plate.createBlockquotePlugin(),
13813
- plate.createBoldPlugin(),
13814
- plate.createItalicPlugin(),
13815
13704
  plate.createUnderlinePlugin(),
13816
- plate.createCodePlugin(),
13817
13705
  plate.createListPlugin(),
13818
13706
  plate.createIndentListPlugin(),
13819
13707
  plate.createHorizontalRulePlugin(),
@@ -13827,6 +13715,7 @@ flowchart TD
13827
13715
  "Unordered List",
13828
13716
  "Ordered List",
13829
13717
  "Quote",
13718
+ "Mermaid",
13830
13719
  "Heading 1",
13831
13720
  "Heading 2",
13832
13721
  "Heading 3",
@@ -14426,6 +14315,7 @@ flowchart TD
14426
14315
  ToolbarButton,
14427
14316
  {
14428
14317
  showArrow: false,
14318
+ "data-testid": "rich-text-editor-overflow-menu-button",
14429
14319
  className: "lg:min-w-[130px]",
14430
14320
  isDropdown: true,
14431
14321
  pressed: openState.open,
@@ -14479,7 +14369,17 @@ flowchart TD
14479
14369
  };
14480
14370
  const RawMarkdownToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
14481
14371
  const { props } = useRawMarkdownToolbarButton();
14482
- return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.raw, null));
14372
+ return /* @__PURE__ */ React.createElement(
14373
+ ToolbarButton,
14374
+ {
14375
+ ref,
14376
+ tooltip: "Link",
14377
+ ...rest,
14378
+ ...props,
14379
+ "data-testid": "markdown-button"
14380
+ },
14381
+ /* @__PURE__ */ React.createElement(Icons.raw, null)
14382
+ );
14483
14383
  });
14484
14384
  function TableDropdownMenu(props) {
14485
14385
  const tableSelected = plateCommon.useEditorSelector(
@@ -14618,7 +14518,7 @@ flowchart TD
14618
14518
  key: template.name,
14619
14519
  onMouseDown: (e) => {
14620
14520
  e.preventDefault();
14621
- close();
14521
+ setOpen(false);
14622
14522
  insertMDX(editor, template);
14623
14523
  },
14624
14524
  className: ""
@@ -14663,6 +14563,11 @@ flowchart TD
14663
14563
  width: () => STANDARD_ICON_WIDTH,
14664
14564
  Component: /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Bold (⌘+B)", nodeType: plate.MARK_BOLD }, /* @__PURE__ */ React.createElement(Icons.bold, null))
14665
14565
  },
14566
+ strikethrough: {
14567
+ label: "Strikethrough",
14568
+ width: () => STANDARD_ICON_WIDTH,
14569
+ Component: /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Strikethrough ", nodeType: plate.MARK_STRIKETHROUGH }, /* @__PURE__ */ React.createElement(Icons.strikethrough, null))
14570
+ },
14666
14571
  italic: {
14667
14572
  label: "Italic",
14668
14573
  width: () => STANDARD_ICON_WIDTH,
@@ -14704,7 +14609,12 @@ flowchart TD
14704
14609
  const [itemsShown, setItemsShown] = React.useState(11);
14705
14610
  const { overrides, templates } = useToolbarContext();
14706
14611
  const showEmbedButton = templates.length > 0;
14707
- let items2 = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14612
+ let items2 = [];
14613
+ if (Array.isArray(overrides)) {
14614
+ items2 = overrides === void 0 ? Object.values(toolbarItems) : overrides.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14615
+ } else {
14616
+ items2 = (overrides == null ? void 0 : overrides.toolbar) === void 0 ? Object.values(toolbarItems) : overrides.toolbar.map((item) => toolbarItems[item]).filter((item) => item !== void 0);
14617
+ }
14708
14618
  if (!showEmbedButton) {
14709
14619
  items2 = items2.filter((item) => item.label !== toolbarItems.embed.label);
14710
14620
  }
@@ -15032,6 +14942,9 @@ flowchart TD
15032
14942
  if (typeof string !== "string") {
15033
14943
  return false;
15034
14944
  }
14945
+ if (string.startsWith("#")) {
14946
+ return true;
14947
+ }
15035
14948
  const generalMatch = string.match(protocolAndDomainRE);
15036
14949
  const emailLinkMatch = string.match(emailLintRE);
15037
14950
  const localUrlMatch = string.match(localUrlRE);
@@ -15053,12 +14966,12 @@ flowchart TD
15053
14966
  }
15054
14967
  return localhostDomainRE.test(everythingAfterProtocol) || nonLocalhostDomainRE.test(everythingAfterProtocol);
15055
14968
  };
15056
- const RichEditor = (props) => {
14969
+ const RichEditor = ({ input, tinaForm, field }) => {
15057
14970
  var _a;
15058
14971
  const initialValue = React.useMemo(
15059
14972
  () => {
15060
14973
  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: "" }] }];
14974
+ 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
14975
  },
15063
14976
  []
15064
14977
  );
@@ -15086,7 +14999,7 @@ flowchart TD
15086
14999
  ),
15087
15000
  []
15088
15001
  );
15089
- const tempId = [props.tinaForm.id, props.input.name].join(".");
15002
+ const tempId = [tinaForm.id, input.name].join(".");
15090
15003
  const id = React.useMemo(() => uuid() + tempId, [tempId]);
15091
15004
  const ref = React.useRef(null);
15092
15005
  React.useEffect(() => {
@@ -15096,13 +15009,13 @@ flowchart TD
15096
15009
  const plateElement = (_a2 = ref.current) == null ? void 0 : _a2.querySelector(
15097
15010
  '[role="textbox"]'
15098
15011
  );
15099
- if (props.field.experimental_focusIntent && plateElement) {
15012
+ if (field.experimental_focusIntent && plateElement) {
15100
15013
  if (plateElement)
15101
15014
  plateElement.focus();
15102
15015
  }
15103
15016
  }, 100);
15104
15017
  }
15105
- }, [props.field.experimental_focusIntent, ref]);
15018
+ }, [field.experimental_focusIntent, ref]);
15106
15019
  return /* @__PURE__ */ React.createElement("div", { ref }, /* @__PURE__ */ React.createElement(
15107
15020
  plateCommon.Plate,
15108
15021
  {
@@ -15110,7 +15023,7 @@ flowchart TD
15110
15023
  initialValue,
15111
15024
  plugins: plugins$2,
15112
15025
  onChange: (value) => {
15113
- props.input.onChange({
15026
+ input.onChange({
15114
15027
  type: "root",
15115
15028
  children: value
15116
15029
  });
@@ -15119,12 +15032,12 @@ flowchart TD
15119
15032
  /* @__PURE__ */ React.createElement(TooltipProvider, null, /* @__PURE__ */ React.createElement(
15120
15033
  ToolbarProvider,
15121
15034
  {
15122
- tinaForm: props.tinaForm,
15123
- templates: props.field.templates,
15124
- overrides: (_a = props.field) == null ? void 0 : _a.toolbarOverride
15035
+ tinaForm,
15036
+ templates: field.templates,
15037
+ overrides: (field == null ? void 0 : field.toolbarOverride) ? field.toolbarOverride : field.overrides
15125
15038
  },
15126
15039
  /* @__PURE__ */ React.createElement(FixedToolbar, null, /* @__PURE__ */ React.createElement(FixedToolbarButtons, null)),
15127
- /* @__PURE__ */ React.createElement(FloatingToolbar, null, /* @__PURE__ */ React.createElement(FloatingToolbarButtons, null))
15040
+ ((_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
15041
  ), /* @__PURE__ */ React.createElement(Editor, null))
15129
15042
  ));
15130
15043
  };
@@ -16312,132 +16225,1209 @@ flowchart TD
16312
16225
  "হয়"
16313
16226
  ];
16314
16227
  const bre = [
16228
+ "'blam",
16229
+ "'d",
16230
+ "'m",
16231
+ "'r",
16232
+ "'ta",
16233
+ "'vat",
16234
+ "'z",
16235
+ "'zo",
16315
16236
  "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",
16237
+ "a:",
16238
+ "aba",
16239
+ "abalamour",
16240
+ "abaoe",
16241
+ "ac'hane",
16242
+ "ac'hanoc'h",
16243
+ "ac'hanomp",
16244
+ "ac'hanon",
16245
+ "ac'hanout",
16246
+ "adal",
16247
+ "adalek",
16248
+ "adarre",
16249
+ "ae",
16250
+ "aec'h",
16251
+ "aed",
16252
+ "aemp",
16253
+ "aen",
16254
+ "aent",
16255
+ "aes",
16256
+ "afe",
16257
+ "afec'h",
16258
+ "afed",
16259
+ "afemp",
16260
+ "afen",
16261
+ "afent",
16262
+ "afes",
16263
+ "ag",
16264
+ "ah",
16265
+ "aimp",
16266
+ "aint",
16267
+ "aio",
16268
+ "aiou",
16269
+ "aje",
16270
+ "ajec'h",
16271
+ "ajed",
16272
+ "ajemp",
16273
+ "ajen",
16274
+ "ajent",
16275
+ "ajes",
16276
+ "al",
16277
+ "alato",
16278
+ "alies",
16279
+ "aliesañ",
16280
+ "alkent",
16281
+ "all",
16282
+ "allas",
16283
+ "allo",
16284
+ "allô",
16285
+ "am",
16286
+ "amañ",
16287
+ "amzer",
16288
+ "an",
16289
+ "anezhañ",
16290
+ "anezhe",
16291
+ "anezhi",
16292
+ "anezho",
16293
+ "anvet",
16294
+ "aon",
16295
+ "aotren",
16296
+ "ar",
16297
+ "arall",
16298
+ "araok",
16299
+ "araoki",
16300
+ "araozañ",
16301
+ "araozo",
16302
+ "araozoc'h",
16303
+ "araozomp",
16304
+ "araozon",
16305
+ "araozor",
16306
+ "araozout",
16307
+ "arbenn",
16308
+ "arre",
16309
+ "atalek",
16310
+ "atav",
16311
+ "az",
16312
+ "azalek",
16313
+ "azirazañ",
16314
+ "azirazi",
16315
+ "azirazo",
16316
+ "azirazoc'h",
16317
+ "azirazomp",
16318
+ "azirazon",
16319
+ "azirazor",
16320
+ "azirazout",
16321
+ "b:",
16322
+ "ba",
16323
+ "ba'l",
16324
+ "ba'n",
16325
+ "ba'r",
16326
+ "bad",
16327
+ "bah",
16328
+ "bal",
16329
+ "ban",
16330
+ "bar",
16331
+ "bastañ",
16332
+ "befe",
16333
+ "bell",
16334
+ "benaos",
16335
+ "benn",
16336
+ "bennag",
16337
+ "bennak",
16338
+ "bennozh",
16339
+ "bep",
16340
+ "bepred",
16341
+ "berr",
16342
+ "berzh",
16343
+ "bet",
16344
+ "betek",
16345
+ "betra",
16346
+ "bev",
16347
+ "bevet",
16348
+ "bez",
16349
+ "bezañ",
16350
+ "beze",
16351
+ "bezent",
16352
+ "bezet",
16353
+ "bezh",
16354
+ "bezit",
16355
+ "bezomp",
16356
+ "bihan",
16357
+ "bije",
16358
+ "biou",
16359
+ "biskoazh",
16360
+ "blam",
16361
+ "bo",
16362
+ "boa",
16363
+ "bominapl",
16364
+ "boudoudom",
16365
+ "bouez",
16366
+ "boull",
16367
+ "boum",
16368
+ "bout",
16369
+ "bras",
16370
+ "brasañ",
16371
+ "brav",
16372
+ "bravo",
16373
+ "bremañ",
16374
+ "bres",
16375
+ "brokenn",
16376
+ "bronn",
16377
+ "brrr",
16378
+ "brutal",
16379
+ "buhezek",
16380
+ "c'h:",
16381
+ "c'haout",
16382
+ "c'he",
16383
+ "c'hem",
16384
+ "c'herz",
16385
+ "c'heñver",
16386
+ "c'hichen",
16387
+ "c'hiz",
16388
+ "c'hoazh",
16389
+ "c'horre",
16390
+ "c'houde",
16391
+ "c'houst",
16392
+ "c'hreiz",
16393
+ "c'hwec'h",
16394
+ "c'hwec'hvet",
16395
+ "c'hwezek",
16396
+ "c'hwi",
16397
+ "ch:",
16398
+ "chaous",
16399
+ "chik",
16400
+ "chit",
16401
+ "chom",
16402
+ "chut",
16403
+ "d'",
16404
+ "d'al",
16405
+ "d'an",
16406
+ "d'ar",
16407
+ "d'az",
16408
+ "d'e",
16409
+ "d'he",
16410
+ "d'ho",
16411
+ "d'hol",
16412
+ "d'hon",
16413
+ "d'hor",
16414
+ "d'o",
16415
+ "d'ober",
16416
+ "d'ul",
16417
+ "d'un",
16418
+ "d'ur",
16419
+ "d:",
16337
16420
  "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",
16421
+ "dak",
16422
+ "daka",
16423
+ "dal",
16424
+ "dalbezh",
16425
+ "dalc'hmat",
16426
+ "dalit",
16427
+ "damdost",
16428
+ "damheñvel",
16429
+ "damm",
16430
+ "dan",
16431
+ "danvez",
16432
+ "dao",
16433
+ "daol",
16434
+ "daonet",
16435
+ "daou",
16436
+ "daoust",
16437
+ "daouzek",
16438
+ "daouzekvet",
16439
+ "darn",
16440
+ "dastrewiñ",
16441
+ "dav",
16442
+ "davedoc'h",
16443
+ "davedomp",
16444
+ "davedon",
16445
+ "davedor",
16446
+ "davedout",
16447
+ "davet",
16448
+ "davetañ",
16449
+ "davete",
16450
+ "daveti",
16451
+ "daveto",
16452
+ "defe",
16453
+ "dehou",
16454
+ "dek",
16455
+ "dekvet",
16456
+ "den",
16457
+ "deoc'h",
16458
+ "deomp",
16459
+ "deor",
16460
+ "derc'hel",
16461
+ "deus",
16462
+ "dez",
16463
+ "deze",
16464
+ "dezhañ",
16465
+ "dezhe",
16466
+ "dezhi",
16467
+ "dezho",
16468
+ "di",
16469
+ "diabarzh",
16470
+ "diagent",
16471
+ "diar",
16472
+ "diaraok",
16473
+ "diavaez",
16474
+ "dibaoe",
16475
+ "dibaot",
16476
+ "dibar",
16477
+ "dic'halañ",
16478
+ "didiac'h",
16479
+ "dienn",
16480
+ "difer",
16481
+ "diganeoc'h",
16482
+ "diganeomp",
16483
+ "diganeor",
16484
+ "diganimp",
16485
+ "diganin",
16486
+ "diganit",
16487
+ "digant",
16488
+ "digantañ",
16489
+ "digante",
16490
+ "diganti",
16491
+ "diganto",
16492
+ "digemmesk",
16493
+ "diget",
16494
+ "digor",
16495
+ "digoret",
16496
+ "dija",
16497
+ "dije",
16498
+ "dimp",
16499
+ "din",
16500
+ "dinaou",
16501
+ "dindan",
16502
+ "dindanañ",
16503
+ "dindani",
16504
+ "dindano",
16505
+ "dindanoc'h",
16506
+ "dindanomp",
16507
+ "dindanon",
16508
+ "dindanor",
16509
+ "dindanout",
16510
+ "dioutañ",
16511
+ "dioute",
16512
+ "diouti",
16513
+ "diouto",
16514
+ "diouzh",
16515
+ "diouzhin",
16516
+ "diouzhit",
16517
+ "diouzhoc'h",
16518
+ "diouzhomp",
16519
+ "diouzhor",
16520
+ "dirak",
16521
+ "dirazañ",
16522
+ "dirazi",
16523
+ "dirazo",
16524
+ "dirazoc'h",
16525
+ "dirazomp",
16526
+ "dirazon",
16527
+ "dirazor",
16528
+ "dirazout",
16529
+ "disheñvel",
16530
+ "dispar",
16531
+ "distank",
16532
+ "dister",
16533
+ "disterañ",
16534
+ "disterig",
16535
+ "distro",
16536
+ "dit",
16537
+ "divaez",
16538
+ "diwar",
16539
+ "diwezhat",
16540
+ "diwezhañ",
16353
16541
  "do",
16354
- "dos",
16355
- "durante",
16542
+ "doa",
16543
+ "doare",
16544
+ "dont",
16545
+ "dost",
16546
+ "doue",
16547
+ "douetus",
16548
+ "douez",
16549
+ "doug",
16550
+ "draou",
16551
+ "draoñ",
16552
+ "dre",
16553
+ "drede",
16554
+ "dreist",
16555
+ "dreistañ",
16556
+ "dreisti",
16557
+ "dreisto",
16558
+ "dreistoc'h",
16559
+ "dreistomp",
16560
+ "dreiston",
16561
+ "dreistor",
16562
+ "dreistout",
16563
+ "drek",
16564
+ "dreñv",
16565
+ "dring",
16566
+ "dro",
16567
+ "du",
16356
16568
  "e",
16357
- "ela",
16358
- "elas",
16359
- "ele",
16360
- "eles",
16569
+ "e:",
16570
+ "eas",
16571
+ "ebet",
16572
+ "ec'h",
16573
+ "edo",
16574
+ "edoc'h",
16575
+ "edod",
16576
+ "edomp",
16577
+ "edon",
16578
+ "edont",
16579
+ "edos",
16580
+ "eer",
16581
+ "eeun",
16582
+ "efed",
16583
+ "egedoc'h",
16584
+ "egedomp",
16585
+ "egedon",
16586
+ "egedor",
16587
+ "egedout",
16588
+ "eget",
16589
+ "egetañ",
16590
+ "egete",
16591
+ "egeti",
16592
+ "egeto",
16593
+ "eh",
16594
+ "eil",
16595
+ "eilvet",
16596
+ "eizh",
16597
+ "eizhvet",
16598
+ "ejoc'h",
16599
+ "ejod",
16600
+ "ejomp",
16601
+ "ejont",
16602
+ "ejout",
16603
+ "el",
16361
16604
  "em",
16362
- "entao",
16363
- "entre",
16364
- "essa",
16365
- "essas",
16366
- "esse",
16367
- "esses",
16368
- "esta",
16369
- "estas",
16370
- "este",
16371
- "estes",
16605
+ "emaint",
16606
+ "emaoc'h",
16607
+ "emaomp",
16608
+ "emaon",
16609
+ "emaout",
16610
+ "emañ",
16611
+ "eme",
16612
+ "emeur",
16613
+ "emezañ",
16614
+ "emezi",
16615
+ "emezo",
16616
+ "emezoc'h",
16617
+ "emezomp",
16618
+ "emezon",
16619
+ "emezout",
16620
+ "emporzhiañ",
16621
+ "en",
16622
+ "end",
16623
+ "endan",
16624
+ "endra",
16625
+ "enep",
16626
+ "ennañ",
16627
+ "enni",
16628
+ "enno",
16629
+ "ennoc'h",
16630
+ "ennomp",
16631
+ "ennon",
16632
+ "ennor",
16633
+ "ennout",
16634
+ "enta",
16635
+ "eo",
16636
+ "eomp",
16637
+ "eont",
16638
+ "eor",
16639
+ "eot",
16640
+ "er",
16641
+ "erbet",
16642
+ "erfin",
16643
+ "esa",
16644
+ "esae",
16645
+ "espar",
16646
+ "estlamm",
16647
+ "estrañj",
16648
+ "eta",
16649
+ "etre",
16650
+ "etreoc'h",
16651
+ "etrezo",
16652
+ "etrezoc'h",
16653
+ "etrezomp",
16654
+ "etrezor",
16655
+ "euh",
16656
+ "eur",
16657
+ "eus",
16658
+ "evel",
16659
+ "evelato",
16660
+ "eveldoc'h",
16661
+ "eveldomp",
16662
+ "eveldon",
16663
+ "eveldor",
16664
+ "eveldout",
16665
+ "evelkent",
16666
+ "eveltañ",
16667
+ "evelte",
16668
+ "evelti",
16669
+ "evelto",
16670
+ "evidoc'h",
16671
+ "evidomp",
16672
+ "evidon",
16673
+ "evidor",
16674
+ "evidout",
16675
+ "evit",
16676
+ "evitañ",
16677
+ "evite",
16678
+ "eviti",
16679
+ "evito",
16680
+ "ez",
16681
+ "eñ",
16682
+ "f:",
16683
+ "fac'h",
16684
+ "fall",
16685
+ "fed",
16686
+ "feiz",
16687
+ "fenn",
16688
+ "fezh",
16689
+ "fin",
16690
+ "finsalvet",
16691
+ "foei",
16692
+ "fouilhezañ",
16693
+ "g:",
16694
+ "gallout",
16695
+ "ganeoc'h",
16696
+ "ganeomp",
16697
+ "ganin",
16698
+ "ganit",
16699
+ "gant",
16700
+ "gantañ",
16701
+ "ganti",
16702
+ "ganto",
16703
+ "gaout",
16704
+ "gast",
16705
+ "gein",
16706
+ "gellout",
16707
+ "genndost",
16708
+ "gentañ",
16709
+ "ger",
16710
+ "gerz",
16711
+ "get",
16712
+ "geñver",
16713
+ "gichen",
16714
+ "gin",
16715
+ "giz",
16716
+ "glan",
16717
+ "gloev",
16718
+ "goll",
16719
+ "gorre",
16720
+ "goude",
16721
+ "gouez",
16722
+ "gouezit",
16723
+ "gouezomp",
16724
+ "goulz",
16725
+ "gounnar",
16726
+ "gour",
16727
+ "goust",
16728
+ "gouze",
16729
+ "gouzout",
16730
+ "gra",
16731
+ "grak",
16732
+ "grec'h",
16733
+ "greiz",
16734
+ "grenn",
16735
+ "greomp",
16736
+ "grit",
16737
+ "groñs",
16738
+ "gutez",
16739
+ "gwall",
16740
+ "gwashoc'h",
16741
+ "gwazh",
16742
+ "gwech",
16743
+ "gwechall",
16744
+ "gwechoù",
16745
+ "gwell",
16746
+ "gwezh",
16747
+ "gwezhall",
16748
+ "gwezharall",
16749
+ "gwezhoù",
16750
+ "gwig",
16751
+ "gwirionez",
16752
+ "gwitibunan",
16753
+ "gêr",
16754
+ "h:",
16372
16755
  "ha",
16373
- "isso",
16374
- "isto",
16375
- "logo",
16376
- "mais",
16377
- "mas",
16378
- "mediante",
16379
- "menos",
16380
- "mesma",
16381
- "mesmas",
16382
- "mesmo",
16383
- "mesmos",
16756
+ "hag",
16757
+ "han",
16758
+ "hanter",
16759
+ "hanterc'hantad",
16760
+ "hanterkantved",
16761
+ "harz",
16762
+ "hañ",
16763
+ "hañval",
16764
+ "he",
16765
+ "hebioù",
16766
+ "hec'h",
16767
+ "hei",
16768
+ "hein",
16769
+ "hem",
16770
+ "hemañ",
16771
+ "hen",
16772
+ "hend",
16773
+ "henhont",
16774
+ "henn",
16775
+ "hennezh",
16776
+ "hent",
16777
+ "hep",
16778
+ "hervez",
16779
+ "hervezañ",
16780
+ "hervezi",
16781
+ "hervezo",
16782
+ "hervezoc'h",
16783
+ "hervezomp",
16784
+ "hervezon",
16785
+ "hervezor",
16786
+ "hervezout",
16787
+ "heul",
16788
+ "heuliañ",
16789
+ "hevelep",
16790
+ "heverk",
16791
+ "heñvel",
16792
+ "heñvelat",
16793
+ "heñvelañ",
16794
+ "heñveliñ",
16795
+ "heñveloc'h",
16796
+ "heñvelout",
16797
+ "hi",
16798
+ "hilh",
16799
+ "hini",
16800
+ "hirie",
16801
+ "hirio",
16802
+ "hiziv",
16803
+ "hiziviken",
16804
+ "ho",
16805
+ "hoaliñ",
16806
+ "hoc'h",
16807
+ "hogen",
16808
+ "hogos",
16809
+ "hogozik",
16810
+ "hol",
16811
+ "holl",
16812
+ "holà",
16813
+ "homañ",
16814
+ "hon",
16815
+ "honhont",
16816
+ "honnezh",
16817
+ "hont",
16818
+ "hop",
16819
+ "hopala",
16820
+ "hor",
16821
+ "hou",
16822
+ "houp",
16823
+ "hudu",
16824
+ "hue",
16825
+ "hui",
16826
+ "hum",
16827
+ "hurrah",
16828
+ "i",
16829
+ "i:",
16830
+ "in",
16831
+ "int",
16832
+ "is",
16833
+ "ispisial",
16834
+ "isurzhiet",
16835
+ "it",
16836
+ "ivez",
16837
+ "izelañ",
16838
+ "j:",
16839
+ "just",
16840
+ "k:",
16841
+ "kae",
16842
+ "kaer",
16843
+ "kalon",
16844
+ "kalz",
16845
+ "kant",
16846
+ "kaout",
16847
+ "kar",
16848
+ "kazi",
16849
+ "keid",
16850
+ "kein",
16851
+ "keit",
16852
+ "kel",
16853
+ "kellies",
16854
+ "keloù",
16855
+ "kement",
16856
+ "ken",
16857
+ "kenkent",
16858
+ "kenkoulz",
16859
+ "kenment",
16860
+ "kent",
16861
+ "kentañ",
16862
+ "kentizh",
16863
+ "kentoc'h",
16864
+ "kentre",
16865
+ "ker",
16866
+ "kerkent",
16867
+ "kerz",
16868
+ "kerzh",
16869
+ "ket",
16870
+ "keta",
16871
+ "keñver",
16872
+ "keñverel",
16873
+ "keñverius",
16874
+ "kichen",
16875
+ "kichenik",
16876
+ "kit",
16877
+ "kiz",
16878
+ "klak",
16879
+ "klek",
16880
+ "klik",
16881
+ "komprenet",
16882
+ "komz",
16883
+ "kont",
16884
+ "korf",
16885
+ "korre",
16886
+ "koulskoude",
16887
+ "koulz",
16888
+ "koust",
16889
+ "krak",
16890
+ "krampouezh",
16891
+ "krec'h",
16892
+ "kreiz",
16893
+ "kuit",
16894
+ "kwir",
16895
+ "l:",
16896
+ "la",
16897
+ "laez",
16898
+ "laoskel",
16899
+ "laouen",
16900
+ "lavar",
16901
+ "lavaret",
16902
+ "lavarout",
16903
+ "lec'h",
16904
+ "lein",
16905
+ "leizh",
16906
+ "lerc'h",
16907
+ "leun",
16908
+ "leuskel",
16909
+ "lew",
16910
+ "lies",
16911
+ "liesañ",
16912
+ "lod",
16913
+ "lusk",
16914
+ "lâr",
16915
+ "lârout",
16916
+ "m:",
16917
+ "ma",
16918
+ "ma'z",
16919
+ "mac'h",
16920
+ "mac'hat",
16921
+ "mac'hañ",
16922
+ "mac'hoc'h",
16923
+ "mad",
16924
+ "maez",
16925
+ "maksimal",
16926
+ "mann",
16927
+ "mar",
16928
+ "mard",
16929
+ "marg",
16930
+ "marzh",
16931
+ "mat",
16932
+ "mañ",
16933
+ "me",
16934
+ "memes",
16935
+ "memestra",
16936
+ "merkapl",
16937
+ "mersi",
16938
+ "mes",
16939
+ "mesk",
16940
+ "met",
16941
+ "meur",
16942
+ "mil",
16943
+ "minimal",
16944
+ "moan",
16945
+ "moaniaat",
16946
+ "mod",
16947
+ "mont",
16948
+ "mout",
16949
+ "mui",
16950
+ "muiañ",
16951
+ "muioc'h",
16952
+ "n",
16953
+ "n'",
16954
+ "n:",
16384
16955
  "na",
16385
- "nao",
16386
- "nas",
16387
- "nem",
16388
- "nesse",
16389
- "neste",
16390
- "nos",
16956
+ "nag",
16957
+ "naontek",
16958
+ "naturel",
16959
+ "nav",
16960
+ "navet",
16961
+ "ne",
16962
+ "nebeudig",
16963
+ "nebeut",
16964
+ "nebeutañ",
16965
+ "nebeutoc'h",
16966
+ "neketa",
16967
+ "nemedoc'h",
16968
+ "nemedomp",
16969
+ "nemedon",
16970
+ "nemedor",
16971
+ "nemedout",
16972
+ "nemet",
16973
+ "nemetañ",
16974
+ "nemete",
16975
+ "nemeti",
16976
+ "nemeto",
16977
+ "nemeur",
16978
+ "neoac'h",
16979
+ "nepell",
16980
+ "nerzh",
16981
+ "nes",
16982
+ "neseser",
16983
+ "netra",
16984
+ "neubeudoù",
16985
+ "neuhe",
16986
+ "neuze",
16987
+ "nevez",
16988
+ "newazh",
16989
+ "nez",
16990
+ "ni",
16991
+ "nikun",
16992
+ "niverus",
16993
+ "nul",
16391
16994
  "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",
16995
+ "o:",
16996
+ "oa",
16997
+ "oac'h",
16998
+ "oad",
16999
+ "oamp",
17000
+ "oan",
17001
+ "oant",
17002
+ "oar",
17003
+ "oas",
17004
+ "ober",
17005
+ "oc'h",
17006
+ "oc'ho",
17007
+ "oc'hola",
17008
+ "oc'hpenn",
17009
+ "oh",
17010
+ "ohe",
17011
+ "ollé",
17012
+ "olole",
17013
+ "olé",
17014
+ "omp",
17015
+ "on",
17016
+ "ordin",
17017
+ "ordinal",
17018
+ "ouejoc'h",
17019
+ "ouejod",
17020
+ "ouejomp",
17021
+ "ouejont",
17022
+ "ouejout",
17023
+ "ouek",
17024
+ "ouezas",
17025
+ "ouezi",
17026
+ "ouezimp",
17027
+ "ouezin",
17028
+ "ouezint",
17029
+ "ouezis",
17030
+ "ouezo",
17031
+ "ouezoc'h",
17032
+ "ouezor",
17033
+ "ouf",
17034
+ "oufe",
17035
+ "oufec'h",
17036
+ "oufed",
17037
+ "oufemp",
17038
+ "oufen",
17039
+ "oufent",
17040
+ "oufes",
17041
+ "ouie",
17042
+ "ouiec'h",
17043
+ "ouied",
17044
+ "ouiemp",
17045
+ "ouien",
17046
+ "ouient",
17047
+ "ouies",
17048
+ "ouije",
17049
+ "ouijec'h",
17050
+ "ouijed",
17051
+ "ouijemp",
17052
+ "ouijen",
17053
+ "ouijent",
17054
+ "ouijes",
17055
+ "out",
17056
+ "outañ",
17057
+ "outi",
17058
+ "outo",
17059
+ "ouzer",
17060
+ "ouzh",
17061
+ "ouzhin",
17062
+ "ouzhit",
17063
+ "ouzhoc'h",
17064
+ "ouzhomp",
17065
+ "ouzhor",
17066
+ "ouzhpenn",
17067
+ "ouzhpennik",
17068
+ "ouzoc'h",
17069
+ "ouzomp",
17070
+ "ouzon",
17071
+ "ouzont",
17072
+ "ouzout",
17073
+ "p'",
17074
+ "p:",
17075
+ "pa",
17076
+ "pad",
17077
+ "padal",
17078
+ "paf",
17079
+ "pan",
17080
+ "panevedeoc'h",
17081
+ "panevedo",
17082
+ "panevedomp",
17083
+ "panevedon",
17084
+ "panevedout",
17085
+ "panevet",
17086
+ "panevetañ",
17087
+ "paneveti",
17088
+ "pas",
17089
+ "paseet",
17090
+ "pe",
17091
+ "peadra",
17092
+ "peder",
17093
+ "pedervet",
17094
+ "pedervetvet",
17095
+ "pefe",
17096
+ "pegeit",
17097
+ "pegement",
17098
+ "pegen",
17099
+ "pegiz",
17100
+ "pegoulz",
17101
+ "pehini",
17102
+ "pelec'h",
17103
+ "pell",
17104
+ "pemod",
17105
+ "pemp",
17106
+ "pempved",
17107
+ "pemzek",
17108
+ "penaos",
17109
+ "penn",
17110
+ "peogwir",
17111
+ "peotramant",
17112
+ "pep",
17113
+ "perak",
17114
+ "perc'hennañ",
17115
+ "pergen",
17116
+ "permetiñ",
17117
+ "peseurt",
17118
+ "pet",
17119
+ "petiaoul",
17120
+ "petoare",
17121
+ "petra",
17122
+ "peur",
17123
+ "peurgetket",
17124
+ "peurheñvel",
17125
+ "peurliesañ",
17126
+ "peurvuiañ",
17127
+ "peus",
17128
+ "peustost",
17129
+ "peuz",
17130
+ "pevar",
17131
+ "pevare",
17132
+ "pevarevet",
17133
+ "pevarzek",
17134
+ "pez",
17135
+ "peze",
17136
+ "pezh",
17137
+ "pff",
17138
+ "pfft",
17139
+ "pfut",
17140
+ "picher",
17141
+ "pif",
17142
+ "pife",
17143
+ "pign",
17144
+ "pije",
17145
+ "pikol",
17146
+ "pitiaoul",
17147
+ "piv",
17148
+ "plaouf",
17149
+ "plok",
17150
+ "plouf",
17151
+ "po",
17152
+ "poa",
17153
+ "poelladus",
17154
+ "pof",
17155
+ "pok",
17156
+ "posupl",
17157
+ "pouah",
17158
+ "pourc'henn",
17159
+ "prest",
17160
+ "prestik",
17161
+ "prim",
17162
+ "prin",
17163
+ "provostapl",
17164
+ "pst",
17165
+ "pu",
17166
+ "pur",
17167
+ "r:",
17168
+ "ra",
17169
+ "rae",
17170
+ "raec'h",
17171
+ "raed",
17172
+ "raemp",
17173
+ "raen",
17174
+ "raent",
17175
+ "raes",
17176
+ "rafe",
17177
+ "rafec'h",
17178
+ "rafed",
17179
+ "rafemp",
17180
+ "rafen",
17181
+ "rafent",
17182
+ "rafes",
17183
+ "rag",
17184
+ "raimp",
17185
+ "raint",
17186
+ "raio",
17187
+ "raje",
17188
+ "rajec'h",
17189
+ "rajed",
17190
+ "rajemp",
17191
+ "rajen",
17192
+ "rajent",
17193
+ "rajes",
17194
+ "rak",
17195
+ "ral",
17196
+ "ran",
17197
+ "rankout",
17198
+ "raok",
17199
+ "razh",
17200
+ "re",
17201
+ "reas",
17202
+ "reer",
17203
+ "regennoù",
17204
+ "reiñ",
17205
+ "rejoc'h",
17206
+ "rejod",
17207
+ "rejomp",
17208
+ "rejont",
17209
+ "rejout",
17210
+ "rener",
17211
+ "rentañ",
17212
+ "reoc'h",
17213
+ "reomp",
17214
+ "reont",
17215
+ "reor",
17216
+ "reot",
17217
+ "resis",
17218
+ "ret",
17219
+ "reve",
17220
+ "rez",
17221
+ "ri",
17222
+ "rik",
17223
+ "rin",
17224
+ "ris",
17225
+ "rit",
17226
+ "rouez",
17227
+ "s:",
17228
+ "sac'h",
17229
+ "sant",
17230
+ "sav",
17231
+ "sañset",
16416
17232
  "se",
16417
- "seja",
16418
- "sem",
16419
- "sendo",
16420
- "seu",
16421
- "seus",
16422
- "sob",
16423
- "sobre",
16424
- "sua",
16425
- "suas",
17233
+ "sed",
17234
+ "seitek",
17235
+ "seizh",
17236
+ "seizhvet",
17237
+ "sell",
17238
+ "sellit",
17239
+ "ser",
17240
+ "setu",
17241
+ "seul",
17242
+ "seurt",
17243
+ "siwazh",
17244
+ "skignañ",
17245
+ "skoaz",
17246
+ "skouer",
17247
+ "sort",
17248
+ "souden",
17249
+ "souvitañ",
17250
+ "soñj",
17251
+ "speriañ",
17252
+ "spririñ",
17253
+ "stad",
17254
+ "stlabezañ",
17255
+ "stop",
17256
+ "stranañ",
17257
+ "strewiñ",
17258
+ "strishaat",
17259
+ "stumm",
17260
+ "sujed",
17261
+ "surtoud",
17262
+ "t:",
17263
+ "ta",
17264
+ "taer",
17265
+ "tailh",
17266
+ "tak",
16426
17267
  "tal",
16427
- "tambem",
16428
- "teu",
17268
+ "talvoudegezh",
17269
+ "tamm",
17270
+ "tanav",
17271
+ "taol",
17272
+ "te",
17273
+ "techet",
17274
+ "teir",
17275
+ "teirvet",
17276
+ "telt",
17277
+ "teltenn",
16429
17278
  "teus",
16430
- "toda",
16431
- "todas",
16432
- "todo",
16433
- "todos",
16434
- "tua",
16435
- "tuas",
16436
- "tudo",
16437
- "um",
16438
- "uma",
16439
- "umas",
16440
- "uns"
17279
+ "teut",
17280
+ "teuteu",
17281
+ "ti",
17282
+ "tik",
17283
+ "toa",
17284
+ "tok",
17285
+ "tost",
17286
+ "tostig",
17287
+ "toud",
17288
+ "touesk",
17289
+ "touez",
17290
+ "toull",
17291
+ "tra",
17292
+ "trantenn",
17293
+ "traoñ",
17294
+ "trawalc'h",
17295
+ "tre",
17296
+ "trede",
17297
+ "tregont",
17298
+ "tremenet",
17299
+ "tri",
17300
+ "trivet",
17301
+ "triwec'h",
17302
+ "trizek",
17303
+ "tro",
17304
+ "trugarez",
17305
+ "trumm",
17306
+ "tsoin",
17307
+ "tsouin",
17308
+ "tu",
17309
+ "tud",
17310
+ "u:",
17311
+ "ugent",
17312
+ "uhel",
17313
+ "uhelañ",
17314
+ "ul",
17315
+ "un",
17316
+ "unan",
17317
+ "unanez",
17318
+ "unanig",
17319
+ "unnek",
17320
+ "unnekvet",
17321
+ "ur",
17322
+ "urzh",
17323
+ "us",
17324
+ "v:",
17325
+ "va",
17326
+ "vale",
17327
+ "van",
17328
+ "vare",
17329
+ "vat",
17330
+ "vefe",
17331
+ "vefec'h",
17332
+ "vefed",
17333
+ "vefemp",
17334
+ "vefen",
17335
+ "vefent",
17336
+ "vefes",
17337
+ "vesk",
17338
+ "vete",
17339
+ "vez",
17340
+ "vezan",
17341
+ "vezañ",
17342
+ "veze",
17343
+ "vezec'h",
17344
+ "vezed",
17345
+ "vezemp",
17346
+ "vezen",
17347
+ "vezent",
17348
+ "vezer",
17349
+ "vezes",
17350
+ "vezez",
17351
+ "vezit",
17352
+ "vezomp",
17353
+ "vezont",
17354
+ "vi",
17355
+ "vihan",
17356
+ "vihanañ",
17357
+ "vije",
17358
+ "vijec'h",
17359
+ "vijed",
17360
+ "vijemp",
17361
+ "vijen",
17362
+ "vijent",
17363
+ "vijes",
17364
+ "viken",
17365
+ "vimp",
17366
+ "vin",
17367
+ "vint",
17368
+ "vior",
17369
+ "viot",
17370
+ "virviken",
17371
+ "viskoazh",
17372
+ "vlan",
17373
+ "vlaou",
17374
+ "vo",
17375
+ "vod",
17376
+ "voe",
17377
+ "voec'h",
17378
+ "voed",
17379
+ "voemp",
17380
+ "voen",
17381
+ "voent",
17382
+ "voes",
17383
+ "vont",
17384
+ "vostapl",
17385
+ "vrac'h",
17386
+ "vrasañ",
17387
+ "vremañ",
17388
+ "w:",
17389
+ "walc'h",
17390
+ "war",
17391
+ "warnañ",
17392
+ "warni",
17393
+ "warno",
17394
+ "warnoc'h",
17395
+ "warnomp",
17396
+ "warnon",
17397
+ "warnor",
17398
+ "warnout",
17399
+ "wazh",
17400
+ "wech",
17401
+ "wechoù",
17402
+ "well",
17403
+ "y:",
17404
+ "you",
17405
+ "youadenn",
17406
+ "youc'hadenn",
17407
+ "youc'hou",
17408
+ "z:",
17409
+ "za",
17410
+ "zan",
17411
+ "zaw",
17412
+ "zeu",
17413
+ "zi",
17414
+ "ziar",
17415
+ "zigarez",
17416
+ "ziget",
17417
+ "zindan",
17418
+ "zioc'h",
17419
+ "ziouzh",
17420
+ "zirak",
17421
+ "zivout",
17422
+ "ziwar",
17423
+ "ziwezhañ",
17424
+ "zo",
17425
+ "zoken",
17426
+ "zokenoc'h",
17427
+ "zouesk",
17428
+ "zouez",
17429
+ "zro",
17430
+ "zu"
16441
17431
  ];
16442
17432
  const bul = [
16443
17433
  "а",
@@ -28093,22 +29083,32 @@ flowchart TD
28093
29083
  "şöyle"
28094
29084
  ];
28095
29085
  const ukr = [
29086
+ "а",
29087
+ "або",
28096
29088
  "авжеж",
28097
29089
  "адже",
29090
+ "аж",
28098
29091
  "але",
29092
+ "ані",
28099
29093
  "б",
28100
29094
  "без",
29095
+ "би",
29096
+ "бо",
28101
29097
  "був",
28102
29098
  "була",
28103
29099
  "були",
28104
29100
  "було",
28105
29101
  "бути",
28106
29102
  "більш",
29103
+ "в",
28107
29104
  "вам",
29105
+ "вами",
28108
29106
  "вас",
28109
29107
  "весь",
29108
+ "вже",
28110
29109
  "вздовж",
28111
29110
  "ви",
29111
+ "від",
28112
29112
  "вниз",
28113
29113
  "внизу",
28114
29114
  "вона",
@@ -28117,55 +29117,138 @@ flowchart TD
28117
29117
  "все",
28118
29118
  "всередині",
28119
29119
  "всіх",
29120
+ "вся",
28120
29121
  "від",
28121
29122
  "він",
28122
29123
  "да",
28123
29124
  "давай",
28124
29125
  "давати",
28125
29126
  "де",
29127
+ "десь",
28126
29128
  "дещо",
28127
29129
  "для",
28128
29130
  "до",
29131
+ "є",
29132
+ "ж",
29133
+ "же",
28129
29134
  "з",
29135
+ "за",
28130
29136
  "завжди",
28131
29137
  "замість",
29138
+ "зі",
29139
+ "і",
29140
+ "із",
29141
+ "інших",
29142
+ "її",
29143
+ "їй",
29144
+ "їм",
29145
+ "їх",
28132
29146
  "й",
29147
+ "його",
29148
+ "йому",
28133
29149
  "коли",
28134
29150
  "ледве",
29151
+ "лиш",
28135
29152
  "майже",
29153
+ "мене",
29154
+ "мені",
28136
29155
  "ми",
29156
+ "між",
29157
+ "мій",
29158
+ "мною",
29159
+ "мов",
29160
+ "мого",
29161
+ "моєї",
29162
+ "моє",
29163
+ "може",
29164
+ "мої",
29165
+ "моїх",
29166
+ "моя",
29167
+ "на",
29168
+ "над",
28137
29169
  "навколо",
28138
29170
  "навіть",
28139
29171
  "нам",
29172
+ "нами",
29173
+ "нас",
29174
+ "наче",
29175
+ "наш",
29176
+ "не",
29177
+ "нє",
29178
+ "неї",
29179
+ "нема",
29180
+ "немов",
29181
+ "неначе",
29182
+ "нею",
29183
+ "ним",
29184
+ "ними",
29185
+ "них",
29186
+ "ні",
29187
+ "ніби",
29188
+ "ніщо",
29189
+ "нього",
29190
+ "о",
29191
+ "ось",
28140
29192
  "от",
28141
29193
  "отже",
28142
29194
  "отож",
29195
+ "під",
29196
+ "по",
28143
29197
  "поза",
28144
29198
  "про",
28145
29199
  "під",
29200
+ "сам",
29201
+ "сама",
29202
+ "свій",
29203
+ "свої",
29204
+ "своя",
29205
+ "свою",
29206
+ "себе",
29207
+ "собі",
28146
29208
  "та",
29209
+ "там",
28147
29210
  "так",
29211
+ "така",
28148
29212
  "такий",
28149
29213
  "також",
29214
+ "твій",
29215
+ "твого",
29216
+ "твоєї",
29217
+ "твої",
29218
+ "твоя",
28150
29219
  "те",
29220
+ "тебе",
28151
29221
  "ти",
29222
+ "ті",
29223
+ "тільки",
29224
+ "то",
29225
+ "тобі",
29226
+ "тобою",
28152
29227
  "тобто",
29228
+ "тоді",
28153
29229
  "тож",
29230
+ "той",
28154
29231
  "тощо",
29232
+ "тут",
29233
+ "у",
29234
+ "хіба",
29235
+ "хоч",
28155
29236
  "хоча",
28156
29237
  "це",
28157
29238
  "цей",
29239
+ "ці",
29240
+ "ця",
28158
29241
  "чи",
28159
29242
  "чого",
29243
+ "ще",
28160
29244
  "що",
29245
+ "щоб",
29246
+ "щось",
29247
+ "я",
28161
29248
  "як",
29249
+ "яка",
28162
29250
  "який",
28163
- "якої",
28164
- "є",
28165
- "із",
28166
- "інших",
28167
- "їх",
28168
- "її"
29251
+ "якої"
28169
29252
  ];
28170
29253
  const urd = [
28171
29254
  "آئی",
@@ -30078,6 +31161,7 @@ mutation addPendingDocumentMutation(
30078
31161
  relativePath
30079
31162
  filename
30080
31163
  extension
31164
+ hasReferences
30081
31165
  }
30082
31166
  }
30083
31167
  }
@@ -30169,6 +31253,9 @@ mutation addPendingDocumentMutation(
30169
31253
  document(collection:$collection, relativePath:$relativePath) {
30170
31254
  ... on Document {
30171
31255
  _values
31256
+ _sys {
31257
+ hasReferences
31258
+ }
30172
31259
  }
30173
31260
  }
30174
31261
  }`;
@@ -31792,6 +32879,7 @@ This will work when developing locally but NOT when deployed to production.
31792
32879
  const [vars, setVars] = React.useState({
31793
32880
  collection: collectionName,
31794
32881
  relativePath: "",
32882
+ relativePathWithoutExtension: "",
31795
32883
  newRelativePath: "",
31796
32884
  filterField: "",
31797
32885
  folderName: "",
@@ -31833,6 +32921,7 @@ This will work when developing locally but NOT when deployed to production.
31833
32921
  ...old,
31834
32922
  collection: collectionName,
31835
32923
  relativePath: "",
32924
+ relativePathWithoutExtension: "",
31836
32925
  newRelativePath: "",
31837
32926
  filterField: "",
31838
32927
  startsWith: "",
@@ -31858,6 +32947,7 @@ This will work when developing locally but NOT when deployed to production.
31858
32947
  collectionName === vars.collection ? vars : {
31859
32948
  collection: collectionName,
31860
32949
  relativePath: "",
32950
+ relativePathWithoutExtension: "",
31861
32951
  newRelativePath: "",
31862
32952
  filterField: "",
31863
32953
  startsWith: "",
@@ -31895,6 +32985,23 @@ This will work when developing locally but NOT when deployed to production.
31895
32985
  DeleteModal,
31896
32986
  {
31897
32987
  filename: vars.relativePath,
32988
+ checkRefsFunc: async () => {
32989
+ var _a2, _b2;
32990
+ try {
32991
+ const doc = await admin.fetchDocument(
32992
+ collection.name,
32993
+ vars.relativePath,
32994
+ true
32995
+ );
32996
+ return (_b2 = (_a2 = doc == null ? void 0 : doc.document) == null ? void 0 : _a2._sys) == null ? void 0 : _b2.hasReferences;
32997
+ } catch (error) {
32998
+ cms.alerts.error(
32999
+ "Document was not found, ask a developer for help or check the console for an error message"
33000
+ );
33001
+ console.error(error);
33002
+ throw error;
33003
+ }
33004
+ },
31898
33005
  deleteFunc: async () => {
31899
33006
  try {
31900
33007
  await admin.deleteDocument(vars);
@@ -31903,6 +33010,12 @@ This will work when developing locally but NOT when deployed to production.
31903
33010
  );
31904
33011
  reFetchCollection();
31905
33012
  } catch (error) {
33013
+ if (error.message.indexOf("has references")) {
33014
+ cms.alerts.error(
33015
+ error.message.split("\n ").filter(Boolean)[1]
33016
+ );
33017
+ return;
33018
+ }
31906
33019
  cms.alerts.warn(
31907
33020
  "Document was not deleted, ask a developer for help or check the console for an error message"
31908
33021
  );
@@ -31936,7 +33049,7 @@ This will work when developing locally but NOT when deployed to production.
31936
33049
  ), renameModalOpen && /* @__PURE__ */ React.createElement(
31937
33050
  RenameModal,
31938
33051
  {
31939
- filename: vars.relativePath,
33052
+ filename: vars.relativePathWithoutExtension,
31940
33053
  newRelativePath: vars.newRelativePath,
31941
33054
  setNewRelativePath: (newRelativePath) => {
31942
33055
  setVars((vars2) => {
@@ -31954,6 +33067,12 @@ This will work when developing locally but NOT when deployed to production.
31954
33067
  cms.alerts.info("Document was successfully renamed");
31955
33068
  reFetchCollection();
31956
33069
  } catch (error) {
33070
+ if (error.message.indexOf("has references")) {
33071
+ cms.alerts.error(
33072
+ error.message.split("\n ").filter(Boolean)[1]
33073
+ );
33074
+ return;
33075
+ }
31957
33076
  cms.alerts.warn(
31958
33077
  "Document was not renamed, ask a developer for help or check the console for an error message"
31959
33078
  );
@@ -32251,6 +33370,9 @@ This will work when developing locally but NOT when deployed to production.
32251
33370
  setVars((old) => ({
32252
33371
  ...old,
32253
33372
  collection: collectionName,
33373
+ relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
33374
+ "/"
33375
+ ),
32254
33376
  relativePath: document2.node._sys.breadcrumbs.join(
32255
33377
  "/"
32256
33378
  ) + document2.node._sys.extension,
@@ -32273,6 +33395,9 @@ This will work when developing locally but NOT when deployed to production.
32273
33395
  setVars((old) => ({
32274
33396
  ...old,
32275
33397
  collection: collectionName,
33398
+ relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
33399
+ "/"
33400
+ ),
32276
33401
  relativePath: document2.node._sys.breadcrumbs.join(
32277
33402
  "/"
32278
33403
  ) + document2.node._sys.extension,
@@ -32427,8 +33552,19 @@ This will work when developing locally but NOT when deployed to production.
32427
33552
  const NoDocumentsPlaceholder = () => {
32428
33553
  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
33554
  };
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(
33555
+ const DeleteModal = ({
33556
+ close: close2,
33557
+ deleteFunc,
33558
+ checkRefsFunc,
33559
+ filename
33560
+ }) => {
33561
+ const [hasRefs, setHasRefs] = React.useState();
33562
+ React.useEffect(() => {
33563
+ checkRefsFunc().then((result) => {
33564
+ setHasRefs(result);
33565
+ });
33566
+ }, [filename, checkRefsFunc]);
33567
+ 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
33568
  Button$1,
32433
33569
  {
32434
33570
  style: { flexGrow: 3 },
@@ -32474,7 +33610,7 @@ This will work when developing locally but NOT when deployed to production.
32474
33610
  newRelativePath,
32475
33611
  setNewRelativePath
32476
33612
  }) => {
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(
33613
+ 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
33614
  BaseTextField,
32479
33615
  {
32480
33616
  placeholder: "Enter a new name for the document's file",
@@ -32489,7 +33625,8 @@ This will work when developing locally but NOT when deployed to production.
32489
33625
  onClick: async () => {
32490
33626
  await renameFunc();
32491
33627
  close2();
32492
- }
33628
+ },
33629
+ disabled: !newRelativePath || newRelativePath === filename
32493
33630
  },
32494
33631
  "Rename"
32495
33632
  ))));
@@ -33160,15 +34297,24 @@ This will work when developing locally but NOT when deployed to production.
33160
34297
  }
33161
34298
  }
33162
34299
  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");
34300
+ try {
34301
+ const foo = await tinaApi.createPullRequest({
34302
+ baseBranch,
34303
+ branch,
34304
+ title: `${branch.replace("tina/", "").replace("-", " ")} (PR from TinaCMS)`
34305
+ });
34306
+ console.log("PR created", foo);
34307
+ cms.alerts.success("Pull request created.");
34308
+ localStorage.setItem("tina.createBranchState", "done");
34309
+ setState("done");
34310
+ } catch (e) {
34311
+ console.error(e);
34312
+ cms.alerts.error("Failed to create PR");
34313
+ setErrorMessage(
34314
+ "Failed to create PR, please try again. If the problem persists please contact support."
34315
+ );
34316
+ setState("error");
34317
+ }
33172
34318
  }
33173
34319
  if (state === "done") {
33174
34320
  window.location.href = back;
@@ -33795,6 +34941,7 @@ This will work when developing locally but NOT when deployed to production.
33795
34941
  exports2.useScreenPlugin = useScreenPlugin;
33796
34942
  exports2.useTinaAuthRedirect = useTinaAuthRedirect;
33797
34943
  exports2.wrapFieldWithError = wrapFieldWithError;
34944
+ exports2.wrapFieldWithNoHeader = wrapFieldWithNoHeader;
33798
34945
  exports2.wrapFieldsWithMeta = wrapFieldsWithMeta;
33799
34946
  Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
33800
34947
  });