tinacms 0.0.0-de1bef5-20250124020627 → 0.0.0-df15737-20250329200825
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/admin/api.d.ts +1 -0
- package/dist/admin/components/GetCollection.d.ts +2 -2
- package/dist/auth/TinaCloudProvider.d.ts +1 -1
- package/dist/client.d.ts +1 -4
- package/dist/hooks/create-page-plugin.d.ts +1 -1
- package/dist/index.d.ts +1 -61
- package/dist/index.js +1927 -610
- package/dist/index.mjs +1933 -616
- package/dist/react.d.ts +1 -33
- package/dist/react.js +13 -1
- package/dist/react.mjs +13 -1
- package/dist/rich-text/index.d.ts +1 -142
- package/dist/rich-text/prism.d.ts +1 -10
- package/dist/toolkit/fields/components/reference/reference-select.d.ts +2 -2
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/indent-list-toolbar-button.d.ts +17 -5
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/components/plate-ui/mark-toolbar-button.d.ts +4 -18
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/plugins/ui/components.d.ts +6 -11
- package/dist/toolkit/fields/plugins/mdx-field-plugin/plate/toolbar/toolbar-overrides.d.ts +1 -1
- package/dist/toolkit/react-sidebar/components/sidebar-body.d.ts +5 -4
- package/dist/toolkit/react-sidebar/components/sidebar-loading-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/components/sidebar-no-forms-placeholder.d.ts +2 -0
- package/dist/toolkit/react-sidebar/sidebar.d.ts +2 -2
- package/dist/toolkit/tina-state.d.ts +4 -0
- package/package.json +34 -34
- package/dist/toolkit/react-sidebar/components/no-forms-placeholder.d.ts +0 -8
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("
|
|
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,
|
|
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("@react-hook/window-size"), 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("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", "@react-hook/window-size", "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", "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, windowSize, get, moment, dateFns, plateLink, ToolbarPrimitive, TooltipPrimitive, plateParagraph, plateBlockQuote, plateFloating, 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) => {
|
|
@@ -2943,7 +2943,7 @@ flowchart TD
|
|
|
2943
2943
|
),
|
|
2944
2944
|
[plate.MARK_CODE]: CodeLeaf,
|
|
2945
2945
|
[plate.MARK_UNDERLINE]: cn$1.withProps(plateCommon.PlateLeaf, { as: "u" }),
|
|
2946
|
-
[plate.MARK_STRIKETHROUGH]:
|
|
2946
|
+
[plate.MARK_STRIKETHROUGH]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React.createElement("s", { ...props.attributes, ...props }),
|
|
2947
2947
|
[plate.MARK_ITALIC]: cn$1.withProps(plateCommon.PlateLeaf, { as: "em" }),
|
|
2948
2948
|
[plate.MARK_BOLD]: ({ editor, leaf, text, ...props }) => /* @__PURE__ */ React.createElement("strong", { ...props.attributes, ...props }),
|
|
2949
2949
|
[plate.ELEMENT_HR]: ({
|
|
@@ -5197,7 +5197,7 @@ flowchart TD
|
|
|
5197
5197
|
side: "bottom",
|
|
5198
5198
|
className: cn(
|
|
5199
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",
|
|
5200
|
-
"max-h-[30vh] max-w-[
|
|
5200
|
+
"max-h-[30vh] max-w-[30vw] overflow-y-auto",
|
|
5201
5201
|
className
|
|
5202
5202
|
),
|
|
5203
5203
|
...props
|
|
@@ -5289,11 +5289,7 @@ flowchart TD
|
|
|
5289
5289
|
const node = nodes.find((node2) => node2.id === value);
|
|
5290
5290
|
return node ? node._internalSys.filename : null;
|
|
5291
5291
|
};
|
|
5292
|
-
const
|
|
5293
|
-
cms,
|
|
5294
|
-
input,
|
|
5295
|
-
field
|
|
5296
|
-
}) => {
|
|
5292
|
+
const Combobox = ({ cms, input, field }) => {
|
|
5297
5293
|
const [open2, setOpen] = React__namespace.useState(false);
|
|
5298
5294
|
const [value, setValue] = React__namespace.useState(input.value);
|
|
5299
5295
|
const [displayText, setDisplayText] = React__namespace.useState(null);
|
|
@@ -5309,7 +5305,9 @@ flowchart TD
|
|
|
5309
5305
|
}, [value, input, optionSets]);
|
|
5310
5306
|
React__namespace.useEffect(() => {
|
|
5311
5307
|
if (field.experimental___filter && optionSets.length > 0) {
|
|
5312
|
-
setFilteredOptionsList(
|
|
5308
|
+
setFilteredOptionsList(
|
|
5309
|
+
field.experimental___filter(optionSets, void 0)
|
|
5310
|
+
);
|
|
5313
5311
|
} else {
|
|
5314
5312
|
setFilteredOptionsList(optionSets);
|
|
5315
5313
|
}
|
|
@@ -5317,17 +5315,17 @@ flowchart TD
|
|
|
5317
5315
|
if (loading === true) {
|
|
5318
5316
|
return /* @__PURE__ */ React__namespace.createElement(LoadingDots, { color: "var(--tina-color-primary)" });
|
|
5319
5317
|
}
|
|
5320
|
-
return /* @__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(
|
|
5321
5319
|
Button,
|
|
5322
5320
|
{
|
|
5323
5321
|
variant: "outline",
|
|
5324
5322
|
role: "combobox",
|
|
5325
5323
|
"aria-expanded": open2,
|
|
5326
|
-
className: "w-
|
|
5324
|
+
className: "w-full justify-between"
|
|
5327
5325
|
},
|
|
5328
5326
|
/* @__PURE__ */ React__namespace.createElement("p", { className: "truncate" }, displayText ?? "Choose an option..."),
|
|
5329
5327
|
open2 ? /* @__PURE__ */ React__namespace.createElement(IoMdArrowDropup, { size: 20 }) : /* @__PURE__ */ React__namespace.createElement(IoMdArrowDropdown, { size: 20 })
|
|
5330
|
-
)), /* @__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(
|
|
5331
5329
|
Command,
|
|
5332
5330
|
{
|
|
5333
5331
|
shouldFilter: !field.experimental___filter,
|
|
@@ -5351,32 +5349,25 @@ flowchart TD
|
|
|
5351
5349
|
}
|
|
5352
5350
|
),
|
|
5353
5351
|
/* @__PURE__ */ React__namespace.createElement(CommandEmpty, null, "No reference found"),
|
|
5354
|
-
/* @__PURE__ */ React__namespace.createElement(CommandList, null, filteredOptionsList.length > 0 && (filteredOptionsList == null ? void 0 : filteredOptionsList.map(({ collection, edges }) => /* @__PURE__ */ React__namespace.createElement(
|
|
5355
|
-
|
|
5356
|
-
|
|
5357
|
-
|
|
5358
|
-
|
|
5359
|
-
|
|
5360
|
-
|
|
5361
|
-
|
|
5362
|
-
|
|
5363
|
-
|
|
5364
|
-
|
|
5365
|
-
|
|
5366
|
-
|
|
5367
|
-
|
|
5368
|
-
field,
|
|
5369
|
-
_values,
|
|
5370
|
-
node,
|
|
5371
|
-
onSelect: (currentValue) => {
|
|
5372
|
-
setValue(currentValue);
|
|
5373
|
-
setOpen(false);
|
|
5374
|
-
}
|
|
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);
|
|
5375
5366
|
}
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
))))
|
|
5379
|
-
)))
|
|
5367
|
+
}
|
|
5368
|
+
);
|
|
5369
|
+
}))))))
|
|
5370
|
+
)));
|
|
5380
5371
|
};
|
|
5381
5372
|
const useGetNode = (cms, id) => {
|
|
5382
5373
|
const [document2, setDocument] = React__namespace.useState(
|
|
@@ -5449,7 +5440,7 @@ flowchart TD
|
|
|
5449
5440
|
};
|
|
5450
5441
|
const Reference = ({ input, field }) => {
|
|
5451
5442
|
const cms = useCMS();
|
|
5452
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
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 }));
|
|
5453
5444
|
};
|
|
5454
5445
|
const ButtonToggle = ({
|
|
5455
5446
|
input,
|
|
@@ -5686,7 +5677,9 @@ flowchart TD
|
|
|
5686
5677
|
onClick: () => {
|
|
5687
5678
|
const state = tinaForm.finalForm.getState();
|
|
5688
5679
|
if (state.invalid === true) {
|
|
5689
|
-
cms.alerts.error(
|
|
5680
|
+
cms.alerts.error(
|
|
5681
|
+
"Cannot navigate away from an invalid form."
|
|
5682
|
+
);
|
|
5690
5683
|
return;
|
|
5691
5684
|
}
|
|
5692
5685
|
cms.dispatch({
|
|
@@ -6270,7 +6263,9 @@ flowchart TD
|
|
|
6270
6263
|
onClick: () => {
|
|
6271
6264
|
const state = tinaForm.finalForm.getState();
|
|
6272
6265
|
if (state.invalid === true) {
|
|
6273
|
-
cms.alerts.error(
|
|
6266
|
+
cms.alerts.error(
|
|
6267
|
+
"Cannot navigate away from an invalid form."
|
|
6268
|
+
);
|
|
6274
6269
|
return;
|
|
6275
6270
|
}
|
|
6276
6271
|
cms.dispatch({
|
|
@@ -6752,28 +6747,28 @@ flowchart TD
|
|
|
6752
6747
|
}
|
|
6753
6748
|
renderDayHeaders() {
|
|
6754
6749
|
const locale = this.props.viewDate.localeData();
|
|
6755
|
-
|
|
6750
|
+
const dayItems = getDaysOfWeek(locale).map((day, index) => /* @__PURE__ */ React.createElement("th", { key: day + index, className: "dow" }, day));
|
|
6756
6751
|
return /* @__PURE__ */ React.createElement("tr", null, dayItems);
|
|
6757
6752
|
}
|
|
6758
6753
|
renderDays() {
|
|
6759
6754
|
const date = this.props.viewDate;
|
|
6760
6755
|
const startOfMonth = date.clone().startOf("month");
|
|
6761
6756
|
const endOfMonth = date.clone().endOf("month");
|
|
6762
|
-
|
|
6763
|
-
|
|
6757
|
+
const rows = [[], [], [], [], [], []];
|
|
6758
|
+
const startDate = date.clone().subtract(1, "months");
|
|
6764
6759
|
startDate.date(startDate.daysInMonth()).startOf("week");
|
|
6765
|
-
|
|
6760
|
+
const endDate = startDate.clone().add(42, "d");
|
|
6766
6761
|
let i = 0;
|
|
6767
6762
|
while (startDate.isBefore(endDate)) {
|
|
6768
|
-
|
|
6763
|
+
const row = getRow$2(rows, i++);
|
|
6769
6764
|
row.push(this.renderDay(startDate, startOfMonth, endOfMonth));
|
|
6770
6765
|
startDate.add(1, "d");
|
|
6771
6766
|
}
|
|
6772
6767
|
return rows.map((r, i2) => /* @__PURE__ */ React.createElement("tr", { key: `${endDate.month()}_${i2}` }, r));
|
|
6773
6768
|
}
|
|
6774
6769
|
renderDay(date, startOfMonth, endOfMonth) {
|
|
6775
|
-
|
|
6776
|
-
|
|
6770
|
+
const selectedDate = this.props.selectedDate;
|
|
6771
|
+
const dayProps = {
|
|
6777
6772
|
key: date.format("M_D"),
|
|
6778
6773
|
"data-value": date.date(),
|
|
6779
6774
|
"data-month": date.month(),
|
|
@@ -6827,7 +6822,7 @@ flowchart TD
|
|
|
6827
6822
|
}
|
|
6828
6823
|
function getDaysOfWeek(locale) {
|
|
6829
6824
|
const first = locale.firstDayOfWeek();
|
|
6830
|
-
|
|
6825
|
+
const dow = [];
|
|
6831
6826
|
let i = 0;
|
|
6832
6827
|
locale._weekdaysMin.forEach(function(day) {
|
|
6833
6828
|
dow[(7 + i++ - first) % 7] = day;
|
|
@@ -6845,7 +6840,7 @@ flowchart TD
|
|
|
6845
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())));
|
|
6846
6841
|
}
|
|
6847
6842
|
renderNavigation() {
|
|
6848
|
-
|
|
6843
|
+
const year = this.props.viewDate.year();
|
|
6849
6844
|
return /* @__PURE__ */ React.createElement(
|
|
6850
6845
|
ViewNavigation,
|
|
6851
6846
|
{
|
|
@@ -6858,9 +6853,9 @@ flowchart TD
|
|
|
6858
6853
|
);
|
|
6859
6854
|
}
|
|
6860
6855
|
renderMonths() {
|
|
6861
|
-
|
|
6856
|
+
const rows = [[], [], []];
|
|
6862
6857
|
for (let month = 0; month < 12; month++) {
|
|
6863
|
-
|
|
6858
|
+
const row = getRow$1(rows, month);
|
|
6864
6859
|
row.push(this.renderMonth(month));
|
|
6865
6860
|
}
|
|
6866
6861
|
return rows.map((months, i) => /* @__PURE__ */ React.createElement("tr", { key: i }, months));
|
|
@@ -6877,7 +6872,7 @@ flowchart TD
|
|
|
6877
6872
|
if (selectedDate && selectedDate.year() === this.props.viewDate.year() && selectedDate.month() === month) {
|
|
6878
6873
|
className += " rdtActive";
|
|
6879
6874
|
}
|
|
6880
|
-
|
|
6875
|
+
const props = { key: month, className, "data-value": month, onClick };
|
|
6881
6876
|
if (this.props.renderMonth) {
|
|
6882
6877
|
return this.props.renderMonth(
|
|
6883
6878
|
props,
|
|
@@ -6889,11 +6884,11 @@ flowchart TD
|
|
|
6889
6884
|
return /* @__PURE__ */ React.createElement("td", { ...props }, this.getMonthText(month));
|
|
6890
6885
|
}
|
|
6891
6886
|
isDisabledMonth(month) {
|
|
6892
|
-
|
|
6887
|
+
const isValidDate = this.props.isValidDate;
|
|
6893
6888
|
if (!isValidDate) {
|
|
6894
6889
|
return false;
|
|
6895
6890
|
}
|
|
6896
|
-
|
|
6891
|
+
const date = this.props.viewDate.clone().set({ month });
|
|
6897
6892
|
let day = date.endOf("month").date() + 1;
|
|
6898
6893
|
while (day-- > 1) {
|
|
6899
6894
|
if (isValidDate(date.date(day))) {
|
|
@@ -6945,9 +6940,9 @@ flowchart TD
|
|
|
6945
6940
|
}
|
|
6946
6941
|
renderYears() {
|
|
6947
6942
|
const viewYear = this.getViewYear();
|
|
6948
|
-
|
|
6943
|
+
const rows = [[], [], []];
|
|
6949
6944
|
for (let year = viewYear - 1; year < viewYear + 11; year++) {
|
|
6950
|
-
|
|
6945
|
+
const row = getRow(rows, year - viewYear);
|
|
6951
6946
|
row.push(this.renderYear(year));
|
|
6952
6947
|
}
|
|
6953
6948
|
return rows.map((years, i) => /* @__PURE__ */ React.createElement("tr", { key: i }, years));
|
|
@@ -6964,7 +6959,7 @@ flowchart TD
|
|
|
6964
6959
|
if (selectedYear === year) {
|
|
6965
6960
|
className += " rdtActive";
|
|
6966
6961
|
}
|
|
6967
|
-
|
|
6962
|
+
const props = { key: year, className, "data-value": year, onClick };
|
|
6968
6963
|
return this.props.renderYear(
|
|
6969
6964
|
props,
|
|
6970
6965
|
year,
|
|
@@ -6978,15 +6973,15 @@ flowchart TD
|
|
|
6978
6973
|
return this.props.selectedDate && this.props.selectedDate.year();
|
|
6979
6974
|
}
|
|
6980
6975
|
isDisabledYear(year) {
|
|
6981
|
-
|
|
6976
|
+
const cache = this.disabledYearsCache;
|
|
6982
6977
|
if (cache[year] !== void 0) {
|
|
6983
6978
|
return cache[year];
|
|
6984
6979
|
}
|
|
6985
|
-
|
|
6980
|
+
const isValidDate = this.props.isValidDate;
|
|
6986
6981
|
if (!isValidDate) {
|
|
6987
6982
|
return false;
|
|
6988
6983
|
}
|
|
6989
|
-
|
|
6984
|
+
const date = this.props.viewDate.clone().set({ year });
|
|
6990
6985
|
let day = date.endOf("year").dayOfYear() + 1;
|
|
6991
6986
|
while (day-- > 1) {
|
|
6992
6987
|
if (isValidDate(date.dayOfYear(day))) {
|
|
@@ -7033,7 +7028,7 @@ flowchart TD
|
|
|
7033
7028
|
}
|
|
7034
7029
|
};
|
|
7035
7030
|
function createConstraints(overrideTimeConstraints) {
|
|
7036
|
-
|
|
7031
|
+
const constraints = {};
|
|
7037
7032
|
Object.keys(timeConstraints).forEach((type) => {
|
|
7038
7033
|
constraints[type] = {
|
|
7039
7034
|
...timeConstraints[type],
|
|
@@ -7049,7 +7044,7 @@ flowchart TD
|
|
|
7049
7044
|
this.state = this.getTimeParts(props.selectedDate || props.viewDate);
|
|
7050
7045
|
}
|
|
7051
7046
|
render() {
|
|
7052
|
-
|
|
7047
|
+
const items2 = [];
|
|
7053
7048
|
const timeParts = this.state;
|
|
7054
7049
|
this.getCounters().forEach((c, i) => {
|
|
7055
7050
|
if (i && c !== "ampm") {
|
|
@@ -7111,8 +7106,8 @@ flowchart TD
|
|
|
7111
7106
|
}
|
|
7112
7107
|
if (type === "ampm")
|
|
7113
7108
|
return this.toggleDayPart();
|
|
7114
|
-
|
|
7115
|
-
|
|
7109
|
+
const update = {};
|
|
7110
|
+
const body = document.body;
|
|
7116
7111
|
update[type] = this[action](type);
|
|
7117
7112
|
this.setState(update);
|
|
7118
7113
|
this.timer = setTimeout(() => {
|
|
@@ -7155,8 +7150,8 @@ flowchart TD
|
|
|
7155
7150
|
return pad(type, value);
|
|
7156
7151
|
}
|
|
7157
7152
|
getCounters() {
|
|
7158
|
-
|
|
7159
|
-
|
|
7153
|
+
const counters = [];
|
|
7154
|
+
const format2 = this.props.timeFormat;
|
|
7160
7155
|
if (format2.toLowerCase().indexOf("h") !== -1) {
|
|
7161
7156
|
counters.push("hours");
|
|
7162
7157
|
if (format2.indexOf("m") !== -1) {
|
|
@@ -7288,7 +7283,7 @@ flowchart TD
|
|
|
7288
7283
|
__publicField(this, "_renderCalendar", () => {
|
|
7289
7284
|
const props = this.props;
|
|
7290
7285
|
const state = this.state;
|
|
7291
|
-
|
|
7286
|
+
const viewProps = {
|
|
7292
7287
|
viewDate: state.viewDate.clone(),
|
|
7293
7288
|
selectedDate: this.getSelectedDate(),
|
|
7294
7289
|
isValidDate: props.isValidDate,
|
|
@@ -7331,10 +7326,10 @@ flowchart TD
|
|
|
7331
7326
|
__publicField(this, "viewToMethod", { days: "date", months: "month", years: "year" });
|
|
7332
7327
|
__publicField(this, "nextView", { days: "time", months: "days", years: "months" });
|
|
7333
7328
|
__publicField(this, "_updateDate", (e) => {
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
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();
|
|
7338
7333
|
viewDate[this.viewToMethod[currentView]](
|
|
7339
7334
|
parseInt(e.target.getAttribute("data-value"), 10)
|
|
7340
7335
|
);
|
|
@@ -7342,7 +7337,7 @@ flowchart TD
|
|
|
7342
7337
|
viewDate.month(parseInt(e.target.getAttribute("data-month"), 10));
|
|
7343
7338
|
viewDate.year(parseInt(e.target.getAttribute("data-year"), 10));
|
|
7344
7339
|
}
|
|
7345
|
-
|
|
7340
|
+
const update = { viewDate };
|
|
7346
7341
|
if (currentView === updateOnView) {
|
|
7347
7342
|
update.selectedDate = viewDate.clone();
|
|
7348
7343
|
update.inputValue = viewDate.format(this.getFormat("datetime"));
|
|
@@ -7356,7 +7351,7 @@ flowchart TD
|
|
|
7356
7351
|
this.setState(update);
|
|
7357
7352
|
});
|
|
7358
7353
|
__publicField(this, "_viewNavigate", (modifier, unit) => {
|
|
7359
|
-
|
|
7354
|
+
const viewDate = this.state.viewDate.clone();
|
|
7360
7355
|
viewDate.add(modifier, unit);
|
|
7361
7356
|
if (modifier > 0) {
|
|
7362
7357
|
this.props.onNavigateForward(modifier, unit);
|
|
@@ -7366,7 +7361,7 @@ flowchart TD
|
|
|
7366
7361
|
this.setState({ viewDate });
|
|
7367
7362
|
});
|
|
7368
7363
|
__publicField(this, "_setTime", (type, value) => {
|
|
7369
|
-
|
|
7364
|
+
const date = (this.getSelectedDate() || this.state.viewDate).clone();
|
|
7370
7365
|
date[type](value);
|
|
7371
7366
|
if (!this.props.value) {
|
|
7372
7367
|
this.setState({
|
|
@@ -7390,7 +7385,7 @@ flowchart TD
|
|
|
7390
7385
|
});
|
|
7391
7386
|
});
|
|
7392
7387
|
__publicField(this, "_handleClickOutside", () => {
|
|
7393
|
-
|
|
7388
|
+
const props = this.props;
|
|
7394
7389
|
if (props.input && this.state.open && props.open === void 0 && props.closeOnClickOutside) {
|
|
7395
7390
|
this._closeCalendar();
|
|
7396
7391
|
}
|
|
@@ -7405,7 +7400,7 @@ flowchart TD
|
|
|
7405
7400
|
return;
|
|
7406
7401
|
const value = e.target ? e.target.value : e;
|
|
7407
7402
|
const localMoment = this.localMoment(value, this.getFormat("datetime"));
|
|
7408
|
-
|
|
7403
|
+
const update = { inputValue: value };
|
|
7409
7404
|
if (localMoment.isValid()) {
|
|
7410
7405
|
update.selectedDate = localMoment;
|
|
7411
7406
|
update.viewDate = localMoment.clone().startOf("month");
|
|
@@ -7469,9 +7464,9 @@ flowchart TD
|
|
|
7469
7464
|
return this.props.renderView(this.state.currentView, this._renderCalendar);
|
|
7470
7465
|
}
|
|
7471
7466
|
getInitialState() {
|
|
7472
|
-
|
|
7473
|
-
|
|
7474
|
-
|
|
7467
|
+
const props = this.props;
|
|
7468
|
+
const inputFormat = this.getFormat("datetime");
|
|
7469
|
+
const selectedDate = this.parseDate(
|
|
7475
7470
|
props.value || props.initialValue,
|
|
7476
7471
|
inputFormat
|
|
7477
7472
|
);
|
|
@@ -7502,7 +7497,7 @@ flowchart TD
|
|
|
7502
7497
|
return this.getInitialDate();
|
|
7503
7498
|
}
|
|
7504
7499
|
getInitialDate() {
|
|
7505
|
-
|
|
7500
|
+
const m = this.localMoment();
|
|
7506
7501
|
m.hour(0).minute(0).second(0).millisecond(0);
|
|
7507
7502
|
return m;
|
|
7508
7503
|
}
|
|
@@ -7522,8 +7517,8 @@ flowchart TD
|
|
|
7522
7517
|
}
|
|
7523
7518
|
getClassName() {
|
|
7524
7519
|
let cn2 = "rdt";
|
|
7525
|
-
|
|
7526
|
-
|
|
7520
|
+
const props = this.props;
|
|
7521
|
+
const propCn = props.className;
|
|
7527
7522
|
if (Array.isArray(propCn)) {
|
|
7528
7523
|
cn2 += " " + propCn.join(" ");
|
|
7529
7524
|
} else if (propCn) {
|
|
@@ -7556,14 +7551,14 @@ flowchart TD
|
|
|
7556
7551
|
return viewModes.DAYS;
|
|
7557
7552
|
}
|
|
7558
7553
|
getLocaleData() {
|
|
7559
|
-
|
|
7554
|
+
const p = this.props;
|
|
7560
7555
|
return this.localMoment(
|
|
7561
7556
|
p.value || p.defaultValue || /* @__PURE__ */ new Date()
|
|
7562
7557
|
).localeData();
|
|
7563
7558
|
}
|
|
7564
7559
|
getDateFormat() {
|
|
7565
7560
|
const locale = this.getLocaleData();
|
|
7566
|
-
|
|
7561
|
+
const format2 = this.props.dateFormat;
|
|
7567
7562
|
if (format2 === true)
|
|
7568
7563
|
return locale.longDateFormat("L");
|
|
7569
7564
|
if (format2)
|
|
@@ -7572,7 +7567,7 @@ flowchart TD
|
|
|
7572
7567
|
}
|
|
7573
7568
|
getTimeFormat() {
|
|
7574
7569
|
const locale = this.getLocaleData();
|
|
7575
|
-
|
|
7570
|
+
const format2 = this.props.timeFormat;
|
|
7576
7571
|
if (format2 === true) {
|
|
7577
7572
|
return locale.longDateFormat("LT");
|
|
7578
7573
|
}
|
|
@@ -7584,12 +7579,12 @@ flowchart TD
|
|
|
7584
7579
|
} else if (type === "time") {
|
|
7585
7580
|
return this.getTimeFormat();
|
|
7586
7581
|
}
|
|
7587
|
-
|
|
7588
|
-
|
|
7582
|
+
const dateFormat = this.getDateFormat();
|
|
7583
|
+
const timeFormat = this.getTimeFormat();
|
|
7589
7584
|
return dateFormat && timeFormat ? dateFormat + " " + timeFormat : dateFormat || timeFormat;
|
|
7590
7585
|
}
|
|
7591
7586
|
updateTime(op, amount, type, toSelected) {
|
|
7592
|
-
|
|
7587
|
+
const update = {};
|
|
7593
7588
|
const date = toSelected ? "selectedDate" : "viewDate";
|
|
7594
7589
|
update[date] = this.state[date].clone()[op](amount, type);
|
|
7595
7590
|
this.setState(update);
|
|
@@ -7622,7 +7617,7 @@ flowchart TD
|
|
|
7622
7617
|
if (prevProps === this.props)
|
|
7623
7618
|
return;
|
|
7624
7619
|
let needsUpdate = false;
|
|
7625
|
-
|
|
7620
|
+
const thisProps = this.props;
|
|
7626
7621
|
["locale", "utc", "displayZone", "dateFormat", "timeFormat"].forEach(
|
|
7627
7622
|
function(p) {
|
|
7628
7623
|
prevProps[p] !== thisProps[p] && (needsUpdate = true);
|
|
@@ -7638,8 +7633,8 @@ flowchart TD
|
|
|
7638
7633
|
}
|
|
7639
7634
|
regenerateDates() {
|
|
7640
7635
|
const props = this.props;
|
|
7641
|
-
|
|
7642
|
-
|
|
7636
|
+
const viewDate = this.state.viewDate.clone();
|
|
7637
|
+
const selectedDate = this.state.selectedDate && this.state.selectedDate.clone();
|
|
7643
7638
|
if (props.locale) {
|
|
7644
7639
|
viewDate.locale(props.locale);
|
|
7645
7640
|
selectedDate && selectedDate.locale(props.locale);
|
|
@@ -7654,7 +7649,7 @@ flowchart TD
|
|
|
7654
7649
|
viewDate.locale();
|
|
7655
7650
|
selectedDate && selectedDate.locale();
|
|
7656
7651
|
}
|
|
7657
|
-
|
|
7652
|
+
const update = { viewDate, selectedDate };
|
|
7658
7653
|
if (selectedDate && selectedDate.isValid()) {
|
|
7659
7654
|
update.inputValue = selectedDate.format(this.getFormat("datetime"));
|
|
7660
7655
|
}
|
|
@@ -7663,7 +7658,7 @@ flowchart TD
|
|
|
7663
7658
|
getSelectedDate() {
|
|
7664
7659
|
if (this.props.value === void 0)
|
|
7665
7660
|
return this.state.selectedDate;
|
|
7666
|
-
|
|
7661
|
+
const selectedDate = this.parseDate(
|
|
7667
7662
|
this.props.value,
|
|
7668
7663
|
this.getFormat("datetime")
|
|
7669
7664
|
);
|
|
@@ -7682,7 +7677,7 @@ flowchart TD
|
|
|
7682
7677
|
return "";
|
|
7683
7678
|
}
|
|
7684
7679
|
getInputValue() {
|
|
7685
|
-
|
|
7680
|
+
const selectedDate = this.getSelectedDate();
|
|
7686
7681
|
return selectedDate ? selectedDate.format(this.getFormat("datetime")) : this.state.inputValue;
|
|
7687
7682
|
}
|
|
7688
7683
|
/**
|
|
@@ -7692,7 +7687,7 @@ flowchart TD
|
|
|
7692
7687
|
* @public
|
|
7693
7688
|
*/
|
|
7694
7689
|
setViewDate(date) {
|
|
7695
|
-
|
|
7690
|
+
const logError = function() {
|
|
7696
7691
|
return log("Invalid date passed to the `setViewDate` method: " + date);
|
|
7697
7692
|
};
|
|
7698
7693
|
if (!date)
|
|
@@ -7788,7 +7783,7 @@ flowchart TD
|
|
|
7788
7783
|
// Make moment accessible through the Datetime class
|
|
7789
7784
|
__publicField(Datetime, "moment", moment);
|
|
7790
7785
|
function log(message, method) {
|
|
7791
|
-
|
|
7786
|
+
const con = typeof window !== "undefined" && window.console;
|
|
7792
7787
|
if (!con)
|
|
7793
7788
|
return;
|
|
7794
7789
|
if (!method) {
|
|
@@ -8611,7 +8606,10 @@ flowchart TD
|
|
|
8611
8606
|
label: "View in GitHub",
|
|
8612
8607
|
Icon: /* @__PURE__ */ React__namespace.createElement(BiLinkExternal, { className: "w-5 h-auto text-blue-500 opacity-70" }),
|
|
8613
8608
|
onMouseDown: () => {
|
|
8614
|
-
window.open(
|
|
8609
|
+
window.open(
|
|
8610
|
+
branch.githubPullRequestUrl,
|
|
8611
|
+
"_blank"
|
|
8612
|
+
);
|
|
8615
8613
|
}
|
|
8616
8614
|
},
|
|
8617
8615
|
typeof previewFunction === "function" && ((_b2 = previewFunction({ branch: branch.name })) == null ? void 0 : _b2.url) && {
|
|
@@ -8917,7 +8915,9 @@ flowchart TD
|
|
|
8917
8915
|
} else {
|
|
8918
8916
|
events = event;
|
|
8919
8917
|
}
|
|
8920
|
-
const newListeners = events.map(
|
|
8918
|
+
const newListeners = events.map(
|
|
8919
|
+
(event2) => new Listener(event2, callback)
|
|
8920
|
+
);
|
|
8921
8921
|
newListeners.forEach((newListener) => this.listeners.add(newListener));
|
|
8922
8922
|
return () => {
|
|
8923
8923
|
newListeners.forEach((listener) => this.listeners.delete(listener));
|
|
@@ -9273,9 +9273,7 @@ flowchart TD
|
|
|
9273
9273
|
const deleteStartTime = Date.now();
|
|
9274
9274
|
while (true) {
|
|
9275
9275
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
9276
|
-
const { error, message } = await this.api.getRequestStatus(
|
|
9277
|
-
requestId
|
|
9278
|
-
);
|
|
9276
|
+
const { error, message } = await this.api.getRequestStatus(requestId);
|
|
9279
9277
|
if (error !== void 0) {
|
|
9280
9278
|
if (error) {
|
|
9281
9279
|
throw new Error(message);
|
|
@@ -9303,11 +9301,8 @@ flowchart TD
|
|
|
9303
9301
|
const encodeUrlIfNeeded = (url) => {
|
|
9304
9302
|
if (url) {
|
|
9305
9303
|
try {
|
|
9306
|
-
|
|
9307
|
-
parsed.pathname = parsed.pathname.split("/").filter((part) => part !== "").map(encodeURIComponent).join("/");
|
|
9308
|
-
return parsed.toString();
|
|
9304
|
+
return new URL(url).toString();
|
|
9309
9305
|
} catch (e) {
|
|
9310
|
-
console.error("Failed to parse URL:", e);
|
|
9311
9306
|
return url;
|
|
9312
9307
|
}
|
|
9313
9308
|
} else {
|
|
@@ -9613,7 +9608,7 @@ flowchart TD
|
|
|
9613
9608
|
return this.add("error", message, timeout);
|
|
9614
9609
|
}
|
|
9615
9610
|
};
|
|
9616
|
-
const
|
|
9611
|
+
const SidebarLoadingPlaceholder = () => /* @__PURE__ */ React__namespace.createElement(
|
|
9617
9612
|
"div",
|
|
9618
9613
|
{
|
|
9619
9614
|
className: "relative flex flex-col items-center justify-center text-center p-5 pb-16 w-full h-full overflow-y-auto",
|
|
@@ -9626,25 +9621,8 @@ flowchart TD
|
|
|
9626
9621
|
animationDuration: "150ms"
|
|
9627
9622
|
}
|
|
9628
9623
|
},
|
|
9629
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
9630
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
9631
|
-
/* @__PURE__ */ React__namespace.createElement("p", { className: "block" }, /* @__PURE__ */ React__namespace.createElement(
|
|
9632
|
-
Button$1,
|
|
9633
|
-
{
|
|
9634
|
-
href: "https://tina.io/docs/tinacms-context/",
|
|
9635
|
-
target: "_blank",
|
|
9636
|
-
as: "a"
|
|
9637
|
-
},
|
|
9638
|
-
/* @__PURE__ */ React__namespace.createElement(Emoji$1, { className: "mr-1.5" }, "📖"),
|
|
9639
|
-
" Contextual Editing"
|
|
9640
|
-
))
|
|
9641
|
-
);
|
|
9642
|
-
const Emoji$1 = ({ className = "", ...props }) => /* @__PURE__ */ React__namespace.createElement(
|
|
9643
|
-
"span",
|
|
9644
|
-
{
|
|
9645
|
-
className: `text-[24px] leading-none inline-block ${className}`,
|
|
9646
|
-
...props
|
|
9647
|
-
}
|
|
9624
|
+
/* @__PURE__ */ React__namespace.createElement("p", { className: "block pb-5" }, "Please wait while TinaCMS", /* @__PURE__ */ React__namespace.createElement("br", null), "loads your content"),
|
|
9625
|
+
/* @__PURE__ */ React__namespace.createElement(LoadingDots, { color: "var(--tina-color-primary)" })
|
|
9648
9626
|
);
|
|
9649
9627
|
class SidebarState {
|
|
9650
9628
|
constructor(events, options = {}) {
|
|
@@ -9659,7 +9637,7 @@ flowchart TD
|
|
|
9659
9637
|
};
|
|
9660
9638
|
this.position = options.position || "displace";
|
|
9661
9639
|
this.renderNav = options.renderNav || true;
|
|
9662
|
-
this.
|
|
9640
|
+
this.loadingPlaceholder = options.placeholder || SidebarLoadingPlaceholder;
|
|
9663
9641
|
if ((_a = options.buttons) == null ? void 0 : _a.save) {
|
|
9664
9642
|
this.buttons.save = options.buttons.save;
|
|
9665
9643
|
}
|
|
@@ -9733,238 +9711,6 @@ flowchart TD
|
|
|
9733
9711
|
children
|
|
9734
9712
|
)));
|
|
9735
9713
|
};
|
|
9736
|
-
const Item = ({
|
|
9737
|
-
item,
|
|
9738
|
-
depth,
|
|
9739
|
-
setActiveFormId
|
|
9740
|
-
}) => {
|
|
9741
|
-
const cms = useCMS();
|
|
9742
|
-
const depths = ["pl-6", "pl-10", "pl-14"];
|
|
9743
|
-
const form = React__namespace.useMemo(
|
|
9744
|
-
() => cms.state.forms.find(({ tinaForm }) => item.formId === tinaForm.id),
|
|
9745
|
-
[item.formId]
|
|
9746
|
-
);
|
|
9747
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9748
|
-
"button",
|
|
9749
|
-
{
|
|
9750
|
-
type: "button",
|
|
9751
|
-
key: item.path,
|
|
9752
|
-
onClick: () => setActiveFormId(item.formId),
|
|
9753
|
-
className: `${depths[depth] || "pl-12"} pr-6 py-3 w-full h-full bg-transparent border-none text-lg text-gray-700 group hover:bg-gray-50 transition-all ease-out duration-150 flex items-center justify-between gap-2`
|
|
9754
|
-
},
|
|
9755
|
-
/* @__PURE__ */ React__namespace.createElement(BiEdit, { className: "opacity-70 w-5 h-auto text-blue-500 flex-none" }),
|
|
9756
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 flex flex-col gap-0.5 items-start" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "group-hover:text-blue-500 font-sans text-xs font-semibold text-gray-700 whitespace-normal" }, form.tinaForm.label), /* @__PURE__ */ React__namespace.createElement("div", { className: "group-hover:text-blue-500 text-base truncate leading-tight text-gray-600" }, form.tinaForm.id))
|
|
9757
|
-
);
|
|
9758
|
-
};
|
|
9759
|
-
const FormListItem = ({
|
|
9760
|
-
item,
|
|
9761
|
-
depth,
|
|
9762
|
-
setActiveFormId
|
|
9763
|
-
}) => {
|
|
9764
|
-
var _a;
|
|
9765
|
-
return /* @__PURE__ */ React__namespace.createElement("div", { className: "divide-y divide-gray-200" }, /* @__PURE__ */ React__namespace.createElement(Item, { setActiveFormId, item, depth }), item.subItems && /* @__PURE__ */ React__namespace.createElement("ul", { className: "divide-y divide-gray-200" }, (_a = item.subItems) == null ? void 0 : _a.map((subItem) => {
|
|
9766
|
-
if (subItem.type === "document") {
|
|
9767
|
-
return /* @__PURE__ */ React__namespace.createElement("li", { key: subItem.formId }, /* @__PURE__ */ React__namespace.createElement(
|
|
9768
|
-
Item,
|
|
9769
|
-
{
|
|
9770
|
-
setActiveFormId,
|
|
9771
|
-
depth: depth + 1,
|
|
9772
|
-
item: subItem
|
|
9773
|
-
}
|
|
9774
|
-
));
|
|
9775
|
-
}
|
|
9776
|
-
})));
|
|
9777
|
-
};
|
|
9778
|
-
const FormLists = (props) => {
|
|
9779
|
-
const cms = useCMS();
|
|
9780
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9781
|
-
react.Transition,
|
|
9782
|
-
{
|
|
9783
|
-
appear: true,
|
|
9784
|
-
show: true,
|
|
9785
|
-
as: "div",
|
|
9786
|
-
enter: "transition-all ease-out duration-150",
|
|
9787
|
-
enterFrom: "opacity-0 -translate-x-1/2",
|
|
9788
|
-
enterTo: "opacity-100",
|
|
9789
|
-
leave: "transition-all ease-out duration-150",
|
|
9790
|
-
leaveFrom: "opacity-100",
|
|
9791
|
-
leaveTo: "opacity-0 -translate-x-1/2"
|
|
9792
|
-
},
|
|
9793
|
-
cms.state.formLists.map((formList, index) => /* @__PURE__ */ React__namespace.createElement("div", { key: `${formList.id}-${index}`, className: "pt-16" }, /* @__PURE__ */ React__namespace.createElement(
|
|
9794
|
-
FormList,
|
|
9795
|
-
{
|
|
9796
|
-
isEditing: props.isEditing,
|
|
9797
|
-
setActiveFormId: (id) => {
|
|
9798
|
-
cms.dispatch({ type: "forms:set-active-form-id", value: id });
|
|
9799
|
-
},
|
|
9800
|
-
formList
|
|
9801
|
-
}
|
|
9802
|
-
)))
|
|
9803
|
-
);
|
|
9804
|
-
};
|
|
9805
|
-
const FormList = (props) => {
|
|
9806
|
-
const cms = useCMS();
|
|
9807
|
-
const listItems = React__namespace.useMemo(() => {
|
|
9808
|
-
var _a;
|
|
9809
|
-
const orderedListItems = [];
|
|
9810
|
-
const globalItems = [];
|
|
9811
|
-
const topItems = [];
|
|
9812
|
-
props.formList.items.forEach((item) => {
|
|
9813
|
-
if (item.type === "document") {
|
|
9814
|
-
const form = cms.state.forms.find(
|
|
9815
|
-
({ tinaForm }) => tinaForm.id === item.formId
|
|
9816
|
-
);
|
|
9817
|
-
if (form.tinaForm.global) {
|
|
9818
|
-
globalItems.push(item);
|
|
9819
|
-
} else {
|
|
9820
|
-
orderedListItems.push(item);
|
|
9821
|
-
}
|
|
9822
|
-
} else {
|
|
9823
|
-
orderedListItems.push(item);
|
|
9824
|
-
}
|
|
9825
|
-
});
|
|
9826
|
-
if (((_a = orderedListItems[0]) == null ? void 0 : _a.type) === "document") {
|
|
9827
|
-
topItems.push({ type: "list", label: "Documents" });
|
|
9828
|
-
}
|
|
9829
|
-
let extra = [];
|
|
9830
|
-
if (globalItems.length) {
|
|
9831
|
-
extra = [{ type: "list", label: "Global Documents" }, ...globalItems];
|
|
9832
|
-
}
|
|
9833
|
-
return [...topItems, ...orderedListItems, ...extra];
|
|
9834
|
-
}, [JSON.stringify(props.formList.items)]);
|
|
9835
|
-
return /* @__PURE__ */ React__namespace.createElement("ul", null, /* @__PURE__ */ React__namespace.createElement("li", { className: "divide-y divide-gray-200" }, listItems.map((item, index) => {
|
|
9836
|
-
if (item.type === "list") {
|
|
9837
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9838
|
-
"div",
|
|
9839
|
-
{
|
|
9840
|
-
key: item.label,
|
|
9841
|
-
className: `relative group text-left w-full bg-white shadow-sm
|
|
9842
|
-
border-gray-100 px-6 -mt-px pb-3 ${index > 0 ? "pt-6 bg-gradient-to-b from-gray-50 via-white to-white" : "pt-3"}`
|
|
9843
|
-
},
|
|
9844
|
-
/* @__PURE__ */ React__namespace.createElement(
|
|
9845
|
-
"span",
|
|
9846
|
-
{
|
|
9847
|
-
className: "text-sm tracking-wide font-bold text-gray-700 uppercase"
|
|
9848
|
-
},
|
|
9849
|
-
item.label
|
|
9850
|
-
)
|
|
9851
|
-
);
|
|
9852
|
-
}
|
|
9853
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9854
|
-
FormListItem,
|
|
9855
|
-
{
|
|
9856
|
-
setActiveFormId: (id) => props.setActiveFormId(id),
|
|
9857
|
-
key: item.formId,
|
|
9858
|
-
item,
|
|
9859
|
-
depth: 0
|
|
9860
|
-
}
|
|
9861
|
-
);
|
|
9862
|
-
})));
|
|
9863
|
-
};
|
|
9864
|
-
const FormsView = ({
|
|
9865
|
-
children
|
|
9866
|
-
}) => {
|
|
9867
|
-
const cms = useCMS$1();
|
|
9868
|
-
const { setFormIsPristine } = React__namespace.useContext(SidebarContext);
|
|
9869
|
-
const isMultiform = cms.state.forms.length > 1;
|
|
9870
|
-
const activeForm = cms.state.forms.find(
|
|
9871
|
-
({ tinaForm }) => tinaForm.id === cms.state.activeFormId
|
|
9872
|
-
);
|
|
9873
|
-
const isEditing = !!activeForm;
|
|
9874
|
-
if (!cms.state.formLists.length) {
|
|
9875
|
-
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, " ", children, " ");
|
|
9876
|
-
}
|
|
9877
|
-
if (isMultiform && !activeForm) {
|
|
9878
|
-
return /* @__PURE__ */ React__namespace.createElement(FormLists, { isEditing });
|
|
9879
|
-
}
|
|
9880
|
-
const formMetas = cms.plugins.all("form:meta");
|
|
9881
|
-
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, activeForm && /* @__PURE__ */ React__namespace.createElement(FormWrapper$1, { isEditing, isMultiform }, isMultiform && /* @__PURE__ */ React__namespace.createElement(MultiformFormHeader, { activeForm }), !isMultiform && /* @__PURE__ */ React__namespace.createElement(FormHeader, { activeForm }), formMetas == null ? void 0 : formMetas.map((meta) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, { key: meta.name }, /* @__PURE__ */ React__namespace.createElement(meta.Component, null))), /* @__PURE__ */ React__namespace.createElement(FormBuilder, { form: activeForm, onPristineChange: setFormIsPristine })));
|
|
9882
|
-
};
|
|
9883
|
-
const FormWrapper$1 = ({ isEditing, children }) => {
|
|
9884
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9885
|
-
"div",
|
|
9886
|
-
{
|
|
9887
|
-
className: "flex-1 flex flex-col flex-nowrap overflow-hidden h-full w-full relative bg-white",
|
|
9888
|
-
style: isEditing ? {
|
|
9889
|
-
transform: "none",
|
|
9890
|
-
animationName: "fly-in-left",
|
|
9891
|
-
animationDuration: "150ms",
|
|
9892
|
-
animationDelay: "0",
|
|
9893
|
-
animationIterationCount: 1,
|
|
9894
|
-
animationTimingFunction: "ease-out"
|
|
9895
|
-
} : {
|
|
9896
|
-
transform: "translate3d(100%, 0, 0)"
|
|
9897
|
-
}
|
|
9898
|
-
},
|
|
9899
|
-
children
|
|
9900
|
-
);
|
|
9901
|
-
};
|
|
9902
|
-
const MultiformFormHeader = ({
|
|
9903
|
-
activeForm
|
|
9904
|
-
}) => {
|
|
9905
|
-
const cms = useCMS$1();
|
|
9906
|
-
const { formIsPristine } = React__namespace.useContext(SidebarContext);
|
|
9907
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9908
|
-
"div",
|
|
9909
|
-
{
|
|
9910
|
-
className: "pt-18 pb-4 px-6 border-b border-gray-200 bg-gradient-to-t from-white to-gray-50"
|
|
9911
|
-
},
|
|
9912
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "max-w-form mx-auto flex gap-2 justify-between items-center" }, /* @__PURE__ */ React__namespace.createElement(
|
|
9913
|
-
"button",
|
|
9914
|
-
{
|
|
9915
|
-
type: "button",
|
|
9916
|
-
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
9917
|
-
onClick: () => {
|
|
9918
|
-
const state = activeForm.tinaForm.finalForm.getState();
|
|
9919
|
-
if (state.invalid === true) {
|
|
9920
|
-
cms.alerts.error("Cannot navigate away from an invalid form.");
|
|
9921
|
-
} else {
|
|
9922
|
-
cms.dispatch({ type: "forms:set-active-form-id", value: null });
|
|
9923
|
-
}
|
|
9924
|
-
}
|
|
9925
|
-
},
|
|
9926
|
-
/* @__PURE__ */ React__namespace.createElement(BiDotsVertical, { className: "h-auto w-5 inline-block opacity-70" })
|
|
9927
|
-
), /* @__PURE__ */ React__namespace.createElement(
|
|
9928
|
-
"button",
|
|
9929
|
-
{
|
|
9930
|
-
type: "button",
|
|
9931
|
-
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
9932
|
-
onClick: () => {
|
|
9933
|
-
const collectionName = cms.api.tina.schema.getCollectionByFullPath(
|
|
9934
|
-
cms.state.activeFormId
|
|
9935
|
-
).name;
|
|
9936
|
-
window.location.href = `${new URL(window.location.href).pathname}#/collections/${collectionName}/~`;
|
|
9937
|
-
}
|
|
9938
|
-
},
|
|
9939
|
-
/* @__PURE__ */ React__namespace.createElement(BiHomeAlt, { className: "h-auto w-5 inline-block opacity-70" })
|
|
9940
|
-
), /* @__PURE__ */ React__namespace.createElement("span", { className: "opacity-30 text-sm leading-tight whitespace-nowrap flex-0" }, "/"), /* @__PURE__ */ React__namespace.createElement("span", { className: "block w-full text-sm leading-tight whitespace-nowrap truncate" }, activeForm.tinaForm.label || activeForm.tinaForm.id), /* @__PURE__ */ React__namespace.createElement(FormStatus, { pristine: formIsPristine }))
|
|
9941
|
-
);
|
|
9942
|
-
};
|
|
9943
|
-
const FormHeader = ({ activeForm }) => {
|
|
9944
|
-
const { formIsPristine } = React__namespace.useContext(SidebarContext);
|
|
9945
|
-
const cms = useCMS$1();
|
|
9946
|
-
const shortFormLabel = activeForm.tinaForm.label ? activeForm.tinaForm.label.replace(/^.*[\\\/]/, "") : false;
|
|
9947
|
-
return /* @__PURE__ */ React__namespace.createElement(
|
|
9948
|
-
"div",
|
|
9949
|
-
{
|
|
9950
|
-
className: "pt-18 pb-4 px-6 border-b border-gray-200 bg-gradient-to-t from-white to-gray-50"
|
|
9951
|
-
},
|
|
9952
|
-
/* @__PURE__ */ React__namespace.createElement("div", { className: "max-w-form mx-auto flex gap-2 justify-between items-center" }, /* @__PURE__ */ React__namespace.createElement(
|
|
9953
|
-
"button",
|
|
9954
|
-
{
|
|
9955
|
-
type: "button",
|
|
9956
|
-
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
9957
|
-
onClick: () => {
|
|
9958
|
-
const collectionName = cms.api.tina.schema.getCollectionByFullPath(
|
|
9959
|
-
cms.state.activeFormId
|
|
9960
|
-
).name;
|
|
9961
|
-
window.location.href = `${new URL(window.location.href).pathname}#/collections/${collectionName}/~`;
|
|
9962
|
-
}
|
|
9963
|
-
},
|
|
9964
|
-
/* @__PURE__ */ React__namespace.createElement(BiHomeAlt, { className: "h-auto w-5 inline-block opacity-70" })
|
|
9965
|
-
), shortFormLabel && /* @__PURE__ */ React__namespace.createElement("span", { className: "block w-full text-sm leading-tight whitespace-nowrap truncate" }, shortFormLabel), /* @__PURE__ */ React__namespace.createElement(FormStatus, { pristine: formIsPristine }))
|
|
9966
|
-
);
|
|
9967
|
-
};
|
|
9968
9714
|
function ImFilesEmpty(props) {
|
|
9969
9715
|
return GenIcon({ "tag": "svg", "attr": { "version": "1.1", "viewBox": "0 0 16 16" }, "child": [{ "tag": "path", "attr": { "d": "M14.341 5.579c-0.347-0.473-0.831-1.027-1.362-1.558s-1.085-1.015-1.558-1.362c-0.806-0.591-1.197-0.659-1.421-0.659h-5.75c-0.689 0-1.25 0.561-1.25 1.25v11.5c0 0.689 0.561 1.25 1.25 1.25h9.5c0.689 0 1.25-0.561 1.25-1.25v-7.75c0-0.224-0.068-0.615-0.659-1.421zM12.271 4.729c0.48 0.48 0.856 0.912 1.134 1.271h-2.406v-2.405c0.359 0.278 0.792 0.654 1.271 1.134v0zM14 14.75c0 0.136-0.114 0.25-0.25 0.25h-9.5c-0.136 0-0.25-0.114-0.25-0.25v-11.5c0-0.135 0.114-0.25 0.25-0.25 0 0 5.749-0 5.75 0v3.5c0 0.276 0.224 0.5 0.5 0.5h3.5v7.75z" }, "child": [] }, { "tag": "path", "attr": { "d": "M9.421 0.659c-0.806-0.591-1.197-0.659-1.421-0.659h-5.75c-0.689 0-1.25 0.561-1.25 1.25v11.5c0 0.604 0.43 1.109 1 1.225v-12.725c0-0.135 0.115-0.25 0.25-0.25h7.607c-0.151-0.124-0.297-0.238-0.437-0.341z" }, "child": [] }] })(props);
|
|
9970
9716
|
}
|
|
@@ -10207,7 +9953,7 @@ flowchart TD
|
|
|
10207
9953
|
"Event Log"
|
|
10208
9954
|
));
|
|
10209
9955
|
};
|
|
10210
|
-
const version = "2.
|
|
9956
|
+
const version = "2.7.4";
|
|
10211
9957
|
const Nav = ({
|
|
10212
9958
|
isLocalMode,
|
|
10213
9959
|
className = "",
|
|
@@ -10449,6 +10195,293 @@ flowchart TD
|
|
|
10449
10195
|
/* @__PURE__ */ React__namespace.createElement("span", { className: "absolute top-1/2 left-1/2 h-4/6 w-px bg-gray-200 transform -translate-y-1/2 -translate-x-1/2 opacity-30 transition-opacity duration-150 ease-out group-hover:opacity-100" })
|
|
10450
10196
|
);
|
|
10451
10197
|
};
|
|
10198
|
+
const Item = ({
|
|
10199
|
+
item,
|
|
10200
|
+
depth,
|
|
10201
|
+
setActiveFormId
|
|
10202
|
+
}) => {
|
|
10203
|
+
const cms = useCMS();
|
|
10204
|
+
const depths = ["pl-6", "pl-10", "pl-14"];
|
|
10205
|
+
const form = React__namespace.useMemo(
|
|
10206
|
+
() => cms.state.forms.find(({ tinaForm }) => item.formId === tinaForm.id),
|
|
10207
|
+
[item.formId]
|
|
10208
|
+
);
|
|
10209
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10210
|
+
"button",
|
|
10211
|
+
{
|
|
10212
|
+
type: "button",
|
|
10213
|
+
key: item.path,
|
|
10214
|
+
onClick: () => setActiveFormId(item.formId),
|
|
10215
|
+
className: `${depths[depth] || "pl-12"} pr-6 py-3 w-full h-full bg-transparent border-none text-lg text-gray-700 group hover:bg-gray-50 transition-all ease-out duration-150 flex items-center justify-between gap-2`
|
|
10216
|
+
},
|
|
10217
|
+
/* @__PURE__ */ React__namespace.createElement(BiEdit, { className: "opacity-70 w-5 h-auto text-blue-500 flex-none" }),
|
|
10218
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "flex-1 flex flex-col gap-0.5 items-start" }, /* @__PURE__ */ React__namespace.createElement("div", { className: "group-hover:text-blue-500 font-sans text-xs font-semibold text-gray-700 whitespace-normal" }, form.tinaForm.label), /* @__PURE__ */ React__namespace.createElement("div", { className: "group-hover:text-blue-500 text-base truncate leading-tight text-gray-600" }, form.tinaForm.id))
|
|
10219
|
+
);
|
|
10220
|
+
};
|
|
10221
|
+
const FormListItem = ({
|
|
10222
|
+
item,
|
|
10223
|
+
depth,
|
|
10224
|
+
setActiveFormId
|
|
10225
|
+
}) => {
|
|
10226
|
+
var _a;
|
|
10227
|
+
return /* @__PURE__ */ React__namespace.createElement("div", { className: "divide-y divide-gray-200" }, /* @__PURE__ */ React__namespace.createElement(Item, { setActiveFormId, item, depth }), item.subItems && /* @__PURE__ */ React__namespace.createElement("ul", { className: "divide-y divide-gray-200" }, (_a = item.subItems) == null ? void 0 : _a.map((subItem) => {
|
|
10228
|
+
if (subItem.type === "document") {
|
|
10229
|
+
return /* @__PURE__ */ React__namespace.createElement("li", { key: subItem.formId }, /* @__PURE__ */ React__namespace.createElement(
|
|
10230
|
+
Item,
|
|
10231
|
+
{
|
|
10232
|
+
setActiveFormId,
|
|
10233
|
+
depth: depth + 1,
|
|
10234
|
+
item: subItem
|
|
10235
|
+
}
|
|
10236
|
+
));
|
|
10237
|
+
}
|
|
10238
|
+
})));
|
|
10239
|
+
};
|
|
10240
|
+
const FormLists = (props) => {
|
|
10241
|
+
const cms = useCMS();
|
|
10242
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10243
|
+
react.Transition,
|
|
10244
|
+
{
|
|
10245
|
+
appear: true,
|
|
10246
|
+
show: true,
|
|
10247
|
+
as: "div",
|
|
10248
|
+
enter: "transition-all ease-out duration-150",
|
|
10249
|
+
enterFrom: "opacity-0 -translate-x-1/2",
|
|
10250
|
+
enterTo: "opacity-100",
|
|
10251
|
+
leave: "transition-all ease-out duration-150",
|
|
10252
|
+
leaveFrom: "opacity-100",
|
|
10253
|
+
leaveTo: "opacity-0 -translate-x-1/2"
|
|
10254
|
+
},
|
|
10255
|
+
cms.state.formLists.map((formList, index) => /* @__PURE__ */ React__namespace.createElement("div", { key: `${formList.id}-${index}`, className: "pt-16" }, /* @__PURE__ */ React__namespace.createElement(
|
|
10256
|
+
FormList,
|
|
10257
|
+
{
|
|
10258
|
+
isEditing: props.isEditing,
|
|
10259
|
+
setActiveFormId: (id) => {
|
|
10260
|
+
cms.dispatch({ type: "forms:set-active-form-id", value: id });
|
|
10261
|
+
},
|
|
10262
|
+
formList
|
|
10263
|
+
}
|
|
10264
|
+
)))
|
|
10265
|
+
);
|
|
10266
|
+
};
|
|
10267
|
+
const FormList = (props) => {
|
|
10268
|
+
const cms = useCMS();
|
|
10269
|
+
const listItems = React__namespace.useMemo(() => {
|
|
10270
|
+
var _a;
|
|
10271
|
+
const orderedListItems = [];
|
|
10272
|
+
const globalItems = [];
|
|
10273
|
+
const topItems = [];
|
|
10274
|
+
props.formList.items.forEach((item) => {
|
|
10275
|
+
if (item.type === "document") {
|
|
10276
|
+
const form = cms.state.forms.find(
|
|
10277
|
+
({ tinaForm }) => tinaForm.id === item.formId
|
|
10278
|
+
);
|
|
10279
|
+
if (form.tinaForm.global) {
|
|
10280
|
+
globalItems.push(item);
|
|
10281
|
+
} else {
|
|
10282
|
+
orderedListItems.push(item);
|
|
10283
|
+
}
|
|
10284
|
+
} else {
|
|
10285
|
+
orderedListItems.push(item);
|
|
10286
|
+
}
|
|
10287
|
+
});
|
|
10288
|
+
if (((_a = orderedListItems[0]) == null ? void 0 : _a.type) === "document") {
|
|
10289
|
+
topItems.push({ type: "list", label: "Documents" });
|
|
10290
|
+
}
|
|
10291
|
+
let extra = [];
|
|
10292
|
+
if (globalItems.length) {
|
|
10293
|
+
extra = [{ type: "list", label: "Global Documents" }, ...globalItems];
|
|
10294
|
+
}
|
|
10295
|
+
return [...topItems, ...orderedListItems, ...extra];
|
|
10296
|
+
}, [JSON.stringify(props.formList.items)]);
|
|
10297
|
+
return /* @__PURE__ */ React__namespace.createElement("ul", null, /* @__PURE__ */ React__namespace.createElement("li", { className: "divide-y divide-gray-200" }, listItems.map((item, index) => {
|
|
10298
|
+
if (item.type === "list") {
|
|
10299
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10300
|
+
"div",
|
|
10301
|
+
{
|
|
10302
|
+
key: item.label,
|
|
10303
|
+
className: `relative group text-left w-full bg-white shadow-sm
|
|
10304
|
+
border-gray-100 px-6 -mt-px pb-3 ${index > 0 ? "pt-6 bg-gradient-to-b from-gray-50 via-white to-white" : "pt-3"}`
|
|
10305
|
+
},
|
|
10306
|
+
/* @__PURE__ */ React__namespace.createElement(
|
|
10307
|
+
"span",
|
|
10308
|
+
{
|
|
10309
|
+
className: "text-sm tracking-wide font-bold text-gray-700 uppercase"
|
|
10310
|
+
},
|
|
10311
|
+
item.label
|
|
10312
|
+
)
|
|
10313
|
+
);
|
|
10314
|
+
}
|
|
10315
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10316
|
+
FormListItem,
|
|
10317
|
+
{
|
|
10318
|
+
setActiveFormId: (id) => props.setActiveFormId(id),
|
|
10319
|
+
key: item.formId,
|
|
10320
|
+
item,
|
|
10321
|
+
depth: 0
|
|
10322
|
+
}
|
|
10323
|
+
);
|
|
10324
|
+
})));
|
|
10325
|
+
};
|
|
10326
|
+
const SidebarNoFormsPlaceholder = () => /* @__PURE__ */ React__namespace.createElement(
|
|
10327
|
+
"div",
|
|
10328
|
+
{
|
|
10329
|
+
className: "relative flex flex-col items-center justify-center text-center p-5 pb-16 w-full h-full overflow-y-auto",
|
|
10330
|
+
style: {
|
|
10331
|
+
animationName: "fade-in",
|
|
10332
|
+
animationDelay: "300ms",
|
|
10333
|
+
animationTimingFunction: "ease-out",
|
|
10334
|
+
animationIterationCount: 1,
|
|
10335
|
+
animationFillMode: "both",
|
|
10336
|
+
animationDuration: "150ms"
|
|
10337
|
+
}
|
|
10338
|
+
},
|
|
10339
|
+
/* @__PURE__ */ React__namespace.createElement("p", { className: "block pb-5" }, "Looks like there's ", /* @__PURE__ */ React__namespace.createElement("br", null), "nothing to edit on ", /* @__PURE__ */ React__namespace.createElement("br", null), "this page."),
|
|
10340
|
+
/* @__PURE__ */ React__namespace.createElement("p", { className: "block pt-5" }, /* @__PURE__ */ React__namespace.createElement(
|
|
10341
|
+
Button$1,
|
|
10342
|
+
{
|
|
10343
|
+
href: "https://tina.io/docs/contextual-editing/overview",
|
|
10344
|
+
target: "_blank",
|
|
10345
|
+
as: "a"
|
|
10346
|
+
},
|
|
10347
|
+
/* @__PURE__ */ React__namespace.createElement(Emoji$1, { className: "mr-1.5" }, "📖"),
|
|
10348
|
+
" Contextual Editing Docs"
|
|
10349
|
+
))
|
|
10350
|
+
);
|
|
10351
|
+
const Emoji$1 = ({ className = "", ...props }) => /* @__PURE__ */ React__namespace.createElement(
|
|
10352
|
+
"span",
|
|
10353
|
+
{
|
|
10354
|
+
className: `text-[24px] leading-none inline-block ${className}`,
|
|
10355
|
+
...props
|
|
10356
|
+
}
|
|
10357
|
+
);
|
|
10358
|
+
const minimumTimeToShowLoadingIndicator = 1e3;
|
|
10359
|
+
const FormsView = ({ loadingPlaceholder } = {}) => {
|
|
10360
|
+
const cms = useCMS$1();
|
|
10361
|
+
const { setFormIsPristine } = React__namespace.useContext(SidebarContext);
|
|
10362
|
+
const [isShowingLoading, setIsShowingLoading] = React__namespace.useState(true);
|
|
10363
|
+
const [initialLoadComplete, setInitialLoadComplete] = React__namespace.useState(false);
|
|
10364
|
+
React__namespace.useEffect(() => {
|
|
10365
|
+
if (cms.state.isLoadingContent) {
|
|
10366
|
+
setIsShowingLoading(true);
|
|
10367
|
+
const timer = setTimeout(() => {
|
|
10368
|
+
if (!cms.state.isLoadingContent) {
|
|
10369
|
+
setIsShowingLoading(false);
|
|
10370
|
+
setInitialLoadComplete(true);
|
|
10371
|
+
}
|
|
10372
|
+
}, minimumTimeToShowLoadingIndicator);
|
|
10373
|
+
return () => clearTimeout(timer);
|
|
10374
|
+
} else {
|
|
10375
|
+
const timer = setTimeout(() => {
|
|
10376
|
+
setIsShowingLoading(false);
|
|
10377
|
+
setInitialLoadComplete(true);
|
|
10378
|
+
}, minimumTimeToShowLoadingIndicator);
|
|
10379
|
+
return () => clearTimeout(timer);
|
|
10380
|
+
}
|
|
10381
|
+
}, [cms.state.isLoadingContent]);
|
|
10382
|
+
if (isShowingLoading || !initialLoadComplete) {
|
|
10383
|
+
const LoadingPlaceholder = loadingPlaceholder || SidebarLoadingPlaceholder;
|
|
10384
|
+
return /* @__PURE__ */ React__namespace.createElement(LoadingPlaceholder, null);
|
|
10385
|
+
}
|
|
10386
|
+
if (!cms.state.formLists.length) {
|
|
10387
|
+
return /* @__PURE__ */ React__namespace.createElement(SidebarNoFormsPlaceholder, null);
|
|
10388
|
+
}
|
|
10389
|
+
const isMultiform = cms.state.forms.length > 1;
|
|
10390
|
+
const activeForm = cms.state.forms.find(
|
|
10391
|
+
({ tinaForm }) => tinaForm.id === cms.state.activeFormId
|
|
10392
|
+
);
|
|
10393
|
+
const isEditing = !!activeForm;
|
|
10394
|
+
if (isMultiform && !activeForm) {
|
|
10395
|
+
return /* @__PURE__ */ React__namespace.createElement(FormLists, { isEditing });
|
|
10396
|
+
}
|
|
10397
|
+
const formMetas = cms.plugins.all("form:meta");
|
|
10398
|
+
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, activeForm && /* @__PURE__ */ React__namespace.createElement(FormWrapper$1, { isEditing, isMultiform }, isMultiform && /* @__PURE__ */ React__namespace.createElement(MultiformFormHeader, { activeForm }), !isMultiform && /* @__PURE__ */ React__namespace.createElement(FormHeader, { activeForm }), formMetas == null ? void 0 : formMetas.map((meta) => /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, { key: meta.name }, /* @__PURE__ */ React__namespace.createElement(meta.Component, null))), /* @__PURE__ */ React__namespace.createElement(FormBuilder, { form: activeForm, onPristineChange: setFormIsPristine })));
|
|
10399
|
+
};
|
|
10400
|
+
const FormWrapper$1 = ({ isEditing, children }) => {
|
|
10401
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10402
|
+
"div",
|
|
10403
|
+
{
|
|
10404
|
+
className: "flex-1 flex flex-col flex-nowrap overflow-hidden h-full w-full relative bg-white",
|
|
10405
|
+
style: isEditing ? {
|
|
10406
|
+
transform: "none",
|
|
10407
|
+
animationName: "fly-in-left",
|
|
10408
|
+
animationDuration: "150ms",
|
|
10409
|
+
animationDelay: "0",
|
|
10410
|
+
animationIterationCount: 1,
|
|
10411
|
+
animationTimingFunction: "ease-out"
|
|
10412
|
+
} : {
|
|
10413
|
+
transform: "translate3d(100%, 0, 0)"
|
|
10414
|
+
}
|
|
10415
|
+
},
|
|
10416
|
+
children
|
|
10417
|
+
);
|
|
10418
|
+
};
|
|
10419
|
+
const MultiformFormHeader = ({
|
|
10420
|
+
activeForm
|
|
10421
|
+
}) => {
|
|
10422
|
+
const cms = useCMS$1();
|
|
10423
|
+
const { formIsPristine } = React__namespace.useContext(SidebarContext);
|
|
10424
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10425
|
+
"div",
|
|
10426
|
+
{
|
|
10427
|
+
className: "pt-18 pb-4 px-6 border-b border-gray-200 bg-gradient-to-t from-white to-gray-50"
|
|
10428
|
+
},
|
|
10429
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "max-w-form mx-auto flex gap-2 justify-between items-center" }, /* @__PURE__ */ React__namespace.createElement(
|
|
10430
|
+
"button",
|
|
10431
|
+
{
|
|
10432
|
+
type: "button",
|
|
10433
|
+
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
10434
|
+
onClick: () => {
|
|
10435
|
+
const state = activeForm.tinaForm.finalForm.getState();
|
|
10436
|
+
if (state.invalid === true) {
|
|
10437
|
+
cms.alerts.error("Cannot navigate away from an invalid form.");
|
|
10438
|
+
} else {
|
|
10439
|
+
cms.dispatch({ type: "forms:set-active-form-id", value: null });
|
|
10440
|
+
}
|
|
10441
|
+
}
|
|
10442
|
+
},
|
|
10443
|
+
/* @__PURE__ */ React__namespace.createElement(BiDotsVertical, { className: "h-auto w-5 inline-block opacity-70" })
|
|
10444
|
+
), /* @__PURE__ */ React__namespace.createElement(
|
|
10445
|
+
"button",
|
|
10446
|
+
{
|
|
10447
|
+
type: "button",
|
|
10448
|
+
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
10449
|
+
onClick: () => {
|
|
10450
|
+
const collectionName = cms.api.tina.schema.getCollectionByFullPath(
|
|
10451
|
+
cms.state.activeFormId
|
|
10452
|
+
).name;
|
|
10453
|
+
window.location.href = `${new URL(window.location.href).pathname}#/collections/${collectionName}/~`;
|
|
10454
|
+
}
|
|
10455
|
+
},
|
|
10456
|
+
/* @__PURE__ */ React__namespace.createElement(BiHomeAlt, { className: "h-auto w-5 inline-block opacity-70" })
|
|
10457
|
+
), /* @__PURE__ */ React__namespace.createElement("span", { className: "opacity-30 text-sm leading-tight whitespace-nowrap flex-0" }, "/"), /* @__PURE__ */ React__namespace.createElement("span", { className: "block w-full text-sm leading-tight whitespace-nowrap truncate" }, activeForm.tinaForm.label || activeForm.tinaForm.id), /* @__PURE__ */ React__namespace.createElement(FormStatus, { pristine: formIsPristine }))
|
|
10458
|
+
);
|
|
10459
|
+
};
|
|
10460
|
+
const FormHeader = ({ activeForm }) => {
|
|
10461
|
+
const { formIsPristine } = React__namespace.useContext(SidebarContext);
|
|
10462
|
+
const cms = useCMS$1();
|
|
10463
|
+
const shortFormLabel = activeForm.tinaForm.label ? activeForm.tinaForm.label.replace(/^.*[\\\/]/, "") : false;
|
|
10464
|
+
return /* @__PURE__ */ React__namespace.createElement(
|
|
10465
|
+
"div",
|
|
10466
|
+
{
|
|
10467
|
+
className: "pt-18 pb-4 px-6 border-b border-gray-200 bg-gradient-to-t from-white to-gray-50"
|
|
10468
|
+
},
|
|
10469
|
+
/* @__PURE__ */ React__namespace.createElement("div", { className: "max-w-form mx-auto flex gap-2 justify-between items-center" }, /* @__PURE__ */ React__namespace.createElement(
|
|
10470
|
+
"button",
|
|
10471
|
+
{
|
|
10472
|
+
type: "button",
|
|
10473
|
+
className: "pointer-events-auto text-xs text-blue-400 hover:text-blue-500 hover:underline transition-all ease-out duration-150",
|
|
10474
|
+
onClick: () => {
|
|
10475
|
+
const collectionName = cms.api.tina.schema.getCollectionByFullPath(
|
|
10476
|
+
cms.state.activeFormId
|
|
10477
|
+
).name;
|
|
10478
|
+
window.location.href = `${new URL(window.location.href).pathname}#/collections/${collectionName}/~`;
|
|
10479
|
+
}
|
|
10480
|
+
},
|
|
10481
|
+
/* @__PURE__ */ React__namespace.createElement(BiHomeAlt, { className: "h-auto w-5 inline-block opacity-70" })
|
|
10482
|
+
), shortFormLabel && /* @__PURE__ */ React__namespace.createElement("span", { className: "block w-full text-sm leading-tight whitespace-nowrap truncate" }, shortFormLabel), /* @__PURE__ */ React__namespace.createElement(FormStatus, { pristine: formIsPristine }))
|
|
10483
|
+
);
|
|
10484
|
+
};
|
|
10452
10485
|
const SidebarContext = React__namespace.createContext(null);
|
|
10453
10486
|
const minPreviewWidth = 440;
|
|
10454
10487
|
const minSidebarWidth = 360;
|
|
@@ -10667,7 +10700,7 @@ flowchart TD
|
|
|
10667
10700
|
isLocalMode: (_d = (_c = cms.api) == null ? void 0 : _c.tina) == null ? void 0 : _d.isLocalMode,
|
|
10668
10701
|
branchingEnabled
|
|
10669
10702
|
}
|
|
10670
|
-
), /* @__PURE__ */ React__namespace.createElement(FormsView,
|
|
10703
|
+
), /* @__PURE__ */ React__namespace.createElement(FormsView, { loadingPlaceholder: sidebar.loadingPlaceholder }), activeScreen && /* @__PURE__ */ React__namespace.createElement(
|
|
10671
10704
|
ScreenPluginModal,
|
|
10672
10705
|
{
|
|
10673
10706
|
screen: activeScreen,
|
|
@@ -10843,7 +10876,7 @@ flowchart TD
|
|
|
10843
10876
|
className: "h-5 w-auto -mx-1 text-blue-500",
|
|
10844
10877
|
stroke: "currentColor",
|
|
10845
10878
|
fill: "currentColor",
|
|
10846
|
-
|
|
10879
|
+
strokeWidth: "0",
|
|
10847
10880
|
viewBox: "0 0 24 24",
|
|
10848
10881
|
xmlns: "http://www.w3.org/2000/svg"
|
|
10849
10882
|
},
|
|
@@ -11433,7 +11466,10 @@ flowchart TD
|
|
|
11433
11466
|
const observer = new IntersectionObserver((entries) => {
|
|
11434
11467
|
const target = entries[0];
|
|
11435
11468
|
if (target.isIntersecting && list.nextOffset) {
|
|
11436
|
-
setOffsetHistory((offsetHistory2) => [
|
|
11469
|
+
setOffsetHistory((offsetHistory2) => [
|
|
11470
|
+
...offsetHistory2,
|
|
11471
|
+
list.nextOffset
|
|
11472
|
+
]);
|
|
11437
11473
|
}
|
|
11438
11474
|
});
|
|
11439
11475
|
if (loaderRef.current) {
|
|
@@ -12028,6 +12064,7 @@ flowchart TD
|
|
|
12028
12064
|
forms: [],
|
|
12029
12065
|
formLists: [],
|
|
12030
12066
|
editingMode: "basic",
|
|
12067
|
+
isLoadingContent: false,
|
|
12031
12068
|
quickEditSupported: false,
|
|
12032
12069
|
sidebarDisplayState: ((_a = cms == null ? void 0 : cms.sidebar) == null ? void 0 : _a.defaultState) || "open"
|
|
12033
12070
|
};
|
|
@@ -12087,7 +12124,12 @@ flowchart TD
|
|
|
12087
12124
|
}
|
|
12088
12125
|
});
|
|
12089
12126
|
}
|
|
12090
|
-
return {
|
|
12127
|
+
return {
|
|
12128
|
+
...state,
|
|
12129
|
+
activeFormId,
|
|
12130
|
+
formLists: nextFormLists,
|
|
12131
|
+
isLoadingContent: false
|
|
12132
|
+
};
|
|
12091
12133
|
}
|
|
12092
12134
|
case "form-lists:remove": {
|
|
12093
12135
|
const nextFormLists = state.formLists.filter(
|
|
@@ -12156,6 +12198,9 @@ flowchart TD
|
|
|
12156
12198
|
}
|
|
12157
12199
|
return { ...state, sidebarDisplayState: action.value };
|
|
12158
12200
|
}
|
|
12201
|
+
case "sidebar:set-loading-state": {
|
|
12202
|
+
return { ...state, isLoadingContent: action.value };
|
|
12203
|
+
}
|
|
12159
12204
|
default:
|
|
12160
12205
|
throw new Error(`Unhandled action ${action.type}`);
|
|
12161
12206
|
}
|
|
@@ -12397,7 +12442,9 @@ flowchart TD
|
|
|
12397
12442
|
if (activeEle) {
|
|
12398
12443
|
setDisplay(true);
|
|
12399
12444
|
setPosition(activeEle.getBoundingClientRect());
|
|
12400
|
-
const iframe = document.getElementById(
|
|
12445
|
+
const iframe = document.getElementById(
|
|
12446
|
+
"tina-iframe"
|
|
12447
|
+
);
|
|
12401
12448
|
if (iframe) {
|
|
12402
12449
|
setIframePosition(iframe.getBoundingClientRect());
|
|
12403
12450
|
}
|
|
@@ -12839,7 +12886,6 @@ flowchart TD
|
|
|
12839
12886
|
}) => {
|
|
12840
12887
|
const cms = useCMS$1();
|
|
12841
12888
|
const tinaApi = cms.api.tina;
|
|
12842
|
-
tinaApi.branch;
|
|
12843
12889
|
const [disabled, setDisabled] = React__namespace.useState(false);
|
|
12844
12890
|
const [newBranchName, setNewBranchName] = React__namespace.useState("");
|
|
12845
12891
|
const [error, setError] = React__namespace.useState("");
|
|
@@ -12865,10 +12911,10 @@ flowchart TD
|
|
|
12865
12911
|
const newUrl = window.location.href.replace(hash, newHash);
|
|
12866
12912
|
window.location.href = newUrl;
|
|
12867
12913
|
};
|
|
12868
|
-
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-
|
|
12914
|
+
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(
|
|
12869
12915
|
PrefixedTextField,
|
|
12870
12916
|
{
|
|
12871
|
-
placeholder: "
|
|
12917
|
+
placeholder: "e.g. {{PAGE-NAME}}-updates",
|
|
12872
12918
|
value: newBranchName,
|
|
12873
12919
|
onChange: (e) => {
|
|
12874
12920
|
setError("");
|
|
@@ -13015,7 +13061,9 @@ flowchart TD
|
|
|
13015
13061
|
const { fieldName } = useTemplates();
|
|
13016
13062
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13017
13063
|
useHotkey("enter", () => {
|
|
13018
|
-
plateCommon.insertNodes(editor, [
|
|
13064
|
+
plateCommon.insertNodes(editor, [
|
|
13065
|
+
{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13066
|
+
]);
|
|
13019
13067
|
});
|
|
13020
13068
|
return /* @__PURE__ */ React.createElement("span", { ...attributes, className: "" }, children, element.url ? /* @__PURE__ */ React.createElement(
|
|
13021
13069
|
"div",
|
|
@@ -13158,7 +13206,9 @@ flowchart TD
|
|
|
13158
13206
|
const { templates, fieldName } = useTemplates();
|
|
13159
13207
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13160
13208
|
useHotkey("enter", () => {
|
|
13161
|
-
plateCommon.insertNodes(editor, [
|
|
13209
|
+
plateCommon.insertNodes(editor, [
|
|
13210
|
+
{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13211
|
+
]);
|
|
13162
13212
|
});
|
|
13163
13213
|
useHotkey("space", () => {
|
|
13164
13214
|
plateCommon.insertNodes(editor, [{ text: " " }], {
|
|
@@ -13214,7 +13264,9 @@ flowchart TD
|
|
|
13214
13264
|
const { templates, fieldName } = useTemplates();
|
|
13215
13265
|
const { handleClose, handleRemove, handleSelect, isExpanded } = useEmbedHandles(editor, element, fieldName);
|
|
13216
13266
|
useHotkey("enter", () => {
|
|
13217
|
-
plateCommon.insertNodes(editor, [
|
|
13267
|
+
plateCommon.insertNodes(editor, [
|
|
13268
|
+
{ type: plate.ELEMENT_PARAGRAPH, children: [{ text: "" }] }
|
|
13269
|
+
]);
|
|
13218
13270
|
});
|
|
13219
13271
|
const activeTemplate = templates.find(
|
|
13220
13272
|
(template) => template.name === element.name
|
|
@@ -13560,6 +13612,11 @@ flowchart TD
|
|
|
13560
13612
|
mode: "mark",
|
|
13561
13613
|
type: plate.MARK_CODE,
|
|
13562
13614
|
match: "`"
|
|
13615
|
+
},
|
|
13616
|
+
{
|
|
13617
|
+
mode: "mark",
|
|
13618
|
+
type: plate.MARK_STRIKETHROUGH,
|
|
13619
|
+
match: ["~~", "~"]
|
|
13563
13620
|
}
|
|
13564
13621
|
];
|
|
13565
13622
|
const autoformatRules = [
|
|
@@ -13701,16 +13758,14 @@ flowchart TD
|
|
|
13701
13758
|
})
|
|
13702
13759
|
];
|
|
13703
13760
|
const plugins = [
|
|
13761
|
+
plate.createBasicMarksPlugin(),
|
|
13704
13762
|
plate.createHeadingPlugin(),
|
|
13705
13763
|
plate.createParagraphPlugin(),
|
|
13706
13764
|
createCodeBlockPlugin(),
|
|
13707
13765
|
createHTMLBlockPlugin(),
|
|
13708
13766
|
createHTMLInlinePlugin(),
|
|
13709
13767
|
plate.createBlockquotePlugin(),
|
|
13710
|
-
plate.createBoldPlugin(),
|
|
13711
|
-
plate.createItalicPlugin(),
|
|
13712
13768
|
plate.createUnderlinePlugin(),
|
|
13713
|
-
plate.createCodePlugin(),
|
|
13714
13769
|
plate.createListPlugin(),
|
|
13715
13770
|
plate.createIndentListPlugin(),
|
|
13716
13771
|
plate.createHorizontalRulePlugin(),
|
|
@@ -14070,7 +14125,9 @@ flowchart TD
|
|
|
14070
14125
|
const CONTAINER_MD_BREAKPOINT = 448;
|
|
14071
14126
|
const FLOAT_BUTTON_WIDTH = 25;
|
|
14072
14127
|
const HEADING_LABEL = "Headings";
|
|
14073
|
-
const ToolbarContext = React.createContext(
|
|
14128
|
+
const ToolbarContext = React.createContext(
|
|
14129
|
+
void 0
|
|
14130
|
+
);
|
|
14074
14131
|
const ToolbarProvider = ({
|
|
14075
14132
|
tinaForm,
|
|
14076
14133
|
templates,
|
|
@@ -14220,7 +14277,7 @@ flowchart TD
|
|
|
14220
14277
|
const CodeBlockToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
|
|
14221
14278
|
const state = useCodeBlockToolbarButtonState();
|
|
14222
14279
|
const { props } = useCodeBlockToolbarButton(state);
|
|
14223
|
-
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "
|
|
14280
|
+
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Code Block", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.codeBlock, null));
|
|
14224
14281
|
});
|
|
14225
14282
|
const useImageToolbarButtonState = () => {
|
|
14226
14283
|
const editor = plateCommon.useEditorState();
|
|
@@ -14252,36 +14309,54 @@ flowchart TD
|
|
|
14252
14309
|
const ImageToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
|
|
14253
14310
|
const state = useImageToolbarButtonState();
|
|
14254
14311
|
const { props } = useImageToolbarButton(state);
|
|
14255
|
-
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "
|
|
14256
|
-
});
|
|
14257
|
-
const IndentListToolbarButton = cn$1.withRef(({ nodeType = plate.ELEMENT_UL }, ref) => {
|
|
14258
|
-
const editor = plateCommon.useEditorState();
|
|
14259
|
-
const state = plate.useListToolbarButtonState({ nodeType });
|
|
14260
|
-
const { props } = plate.useListToolbarButton(state);
|
|
14261
|
-
return /* @__PURE__ */ React.createElement(
|
|
14262
|
-
ToolbarButton,
|
|
14263
|
-
{
|
|
14264
|
-
ref,
|
|
14265
|
-
tooltip: nodeType === plate.ELEMENT_UL ? "Bulleted List" : "Numbered List",
|
|
14266
|
-
...props,
|
|
14267
|
-
onClick: (e) => {
|
|
14268
|
-
e.preventDefault();
|
|
14269
|
-
e.stopPropagation();
|
|
14270
|
-
plate.toggleList(editor, { type: nodeType });
|
|
14271
|
-
}
|
|
14272
|
-
},
|
|
14273
|
-
nodeType === plate.ELEMENT_UL ? /* @__PURE__ */ React.createElement(Icons.ul, null) : /* @__PURE__ */ React.createElement(Icons.ol, null)
|
|
14274
|
-
);
|
|
14312
|
+
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Image", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.image, null));
|
|
14275
14313
|
});
|
|
14314
|
+
const UnorderedListToolbarButton = cn$1.withRef(
|
|
14315
|
+
(props, ref) => {
|
|
14316
|
+
const editor = plateCommon.useEditorState();
|
|
14317
|
+
const state = plate.useListToolbarButtonState({ nodeType: plate.ELEMENT_UL });
|
|
14318
|
+
const { props: buttonProps } = plate.useListToolbarButton(state);
|
|
14319
|
+
return /* @__PURE__ */ React.createElement(
|
|
14320
|
+
ToolbarButton,
|
|
14321
|
+
{
|
|
14322
|
+
ref,
|
|
14323
|
+
tooltip: "Bulleted List",
|
|
14324
|
+
...buttonProps,
|
|
14325
|
+
onClick: (e) => {
|
|
14326
|
+
e.preventDefault();
|
|
14327
|
+
e.stopPropagation();
|
|
14328
|
+
plate.toggleList(editor, { type: plate.ELEMENT_UL });
|
|
14329
|
+
}
|
|
14330
|
+
},
|
|
14331
|
+
/* @__PURE__ */ React.createElement(Icons.ul, null)
|
|
14332
|
+
);
|
|
14333
|
+
}
|
|
14334
|
+
);
|
|
14335
|
+
const OrderedListToolbarButton = cn$1.withRef(
|
|
14336
|
+
(props, ref) => {
|
|
14337
|
+
const editor = plateCommon.useEditorState();
|
|
14338
|
+
const state = plate.useListToolbarButtonState({ nodeType: plate.ELEMENT_OL });
|
|
14339
|
+
const { props: buttonProps } = plate.useListToolbarButton(state);
|
|
14340
|
+
return /* @__PURE__ */ React.createElement(
|
|
14341
|
+
ToolbarButton,
|
|
14342
|
+
{
|
|
14343
|
+
ref,
|
|
14344
|
+
tooltip: "Numbered List",
|
|
14345
|
+
...buttonProps,
|
|
14346
|
+
onClick: (e) => {
|
|
14347
|
+
e.preventDefault();
|
|
14348
|
+
e.stopPropagation();
|
|
14349
|
+
plate.toggleList(editor, { type: plate.ELEMENT_OL });
|
|
14350
|
+
}
|
|
14351
|
+
},
|
|
14352
|
+
/* @__PURE__ */ React.createElement(Icons.ol, null)
|
|
14353
|
+
);
|
|
14354
|
+
}
|
|
14355
|
+
);
|
|
14276
14356
|
const LinkToolbarButton = cn$1.withRef((rest, ref) => {
|
|
14277
14357
|
const state = plateLink.useLinkToolbarButtonState();
|
|
14278
14358
|
const { props } = plateLink.useLinkToolbarButton(state);
|
|
14279
|
-
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Link"
|
|
14280
|
-
});
|
|
14281
|
-
const MarkToolbarButton = cn$1.withRef(({ clear, nodeType, ...rest }, ref) => {
|
|
14282
|
-
const state = plateCommon.useMarkToolbarButtonState({ clear, nodeType });
|
|
14283
|
-
const { props } = plateCommon.useMarkToolbarButton(state);
|
|
14284
|
-
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest });
|
|
14359
|
+
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest, tooltip: "Link" }, /* @__PURE__ */ React.createElement(Icons.link, null));
|
|
14285
14360
|
});
|
|
14286
14361
|
const useMermaidToolbarButtonState = () => {
|
|
14287
14362
|
const editor = plateCommon.useEditorState();
|
|
@@ -14362,7 +14437,7 @@ flowchart TD
|
|
|
14362
14437
|
const QuoteToolbarButton = cn$1.withRef(({ clear, ...rest }, ref) => {
|
|
14363
14438
|
const state = useBlockQuoteToolbarButtonState();
|
|
14364
14439
|
const { props } = useBlockQuoteToolbarButton(state);
|
|
14365
|
-
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "
|
|
14440
|
+
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, tooltip: "Quote (⌘+⇧+.)", ...rest, ...props }, /* @__PURE__ */ React.createElement(Icons.quote, null));
|
|
14366
14441
|
});
|
|
14367
14442
|
const useRawMarkdownToolbarButton = () => {
|
|
14368
14443
|
const { setRawMode } = useEditorContext();
|
|
@@ -14382,7 +14457,7 @@ flowchart TD
|
|
|
14382
14457
|
ToolbarButton,
|
|
14383
14458
|
{
|
|
14384
14459
|
ref,
|
|
14385
|
-
tooltip: "
|
|
14460
|
+
tooltip: "Raw Markdown",
|
|
14386
14461
|
...rest,
|
|
14387
14462
|
...props,
|
|
14388
14463
|
"data-testid": "markdown-button"
|
|
@@ -14527,7 +14602,7 @@ flowchart TD
|
|
|
14527
14602
|
key: template.name,
|
|
14528
14603
|
onMouseDown: (e) => {
|
|
14529
14604
|
e.preventDefault();
|
|
14530
|
-
|
|
14605
|
+
setOpen(false);
|
|
14531
14606
|
insertMDX(editor, template);
|
|
14532
14607
|
},
|
|
14533
14608
|
className: ""
|
|
@@ -14535,6 +14610,15 @@ flowchart TD
|
|
|
14535
14610
|
template.label || template.name
|
|
14536
14611
|
))));
|
|
14537
14612
|
};
|
|
14613
|
+
const MarkToolbarButton = cn$1.withRef(({ clear, nodeType, ...rest }, ref) => {
|
|
14614
|
+
const state = plateCommon.useMarkToolbarButtonState({ clear, nodeType });
|
|
14615
|
+
const { props } = plateCommon.useMarkToolbarButton(state);
|
|
14616
|
+
return /* @__PURE__ */ React.createElement(ToolbarButton, { ref, ...props, ...rest });
|
|
14617
|
+
});
|
|
14618
|
+
const BoldToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Bold (⌘+B)", nodeType: plate.MARK_BOLD }, /* @__PURE__ */ React.createElement(Icons.bold, null));
|
|
14619
|
+
const StrikethroughToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Strikethrough", nodeType: plate.MARK_STRIKETHROUGH }, /* @__PURE__ */ React.createElement(Icons.strikethrough, null));
|
|
14620
|
+
const ItalicToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Italic (⌘+I)", nodeType: plate.MARK_ITALIC }, /* @__PURE__ */ React.createElement(Icons.italic, null));
|
|
14621
|
+
const CodeToolbarButton = () => /* @__PURE__ */ React.createElement(MarkToolbarButton, { tooltip: "Code (⌘+E)", nodeType: plate.MARK_CODE }, /* @__PURE__ */ React.createElement(Icons.code, null));
|
|
14538
14622
|
const toolbarItems = {
|
|
14539
14623
|
heading: {
|
|
14540
14624
|
label: HEADING_LABEL,
|
|
@@ -14555,32 +14639,37 @@ flowchart TD
|
|
|
14555
14639
|
quote: {
|
|
14556
14640
|
label: "Quote",
|
|
14557
14641
|
width: () => STANDARD_ICON_WIDTH,
|
|
14558
|
-
Component: /* @__PURE__ */ React.createElement(QuoteToolbarButton,
|
|
14642
|
+
Component: /* @__PURE__ */ React.createElement(QuoteToolbarButton, null)
|
|
14559
14643
|
},
|
|
14560
14644
|
ul: {
|
|
14561
14645
|
label: "Unordered List",
|
|
14562
14646
|
width: () => STANDARD_ICON_WIDTH,
|
|
14563
|
-
Component: /* @__PURE__ */ React.createElement(
|
|
14647
|
+
Component: /* @__PURE__ */ React.createElement(UnorderedListToolbarButton, null)
|
|
14564
14648
|
},
|
|
14565
14649
|
ol: {
|
|
14566
14650
|
label: "Ordered List",
|
|
14567
14651
|
width: () => STANDARD_ICON_WIDTH,
|
|
14568
|
-
Component: /* @__PURE__ */ React.createElement(
|
|
14652
|
+
Component: /* @__PURE__ */ React.createElement(OrderedListToolbarButton, null)
|
|
14569
14653
|
},
|
|
14570
14654
|
bold: {
|
|
14571
14655
|
label: "Bold",
|
|
14572
14656
|
width: () => STANDARD_ICON_WIDTH,
|
|
14573
|
-
Component: /* @__PURE__ */ React.createElement(
|
|
14657
|
+
Component: /* @__PURE__ */ React.createElement(BoldToolbarButton, null)
|
|
14658
|
+
},
|
|
14659
|
+
strikethrough: {
|
|
14660
|
+
label: "Strikethrough",
|
|
14661
|
+
width: () => STANDARD_ICON_WIDTH,
|
|
14662
|
+
Component: /* @__PURE__ */ React.createElement(StrikethroughToolbarButton, null)
|
|
14574
14663
|
},
|
|
14575
14664
|
italic: {
|
|
14576
14665
|
label: "Italic",
|
|
14577
14666
|
width: () => STANDARD_ICON_WIDTH,
|
|
14578
|
-
Component: /* @__PURE__ */ React.createElement(
|
|
14667
|
+
Component: /* @__PURE__ */ React.createElement(ItalicToolbarButton, null)
|
|
14579
14668
|
},
|
|
14580
14669
|
code: {
|
|
14581
14670
|
label: "Code",
|
|
14582
14671
|
width: () => STANDARD_ICON_WIDTH,
|
|
14583
|
-
Component: /* @__PURE__ */ React.createElement(
|
|
14672
|
+
Component: /* @__PURE__ */ React.createElement(CodeToolbarButton, null)
|
|
14584
14673
|
},
|
|
14585
14674
|
codeBlock: {
|
|
14586
14675
|
label: "Code Block",
|
|
@@ -16229,132 +16318,1209 @@ flowchart TD
|
|
|
16229
16318
|
"হয়"
|
|
16230
16319
|
];
|
|
16231
16320
|
const bre = [
|
|
16321
|
+
"'blam",
|
|
16322
|
+
"'d",
|
|
16323
|
+
"'m",
|
|
16324
|
+
"'r",
|
|
16325
|
+
"'ta",
|
|
16326
|
+
"'vat",
|
|
16327
|
+
"'z",
|
|
16328
|
+
"'zo",
|
|
16232
16329
|
"a",
|
|
16233
|
-
"
|
|
16234
|
-
"
|
|
16235
|
-
"
|
|
16236
|
-
"
|
|
16237
|
-
"
|
|
16238
|
-
"
|
|
16239
|
-
"
|
|
16240
|
-
"
|
|
16241
|
-
"
|
|
16242
|
-
"
|
|
16243
|
-
"
|
|
16244
|
-
"
|
|
16245
|
-
"
|
|
16246
|
-
"
|
|
16247
|
-
"
|
|
16248
|
-
"
|
|
16249
|
-
"
|
|
16250
|
-
"
|
|
16251
|
-
"
|
|
16252
|
-
"
|
|
16253
|
-
"
|
|
16330
|
+
"a:",
|
|
16331
|
+
"aba",
|
|
16332
|
+
"abalamour",
|
|
16333
|
+
"abaoe",
|
|
16334
|
+
"ac'hane",
|
|
16335
|
+
"ac'hanoc'h",
|
|
16336
|
+
"ac'hanomp",
|
|
16337
|
+
"ac'hanon",
|
|
16338
|
+
"ac'hanout",
|
|
16339
|
+
"adal",
|
|
16340
|
+
"adalek",
|
|
16341
|
+
"adarre",
|
|
16342
|
+
"ae",
|
|
16343
|
+
"aec'h",
|
|
16344
|
+
"aed",
|
|
16345
|
+
"aemp",
|
|
16346
|
+
"aen",
|
|
16347
|
+
"aent",
|
|
16348
|
+
"aes",
|
|
16349
|
+
"afe",
|
|
16350
|
+
"afec'h",
|
|
16351
|
+
"afed",
|
|
16352
|
+
"afemp",
|
|
16353
|
+
"afen",
|
|
16354
|
+
"afent",
|
|
16355
|
+
"afes",
|
|
16356
|
+
"ag",
|
|
16357
|
+
"ah",
|
|
16358
|
+
"aimp",
|
|
16359
|
+
"aint",
|
|
16360
|
+
"aio",
|
|
16361
|
+
"aiou",
|
|
16362
|
+
"aje",
|
|
16363
|
+
"ajec'h",
|
|
16364
|
+
"ajed",
|
|
16365
|
+
"ajemp",
|
|
16366
|
+
"ajen",
|
|
16367
|
+
"ajent",
|
|
16368
|
+
"ajes",
|
|
16369
|
+
"al",
|
|
16370
|
+
"alato",
|
|
16371
|
+
"alies",
|
|
16372
|
+
"aliesañ",
|
|
16373
|
+
"alkent",
|
|
16374
|
+
"all",
|
|
16375
|
+
"allas",
|
|
16376
|
+
"allo",
|
|
16377
|
+
"allô",
|
|
16378
|
+
"am",
|
|
16379
|
+
"amañ",
|
|
16380
|
+
"amzer",
|
|
16381
|
+
"an",
|
|
16382
|
+
"anezhañ",
|
|
16383
|
+
"anezhe",
|
|
16384
|
+
"anezhi",
|
|
16385
|
+
"anezho",
|
|
16386
|
+
"anvet",
|
|
16387
|
+
"aon",
|
|
16388
|
+
"aotren",
|
|
16389
|
+
"ar",
|
|
16390
|
+
"arall",
|
|
16391
|
+
"araok",
|
|
16392
|
+
"araoki",
|
|
16393
|
+
"araozañ",
|
|
16394
|
+
"araozo",
|
|
16395
|
+
"araozoc'h",
|
|
16396
|
+
"araozomp",
|
|
16397
|
+
"araozon",
|
|
16398
|
+
"araozor",
|
|
16399
|
+
"araozout",
|
|
16400
|
+
"arbenn",
|
|
16401
|
+
"arre",
|
|
16402
|
+
"atalek",
|
|
16403
|
+
"atav",
|
|
16404
|
+
"az",
|
|
16405
|
+
"azalek",
|
|
16406
|
+
"azirazañ",
|
|
16407
|
+
"azirazi",
|
|
16408
|
+
"azirazo",
|
|
16409
|
+
"azirazoc'h",
|
|
16410
|
+
"azirazomp",
|
|
16411
|
+
"azirazon",
|
|
16412
|
+
"azirazor",
|
|
16413
|
+
"azirazout",
|
|
16414
|
+
"b:",
|
|
16415
|
+
"ba",
|
|
16416
|
+
"ba'l",
|
|
16417
|
+
"ba'n",
|
|
16418
|
+
"ba'r",
|
|
16419
|
+
"bad",
|
|
16420
|
+
"bah",
|
|
16421
|
+
"bal",
|
|
16422
|
+
"ban",
|
|
16423
|
+
"bar",
|
|
16424
|
+
"bastañ",
|
|
16425
|
+
"befe",
|
|
16426
|
+
"bell",
|
|
16427
|
+
"benaos",
|
|
16428
|
+
"benn",
|
|
16429
|
+
"bennag",
|
|
16430
|
+
"bennak",
|
|
16431
|
+
"bennozh",
|
|
16432
|
+
"bep",
|
|
16433
|
+
"bepred",
|
|
16434
|
+
"berr",
|
|
16435
|
+
"berzh",
|
|
16436
|
+
"bet",
|
|
16437
|
+
"betek",
|
|
16438
|
+
"betra",
|
|
16439
|
+
"bev",
|
|
16440
|
+
"bevet",
|
|
16441
|
+
"bez",
|
|
16442
|
+
"bezañ",
|
|
16443
|
+
"beze",
|
|
16444
|
+
"bezent",
|
|
16445
|
+
"bezet",
|
|
16446
|
+
"bezh",
|
|
16447
|
+
"bezit",
|
|
16448
|
+
"bezomp",
|
|
16449
|
+
"bihan",
|
|
16450
|
+
"bije",
|
|
16451
|
+
"biou",
|
|
16452
|
+
"biskoazh",
|
|
16453
|
+
"blam",
|
|
16454
|
+
"bo",
|
|
16455
|
+
"boa",
|
|
16456
|
+
"bominapl",
|
|
16457
|
+
"boudoudom",
|
|
16458
|
+
"bouez",
|
|
16459
|
+
"boull",
|
|
16460
|
+
"boum",
|
|
16461
|
+
"bout",
|
|
16462
|
+
"bras",
|
|
16463
|
+
"brasañ",
|
|
16464
|
+
"brav",
|
|
16465
|
+
"bravo",
|
|
16466
|
+
"bremañ",
|
|
16467
|
+
"bres",
|
|
16468
|
+
"brokenn",
|
|
16469
|
+
"bronn",
|
|
16470
|
+
"brrr",
|
|
16471
|
+
"brutal",
|
|
16472
|
+
"buhezek",
|
|
16473
|
+
"c'h:",
|
|
16474
|
+
"c'haout",
|
|
16475
|
+
"c'he",
|
|
16476
|
+
"c'hem",
|
|
16477
|
+
"c'herz",
|
|
16478
|
+
"c'heñver",
|
|
16479
|
+
"c'hichen",
|
|
16480
|
+
"c'hiz",
|
|
16481
|
+
"c'hoazh",
|
|
16482
|
+
"c'horre",
|
|
16483
|
+
"c'houde",
|
|
16484
|
+
"c'houst",
|
|
16485
|
+
"c'hreiz",
|
|
16486
|
+
"c'hwec'h",
|
|
16487
|
+
"c'hwec'hvet",
|
|
16488
|
+
"c'hwezek",
|
|
16489
|
+
"c'hwi",
|
|
16490
|
+
"ch:",
|
|
16491
|
+
"chaous",
|
|
16492
|
+
"chik",
|
|
16493
|
+
"chit",
|
|
16494
|
+
"chom",
|
|
16495
|
+
"chut",
|
|
16496
|
+
"d'",
|
|
16497
|
+
"d'al",
|
|
16498
|
+
"d'an",
|
|
16499
|
+
"d'ar",
|
|
16500
|
+
"d'az",
|
|
16501
|
+
"d'e",
|
|
16502
|
+
"d'he",
|
|
16503
|
+
"d'ho",
|
|
16504
|
+
"d'hol",
|
|
16505
|
+
"d'hon",
|
|
16506
|
+
"d'hor",
|
|
16507
|
+
"d'o",
|
|
16508
|
+
"d'ober",
|
|
16509
|
+
"d'ul",
|
|
16510
|
+
"d'un",
|
|
16511
|
+
"d'ur",
|
|
16512
|
+
"d:",
|
|
16254
16513
|
"da",
|
|
16255
|
-
"
|
|
16256
|
-
"
|
|
16257
|
-
"
|
|
16258
|
-
"
|
|
16259
|
-
"
|
|
16260
|
-
"
|
|
16261
|
-
"
|
|
16262
|
-
"
|
|
16263
|
-
"
|
|
16264
|
-
"
|
|
16265
|
-
"
|
|
16266
|
-
"
|
|
16267
|
-
"
|
|
16268
|
-
"
|
|
16269
|
-
"
|
|
16514
|
+
"dak",
|
|
16515
|
+
"daka",
|
|
16516
|
+
"dal",
|
|
16517
|
+
"dalbezh",
|
|
16518
|
+
"dalc'hmat",
|
|
16519
|
+
"dalit",
|
|
16520
|
+
"damdost",
|
|
16521
|
+
"damheñvel",
|
|
16522
|
+
"damm",
|
|
16523
|
+
"dan",
|
|
16524
|
+
"danvez",
|
|
16525
|
+
"dao",
|
|
16526
|
+
"daol",
|
|
16527
|
+
"daonet",
|
|
16528
|
+
"daou",
|
|
16529
|
+
"daoust",
|
|
16530
|
+
"daouzek",
|
|
16531
|
+
"daouzekvet",
|
|
16532
|
+
"darn",
|
|
16533
|
+
"dastrewiñ",
|
|
16534
|
+
"dav",
|
|
16535
|
+
"davedoc'h",
|
|
16536
|
+
"davedomp",
|
|
16537
|
+
"davedon",
|
|
16538
|
+
"davedor",
|
|
16539
|
+
"davedout",
|
|
16540
|
+
"davet",
|
|
16541
|
+
"davetañ",
|
|
16542
|
+
"davete",
|
|
16543
|
+
"daveti",
|
|
16544
|
+
"daveto",
|
|
16545
|
+
"defe",
|
|
16546
|
+
"dehou",
|
|
16547
|
+
"dek",
|
|
16548
|
+
"dekvet",
|
|
16549
|
+
"den",
|
|
16550
|
+
"deoc'h",
|
|
16551
|
+
"deomp",
|
|
16552
|
+
"deor",
|
|
16553
|
+
"derc'hel",
|
|
16554
|
+
"deus",
|
|
16555
|
+
"dez",
|
|
16556
|
+
"deze",
|
|
16557
|
+
"dezhañ",
|
|
16558
|
+
"dezhe",
|
|
16559
|
+
"dezhi",
|
|
16560
|
+
"dezho",
|
|
16561
|
+
"di",
|
|
16562
|
+
"diabarzh",
|
|
16563
|
+
"diagent",
|
|
16564
|
+
"diar",
|
|
16565
|
+
"diaraok",
|
|
16566
|
+
"diavaez",
|
|
16567
|
+
"dibaoe",
|
|
16568
|
+
"dibaot",
|
|
16569
|
+
"dibar",
|
|
16570
|
+
"dic'halañ",
|
|
16571
|
+
"didiac'h",
|
|
16572
|
+
"dienn",
|
|
16573
|
+
"difer",
|
|
16574
|
+
"diganeoc'h",
|
|
16575
|
+
"diganeomp",
|
|
16576
|
+
"diganeor",
|
|
16577
|
+
"diganimp",
|
|
16578
|
+
"diganin",
|
|
16579
|
+
"diganit",
|
|
16580
|
+
"digant",
|
|
16581
|
+
"digantañ",
|
|
16582
|
+
"digante",
|
|
16583
|
+
"diganti",
|
|
16584
|
+
"diganto",
|
|
16585
|
+
"digemmesk",
|
|
16586
|
+
"diget",
|
|
16587
|
+
"digor",
|
|
16588
|
+
"digoret",
|
|
16589
|
+
"dija",
|
|
16590
|
+
"dije",
|
|
16591
|
+
"dimp",
|
|
16592
|
+
"din",
|
|
16593
|
+
"dinaou",
|
|
16594
|
+
"dindan",
|
|
16595
|
+
"dindanañ",
|
|
16596
|
+
"dindani",
|
|
16597
|
+
"dindano",
|
|
16598
|
+
"dindanoc'h",
|
|
16599
|
+
"dindanomp",
|
|
16600
|
+
"dindanon",
|
|
16601
|
+
"dindanor",
|
|
16602
|
+
"dindanout",
|
|
16603
|
+
"dioutañ",
|
|
16604
|
+
"dioute",
|
|
16605
|
+
"diouti",
|
|
16606
|
+
"diouto",
|
|
16607
|
+
"diouzh",
|
|
16608
|
+
"diouzhin",
|
|
16609
|
+
"diouzhit",
|
|
16610
|
+
"diouzhoc'h",
|
|
16611
|
+
"diouzhomp",
|
|
16612
|
+
"diouzhor",
|
|
16613
|
+
"dirak",
|
|
16614
|
+
"dirazañ",
|
|
16615
|
+
"dirazi",
|
|
16616
|
+
"dirazo",
|
|
16617
|
+
"dirazoc'h",
|
|
16618
|
+
"dirazomp",
|
|
16619
|
+
"dirazon",
|
|
16620
|
+
"dirazor",
|
|
16621
|
+
"dirazout",
|
|
16622
|
+
"disheñvel",
|
|
16623
|
+
"dispar",
|
|
16624
|
+
"distank",
|
|
16625
|
+
"dister",
|
|
16626
|
+
"disterañ",
|
|
16627
|
+
"disterig",
|
|
16628
|
+
"distro",
|
|
16629
|
+
"dit",
|
|
16630
|
+
"divaez",
|
|
16631
|
+
"diwar",
|
|
16632
|
+
"diwezhat",
|
|
16633
|
+
"diwezhañ",
|
|
16270
16634
|
"do",
|
|
16271
|
-
"
|
|
16272
|
-
"
|
|
16635
|
+
"doa",
|
|
16636
|
+
"doare",
|
|
16637
|
+
"dont",
|
|
16638
|
+
"dost",
|
|
16639
|
+
"doue",
|
|
16640
|
+
"douetus",
|
|
16641
|
+
"douez",
|
|
16642
|
+
"doug",
|
|
16643
|
+
"draou",
|
|
16644
|
+
"draoñ",
|
|
16645
|
+
"dre",
|
|
16646
|
+
"drede",
|
|
16647
|
+
"dreist",
|
|
16648
|
+
"dreistañ",
|
|
16649
|
+
"dreisti",
|
|
16650
|
+
"dreisto",
|
|
16651
|
+
"dreistoc'h",
|
|
16652
|
+
"dreistomp",
|
|
16653
|
+
"dreiston",
|
|
16654
|
+
"dreistor",
|
|
16655
|
+
"dreistout",
|
|
16656
|
+
"drek",
|
|
16657
|
+
"dreñv",
|
|
16658
|
+
"dring",
|
|
16659
|
+
"dro",
|
|
16660
|
+
"du",
|
|
16273
16661
|
"e",
|
|
16274
|
-
"
|
|
16275
|
-
"
|
|
16276
|
-
"
|
|
16277
|
-
"
|
|
16662
|
+
"e:",
|
|
16663
|
+
"eas",
|
|
16664
|
+
"ebet",
|
|
16665
|
+
"ec'h",
|
|
16666
|
+
"edo",
|
|
16667
|
+
"edoc'h",
|
|
16668
|
+
"edod",
|
|
16669
|
+
"edomp",
|
|
16670
|
+
"edon",
|
|
16671
|
+
"edont",
|
|
16672
|
+
"edos",
|
|
16673
|
+
"eer",
|
|
16674
|
+
"eeun",
|
|
16675
|
+
"efed",
|
|
16676
|
+
"egedoc'h",
|
|
16677
|
+
"egedomp",
|
|
16678
|
+
"egedon",
|
|
16679
|
+
"egedor",
|
|
16680
|
+
"egedout",
|
|
16681
|
+
"eget",
|
|
16682
|
+
"egetañ",
|
|
16683
|
+
"egete",
|
|
16684
|
+
"egeti",
|
|
16685
|
+
"egeto",
|
|
16686
|
+
"eh",
|
|
16687
|
+
"eil",
|
|
16688
|
+
"eilvet",
|
|
16689
|
+
"eizh",
|
|
16690
|
+
"eizhvet",
|
|
16691
|
+
"ejoc'h",
|
|
16692
|
+
"ejod",
|
|
16693
|
+
"ejomp",
|
|
16694
|
+
"ejont",
|
|
16695
|
+
"ejout",
|
|
16696
|
+
"el",
|
|
16278
16697
|
"em",
|
|
16279
|
-
"
|
|
16280
|
-
"
|
|
16281
|
-
"
|
|
16282
|
-
"
|
|
16283
|
-
"
|
|
16284
|
-
"
|
|
16285
|
-
"
|
|
16286
|
-
"
|
|
16287
|
-
"
|
|
16288
|
-
"
|
|
16698
|
+
"emaint",
|
|
16699
|
+
"emaoc'h",
|
|
16700
|
+
"emaomp",
|
|
16701
|
+
"emaon",
|
|
16702
|
+
"emaout",
|
|
16703
|
+
"emañ",
|
|
16704
|
+
"eme",
|
|
16705
|
+
"emeur",
|
|
16706
|
+
"emezañ",
|
|
16707
|
+
"emezi",
|
|
16708
|
+
"emezo",
|
|
16709
|
+
"emezoc'h",
|
|
16710
|
+
"emezomp",
|
|
16711
|
+
"emezon",
|
|
16712
|
+
"emezout",
|
|
16713
|
+
"emporzhiañ",
|
|
16714
|
+
"en",
|
|
16715
|
+
"end",
|
|
16716
|
+
"endan",
|
|
16717
|
+
"endra",
|
|
16718
|
+
"enep",
|
|
16719
|
+
"ennañ",
|
|
16720
|
+
"enni",
|
|
16721
|
+
"enno",
|
|
16722
|
+
"ennoc'h",
|
|
16723
|
+
"ennomp",
|
|
16724
|
+
"ennon",
|
|
16725
|
+
"ennor",
|
|
16726
|
+
"ennout",
|
|
16727
|
+
"enta",
|
|
16728
|
+
"eo",
|
|
16729
|
+
"eomp",
|
|
16730
|
+
"eont",
|
|
16731
|
+
"eor",
|
|
16732
|
+
"eot",
|
|
16733
|
+
"er",
|
|
16734
|
+
"erbet",
|
|
16735
|
+
"erfin",
|
|
16736
|
+
"esa",
|
|
16737
|
+
"esae",
|
|
16738
|
+
"espar",
|
|
16739
|
+
"estlamm",
|
|
16740
|
+
"estrañj",
|
|
16741
|
+
"eta",
|
|
16742
|
+
"etre",
|
|
16743
|
+
"etreoc'h",
|
|
16744
|
+
"etrezo",
|
|
16745
|
+
"etrezoc'h",
|
|
16746
|
+
"etrezomp",
|
|
16747
|
+
"etrezor",
|
|
16748
|
+
"euh",
|
|
16749
|
+
"eur",
|
|
16750
|
+
"eus",
|
|
16751
|
+
"evel",
|
|
16752
|
+
"evelato",
|
|
16753
|
+
"eveldoc'h",
|
|
16754
|
+
"eveldomp",
|
|
16755
|
+
"eveldon",
|
|
16756
|
+
"eveldor",
|
|
16757
|
+
"eveldout",
|
|
16758
|
+
"evelkent",
|
|
16759
|
+
"eveltañ",
|
|
16760
|
+
"evelte",
|
|
16761
|
+
"evelti",
|
|
16762
|
+
"evelto",
|
|
16763
|
+
"evidoc'h",
|
|
16764
|
+
"evidomp",
|
|
16765
|
+
"evidon",
|
|
16766
|
+
"evidor",
|
|
16767
|
+
"evidout",
|
|
16768
|
+
"evit",
|
|
16769
|
+
"evitañ",
|
|
16770
|
+
"evite",
|
|
16771
|
+
"eviti",
|
|
16772
|
+
"evito",
|
|
16773
|
+
"ez",
|
|
16774
|
+
"eñ",
|
|
16775
|
+
"f:",
|
|
16776
|
+
"fac'h",
|
|
16777
|
+
"fall",
|
|
16778
|
+
"fed",
|
|
16779
|
+
"feiz",
|
|
16780
|
+
"fenn",
|
|
16781
|
+
"fezh",
|
|
16782
|
+
"fin",
|
|
16783
|
+
"finsalvet",
|
|
16784
|
+
"foei",
|
|
16785
|
+
"fouilhezañ",
|
|
16786
|
+
"g:",
|
|
16787
|
+
"gallout",
|
|
16788
|
+
"ganeoc'h",
|
|
16789
|
+
"ganeomp",
|
|
16790
|
+
"ganin",
|
|
16791
|
+
"ganit",
|
|
16792
|
+
"gant",
|
|
16793
|
+
"gantañ",
|
|
16794
|
+
"ganti",
|
|
16795
|
+
"ganto",
|
|
16796
|
+
"gaout",
|
|
16797
|
+
"gast",
|
|
16798
|
+
"gein",
|
|
16799
|
+
"gellout",
|
|
16800
|
+
"genndost",
|
|
16801
|
+
"gentañ",
|
|
16802
|
+
"ger",
|
|
16803
|
+
"gerz",
|
|
16804
|
+
"get",
|
|
16805
|
+
"geñver",
|
|
16806
|
+
"gichen",
|
|
16807
|
+
"gin",
|
|
16808
|
+
"giz",
|
|
16809
|
+
"glan",
|
|
16810
|
+
"gloev",
|
|
16811
|
+
"goll",
|
|
16812
|
+
"gorre",
|
|
16813
|
+
"goude",
|
|
16814
|
+
"gouez",
|
|
16815
|
+
"gouezit",
|
|
16816
|
+
"gouezomp",
|
|
16817
|
+
"goulz",
|
|
16818
|
+
"gounnar",
|
|
16819
|
+
"gour",
|
|
16820
|
+
"goust",
|
|
16821
|
+
"gouze",
|
|
16822
|
+
"gouzout",
|
|
16823
|
+
"gra",
|
|
16824
|
+
"grak",
|
|
16825
|
+
"grec'h",
|
|
16826
|
+
"greiz",
|
|
16827
|
+
"grenn",
|
|
16828
|
+
"greomp",
|
|
16829
|
+
"grit",
|
|
16830
|
+
"groñs",
|
|
16831
|
+
"gutez",
|
|
16832
|
+
"gwall",
|
|
16833
|
+
"gwashoc'h",
|
|
16834
|
+
"gwazh",
|
|
16835
|
+
"gwech",
|
|
16836
|
+
"gwechall",
|
|
16837
|
+
"gwechoù",
|
|
16838
|
+
"gwell",
|
|
16839
|
+
"gwezh",
|
|
16840
|
+
"gwezhall",
|
|
16841
|
+
"gwezharall",
|
|
16842
|
+
"gwezhoù",
|
|
16843
|
+
"gwig",
|
|
16844
|
+
"gwirionez",
|
|
16845
|
+
"gwitibunan",
|
|
16846
|
+
"gêr",
|
|
16847
|
+
"h:",
|
|
16289
16848
|
"ha",
|
|
16290
|
-
"
|
|
16291
|
-
"
|
|
16292
|
-
"
|
|
16293
|
-
"
|
|
16294
|
-
"
|
|
16295
|
-
"
|
|
16296
|
-
"
|
|
16297
|
-
"
|
|
16298
|
-
"
|
|
16299
|
-
"
|
|
16300
|
-
"
|
|
16849
|
+
"hag",
|
|
16850
|
+
"han",
|
|
16851
|
+
"hanter",
|
|
16852
|
+
"hanterc'hantad",
|
|
16853
|
+
"hanterkantved",
|
|
16854
|
+
"harz",
|
|
16855
|
+
"hañ",
|
|
16856
|
+
"hañval",
|
|
16857
|
+
"he",
|
|
16858
|
+
"hebioù",
|
|
16859
|
+
"hec'h",
|
|
16860
|
+
"hei",
|
|
16861
|
+
"hein",
|
|
16862
|
+
"hem",
|
|
16863
|
+
"hemañ",
|
|
16864
|
+
"hen",
|
|
16865
|
+
"hend",
|
|
16866
|
+
"henhont",
|
|
16867
|
+
"henn",
|
|
16868
|
+
"hennezh",
|
|
16869
|
+
"hent",
|
|
16870
|
+
"hep",
|
|
16871
|
+
"hervez",
|
|
16872
|
+
"hervezañ",
|
|
16873
|
+
"hervezi",
|
|
16874
|
+
"hervezo",
|
|
16875
|
+
"hervezoc'h",
|
|
16876
|
+
"hervezomp",
|
|
16877
|
+
"hervezon",
|
|
16878
|
+
"hervezor",
|
|
16879
|
+
"hervezout",
|
|
16880
|
+
"heul",
|
|
16881
|
+
"heuliañ",
|
|
16882
|
+
"hevelep",
|
|
16883
|
+
"heverk",
|
|
16884
|
+
"heñvel",
|
|
16885
|
+
"heñvelat",
|
|
16886
|
+
"heñvelañ",
|
|
16887
|
+
"heñveliñ",
|
|
16888
|
+
"heñveloc'h",
|
|
16889
|
+
"heñvelout",
|
|
16890
|
+
"hi",
|
|
16891
|
+
"hilh",
|
|
16892
|
+
"hini",
|
|
16893
|
+
"hirie",
|
|
16894
|
+
"hirio",
|
|
16895
|
+
"hiziv",
|
|
16896
|
+
"hiziviken",
|
|
16897
|
+
"ho",
|
|
16898
|
+
"hoaliñ",
|
|
16899
|
+
"hoc'h",
|
|
16900
|
+
"hogen",
|
|
16901
|
+
"hogos",
|
|
16902
|
+
"hogozik",
|
|
16903
|
+
"hol",
|
|
16904
|
+
"holl",
|
|
16905
|
+
"holà",
|
|
16906
|
+
"homañ",
|
|
16907
|
+
"hon",
|
|
16908
|
+
"honhont",
|
|
16909
|
+
"honnezh",
|
|
16910
|
+
"hont",
|
|
16911
|
+
"hop",
|
|
16912
|
+
"hopala",
|
|
16913
|
+
"hor",
|
|
16914
|
+
"hou",
|
|
16915
|
+
"houp",
|
|
16916
|
+
"hudu",
|
|
16917
|
+
"hue",
|
|
16918
|
+
"hui",
|
|
16919
|
+
"hum",
|
|
16920
|
+
"hurrah",
|
|
16921
|
+
"i",
|
|
16922
|
+
"i:",
|
|
16923
|
+
"in",
|
|
16924
|
+
"int",
|
|
16925
|
+
"is",
|
|
16926
|
+
"ispisial",
|
|
16927
|
+
"isurzhiet",
|
|
16928
|
+
"it",
|
|
16929
|
+
"ivez",
|
|
16930
|
+
"izelañ",
|
|
16931
|
+
"j:",
|
|
16932
|
+
"just",
|
|
16933
|
+
"k:",
|
|
16934
|
+
"kae",
|
|
16935
|
+
"kaer",
|
|
16936
|
+
"kalon",
|
|
16937
|
+
"kalz",
|
|
16938
|
+
"kant",
|
|
16939
|
+
"kaout",
|
|
16940
|
+
"kar",
|
|
16941
|
+
"kazi",
|
|
16942
|
+
"keid",
|
|
16943
|
+
"kein",
|
|
16944
|
+
"keit",
|
|
16945
|
+
"kel",
|
|
16946
|
+
"kellies",
|
|
16947
|
+
"keloù",
|
|
16948
|
+
"kement",
|
|
16949
|
+
"ken",
|
|
16950
|
+
"kenkent",
|
|
16951
|
+
"kenkoulz",
|
|
16952
|
+
"kenment",
|
|
16953
|
+
"kent",
|
|
16954
|
+
"kentañ",
|
|
16955
|
+
"kentizh",
|
|
16956
|
+
"kentoc'h",
|
|
16957
|
+
"kentre",
|
|
16958
|
+
"ker",
|
|
16959
|
+
"kerkent",
|
|
16960
|
+
"kerz",
|
|
16961
|
+
"kerzh",
|
|
16962
|
+
"ket",
|
|
16963
|
+
"keta",
|
|
16964
|
+
"keñver",
|
|
16965
|
+
"keñverel",
|
|
16966
|
+
"keñverius",
|
|
16967
|
+
"kichen",
|
|
16968
|
+
"kichenik",
|
|
16969
|
+
"kit",
|
|
16970
|
+
"kiz",
|
|
16971
|
+
"klak",
|
|
16972
|
+
"klek",
|
|
16973
|
+
"klik",
|
|
16974
|
+
"komprenet",
|
|
16975
|
+
"komz",
|
|
16976
|
+
"kont",
|
|
16977
|
+
"korf",
|
|
16978
|
+
"korre",
|
|
16979
|
+
"koulskoude",
|
|
16980
|
+
"koulz",
|
|
16981
|
+
"koust",
|
|
16982
|
+
"krak",
|
|
16983
|
+
"krampouezh",
|
|
16984
|
+
"krec'h",
|
|
16985
|
+
"kreiz",
|
|
16986
|
+
"kuit",
|
|
16987
|
+
"kwir",
|
|
16988
|
+
"l:",
|
|
16989
|
+
"la",
|
|
16990
|
+
"laez",
|
|
16991
|
+
"laoskel",
|
|
16992
|
+
"laouen",
|
|
16993
|
+
"lavar",
|
|
16994
|
+
"lavaret",
|
|
16995
|
+
"lavarout",
|
|
16996
|
+
"lec'h",
|
|
16997
|
+
"lein",
|
|
16998
|
+
"leizh",
|
|
16999
|
+
"lerc'h",
|
|
17000
|
+
"leun",
|
|
17001
|
+
"leuskel",
|
|
17002
|
+
"lew",
|
|
17003
|
+
"lies",
|
|
17004
|
+
"liesañ",
|
|
17005
|
+
"lod",
|
|
17006
|
+
"lusk",
|
|
17007
|
+
"lâr",
|
|
17008
|
+
"lârout",
|
|
17009
|
+
"m:",
|
|
17010
|
+
"ma",
|
|
17011
|
+
"ma'z",
|
|
17012
|
+
"mac'h",
|
|
17013
|
+
"mac'hat",
|
|
17014
|
+
"mac'hañ",
|
|
17015
|
+
"mac'hoc'h",
|
|
17016
|
+
"mad",
|
|
17017
|
+
"maez",
|
|
17018
|
+
"maksimal",
|
|
17019
|
+
"mann",
|
|
17020
|
+
"mar",
|
|
17021
|
+
"mard",
|
|
17022
|
+
"marg",
|
|
17023
|
+
"marzh",
|
|
17024
|
+
"mat",
|
|
17025
|
+
"mañ",
|
|
17026
|
+
"me",
|
|
17027
|
+
"memes",
|
|
17028
|
+
"memestra",
|
|
17029
|
+
"merkapl",
|
|
17030
|
+
"mersi",
|
|
17031
|
+
"mes",
|
|
17032
|
+
"mesk",
|
|
17033
|
+
"met",
|
|
17034
|
+
"meur",
|
|
17035
|
+
"mil",
|
|
17036
|
+
"minimal",
|
|
17037
|
+
"moan",
|
|
17038
|
+
"moaniaat",
|
|
17039
|
+
"mod",
|
|
17040
|
+
"mont",
|
|
17041
|
+
"mout",
|
|
17042
|
+
"mui",
|
|
17043
|
+
"muiañ",
|
|
17044
|
+
"muioc'h",
|
|
17045
|
+
"n",
|
|
17046
|
+
"n'",
|
|
17047
|
+
"n:",
|
|
16301
17048
|
"na",
|
|
16302
|
-
"
|
|
16303
|
-
"
|
|
16304
|
-
"
|
|
16305
|
-
"
|
|
16306
|
-
"
|
|
16307
|
-
"
|
|
17049
|
+
"nag",
|
|
17050
|
+
"naontek",
|
|
17051
|
+
"naturel",
|
|
17052
|
+
"nav",
|
|
17053
|
+
"navet",
|
|
17054
|
+
"ne",
|
|
17055
|
+
"nebeudig",
|
|
17056
|
+
"nebeut",
|
|
17057
|
+
"nebeutañ",
|
|
17058
|
+
"nebeutoc'h",
|
|
17059
|
+
"neketa",
|
|
17060
|
+
"nemedoc'h",
|
|
17061
|
+
"nemedomp",
|
|
17062
|
+
"nemedon",
|
|
17063
|
+
"nemedor",
|
|
17064
|
+
"nemedout",
|
|
17065
|
+
"nemet",
|
|
17066
|
+
"nemetañ",
|
|
17067
|
+
"nemete",
|
|
17068
|
+
"nemeti",
|
|
17069
|
+
"nemeto",
|
|
17070
|
+
"nemeur",
|
|
17071
|
+
"neoac'h",
|
|
17072
|
+
"nepell",
|
|
17073
|
+
"nerzh",
|
|
17074
|
+
"nes",
|
|
17075
|
+
"neseser",
|
|
17076
|
+
"netra",
|
|
17077
|
+
"neubeudoù",
|
|
17078
|
+
"neuhe",
|
|
17079
|
+
"neuze",
|
|
17080
|
+
"nevez",
|
|
17081
|
+
"newazh",
|
|
17082
|
+
"nez",
|
|
17083
|
+
"ni",
|
|
17084
|
+
"nikun",
|
|
17085
|
+
"niverus",
|
|
17086
|
+
"nul",
|
|
16308
17087
|
"o",
|
|
16309
|
-
"
|
|
16310
|
-
"
|
|
16311
|
-
"
|
|
16312
|
-
"
|
|
16313
|
-
"
|
|
16314
|
-
"
|
|
16315
|
-
"
|
|
16316
|
-
"
|
|
16317
|
-
"
|
|
16318
|
-
"
|
|
16319
|
-
"
|
|
16320
|
-
"
|
|
16321
|
-
"
|
|
16322
|
-
"
|
|
16323
|
-
"
|
|
16324
|
-
"
|
|
16325
|
-
"
|
|
16326
|
-
"
|
|
16327
|
-
"
|
|
16328
|
-
"
|
|
16329
|
-
"
|
|
16330
|
-
"
|
|
16331
|
-
"
|
|
16332
|
-
"
|
|
17088
|
+
"o:",
|
|
17089
|
+
"oa",
|
|
17090
|
+
"oac'h",
|
|
17091
|
+
"oad",
|
|
17092
|
+
"oamp",
|
|
17093
|
+
"oan",
|
|
17094
|
+
"oant",
|
|
17095
|
+
"oar",
|
|
17096
|
+
"oas",
|
|
17097
|
+
"ober",
|
|
17098
|
+
"oc'h",
|
|
17099
|
+
"oc'ho",
|
|
17100
|
+
"oc'hola",
|
|
17101
|
+
"oc'hpenn",
|
|
17102
|
+
"oh",
|
|
17103
|
+
"ohe",
|
|
17104
|
+
"ollé",
|
|
17105
|
+
"olole",
|
|
17106
|
+
"olé",
|
|
17107
|
+
"omp",
|
|
17108
|
+
"on",
|
|
17109
|
+
"ordin",
|
|
17110
|
+
"ordinal",
|
|
17111
|
+
"ouejoc'h",
|
|
17112
|
+
"ouejod",
|
|
17113
|
+
"ouejomp",
|
|
17114
|
+
"ouejont",
|
|
17115
|
+
"ouejout",
|
|
17116
|
+
"ouek",
|
|
17117
|
+
"ouezas",
|
|
17118
|
+
"ouezi",
|
|
17119
|
+
"ouezimp",
|
|
17120
|
+
"ouezin",
|
|
17121
|
+
"ouezint",
|
|
17122
|
+
"ouezis",
|
|
17123
|
+
"ouezo",
|
|
17124
|
+
"ouezoc'h",
|
|
17125
|
+
"ouezor",
|
|
17126
|
+
"ouf",
|
|
17127
|
+
"oufe",
|
|
17128
|
+
"oufec'h",
|
|
17129
|
+
"oufed",
|
|
17130
|
+
"oufemp",
|
|
17131
|
+
"oufen",
|
|
17132
|
+
"oufent",
|
|
17133
|
+
"oufes",
|
|
17134
|
+
"ouie",
|
|
17135
|
+
"ouiec'h",
|
|
17136
|
+
"ouied",
|
|
17137
|
+
"ouiemp",
|
|
17138
|
+
"ouien",
|
|
17139
|
+
"ouient",
|
|
17140
|
+
"ouies",
|
|
17141
|
+
"ouije",
|
|
17142
|
+
"ouijec'h",
|
|
17143
|
+
"ouijed",
|
|
17144
|
+
"ouijemp",
|
|
17145
|
+
"ouijen",
|
|
17146
|
+
"ouijent",
|
|
17147
|
+
"ouijes",
|
|
17148
|
+
"out",
|
|
17149
|
+
"outañ",
|
|
17150
|
+
"outi",
|
|
17151
|
+
"outo",
|
|
17152
|
+
"ouzer",
|
|
17153
|
+
"ouzh",
|
|
17154
|
+
"ouzhin",
|
|
17155
|
+
"ouzhit",
|
|
17156
|
+
"ouzhoc'h",
|
|
17157
|
+
"ouzhomp",
|
|
17158
|
+
"ouzhor",
|
|
17159
|
+
"ouzhpenn",
|
|
17160
|
+
"ouzhpennik",
|
|
17161
|
+
"ouzoc'h",
|
|
17162
|
+
"ouzomp",
|
|
17163
|
+
"ouzon",
|
|
17164
|
+
"ouzont",
|
|
17165
|
+
"ouzout",
|
|
17166
|
+
"p'",
|
|
17167
|
+
"p:",
|
|
17168
|
+
"pa",
|
|
17169
|
+
"pad",
|
|
17170
|
+
"padal",
|
|
17171
|
+
"paf",
|
|
17172
|
+
"pan",
|
|
17173
|
+
"panevedeoc'h",
|
|
17174
|
+
"panevedo",
|
|
17175
|
+
"panevedomp",
|
|
17176
|
+
"panevedon",
|
|
17177
|
+
"panevedout",
|
|
17178
|
+
"panevet",
|
|
17179
|
+
"panevetañ",
|
|
17180
|
+
"paneveti",
|
|
17181
|
+
"pas",
|
|
17182
|
+
"paseet",
|
|
17183
|
+
"pe",
|
|
17184
|
+
"peadra",
|
|
17185
|
+
"peder",
|
|
17186
|
+
"pedervet",
|
|
17187
|
+
"pedervetvet",
|
|
17188
|
+
"pefe",
|
|
17189
|
+
"pegeit",
|
|
17190
|
+
"pegement",
|
|
17191
|
+
"pegen",
|
|
17192
|
+
"pegiz",
|
|
17193
|
+
"pegoulz",
|
|
17194
|
+
"pehini",
|
|
17195
|
+
"pelec'h",
|
|
17196
|
+
"pell",
|
|
17197
|
+
"pemod",
|
|
17198
|
+
"pemp",
|
|
17199
|
+
"pempved",
|
|
17200
|
+
"pemzek",
|
|
17201
|
+
"penaos",
|
|
17202
|
+
"penn",
|
|
17203
|
+
"peogwir",
|
|
17204
|
+
"peotramant",
|
|
17205
|
+
"pep",
|
|
17206
|
+
"perak",
|
|
17207
|
+
"perc'hennañ",
|
|
17208
|
+
"pergen",
|
|
17209
|
+
"permetiñ",
|
|
17210
|
+
"peseurt",
|
|
17211
|
+
"pet",
|
|
17212
|
+
"petiaoul",
|
|
17213
|
+
"petoare",
|
|
17214
|
+
"petra",
|
|
17215
|
+
"peur",
|
|
17216
|
+
"peurgetket",
|
|
17217
|
+
"peurheñvel",
|
|
17218
|
+
"peurliesañ",
|
|
17219
|
+
"peurvuiañ",
|
|
17220
|
+
"peus",
|
|
17221
|
+
"peustost",
|
|
17222
|
+
"peuz",
|
|
17223
|
+
"pevar",
|
|
17224
|
+
"pevare",
|
|
17225
|
+
"pevarevet",
|
|
17226
|
+
"pevarzek",
|
|
17227
|
+
"pez",
|
|
17228
|
+
"peze",
|
|
17229
|
+
"pezh",
|
|
17230
|
+
"pff",
|
|
17231
|
+
"pfft",
|
|
17232
|
+
"pfut",
|
|
17233
|
+
"picher",
|
|
17234
|
+
"pif",
|
|
17235
|
+
"pife",
|
|
17236
|
+
"pign",
|
|
17237
|
+
"pije",
|
|
17238
|
+
"pikol",
|
|
17239
|
+
"pitiaoul",
|
|
17240
|
+
"piv",
|
|
17241
|
+
"plaouf",
|
|
17242
|
+
"plok",
|
|
17243
|
+
"plouf",
|
|
17244
|
+
"po",
|
|
17245
|
+
"poa",
|
|
17246
|
+
"poelladus",
|
|
17247
|
+
"pof",
|
|
17248
|
+
"pok",
|
|
17249
|
+
"posupl",
|
|
17250
|
+
"pouah",
|
|
17251
|
+
"pourc'henn",
|
|
17252
|
+
"prest",
|
|
17253
|
+
"prestik",
|
|
17254
|
+
"prim",
|
|
17255
|
+
"prin",
|
|
17256
|
+
"provostapl",
|
|
17257
|
+
"pst",
|
|
17258
|
+
"pu",
|
|
17259
|
+
"pur",
|
|
17260
|
+
"r:",
|
|
17261
|
+
"ra",
|
|
17262
|
+
"rae",
|
|
17263
|
+
"raec'h",
|
|
17264
|
+
"raed",
|
|
17265
|
+
"raemp",
|
|
17266
|
+
"raen",
|
|
17267
|
+
"raent",
|
|
17268
|
+
"raes",
|
|
17269
|
+
"rafe",
|
|
17270
|
+
"rafec'h",
|
|
17271
|
+
"rafed",
|
|
17272
|
+
"rafemp",
|
|
17273
|
+
"rafen",
|
|
17274
|
+
"rafent",
|
|
17275
|
+
"rafes",
|
|
17276
|
+
"rag",
|
|
17277
|
+
"raimp",
|
|
17278
|
+
"raint",
|
|
17279
|
+
"raio",
|
|
17280
|
+
"raje",
|
|
17281
|
+
"rajec'h",
|
|
17282
|
+
"rajed",
|
|
17283
|
+
"rajemp",
|
|
17284
|
+
"rajen",
|
|
17285
|
+
"rajent",
|
|
17286
|
+
"rajes",
|
|
17287
|
+
"rak",
|
|
17288
|
+
"ral",
|
|
17289
|
+
"ran",
|
|
17290
|
+
"rankout",
|
|
17291
|
+
"raok",
|
|
17292
|
+
"razh",
|
|
17293
|
+
"re",
|
|
17294
|
+
"reas",
|
|
17295
|
+
"reer",
|
|
17296
|
+
"regennoù",
|
|
17297
|
+
"reiñ",
|
|
17298
|
+
"rejoc'h",
|
|
17299
|
+
"rejod",
|
|
17300
|
+
"rejomp",
|
|
17301
|
+
"rejont",
|
|
17302
|
+
"rejout",
|
|
17303
|
+
"rener",
|
|
17304
|
+
"rentañ",
|
|
17305
|
+
"reoc'h",
|
|
17306
|
+
"reomp",
|
|
17307
|
+
"reont",
|
|
17308
|
+
"reor",
|
|
17309
|
+
"reot",
|
|
17310
|
+
"resis",
|
|
17311
|
+
"ret",
|
|
17312
|
+
"reve",
|
|
17313
|
+
"rez",
|
|
17314
|
+
"ri",
|
|
17315
|
+
"rik",
|
|
17316
|
+
"rin",
|
|
17317
|
+
"ris",
|
|
17318
|
+
"rit",
|
|
17319
|
+
"rouez",
|
|
17320
|
+
"s:",
|
|
17321
|
+
"sac'h",
|
|
17322
|
+
"sant",
|
|
17323
|
+
"sav",
|
|
17324
|
+
"sañset",
|
|
16333
17325
|
"se",
|
|
16334
|
-
"
|
|
16335
|
-
"
|
|
16336
|
-
"
|
|
16337
|
-
"
|
|
16338
|
-
"
|
|
16339
|
-
"
|
|
16340
|
-
"
|
|
16341
|
-
"
|
|
16342
|
-
"
|
|
17326
|
+
"sed",
|
|
17327
|
+
"seitek",
|
|
17328
|
+
"seizh",
|
|
17329
|
+
"seizhvet",
|
|
17330
|
+
"sell",
|
|
17331
|
+
"sellit",
|
|
17332
|
+
"ser",
|
|
17333
|
+
"setu",
|
|
17334
|
+
"seul",
|
|
17335
|
+
"seurt",
|
|
17336
|
+
"siwazh",
|
|
17337
|
+
"skignañ",
|
|
17338
|
+
"skoaz",
|
|
17339
|
+
"skouer",
|
|
17340
|
+
"sort",
|
|
17341
|
+
"souden",
|
|
17342
|
+
"souvitañ",
|
|
17343
|
+
"soñj",
|
|
17344
|
+
"speriañ",
|
|
17345
|
+
"spririñ",
|
|
17346
|
+
"stad",
|
|
17347
|
+
"stlabezañ",
|
|
17348
|
+
"stop",
|
|
17349
|
+
"stranañ",
|
|
17350
|
+
"strewiñ",
|
|
17351
|
+
"strishaat",
|
|
17352
|
+
"stumm",
|
|
17353
|
+
"sujed",
|
|
17354
|
+
"surtoud",
|
|
17355
|
+
"t:",
|
|
17356
|
+
"ta",
|
|
17357
|
+
"taer",
|
|
17358
|
+
"tailh",
|
|
17359
|
+
"tak",
|
|
16343
17360
|
"tal",
|
|
16344
|
-
"
|
|
16345
|
-
"
|
|
17361
|
+
"talvoudegezh",
|
|
17362
|
+
"tamm",
|
|
17363
|
+
"tanav",
|
|
17364
|
+
"taol",
|
|
17365
|
+
"te",
|
|
17366
|
+
"techet",
|
|
17367
|
+
"teir",
|
|
17368
|
+
"teirvet",
|
|
17369
|
+
"telt",
|
|
17370
|
+
"teltenn",
|
|
16346
17371
|
"teus",
|
|
16347
|
-
"
|
|
16348
|
-
"
|
|
16349
|
-
"
|
|
16350
|
-
"
|
|
16351
|
-
"
|
|
16352
|
-
"
|
|
16353
|
-
"
|
|
16354
|
-
"
|
|
16355
|
-
"
|
|
16356
|
-
"
|
|
16357
|
-
"
|
|
17372
|
+
"teut",
|
|
17373
|
+
"teuteu",
|
|
17374
|
+
"ti",
|
|
17375
|
+
"tik",
|
|
17376
|
+
"toa",
|
|
17377
|
+
"tok",
|
|
17378
|
+
"tost",
|
|
17379
|
+
"tostig",
|
|
17380
|
+
"toud",
|
|
17381
|
+
"touesk",
|
|
17382
|
+
"touez",
|
|
17383
|
+
"toull",
|
|
17384
|
+
"tra",
|
|
17385
|
+
"trantenn",
|
|
17386
|
+
"traoñ",
|
|
17387
|
+
"trawalc'h",
|
|
17388
|
+
"tre",
|
|
17389
|
+
"trede",
|
|
17390
|
+
"tregont",
|
|
17391
|
+
"tremenet",
|
|
17392
|
+
"tri",
|
|
17393
|
+
"trivet",
|
|
17394
|
+
"triwec'h",
|
|
17395
|
+
"trizek",
|
|
17396
|
+
"tro",
|
|
17397
|
+
"trugarez",
|
|
17398
|
+
"trumm",
|
|
17399
|
+
"tsoin",
|
|
17400
|
+
"tsouin",
|
|
17401
|
+
"tu",
|
|
17402
|
+
"tud",
|
|
17403
|
+
"u:",
|
|
17404
|
+
"ugent",
|
|
17405
|
+
"uhel",
|
|
17406
|
+
"uhelañ",
|
|
17407
|
+
"ul",
|
|
17408
|
+
"un",
|
|
17409
|
+
"unan",
|
|
17410
|
+
"unanez",
|
|
17411
|
+
"unanig",
|
|
17412
|
+
"unnek",
|
|
17413
|
+
"unnekvet",
|
|
17414
|
+
"ur",
|
|
17415
|
+
"urzh",
|
|
17416
|
+
"us",
|
|
17417
|
+
"v:",
|
|
17418
|
+
"va",
|
|
17419
|
+
"vale",
|
|
17420
|
+
"van",
|
|
17421
|
+
"vare",
|
|
17422
|
+
"vat",
|
|
17423
|
+
"vefe",
|
|
17424
|
+
"vefec'h",
|
|
17425
|
+
"vefed",
|
|
17426
|
+
"vefemp",
|
|
17427
|
+
"vefen",
|
|
17428
|
+
"vefent",
|
|
17429
|
+
"vefes",
|
|
17430
|
+
"vesk",
|
|
17431
|
+
"vete",
|
|
17432
|
+
"vez",
|
|
17433
|
+
"vezan",
|
|
17434
|
+
"vezañ",
|
|
17435
|
+
"veze",
|
|
17436
|
+
"vezec'h",
|
|
17437
|
+
"vezed",
|
|
17438
|
+
"vezemp",
|
|
17439
|
+
"vezen",
|
|
17440
|
+
"vezent",
|
|
17441
|
+
"vezer",
|
|
17442
|
+
"vezes",
|
|
17443
|
+
"vezez",
|
|
17444
|
+
"vezit",
|
|
17445
|
+
"vezomp",
|
|
17446
|
+
"vezont",
|
|
17447
|
+
"vi",
|
|
17448
|
+
"vihan",
|
|
17449
|
+
"vihanañ",
|
|
17450
|
+
"vije",
|
|
17451
|
+
"vijec'h",
|
|
17452
|
+
"vijed",
|
|
17453
|
+
"vijemp",
|
|
17454
|
+
"vijen",
|
|
17455
|
+
"vijent",
|
|
17456
|
+
"vijes",
|
|
17457
|
+
"viken",
|
|
17458
|
+
"vimp",
|
|
17459
|
+
"vin",
|
|
17460
|
+
"vint",
|
|
17461
|
+
"vior",
|
|
17462
|
+
"viot",
|
|
17463
|
+
"virviken",
|
|
17464
|
+
"viskoazh",
|
|
17465
|
+
"vlan",
|
|
17466
|
+
"vlaou",
|
|
17467
|
+
"vo",
|
|
17468
|
+
"vod",
|
|
17469
|
+
"voe",
|
|
17470
|
+
"voec'h",
|
|
17471
|
+
"voed",
|
|
17472
|
+
"voemp",
|
|
17473
|
+
"voen",
|
|
17474
|
+
"voent",
|
|
17475
|
+
"voes",
|
|
17476
|
+
"vont",
|
|
17477
|
+
"vostapl",
|
|
17478
|
+
"vrac'h",
|
|
17479
|
+
"vrasañ",
|
|
17480
|
+
"vremañ",
|
|
17481
|
+
"w:",
|
|
17482
|
+
"walc'h",
|
|
17483
|
+
"war",
|
|
17484
|
+
"warnañ",
|
|
17485
|
+
"warni",
|
|
17486
|
+
"warno",
|
|
17487
|
+
"warnoc'h",
|
|
17488
|
+
"warnomp",
|
|
17489
|
+
"warnon",
|
|
17490
|
+
"warnor",
|
|
17491
|
+
"warnout",
|
|
17492
|
+
"wazh",
|
|
17493
|
+
"wech",
|
|
17494
|
+
"wechoù",
|
|
17495
|
+
"well",
|
|
17496
|
+
"y:",
|
|
17497
|
+
"you",
|
|
17498
|
+
"youadenn",
|
|
17499
|
+
"youc'hadenn",
|
|
17500
|
+
"youc'hou",
|
|
17501
|
+
"z:",
|
|
17502
|
+
"za",
|
|
17503
|
+
"zan",
|
|
17504
|
+
"zaw",
|
|
17505
|
+
"zeu",
|
|
17506
|
+
"zi",
|
|
17507
|
+
"ziar",
|
|
17508
|
+
"zigarez",
|
|
17509
|
+
"ziget",
|
|
17510
|
+
"zindan",
|
|
17511
|
+
"zioc'h",
|
|
17512
|
+
"ziouzh",
|
|
17513
|
+
"zirak",
|
|
17514
|
+
"zivout",
|
|
17515
|
+
"ziwar",
|
|
17516
|
+
"ziwezhañ",
|
|
17517
|
+
"zo",
|
|
17518
|
+
"zoken",
|
|
17519
|
+
"zokenoc'h",
|
|
17520
|
+
"zouesk",
|
|
17521
|
+
"zouez",
|
|
17522
|
+
"zro",
|
|
17523
|
+
"zu"
|
|
16358
17524
|
];
|
|
16359
17525
|
const bul = [
|
|
16360
17526
|
"а",
|
|
@@ -28010,22 +29176,32 @@ flowchart TD
|
|
|
28010
29176
|
"şöyle"
|
|
28011
29177
|
];
|
|
28012
29178
|
const ukr = [
|
|
29179
|
+
"а",
|
|
29180
|
+
"або",
|
|
28013
29181
|
"авжеж",
|
|
28014
29182
|
"адже",
|
|
29183
|
+
"аж",
|
|
28015
29184
|
"але",
|
|
29185
|
+
"ані",
|
|
28016
29186
|
"б",
|
|
28017
29187
|
"без",
|
|
29188
|
+
"би",
|
|
29189
|
+
"бо",
|
|
28018
29190
|
"був",
|
|
28019
29191
|
"була",
|
|
28020
29192
|
"були",
|
|
28021
29193
|
"було",
|
|
28022
29194
|
"бути",
|
|
28023
29195
|
"більш",
|
|
29196
|
+
"в",
|
|
28024
29197
|
"вам",
|
|
29198
|
+
"вами",
|
|
28025
29199
|
"вас",
|
|
28026
29200
|
"весь",
|
|
29201
|
+
"вже",
|
|
28027
29202
|
"вздовж",
|
|
28028
29203
|
"ви",
|
|
29204
|
+
"від",
|
|
28029
29205
|
"вниз",
|
|
28030
29206
|
"внизу",
|
|
28031
29207
|
"вона",
|
|
@@ -28034,55 +29210,138 @@ flowchart TD
|
|
|
28034
29210
|
"все",
|
|
28035
29211
|
"всередині",
|
|
28036
29212
|
"всіх",
|
|
29213
|
+
"вся",
|
|
28037
29214
|
"від",
|
|
28038
29215
|
"він",
|
|
28039
29216
|
"да",
|
|
28040
29217
|
"давай",
|
|
28041
29218
|
"давати",
|
|
28042
29219
|
"де",
|
|
29220
|
+
"десь",
|
|
28043
29221
|
"дещо",
|
|
28044
29222
|
"для",
|
|
28045
29223
|
"до",
|
|
29224
|
+
"є",
|
|
29225
|
+
"ж",
|
|
29226
|
+
"же",
|
|
28046
29227
|
"з",
|
|
29228
|
+
"за",
|
|
28047
29229
|
"завжди",
|
|
28048
29230
|
"замість",
|
|
29231
|
+
"зі",
|
|
29232
|
+
"і",
|
|
29233
|
+
"із",
|
|
29234
|
+
"інших",
|
|
29235
|
+
"її",
|
|
29236
|
+
"їй",
|
|
29237
|
+
"їм",
|
|
29238
|
+
"їх",
|
|
28049
29239
|
"й",
|
|
29240
|
+
"його",
|
|
29241
|
+
"йому",
|
|
28050
29242
|
"коли",
|
|
28051
29243
|
"ледве",
|
|
29244
|
+
"лиш",
|
|
28052
29245
|
"майже",
|
|
29246
|
+
"мене",
|
|
29247
|
+
"мені",
|
|
28053
29248
|
"ми",
|
|
29249
|
+
"між",
|
|
29250
|
+
"мій",
|
|
29251
|
+
"мною",
|
|
29252
|
+
"мов",
|
|
29253
|
+
"мого",
|
|
29254
|
+
"моєї",
|
|
29255
|
+
"моє",
|
|
29256
|
+
"може",
|
|
29257
|
+
"мої",
|
|
29258
|
+
"моїх",
|
|
29259
|
+
"моя",
|
|
29260
|
+
"на",
|
|
29261
|
+
"над",
|
|
28054
29262
|
"навколо",
|
|
28055
29263
|
"навіть",
|
|
28056
29264
|
"нам",
|
|
29265
|
+
"нами",
|
|
29266
|
+
"нас",
|
|
29267
|
+
"наче",
|
|
29268
|
+
"наш",
|
|
29269
|
+
"не",
|
|
29270
|
+
"нє",
|
|
29271
|
+
"неї",
|
|
29272
|
+
"нема",
|
|
29273
|
+
"немов",
|
|
29274
|
+
"неначе",
|
|
29275
|
+
"нею",
|
|
29276
|
+
"ним",
|
|
29277
|
+
"ними",
|
|
29278
|
+
"них",
|
|
29279
|
+
"ні",
|
|
29280
|
+
"ніби",
|
|
29281
|
+
"ніщо",
|
|
29282
|
+
"нього",
|
|
29283
|
+
"о",
|
|
29284
|
+
"ось",
|
|
28057
29285
|
"от",
|
|
28058
29286
|
"отже",
|
|
28059
29287
|
"отож",
|
|
29288
|
+
"під",
|
|
29289
|
+
"по",
|
|
28060
29290
|
"поза",
|
|
28061
29291
|
"про",
|
|
28062
29292
|
"під",
|
|
29293
|
+
"сам",
|
|
29294
|
+
"сама",
|
|
29295
|
+
"свій",
|
|
29296
|
+
"свої",
|
|
29297
|
+
"своя",
|
|
29298
|
+
"свою",
|
|
29299
|
+
"себе",
|
|
29300
|
+
"собі",
|
|
28063
29301
|
"та",
|
|
29302
|
+
"там",
|
|
28064
29303
|
"так",
|
|
29304
|
+
"така",
|
|
28065
29305
|
"такий",
|
|
28066
29306
|
"також",
|
|
29307
|
+
"твій",
|
|
29308
|
+
"твого",
|
|
29309
|
+
"твоєї",
|
|
29310
|
+
"твої",
|
|
29311
|
+
"твоя",
|
|
28067
29312
|
"те",
|
|
29313
|
+
"тебе",
|
|
28068
29314
|
"ти",
|
|
29315
|
+
"ті",
|
|
29316
|
+
"тільки",
|
|
29317
|
+
"то",
|
|
29318
|
+
"тобі",
|
|
29319
|
+
"тобою",
|
|
28069
29320
|
"тобто",
|
|
29321
|
+
"тоді",
|
|
28070
29322
|
"тож",
|
|
29323
|
+
"той",
|
|
28071
29324
|
"тощо",
|
|
29325
|
+
"тут",
|
|
29326
|
+
"у",
|
|
29327
|
+
"хіба",
|
|
29328
|
+
"хоч",
|
|
28072
29329
|
"хоча",
|
|
28073
29330
|
"це",
|
|
28074
29331
|
"цей",
|
|
29332
|
+
"ці",
|
|
29333
|
+
"ця",
|
|
28075
29334
|
"чи",
|
|
28076
29335
|
"чого",
|
|
29336
|
+
"ще",
|
|
28077
29337
|
"що",
|
|
29338
|
+
"щоб",
|
|
29339
|
+
"щось",
|
|
29340
|
+
"я",
|
|
28078
29341
|
"як",
|
|
29342
|
+
"яка",
|
|
28079
29343
|
"який",
|
|
28080
|
-
"якої"
|
|
28081
|
-
"є",
|
|
28082
|
-
"із",
|
|
28083
|
-
"інших",
|
|
28084
|
-
"їх",
|
|
28085
|
-
"її"
|
|
29344
|
+
"якої"
|
|
28086
29345
|
];
|
|
28087
29346
|
const urd = [
|
|
28088
29347
|
"آئی",
|
|
@@ -29080,7 +30339,14 @@ flowchart TD
|
|
|
29080
30339
|
const AUTH_TOKEN_KEY = "tinacms-auth";
|
|
29081
30340
|
const authenticate = (clientId, frontendUrl) => {
|
|
29082
30341
|
return new Promise((resolve) => {
|
|
29083
|
-
|
|
30342
|
+
const origin = `${window.location.protocol}//${window.location.host}`;
|
|
30343
|
+
const authTab = popupWindow(
|
|
30344
|
+
`${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
|
|
30345
|
+
"_blank",
|
|
30346
|
+
window,
|
|
30347
|
+
1e3,
|
|
30348
|
+
700
|
|
30349
|
+
);
|
|
29084
30350
|
window.addEventListener("message", function(e) {
|
|
29085
30351
|
if (e.data.source === TINA_LOGIN_EVENT) {
|
|
29086
30352
|
if (authTab) {
|
|
@@ -29093,14 +30359,6 @@ flowchart TD
|
|
|
29093
30359
|
});
|
|
29094
30360
|
}
|
|
29095
30361
|
});
|
|
29096
|
-
const origin = `${window.location.protocol}//${window.location.host}`;
|
|
29097
|
-
authTab = popupWindow(
|
|
29098
|
-
`${frontendUrl}/signin?clientId=${clientId}&origin=${origin}`,
|
|
29099
|
-
"_blank",
|
|
29100
|
-
window,
|
|
29101
|
-
1e3,
|
|
29102
|
-
700
|
|
29103
|
-
);
|
|
29104
30362
|
});
|
|
29105
30363
|
};
|
|
29106
30364
|
const DefaultSessionProvider = ({
|
|
@@ -29806,56 +31064,6 @@ mutation addPendingDocumentMutation(
|
|
|
29806
31064
|
!submitting && name
|
|
29807
31065
|
);
|
|
29808
31066
|
};
|
|
29809
|
-
const TINA_AUTH_CONFIG = "tina_auth_config";
|
|
29810
|
-
const useTinaAuthRedirect = () => {
|
|
29811
|
-
React.useEffect(() => {
|
|
29812
|
-
const urlParams = new URLSearchParams(window.location.search);
|
|
29813
|
-
const config = {
|
|
29814
|
-
code: urlParams.get("code") || "",
|
|
29815
|
-
scope: urlParams.get("scope") || "email",
|
|
29816
|
-
state: urlParams.get("state")
|
|
29817
|
-
};
|
|
29818
|
-
if (!config.code) {
|
|
29819
|
-
return;
|
|
29820
|
-
}
|
|
29821
|
-
localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
|
|
29822
|
-
}, []);
|
|
29823
|
-
};
|
|
29824
|
-
const createClient = ({
|
|
29825
|
-
clientId,
|
|
29826
|
-
isLocalClient = true,
|
|
29827
|
-
branch,
|
|
29828
|
-
tinaioConfig,
|
|
29829
|
-
schema,
|
|
29830
|
-
apiUrl,
|
|
29831
|
-
tinaGraphQLVersion
|
|
29832
|
-
}) => {
|
|
29833
|
-
return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
|
|
29834
|
-
clientId: clientId || "",
|
|
29835
|
-
branch: branch || "main",
|
|
29836
|
-
tokenStorage: "LOCAL_STORAGE",
|
|
29837
|
-
tinaioConfig,
|
|
29838
|
-
schema,
|
|
29839
|
-
tinaGraphQLVersion
|
|
29840
|
-
});
|
|
29841
|
-
};
|
|
29842
|
-
function assertShape(value, yupSchema, errorMessage) {
|
|
29843
|
-
const shape = yupSchema(yup__namespace);
|
|
29844
|
-
try {
|
|
29845
|
-
shape.validateSync(value);
|
|
29846
|
-
} catch (e) {
|
|
29847
|
-
const message = errorMessage || `Failed to assertShape - ${e.message}`;
|
|
29848
|
-
throw new Error(message);
|
|
29849
|
-
}
|
|
29850
|
-
}
|
|
29851
|
-
function safeAssertShape(value, yupSchema) {
|
|
29852
|
-
try {
|
|
29853
|
-
assertShape(value, yupSchema);
|
|
29854
|
-
return true;
|
|
29855
|
-
} catch (e) {
|
|
29856
|
-
return false;
|
|
29857
|
-
}
|
|
29858
|
-
}
|
|
29859
31067
|
class TinaAdminApi {
|
|
29860
31068
|
constructor(cms) {
|
|
29861
31069
|
var _a, _b, _c, _d;
|
|
@@ -30202,6 +31410,56 @@ mutation addPendingDocumentMutation(
|
|
|
30202
31410
|
);
|
|
30203
31411
|
}
|
|
30204
31412
|
}
|
|
31413
|
+
const createClient = ({
|
|
31414
|
+
clientId,
|
|
31415
|
+
isLocalClient = true,
|
|
31416
|
+
branch,
|
|
31417
|
+
tinaioConfig,
|
|
31418
|
+
schema,
|
|
31419
|
+
apiUrl,
|
|
31420
|
+
tinaGraphQLVersion
|
|
31421
|
+
}) => {
|
|
31422
|
+
return isLocalClient ? new LocalClient({ customContentApiUrl: apiUrl, schema }) : new Client({
|
|
31423
|
+
clientId: clientId || "",
|
|
31424
|
+
branch: branch || "main",
|
|
31425
|
+
tokenStorage: "LOCAL_STORAGE",
|
|
31426
|
+
tinaioConfig,
|
|
31427
|
+
schema,
|
|
31428
|
+
tinaGraphQLVersion
|
|
31429
|
+
});
|
|
31430
|
+
};
|
|
31431
|
+
function assertShape(value, yupSchema, errorMessage) {
|
|
31432
|
+
const shape = yupSchema(yup__namespace);
|
|
31433
|
+
try {
|
|
31434
|
+
shape.validateSync(value);
|
|
31435
|
+
} catch (e) {
|
|
31436
|
+
const message = errorMessage || `Failed to assertShape - ${e.message}`;
|
|
31437
|
+
throw new Error(message);
|
|
31438
|
+
}
|
|
31439
|
+
}
|
|
31440
|
+
function safeAssertShape(value, yupSchema) {
|
|
31441
|
+
try {
|
|
31442
|
+
assertShape(value, yupSchema);
|
|
31443
|
+
return true;
|
|
31444
|
+
} catch (e) {
|
|
31445
|
+
return false;
|
|
31446
|
+
}
|
|
31447
|
+
}
|
|
31448
|
+
const TINA_AUTH_CONFIG = "tina_auth_config";
|
|
31449
|
+
const useTinaAuthRedirect = () => {
|
|
31450
|
+
React.useEffect(() => {
|
|
31451
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
31452
|
+
const config = {
|
|
31453
|
+
code: urlParams.get("code") || "",
|
|
31454
|
+
scope: urlParams.get("scope") || "email",
|
|
31455
|
+
state: urlParams.get("state")
|
|
31456
|
+
};
|
|
31457
|
+
if (!config.code) {
|
|
31458
|
+
return;
|
|
31459
|
+
}
|
|
31460
|
+
localStorage[TINA_AUTH_CONFIG] = JSON.stringify(config);
|
|
31461
|
+
}, []);
|
|
31462
|
+
};
|
|
30205
31463
|
function sleep(ms) {
|
|
30206
31464
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
30207
31465
|
}
|
|
@@ -30538,6 +31796,9 @@ mutation addPendingDocumentMutation(
|
|
|
30538
31796
|
cms.flags.set("branch-switcher", true);
|
|
30539
31797
|
client.usingEditorialWorkflow = true;
|
|
30540
31798
|
client.protectedBranches = project.protectedBranches;
|
|
31799
|
+
if (!project.metadata[currentBranch]) {
|
|
31800
|
+
setCurrentBranch(project.defaultBranch || "main");
|
|
31801
|
+
}
|
|
30541
31802
|
}
|
|
30542
31803
|
});
|
|
30543
31804
|
};
|
|
@@ -30550,7 +31811,7 @@ mutation addPendingDocumentMutation(
|
|
|
30550
31811
|
}
|
|
30551
31812
|
});
|
|
30552
31813
|
return unsubscribe;
|
|
30553
|
-
}, [isTinaCloud, cms]);
|
|
31814
|
+
}, [currentBranch, isTinaCloud, cms]);
|
|
30554
31815
|
return /* @__PURE__ */ React.createElement(SessionProvider, { basePath: "/api/tina/auth" }, /* @__PURE__ */ React.createElement(
|
|
30555
31816
|
BranchDataProvider,
|
|
30556
31817
|
{
|
|
@@ -31403,6 +32664,35 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31403
32664
|
}) => {
|
|
31404
32665
|
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"));
|
|
31405
32666
|
};
|
|
32667
|
+
const isValidSortKey = (sortKey, collection) => {
|
|
32668
|
+
if (collection.fields) {
|
|
32669
|
+
const sortKeys = collection.fields.map((x) => x.name);
|
|
32670
|
+
return sortKeys.includes(sortKey);
|
|
32671
|
+
} else if (collection.templates) {
|
|
32672
|
+
const collectionMap = {};
|
|
32673
|
+
const conflictedFields = /* @__PURE__ */ new Set();
|
|
32674
|
+
for (const template of collection.templates) {
|
|
32675
|
+
for (const field of template.fields) {
|
|
32676
|
+
if (collectionMap[field.name]) {
|
|
32677
|
+
if (collectionMap[field.name].type !== field.type) {
|
|
32678
|
+
conflictedFields.add(field.name);
|
|
32679
|
+
}
|
|
32680
|
+
} else {
|
|
32681
|
+
collectionMap[field.name] = field;
|
|
32682
|
+
}
|
|
32683
|
+
}
|
|
32684
|
+
}
|
|
32685
|
+
for (const key in conflictedFields) {
|
|
32686
|
+
delete collectionMap[key];
|
|
32687
|
+
}
|
|
32688
|
+
for (const key in collectionMap) {
|
|
32689
|
+
if (key === sortKey) {
|
|
32690
|
+
return true;
|
|
32691
|
+
}
|
|
32692
|
+
}
|
|
32693
|
+
return false;
|
|
32694
|
+
}
|
|
32695
|
+
};
|
|
31406
32696
|
const useGetCollection = (cms, collectionName, includeDocuments = true, folder, after = "", sortKey, filterArgs) => {
|
|
31407
32697
|
const api = new TinaAdminApi(cms);
|
|
31408
32698
|
const schema = cms.api.tina.schema;
|
|
@@ -31414,10 +32704,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31414
32704
|
React.useEffect(() => {
|
|
31415
32705
|
let cancelled = false;
|
|
31416
32706
|
const fetchCollection = async () => {
|
|
31417
|
-
var _a;
|
|
31418
32707
|
if (await api.isAuthenticated() && !folder.loading && !cancelled) {
|
|
31419
32708
|
const { name, order } = JSON.parse(sortKey || "{}");
|
|
31420
|
-
const validSortKey = (
|
|
32709
|
+
const validSortKey = isValidSortKey(name, collectionExtra) ? name : void 0;
|
|
31421
32710
|
try {
|
|
31422
32711
|
const collection2 = await api.fetchCollection(
|
|
31423
32712
|
collectionName,
|
|
@@ -31713,6 +33002,7 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31713
33002
|
const [vars, setVars] = React.useState({
|
|
31714
33003
|
collection: collectionName,
|
|
31715
33004
|
relativePath: "",
|
|
33005
|
+
relativePathWithoutExtension: "",
|
|
31716
33006
|
newRelativePath: "",
|
|
31717
33007
|
filterField: "",
|
|
31718
33008
|
folderName: "",
|
|
@@ -31754,6 +33044,7 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31754
33044
|
...old,
|
|
31755
33045
|
collection: collectionName,
|
|
31756
33046
|
relativePath: "",
|
|
33047
|
+
relativePathWithoutExtension: "",
|
|
31757
33048
|
newRelativePath: "",
|
|
31758
33049
|
filterField: "",
|
|
31759
33050
|
startsWith: "",
|
|
@@ -31779,6 +33070,7 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31779
33070
|
collectionName === vars.collection ? vars : {
|
|
31780
33071
|
collection: collectionName,
|
|
31781
33072
|
relativePath: "",
|
|
33073
|
+
relativePathWithoutExtension: "",
|
|
31782
33074
|
newRelativePath: "",
|
|
31783
33075
|
filterField: "",
|
|
31784
33076
|
startsWith: "",
|
|
@@ -31866,7 +33158,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31866
33158
|
safeSubmit: async () => {
|
|
31867
33159
|
try {
|
|
31868
33160
|
await admin.deleteDocument(vars);
|
|
31869
|
-
cms.alerts.info(
|
|
33161
|
+
cms.alerts.info(
|
|
33162
|
+
"Document was successfully deleted"
|
|
33163
|
+
);
|
|
31870
33164
|
reFetchCollection();
|
|
31871
33165
|
} catch (error) {
|
|
31872
33166
|
cms.alerts.warn(
|
|
@@ -31880,7 +33174,7 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31880
33174
|
), renameModalOpen && /* @__PURE__ */ React.createElement(
|
|
31881
33175
|
RenameModal,
|
|
31882
33176
|
{
|
|
31883
|
-
filename: vars.
|
|
33177
|
+
filename: vars.relativePathWithoutExtension,
|
|
31884
33178
|
newRelativePath: vars.newRelativePath,
|
|
31885
33179
|
setNewRelativePath: (newRelativePath) => {
|
|
31886
33180
|
setVars((vars2) => {
|
|
@@ -31895,7 +33189,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31895
33189
|
relativePath: vars.relativePath,
|
|
31896
33190
|
newRelativePath
|
|
31897
33191
|
});
|
|
31898
|
-
cms.alerts.info(
|
|
33192
|
+
cms.alerts.info(
|
|
33193
|
+
"Document was successfully renamed"
|
|
33194
|
+
);
|
|
31899
33195
|
reFetchCollection();
|
|
31900
33196
|
} catch (error) {
|
|
31901
33197
|
if (error.message.indexOf("has references")) {
|
|
@@ -31995,7 +33291,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
31995
33291
|
name: "sort",
|
|
31996
33292
|
value: sortKey,
|
|
31997
33293
|
onChange: (e) => {
|
|
31998
|
-
const val = JSON.parse(
|
|
33294
|
+
const val = JSON.parse(
|
|
33295
|
+
e.target.value
|
|
33296
|
+
);
|
|
31999
33297
|
setEndCursor("");
|
|
32000
33298
|
setPrevCursors([]);
|
|
32001
33299
|
window == null ? void 0 : window.localStorage.setItem(
|
|
@@ -32201,6 +33499,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
32201
33499
|
setVars((old) => ({
|
|
32202
33500
|
...old,
|
|
32203
33501
|
collection: collectionName,
|
|
33502
|
+
relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
|
|
33503
|
+
"/"
|
|
33504
|
+
),
|
|
32204
33505
|
relativePath: document2.node._sys.breadcrumbs.join(
|
|
32205
33506
|
"/"
|
|
32206
33507
|
) + document2.node._sys.extension,
|
|
@@ -32223,6 +33524,9 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
32223
33524
|
setVars((old) => ({
|
|
32224
33525
|
...old,
|
|
32225
33526
|
collection: collectionName,
|
|
33527
|
+
relativePathWithoutExtension: document2.node._sys.breadcrumbs.join(
|
|
33528
|
+
"/"
|
|
33529
|
+
),
|
|
32226
33530
|
relativePath: document2.node._sys.breadcrumbs.join(
|
|
32227
33531
|
"/"
|
|
32228
33532
|
) + document2.node._sys.extension,
|
|
@@ -32435,7 +33739,7 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
32435
33739
|
newRelativePath,
|
|
32436
33740
|
setNewRelativePath
|
|
32437
33741
|
}) => {
|
|
32438
|
-
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), "?
|
|
33742
|
+
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(
|
|
32439
33743
|
BaseTextField,
|
|
32440
33744
|
{
|
|
32441
33745
|
placeholder: "Enter a new name for the document's file",
|
|
@@ -32450,7 +33754,8 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
32450
33754
|
onClick: async () => {
|
|
32451
33755
|
await renameFunc();
|
|
32452
33756
|
close2();
|
|
32453
|
-
}
|
|
33757
|
+
},
|
|
33758
|
+
disabled: !newRelativePath || newRelativePath === filename
|
|
32454
33759
|
},
|
|
32455
33760
|
"Rename"
|
|
32456
33761
|
))));
|
|
@@ -32777,7 +34082,10 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
32777
34082
|
const fetchDocument = async () => {
|
|
32778
34083
|
if (api.isAuthenticated()) {
|
|
32779
34084
|
try {
|
|
32780
|
-
const response = await api.fetchDocument(
|
|
34085
|
+
const response = await api.fetchDocument(
|
|
34086
|
+
collectionName,
|
|
34087
|
+
relativePath2
|
|
34088
|
+
);
|
|
32781
34089
|
setDocument(response.document);
|
|
32782
34090
|
} catch (error2) {
|
|
32783
34091
|
cms.alerts.error(
|
|
@@ -33121,15 +34429,24 @@ This will work when developing locally but NOT when deployed to production.
|
|
|
33121
34429
|
}
|
|
33122
34430
|
}
|
|
33123
34431
|
if (state === "creatingPR") {
|
|
33124
|
-
|
|
33125
|
-
|
|
33126
|
-
|
|
33127
|
-
|
|
33128
|
-
|
|
33129
|
-
|
|
33130
|
-
|
|
33131
|
-
|
|
33132
|
-
|
|
34432
|
+
try {
|
|
34433
|
+
const foo = await tinaApi.createPullRequest({
|
|
34434
|
+
baseBranch,
|
|
34435
|
+
branch,
|
|
34436
|
+
title: `${branch.replace("tina/", "").replace("-", " ")} (PR from TinaCMS)`
|
|
34437
|
+
});
|
|
34438
|
+
console.log("PR created", foo);
|
|
34439
|
+
cms.alerts.success("Pull request created.");
|
|
34440
|
+
localStorage.setItem("tina.createBranchState", "done");
|
|
34441
|
+
setState("done");
|
|
34442
|
+
} catch (e) {
|
|
34443
|
+
console.error(e);
|
|
34444
|
+
cms.alerts.error("Failed to create PR");
|
|
34445
|
+
setErrorMessage(
|
|
34446
|
+
"Failed to create PR, please try again. If the problem persists please contact support."
|
|
34447
|
+
);
|
|
34448
|
+
setState("error");
|
|
34449
|
+
}
|
|
33133
34450
|
}
|
|
33134
34451
|
if (state === "done") {
|
|
33135
34452
|
window.location.href = back;
|