@webiny/app-admin-ui 6.0.0-alpha.0
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/Dashboard/Welcome.d.ts +3 -0
- package/Dashboard/Welcome.js +48 -0
- package/Dashboard/Welcome.js.map +1 -0
- package/Dashboard/components/ApplicationWidget.d.ts +9 -0
- package/Dashboard/components/ApplicationWidget.js +31 -0
- package/Dashboard/components/ApplicationWidget.js.map +1 -0
- package/Dashboard/components/AssistanceWidget.d.ts +2 -0
- package/Dashboard/components/AssistanceWidget.js +59 -0
- package/Dashboard/components/AssistanceWidget.js.map +1 -0
- package/Dashboard/components/CommunityWidget.d.ts +2 -0
- package/Dashboard/components/CommunityWidget.js +65 -0
- package/Dashboard/components/CommunityWidget.js.map +1 -0
- package/Dashboard/components/MissingPermissionsWidget.d.ts +2 -0
- package/Dashboard/components/MissingPermissionsWidget.js +17 -0
- package/Dashboard/components/MissingPermissionsWidget.js.map +1 -0
- package/Dashboard/components/assets/github.svg +1 -0
- package/Dashboard/components/assets/slack.svg +8 -0
- package/Dashboard/components/assets/x-twitter.svg +5 -0
- package/Dashboard/components/assets/youtube.svg +11 -0
- package/Dashboard/components/index.d.ts +4 -0
- package/Dashboard/components/index.js +6 -0
- package/Dashboard/components/index.js.map +1 -0
- package/Dashboard.d.ts +2 -0
- package/Dashboard.js +10 -0
- package/Dashboard.js.map +1 -0
- package/Dialog/DialogContainer.d.ts +2 -0
- package/Dialog/DialogContainer.js +71 -0
- package/Dialog/DialogContainer.js.map +1 -0
- package/Dialog/DialogProvider.d.ts +5 -0
- package/Dialog/DialogProvider.js +11 -0
- package/Dialog/DialogProvider.js.map +1 -0
- package/Dialog.d.ts +2 -0
- package/Dialog.js +13 -0
- package/Dialog.js.map +1 -0
- package/LICENSE +21 -0
- package/Layout.d.ts +2 -0
- package/Layout.js +30 -0
- package/Layout.js.map +1 -0
- package/Logo.d.ts +2 -0
- package/Logo.js +17 -0
- package/Logo.js.map +1 -0
- package/Navigation/Navigation.d.ts +2 -0
- package/Navigation/Navigation.js +36 -0
- package/Navigation/Navigation.js.map +1 -0
- package/Navigation/SidebarMenuItems.d.ts +10 -0
- package/Navigation/SidebarMenuItems.js +44 -0
- package/Navigation/SidebarMenuItems.js.map +1 -0
- package/Navigation/SidebarProvider.d.ts +6 -0
- package/Navigation/SidebarProvider.js +9 -0
- package/Navigation/SidebarProvider.js.map +1 -0
- package/Navigation.d.ts +2 -0
- package/Navigation.js +11 -0
- package/Navigation.js.map +1 -0
- package/NotFound/notFound.svg +1 -0
- package/NotFound.d.ts +2 -0
- package/NotFound.js +21 -0
- package/NotFound.js.map +1 -0
- package/README.md +7 -0
- package/UserMenu/UserMenu.d.ts +2 -0
- package/UserMenu/UserMenu.js +30 -0
- package/UserMenu/UserMenu.js.map +1 -0
- package/UserMenu/UserMenuHandle.d.ts +2 -0
- package/UserMenu/UserMenuHandle.js +45 -0
- package/UserMenu/UserMenuHandle.js.map +1 -0
- package/UserMenu/UserMenuItem.d.ts +3 -0
- package/UserMenu/UserMenuItem.js +15 -0
- package/UserMenu/UserMenuItem.js.map +1 -0
- package/UserMenu/UserMenuLink.d.ts +3 -0
- package/UserMenu/UserMenuLink.js +15 -0
- package/UserMenu/UserMenuLink.js.map +1 -0
- package/UserMenu/UserMenuSeparator.d.ts +2 -0
- package/UserMenu/UserMenuSeparator.js +12 -0
- package/UserMenu/UserMenuSeparator.js.map +1 -0
- package/UserMenu.d.ts +2 -0
- package/UserMenu.js +11 -0
- package/UserMenu.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +13 -0
- package/index.js.map +1 -0
- package/package.json +47 -0
- package/styles.scss +2 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Grid, Heading } from "@webiny/admin-ui";
|
|
3
|
+
import { useSecurity } from "@webiny/app-security/hooks/useSecurity";
|
|
4
|
+
import { plugins } from "@webiny/plugins";
|
|
5
|
+
import { ApplicationWidget, AssistanceWidget, CommunityWidget, MissingPermissionsWidget } from "./components";
|
|
6
|
+
const Welcome = () => {
|
|
7
|
+
const {
|
|
8
|
+
identity,
|
|
9
|
+
getPermission
|
|
10
|
+
} = useSecurity();
|
|
11
|
+
if (!identity) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const widgets = plugins.byType("admin-welcome-screen-widget").filter(pl => {
|
|
15
|
+
if (pl.permission) {
|
|
16
|
+
return getPermission(pl.permission);
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
});
|
|
20
|
+
const canSeeAnyWidget = widgets.length > 0;
|
|
21
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
22
|
+
className: "wby-my-xxl"
|
|
23
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
24
|
+
className: "wby-mb-3xl"
|
|
25
|
+
}, /*#__PURE__*/React.createElement(Heading, {
|
|
26
|
+
level: 3
|
|
27
|
+
}, `Hi ${identity.displayName}, what are we doing today?`)), /*#__PURE__*/React.createElement(Grid, {
|
|
28
|
+
gap: "spacious"
|
|
29
|
+
}, /*#__PURE__*/React.createElement(Grid.Column, {
|
|
30
|
+
span: 5
|
|
31
|
+
}, !canSeeAnyWidget && /*#__PURE__*/React.createElement(MissingPermissionsWidget, null), /*#__PURE__*/React.createElement("div", {
|
|
32
|
+
className: "wby-flex wby-flex-col wby-gap-lg"
|
|
33
|
+
}, widgets.map(pl => /*#__PURE__*/React.createElement(ApplicationWidget, {
|
|
34
|
+
key: pl.name,
|
|
35
|
+
cta: pl.widget.cta,
|
|
36
|
+
description: pl.widget.description,
|
|
37
|
+
icon: pl.widget.icon,
|
|
38
|
+
name: pl.name,
|
|
39
|
+
title: pl.widget.title
|
|
40
|
+
})))), /*#__PURE__*/React.createElement(Grid.Column, {
|
|
41
|
+
span: 7
|
|
42
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
43
|
+
className: "wby-flex wby-flex-col wby-gap-lg"
|
|
44
|
+
}, /*#__PURE__*/React.createElement(AssistanceWidget, null), /*#__PURE__*/React.createElement(CommunityWidget, null)))));
|
|
45
|
+
};
|
|
46
|
+
export default Welcome;
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=Welcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Grid","Heading","useSecurity","plugins","ApplicationWidget","AssistanceWidget","CommunityWidget","MissingPermissionsWidget","Welcome","identity","getPermission","widgets","byType","filter","pl","permission","canSeeAnyWidget","length","createElement","className","level","displayName","gap","Column","span","map","key","name","cta","widget","description","icon","title"],"sources":["Welcome.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Heading } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-security/hooks/useSecurity\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminWelcomeScreenWidgetPlugin } from \"@webiny/app-plugin-admin-welcome-screen/types\";\nimport {\n ApplicationWidget,\n AssistanceWidget,\n CommunityWidget,\n MissingPermissionsWidget\n} from \"./components\";\n\nconst Welcome = () => {\n const { identity, getPermission } = useSecurity();\n\n if (!identity) {\n return null;\n }\n\n const widgets = plugins\n .byType<AdminWelcomeScreenWidgetPlugin>(\"admin-welcome-screen-widget\")\n .filter(pl => {\n if (pl.permission) {\n return getPermission(pl.permission);\n }\n return true;\n });\n\n const canSeeAnyWidget = widgets.length > 0;\n\n return (\n <div className={\"wby-my-xxl\"}>\n <div className={\"wby-mb-3xl\"}>\n <Heading\n level={3}\n >{`Hi ${identity.displayName}, what are we doing today?`}</Heading>\n </div>\n <Grid gap={\"spacious\"}>\n <Grid.Column span={5}>\n {!canSeeAnyWidget && <MissingPermissionsWidget />}\n <div className={\"wby-flex wby-flex-col wby-gap-lg\"}>\n {widgets.map(pl => (\n <ApplicationWidget\n key={pl.name}\n cta={pl.widget.cta}\n description={pl.widget.description}\n icon={pl.widget.icon}\n name={pl.name}\n title={pl.widget.title}\n />\n ))}\n </div>\n </Grid.Column>\n <Grid.Column span={7}>\n <div className={\"wby-flex wby-flex-col wby-gap-lg\"}>\n <AssistanceWidget />\n <CommunityWidget />\n </div>\n </Grid.Column>\n </Grid>\n </div>\n );\n};\n\nexport default Welcome;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,OAAO,QAAQ,kBAAkB;AAChD,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,OAAO,QAAQ,iBAAiB;AAEzC,SACIC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,EACfC,wBAAwB;AAG5B,MAAMC,OAAO,GAAGA,CAAA,KAAM;EAClB,MAAM;IAAEC,QAAQ;IAAEC;EAAc,CAAC,GAAGR,WAAW,CAAC,CAAC;EAEjD,IAAI,CAACO,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EAEA,MAAME,OAAO,GAAGR,OAAO,CAClBS,MAAM,CAAiC,6BAA6B,CAAC,CACrEC,MAAM,CAACC,EAAE,IAAI;IACV,IAAIA,EAAE,CAACC,UAAU,EAAE;MACf,OAAOL,aAAa,CAACI,EAAE,CAACC,UAAU,CAAC;IACvC;IACA,OAAO,IAAI;EACf,CAAC,CAAC;EAEN,MAAMC,eAAe,GAAGL,OAAO,CAACM,MAAM,GAAG,CAAC;EAE1C,oBACIlB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAE;EAAa,gBACzBpB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAE;EAAa,gBACzBpB,KAAA,CAAAmB,aAAA,CAACjB,OAAO;IACJmB,KAAK,EAAE;EAAE,GACX,MAAMX,QAAQ,CAACY,WAAW,4BAAsC,CACjE,CAAC,eACNtB,KAAA,CAAAmB,aAAA,CAAClB,IAAI;IAACsB,GAAG,EAAE;EAAW,gBAClBvB,KAAA,CAAAmB,aAAA,CAAClB,IAAI,CAACuB,MAAM;IAACC,IAAI,EAAE;EAAE,GAChB,CAACR,eAAe,iBAAIjB,KAAA,CAAAmB,aAAA,CAACX,wBAAwB,MAAE,CAAC,eACjDR,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAE;EAAmC,GAC9CR,OAAO,CAACc,GAAG,CAACX,EAAE,iBACXf,KAAA,CAAAmB,aAAA,CAACd,iBAAiB;IACdsB,GAAG,EAAEZ,EAAE,CAACa,IAAK;IACbC,GAAG,EAAEd,EAAE,CAACe,MAAM,CAACD,GAAI;IACnBE,WAAW,EAAEhB,EAAE,CAACe,MAAM,CAACC,WAAY;IACnCC,IAAI,EAAEjB,EAAE,CAACe,MAAM,CAACE,IAAK;IACrBJ,IAAI,EAAEb,EAAE,CAACa,IAAK;IACdK,KAAK,EAAElB,EAAE,CAACe,MAAM,CAACG;EAAM,CAC1B,CACJ,CACA,CACI,CAAC,eACdjC,KAAA,CAAAmB,aAAA,CAAClB,IAAI,CAACuB,MAAM;IAACC,IAAI,EAAE;EAAE,gBACjBzB,KAAA,CAAAmB,aAAA;IAAKC,SAAS,EAAE;EAAmC,gBAC/CpB,KAAA,CAAAmB,aAAA,CAACb,gBAAgB,MAAE,CAAC,eACpBN,KAAA,CAAAmB,aAAA,CAACZ,eAAe,MAAE,CACjB,CACI,CACX,CACL,CAAC;AAEd,CAAC;AAED,eAAeE,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ApplicationWidgetProps {
|
|
3
|
+
name: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
cta: React.ReactNode;
|
|
7
|
+
icon?: React.ReactElement;
|
|
8
|
+
}
|
|
9
|
+
export declare const ApplicationWidget: ({ name, title, description, cta, icon }: ApplicationWidgetProps) => React.JSX.Element;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Grid, Heading, Icon, Text } from "@webiny/admin-ui";
|
|
3
|
+
import { ReactComponent as WidgetIcon } from "@webiny/icons/table_chart.svg";
|
|
4
|
+
export const ApplicationWidget = ({
|
|
5
|
+
name,
|
|
6
|
+
title,
|
|
7
|
+
description,
|
|
8
|
+
cta,
|
|
9
|
+
icon = /*#__PURE__*/React.createElement(WidgetIcon, null)
|
|
10
|
+
}) => {
|
|
11
|
+
return /*#__PURE__*/React.createElement(Grid.Column, {
|
|
12
|
+
span: 4,
|
|
13
|
+
key: name
|
|
14
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
15
|
+
className: "wby-p-lg wby-bg-primary-subtle wby-rounded-xl",
|
|
16
|
+
"data-testid": name
|
|
17
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: "wby-flex wby-items-center wby-gap-sm wby-mb-sm"
|
|
19
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
20
|
+
icon: icon,
|
|
21
|
+
label: title,
|
|
22
|
+
size: "lg",
|
|
23
|
+
color: "accent"
|
|
24
|
+
}), /*#__PURE__*/React.createElement(Heading, {
|
|
25
|
+
level: 4
|
|
26
|
+
}, title)), /*#__PURE__*/React.createElement(Text, null, description), /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
className: "wby-mt-lg"
|
|
28
|
+
}, cta)));
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=ApplicationWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Grid","Heading","Icon","Text","ReactComponent","WidgetIcon","ApplicationWidget","name","title","description","cta","icon","createElement","Column","span","key","className","label","size","color","level"],"sources":["ApplicationWidget.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid, Heading, Icon, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as WidgetIcon } from \"@webiny/icons/table_chart.svg\";\n\nexport interface ApplicationWidgetProps {\n name: string;\n title: string;\n description: string;\n cta: React.ReactNode;\n icon?: React.ReactElement;\n}\n\nexport const ApplicationWidget = ({\n name,\n title,\n description,\n cta,\n icon = <WidgetIcon />\n}: ApplicationWidgetProps) => {\n return (\n <Grid.Column span={4} key={name}>\n <div className={\"wby-p-lg wby-bg-primary-subtle wby-rounded-xl\"} data-testid={name}>\n <div className={\"wby-flex wby-items-center wby-gap-sm wby-mb-sm\"}>\n <Icon icon={icon} label={title} size={\"lg\"} color={\"accent\"} />\n <Heading level={4}>{title}</Heading>\n </div>\n <Text>{description}</Text>\n <div className={\"wby-mt-lg\"}>{cta}</div>\n </div>\n </Grid.Column>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,OAAO,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAC5D,SAASC,cAAc,IAAIC,UAAU,QAAQ,+BAA+B;AAU5E,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAC9BC,IAAI;EACJC,KAAK;EACLC,WAAW;EACXC,GAAG;EACHC,IAAI,gBAAGZ,KAAA,CAAAa,aAAA,CAACP,UAAU,MAAE;AACA,CAAC,KAAK;EAC1B,oBACIN,KAAA,CAAAa,aAAA,CAACZ,IAAI,CAACa,MAAM;IAACC,IAAI,EAAE,CAAE;IAACC,GAAG,EAAER;EAAK,gBAC5BR,KAAA,CAAAa,aAAA;IAAKI,SAAS,EAAE,+CAAgD;IAAC,eAAaT;EAAK,gBAC/ER,KAAA,CAAAa,aAAA;IAAKI,SAAS,EAAE;EAAiD,gBAC7DjB,KAAA,CAAAa,aAAA,CAACV,IAAI;IAACS,IAAI,EAAEA,IAAK;IAACM,KAAK,EAAET,KAAM;IAACU,IAAI,EAAE,IAAK;IAACC,KAAK,EAAE;EAAS,CAAE,CAAC,eAC/DpB,KAAA,CAAAa,aAAA,CAACX,OAAO;IAACmB,KAAK,EAAE;EAAE,GAAEZ,KAAe,CAClC,CAAC,eACNT,KAAA,CAAAa,aAAA,CAACT,IAAI,QAAEM,WAAkB,CAAC,eAC1BV,KAAA,CAAAa,aAAA;IAAKI,SAAS,EAAE;EAAY,GAAEN,GAAS,CACtC,CACI,CAAC;AAEtB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Heading, Icon, Link as AdminLink, Text } from "@webiny/admin-ui";
|
|
3
|
+
import { ReactComponent as HelpIcon } from "@webiny/icons/help_outline.svg";
|
|
4
|
+
import { Link } from "@webiny/react-router";
|
|
5
|
+
export const AssistanceWidget = () => {
|
|
6
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
7
|
+
className: "wby-bg-neutral-light wby-rounded-xl wby-p-lg"
|
|
8
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
9
|
+
className: "wby-flex wby-items-center wby-gap-sm wby-mb-md"
|
|
10
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
11
|
+
icon: /*#__PURE__*/React.createElement(HelpIcon, null),
|
|
12
|
+
label: "Need some assistance?",
|
|
13
|
+
size: "md",
|
|
14
|
+
color: "accent"
|
|
15
|
+
}), /*#__PURE__*/React.createElement(Heading, {
|
|
16
|
+
level: 6
|
|
17
|
+
}, "Need some assistance?")), /*#__PURE__*/React.createElement("div", {
|
|
18
|
+
className: "wby-bg-neutral-base wby-rounded-sm wby-px-md wby-py-sm-extra wby-mb-md"
|
|
19
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
20
|
+
to: "https://www.webiny.com/docs",
|
|
21
|
+
target: "_blank",
|
|
22
|
+
rel: "noopener noreferrer",
|
|
23
|
+
className: "!wby-no-underline"
|
|
24
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
25
|
+
as: "div",
|
|
26
|
+
className: "wby-font-semibold !wby-text-neutral-primary"
|
|
27
|
+
}, "Documentation"), /*#__PURE__*/React.createElement(Text, {
|
|
28
|
+
size: "sm",
|
|
29
|
+
className: "!wby-text-neutral-strong"
|
|
30
|
+
}, "Explore the Webiny documentation and check out code examples and guides."))), /*#__PURE__*/React.createElement("div", {
|
|
31
|
+
className: "wby-bg-neutral-base wby-rounded-sm wby-px-md wby-py-sm-extra"
|
|
32
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
33
|
+
as: "div",
|
|
34
|
+
className: "wby-font-semibold"
|
|
35
|
+
}, "Contact us"), /*#__PURE__*/React.createElement(Text, {
|
|
36
|
+
size: "sm",
|
|
37
|
+
className: "wby-text-neutral-strong"
|
|
38
|
+
}, /*#__PURE__*/React.createElement(AdminLink, {
|
|
39
|
+
to: "https://www.webiny.com/forms/product-demo",
|
|
40
|
+
target: "_blank",
|
|
41
|
+
rel: "noopener noreferrer",
|
|
42
|
+
variant: "secondary",
|
|
43
|
+
underline: true
|
|
44
|
+
}, "Contact Sales"), ",", " ", /*#__PURE__*/React.createElement(AdminLink, {
|
|
45
|
+
to: "https://www.webiny.com/partners",
|
|
46
|
+
target: "_blank",
|
|
47
|
+
rel: "noopener noreferrer",
|
|
48
|
+
variant: "secondary",
|
|
49
|
+
underline: true
|
|
50
|
+
}, "Explore Partnerships"), " ", "or", " ", /*#__PURE__*/React.createElement(AdminLink, {
|
|
51
|
+
to: "https://www.webiny.com/slack",
|
|
52
|
+
target: "_blank",
|
|
53
|
+
rel: "noopener noreferrer",
|
|
54
|
+
variant: "secondary",
|
|
55
|
+
underline: true
|
|
56
|
+
}, "Slack us"), ".")));
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=AssistanceWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Heading","Icon","Link","AdminLink","Text","ReactComponent","HelpIcon","AssistanceWidget","createElement","className","icon","label","size","color","level","to","target","rel","as","variant","underline"],"sources":["AssistanceWidget.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heading, Icon, Link as AdminLink, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as HelpIcon } from \"@webiny/icons/help_outline.svg\";\nimport { Link } from \"@webiny/react-router\";\n\nexport const AssistanceWidget = () => {\n return (\n <div className={\"wby-bg-neutral-light wby-rounded-xl wby-p-lg\"}>\n <div className={\"wby-flex wby-items-center wby-gap-sm wby-mb-md\"}>\n <Icon\n icon={<HelpIcon />}\n label={\"Need some assistance?\"}\n size={\"md\"}\n color={\"accent\"}\n />\n <Heading level={6}>{\"Need some assistance?\"}</Heading>\n </div>\n <div\n className={\"wby-bg-neutral-base wby-rounded-sm wby-px-md wby-py-sm-extra wby-mb-md\"}\n >\n <Link\n to=\"https://www.webiny.com/docs\"\n target={\"_blank\"}\n rel={\"noopener noreferrer\"}\n className={\"!wby-no-underline\"}\n >\n <Text as={\"div\"} className={\"wby-font-semibold !wby-text-neutral-primary\"}>\n {\"Documentation\"}\n </Text>\n <Text size={\"sm\"} className={\"!wby-text-neutral-strong\"}>\n {\"Explore the Webiny documentation and check out code examples and guides.\"}\n </Text>\n </Link>\n </div>\n\n <div className={\"wby-bg-neutral-base wby-rounded-sm wby-px-md wby-py-sm-extra\"}>\n <Text as={\"div\"} className={\"wby-font-semibold\"}>\n {\"Contact us\"}\n </Text>\n <Text size={\"sm\"} className={\"wby-text-neutral-strong\"}>\n <AdminLink\n to={\"https://www.webiny.com/forms/product-demo\"}\n target={\"_blank\"}\n rel={\"noopener noreferrer\"}\n variant={\"secondary\"}\n underline\n >\n Contact Sales\n </AdminLink>\n ,{\" \"}\n <AdminLink\n to={\"https://www.webiny.com/partners\"}\n target={\"_blank\"}\n rel={\"noopener noreferrer\"}\n variant={\"secondary\"}\n underline\n >\n Explore Partnerships\n </AdminLink>{\" \"}\n or{\" \"}\n <AdminLink\n to={\"https://www.webiny.com/slack\"}\n target={\"_blank\"}\n rel={\"noopener noreferrer\"}\n variant={\"secondary\"}\n underline\n >\n Slack us\n </AdminLink>\n .\n </Text>\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,IAAIC,SAAS,EAAEC,IAAI,QAAQ,kBAAkB;AACzE,SAASC,cAAc,IAAIC,QAAQ,QAAQ,gCAAgC;AAC3E,SAASJ,IAAI,QAAQ,sBAAsB;AAE3C,OAAO,MAAMK,gBAAgB,GAAGA,CAAA,KAAM;EAClC,oBACIR,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAE;EAA+C,gBAC3DV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAE;EAAiD,gBAC7DV,KAAA,CAAAS,aAAA,CAACP,IAAI;IACDS,IAAI,eAAEX,KAAA,CAAAS,aAAA,CAACF,QAAQ,MAAE,CAAE;IACnBK,KAAK,EAAE,uBAAwB;IAC/BC,IAAI,EAAE,IAAK;IACXC,KAAK,EAAE;EAAS,CACnB,CAAC,eACFd,KAAA,CAAAS,aAAA,CAACR,OAAO;IAACc,KAAK,EAAE;EAAE,GAAE,uBAAiC,CACpD,CAAC,eACNf,KAAA,CAAAS,aAAA;IACIC,SAAS,EAAE;EAAyE,gBAEpFV,KAAA,CAAAS,aAAA,CAACN,IAAI;IACDa,EAAE,EAAC,6BAA6B;IAChCC,MAAM,EAAE,QAAS;IACjBC,GAAG,EAAE,qBAAsB;IAC3BR,SAAS,EAAE;EAAoB,gBAE/BV,KAAA,CAAAS,aAAA,CAACJ,IAAI;IAACc,EAAE,EAAE,KAAM;IAACT,SAAS,EAAE;EAA8C,GACrE,eACC,CAAC,eACPV,KAAA,CAAAS,aAAA,CAACJ,IAAI;IAACQ,IAAI,EAAE,IAAK;IAACH,SAAS,EAAE;EAA2B,GACnD,0EACC,CACJ,CACL,CAAC,eAENV,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAE;EAA+D,gBAC3EV,KAAA,CAAAS,aAAA,CAACJ,IAAI;IAACc,EAAE,EAAE,KAAM;IAACT,SAAS,EAAE;EAAoB,GAC3C,YACC,CAAC,eACPV,KAAA,CAAAS,aAAA,CAACJ,IAAI;IAACQ,IAAI,EAAE,IAAK;IAACH,SAAS,EAAE;EAA0B,gBACnDV,KAAA,CAAAS,aAAA,CAACL,SAAS;IACNY,EAAE,EAAE,2CAA4C;IAChDC,MAAM,EAAE,QAAS;IACjBC,GAAG,EAAE,qBAAsB;IAC3BE,OAAO,EAAE,WAAY;IACrBC,SAAS;EAAA,GACZ,eAEU,CAAC,KACX,EAAC,GAAG,eACLrB,KAAA,CAAAS,aAAA,CAACL,SAAS;IACNY,EAAE,EAAE,iCAAkC;IACtCC,MAAM,EAAE,QAAS;IACjBC,GAAG,EAAE,qBAAsB;IAC3BE,OAAO,EAAE,WAAY;IACrBC,SAAS;EAAA,GACZ,sBAEU,CAAC,EAAC,GAAG,EAAC,IACf,EAAC,GAAG,eACNrB,KAAA,CAAAS,aAAA,CAACL,SAAS;IACNY,EAAE,EAAE,8BAA+B;IACnCC,MAAM,EAAE,QAAS;IACjBC,GAAG,EAAE,qBAAsB;IAC3BE,OAAO,EAAE,WAAY;IACrBC,SAAS;EAAA,GACZ,UAEU,CAAC,KAEV,CACL,CACJ,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Heading, Icon, Text } from "@webiny/admin-ui";
|
|
3
|
+
import { Link } from "@webiny/react-router";
|
|
4
|
+
// Icons
|
|
5
|
+
import { ReactComponent as YouTubeIcon } from "./assets/youtube.svg";
|
|
6
|
+
import { ReactComponent as GithubIcon } from "./assets/github.svg";
|
|
7
|
+
import { ReactComponent as SlackIcon } from "./assets/slack.svg";
|
|
8
|
+
import { ReactComponent as TwitterIcon } from "./assets/x-twitter.svg";
|
|
9
|
+
const SocialLink = ({
|
|
10
|
+
link,
|
|
11
|
+
label,
|
|
12
|
+
icon
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
15
|
+
className: "wby-w-[64px] wby-bg-neutral-base wby-rounded-md hover:wby-opacity-80 wby-transition-opacity"
|
|
16
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
17
|
+
to: link,
|
|
18
|
+
className: "!wby-no-underline",
|
|
19
|
+
target: "_blank",
|
|
20
|
+
rel: "noopener noreferrer"
|
|
21
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
22
|
+
className: "wby-px-xs wby-pt-sm-extra wby-pb-sm wby-text-center"
|
|
23
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
24
|
+
label: `${label} icon`,
|
|
25
|
+
icon: icon,
|
|
26
|
+
size: "lg",
|
|
27
|
+
color: "inherit",
|
|
28
|
+
className: "wby-mx-auto wby-mb-sm"
|
|
29
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
30
|
+
size: "sm",
|
|
31
|
+
className: "wby-text-neutral-strong"
|
|
32
|
+
}, label))));
|
|
33
|
+
};
|
|
34
|
+
export const CommunityWidget = () => {
|
|
35
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
36
|
+
className: "wby-bg-neutral-light wby-rounded-xl wby-p-lg"
|
|
37
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
38
|
+
className: "wby-mb-md"
|
|
39
|
+
}, /*#__PURE__*/React.createElement(Heading, {
|
|
40
|
+
level: 6
|
|
41
|
+
}, "Join our community:"), /*#__PURE__*/React.createElement(Text, {
|
|
42
|
+
size: "sm",
|
|
43
|
+
className: "wby-text-neutral-strong"
|
|
44
|
+
}, "Get to know Webiny team members, discuss new ideas and get help:")), /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: "wby-flex wby-justify-start wby-items-stretch wby-gap-md"
|
|
46
|
+
}, /*#__PURE__*/React.createElement(SocialLink, {
|
|
47
|
+
link: "https://github.com/webiny/webiny-js",
|
|
48
|
+
label: "GitHub",
|
|
49
|
+
icon: /*#__PURE__*/React.createElement(GithubIcon, null)
|
|
50
|
+
}), /*#__PURE__*/React.createElement(SocialLink, {
|
|
51
|
+
link: "https://www.webiny.com/slack",
|
|
52
|
+
label: "Slack",
|
|
53
|
+
icon: /*#__PURE__*/React.createElement(SlackIcon, null)
|
|
54
|
+
}), /*#__PURE__*/React.createElement(SocialLink, {
|
|
55
|
+
link: "https://youtube.com/webiny",
|
|
56
|
+
label: "YouTube",
|
|
57
|
+
icon: /*#__PURE__*/React.createElement(YouTubeIcon, null)
|
|
58
|
+
}), /*#__PURE__*/React.createElement(SocialLink, {
|
|
59
|
+
link: "https://x.com/WebinyCMS",
|
|
60
|
+
label: "X.com",
|
|
61
|
+
icon: /*#__PURE__*/React.createElement(TwitterIcon, null)
|
|
62
|
+
})));
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=CommunityWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Heading","Icon","Text","Link","ReactComponent","YouTubeIcon","GithubIcon","SlackIcon","TwitterIcon","SocialLink","link","label","icon","createElement","className","to","target","rel","size","color","CommunityWidget","level"],"sources":["CommunityWidget.tsx"],"sourcesContent":["import React from \"react\";\nimport { Heading, Icon, Text } from \"@webiny/admin-ui\";\nimport { Link } from \"@webiny/react-router\";\n// Icons\nimport { ReactComponent as YouTubeIcon } from \"./assets/youtube.svg\";\nimport { ReactComponent as GithubIcon } from \"./assets/github.svg\";\nimport { ReactComponent as SlackIcon } from \"./assets/slack.svg\";\nimport { ReactComponent as TwitterIcon } from \"./assets/x-twitter.svg\";\n\ninterface SocialLinkProps {\n link: string;\n label: string;\n icon: React.ReactElement;\n}\n\nconst SocialLink = ({ link, label, icon }: SocialLinkProps) => {\n return (\n <div\n className={\n \"wby-w-[64px] wby-bg-neutral-base wby-rounded-md hover:wby-opacity-80 wby-transition-opacity\"\n }\n >\n <Link\n to={link}\n className={\"!wby-no-underline\"}\n target={\"_blank\"}\n rel={\"noopener noreferrer\"}\n >\n <div className={\"wby-px-xs wby-pt-sm-extra wby-pb-sm wby-text-center\"}>\n <Icon\n label={`${label} icon`}\n icon={icon}\n size={\"lg\"}\n color={\"inherit\"}\n className={\"wby-mx-auto wby-mb-sm\"}\n />\n <Text size={\"sm\"} className={\"wby-text-neutral-strong\"}>\n {label}\n </Text>\n </div>\n </Link>\n </div>\n );\n};\n\nexport const CommunityWidget = () => {\n return (\n <div className={\"wby-bg-neutral-light wby-rounded-xl wby-p-lg\"}>\n <div className={\"wby-mb-md\"}>\n <Heading level={6}>{\"Join our community:\"}</Heading>\n <Text size={\"sm\"} className={\"wby-text-neutral-strong\"}>\n {\"Get to know Webiny team members, discuss new ideas and get help:\"}\n </Text>\n </div>\n <div className={\"wby-flex wby-justify-start wby-items-stretch wby-gap-md\"}>\n <SocialLink\n link={\"https://github.com/webiny/webiny-js\"}\n label={\"GitHub\"}\n icon={<GithubIcon />}\n />\n <SocialLink\n link={\"https://www.webiny.com/slack\"}\n label={\"Slack\"}\n icon={<SlackIcon />}\n />\n <SocialLink\n link={\"https://youtube.com/webiny\"}\n label={\"YouTube\"}\n icon={<YouTubeIcon />}\n />\n <SocialLink\n link={\"https://x.com/WebinyCMS\"}\n label={\"X.com\"}\n icon={<TwitterIcon />}\n />\n </div>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AACtD,SAASC,IAAI,QAAQ,sBAAsB;AAC3C;AACA,SAASC,cAAc,IAAIC,WAAW;AACtC,SAASD,cAAc,IAAIE,UAAU;AACrC,SAASF,cAAc,IAAIG,SAAS;AACpC,SAASH,cAAc,IAAII,WAAW;AAQtC,MAAMC,UAAU,GAAGA,CAAC;EAAEC,IAAI;EAAEC,KAAK;EAAEC;AAAsB,CAAC,KAAK;EAC3D,oBACIb,KAAA,CAAAc,aAAA;IACIC,SAAS,EACL;EACH,gBAEDf,KAAA,CAAAc,aAAA,CAACV,IAAI;IACDY,EAAE,EAAEL,IAAK;IACTI,SAAS,EAAE,mBAAoB;IAC/BE,MAAM,EAAE,QAAS;IACjBC,GAAG,EAAE;EAAsB,gBAE3BlB,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAE;EAAsD,gBAClEf,KAAA,CAAAc,aAAA,CAACZ,IAAI;IACDU,KAAK,EAAE,GAAGA,KAAK,OAAQ;IACvBC,IAAI,EAAEA,IAAK;IACXM,IAAI,EAAE,IAAK;IACXC,KAAK,EAAE,SAAU;IACjBL,SAAS,EAAE;EAAwB,CACtC,CAAC,eACFf,KAAA,CAAAc,aAAA,CAACX,IAAI;IAACgB,IAAI,EAAE,IAAK;IAACJ,SAAS,EAAE;EAA0B,GAClDH,KACC,CACL,CACH,CACL,CAAC;AAEd,CAAC;AAED,OAAO,MAAMS,eAAe,GAAGA,CAAA,KAAM;EACjC,oBACIrB,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAE;EAA+C,gBAC3Df,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAE;EAAY,gBACxBf,KAAA,CAAAc,aAAA,CAACb,OAAO;IAACqB,KAAK,EAAE;EAAE,GAAE,qBAA+B,CAAC,eACpDtB,KAAA,CAAAc,aAAA,CAACX,IAAI;IAACgB,IAAI,EAAE,IAAK;IAACJ,SAAS,EAAE;EAA0B,GAClD,kEACC,CACL,CAAC,eACNf,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAE;EAA0D,gBACtEf,KAAA,CAAAc,aAAA,CAACJ,UAAU;IACPC,IAAI,EAAE,qCAAsC;IAC5CC,KAAK,EAAE,QAAS;IAChBC,IAAI,eAAEb,KAAA,CAAAc,aAAA,CAACP,UAAU,MAAE;EAAE,CACxB,CAAC,eACFP,KAAA,CAAAc,aAAA,CAACJ,UAAU;IACPC,IAAI,EAAE,8BAA+B;IACrCC,KAAK,EAAE,OAAQ;IACfC,IAAI,eAAEb,KAAA,CAAAc,aAAA,CAACN,SAAS,MAAE;EAAE,CACvB,CAAC,eACFR,KAAA,CAAAc,aAAA,CAACJ,UAAU;IACPC,IAAI,EAAE,4BAA6B;IACnCC,KAAK,EAAE,SAAU;IACjBC,IAAI,eAAEb,KAAA,CAAAc,aAAA,CAACR,WAAW,MAAE;EAAE,CACzB,CAAC,eACFN,KAAA,CAAAc,aAAA,CAACJ,UAAU;IACPC,IAAI,EAAE,yBAA0B;IAChCC,KAAK,EAAE,OAAQ;IACfC,IAAI,eAAEb,KAAA,CAAAc,aAAA,CAACL,WAAW,MAAE;EAAE,CACzB,CACA,CACJ,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { ReactComponent as VisibilityOff } from "@webiny/icons/visibility_off.svg";
|
|
3
|
+
import { Heading, Icon, Text } from "@webiny/admin-ui";
|
|
4
|
+
export const MissingPermissionsWidget = () => {
|
|
5
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
6
|
+
className: "wby-w-full wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-text-center wby-bg-neutral-light wby-rounded-xl wby-px-xxl wby-py-lg wby-gap-sm"
|
|
7
|
+
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Icon, {
|
|
8
|
+
icon: /*#__PURE__*/React.createElement(VisibilityOff, null),
|
|
9
|
+
label: "Access permission required",
|
|
10
|
+
color: "accent",
|
|
11
|
+
size: "lg"
|
|
12
|
+
})), /*#__PURE__*/React.createElement(Heading, {
|
|
13
|
+
level: 4
|
|
14
|
+
}, "Access permission required"), /*#__PURE__*/React.createElement(Text, null, "It seems you do not have access to Webiny apps. Please contact the administrator to set up your Webiny account."));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=MissingPermissionsWidget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","ReactComponent","VisibilityOff","Heading","Icon","Text","MissingPermissionsWidget","createElement","className","icon","label","color","size","level"],"sources":["MissingPermissionsWidget.tsx"],"sourcesContent":["import React from \"react\";\nimport { ReactComponent as VisibilityOff } from \"@webiny/icons/visibility_off.svg\";\nimport { Heading, Icon, Text } from \"@webiny/admin-ui\";\n\nexport const MissingPermissionsWidget = () => {\n return (\n <div className=\"wby-w-full wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-text-center wby-bg-neutral-light wby-rounded-xl wby-px-xxl wby-py-lg wby-gap-sm\">\n <div>\n <Icon\n icon={<VisibilityOff />}\n label={\"Access permission required\"}\n color={\"accent\"}\n size={\"lg\"}\n />\n </div>\n <Heading level={4}>{\"Access permission required\"}</Heading>\n <Text>\n {\n \"It seems you do not have access to Webiny apps. Please contact the administrator to set up your Webiny account.\"\n }\n </Text>\n </div>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,IAAIC,aAAa,QAAQ,kCAAkC;AAClF,SAASC,OAAO,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAEtD,OAAO,MAAMC,wBAAwB,GAAGA,CAAA,KAAM;EAC1C,oBACIN,KAAA,CAAAO,aAAA;IAAKC,SAAS,EAAC;EAAqK,gBAChLR,KAAA,CAAAO,aAAA,2BACIP,KAAA,CAAAO,aAAA,CAACH,IAAI;IACDK,IAAI,eAAET,KAAA,CAAAO,aAAA,CAACL,aAAa,MAAE,CAAE;IACxBQ,KAAK,EAAE,4BAA6B;IACpCC,KAAK,EAAE,QAAS;IAChBC,IAAI,EAAE;EAAK,CACd,CACA,CAAC,eACNZ,KAAA,CAAAO,aAAA,CAACJ,OAAO;IAACU,KAAK,EAAE;EAAE,GAAE,4BAAsC,CAAC,eAC3Db,KAAA,CAAAO,aAAA,CAACF,IAAI,QAEG,iHAEF,CACL,CAAC;AAEd,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512"><!-- Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/></svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="Vector">
|
|
3
|
+
<path d="M17.8752 9.24984C18.9106 9.24984 19.75 8.41045 19.75 7.375C19.75 6.33956 18.9105 5.50016 17.8751 5.50016C16.8395 5.50016 16 6.33963 16 7.37516V9.24984H17.8752ZM12.625 9.24984C13.6605 9.24984 14.5 8.41037 14.5 7.37484V2.12516C14.5 1.08963 13.6605 0.250159 12.625 0.250159C11.5895 0.250159 10.75 1.08963 10.75 2.12516V7.37484C10.75 8.41037 11.5895 9.24984 12.625 9.24984Z" fill="#2EB67D"/>
|
|
4
|
+
<path d="M2.12484 10.7502C1.08939 10.7502 0.25 11.5896 0.25 12.625C0.25 13.6604 1.08947 14.4998 2.12492 14.4998C3.16045 14.4998 4 13.6604 4 12.6248V10.7502H2.12484ZM7.375 10.7502C6.33947 10.7502 5.5 11.5896 5.5 12.6252V17.8748C5.5 18.9104 6.33947 19.7498 7.375 19.7498C8.41053 19.7498 9.25 18.9104 9.25 17.8748V12.6252C9.25 11.5896 8.41053 10.7502 7.375 10.7502Z" fill="#E01E5A"/>
|
|
5
|
+
<path d="M10.7501 17.8752C10.7501 18.9106 11.5895 19.75 12.625 19.75C13.6604 19.75 14.4998 18.9105 14.4998 17.8751C14.4998 16.8395 13.6603 16 12.6248 16H10.7501V17.8752ZM10.7501 12.625C10.7501 13.6605 11.5896 14.5 12.6251 14.5H17.8748C18.9104 14.5 19.7498 13.6605 19.7498 12.625C19.7498 11.5895 18.9104 10.75 17.8748 10.75H12.6251C11.5896 10.75 10.7501 11.5895 10.7501 12.625Z" fill="#ECB22E"/>
|
|
6
|
+
<path d="M9.24981 2.12484C9.24982 1.08939 8.41042 0.25 7.37498 0.25C6.33953 0.25 5.50014 1.08947 5.50014 2.12492C5.50014 3.16045 6.3396 4 7.37514 4H9.24981V2.12484ZM9.24981 7.375C9.24982 6.33947 8.41035 5.5 7.37482 5.5L2.12514 5.5C1.0896 5.5 0.250137 6.33947 0.250137 7.375C0.250137 8.41053 1.0896 9.25 2.12514 9.25H7.37482C8.41035 9.25 9.24981 8.41053 9.24981 7.375Z" fill="#36C5F0"/>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="Social Icons">
|
|
3
|
+
<path id="Vector" d="M18.3263 1.90393H21.6998L14.3297 10.3274L23 21.7899H16.2112L10.894 14.838L4.80995 21.7899H1.43443L9.31743 12.78L1 1.90393H7.96111L12.7674 8.25826L18.3263 1.90393ZM17.1423 19.7707H19.0116L6.94539 3.81706H4.93946L17.1423 19.7707Z" fill="black"/>
|
|
4
|
+
</g>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="Social Icons" clip-path="url(#clip0_2021_7937)">
|
|
3
|
+
<path id="Vector" d="M23.5221 6.18547C23.3864 5.67489 23.119 5.20889 22.7466 4.83413C22.3743 4.45936 21.91 4.18897 21.4003 4.05002C19.5239 3.54547 12.0239 3.54547 12.0239 3.54547C12.0239 3.54547 4.52393 3.54547 2.64756 4.05002C2.13786 4.18897 1.67358 4.45936 1.30121 4.83413C0.928842 5.20889 0.661431 5.67489 0.525744 6.18547C0.0239258 8.07002 0.0239258 12 0.0239258 12C0.0239258 12 0.0239258 15.93 0.525744 17.8146C0.661431 18.3251 0.928842 18.7911 1.30121 19.1659C1.67358 19.5407 2.13786 19.8111 2.64756 19.95C4.52393 20.4546 12.0239 20.4546 12.0239 20.4546C12.0239 20.4546 19.5239 20.4546 21.4003 19.95C21.91 19.8111 22.3743 19.5407 22.7466 19.1659C23.119 18.7911 23.3864 18.3251 23.5221 17.8146C24.0239 15.93 24.0239 12 24.0239 12C24.0239 12 24.0239 8.07002 23.5221 6.18547Z" fill="#FF0302"/>
|
|
4
|
+
<path id="Vector_2" d="M9.56934 15.5687V8.4314L15.8421 12L9.56934 15.5687Z" fill="#FEFEFE"/>
|
|
5
|
+
</g>
|
|
6
|
+
<defs>
|
|
7
|
+
<clipPath id="clip0_2021_7937">
|
|
8
|
+
<rect width="24" height="24" fill="white"/>
|
|
9
|
+
</clipPath>
|
|
10
|
+
</defs>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./ApplicationWidget\";\nexport * from \"./AssistanceWidget\";\nexport * from \"./CommunityWidget\";\nexport * from \"./MissingPermissionsWidget\";\n"],"mappings":"AAAA;AACA;AACA;AACA","ignoreList":[]}
|
package/Dashboard.d.ts
ADDED
package/Dashboard.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { CenteredView, DashboardRenderer } from "@webiny/app-admin";
|
|
3
|
+
import Welcome from "./Dashboard/Welcome";
|
|
4
|
+
export const Dashboard = DashboardRenderer.createDecorator(() => {
|
|
5
|
+
return function DashboardRenderer() {
|
|
6
|
+
return /*#__PURE__*/React.createElement(CenteredView, null, /*#__PURE__*/React.createElement(Welcome, null));
|
|
7
|
+
};
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=Dashboard.js.map
|
package/Dashboard.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","CenteredView","DashboardRenderer","Welcome","Dashboard","createDecorator","createElement"],"sources":["Dashboard.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { CenteredView, DashboardRenderer } from \"@webiny/app-admin\";\nimport Welcome from \"./Dashboard/Welcome\";\n\nexport const Dashboard = DashboardRenderer.createDecorator(() => {\n return function DashboardRenderer() {\n return (\n <CenteredView>\n <Welcome />\n </CenteredView>\n );\n };\n});\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,YAAY,EAAEC,iBAAiB,QAAQ,mBAAmB;AACnE,OAAOC,OAAO;AAEd,OAAO,MAAMC,SAAS,GAAGF,iBAAiB,CAACG,eAAe,CAAC,MAAM;EAC7D,OAAO,SAASH,iBAAiBA,CAAA,EAAG;IAChC,oBACIF,KAAA,CAAAM,aAAA,CAACL,YAAY,qBACTD,KAAA,CAAAM,aAAA,CAACH,OAAO,MAAE,CACA,CAAC;EAEvB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useState } from "react";
|
|
2
|
+
import { useUi } from "@webiny/app/hooks/useUi";
|
|
3
|
+
import { Dialog } from "@webiny/admin-ui";
|
|
4
|
+
export const DialogContainer = () => {
|
|
5
|
+
const ui = useUi();
|
|
6
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
7
|
+
const message = ui.dialog?.message;
|
|
8
|
+
const {
|
|
9
|
+
dataTestId,
|
|
10
|
+
title,
|
|
11
|
+
loading,
|
|
12
|
+
actions = {
|
|
13
|
+
cancel: null,
|
|
14
|
+
accept: {
|
|
15
|
+
label: "OK"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
style,
|
|
19
|
+
onClose,
|
|
20
|
+
showCloseButton
|
|
21
|
+
} = ui.dialog?.options || {};
|
|
22
|
+
const hideDialog = useCallback(() => {
|
|
23
|
+
ui.setState(ui => ({
|
|
24
|
+
...ui,
|
|
25
|
+
dialog: null
|
|
26
|
+
}));
|
|
27
|
+
if (typeof onClose === "function") {
|
|
28
|
+
onClose();
|
|
29
|
+
}
|
|
30
|
+
}, [ui]);
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* We need this part because message can change while the dialog is opened and in loading state.
|
|
34
|
+
*/
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
setIsLoading(false);
|
|
37
|
+
}, [ui.dialog?.message]);
|
|
38
|
+
const handleConfirm = async () => {
|
|
39
|
+
if (!actions.accept.onClick) {
|
|
40
|
+
/**
|
|
41
|
+
* Should not happen as users should define "accept.onClick" function, but just in case lets show the information.
|
|
42
|
+
* Possible to happen in development process.
|
|
43
|
+
*/
|
|
44
|
+
console.info("There is no actions.accept.onClick callback defined.");
|
|
45
|
+
hideDialog();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
setIsLoading(true);
|
|
49
|
+
await actions.accept.onClick();
|
|
50
|
+
setIsLoading(false);
|
|
51
|
+
hideDialog();
|
|
52
|
+
};
|
|
53
|
+
return /*#__PURE__*/React.createElement(Dialog, {
|
|
54
|
+
open: !!message,
|
|
55
|
+
onClose: hideDialog,
|
|
56
|
+
"data-testid": dataTestId,
|
|
57
|
+
style: style,
|
|
58
|
+
showCloseButton: showCloseButton,
|
|
59
|
+
title: title,
|
|
60
|
+
actions: !actions.cancel && !actions.accept ? null : /*#__PURE__*/React.createElement(React.Fragment, null, actions.cancel && /*#__PURE__*/React.createElement(Dialog.CancelButton, {
|
|
61
|
+
onClick: actions.cancel.onClick,
|
|
62
|
+
text: actions.cancel.label
|
|
63
|
+
}), actions.accept && /*#__PURE__*/React.createElement(Dialog.ConfirmButton, {
|
|
64
|
+
onClick: handleConfirm,
|
|
65
|
+
text: actions.accept.label,
|
|
66
|
+
"data-testid": "confirmationdialog-confirm-action"
|
|
67
|
+
}))
|
|
68
|
+
}, isLoading ? loading : null, message);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=DialogContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useState","useUi","Dialog","DialogContainer","ui","isLoading","setIsLoading","message","dialog","dataTestId","title","loading","actions","cancel","accept","label","style","onClose","showCloseButton","options","hideDialog","setState","handleConfirm","onClick","console","info","createElement","open","Fragment","CancelButton","text","ConfirmButton"],"sources":["DialogContainer.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from \"react\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { Dialog } from \"@webiny/admin-ui\";\n\nexport const DialogContainer = () => {\n const ui = useUi();\n const [isLoading, setIsLoading] = useState(false);\n const message: React.ReactNode = ui.dialog?.message;\n\n const {\n dataTestId,\n title,\n loading,\n actions = { cancel: null, accept: { label: \"OK\" } },\n style,\n onClose,\n showCloseButton\n } = ui.dialog?.options || {};\n\n const hideDialog = useCallback(() => {\n ui.setState(ui => ({ ...ui, dialog: null }));\n if (typeof onClose === \"function\") {\n onClose();\n }\n }, [ui]);\n\n /**\n * We need this part because message can change while the dialog is opened and in loading state.\n */\n useEffect(() => {\n setIsLoading(false);\n }, [ui.dialog?.message]);\n\n const handleConfirm = async () => {\n if (!actions.accept.onClick) {\n /**\n * Should not happen as users should define \"accept.onClick\" function, but just in case lets show the information.\n * Possible to happen in development process.\n */\n console.info(\"There is no actions.accept.onClick callback defined.\");\n hideDialog();\n return;\n }\n setIsLoading(true);\n await actions.accept.onClick();\n setIsLoading(false);\n hideDialog();\n };\n\n return (\n <Dialog\n open={!!message}\n onClose={hideDialog}\n data-testid={dataTestId}\n style={style}\n showCloseButton={showCloseButton}\n title={title}\n actions={\n !actions.cancel && !actions.accept ? null : (\n <>\n {actions.cancel && (\n <Dialog.CancelButton\n onClick={actions.cancel.onClick}\n text={actions.cancel.label}\n />\n )}\n {actions.accept && (\n <Dialog.ConfirmButton\n onClick={handleConfirm}\n text={actions.accept.label}\n data-testid={\"confirmationdialog-confirm-action\"}\n />\n )}\n </>\n )\n }\n >\n {isLoading ? loading : null}\n {message}\n </Dialog>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC/D,SAASC,KAAK,QAAQ,yBAAyB;AAC/C,SAASC,MAAM,QAAQ,kBAAkB;AAEzC,OAAO,MAAMC,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAMC,EAAE,GAAGH,KAAK,CAAC,CAAC;EAClB,MAAM,CAACI,SAAS,EAAEC,YAAY,CAAC,GAAGN,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAMO,OAAwB,GAAGH,EAAE,CAACI,MAAM,EAAED,OAAO;EAEnD,MAAM;IACFE,UAAU;IACVC,KAAK;IACLC,OAAO;IACPC,OAAO,GAAG;MAAEC,MAAM,EAAE,IAAI;MAAEC,MAAM,EAAE;QAAEC,KAAK,EAAE;MAAK;IAAE,CAAC;IACnDC,KAAK;IACLC,OAAO;IACPC;EACJ,CAAC,GAAGd,EAAE,CAACI,MAAM,EAAEW,OAAO,IAAI,CAAC,CAAC;EAE5B,MAAMC,UAAU,GAAGtB,WAAW,CAAC,MAAM;IACjCM,EAAE,CAACiB,QAAQ,CAACjB,EAAE,KAAK;MAAE,GAAGA,EAAE;MAAEI,MAAM,EAAE;IAAK,CAAC,CAAC,CAAC;IAC5C,IAAI,OAAOS,OAAO,KAAK,UAAU,EAAE;MAC/BA,OAAO,CAAC,CAAC;IACb;EACJ,CAAC,EAAE,CAACb,EAAE,CAAC,CAAC;;EAER;AACJ;AACA;EACIL,SAAS,CAAC,MAAM;IACZO,YAAY,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,CAACF,EAAE,CAACI,MAAM,EAAED,OAAO,CAAC,CAAC;EAExB,MAAMe,aAAa,GAAG,MAAAA,CAAA,KAAY;IAC9B,IAAI,CAACV,OAAO,CAACE,MAAM,CAACS,OAAO,EAAE;MACzB;AACZ;AACA;AACA;MACYC,OAAO,CAACC,IAAI,CAAC,sDAAsD,CAAC;MACpEL,UAAU,CAAC,CAAC;MACZ;IACJ;IACAd,YAAY,CAAC,IAAI,CAAC;IAClB,MAAMM,OAAO,CAACE,MAAM,CAACS,OAAO,CAAC,CAAC;IAC9BjB,YAAY,CAAC,KAAK,CAAC;IACnBc,UAAU,CAAC,CAAC;EAChB,CAAC;EAED,oBACIvB,KAAA,CAAA6B,aAAA,CAACxB,MAAM;IACHyB,IAAI,EAAE,CAAC,CAACpB,OAAQ;IAChBU,OAAO,EAAEG,UAAW;IACpB,eAAaX,UAAW;IACxBO,KAAK,EAAEA,KAAM;IACbE,eAAe,EAAEA,eAAgB;IACjCR,KAAK,EAAEA,KAAM;IACbE,OAAO,EACH,CAACA,OAAO,CAACC,MAAM,IAAI,CAACD,OAAO,CAACE,MAAM,GAAG,IAAI,gBACrCjB,KAAA,CAAA6B,aAAA,CAAA7B,KAAA,CAAA+B,QAAA,QACKhB,OAAO,CAACC,MAAM,iBACXhB,KAAA,CAAA6B,aAAA,CAACxB,MAAM,CAAC2B,YAAY;MAChBN,OAAO,EAAEX,OAAO,CAACC,MAAM,CAACU,OAAQ;MAChCO,IAAI,EAAElB,OAAO,CAACC,MAAM,CAACE;IAAM,CAC9B,CACJ,EACAH,OAAO,CAACE,MAAM,iBACXjB,KAAA,CAAA6B,aAAA,CAACxB,MAAM,CAAC6B,aAAa;MACjBR,OAAO,EAAED,aAAc;MACvBQ,IAAI,EAAElB,OAAO,CAACE,MAAM,CAACC,KAAM;MAC3B,eAAa;IAAoC,CACpD,CAEP;EAET,GAEAV,SAAS,GAAGM,OAAO,GAAG,IAAI,EAC1BJ,OACG,CAAC;AAEjB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { DialogContainer } from "./DialogContainer";
|
|
3
|
+
export const DialogProvider = Component => {
|
|
4
|
+
return function DialogProviderProps({
|
|
5
|
+
children
|
|
6
|
+
}) {
|
|
7
|
+
return /*#__PURE__*/React.createElement(Component, null, children, /*#__PURE__*/React.createElement(DialogContainer, null));
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=DialogProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","DialogContainer","DialogProvider","Component","DialogProviderProps","children","createElement"],"sources":["DialogProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { DialogContainer } from \"./DialogContainer\";\n\nexport interface DialogProviderProps {\n children?: React.ReactNode;\n}\n\nexport const DialogProvider = (Component: React.ComponentType<DialogProviderProps>) => {\n return function DialogProviderProps({ children }: DialogProviderProps) {\n return (\n <Component>\n {children}\n <DialogContainer />\n </Component>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe;AAMxB,OAAO,MAAMC,cAAc,GAAIC,SAAmD,IAAK;EACnF,OAAO,SAASC,mBAAmBA,CAAC;IAAEC;EAA8B,CAAC,EAAE;IACnE,oBACIL,KAAA,CAAAM,aAAA,CAACH,SAAS,QACLE,QAAQ,eACTL,KAAA,CAAAM,aAAA,CAACL,eAAe,MAAE,CACX,CAAC;EAEpB,CAAC;AACL,CAAC","ignoreList":[]}
|
package/Dialog.d.ts
ADDED
package/Dialog.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Provider } from "@webiny/app-admin";
|
|
3
|
+
import { DialogProvider } from "./Dialog/DialogProvider";
|
|
4
|
+
|
|
5
|
+
// This implements the global dialog, which is controlled via the
|
|
6
|
+
// `useDialog` hook (`packages/app-admin/src/hooks/useDialog.ts`).
|
|
7
|
+
export const Dialog = () => {
|
|
8
|
+
return /*#__PURE__*/React.createElement(Provider, {
|
|
9
|
+
hoc: DialogProvider
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=Dialog.js.map
|
package/Dialog.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Provider","DialogProvider","Dialog","createElement","hoc"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app-admin\";\nimport { DialogProvider } from \"./Dialog/DialogProvider\";\n\n// This implements the global dialog, which is controlled via the\n// `useDialog` hook (`packages/app-admin/src/hooks/useDialog.ts`).\nexport const Dialog = () => {\n return <Provider hoc={DialogProvider} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,cAAc;;AAEvB;AACA;AACA,OAAO,MAAMC,MAAM,GAAGA,CAAA,KAAM;EACxB,oBAAOH,KAAA,CAAAI,aAAA,CAACH,QAAQ;IAACI,GAAG,EAAEH;EAAe,CAAE,CAAC;AAC5C,CAAC","ignoreList":[]}
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Webiny
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/Layout.d.ts
ADDED
package/Layout.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Helmet from "react-helmet";
|
|
3
|
+
import { LayoutRenderer, LocaleSelector, Navigation, TenantSelector, UserMenu } from "@webiny/app-admin";
|
|
4
|
+
import { HeaderBar, cn, useSidebar } from "@webiny/admin-ui";
|
|
5
|
+
export const Layout = LayoutRenderer.createDecorator(() => {
|
|
6
|
+
return function Layout({
|
|
7
|
+
title,
|
|
8
|
+
children
|
|
9
|
+
}) {
|
|
10
|
+
const {
|
|
11
|
+
pinned
|
|
12
|
+
} = useSidebar();
|
|
13
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, title ? /*#__PURE__*/React.createElement(Helmet, {
|
|
14
|
+
title: title
|
|
15
|
+
}) : null, /*#__PURE__*/React.createElement(Navigation, null), /*#__PURE__*/React.createElement("div", {
|
|
16
|
+
className: cn("wby-ml-auto wby-bg-neutral-base wby-transition-[max-width,min-width] wby-ease-linear wby-w-full", {
|
|
17
|
+
"wby-max-w-[calc(100%-theme(spacing.sidebar-expanded))] ": pinned,
|
|
18
|
+
"wby-max-w-[calc(100%-theme(spacing.sidebar-collapsed))] ": !pinned
|
|
19
|
+
})
|
|
20
|
+
}, /*#__PURE__*/React.createElement(HeaderBar, {
|
|
21
|
+
end: /*#__PURE__*/React.createElement("div", {
|
|
22
|
+
className: "wby-flex"
|
|
23
|
+
}, /*#__PURE__*/React.createElement(LocaleSelector, null), /*#__PURE__*/React.createElement(TenantSelector, null), /*#__PURE__*/React.createElement(UserMenu, null))
|
|
24
|
+
}), /*#__PURE__*/React.createElement("main", {
|
|
25
|
+
className: "wby-relative wby-overflow-y-auto wby-h-main-content"
|
|
26
|
+
}, children)));
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=Layout.js.map
|
package/Layout.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Helmet","LayoutRenderer","LocaleSelector","Navigation","TenantSelector","UserMenu","HeaderBar","cn","useSidebar","Layout","createDecorator","title","children","pinned","createElement","Fragment","className","end"],"sources":["Layout.tsx"],"sourcesContent":["import React from \"react\";\nimport Helmet from \"react-helmet\";\nimport {\n LayoutProps,\n LayoutRenderer,\n LocaleSelector,\n Navigation,\n TenantSelector,\n UserMenu\n} from \"@webiny/app-admin\";\nimport { HeaderBar, cn, useSidebar } from \"@webiny/admin-ui\";\n\nexport const Layout = LayoutRenderer.createDecorator(() => {\n return function Layout({ title, children }: LayoutProps) {\n const { pinned } = useSidebar();\n return (\n <>\n {title ? <Helmet title={title} /> : null}\n <Navigation />\n <div\n className={cn(\n \"wby-ml-auto wby-bg-neutral-base wby-transition-[max-width,min-width] wby-ease-linear wby-w-full\",\n {\n \"wby-max-w-[calc(100%-theme(spacing.sidebar-expanded))] \": pinned,\n \"wby-max-w-[calc(100%-theme(spacing.sidebar-collapsed))] \": !pinned\n }\n )}\n >\n <HeaderBar\n end={\n <div className={\"wby-flex\"}>\n <LocaleSelector />\n <TenantSelector />\n <UserMenu />\n </div>\n }\n />\n <main className={\"wby-relative wby-overflow-y-auto wby-h-main-content\"}>\n {children}\n </main>\n </div>\n </>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,MAAM,MAAM,cAAc;AACjC,SAEIC,cAAc,EACdC,cAAc,EACdC,UAAU,EACVC,cAAc,EACdC,QAAQ,QACL,mBAAmB;AAC1B,SAASC,SAAS,EAAEC,EAAE,EAAEC,UAAU,QAAQ,kBAAkB;AAE5D,OAAO,MAAMC,MAAM,GAAGR,cAAc,CAACS,eAAe,CAAC,MAAM;EACvD,OAAO,SAASD,MAAMA,CAAC;IAAEE,KAAK;IAAEC;EAAsB,CAAC,EAAE;IACrD,MAAM;MAAEC;IAAO,CAAC,GAAGL,UAAU,CAAC,CAAC;IAC/B,oBACIT,KAAA,CAAAe,aAAA,CAAAf,KAAA,CAAAgB,QAAA,QACKJ,KAAK,gBAAGZ,KAAA,CAAAe,aAAA,CAACd,MAAM;MAACW,KAAK,EAAEA;IAAM,CAAE,CAAC,GAAG,IAAI,eACxCZ,KAAA,CAAAe,aAAA,CAACX,UAAU,MAAE,CAAC,eACdJ,KAAA,CAAAe,aAAA;MACIE,SAAS,EAAET,EAAE,CACT,iGAAiG,EACjG;QACI,yDAAyD,EAAEM,MAAM;QACjE,0DAA0D,EAAE,CAACA;MACjE,CACJ;IAAE,gBAEFd,KAAA,CAAAe,aAAA,CAACR,SAAS;MACNW,GAAG,eACClB,KAAA,CAAAe,aAAA;QAAKE,SAAS,EAAE;MAAW,gBACvBjB,KAAA,CAAAe,aAAA,CAACZ,cAAc,MAAE,CAAC,eAClBH,KAAA,CAAAe,aAAA,CAACV,cAAc,MAAE,CAAC,eAClBL,KAAA,CAAAe,aAAA,CAACT,QAAQ,MAAE,CACV;IACR,CACJ,CAAC,eACFN,KAAA,CAAAe,aAAA;MAAME,SAAS,EAAE;IAAsD,GAClEJ,QACC,CACL,CACP,CAAC;EAEX,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
package/Logo.d.ts
ADDED
package/Logo.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { LogoRenderer, useAdminConfig } from "@webiny/app-admin";
|
|
3
|
+
const minHeight = {
|
|
4
|
+
minHeight: 48
|
|
5
|
+
};
|
|
6
|
+
export const Logo = LogoRenderer.createDecorator(() => {
|
|
7
|
+
return function Logo() {
|
|
8
|
+
const {
|
|
9
|
+
tenant
|
|
10
|
+
} = useAdminConfig();
|
|
11
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
style: minHeight
|
|
13
|
+
}, tenant.logo || null);
|
|
14
|
+
};
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=Logo.js.map
|