@strapi/admin 5.33.3 → 5.33.4

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 (67) hide show
  1. package/dist/admin/admin/src/components/LeftMenu.js +3 -1
  2. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  3. package/dist/admin/admin/src/components/LeftMenu.mjs +3 -1
  4. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +31 -30
  6. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  7. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +31 -30
  8. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/MainNav/NavBrand.js +38 -31
  10. package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
  11. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs +38 -31
  12. package/dist/admin/admin/src/components/MainNav/NavBrand.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +14 -3
  14. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
  15. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +15 -4
  16. package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/MainNav/NavLink.js +18 -2
  18. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  19. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +18 -2
  20. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/NpsSurvey.js +1 -2
  22. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  23. package/dist/admin/admin/src/components/NpsSurvey.mjs +1 -2
  24. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/SubNav.js +5 -0
  26. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  27. package/dist/admin/admin/src/components/SubNav.mjs +6 -1
  28. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  29. package/dist/admin/admin/src/constants/theme.js +3 -1
  30. package/dist/admin/admin/src/constants/theme.js.map +1 -1
  31. package/dist/admin/admin/src/constants/theme.mjs +3 -2
  32. package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
  33. package/dist/admin/admin/src/features/Tracking.js +1 -2
  34. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  35. package/dist/admin/admin/src/features/Tracking.mjs +1 -2
  36. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  37. package/dist/admin/admin/src/render.js +0 -1
  38. package/dist/admin/admin/src/render.js.map +1 -1
  39. package/dist/admin/admin/src/render.mjs +0 -1
  40. package/dist/admin/admin/src/render.mjs.map +1 -1
  41. package/dist/admin/src/components/MainNav/NavLink.d.ts +1 -0
  42. package/dist/admin/src/constants/theme.d.ts +3 -2
  43. package/dist/admin/src/features/Tracking.d.ts +0 -1
  44. package/dist/admin/src/services/admin.d.ts +0 -1
  45. package/dist/ee/server/src/controllers/admin.d.ts +0 -1
  46. package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
  47. package/dist/ee/server/src/controllers/index.d.ts +0 -1
  48. package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
  49. package/dist/ee/server/src/index.d.ts +0 -1
  50. package/dist/ee/server/src/index.d.ts.map +1 -1
  51. package/dist/server/ee/server/src/controllers/admin.js +0 -1
  52. package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
  53. package/dist/server/ee/server/src/controllers/admin.mjs +0 -1
  54. package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
  55. package/dist/server/server/src/controllers/admin.js +0 -2
  56. package/dist/server/server/src/controllers/admin.js.map +1 -1
  57. package/dist/server/server/src/controllers/admin.mjs +0 -2
  58. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  59. package/dist/server/src/controllers/admin.d.ts +0 -1
  60. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  61. package/dist/server/src/controllers/index.d.ts +0 -1
  62. package/dist/server/src/controllers/index.d.ts.map +1 -1
  63. package/dist/server/src/index.d.ts +0 -1
  64. package/dist/server/src/index.d.ts.map +1 -1
  65. package/dist/shared/contracts/admin.d.ts +0 -1
  66. package/dist/shared/contracts/admin.d.ts.map +1 -1
  67. package/package.json +9 -9
@@ -8,6 +8,7 @@ var reactIntl = require('react-intl');
8
8
  var reactRouterDom = require('react-router-dom');
9
9
  var styled = require('styled-components');
10
10
  var Tracking = require('../features/Tracking.js');
11
+ var useMediaQuery = require('../hooks/useMediaQuery.js');
11
12
  var MainNav = require('./MainNav/MainNav.js');
12
13
  var MainNavLinks = require('./MainNav/MainNavLinks.js');
13
14
  var NavBrand = require('./MainNav/NavBrand.js');
@@ -76,6 +77,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
76
77
  const formatter = designSystem.useCollator(locale, {
77
78
  sensitivity: 'base'
78
79
  });
