@blinkk/root-cms 1.0.0-rc.0 → 1.0.0-rc.10
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/app.js +4 -3
- package/dist/cli.js +67 -34
- package/dist/client.js +346 -0
- package/dist/core/client.d.ts +196 -0
- package/dist/core/core.d.ts +56 -0
- package/dist/{project.d.ts → core/project.d.ts} +1 -1
- package/dist/core.js +415 -109
- package/dist/functions.js +29 -20
- package/dist/plugin.js +29 -20
- package/dist/project.js +4 -1
- package/dist/richtext/richtext.d.ts +65 -0
- package/dist/richtext.js +119 -0
- package/dist/{schema-49de9659.d.ts → schema-710fda8a.d.ts} +16 -1
- package/dist/ui/signin.css +44 -57
- package/dist/ui/signin.js +1318 -706
- package/dist/ui/ui.css +97 -44
- package/dist/ui/ui.js +23832 -10136
- package/package.json +41 -25
- package/dist/core.d.ts +0 -108
- /package/dist/{functions.d.ts → core/functions.d.ts} +0 -0
- /package/dist/{plugin.d.ts → core/plugin.d.ts} +0 -0
package/dist/richtext.js
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
// richtext/richtext.tsx
|
|
2
|
+
import { useTranslations } from "@blinkk/root";
|
|
3
|
+
import { Fragment, jsx, jsxs } from "preact/jsx-runtime";
|
|
4
|
+
function RichText(props) {
|
|
5
|
+
var _a;
|
|
6
|
+
const components = {
|
|
7
|
+
heading: RichText.HeadingBlock,
|
|
8
|
+
html: RichText.HtmlBlock,
|
|
9
|
+
image: RichText.ImageBlock,
|
|
10
|
+
orderedList: RichText.ListBlock,
|
|
11
|
+
paragraph: RichText.ParagraphBlock,
|
|
12
|
+
unorderedList: RichText.ListBlock,
|
|
13
|
+
...props.components
|
|
14
|
+
};
|
|
15
|
+
const blocks = (((_a = props.data) == null ? void 0 : _a.blocks) || []).filter((block) => {
|
|
16
|
+
const blockType = block == null ? void 0 : block.type;
|
|
17
|
+
if (!blockType) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
if (!(blockType in components)) {
|
|
21
|
+
console.warn(`ignoring unknown richtext type: "${blockType}"`);
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
});
|
|
26
|
+
return /* @__PURE__ */ jsx(Fragment, { children: blocks.map((block) => {
|
|
27
|
+
const Block = components[block.type];
|
|
28
|
+
return /* @__PURE__ */ jsx(Block, { ...block });
|
|
29
|
+
}) });
|
|
30
|
+
}
|
|
31
|
+
RichText.ParagraphBlock = (props) => {
|
|
32
|
+
var _a;
|
|
33
|
+
if (!((_a = props.data) == null ? void 0 : _a.text)) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
const t = useTranslations();
|
|
37
|
+
return /* @__PURE__ */ jsx("p", { dangerouslySetInnerHTML: { __html: t(props.data.text) } });
|
|
38
|
+
};
|
|
39
|
+
RichText.HeadingBlock = (props) => {
|
|
40
|
+
var _a;
|
|
41
|
+
if (!((_a = props.data) == null ? void 0 : _a.text)) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const t = useTranslations();
|
|
45
|
+
const level = props.data.level || 2;
|
|
46
|
+
const Component = `h${level}`;
|
|
47
|
+
return /* @__PURE__ */ jsx(Component, { dangerouslySetInnerHTML: { __html: t(props.data.text) } });
|
|
48
|
+
};
|
|
49
|
+
RichText.ListBlock = (props) => {
|
|
50
|
+
var _a, _b, _c;
|
|
51
|
+
if (!((_b = (_a = props.data) == null ? void 0 : _a.items) == null ? void 0 : _b.length)) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
let style = (_c = props.data) == null ? void 0 : _c.style;
|
|
55
|
+
if (!style) {
|
|
56
|
+
style = props.type === "orderedList" ? "ordered" : "unordered";
|
|
57
|
+
}
|
|
58
|
+
const Component = style === "ordered" ? "ol" : "ul";
|
|
59
|
+
const items = props.data.items;
|
|
60
|
+
const t = useTranslations();
|
|
61
|
+
return /* @__PURE__ */ jsx(Component, { children: items.map((item) => {
|
|
62
|
+
var _a2;
|
|
63
|
+
if (item.content || ((_a2 = item.items) == null ? void 0 : _a2.length)) {
|
|
64
|
+
return /* @__PURE__ */ jsxs("li", { children: [
|
|
65
|
+
item.content && /* @__PURE__ */ jsx(
|
|
66
|
+
RichText.ParagraphBlock,
|
|
67
|
+
{
|
|
68
|
+
type: "paragraph",
|
|
69
|
+
data: { text: item.content }
|
|
70
|
+
}
|
|
71
|
+
),
|
|
72
|
+
item.items && item.items.length > 0 && /* @__PURE__ */ jsx(
|
|
73
|
+
RichText.ListBlock,
|
|
74
|
+
{
|
|
75
|
+
type: props.type,
|
|
76
|
+
data: { style, items: item.items }
|
|
77
|
+
}
|
|
78
|
+
)
|
|
79
|
+
] });
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}) });
|
|
83
|
+
};
|
|
84
|
+
RichText.ImageBlock = (props) => {
|
|
85
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
86
|
+
const imageUrl = (_b = (_a = props.data) == null ? void 0 : _a.file) == null ? void 0 : _b.url;
|
|
87
|
+
if (!imageUrl) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const width = toNumber((_d = (_c = props.data) == null ? void 0 : _c.file) == null ? void 0 : _d.width);
|
|
91
|
+
const height = toNumber((_f = (_e = props.data) == null ? void 0 : _e.file) == null ? void 0 : _f.height);
|
|
92
|
+
const alt = ((_h = (_g = props.data) == null ? void 0 : _g.file) == null ? void 0 : _h.alt) || "";
|
|
93
|
+
return /* @__PURE__ */ jsx("img", { src: imageUrl, width, height, alt });
|
|
94
|
+
};
|
|
95
|
+
RichText.HtmlBlock = (props) => {
|
|
96
|
+
var _a;
|
|
97
|
+
const html = ((_a = props.data) == null ? void 0 : _a.html) || "";
|
|
98
|
+
if (!html) {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
return /* @__PURE__ */ jsx("div", { dangerouslySetInnerHTML: { __html: html } });
|
|
102
|
+
};
|
|
103
|
+
function toNumber(input) {
|
|
104
|
+
if (input === void 0) {
|
|
105
|
+
return 0;
|
|
106
|
+
}
|
|
107
|
+
if (typeof input === "number") {
|
|
108
|
+
return input;
|
|
109
|
+
}
|
|
110
|
+
const parsedNumber = parseFloat(input);
|
|
111
|
+
if (isNaN(parsedNumber)) {
|
|
112
|
+
return 0;
|
|
113
|
+
}
|
|
114
|
+
return parsedNumber;
|
|
115
|
+
}
|
|
116
|
+
export {
|
|
117
|
+
RichText
|
|
118
|
+
};
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vcmljaHRleHQvcmljaHRleHQudHN4Il0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQge3VzZVRyYW5zbGF0aW9uc30gZnJvbSAnQGJsaW5ray9yb290JztcbmltcG9ydCB7RnVuY3Rpb25hbENvbXBvbmVudH0gZnJvbSAncHJlYWN0JztcbmltcG9ydCB7UmljaFRleHREYXRhfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgUmljaFRleHRCbG9ja0NvbXBvbmVudCA9IEZ1bmN0aW9uYWxDb21wb25lbnQ8YW55PjtcblxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dFByb3BzIHtcbiAgZGF0YTogUmljaFRleHREYXRhO1xuICBjb21wb25lbnRzPzogUmVjb3JkPHN0cmluZywgUmljaFRleHRCbG9ja0NvbXBvbmVudD47XG59XG5cbi8qKiBSZW5kZXJzIGRhdGEgZnJvbSB0aGUgXCJyaWNodGV4dFwiIGZpZWxkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFJpY2hUZXh0KHByb3BzOiBSaWNoVGV4dFByb3BzKSB7XG4gIGNvbnN0IGNvbXBvbmVudHM6IFJlY29yZDxzdHJpbmcsIFJpY2hUZXh0QmxvY2tDb21wb25lbnQ+ID0ge1xuICAgIGhlYWRpbmc6IFJpY2hUZXh0LkhlYWRpbmdCbG9jayxcbiAgICBodG1sOiBSaWNoVGV4dC5IdG1sQmxvY2ssXG4gICAgaW1hZ2U6IFJpY2hUZXh0LkltYWdlQmxvY2ssXG4gICAgb3JkZXJlZExpc3Q6IFJpY2hUZXh0Lkxpc3RCbG9jayxcbiAgICBwYXJhZ3JhcGg6IFJpY2hUZXh0LlBhcmFncmFwaEJsb2NrLFxuICAgIHVub3JkZXJlZExpc3Q6IFJpY2hUZXh0Lkxpc3RCbG9jayxcbiAgICAuLi5wcm9wcy5jb21wb25lbnRzLFxuICB9O1xuICBjb25zdCBibG9ja3MgPSAocHJvcHMuZGF0YT8uYmxvY2tzIHx8IFtdKS5maWx0ZXIoKGJsb2NrKSA9PiB7XG4gICAgY29uc3QgYmxvY2tUeXBlID0gYmxvY2s/LnR5cGU7XG4gICAgaWYgKCFibG9ja1R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKCEoYmxvY2tUeXBlIGluIGNvbXBvbmVudHMpKSB7XG4gICAgICBjb25zb2xlLndhcm4oYGlnbm9yaW5nIHVua25vd24gcmljaHRleHQgdHlwZTogXCIke2Jsb2NrVHlwZX1cImApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtibG9ja3MubWFwKChibG9jaykgPT4ge1xuICAgICAgICBjb25zdCBCbG9jayA9IGNvbXBvbmVudHNbYmxvY2sudHlwZV07XG4gICAgICAgIHJldHVybiA8QmxvY2sgey4uLmJsb2NrfSAvPjtcbiAgICAgIH0pfVxuICAgIDwvPlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hUZXh0UGFyYWdyYXBoQmxvY2tQcm9wcyB7XG4gIHR5cGU6ICdwYXJhZ3JhcGgnO1xuICBkYXRhPzoge1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gIH07XG59XG5cblJpY2hUZXh0LlBhcmFncmFwaEJsb2NrID0gKHByb3BzOiBSaWNoVGV4dFBhcmFncmFwaEJsb2NrUHJvcHMpID0+IHtcbiAgaWYgKCFwcm9wcy5kYXRhPy50ZXh0KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3QgdCA9IHVzZVRyYW5zbGF0aW9ucygpO1xuICByZXR1cm4gPHAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tfX2h0bWw6IHQocHJvcHMuZGF0YS50ZXh0KX19IC8+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dEhlYWRpbmdCbG9ja1Byb3BzIHtcbiAgdHlwZTogJ2hlYWRpbmcnO1xuICBkYXRhPzoge1xuICAgIGxldmVsPzogbnVtYmVyO1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gIH07XG59XG5cbnR5cGUgSGVhZGluZ0NvbXBvbmVudCA9ICdoMScgfCAnaDInIHwgJ2gzJyB8ICdoNCcgfCAnaDUnIHwgJ2g2JztcblxuUmljaFRleHQuSGVhZGluZ0Jsb2NrID0gKHByb3BzOiBSaWNoVGV4dEhlYWRpbmdCbG9ja1Byb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuZGF0YT8udGV4dCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IHQgPSB1c2VUcmFuc2xhdGlvbnMoKTtcbiAgY29uc3QgbGV2ZWwgPSBwcm9wcy5kYXRhLmxldmVsIHx8IDI7XG4gIGNvbnN0IENvbXBvbmVudCA9IGBoJHtsZXZlbH1gIGFzIEhlYWRpbmdDb21wb25lbnQ7XG4gIHJldHVybiA8Q29tcG9uZW50IGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7X19odG1sOiB0KHByb3BzLmRhdGEudGV4dCl9fSAvPjtcbn07XG5cbmludGVyZmFjZSBMaXN0SXRlbSB7XG4gIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIGl0ZW1zPzogTGlzdEl0ZW1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dExpc3RCbG9ja1Byb3BzIHtcbiAgdHlwZTogJ29yZGVyZWRMaXN0JyB8ICd1bm9yZGVyZWRMaXN0JztcbiAgZGF0YT86IHtcbiAgICBzdHlsZT86ICdvcmRlcmVkJyB8ICd1bm9yZGVyZWQnO1xuICAgIGl0ZW1zPzogTGlzdEl0ZW1bXTtcbiAgfTtcbn1cblxuUmljaFRleHQuTGlzdEJsb2NrID0gKHByb3BzOiBSaWNoVGV4dExpc3RCbG9ja1Byb3BzKSA9PiB7XG4gIGlmICghcHJvcHMuZGF0YT8uaXRlbXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IHN0eWxlID0gcHJvcHMuZGF0YT8uc3R5bGU7XG4gIGlmICghc3R5bGUpIHtcbiAgICBzdHlsZSA9IHByb3BzLnR5cGUgPT09ICdvcmRlcmVkTGlzdCcgPyAnb3JkZXJlZCcgOiAndW5vcmRlcmVkJztcbiAgfVxuICBjb25zdCBDb21wb25lbnQgPSBzdHlsZSA9PT0gJ29yZGVyZWQnID8gJ29sJyA6ICd1bCc7XG4gIGNvbnN0IGl0ZW1zID0gcHJvcHMuZGF0YS5pdGVtcztcbiAgY29uc3QgdCA9IHVzZVRyYW5zbGF0aW9ucygpO1xuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnQ+XG4gICAgICB7aXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmNvbnRlbnQgfHwgaXRlbS5pdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAge2l0ZW0uY29udGVudCAmJiAoXG4gICAgICAgICAgICAgICAgPFJpY2hUZXh0LlBhcmFncmFwaEJsb2NrXG4gICAgICAgICAgICAgICAgICB0eXBlPVwicGFyYWdyYXBoXCJcbiAgICAgICAgICAgICAgICAgIGRhdGE9e3t0ZXh0OiBpdGVtLmNvbnRlbnR9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHtpdGVtLml0ZW1zICYmIGl0ZW0uaXRlbXMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPFJpY2hUZXh0Lkxpc3RCbG9ja1xuICAgICAgICAgICAgICAgICAgdHlwZT17cHJvcHMudHlwZX1cbiAgICAgICAgICAgICAgICAgIGRhdGE9e3tzdHlsZSwgaXRlbXM6IGl0ZW0uaXRlbXN9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KX1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmljaFRleHRJbWFnZUJsb2NrUHJvcHMge1xuICB0eXBlOiAnaW1hZ2UnO1xuICBkYXRhPzoge1xuICAgIGZpbGU/OiB7XG4gICAgICB1cmw6IHN0cmluZztcbiAgICAgIHdpZHRoOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgICBoZWlnaHQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICAgIGFsdDogc3RyaW5nO1xuICAgIH07XG4gIH07XG59XG5cblJpY2hUZXh0LkltYWdlQmxvY2sgPSAocHJvcHM6IFJpY2hUZXh0SW1hZ2VCbG9ja1Byb3BzKSA9PiB7XG4gIGNvbnN0IGltYWdlVXJsID0gcHJvcHMuZGF0YT8uZmlsZT8udXJsO1xuICBpZiAoIWltYWdlVXJsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgY29uc3Qgd2lkdGggPSB0b051bWJlcihwcm9wcy5kYXRhPy5maWxlPy53aWR0aCk7XG4gIGNvbnN0IGhlaWdodCA9IHRvTnVtYmVyKHByb3BzLmRhdGE/LmZpbGU/LmhlaWdodCk7XG4gIGNvbnN0IGFsdCA9IHByb3BzLmRhdGE/LmZpbGU/LmFsdCB8fCAnJztcbiAgcmV0dXJuIDxpbWcgc3JjPXtpbWFnZVVybH0gd2lkdGg9e3dpZHRofSBoZWlnaHQ9e2hlaWdodH0gYWx0PXthbHR9IC8+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBSaWNoVGV4dEh0bWxCbG9ja1Byb3BzIHtcbiAgdHlwZTogJ2h0bWwnO1xuICBkYXRhPzoge1xuICAgIGh0bWw/OiBzdHJpbmc7XG4gIH07XG59XG5cblJpY2hUZXh0Lkh0bWxCbG9jayA9IChwcm9wczogUmljaFRleHRIdG1sQmxvY2tQcm9wcykgPT4ge1xuICBjb25zdCBodG1sID0gcHJvcHMuZGF0YT8uaHRtbCB8fCAnJztcbiAgaWYgKCFodG1sKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgcmV0dXJuIDxkaXYgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tfX2h0bWw6IGh0bWx9fSAvPjtcbn07XG5cbmZ1bmN0aW9uIHRvTnVtYmVyKGlucHV0Pzogc3RyaW5nIHwgbnVtYmVyKTogbnVtYmVyIHtcbiAgaWYgKGlucHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZUZsb2F0KGlucHV0KTtcbiAgaWYgKGlzTmFOKHBhcnNlZE51bWJlcikpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuICByZXR1cm4gcGFyc2VkTnVtYmVyO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQUFBLFNBQVEsdUJBQXNCO0FBa0MxQixtQkFHVyxLQXVFSCxZQTFFUjtBQXRCRyxTQUFTLFNBQVMsT0FBc0I7QUFaL0M7QUFhRSxRQUFNLGFBQXFEO0FBQUEsSUFDekQsU0FBUyxTQUFTO0FBQUEsSUFDbEIsTUFBTSxTQUFTO0FBQUEsSUFDZixPQUFPLFNBQVM7QUFBQSxJQUNoQixhQUFhLFNBQVM7QUFBQSxJQUN0QixXQUFXLFNBQVM7QUFBQSxJQUNwQixlQUFlLFNBQVM7QUFBQSxJQUN4QixHQUFHLE1BQU07QUFBQSxFQUNYO0FBQ0EsUUFBTSxZQUFVLFdBQU0sU0FBTixtQkFBWSxXQUFVLENBQUMsR0FBRyxPQUFPLENBQUMsVUFBVTtBQUMxRCxVQUFNLFlBQVksK0JBQU87QUFDekIsUUFBSSxDQUFDLFdBQVc7QUFDZCxhQUFPO0FBQUEsSUFDVDtBQUNBLFFBQUksRUFBRSxhQUFhLGFBQWE7QUFDOUIsY0FBUSxLQUFLLG9DQUFvQyxTQUFTLEdBQUc7QUFDN0QsYUFBTztBQUFBLElBQ1Q7QUFDQSxXQUFPO0FBQUEsRUFDVCxDQUFDO0FBQ0QsU0FDRSxnQ0FDRyxpQkFBTyxJQUFJLENBQUMsVUFBVTtBQUNyQixVQUFNLFFBQVEsV0FBVyxNQUFNLElBQUk7QUFDbkMsV0FBTyxvQkFBQyxTQUFPLEdBQUcsT0FBTztBQUFBLEVBQzNCLENBQUMsR0FDSDtBQUVKO0FBU0EsU0FBUyxpQkFBaUIsQ0FBQyxVQUF1QztBQWxEbEU7QUFtREUsTUFBSSxHQUFDLFdBQU0sU0FBTixtQkFBWSxPQUFNO0FBQ3JCLFdBQU87QUFBQSxFQUNUO0FBQ0EsUUFBTSxJQUFJLGdCQUFnQjtBQUMxQixTQUFPLG9CQUFDLE9BQUUseUJBQXlCLEVB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
|
|
@@ -68,6 +68,11 @@ type FileField = CommonFieldProps & {
|
|
|
68
68
|
type: 'file';
|
|
69
69
|
/** List of supported exts, e.g. `['.mp4']`. */
|
|
70
70
|
exts?: string[];
|
|
71
|
+
/**
|
|
72
|
+
* Whether to preserve the final serving filename when a user uploads a file.
|
|
73
|
+
* By default, the filename is hashed for obfuscation purposes.
|
|
74
|
+
*/
|
|
75
|
+
preserveFilename?: boolean;
|
|
71
76
|
};
|
|
72
77
|
declare function file(field: Omit<FileField, 'type'>): FileField;
|
|
73
78
|
type ObjectField = CommonFieldProps & {
|
|
@@ -105,7 +110,13 @@ type OneOfField = CommonFieldProps & {
|
|
|
105
110
|
types: Schema[];
|
|
106
111
|
};
|
|
107
112
|
declare function oneOf(field: Omit<OneOfField, 'type'>): OneOfField;
|
|
108
|
-
type
|
|
113
|
+
type RichTextField = CommonFieldProps & {
|
|
114
|
+
type: 'richtext';
|
|
115
|
+
translate?: boolean;
|
|
116
|
+
placeholder?: string;
|
|
117
|
+
};
|
|
118
|
+
declare function richtext(field: Omit<RichTextField, 'type'>): RichTextField;
|
|
119
|
+
type Field = StringField | NumberField | DateField | DateTimeField | BooleanField | SelectField | MultiSelectField | ImageField | FileField | ObjectField | ArrayField | OneOfField | RichTextField;
|
|
109
120
|
/**
|
|
110
121
|
* Similar to {@link Field} but with a required `id`.
|
|
111
122
|
* TODO(stevenle): fix this.
|
|
@@ -157,6 +168,7 @@ type schema_NumberField = NumberField;
|
|
|
157
168
|
type schema_ObjectField = ObjectField;
|
|
158
169
|
type schema_ObjectLikeField = ObjectLikeField;
|
|
159
170
|
type schema_OneOfField = OneOfField;
|
|
171
|
+
type schema_RichTextField = RichTextField;
|
|
160
172
|
type schema_Schema = Schema;
|
|
161
173
|
type schema_SelectField = SelectField;
|
|
162
174
|
type schema_StringField = StringField;
|
|
@@ -174,6 +186,7 @@ declare const schema_multiselect: typeof multiselect;
|
|
|
174
186
|
declare const schema_number: typeof number;
|
|
175
187
|
declare const schema_object: typeof object;
|
|
176
188
|
declare const schema_oneOf: typeof oneOf;
|
|
189
|
+
declare const schema_richtext: typeof richtext;
|
|
177
190
|
declare const schema_select: typeof select;
|
|
178
191
|
declare const schema_string: typeof string;
|
|
179
192
|
declare namespace schema {
|
|
@@ -193,6 +206,7 @@ declare namespace schema {
|
|
|
193
206
|
schema_ObjectField as ObjectField,
|
|
194
207
|
schema_ObjectLikeField as ObjectLikeField,
|
|
195
208
|
schema_OneOfField as OneOfField,
|
|
209
|
+
schema_RichTextField as RichTextField,
|
|
196
210
|
schema_Schema as Schema,
|
|
197
211
|
schema_SelectField as SelectField,
|
|
198
212
|
schema_StringField as StringField,
|
|
@@ -210,6 +224,7 @@ declare namespace schema {
|
|
|
210
224
|
schema_number as number,
|
|
211
225
|
schema_object as object,
|
|
212
226
|
schema_oneOf as oneOf,
|
|
227
|
+
schema_richtext as richtext,
|
|
213
228
|
schema_select as select,
|
|
214
229
|
schema_string as string,
|
|
215
230
|
};
|
package/dist/ui/signin.css
CHANGED
|
@@ -105,74 +105,61 @@ body.menu\:open {
|
|
|
105
105
|
|
|
106
106
|
/* signin/styles/signin.css */
|
|
107
107
|
.signin {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
width: 100%;
|
|
113
|
-
min-height: 100vh;
|
|
114
|
-
justify-content: center;
|
|
115
|
-
align-items: center;
|
|
116
|
-
}
|
|
117
|
-
.signin__card {
|
|
118
|
-
background: #FFFFFF;
|
|
119
|
-
border-radius: 12px;
|
|
120
|
-
width: 380px;
|
|
121
|
-
display: flex;
|
|
122
|
-
flex-direction: column;
|
|
123
|
-
align-items: center;
|
|
124
|
-
justify-content: center;
|
|
125
|
-
gap: 48px;
|
|
126
|
-
padding: 150px 24px;
|
|
127
|
-
}
|
|
128
|
-
.signin__card__header {
|
|
129
|
-
display: flex;
|
|
130
|
-
flex-direction: column;
|
|
131
|
-
align-items: center;
|
|
132
|
-
justify-content: center;
|
|
108
|
+
font-family:
|
|
109
|
+
"Google Sans",
|
|
110
|
+
arial,
|
|
111
|
+
sans-serif;
|
|
133
112
|
text-align: center;
|
|
134
|
-
|
|
113
|
+
padding: 48px 20px;
|
|
114
|
+
color: #3c4043;
|
|
135
115
|
}
|
|
136
|
-
.
|
|
137
|
-
|
|
138
|
-
border: 4px solid black;
|
|
139
|
-
border-radius: 50%;
|
|
140
|
-
display: flex;
|
|
141
|
-
align-items: center;
|
|
142
|
-
justify-content: center;
|
|
116
|
+
.signin__headline {
|
|
117
|
+
margin-bottom: 40px;
|
|
143
118
|
}
|
|
144
|
-
.
|
|
145
|
-
|
|
146
|
-
|
|
119
|
+
.signin__headline__title {
|
|
120
|
+
font-size: 36px;
|
|
121
|
+
line-height: 1.3;
|
|
122
|
+
font-weight: 500;
|
|
123
|
+
margin-bottom: 20px;
|
|
124
|
+
}
|
|
125
|
+
.signin__headline__body {
|
|
126
|
+
font-size: 18px;
|
|
127
|
+
line-height: 1.5;
|
|
128
|
+
font-weight: 500;
|
|
147
129
|
}
|
|
148
130
|
.signin__button {
|
|
149
131
|
align-items: center;
|
|
150
132
|
-webkit-appearance: none;
|
|
151
133
|
-moz-appearance: none;
|
|
152
134
|
appearance: none;
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
135
|
+
display: inline-flex;
|
|
136
|
+
align-items: center;
|
|
137
|
+
text-align: center;
|
|
138
|
+
gap: 12px;
|
|
139
|
+
padding: 8px 11px;
|
|
140
|
+
background: white;
|
|
141
|
+
border: 1px solid #dadce0;
|
|
142
|
+
border-radius: 4px;
|
|
157
143
|
cursor: pointer;
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
justify-content: center;
|
|
168
|
-
line-height: 1.625;
|
|
169
|
-
padding: 8px 48px;
|
|
170
|
-
text-decoration: none;
|
|
171
|
-
gap: 16px;
|
|
144
|
+
font-family: inherit;
|
|
145
|
+
padding: 0 12px;
|
|
146
|
+
height: 40px;
|
|
147
|
+
box-sizing: border-box;
|
|
148
|
+
transition: all 0.218s ease;
|
|
149
|
+
}
|
|
150
|
+
.signin__button:hover {
|
|
151
|
+
border-color: #d2e3fc;
|
|
152
|
+
background-color: rgba(66, 133, 244, 0.04);
|
|
172
153
|
}
|
|
173
154
|
.signin__button__icon {
|
|
174
|
-
width:
|
|
175
|
-
height:
|
|
155
|
+
width: 18px;
|
|
156
|
+
height: 18px;
|
|
176
157
|
background-color: white;
|
|
177
|
-
|
|
158
|
+
}
|
|
159
|
+
.signin__button__label {
|
|
160
|
+
font-size: 14px;
|
|
161
|
+
line-height: 1;
|
|
162
|
+
letter-spacing: .25px;
|
|
163
|
+
font-weight: 500;
|
|
164
|
+
color: #3c4043;
|
|
178
165
|
}
|