@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.
Files changed (49) hide show
  1. package/Dashboard/Welcome.d.ts +1 -1
  2. package/Dashboard/Welcome.js +21 -32
  3. package/Dashboard/Welcome.js.map +1 -1
  4. package/Dashboard/components/AssistanceWidget.js +49 -53
  5. package/Dashboard/components/AssistanceWidget.js.map +1 -1
  6. package/Dashboard/components/CommunityWidget.js +19 -18
  7. package/Dashboard/components/CommunityWidget.js.map +1 -1
  8. package/Dashboard/components/MissingPermissionsWidget.js +1 -1
  9. package/Dashboard/components/MissingPermissionsWidget.js.map +1 -1
  10. package/Dashboard/components/index.d.ts +3 -4
  11. package/Dashboard/components/index.js +3 -4
  12. package/Dashboard/components/index.js.map +1 -1
  13. package/Dashboard.js +1 -1
  14. package/Dashboard.js.map +1 -1
  15. package/Dialog/DialogContainer.js +3 -3
  16. package/Dialog/DialogContainer.js.map +1 -1
  17. package/Dialog/DialogProvider.js +1 -1
  18. package/Dialog/DialogProvider.js.map +1 -1
  19. package/Dialog.js +1 -1
  20. package/Dialog.js.map +1 -1
  21. package/Layout.js +7 -7
  22. package/Layout.js.map +1 -1
  23. package/Logo.js +5 -2
  24. package/Logo.js.map +1 -1
  25. package/Navigation/Navigation.js +9 -8
  26. package/Navigation/Navigation.js.map +1 -1
  27. package/Navigation/SidebarMenuItems.d.ts +1 -1
  28. package/Navigation/SidebarMenuItems.js +6 -2
  29. package/Navigation/SidebarMenuItems.js.map +1 -1
  30. package/Navigation/SidebarProvider.js +27 -2
  31. package/Navigation/SidebarProvider.js.map +1 -1
  32. package/Navigation.js +2 -2
  33. package/Navigation.js.map +1 -1
  34. package/NotFound.js +2 -2
  35. package/NotFound.js.map +1 -1
  36. package/README.md +9 -5
  37. package/UserMenu/UserMenu.js +2 -2
  38. package/UserMenu/UserMenu.js.map +1 -1
  39. package/UserMenu/UserMenuHandle.js +12 -8
  40. package/UserMenu/UserMenuHandle.js.map +1 -1
  41. package/UserMenu.js +5 -5
  42. package/UserMenu.js.map +1 -1
  43. package/index.js +20 -8
  44. package/index.js.map +1 -1
  45. package/package.json +11 -18
  46. package/styles.scss +1 -1
  47. package/Dashboard/components/ApplicationWidget.d.ts +0 -9
  48. package/Dashboard/components/ApplicationWidget.js +0 -31
  49. 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","tenant","createElement","style","logo"],"sources":["Logo.tsx"],"sourcesContent":["import React from \"react\";\nimport { LogoRenderer, useAdminConfig } from \"@webiny/app-admin\";\n\nconst minHeight = { minHeight: 48 };\n\nexport const Logo = LogoRenderer.createDecorator(() => {\n return function Logo() {\n const { tenant } = useAdminConfig();\n return <div style={minHeight}>{tenant.logo || null}</div>;\n };\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,mBAAmB;AAEhE,MAAMC,SAAS,GAAG;EAAEA,SAAS,EAAE;AAAG,CAAC;AAEnC,OAAO,MAAMC,IAAI,GAAGH,YAAY,CAACI,eAAe,CAAC,MAAM;EACnD,OAAO,SAASD,IAAIA,CAAA,EAAG;IACnB,MAAM;MAAEE;IAAO,CAAC,GAAGJ,cAAc,CAAC,CAAC;IACnC,oBAAOF,KAAA,CAAAO,aAAA;MAAKC,KAAK,EAAEL;IAAU,GAAEG,MAAM,CAACG,IAAI,IAAI,IAAU,CAAC;EAC7D,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -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 { Link } from "@webiny/react-router";
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
- tenant
10
+ title,
11
+ logo
11
12
  } = useAdminConfig();