80
+ const isDesktop = useMediaQuery.useIsDesktop();
79
81
  const handleClickOnLink = (destination)=>{
80
82
  trackUsage('willNavigate', {
81
83
  from: pathname,
@@ -126,7 +128,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
126
128
  /*#__PURE__*/ jsxRuntime.jsxs(MainNav.MainNav, {
127
129
  children: [
128
130
  /*#__PURE__*/ jsxRuntime.jsx(NavBrand.NavBrand, {}),
129
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
131
+ isDesktop && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Divider, {}),
130
132
  /*#__PURE__*/ jsxRuntime.jsxs(MenuDetails, {
131
133
  children: [
132
134
  /*#__PURE__*/ jsxRuntime.jsx(NavListWrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const isDesktop = useIsDesktop();\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n {isDesktop && <Divider />}\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","isDesktop","useIsDesktop","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { useIntl } from 'react-intl';
6
6
  import { useLocation } from 'react-router-dom';
7
7
  import { styled } from 'styled-components';
8
8
  import { useTracking } from '../features/Tracking.mjs';
9
+ import { useIsDesktop } from '../hooks/useMediaQuery.mjs';
9
10
  import { MainNav } from './MainNav/MainNav.mjs';
10
11
  import { MainNavIcons } from './MainNav/MainNavLinks.mjs';
11
12
  import { NavBrand } from './MainNav/NavBrand.mjs';
@@ -55,6 +56,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
55
56
  const formatter = useCollator(locale, {
56
57
  sensitivity: 'base'
57
58
  });
59
+ const isDesktop = useIsDesktop();
58
60
  const handleClickOnLink = (destination)=>{
59
61
  trackUsage('willNavigate', {
60
62
  from: pathname,
@@ -105,7 +107,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks, topMobileNavigatio
105
107
  /*#__PURE__*/ jsxs(MainNav, {
106
108
  children: [
107
109
  /*#__PURE__*/ jsx(NavBrand, {}),
108
- /*#__PURE__*/ jsx(Divider, {}),
110
+ isDesktop && /*#__PURE__*/ jsx(Divider, {}),
109
111
  /*#__PURE__*/ jsxs(MenuDetails, {
110
112
  children: [
111
113
  /*#__PURE__*/ jsx(NavListWrapper, {
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Divider, Flex, FlexComponent, IconButton, useCollator } from '@strapi/design-system';\nimport { Cross, List } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../features/Tracking';\nimport { useIsDesktop } from '../hooks/useMediaQuery';\nimport { Menu, MenuItem, MobileMenuItem } from '../hooks/useMenu';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { MainNavIcons } from './MainNav/MainNavLinks';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavBurgerMenu } from './MainNav/NavBurgerMenu';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n width: 100%;\n overflow-y: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n`;\n\ninterface LeftMenuProps\n extends Pick<\n Menu,\n 'generalSectionLinks' | 'pluginsSectionLinks' | 'topMobileNavigation' | 'burgerMobileNavigation'\n > {}\n\nconst MenuDetails = styled(Flex)`\n flex: 1;\n flex-direction: row;\n justify-content: space-between;\n overflow-x: auto;\n\n ${({ theme }) => theme.breakpoints.large} {\n flex-direction: column;\n overflow-y: auto;\n overflow-x: hidden;\n }\n`;\n\nconst LeftMenu = ({\n generalSectionLinks,\n pluginsSectionLinks,\n topMobileNavigation,\n burgerMobileNavigation,\n}: LeftMenuProps) => {\n const [isBurgerMenuShown, setIsBurgerMenuShown] = React.useState(false);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n const isDesktop = useIsDesktop();\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n // Close burger menu when route changes\n React.useEffect(() => {\n setIsBurgerMenuShown(false);\n }, [pathname]);\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n /**\n * Return filtered mobile navigation links (used for both top and burger menu)\n */\n const mapMobileNavigationLinks = (mobileNavLinks: MobileMenuItem[]): MenuItem[] =>\n mobileNavLinks.reduce<MenuItem[]>((acc, mobileLink) => {\n const linkFound = listLinks.find((link) => link.to === mobileLink.to);\n if (linkFound) {\n acc.push(mobileLink.link ? { ...linkFound, navigationLink: mobileLink.link } : linkFound);\n }\n return acc;\n }, []);\n\n /**\n * Mobile top navigation\n */\n const topMobileNavigationLinks = mapMobileNavigationLinks(topMobileNavigation);\n\n /**\n * Mobile burger menu\n */\n const excludedPluginsFromBurgerMenu = [\n 'content-manager',\n 'content-type-builder',\n 'upload',\n 'content-releases',\n ];\n const burgerMenuPluginsLinks = pluginsSectionLinks.filter(\n (plugin) => !excludedPluginsFromBurgerMenu.some((link) => plugin.to.includes(link))\n );\n const burgerMobileNavigationLinks = [\n ...burgerMenuPluginsLinks,\n ...mapMobileNavigationLinks(burgerMobileNavigation),\n ];\n\n return (\n <>\n <MainNav>\n <NavBrand />\n\n {isDesktop && <Divider />}\n\n <MenuDetails>\n <NavListWrapper\n tag=\"ul\"\n gap={3}\n direction={{\n initial: 'row',\n large: 'column',\n }}\n alignItems=\"center\"\n justifyContent={{\n initial: 'center',\n large: 'flex-start',\n }}\n flex={1}\n paddingLeft={{\n initial: 3,\n large: 0,\n }}\n paddingRight={{\n initial: 3,\n large: 0,\n }}\n paddingTop={3}\n paddingBottom={3}\n >\n <MainNavIcons\n listLinks={listLinks}\n mobileLinks={topMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n />\n </NavListWrapper>\n <TrialCountdown />\n <Box\n display={{\n initial: 'none',\n large: 'flex',\n }}\n borderStyle=\"solid\"\n borderWidth={{\n initial: 0,\n large: '1px 0 0 0',\n }}\n borderColor=\"neutral150\"\n padding={3}\n >\n <NavUser />\n </Box>\n </MenuDetails>\n\n <Box\n padding={3}\n display={{\n initial: 'flex',\n large: 'none',\n }}\n >\n <IconButton\n onClick={() => setIsBurgerMenuShown((prev) => !prev)}\n style={{ border: 'none' }}\n label=\"Menu\"\n type=\"button\"\n aria-expanded={isBurgerMenuShown}\n aria-controls=\"burger-menu\"\n >\n {!isBurgerMenuShown ? <List fill=\"neutral1000\" /> : <Cross fill=\"neutral1000\" />}\n </IconButton>\n </Box>\n </MainNav>\n <NavBurgerMenu\n isShown={isBurgerMenuShown}\n listLinks={burgerMobileNavigationLinks}\n handleClickOnLink={handleClickOnLink}\n onClose={() => setIsBurgerMenuShown(false)}\n />\n </>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavListWrapper","styled","Flex","MenuDetails","theme","breakpoints","large","LeftMenu","generalSectionLinks","pluginsSectionLinks","topMobileNavigation","burgerMobileNavigation","isBurgerMenuShown","setIsBurgerMenuShown","React","useState","trackUsage","useTracking","pathname","useLocation","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","isDesktop","useIsDesktop","handleClickOnLink","destination","from","to","useEffect","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","mapMobileNavigationLinks","mobileNavLinks","reduce","acc","mobileLink","linkFound","find","link","push","navigationLink","topMobileNavigationLinks","excludedPluginsFromBurgerMenu","burgerMenuPluginsLinks","filter","plugin","some","includes","burgerMobileNavigationLinks","_jsxs","_Fragment","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","initial","alignItems","justifyContent","flex","paddingLeft","paddingRight","paddingTop","paddingBottom","MainNavIcons","mobileLinks","TrialCountdown","Box","display","borderStyle","borderWidth","borderColor","padding","NavUser","IconButton","onClick","prev","style","border","label","type","aria-expanded","aria-controls","List","fill","Cross","NavBurgerMenu","isShown","onClose"],"mappings":"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"}
@@ -57,7 +57,7 @@ const MainNavIcons = ({ listLinks, mobileLinks, handleClickOnLink })=>{
57
57
  const badgeContentNumeric = link.notificationsCount && link.notificationsCount > 0 ? link.notificationsCount.toString() : undefined;
58
58
  const labelValue = formatMessage(link.intlLabel);
59
59
  const linkMobile = mobileLinks.find((mobileLink)=>mobileLink.to === link.to);
60
- const LinkElement = ()=>/*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.Link, {
60
+ const LinkElement = ()=>/*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.NavButton, {
61
61
  to: link.to,
62
62
  onClick: ()=>handleClickOnLink(link.to),
63
63
  "aria-label": labelValue,
@@ -114,40 +114,41 @@ const MainNavBurgerMenuLinks = ({ listLinks, handleClickOnLink })=>{
114
114
  const labelValue = formatMessage(link.intlLabel);
115
115
  const navigationTarget = link.navigationLink || link.to;
116
116
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
117
- paddingTop: 3,
118
117
  alignItems: "center",
119
118
  tag: "li",
120
- children: /*#__PURE__*/ jsxRuntime.jsxs(NavLink.NavLink.Link, {
119
+ children: /*#__PURE__*/ jsxRuntime.jsx(NavLink.NavLink.Link, {
121
120
  to: navigationTarget,
122
121
  onClick: ()=>handleClickOnLink(navigationTarget),
123
122
  "aria-label": labelValue,
124
- children: [
125
- /*#__PURE__*/ jsxRuntime.jsx(IconContainer, {
126
- marginRight: "0.6rem",
127
- children: /*#__PURE__*/ jsxRuntime.jsx(LinkIcon, {
128
- width: "20",
129
- height: "20",
130
- fill: "neutral500"
131
- })
132
- }),
133
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
134
- marginLeft: 3,
135
- children: labelValue
136
- }),
137
- badgeContentLock ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeLock, {
138
- label: "locked",
139
- textColor: "neutral500",
140
- paddingLeft: 0,
141
- paddingRight: 0,
142
- children: badgeContentLock
143
- }) : badgeContentNumeric ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeCounter, {
144
- label: badgeContentNumeric,
145
- backgroundColor: "primary600",
146
- width: "2.3rem",
147
- color: "neutral0",
148
- children: badgeContentNumeric
149
- }) : null
150
- ]
123
+ children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
124
+ alignItems: "center",
125
+ gap: 3,
126
+ children: [
127
+ /*#__PURE__*/ jsxRuntime.jsx(IconContainer, {
128
+ children: /*#__PURE__*/ jsxRuntime.jsx(LinkIcon, {
129
+ width: "20",
130
+ height: "20",
131
+ fill: "neutral500"
132
+ })
133
+ }),
134
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
135
+ children: labelValue
136
+ }),
137
+ badgeContentLock ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeLock, {
138
+ label: "locked",
139
+ textColor: "neutral500",
140
+ paddingLeft: 0,
141
+ paddingRight: 0,
142
+ children: badgeContentLock
143
+ }) : badgeContentNumeric ? /*#__PURE__*/ jsxRuntime.jsx(NavLinkBadgeCounter, {
144
+ label: badgeContentNumeric,
145
+ backgroundColor: "primary600",
146
+ width: "2.3rem",
147
+ color: "neutral0",
148
+ children: badgeContentNumeric
149
+ }) : null
150
+ ]
151
+ })
151
152
  })
152
153
  }, navigationTarget);
153
154
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"MainNavLinks.js","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex paddingTop={3} alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <IconContainer marginRight=\"0.6rem\">\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography marginLeft={3}>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","Link","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","paddingTop","alignItems","marginRight","Typography","marginLeft"],"mappings":"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"}
1
+ {"version":3,"file":"MainNavLinks.js","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.NavButton\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.NavButton>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <Flex alignItems=\"center\" gap={3}>\n <IconContainer>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </Flex>\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","NavButton","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","alignItems","Link","gap","Typography"],"mappings":"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"}
@@ -55,7 +55,7 @@ const MainNavIcons = ({ listLinks, mobileLinks, handleClickOnLink })=>{
55
55
  const badgeContentNumeric = link.notificationsCount && link.notificationsCount > 0 ? link.notificationsCount.toString() : undefined;
56
56
  const labelValue = formatMessage(link.intlLabel);
57
57
  const linkMobile = mobileLinks.find((mobileLink)=>mobileLink.to === link.to);
58
- const LinkElement = ()=>/*#__PURE__*/ jsxs(NavLink.Link, {
58
+ const LinkElement = ()=>/*#__PURE__*/ jsxs(NavLink.NavButton, {
59
59
  to: link.to,
60
60
  onClick: ()=>handleClickOnLink(link.to),
61
61
  "aria-label": labelValue,
@@ -112,40 +112,41 @@ const MainNavBurgerMenuLinks = ({ listLinks, handleClickOnLink })=>{
112
112
  const labelValue = formatMessage(link.intlLabel);
113
113
  const navigationTarget = link.navigationLink || link.to;
114
114
  return /*#__PURE__*/ jsx(Flex, {
115
- paddingTop: 3,
116
115
  alignItems: "center",
117
116
  tag: "li",
118
- children: /*#__PURE__*/ jsxs(NavLink.Link, {
117
+ children: /*#__PURE__*/ jsx(NavLink.Link, {
119
118
  to: navigationTarget,
120
119
  onClick: ()=>handleClickOnLink(navigationTarget),
121
120
  "aria-label": labelValue,
122
- children: [
123
- /*#__PURE__*/ jsx(IconContainer, {
124
- marginRight: "0.6rem",
125
- children: /*#__PURE__*/ jsx(LinkIcon, {
126
- width: "20",
127
- height: "20",
128
- fill: "neutral500"
129
- })
130
- }),
131
- /*#__PURE__*/ jsx(Typography, {
132
- marginLeft: 3,
133
- children: labelValue
134
- }),
135
- badgeContentLock ? /*#__PURE__*/ jsx(NavLinkBadgeLock, {
136
- label: "locked",
137
- textColor: "neutral500",
138
- paddingLeft: 0,
139
- paddingRight: 0,
140
- children: badgeContentLock
141
- }) : badgeContentNumeric ? /*#__PURE__*/ jsx(NavLinkBadgeCounter, {
142
- label: badgeContentNumeric,
143
- backgroundColor: "primary600",
144
- width: "2.3rem",
145
- color: "neutral0",
146
- children: badgeContentNumeric
147
- }) : null
148
- ]
121
+ children: /*#__PURE__*/ jsxs(Flex, {
122
+ alignItems: "center",
123
+ gap: 3,
124
+ children: [
125
+ /*#__PURE__*/ jsx(IconContainer, {
126
+ children: /*#__PURE__*/ jsx(LinkIcon, {
127
+ width: "20",
128
+ height: "20",
129
+ fill: "neutral500"
130
+ })
131
+ }),
132
+ /*#__PURE__*/ jsx(Typography, {
133
+ children: labelValue
134
+ }),
135
+ badgeContentLock ? /*#__PURE__*/ jsx(NavLinkBadgeLock, {
136
+ label: "locked",
137
+ textColor: "neutral500",
138
+ paddingLeft: 0,
139
+ paddingRight: 0,
140
+ children: badgeContentLock
141
+ }) : badgeContentNumeric ? /*#__PURE__*/ jsx(NavLinkBadgeCounter, {
142
+ label: badgeContentNumeric,
143
+ backgroundColor: "primary600",
144
+ width: "2.3rem",
145
+ color: "neutral0",
146
+ children: badgeContentNumeric
147
+ }) : null
148
+ ]
149
+ })
149
150
  })
150
151
  }, navigationTarget);
151
152
  }) : null;
@@ -1 +1 @@
1
- {"version":3,"file":"MainNavLinks.mjs","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex paddingTop={3} alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <IconContainer marginRight=\"0.6rem\">\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography marginLeft={3}>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","Link","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","paddingTop","alignItems","marginRight","Typography","marginLeft"],"mappings":"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"}
1
+ {"version":3,"file":"MainNavLinks.mjs","sources":["../../../../../../admin/src/components/MainNav/MainNavLinks.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { type To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useIsDesktop } from '../../hooks/useMediaQuery';\nimport { MenuItem } from '../../hooks/useMenu';\nimport { tours } from '../GuidedTour/Tours';\n\nimport { NavLink } from './NavLink';\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\n/**\n * Will attach a guided tour tooltip to the right links. (mostly used for the finish step to indicate the next tour)\n * @param to: The target link\n * @param children: The original link to be wrapped in a guided tour tooltip\n * @returns The link wrapped in a guided tour tooltip or the original link if no guided tour needs to be attached\n */\nconst GuidedTourTooltip = ({ to, children }: { to: To; children: React.ReactNode }) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n // We attach the final step of the content type builder tour on content manager link because it's the next tour (Content Type Builder -> Content Manager).\n case 'content-manager':\n return <tours.contentTypeBuilder.Finish>{children}</tours.contentTypeBuilder.Finish>;\n // We attach the final step of the api tokens tour on the home link because it was the last tour (API Tokens -> Go back to homepage).\n case '':\n return <tours.apiTokens.Finish>{children}</tours.apiTokens.Finish>;\n // We attach the final step of the content manager tour on the settings link because it's the next tour (Content Manager -> API tokens).\n case 'settings':\n return <tours.contentManager.Finish>{children}</tours.contentManager.Finish>;\n // If the link doesn't match any of the above, we return the original link.\n default:\n return children;\n }\n};\n\nconst MainNavIcons = ({\n listLinks,\n mobileLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n mobileLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n const isDesktop = useIsDesktop();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const linkMobile = mobileLinks.find((mobileLink) => mobileLink.to === link.to);\n\n const LinkElement = () => (\n <NavLink.NavButton\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.NavButton>\n );\n\n return isDesktop || (!isDesktop && linkMobile) ? (\n <Flex tag=\"li\" key={link.to}>\n <GuidedTourTooltip to={link.to}>\n <NavLink.Tooltip position={isDesktop ? 'right' : 'bottom'} label={labelValue}>\n <LinkElement />\n </NavLink.Tooltip>\n </GuidedTourTooltip>\n </Flex>\n ) : null;\n })\n : null;\n};\n\nconst IconContainer = styled(Box)`\n svg {\n display: block;\n }\n`;\n\nconst MainNavBurgerMenuLinks = ({\n listLinks,\n handleClickOnLink,\n}: {\n listLinks: MenuItem[];\n handleClickOnLink: (value: string) => void;\n}) => {\n const { formatMessage } = useIntl();\n\n return listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? <Lightning fill=\"primary600\" /> : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n const navigationTarget = link.navigationLink || link.to;\n\n return (\n <Flex alignItems=\"center\" tag=\"li\" key={navigationTarget}>\n <NavLink.Link\n to={navigationTarget}\n onClick={() => handleClickOnLink(navigationTarget)}\n aria-label={labelValue}\n >\n <Flex alignItems=\"center\" gap={3}>\n <IconContainer>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </IconContainer>\n <Typography>{labelValue}</Typography>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </Flex>\n </NavLink.Link>\n </Flex>\n );\n })\n : null;\n};\n\nexport { MainNavIcons, MainNavBurgerMenuLinks };\n"],"names":["NavLinkBadgeLock","styled","NavLink","Badge","NavLinkBadgeCounter","theme","colors","neutral0","GuidedTourTooltip","to","children","normalizedTo","toString","replace","_jsx","tours","contentTypeBuilder","Finish","apiTokens","contentManager","MainNavIcons","listLinks","mobileLinks","handleClickOnLink","formatMessage","useIntl","isDesktop","useIsDesktop","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","labelValue","intlLabel","linkMobile","find","mobileLink","LinkElement","_jsxs","NavButton","onClick","aria-label","Icon","label","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","Flex","tag","Tooltip","position","IconContainer","Box","MainNavBurgerMenuLinks","navigationTarget","navigationLink","alignItems","Link","gap","Typography"],"mappings":"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"}
@@ -18,40 +18,47 @@ const BrandIconWrapper = styled.styled(designSystem.Flex)`
18
18
  const NavBrand = ()=>{
19
19
  const { formatMessage } = reactIntl.useIntl();
20
20
  const { logos: { menu } } = Configuration.useConfiguration('LeftMenu');
21
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
21
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
22
+ alignItems: "center",
22
23
  padding: 3,
23
- children: /*#__PURE__*/ jsxRuntime.jsxs(BrandIconWrapper, {
24
- direction: "column",
25
- justifyContent: "center",
26
- width: "3.2rem",
27
- height: "3.2rem",
28
- children: [
29
- /*#__PURE__*/ jsxRuntime.jsx("img", {
30
- src: menu.custom?.url || menu.default,
31
- alt: formatMessage({
32
- id: 'app.components.LeftMenu.logo.alt',
33
- defaultMessage: 'Application logo'
34
- }),
35
- width: "100%",
36
- height: "100%"
37
- }),
38
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.VisuallyHidden, {
39
- children: [
40
- /*#__PURE__*/ jsxRuntime.jsx("span", {
41
- children: formatMessage({
42
- id: 'app.components.LeftMenu.navbrand.title',
43
- defaultMessage: 'Strapi Dashboard'
44
- })
24
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
25
+ padding: {
26
+ initial: 1,
27
+ medium: 0
28
+ },
29
+ children: /*#__PURE__*/ jsxRuntime.jsxs(BrandIconWrapper, {
30
+ direction: "column",
31
+ justifyContent: "center",
32
+ width: "3.2rem",
33
+ height: "3.2rem",
34
+ children: [
35
+ /*#__PURE__*/ jsxRuntime.jsx("img", {
36
+ src: menu.custom?.url || menu.default,
37
+ alt: formatMessage({
38
+ id: 'app.components.LeftMenu.logo.alt',
39
+ defaultMessage: 'Application logo'
45
40
  }),
46
- /*#__PURE__*/ jsxRuntime.jsx("span", {
47
- children: formatMessage({
48
- id: 'app.components.LeftMenu.navbrand.workplace',
49
- defaultMessage: 'Workplace'
41
+ width: "100%",
42
+ height: "100%"
43
+ }),
44
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.VisuallyHidden, {
45
+ children: [
46
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
47
+ children: formatMessage({
48
+ id: 'app.components.LeftMenu.navbrand.title',
49
+ defaultMessage: 'Strapi Dashboard'
50
+ })
51
+ }),
52
+ /*#__PURE__*/ jsxRuntime.jsx("span", {
53
+ children: formatMessage({
54
+ id: 'app.components.LeftMenu.navbrand.workplace',
55
+ defaultMessage: 'Workplace'
56
+ })
50
57
  })
51
- })
52
- ]
53
- })
54
- ]
58
+ ]
59
+ })
60
+ ]
61
+ })
55
62
  })
56
63
  });
57
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NavBrand.js","sources":["../../../../../../admin/src/components/MainNav/NavBrand.tsx"],"sourcesContent":["import { Box, Flex, type FlexComponent, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useConfiguration } from '../../features/Configuration';\n\nconst BrandIconWrapper = styled<FlexComponent>(Flex)`\n svg,\n img {\n border-radius: ${({ theme }) => theme.borderRadius};\n object-fit: contain;\n height: 2.4rem;\n width: 2.4rem;\n }\n`;\n\nexport const NavBrand = () => {\n const { formatMessage } = useIntl();\n const {\n logos: { menu },\n } = useConfiguration('LeftMenu');\n return (\n <Box padding={3}>\n <BrandIconWrapper direction=\"column\" justifyContent=\"center\" width=\"3.2rem\" height=\"3.2rem\">\n <img\n src={menu.custom?.url || menu.default}\n alt={formatMessage({\n id: 'app.components.LeftMenu.logo.alt',\n defaultMessage: 'Application logo',\n })}\n width=\"100%\"\n height=\"100%\"\n />\n <VisuallyHidden>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.title',\n defaultMessage: 'Strapi Dashboard',\n })}\n </span>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.workplace',\n defaultMessage: 'Workplace',\n })}\n </span>\n </VisuallyHidden>\n </BrandIconWrapper>\n </Box>\n );\n};\n"],"names":["BrandIconWrapper","styled","Flex","theme","borderRadius","NavBrand","formatMessage","useIntl","logos","menu","useConfiguration","_jsx","Box","padding","_jsxs","direction","justifyContent","width","height","img","src","custom","url","default","alt","id","defaultMessage","VisuallyHidden","span"],"mappings":";;;;;;;;AAMA,MAAMA,gBAAAA,GAAmBC,aAAsBC,CAAAA,iBAAAA,CAAK;;;AAGjC,mBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;;;AAKvD,CAAC;MAEYC,QAAW,GAAA,IAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EACJC,KAAO,EAAA,EAAEC,IAAI,EAAE,EAChB,GAAGC,8BAAiB,CAAA,UAAA,CAAA;AACrB,IAAA,qBACEC,cAACC,CAAAA,gBAAAA,EAAAA;QAAIC,OAAS,EAAA,CAAA;AACZ,QAAA,QAAA,gBAAAC,eAACd,CAAAA,gBAAAA,EAAAA;YAAiBe,SAAU,EAAA,QAAA;YAASC,cAAe,EAAA,QAAA;YAASC,KAAM,EAAA,QAAA;YAASC,MAAO,EAAA,QAAA;;8BACjFP,cAACQ,CAAAA,KAAAA,EAAAA;AACCC,oBAAAA,GAAAA,EAAKX,IAAKY,CAAAA,MAAM,EAAEC,GAAAA,IAAOb,KAAKc,OAAO;AACrCC,oBAAAA,GAAAA,EAAKlB,aAAc,CAAA;wBACjBmB,EAAI,EAAA,kCAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAT,KAAM,EAAA,MAAA;oBACNC,MAAO,EAAA;;8BAETJ,eAACa,CAAAA,2BAAAA,EAAAA;;sCACChB,cAACiB,CAAAA,MAAAA,EAAAA;sCACEtB,aAAc,CAAA;gCACbmB,EAAI,EAAA,wCAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;sCAEFf,cAACiB,CAAAA,MAAAA,EAAAA;sCACEtB,aAAc,CAAA;gCACbmB,EAAI,EAAA,4CAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA;;;;;;;AAMZ;;;;"}
1
+ {"version":3,"file":"NavBrand.js","sources":["../../../../../../admin/src/components/MainNav/NavBrand.tsx"],"sourcesContent":["import { Box, Flex, type FlexComponent, VisuallyHidden } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useConfiguration } from '../../features/Configuration';\n\nconst BrandIconWrapper = styled<FlexComponent>(Flex)`\n svg,\n img {\n border-radius: ${({ theme }) => theme.borderRadius};\n object-fit: contain;\n height: 2.4rem;\n width: 2.4rem;\n }\n`;\n\nexport const NavBrand = () => {\n const { formatMessage } = useIntl();\n const {\n logos: { menu },\n } = useConfiguration('LeftMenu');\n return (\n <Flex alignItems=\"center\" padding={3}>\n <Box padding={{ initial: 1, medium: 0 }}>\n <BrandIconWrapper direction=\"column\" justifyContent=\"center\" width=\"3.2rem\" height=\"3.2rem\">\n <img\n src={menu.custom?.url || menu.default}\n alt={formatMessage({\n id: 'app.components.LeftMenu.logo.alt',\n defaultMessage: 'Application logo',\n })}\n width=\"100%\"\n height=\"100%\"\n />\n <VisuallyHidden>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.title',\n defaultMessage: 'Strapi Dashboard',\n })}\n </span>\n <span>\n {formatMessage({\n id: 'app.components.LeftMenu.navbrand.workplace',\n defaultMessage: 'Workplace',\n })}\n </span>\n </VisuallyHidden>\n </BrandIconWrapper>\n </Box>\n </Flex>\n );\n};\n"],"names":["BrandIconWrapper","styled","Flex","theme","borderRadius","NavBrand","formatMessage","useIntl","logos","menu","useConfiguration","_jsx","alignItems","padding","Box","initial","medium","_jsxs","direction","justifyContent","width","height","img","src","custom","url","default","alt","id","defaultMessage","VisuallyHidden","span"],"mappings":";;;;;;;;AAMA,MAAMA,gBAAAA,GAAmBC,aAAsBC,CAAAA,iBAAAA,CAAK;;;AAGjC,mBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;;;;;AAKvD,CAAC;MAEYC,QAAW,GAAA,IAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAM,EACJC,KAAO,EAAA,EAAEC,IAAI,EAAE,EAChB,GAAGC,8BAAiB,CAAA,UAAA,CAAA;AACrB,IAAA,qBACEC,cAACT,CAAAA,iBAAAA,EAAAA;QAAKU,UAAW,EAAA,QAAA;QAASC,OAAS,EAAA,CAAA;AACjC,QAAA,QAAA,gBAAAF,cAACG,CAAAA,gBAAAA,EAAAA;YAAID,OAAS,EAAA;gBAAEE,OAAS,EAAA,CAAA;gBAAGC,MAAQ,EAAA;AAAE,aAAA;AACpC,YAAA,QAAA,gBAAAC,eAACjB,CAAAA,gBAAAA,EAAAA;gBAAiBkB,SAAU,EAAA,QAAA;gBAASC,cAAe,EAAA,QAAA;gBAASC,KAAM,EAAA,QAAA;gBAASC,MAAO,EAAA,QAAA;;kCACjFV,cAACW,CAAAA,KAAAA,EAAAA;AACCC,wBAAAA,GAAAA,EAAKd,IAAKe,CAAAA,MAAM,EAAEC,GAAAA,IAAOhB,KAAKiB,OAAO;AACrCC,wBAAAA,GAAAA,EAAKrB,aAAc,CAAA;4BACjBsB,EAAI,EAAA,kCAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA,CAAA;wBACAT,KAAM,EAAA,MAAA;wBACNC,MAAO,EAAA;;kCAETJ,eAACa,CAAAA,2BAAAA,EAAAA;;0CACCnB,cAACoB,CAAAA,MAAAA,EAAAA;0CACEzB,aAAc,CAAA;oCACbsB,EAAI,EAAA,wCAAA;oCACJC,cAAgB,EAAA;AAClB,iCAAA;;0CAEFlB,cAACoB,CAAAA,MAAAA,EAAAA;0CACEzB,aAAc,CAAA;oCACbsB,EAAI,EAAA,4CAAA;oCACJC,cAAgB,EAAA;AAClB,iCAAA;;;;;;;;AAOd;;;;"}