@webiny/app-admin-ui 6.0.0-alpha.4 → 6.0.0-rc.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 +1 -1
- package/Dashboard/Welcome.js +21 -32
- package/Dashboard/Welcome.js.map +1 -1
- package/Dashboard/components/AssistanceWidget.js +49 -53
- package/Dashboard/components/AssistanceWidget.js.map +1 -1
- package/Dashboard/components/CommunityWidget.js +19 -18
- package/Dashboard/components/CommunityWidget.js.map +1 -1
- package/Dashboard/components/MissingPermissionsWidget.js +1 -1
- package/Dashboard/components/MissingPermissionsWidget.js.map +1 -1
- package/Dashboard/components/index.d.ts +3 -4
- package/Dashboard/components/index.js +3 -4
- package/Dashboard/components/index.js.map +1 -1
- package/Dashboard.js +1 -1
- package/Dashboard.js.map +1 -1
- package/Dialog/DialogContainer.js +3 -3
- package/Dialog/DialogContainer.js.map +1 -1
- package/Dialog/DialogProvider.js +1 -1
- package/Dialog/DialogProvider.js.map +1 -1
- package/Dialog.js +1 -1
- package/Dialog.js.map +1 -1
- package/Layout.js +7 -7
- package/Layout.js.map +1 -1
- package/Logo.js +5 -2
- package/Logo.js.map +1 -1
- package/Navigation/Navigation.js +9 -8
- package/Navigation/Navigation.js.map +1 -1
- package/Navigation/SidebarMenuItems.d.ts +1 -1
- package/Navigation/SidebarMenuItems.js +6 -2
- package/Navigation/SidebarMenuItems.js.map +1 -1
- package/Navigation/SidebarProvider.js +27 -2
- package/Navigation/SidebarProvider.js.map +1 -1
- package/Navigation.js +2 -2
- package/Navigation.js.map +1 -1
- package/NotFound.js +2 -2
- package/NotFound.js.map +1 -1
- package/README.md +9 -5
- package/UserMenu/UserMenu.js +2 -2
- package/UserMenu/UserMenu.js.map +1 -1
- package/UserMenu/UserMenuHandle.js +12 -8
- package/UserMenu/UserMenuHandle.js.map +1 -1
- package/UserMenu.js +5 -5
- package/UserMenu.js.map +1 -1
- package/index.js +20 -8
- package/index.js.map +1 -1
- package/package.json +11 -18
- package/styles.scss +1 -1
- package/Dashboard/components/ApplicationWidget.d.ts +0 -9
- package/Dashboard/components/ApplicationWidget.js +0 -31
- package/Dashboard/components/ApplicationWidget.js.map +0 -1
package/Logo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","LogoRenderer","useAdminConfig","minHeight","Logo","createDecorator","
|
|
1
|
+
{"version":3,"names":["React","LogoRenderer","useAdminConfig","useIsInNavigation","minHeight","Logo","createDecorator","logo","isInNavigation","logoElement","squareLogo","horizontalLogo","createElement","style"],"sources":["Logo.tsx"],"sourcesContent":["import React from \"react\";\nimport { LogoRenderer, useAdminConfig } from \"@webiny/app-admin\";\nimport { useIsInNavigation } from \"@webiny/app-admin\";\n\nconst minHeight = { minHeight: 48 };\n\nexport const Logo = LogoRenderer.createDecorator(() => {\n return function Logo() {\n const { logo } = useAdminConfig();\n const isInNavigation = useIsInNavigation();\n\n const logoElement = isInNavigation ? logo.squareLogo : logo.horizontalLogo;\n\n return <div style={minHeight}>{logoElement || null}</div>;\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,mBAAmB;AAChE,SAASC,iBAAiB,QAAQ,mBAAmB;AAErD,MAAMC,SAAS,GAAG;EAAEA,SAAS,EAAE;AAAG,CAAC;AAEnC,OAAO,MAAMC,IAAI,GAAGJ,YAAY,CAACK,eAAe,CAAC,MAAM;EACnD,OAAO,SAASD,IAAIA,CAAA,EAAG;IACnB,MAAM;MAAEE;IAAK,CAAC,GAAGL,cAAc,CAAC,CAAC;IACjC,MAAMM,cAAc,GAAGL,iBAAiB,CAAC,CAAC;IAE1C,MAAMM,WAAW,GAAGD,cAAc,GAAGD,IAAI,CAACG,UAAU,GAAGH,IAAI,CAACI,cAAc;IAE1E,oBAAOX,KAAA,CAAAY,aAAA;MAAKC,KAAK,EAAET;IAAU,GAAEK,WAAW,IAAI,IAAU,CAAC;EAC7D,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
package/Navigation/Navigation.js
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { NavigationRenderer, useAdminConfig } from "@webiny/app-admin";
|
|
3
3
|
import { Sidebar } from "@webiny/admin-ui";
|
|
4
|
-
import { SidebarMenuItems } from "./SidebarMenuItems";
|
|
5
|
-
import {
|
|
4
|
+
import { SidebarMenuItems } from "./SidebarMenuItems.js";
|
|
5
|
+
import { SimpleLink } from "@webiny/app-admin";
|
|
6
6
|
export const Navigation = NavigationRenderer.createDecorator(() => {
|
|
7
7
|
return function Navigation() {
|
|
8
8
|
const {
|
|
9
9
|
menus,
|
|
10
|
-
|
|
10
|
+
title,
|
|
11
|
+
logo
|
|
11
12
|
} = useAdminConfig();
|
|
12
|
-
const
|
|
13
|
+
const titleElement = /*#__PURE__*/React.createElement(SimpleLink, {
|
|
13
14
|
to: "/"
|
|
14
|
-
},
|
|
15
|
-
const icon = /*#__PURE__*/React.createElement(
|
|
15
|
+
}, title);
|
|
16
|
+
const icon = /*#__PURE__*/React.createElement(SimpleLink, {
|
|
16
17
|
to: "/"
|
|
17
18
|
}, /*#__PURE__*/React.createElement(Sidebar.Icon, {
|
|
18
|
-
element:
|
|
19
|
+
element: logo.squareLogo,
|
|
19
20
|
label: "Webiny"
|
|
20
21
|
}));
|
|
21
22
|
return /*#__PURE__*/React.createElement(Sidebar, {
|
|
22
|
-
title:
|
|
23
|
+
title: titleElement,
|
|
23
24
|
icon: icon,
|
|
24
25
|
footer: /*#__PURE__*/React.createElement(SidebarMenuItems, {
|
|
25
26
|
menus: menus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NavigationRenderer","useAdminConfig","Sidebar","SidebarMenuItems","
|
|
1
|
+
{"version":3,"names":["React","NavigationRenderer","useAdminConfig","Sidebar","SidebarMenuItems","SimpleLink","Navigation","createDecorator","menus","title","logo","titleElement","createElement","to","icon","Icon","element","squareLogo","label","footer","where","tags"],"sources":["Navigation.tsx"],"sourcesContent":["import React from \"react\";\nimport { NavigationRenderer, useAdminConfig } from \"@webiny/app-admin\";\nimport { Sidebar } from \"@webiny/admin-ui\";\nimport { SidebarMenuItems } from \"./SidebarMenuItems.js\";\nimport { SimpleLink } from \"@webiny/app-admin\";\n\nexport const Navigation = NavigationRenderer.createDecorator(() => {\n return function Navigation() {\n const { menus, title, logo } = useAdminConfig();\n\n const titleElement = <SimpleLink to={\"/\"}>{title}</SimpleLink>;\n const icon = (\n <SimpleLink to={\"/\"}>\n <Sidebar.Icon element={logo.squareLogo} label={\"Webiny\"} />\n </SimpleLink>\n );\n\n return (\n <Sidebar\n title={titleElement}\n icon={icon}\n footer={<SidebarMenuItems menus={menus} where={{ tags: [\"footer\"] }} />}\n >\n <SidebarMenuItems menus={menus} />\n </Sidebar>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,kBAAkB,EAAEC,cAAc,QAAQ,mBAAmB;AACtE,SAASC,OAAO,QAAQ,kBAAkB;AAC1C,SAASC,gBAAgB;AACzB,SAASC,UAAU,QAAQ,mBAAmB;AAE9C,OAAO,MAAMC,UAAU,GAAGL,kBAAkB,CAACM,eAAe,CAAC,MAAM;EAC/D,OAAO,SAASD,UAAUA,CAAA,EAAG;IACzB,MAAM;MAAEE,KAAK;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGR,cAAc,CAAC,CAAC;IAE/C,MAAMS,YAAY,gBAAGX,KAAA,CAAAY,aAAA,CAACP,UAAU;MAACQ,EAAE,EAAE;IAAI,GAAEJ,KAAkB,CAAC;IAC9D,MAAMK,IAAI,gBACNd,KAAA,CAAAY,aAAA,CAACP,UAAU;MAACQ,EAAE,EAAE;IAAI,gBAChBb,KAAA,CAAAY,aAAA,CAACT,OAAO,CAACY,IAAI;MAACC,OAAO,EAAEN,IAAI,CAACO,UAAW;MAACC,KAAK,EAAE;IAAS,CAAE,CAClD,CACf;IAED,oBACIlB,KAAA,CAAAY,aAAA,CAACT,OAAO;MACJM,KAAK,EAAEE,YAAa;MACpBG,IAAI,EAAEA,IAAK;MACXK,MAAM,eAAEnB,KAAA,CAAAY,aAAA,CAACR,gBAAgB;QAACI,KAAK,EAAEA,KAAM;QAACY,KAAK,EAAE;UAAEC,IAAI,EAAE,CAAC,QAAQ;QAAE;MAAE,CAAE;IAAE,gBAExErB,KAAA,CAAAY,aAAA,CAACR,gBAAgB;MAACI,KAAK,EAAEA;IAAM,CAAE,CAC5B,CAAC;EAElB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -24,10 +24,11 @@ export const SidebarMenuItems = props => {
|
|
|
24
24
|
if (! /*#__PURE__*/React.isValidElement(m.element)) {
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
|
+
const key = [m.parent, m.name].join("-");
|
|
27
28
|
const hasChildMenus = allMenus.some(menu => menu.parent === m.name);
|
|
28
29
|
if (hasChildMenus) {
|
|
29
30
|
return /*#__PURE__*/React.cloneElement(m.element, {
|
|
30
|
-
key
|
|
31
|
+
key
|
|
31
32
|
}, /*#__PURE__*/React.createElement(SidebarMenuItems, {
|
|
32
33
|
menus: allMenus,
|
|
33
34
|
where: {
|
|
@@ -35,8 +36,11 @@ export const SidebarMenuItems = props => {
|
|
|
35
36
|
}
|
|
36
37
|
}));
|
|
37
38
|
}
|
|
39
|
+
if (m.hideIfEmpty) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
38
42
|
return /*#__PURE__*/React.cloneElement(m.element, {
|
|
39
|
-
key
|
|
43
|
+
key
|
|
40
44
|
});
|
|
41
45
|
});
|
|
42
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SidebarMenuItems","props","menus","allMenus","where","filteredMenus","filter","menu","whereParent","parent","menuParent","whereTags","tags","menuTags","length","every","tag","includes","map","m","isValidElement","element","
|
|
1
|
+
{"version":3,"names":["React","SidebarMenuItems","props","menus","allMenus","where","filteredMenus","filter","menu","whereParent","parent","menuParent","whereTags","tags","menuTags","length","every","tag","includes","map","m","isValidElement","element","key","name","join","hasChildMenus","some","cloneElement","createElement","hideIfEmpty"],"sources":["SidebarMenuItems.tsx"],"sourcesContent":["import React from \"react\";\nimport type { MenuConfig } from \"@webiny/app-admin/config/AdminConfig/Menu.js\";\n\nexport interface MenusProps {\n menus: MenuConfig[];\n where?: { tags?: string[]; parent?: string };\n}\n\n// This component is called recursively to render root and nested menu items.\n// The menu items are defined via AdminConfig.\nexport const SidebarMenuItems = (props: MenusProps) => {\n const { menus: allMenus, where = {} } = props;\n const filteredMenus = allMenus.filter(menu => {\n const whereParent = where.parent || null;\n const menuParent = menu.parent;\n if (whereParent !== menuParent) {\n return false;\n }\n\n const whereTags = where.tags || [];\n const menuTags = menu.tags || [];\n\n if (whereTags.length > 0) {\n // If not all tags are present, return false.\n return whereTags.every(tag => menuTags.includes(tag));\n }\n\n return menuTags.length === 0;\n });\n\n return filteredMenus.map(m => {\n if (!React.isValidElement(m.element)) {\n return null;\n }\n\n const key = [m.parent, m.name].join(\"-\");\n\n const hasChildMenus = allMenus.some(menu => menu.parent === m.name);\n if (hasChildMenus) {\n return React.cloneElement(\n m.element,\n { key },\n <SidebarMenuItems menus={allMenus} where={{ parent: m.name }} />\n );\n }\n\n if (m.hideIfEmpty) {\n return null;\n }\n\n return React.cloneElement(m.element, { key });\n });\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAQzB;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAIC,KAAiB,IAAK;EACnD,MAAM;IAAEC,KAAK,EAAEC,QAAQ;IAAEC,KAAK,GAAG,CAAC;EAAE,CAAC,GAAGH,KAAK;EAC7C,MAAMI,aAAa,GAAGF,QAAQ,CAACG,MAAM,CAACC,IAAI,IAAI;IAC1C,MAAMC,WAAW,GAAGJ,KAAK,CAACK,MAAM,IAAI,IAAI;IACxC,MAAMC,UAAU,GAAGH,IAAI,CAACE,MAAM;IAC9B,IAAID,WAAW,KAAKE,UAAU,EAAE;MAC5B,OAAO,KAAK;IAChB;IAEA,MAAMC,SAAS,GAAGP,KAAK,CAACQ,IAAI,IAAI,EAAE;IAClC,MAAMC,QAAQ,GAAGN,IAAI,CAACK,IAAI,IAAI,EAAE;IAEhC,IAAID,SAAS,CAACG,MAAM,GAAG,CAAC,EAAE;MACtB;MACA,OAAOH,SAAS,CAACI,KAAK,CAACC,GAAG,IAAIH,QAAQ,CAACI,QAAQ,CAACD,GAAG,CAAC,CAAC;IACzD;IAEA,OAAOH,QAAQ,CAACC,MAAM,KAAK,CAAC;EAChC,CAAC,CAAC;EAEF,OAAOT,aAAa,CAACa,GAAG,CAACC,CAAC,IAAI;IAC1B,IAAI,eAACpB,KAAK,CAACqB,cAAc,CAACD,CAAC,CAACE,OAAO,CAAC,EAAE;MAClC,OAAO,IAAI;IACf;IAEA,MAAMC,GAAG,GAAG,CAACH,CAAC,CAACV,MAAM,EAAEU,CAAC,CAACI,IAAI,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IAExC,MAAMC,aAAa,GAAGtB,QAAQ,CAACuB,IAAI,CAACnB,IAAI,IAAIA,IAAI,CAACE,MAAM,KAAKU,CAAC,CAACI,IAAI,CAAC;IACnE,IAAIE,aAAa,EAAE;MACf,oBAAO1B,KAAK,CAAC4B,YAAY,CACrBR,CAAC,CAACE,OAAO,EACT;QAAEC;MAAI,CAAC,eACPvB,KAAA,CAAA6B,aAAA,CAAC5B,gBAAgB;QAACE,KAAK,EAAEC,QAAS;QAACC,KAAK,EAAE;UAAEK,MAAM,EAAEU,CAAC,CAACI;QAAK;MAAE,CAAE,CACnE,CAAC;IACL;IAEA,IAAIJ,CAAC,CAACU,WAAW,EAAE;MACf,OAAO,IAAI;IACf;IAEA,oBAAO9B,KAAK,CAAC4B,YAAY,CAACR,CAAC,CAACE,OAAO,EAAE;MAAEC;IAAI,CAAC,CAAC;EACjD,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,33 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useMemo } from "react";
|
|
2
2
|
import { SidebarProvider as AdminUiSidebar } from "@webiny/admin-ui";
|
|
3
|
+
import { useLocalStorage, useLocalStorageValue } from "@webiny/app";
|
|
4
|
+
const SIDEBAR_STATE_KEY = "navigation/state";
|
|
3
5
|
export const SidebarProvider = Component => {
|
|
4
6
|
return function SidebarProvider(props) {
|
|
5
|
-
|
|
7
|
+
const rawState = useLocalStorageValue(SIDEBAR_STATE_KEY);
|
|
8
|
+
const {
|
|
9
|
+
set
|
|
10
|
+
} = useLocalStorage();
|
|
11
|
+
const state = useMemo(() => {
|
|
12
|
+
try {
|
|
13
|
+
if (typeof rawState === "object" && rawState !== null) {
|
|
14
|
+
return rawState;
|
|
15
|
+
}
|
|
16
|
+
if (typeof rawState === "string") {
|
|
17
|
+
return JSON.parse(rawState);
|
|
18
|
+
}
|
|
19
|
+
} catch {
|
|
20
|
+
// Ignore parse errors
|
|
21
|
+
}
|
|
22
|
+
return undefined;
|
|
23
|
+
}, [rawState]);
|
|
24
|
+
const onChangeState = newState => {
|
|
25
|
+
set(SIDEBAR_STATE_KEY, JSON.stringify(newState));
|
|
26
|
+
};
|
|
27
|
+
return /*#__PURE__*/React.createElement(AdminUiSidebar, {
|
|
28
|
+
state: state,
|
|
29
|
+
onChangeState: onChangeState
|
|
30
|
+
}, /*#__PURE__*/React.createElement(Component, props));
|
|
6
31
|
};
|
|
7
32
|
};
|
|
8
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SidebarProvider","AdminUiSidebar","Component","props","createElement"],"sources":["SidebarProvider.tsx"],"sourcesContent":["import React from \"react\";\nimport { SidebarProvider as AdminUiSidebar } from \"@webiny/admin-ui\";\n\ninterface NavigationProviderProps {\n children?: React.ReactNode;\n}\n\nexport const SidebarProvider = (Component: React.ComponentType<NavigationProviderProps>) => {\n return function SidebarProvider(props: NavigationProviderProps) {\n return (\n <AdminUiSidebar>\n <Component {...props} />\n </AdminUiSidebar>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useMemo","SidebarProvider","AdminUiSidebar","useLocalStorage","useLocalStorageValue","SIDEBAR_STATE_KEY","Component","props","rawState","set","state","JSON","parse","undefined","onChangeState","newState","stringify","createElement"],"sources":["SidebarProvider.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { SidebarProvider as AdminUiSidebar } from \"@webiny/admin-ui\";\nimport { useLocalStorage, useLocalStorageValue } from \"@webiny/app\";\n\ninterface NavigationProviderProps {\n children?: React.ReactNode;\n}\n\nconst SIDEBAR_STATE_KEY = \"navigation/state\";\n\ntype SidebarState = {\n pinned: boolean;\n expandedSections: string[];\n pinnedItems: string[];\n};\n\nexport const SidebarProvider = (Component: React.ComponentType<NavigationProviderProps>) => {\n return function SidebarProvider(props: NavigationProviderProps) {\n const rawState = useLocalStorageValue(SIDEBAR_STATE_KEY);\n const { set } = useLocalStorage();\n\n const state = useMemo(() => {\n try {\n if (typeof rawState === \"object\" && rawState !== null) {\n return rawState as SidebarState;\n }\n if (typeof rawState === \"string\") {\n return JSON.parse(rawState) as SidebarState;\n }\n } catch {\n // Ignore parse errors\n }\n return undefined;\n }, [rawState]);\n\n const onChangeState = (newState: SidebarState) => {\n set(SIDEBAR_STATE_KEY, JSON.stringify(newState));\n };\n\n return (\n <AdminUiSidebar state={state} onChangeState={onChangeState}>\n <Component {...props} />\n </AdminUiSidebar>\n );\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe,IAAIC,cAAc,QAAQ,kBAAkB;AACpE,SAASC,eAAe,EAAEC,oBAAoB,QAAQ,aAAa;AAMnE,MAAMC,iBAAiB,GAAG,kBAAkB;AAQ5C,OAAO,MAAMJ,eAAe,GAAIK,SAAuD,IAAK;EACxF,OAAO,SAASL,eAAeA,CAACM,KAA8B,EAAE;IAC5D,MAAMC,QAAQ,GAAGJ,oBAAoB,CAACC,iBAAiB,CAAC;IACxD,MAAM;MAAEI;IAAI,CAAC,GAAGN,eAAe,CAAC,CAAC;IAEjC,MAAMO,KAAK,GAAGV,OAAO,CAAC,MAAM;MACxB,IAAI;QACA,IAAI,OAAOQ,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;UACnD,OAAOA,QAAQ;QACnB;QACA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;UAC9B,OAAOG,IAAI,CAACC,KAAK,CAACJ,QAAQ,CAAC;QAC/B;MACJ,CAAC,CAAC,MAAM;QACJ;MAAA;MAEJ,OAAOK,SAAS;IACpB,CAAC,EAAE,CAACL,QAAQ,CAAC,CAAC;IAEd,MAAMM,aAAa,GAAIC,QAAsB,IAAK;MAC9CN,GAAG,CAACJ,iBAAiB,EAAEM,IAAI,CAACK,SAAS,CAACD,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,oBACIhB,KAAA,CAAAkB,aAAA,CAACf,cAAc;MAACQ,KAAK,EAAEA,KAAM;MAACI,aAAa,EAAEA;IAAc,gBACvDf,KAAA,CAAAkB,aAAA,CAACX,SAAS,EAAKC,KAAQ,CACX,CAAC;EAEzB,CAAC;AACL,CAAC","ignoreList":[]}
|
package/Navigation.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Provider } from "@webiny/app-admin";
|
|
3
|
-
import { SidebarProvider } from "./Navigation/SidebarProvider";
|
|
4
|
-
import { Navigation as DecoratedNavigation } from "./Navigation/Navigation";
|
|
3
|
+
import { SidebarProvider } from "./Navigation/SidebarProvider.js";
|
|
4
|
+
import { Navigation as DecoratedNavigation } from "./Navigation/Navigation.js";
|
|
5
5
|
export const Navigation = () => {
|
|
6
6
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Provider, {
|
|
7
7
|
hoc: SidebarProvider
|
package/Navigation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Provider","SidebarProvider","Navigation","DecoratedNavigation","createElement","Fragment","hoc"],"sources":["Navigation.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app-admin\";\nimport { SidebarProvider } from \"./Navigation/SidebarProvider\";\nimport { Navigation as DecoratedNavigation } from \"./Navigation/Navigation\";\n\nexport const Navigation = () => {\n return (\n <>\n <Provider hoc={SidebarProvider} />\n <DecoratedNavigation />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,eAAe;AACxB,SAASC,UAAU,IAAIC,mBAAmB;AAE1C,OAAO,MAAMD,UAAU,GAAGA,CAAA,KAAM;EAC5B,oBACIH,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,qBACIN,KAAA,CAAAK,aAAA,CAACJ,QAAQ;IAACM,GAAG,EAAEL;EAAgB,CAAE,CAAC,eAClCF,KAAA,CAAAK,aAAA,CAACD,mBAAmB,MAAE,CACxB,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Provider","SidebarProvider","Navigation","DecoratedNavigation","createElement","Fragment","hoc"],"sources":["Navigation.tsx"],"sourcesContent":["import React from \"react\";\nimport { Provider } from \"@webiny/app-admin\";\nimport { SidebarProvider } from \"./Navigation/SidebarProvider.js\";\nimport { Navigation as DecoratedNavigation } from \"./Navigation/Navigation.js\";\n\nexport const Navigation = () => {\n return (\n <>\n <Provider hoc={SidebarProvider} />\n <DecoratedNavigation />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,eAAe;AACxB,SAASC,UAAU,IAAIC,mBAAmB;AAE1C,OAAO,MAAMD,UAAU,GAAGA,CAAA,KAAM;EAC5B,oBACIH,KAAA,CAAAK,aAAA,CAAAL,KAAA,CAAAM,QAAA,qBACIN,KAAA,CAAAK,aAAA,CAACJ,QAAQ;IAACM,GAAG,EAAEL;EAAgB,CAAE,CAAC,eAClCF,KAAA,CAAAK,aAAA,CAACD,mBAAmB,MAAE,CACxB,CAAC;AAEX,CAAC","ignoreList":[]}
|
package/NotFound.js
CHANGED
|
@@ -5,13 +5,13 @@ import { Link, Text } from "@webiny/admin-ui";
|
|
|
5
5
|
export const NotFound = NotFoundBase.createDecorator(() => {
|
|
6
6
|
return function NotFound() {
|
|
7
7
|
return /*#__PURE__*/React.createElement("div", {
|
|
8
|
-
className: "
|
|
8
|
+
className: "h-full flex flex-col items-center justify-center text-center gap-xs"
|
|
9
9
|
}, /*#__PURE__*/React.createElement("img", {
|
|
10
10
|
width: 200,
|
|
11
11
|
height: 200,
|
|
12
12
|
src: notFoundImage,
|
|
13
13
|
alt: "Not Accessible",
|
|
14
|
-
className: "
|
|
14
|
+
className: "mb-xl"
|
|
15
15
|
}), /*#__PURE__*/React.createElement(Text, null, "The route is either missing, or you're not authorized to view it."), /*#__PURE__*/React.createElement(Text, null, "Please contact your administrator to report the issue."), /*#__PURE__*/React.createElement(Link, {
|
|
16
16
|
to: "/"
|
|
17
17
|
}, "Take me back."));
|
package/NotFound.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","NotFound","NotFoundBase","notFoundImage","Link","Text","createDecorator","createElement","className","width","height","src","alt","to"],"sources":["NotFound.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { NotFound as NotFoundBase } from \"@webiny/app-admin\";\nimport notFoundImage from \"./NotFound/notFound.svg\";\nimport { Link, Text } from \"@webiny/admin-ui\";\n\nexport const NotFound = NotFoundBase.createDecorator(() => {\n return function NotFound() {\n return (\n <div
|
|
1
|
+
{"version":3,"names":["React","NotFound","NotFoundBase","notFoundImage","Link","Text","createDecorator","createElement","className","width","height","src","alt","to"],"sources":["NotFound.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { NotFound as NotFoundBase } from \"@webiny/app-admin\";\nimport notFoundImage from \"./NotFound/notFound.svg\";\nimport { Link, Text } from \"@webiny/admin-ui\";\n\nexport const NotFound = NotFoundBase.createDecorator(() => {\n return function NotFound() {\n return (\n <div className={\"h-full flex flex-col items-center justify-center text-center gap-xs\"}>\n <img\n width={200}\n height={200}\n src={notFoundImage}\n alt=\"Not Accessible\"\n className={\"mb-xl\"}\n />\n <Text>The route is either missing, or you're not authorized to view it.</Text>\n <Text>Please contact your administrator to report the issue.</Text>\n <Link to=\"/\">Take me back.</Link>\n </div>\n );\n };\n});\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,IAAIC,YAAY,QAAQ,mBAAmB;AAC5D,OAAOC,aAAa;AACpB,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAE7C,OAAO,MAAMJ,QAAQ,GAAGC,YAAY,CAACI,eAAe,CAAC,MAAM;EACvD,OAAO,SAASL,QAAQA,CAAA,EAAG;IACvB,oBACID,KAAA,CAAAO,aAAA;MAAKC,SAAS,EAAE;IAAsE,gBAClFR,KAAA,CAAAO,aAAA;MACIE,KAAK,EAAE,GAAI;MACXC,MAAM,EAAE,GAAI;MACZC,GAAG,EAAER,aAAc;MACnBS,GAAG,EAAC,gBAAgB;MACpBJ,SAAS,EAAE;IAAQ,CACtB,CAAC,eACFR,KAAA,CAAAO,aAAA,CAACF,IAAI,QAAC,mEAA4E,CAAC,eACnFL,KAAA,CAAAO,aAAA,CAACF,IAAI,QAAC,wDAA4D,CAAC,eACnEL,KAAA,CAAAO,aAAA,CAACH,IAAI;MAACS,EAAE,EAAC;IAAG,GAAC,eAAmB,CAC/B,CAAC;EAEd,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
package/README.md
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
# @webiny/app-admin-ui
|
|
2
|
-
[](https://www.npmjs.com/package/@webiny/app-admin-ui)
|
|
3
|
-
[](https://www.npmjs.com/package/@webiny/app-admin-ui)
|
|
4
|
-
[](https://github.com/prettier/prettier)
|
|
5
|
-
[](http://makeapullrequest.com)
|
|
6
2
|
|
|
7
|
-
|
|
3
|
+
> [!NOTE]
|
|
4
|
+
> This package is part of the [Webiny](https://www.webiny.com) monorepo.
|
|
5
|
+
> It’s **included in every Webiny project by default** and is not meant to be used as a standalone package.
|
|
6
|
+
|
|
7
|
+
📘 **Documentation:** [https://www.webiny.com/docs](https://www.webiny.com/docs)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
_This README file is automatically generated during the publish process._
|
package/UserMenu/UserMenu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { UserMenuRenderer as UserMenuRendererSpec, UserMenuHandle, useAdminConfig } from "@webiny/app-admin";
|
|
3
3
|
import { DropdownMenu } from "@webiny/admin-ui";
|
|
4
|
-
import { useSecurity } from "@webiny/app-
|
|
4
|
+
import { useSecurity } from "@webiny/app-admin";
|
|
5
5
|
export const UserMenu = UserMenuRendererSpec.createDecorator(() => {
|
|
6
6
|
return function UserMenu() {
|
|
7
7
|
const security = useSecurity();
|
|
@@ -22,7 +22,7 @@ export const UserMenu = UserMenuRendererSpec.createDecorator(() => {
|
|
|
22
22
|
return /*#__PURE__*/React.createElement(DropdownMenu, {
|
|
23
23
|
trigger: /*#__PURE__*/React.createElement(UserMenuHandle, null),
|
|
24
24
|
"data-testid": "logged-in-user-menu-list",
|
|
25
|
-
className: "
|
|
25
|
+
className: "w-[220px]"
|
|
26
26
|
}, dropDownMenuItems);
|
|
27
27
|
};
|
|
28
28
|
});
|
package/UserMenu/UserMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","UserMenuRenderer","UserMenuRendererSpec","UserMenuHandle","useAdminConfig","DropdownMenu","useSecurity","UserMenu","createDecorator","security","userMenus","identity","dropDownMenuItems","map","m","isValidElement","element","cloneElement","key","name","createElement","trigger","className"],"sources":["UserMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n UserMenuRenderer as UserMenuRendererSpec,\n UserMenuHandle,\n useAdminConfig\n} from \"@webiny/app-admin\";\nimport { DropdownMenu } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-
|
|
1
|
+
{"version":3,"names":["React","UserMenuRenderer","UserMenuRendererSpec","UserMenuHandle","useAdminConfig","DropdownMenu","useSecurity","UserMenu","createDecorator","security","userMenus","identity","dropDownMenuItems","map","m","isValidElement","element","cloneElement","key","name","createElement","trigger","className"],"sources":["UserMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport {\n UserMenuRenderer as UserMenuRendererSpec,\n UserMenuHandle,\n useAdminConfig\n} from \"@webiny/app-admin\";\nimport { DropdownMenu } from \"@webiny/admin-ui\";\nimport { useSecurity } from \"@webiny/app-admin\";\n\nexport const UserMenu = UserMenuRendererSpec.createDecorator(() => {\n return function UserMenu() {\n const security = useSecurity();\n const { userMenus } = useAdminConfig();\n\n if (!security || !security.identity) {\n return null;\n }\n\n const dropDownMenuItems = userMenus.map(m => {\n if (React.isValidElement(m.element)) {\n return React.cloneElement(m.element, { key: m.name });\n }\n\n return null;\n });\n\n return (\n <DropdownMenu\n trigger={<UserMenuHandle />}\n data-testid={\"logged-in-user-menu-list\"}\n className={\"w-[220px]\"}\n >\n {dropDownMenuItems}\n </DropdownMenu>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACIC,gBAAgB,IAAIC,oBAAoB,EACxCC,cAAc,EACdC,cAAc,QACX,mBAAmB;AAC1B,SAASC,YAAY,QAAQ,kBAAkB;AAC/C,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,OAAO,MAAMC,QAAQ,GAAGL,oBAAoB,CAACM,eAAe,CAAC,MAAM;EAC/D,OAAO,SAASD,QAAQA,CAAA,EAAG;IACvB,MAAME,QAAQ,GAAGH,WAAW,CAAC,CAAC;IAC9B,MAAM;MAAEI;IAAU,CAAC,GAAGN,cAAc,CAAC,CAAC;IAEtC,IAAI,CAACK,QAAQ,IAAI,CAACA,QAAQ,CAACE,QAAQ,EAAE;MACjC,OAAO,IAAI;IACf;IAEA,MAAMC,iBAAiB,GAAGF,SAAS,CAACG,GAAG,CAACC,CAAC,IAAI;MACzC,iBAAId,KAAK,CAACe,cAAc,CAACD,CAAC,CAACE,OAAO,CAAC,EAAE;QACjC,oBAAOhB,KAAK,CAACiB,YAAY,CAACH,CAAC,CAACE,OAAO,EAAE;UAAEE,GAAG,EAAEJ,CAAC,CAACK;QAAK,CAAC,CAAC;MACzD;MAEA,OAAO,IAAI;IACf,CAAC,CAAC;IAEF,oBACInB,KAAA,CAAAoB,aAAA,CAACf,YAAY;MACTgB,OAAO,eAAErB,KAAA,CAAAoB,aAAA,CAACjB,cAAc,MAAE,CAAE;MAC5B,eAAa,0BAA2B;MACxCmB,SAAS,EAAE;IAAY,GAEtBV,iBACS,CAAC;EAEvB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Avatar, IconButton } from "@webiny/admin-ui";
|
|
3
|
-
import {
|
|
3
|
+
import { useIdentity } from "@webiny/app-admin";
|
|
4
4
|
import { ReactComponent as KeyboardArrowRightIcon } from "@webiny/icons/keyboard_arrow_down.svg";
|
|
5
5
|
import { UserMenuHandleRenderer as UserMenuHandleRendererSpec } from "@webiny/app-admin";
|
|
6
6
|
export const UserMenuHandle = UserMenuHandleRendererSpec.createDecorator(() => {
|
|
7
7
|
return function UserMenuHandle() {
|
|
8
8
|
const {
|
|
9
|
-
identity
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
identity,
|
|
10
|
+
isAuthenticated
|
|
11
|
+
} = useIdentity();
|
|
12
|
+
if (!isAuthenticated) {
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
15
|
const profile = identity.profile;
|
|
@@ -17,12 +18,15 @@ export const UserMenuHandle = UserMenuHandleRendererSpec.createDecorator(() => {
|
|
|
17
18
|
lastName,
|
|
18
19
|
avatar
|
|
19
20
|
} = profile || {};
|
|
20
|
-
|
|
21
|
+
let fullName = `${firstName} ${lastName}`;
|
|
22
|
+
if (fullName.trim() === "") {
|
|
23
|
+
fullName = identity.displayName;
|
|
24
|
+
}
|
|
21
25
|
return /*#__PURE__*/React.createElement("div", {
|
|
22
|
-
className: "
|
|
26
|
+
className: "flex gap-x-sm cursor-pointer"
|
|
23
27
|
}, /*#__PURE__*/React.createElement("div", {
|
|
24
28
|
"data-testid": "logged-in-user-menu-avatar",
|
|
25
|
-
className: "
|
|
29
|
+
className: "flex items-center rounded-md gap-xxs py-xs px-xs bg-neutral-light"
|
|
26
30
|
}, /*#__PURE__*/React.createElement(Avatar, {
|
|
27
31
|
size: "sm",
|
|
28
32
|
variant: "strong",
|
|
@@ -30,7 +34,7 @@ export const UserMenuHandle = UserMenuHandleRendererSpec.createDecorator(() => {
|
|
|
30
34
|
src: avatar?.src
|
|
31
35
|
}),
|
|
32
36
|
fallback: /*#__PURE__*/React.createElement(Avatar.Fallback, {
|
|
33
|
-
className: "
|
|
37
|
+
className: "uppercase",
|
|
34
38
|
delayMs: 0
|
|
35
39
|
}, fullName[0])
|
|
36
40
|
}), /*#__PURE__*/React.createElement(IconButton, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Avatar","IconButton","
|
|
1
|
+
{"version":3,"names":["React","Avatar","IconButton","useIdentity","ReactComponent","KeyboardArrowRightIcon","UserMenuHandleRenderer","UserMenuHandleRendererSpec","UserMenuHandle","createDecorator","identity","isAuthenticated","profile","firstName","lastName","avatar","fullName","trim","displayName","createElement","className","size","variant","image","Image","src","fallback","Fallback","delayMs","color","icon"],"sources":["UserMenuHandle.tsx"],"sourcesContent":["import React from \"react\";\nimport { Avatar, IconButton } from \"@webiny/admin-ui\";\nimport { useIdentity } from \"@webiny/app-admin\";\nimport { ReactComponent as KeyboardArrowRightIcon } from \"@webiny/icons/keyboard_arrow_down.svg\";\nimport { UserMenuHandleRenderer as UserMenuHandleRendererSpec } from \"@webiny/app-admin\";\n\nexport const UserMenuHandle = UserMenuHandleRendererSpec.createDecorator(() => {\n return function UserMenuHandle() {\n const { identity, isAuthenticated } = useIdentity();\n\n if (!isAuthenticated) {\n return null;\n }\n\n const profile = identity.profile;\n\n const { firstName, lastName, avatar } = profile || {};\n let fullName = `${firstName} ${lastName}`;\n if (fullName.trim() === \"\") {\n fullName = identity.displayName;\n }\n\n return (\n <div className={\"flex gap-x-sm cursor-pointer\"}>\n <div\n data-testid=\"logged-in-user-menu-avatar\"\n className={\"flex items-center rounded-md gap-xxs py-xs px-xs bg-neutral-light\"}\n >\n <Avatar\n size={\"sm\"}\n variant={\"strong\"}\n image={<Avatar.Image src={avatar?.src} />}\n fallback={\n <Avatar.Fallback className={\"uppercase\"} delayMs={0}>\n {fullName[0]}\n </Avatar.Fallback>\n }\n />\n <IconButton\n variant={\"ghost\"}\n size={\"xs\"}\n color={\"neutral-strong\"}\n icon={<KeyboardArrowRightIcon />}\n />\n </div>\n </div>\n );\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,UAAU,QAAQ,kBAAkB;AACrD,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,cAAc,IAAIC,sBAAsB,QAAQ,uCAAuC;AAChG,SAASC,sBAAsB,IAAIC,0BAA0B,QAAQ,mBAAmB;AAExF,OAAO,MAAMC,cAAc,GAAGD,0BAA0B,CAACE,eAAe,CAAC,MAAM;EAC3E,OAAO,SAASD,cAAcA,CAAA,EAAG;IAC7B,MAAM;MAAEE,QAAQ;MAAEC;IAAgB,CAAC,GAAGR,WAAW,CAAC,CAAC;IAEnD,IAAI,CAACQ,eAAe,EAAE;MAClB,OAAO,IAAI;IACf;IAEA,MAAMC,OAAO,GAAGF,QAAQ,CAACE,OAAO;IAEhC,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAO,CAAC,GAAGH,OAAO,IAAI,CAAC,CAAC;IACrD,IAAII,QAAQ,GAAG,GAAGH,SAAS,IAAIC,QAAQ,EAAE;IACzC,IAAIE,QAAQ,CAACC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;MACxBD,QAAQ,GAAGN,QAAQ,CAACQ,WAAW;IACnC;IAEA,oBACIlB,KAAA,CAAAmB,aAAA;MAAKC,SAAS,EAAE;IAA+B,gBAC3CpB,KAAA,CAAAmB,aAAA;MACI,eAAY,4BAA4B;MACxCC,SAAS,EAAE;IAAoE,gBAE/EpB,KAAA,CAAAmB,aAAA,CAAClB,MAAM;MACHoB,IAAI,EAAE,IAAK;MACXC,OAAO,EAAE,QAAS;MAClBC,KAAK,eAAEvB,KAAA,CAAAmB,aAAA,CAAClB,MAAM,CAACuB,KAAK;QAACC,GAAG,EAAEV,MAAM,EAAEU;MAAI,CAAE,CAAE;MAC1CC,QAAQ,eACJ1B,KAAA,CAAAmB,aAAA,CAAClB,MAAM,CAAC0B,QAAQ;QAACP,SAAS,EAAE,WAAY;QAACQ,OAAO,EAAE;MAAE,GAC/CZ,QAAQ,CAAC,CAAC,CACE;IACpB,CACJ,CAAC,eACFhB,KAAA,CAAAmB,aAAA,CAACjB,UAAU;MACPoB,OAAO,EAAE,OAAQ;MACjBD,IAAI,EAAE,IAAK;MACXQ,KAAK,EAAE,gBAAiB;MACxBC,IAAI,eAAE9B,KAAA,CAAAmB,aAAA,CAACd,sBAAsB,MAAE;IAAE,CACpC,CACA,CACJ,CAAC;EAEd,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
|
package/UserMenu.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { UserMenu as BaseUserMenu } from "./UserMenu/UserMenu";
|
|
3
|
-
import { UserMenuHandle } from "./UserMenu/UserMenuHandle";
|
|
4
|
-
import { UserMenuItem, UserMenuItemIcon } from "./UserMenu/UserMenuItem";
|
|
5
|
-
import { UserMenuLink, UserMenuLinkIcon } from "./UserMenu/UserMenuLink";
|
|
6
|
-
import { UserMenuSeparator } from "./UserMenu/UserMenuSeparator";
|
|
2
|
+
import { UserMenu as BaseUserMenu } from "./UserMenu/UserMenu.js";
|
|
3
|
+
import { UserMenuHandle } from "./UserMenu/UserMenuHandle.js";
|
|
4
|
+
import { UserMenuItem, UserMenuItemIcon } from "./UserMenu/UserMenuItem.js";
|
|
5
|
+
import { UserMenuLink, UserMenuLinkIcon } from "./UserMenu/UserMenuLink.js";
|
|
6
|
+
import { UserMenuSeparator } from "./UserMenu/UserMenuSeparator.js";
|
|
7
7
|
export const UserMenu = () => {
|
|
8
8
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(UserMenuHandle, null), /*#__PURE__*/React.createElement(BaseUserMenu, null), /*#__PURE__*/React.createElement(UserMenuItem, null), /*#__PURE__*/React.createElement(UserMenuItemIcon, null), /*#__PURE__*/React.createElement(UserMenuLink, null), /*#__PURE__*/React.createElement(UserMenuLinkIcon, null), /*#__PURE__*/React.createElement(UserMenuSeparator, null));
|
|
9
9
|
};
|
package/UserMenu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","UserMenu","BaseUserMenu","UserMenuHandle","UserMenuItem","UserMenuItemIcon","UserMenuLink","UserMenuLinkIcon","UserMenuSeparator","createElement","Fragment"],"sources":["UserMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport { UserMenu as BaseUserMenu } from \"./UserMenu/UserMenu\";\nimport { UserMenuHandle } from \"./UserMenu/UserMenuHandle\";\nimport { UserMenuItem, UserMenuItemIcon } from \"./UserMenu/UserMenuItem\";\nimport { UserMenuLink, UserMenuLinkIcon } from \"./UserMenu/UserMenuLink\";\nimport { UserMenuSeparator } from \"./UserMenu/UserMenuSeparator\";\n\nexport const UserMenu = () => {\n return (\n <>\n <UserMenuHandle />\n <BaseUserMenu />\n <UserMenuItem />\n <UserMenuItemIcon />\n <UserMenuLink />\n <UserMenuLinkIcon />\n <UserMenuSeparator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,IAAIC,YAAY;AACjC,SAASC,cAAc;AACvB,SAASC,YAAY,EAAEC,gBAAgB;AACvC,SAASC,YAAY,EAAEC,gBAAgB;AACvC,SAASC,iBAAiB;AAE1B,OAAO,MAAMP,QAAQ,GAAGA,CAAA,KAAM;EAC1B,oBACID,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,qBACIV,KAAA,CAAAS,aAAA,CAACN,cAAc,MAAE,CAAC,eAClBH,KAAA,CAAAS,aAAA,CAACP,YAAY,MAAE,CAAC,eAChBF,KAAA,CAAAS,aAAA,CAACL,YAAY,MAAE,CAAC,eAChBJ,KAAA,CAAAS,aAAA,CAACJ,gBAAgB,MAAE,CAAC,eACpBL,KAAA,CAAAS,aAAA,CAACH,YAAY,MAAE,CAAC,eAChBN,KAAA,CAAAS,aAAA,CAACF,gBAAgB,MAAE,CAAC,eACpBP,KAAA,CAAAS,aAAA,CAACD,iBAAiB,MAAE,CACtB,CAAC;AAEX,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","UserMenu","BaseUserMenu","UserMenuHandle","UserMenuItem","UserMenuItemIcon","UserMenuLink","UserMenuLinkIcon","UserMenuSeparator","createElement","Fragment"],"sources":["UserMenu.tsx"],"sourcesContent":["import React from \"react\";\nimport { UserMenu as BaseUserMenu } from \"./UserMenu/UserMenu.js\";\nimport { UserMenuHandle } from \"./UserMenu/UserMenuHandle.js\";\nimport { UserMenuItem, UserMenuItemIcon } from \"./UserMenu/UserMenuItem.js\";\nimport { UserMenuLink, UserMenuLinkIcon } from \"./UserMenu/UserMenuLink.js\";\nimport { UserMenuSeparator } from \"./UserMenu/UserMenuSeparator.js\";\n\nexport const UserMenu = () => {\n return (\n <>\n <UserMenuHandle />\n <BaseUserMenu />\n <UserMenuItem />\n <UserMenuItemIcon />\n <UserMenuLink />\n <UserMenuLinkIcon />\n <UserMenuSeparator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,QAAQ,IAAIC,YAAY;AACjC,SAASC,cAAc;AACvB,SAASC,YAAY,EAAEC,gBAAgB;AACvC,SAASC,YAAY,EAAEC,gBAAgB;AACvC,SAASC,iBAAiB;AAE1B,OAAO,MAAMP,QAAQ,GAAGA,CAAA,KAAM;EAC1B,oBACID,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,qBACIV,KAAA,CAAAS,aAAA,CAACN,cAAc,MAAE,CAAC,eAClBH,KAAA,CAAAS,aAAA,CAACP,YAAY,MAAE,CAAC,eAChBF,KAAA,CAAAS,aAAA,CAACL,YAAY,MAAE,CAAC,eAChBJ,KAAA,CAAAS,aAAA,CAACJ,gBAAgB,MAAE,CAAC,eACpBL,KAAA,CAAAS,aAAA,CAACH,YAAY,MAAE,CAAC,eAChBN,KAAA,CAAAS,aAAA,CAACF,gBAAgB,MAAE,CAAC,eACpBP,KAAA,CAAAS,aAAA,CAACD,iBAAiB,MAAE,CACtB,CAAC;AAEX,CAAC","ignoreList":[]}
|
package/index.js
CHANGED
|
@@ -1,13 +1,25 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
2
|
+
import { AdminConfig } from "@webiny/app-admin";
|
|
3
|
+
import { Layout } from "./Layout.js";
|
|
4
|
+
import { Navigation } from "./Navigation.js";
|
|
5
|
+
import { UserMenu } from "./UserMenu.js";
|
|
6
|
+
import { Dialog } from "./Dialog.js";
|
|
7
|
+
import { NotFound } from "./NotFound.js";
|
|
8
|
+
import { Dashboard } from "./Dashboard.js";
|
|
9
|
+
import { Logo } from "./Logo.js";
|
|
10
|
+
import { AssistanceWidget, CommunityWidget } from "./Dashboard/components/index.js";
|
|
9
11
|
export const AdminUI = () => {
|
|
10
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(
|
|
12
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AdminConfig, null, /*#__PURE__*/React.createElement(AdminConfig.Dashboard.Widget, {
|
|
13
|
+
name: "admin.assistance",
|
|
14
|
+
column: "right",
|
|
15
|
+
pin: "last",
|
|
16
|
+
element: /*#__PURE__*/React.createElement(AssistanceWidget, null)
|
|
17
|
+
}), /*#__PURE__*/React.createElement(AdminConfig.Dashboard.Widget, {
|
|
18
|
+
name: "admin.community",
|
|
19
|
+
pin: "last",
|
|
20
|
+
column: "right",
|
|
21
|
+
element: /*#__PURE__*/React.createElement(CommunityWidget, null)
|
|
22
|
+
})), /*#__PURE__*/React.createElement(Dashboard, null), /*#__PURE__*/React.createElement(Dialog, null), /*#__PURE__*/React.createElement(Layout, null), /*#__PURE__*/React.createElement(Navigation, null), /*#__PURE__*/React.createElement(NotFound, null), /*#__PURE__*/React.createElement(UserMenu, null), /*#__PURE__*/React.createElement(Logo, null));
|
|
11
23
|
};
|
|
12
24
|
|
|
13
25
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Layout","Navigation","UserMenu","Dialog","NotFound","Dashboard","Logo","AdminUI","createElement","Fragment"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { Layout } from \"./Layout\";\nimport { Navigation } from \"./Navigation\";\nimport { UserMenu } from \"~/UserMenu\";\nimport { Dialog } from \"./Dialog\";\nimport { NotFound } from \"./NotFound\";\nimport { Dashboard } from \"./Dashboard\";\nimport { Logo } from \"./Logo\";\n\nexport const AdminUI = () => {\n return (\n <>\n <Dashboard />\n <Dialog />\n <Layout />\n <Navigation />\n <NotFound />\n <UserMenu />\n <Logo />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM;AACf,SAASC,UAAU;AACnB,SAASC,QAAQ;AACjB,SAASC,MAAM;AACf,SAASC,QAAQ;AACjB,SAASC,SAAS;AAClB,SAASC,IAAI;
|
|
1
|
+
{"version":3,"names":["React","AdminConfig","Layout","Navigation","UserMenu","Dialog","NotFound","Dashboard","Logo","AssistanceWidget","CommunityWidget","AdminUI","createElement","Fragment","Widget","name","column","pin","element"],"sources":["index.tsx"],"sourcesContent":["import React from \"react\";\nimport { AdminConfig } from \"@webiny/app-admin\";\nimport { Layout } from \"./Layout.js\";\nimport { Navigation } from \"./Navigation.js\";\nimport { UserMenu } from \"~/UserMenu.js\";\nimport { Dialog } from \"./Dialog.js\";\nimport { NotFound } from \"./NotFound.js\";\nimport { Dashboard } from \"./Dashboard.js\";\nimport { Logo } from \"./Logo.js\";\nimport { AssistanceWidget, CommunityWidget } from \"./Dashboard/components/index.js\";\n\nexport const AdminUI = () => {\n return (\n <>\n <AdminConfig>\n <AdminConfig.Dashboard.Widget\n name=\"admin.assistance\"\n column=\"right\"\n pin=\"last\"\n element={<AssistanceWidget />}\n />\n <AdminConfig.Dashboard.Widget\n name=\"admin.community\"\n pin=\"last\"\n column=\"right\"\n element={<CommunityWidget />}\n />\n </AdminConfig>\n <Dashboard />\n <Dialog />\n <Layout />\n <Navigation />\n <NotFound />\n <UserMenu />\n <Logo />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,MAAM;AACf,SAASC,UAAU;AACnB,SAASC,QAAQ;AACjB,SAASC,MAAM;AACf,SAASC,QAAQ;AACjB,SAASC,SAAS;AAClB,SAASC,IAAI;AACb,SAASC,gBAAgB,EAAEC,eAAe;AAE1C,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EACzB,oBACIX,KAAA,CAAAY,aAAA,CAAAZ,KAAA,CAAAa,QAAA,qBACIb,KAAA,CAAAY,aAAA,CAACX,WAAW,qBACRD,KAAA,CAAAY,aAAA,CAACX,WAAW,CAACM,SAAS,CAACO,MAAM;IACzBC,IAAI,EAAC,kBAAkB;IACvBC,MAAM,EAAC,OAAO;IACdC,GAAG,EAAC,MAAM;IACVC,OAAO,eAAElB,KAAA,CAAAY,aAAA,CAACH,gBAAgB,MAAE;EAAE,CACjC,CAAC,eACFT,KAAA,CAAAY,aAAA,CAACX,WAAW,CAACM,SAAS,CAACO,MAAM;IACzBC,IAAI,EAAC,iBAAiB;IACtBE,GAAG,EAAC,MAAM;IACVD,MAAM,EAAC,OAAO;IACdE,OAAO,eAAElB,KAAA,CAAAY,aAAA,CAACF,eAAe,MAAE;EAAE,CAChC,CACQ,CAAC,eACdV,KAAA,CAAAY,aAAA,CAACL,SAAS,MAAE,CAAC,eACbP,KAAA,CAAAY,aAAA,CAACP,MAAM,MAAE,CAAC,eACVL,KAAA,CAAAY,aAAA,CAACV,MAAM,MAAE,CAAC,eACVF,KAAA,CAAAY,aAAA,CAACT,UAAU,MAAE,CAAC,eACdH,KAAA,CAAAY,aAAA,CAACN,QAAQ,MAAE,CAAC,eACZN,KAAA,CAAAY,aAAA,CAACR,QAAQ,MAAE,CAAC,eACZJ,KAAA,CAAAY,aAAA,CAACJ,IAAI,MAAE,CACT,CAAC;AAEX,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-admin-ui",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-rc.0",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"main": "index.js",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
@@ -10,38 +11,30 @@
|
|
|
10
11
|
"license": "MIT",
|
|
11
12
|
"dependencies": {
|
|
12
13
|
"@types/react": "18.2.79",
|
|
13
|
-
"@webiny/admin-ui": "6.0.0-
|
|
14
|
-
"@webiny/app": "6.0.0-
|
|
15
|
-
"@webiny/app-admin": "6.0.0-
|
|
16
|
-
"@webiny/
|
|
17
|
-
"@webiny/app-security": "6.0.0-alpha.4",
|
|
18
|
-
"@webiny/icons": "6.0.0-alpha.4",
|
|
19
|
-
"@webiny/plugins": "6.0.0-alpha.4",
|
|
20
|
-
"@webiny/react-router": "6.0.0-alpha.4",
|
|
14
|
+
"@webiny/admin-ui": "6.0.0-rc.0",
|
|
15
|
+
"@webiny/app": "6.0.0-rc.0",
|
|
16
|
+
"@webiny/app-admin": "6.0.0-rc.0",
|
|
17
|
+
"@webiny/icons": "6.0.0-rc.0",
|
|
21
18
|
"react": "18.2.0",
|
|
22
19
|
"react-dom": "18.2.0",
|
|
23
20
|
"react-helmet": "6.1.0"
|
|
24
21
|
},
|
|
25
22
|
"devDependencies": {
|
|
26
|
-
"@emotion/babel-plugin": "11.
|
|
23
|
+
"@emotion/babel-plugin": "11.13.5",
|
|
27
24
|
"@types/react-helmet": "6.1.11",
|
|
28
|
-
"@webiny/
|
|
25
|
+
"@webiny/build-tools": "6.0.0-rc.0",
|
|
29
26
|
"babel-plugin-named-asset-import": "1.0.0-next.fb6e6f70",
|
|
30
|
-
"rimraf": "6.
|
|
31
|
-
"typescript": "5.
|
|
27
|
+
"rimraf": "6.1.3",
|
|
28
|
+
"typescript": "5.9.3"
|
|
32
29
|
},
|
|
33
30
|
"publishConfig": {
|
|
34
31
|
"access": "public",
|
|
35
32
|
"directory": "dist"
|
|
36
33
|
},
|
|
37
|
-
"scripts": {
|
|
38
|
-
"build": "node ../cli/bin.js run build",
|
|
39
|
-
"watch": "node ../cli/bin.js run watch"
|
|
40
|
-
},
|
|
41
34
|
"svgo": {
|
|
42
35
|
"plugins": {
|
|
43
36
|
"removeViewBox": false
|
|
44
37
|
}
|
|
45
38
|
},
|
|
46
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "0f2aa699f4642e550ab62c96fcd050e8d02345c9"
|
|
47
40
|
}
|
package/styles.scss
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// The default theme. Learn more: https://webiny.link/admin-themes.
|
|
2
|
-
@import "
|
|
2
|
+
@import "@webiny/admin-ui/theme.css";
|
|
@@ -1,9 +0,0 @@
|
|
|
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;
|
|
@@ -1,31 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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":[]}
|