12
- const title = /*#__PURE__*/React.createElement(Link, {
13
+ const titleElement = /*#__PURE__*/React.createElement(SimpleLink, {
13
14
  to: "/"
14
- }, tenant.name);
15
- const icon = /*#__PURE__*/React.createElement(Link, {
15
+ }, title);
16
+ const icon = /*#__PURE__*/React.createElement(SimpleLink, {
16
17
  to: "/"
17
18
  }, /*#__PURE__*/React.createElement(Sidebar.Icon, {
18
- element: tenant.logo,
19
+ element: logo.squareLogo,
19
20
  label: "Webiny"
20
21
  }));
21
22
  return /*#__PURE__*/React.createElement(Sidebar, {
22
- title: 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","Link","Navigation","createDecorator","menus","tenant","title","createElement","to","name","icon","Icon","element","logo","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\";\nimport { Link } from \"@webiny/react-router\";\n\nexport const Navigation = NavigationRenderer.createDecorator(() => {\n return function Navigation() {\n const { menus, tenant } = useAdminConfig();\n\n const title = <Link to={\"/\"}>{tenant.name}</Link>;\n const icon = (\n <Link to={\"/\"}>\n <Sidebar.Icon element={tenant.logo} label={\"Webiny\"} />\n </Link>\n );\n\n return (\n <Sidebar\n title={title}\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,IAAI,QAAQ,sBAAsB;AAE3C,OAAO,MAAMC,UAAU,GAAGL,kBAAkB,CAACM,eAAe,CAAC,MAAM;EAC/D,OAAO,SAASD,UAAUA,CAAA,EAAG;IACzB,MAAM;MAAEE,KAAK;MAAEC;IAAO,CAAC,GAAGP,cAAc,CAAC,CAAC;IAE1C,MAAMQ,KAAK,gBAAGV,KAAA,CAAAW,aAAA,CAACN,IAAI;MAACO,EAAE,EAAE;IAAI,GAAEH,MAAM,CAACI,IAAW,CAAC;IACjD,MAAMC,IAAI,gBACNd,KAAA,CAAAW,aAAA,CAACN,IAAI;MAACO,EAAE,EAAE;IAAI,gBACVZ,KAAA,CAAAW,aAAA,CAACR,OAAO,CAACY,IAAI;MAACC,OAAO,EAAEP,MAAM,CAACQ,IAAK;MAACC,KAAK,EAAE;IAAS,CAAE,CACpD,CACT;IAED,oBACIlB,KAAA,CAAAW,aAAA,CAACR,OAAO;MACJO,KAAK,EAAEA,KAAM;MACbI,IAAI,EAAEA,IAAK;MACXK,MAAM,eAAEnB,KAAA,CAAAW,aAAA,CAACP,gBAAgB;QAACI,KAAK,EAAEA,KAAM;QAACY,KAAK,EAAE;UAAEC,IAAI,EAAE,CAAC,QAAQ;QAAE;MAAE,CAAE;IAAE,gBAExErB,KAAA,CAAAW,aAAA,CAACP,gBAAgB;MAACI,KAAK,EAAEA;IAAM,CAAE,CAC5B,CAAC;EAElB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { MenuConfig } from "@webiny/app-admin/config/AdminConfig/Menu";
2
+ import type { MenuConfig } from "@webiny/app-admin/config/AdminConfig/Menu.js";
3
3
  export interface MenusProps {
4
4
  menus: MenuConfig[];
5
5
  where?: {
@@ -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: m.parent + m.name
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: m.parent + m.name
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","hasChildMenus","some","name","cloneElement","key","createElement"],"sources":["SidebarMenuItems.tsx"],"sourcesContent":["import React from \"react\";\nimport type { MenuConfig } from \"@webiny/app-admin/config/AdminConfig/Menu\";\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 hasChildMenus = allMenus.some(menu => menu.parent === m.name);\n if (hasChildMenus) {\n return React.cloneElement(\n m.element,\n { key: m.parent + m.name },\n <SidebarMenuItems menus={allMenus} where={{ parent: m.name }} />\n );\n }\n\n return React.cloneElement(m.element, { key: m.parent + m.name });\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,aAAa,GAAGnB,QAAQ,CAACoB,IAAI,CAAChB,IAAI,IAAIA,IAAI,CAACE,MAAM,KAAKU,CAAC,CAACK,IAAI,CAAC;IACnE,IAAIF,aAAa,EAAE;MACf,oBAAOvB,KAAK,CAAC0B,YAAY,CACrBN,CAAC,CAACE,OAAO,EACT;QAAEK,GAAG,EAAEP,CAAC,CAACV,MAAM,GAAGU,CAAC,CAACK;MAAK,CAAC,eAC1BzB,KAAA,CAAA4B,aAAA,CAAC3B,gBAAgB;QAACE,KAAK,EAAEC,QAAS;QAACC,KAAK,EAAE;UAAEK,MAAM,EAAEU,CAAC,CAACK;QAAK;MAAE,CAAE,CACnE,CAAC;IACL;IAEA,oBAAOzB,KAAK,CAAC0B,YAAY,CAACN,CAAC,CAACE,OAAO,EAAE;MAAEK,GAAG,EAAEP,CAAC,CAACV,MAAM,GAAGU,CAAC,CAACK;IAAK,CAAC,CAAC;EACpE,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
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
- return /*#__PURE__*/React.createElement(AdminUiSidebar, null, /*#__PURE__*/React.createElement(Component, props));
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,MAAM,OAAO;AACzB,SAASC,eAAe,IAAIC,cAAc,QAAQ,kBAAkB;AAMpE,OAAO,MAAMD,eAAe,GAAIE,SAAuD,IAAK;EACxF,OAAO,SAASF,eAAeA,CAACG,KAA8B,EAAE;IAC5D,oBACIJ,KAAA,CAAAK,aAAA,CAACH,cAAc,qBACXF,KAAA,CAAAK,aAAA,CAACF,SAAS,EAAKC,KAAQ,CACX,CAAC;EAEzB,CAAC;AACL,CAAC","ignoreList":[]}
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: "wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-text-center wby-gap-xs"
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: "wby-mb-xl"
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\n className={\n \"wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-text-center wby-gap-xs\"\n }\n >\n <img\n width={200}\n height={200}\n src={notFoundImage}\n alt=\"Not Accessible\"\n className={\"wby-mb-xl\"}\n />\n <Text>The route is either missing, or you&apos;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;MACIC,SAAS,EACL;IACH,gBAEDR,KAAA,CAAAO,aAAA;MACIE,KAAK,EAAE,GAAI;MACXC,MAAM,EAAE,GAAI;MACZC,GAAG,EAAER,aAAc;MACnBS,GAAG,EAAC,gBAAgB;MACpBJ,SAAS,EAAE;IAAY,CAC1B,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":[]}
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&apos;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://img.shields.io/npm/dw/@webiny/app-admin-ui.svg)](https://www.npmjs.com/package/@webiny/app-admin-ui)
3
- [![](https://img.shields.io/npm/v/@webiny/app-admin-ui.svg)](https://www.npmjs.com/package/@webiny/app-admin-ui)
4
- [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
5
- [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
6
2
 
7
- An implementation of core UI components for @webiny/app-serverless-cms using UI UI library.
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._
@@ -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-security";
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: "wby-w-[220px]"
25
+ className: "w-[220px]"
26
26
  }, dropDownMenuItems);
27
27
  };
28
28
  });
@@ -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-security\";\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={\"wby-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,sBAAsB;AAElD,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;IAAgB,GAE1BV,iBACS,CAAC;EAEvB,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
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 { useSecurity } from "@webiny/app-security";
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
- } = useSecurity();
11
- if (!identity) {
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
- const fullName = `${firstName} ${lastName}`;
21
+ let fullName = `${firstName} ${lastName}`;
22
+ if (fullName.trim() === "") {
23
+ fullName = identity.displayName;
24
+ }
21
25
  return /*#__PURE__*/React.createElement("div", {
22
- className: "wby-flex wby-gap-x-sm wby-cursor-pointer"
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: "wby-flex wby-items-center wby-rounded-md wby-gap-xxs wby-py-xs wby-px-xs wby-bg-neutral-light"
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: "wby-uppercase",
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","useSecurity","ReactComponent","KeyboardArrowRightIcon","UserMenuHandleRenderer","UserMenuHandleRendererSpec","UserMenuHandle","createDecorator","identity","profile","firstName","lastName","avatar","fullName","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 { useSecurity } from \"@webiny/app-security\";\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 } = useSecurity();\n\n if (!identity) {\n return null;\n }\n\n const profile = identity.profile;\n\n const { firstName, lastName, avatar } = profile || {};\n const fullName = `${firstName} ${lastName}`;\n\n return (\n <div className={\"wby-flex wby-gap-x-sm wby-cursor-pointer\"}>\n <div\n data-testid=\"logged-in-user-menu-avatar\"\n className={\n \"wby-flex wby-items-center wby-rounded-md wby-gap-xxs wby-py-xs wby-px-xs wby-bg-neutral-light\"\n }\n >\n <Avatar\n size={\"sm\"}\n variant={\"strong\"}\n image={<Avatar.Image src={avatar?.src} />}\n fallback={\n <Avatar.Fallback className={\"wby-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,sBAAsB;AAClD,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;IAAS,CAAC,GAAGP,WAAW,CAAC,CAAC;IAElC,IAAI,CAACO,QAAQ,EAAE;MACX,OAAO,IAAI;IACf;IAEA,MAAMC,OAAO,GAAGD,QAAQ,CAACC,OAAO;IAEhC,MAAM;MAAEC,SAAS;MAAEC,QAAQ;MAAEC;IAAO,CAAC,GAAGH,OAAO,IAAI,CAAC,CAAC;IACrD,MAAMI,QAAQ,GAAG,GAAGH,SAAS,IAAIC,QAAQ,EAAE;IAE3C,oBACIb,KAAA,CAAAgB,aAAA;MAAKC,SAAS,EAAE;IAA2C,gBACvDjB,KAAA,CAAAgB,aAAA;MACI,eAAY,4BAA4B;MACxCC,SAAS,EACL;IACH,gBAEDjB,KAAA,CAAAgB,aAAA,CAACf,MAAM;MACHiB,IAAI,EAAE,IAAK;MACXC,OAAO,EAAE,QAAS;MAClBC,KAAK,eAAEpB,KAAA,CAAAgB,aAAA,CAACf,MAAM,CAACoB,KAAK;QAACC,GAAG,EAAER,MAAM,EAAEQ;MAAI,CAAE,CAAE;MAC1CC,QAAQ,eACJvB,KAAA,CAAAgB,aAAA,CAACf,MAAM,CAACuB,QAAQ;QAACP,SAAS,EAAE,eAAgB;QAACQ,OAAO,EAAE;MAAE,GACnDV,QAAQ,CAAC,CAAC,CACE;IACpB,CACJ,CAAC,eACFf,KAAA,CAAAgB,aAAA,CAACd,UAAU;MACPiB,OAAO,EAAE,OAAQ;MACjBD,IAAI,EAAE,IAAK;MACXQ,KAAK,EAAE,gBAAiB;MACxBC,IAAI,eAAE3B,KAAA,CAAAgB,aAAA,CAACX,sBAAsB,MAAE;IAAE,CACpC,CACA,CACJ,CAAC;EAEd,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
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 { Layout } from "./Layout";
3
- import { Navigation } from "./Navigation";
4
- import { UserMenu } from "./UserMenu";
5
- import { Dialog } from "./Dialog";
6
- import { NotFound } from "./NotFound";
7
- import { Dashboard } from "./Dashboard";
8
- import { Logo } from "./Logo";
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(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));
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;AAEb,OAAO,MAAMC,OAAO,GAAGA,CAAA,KAAM;EACzB,oBACIR,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAAU,QAAA,qBACIV,KAAA,CAAAS,aAAA,CAACH,SAAS,MAAE,CAAC,eACbN,KAAA,CAAAS,aAAA,CAACL,MAAM,MAAE,CAAC,eACVJ,KAAA,CAAAS,aAAA,CAACR,MAAM,MAAE,CAAC,eACVD,KAAA,CAAAS,aAAA,CAACP,UAAU,MAAE,CAAC,eACdF,KAAA,CAAAS,aAAA,CAACJ,QAAQ,MAAE,CAAC,eACZL,KAAA,CAAAS,aAAA,CAACN,QAAQ,MAAE,CAAC,eACZH,KAAA,CAAAS,aAAA,CAACF,IAAI,MAAE,CACT,CAAC;AAEX,CAAC","ignoreList":[]}
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-alpha.4",
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-alpha.4",
14
- "@webiny/app": "6.0.0-alpha.4",
15
- "@webiny/app-admin": "6.0.0-alpha.4",
16
- "@webiny/app-plugin-admin-welcome-screen": "6.0.0-alpha.4",
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.11.0",
23
+ "@emotion/babel-plugin": "11.13.5",
27
24
  "@types/react-helmet": "6.1.11",
28
- "@webiny/project-utils": "6.0.0-alpha.4",
25
+ "@webiny/build-tools": "6.0.0-rc.0",
29
26
  "babel-plugin-named-asset-import": "1.0.0-next.fb6e6f70",
30
- "rimraf": "6.0.1",
31
- "typescript": "5.3.3"
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": "eb196ccd2f32296e10f7add6dd7220d4e3abece4"
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 "~@webiny/admin-ui/theme.scss";
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":[]}