@verdaccio/ui-components 5.0.0-next-9.7 → 5.0.0-next-9.9

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 (261) hide show
  1. package/build/Theme/ResetStyles.d.ts +1 -1
  2. package/build/Theme/StyleBaseline.d.ts +1 -2
  3. package/build/Theme/ThemeProvider.d.ts +1 -1
  4. package/build/Theme/modes.d.ts +13 -1
  5. package/build/Theme/modes.js +18 -3
  6. package/build/Theme/modes.js.map +1 -1
  7. package/build/Theme/modes.mjs +16 -2
  8. package/build/Theme/modes.mjs.map +1 -1
  9. package/build/Theme/theme.d.ts +27 -3
  10. package/build/Theme/theme.js.map +1 -1
  11. package/build/Theme/theme.mjs.map +1 -1
  12. package/build/api/use-data-mutation.d.ts +3 -3
  13. package/build/api/use-data.d.ts +2 -2
  14. package/build/components/ActionBar/ActionBar.d.ts +1 -1
  15. package/build/components/ActionBar/ActionBarAction.d.ts +7 -2
  16. package/build/components/AppRoute/AppRoute.d.ts +1 -1
  17. package/build/components/Author/Author.d.ts +1 -1
  18. package/build/components/Author/styles.d.ts +9 -2
  19. package/build/components/CopyClipboard/CopyToClipBoard.d.ts +1 -1
  20. package/build/components/CopyClipboard/utils.d.ts +1 -1
  21. package/build/components/Dependencies/Dependencies.d.ts +1 -1
  22. package/build/components/Dependencies/DependencyBlock.d.ts +15 -7
  23. package/build/components/Dependencies/DependencyBlock.mjs +2 -2
  24. package/build/components/Dependencies/DependencyBlock.mjs.map +1 -1
  25. package/build/components/Dependencies/index.js +1 -1
  26. package/build/components/Dependencies/types.d.ts +1 -1
  27. package/build/components/Deprecated/Deprecated.d.ts +1 -1
  28. package/build/components/Developers/Developers.d.ts +8 -3
  29. package/build/components/Developers/Title.d.ts +1 -1
  30. package/build/components/Developers/Title.mjs +2 -2
  31. package/build/components/Developers/Title.mjs.map +1 -1
  32. package/build/components/Developers/get-unique-developer-values.d.ts +1 -1
  33. package/build/components/Distribution/Dist.d.ts +2 -2
  34. package/build/components/Distribution/styles.d.ts +12 -3
  35. package/build/components/Distribution/styles.mjs +2 -2
  36. package/build/components/Distribution/styles.mjs.map +1 -1
  37. package/build/components/Engines/Engines.d.ts +2 -2
  38. package/build/components/Engines/styles.d.ts +9 -2
  39. package/build/components/Engines/styles.mjs +2 -2
  40. package/build/components/Engines/styles.mjs.map +1 -1
  41. package/build/components/ErrorBoundary/ErrorBoundary.d.ts +2 -3
  42. package/build/components/Forbidden/Forbidden.d.ts +1 -1
  43. package/build/components/FundButton/FundButton.d.ts +1 -1
  44. package/build/components/FundButton/FundButton.js +1 -1
  45. package/build/components/FundButton/FundButton.js.map +1 -1
  46. package/build/components/FundButton/FundButton.mjs +1 -1
  47. package/build/components/FundButton/FundButton.mjs.map +1 -1
  48. package/build/components/HeaderInfoDialog/HeaderInfoDialog.d.ts +1 -1
  49. package/build/components/Heading/Heading.d.ts +2 -2
  50. package/build/components/Heading/Heading.mjs +2 -2
  51. package/build/components/Heading/Heading.mjs.map +1 -1
  52. package/build/components/Help/Help.d.ts +1 -1
  53. package/build/components/Help/Help.mjs +3 -3
  54. package/build/components/Help/Help.mjs.map +1 -1
  55. package/build/components/Help/styles.d.ts +3 -1
  56. package/build/components/Icons/DevsIcons/CommonJS.d.ts +1 -1
  57. package/build/components/Icons/DevsIcons/ES6Module.d.ts +1 -1
  58. package/build/components/Icons/DevsIcons/Git.d.ts +1 -1
  59. package/build/components/Icons/DevsIcons/NodeJS.d.ts +1 -1
  60. package/build/components/Icons/DevsIcons/TypeScript.d.ts +1 -1
  61. package/build/components/Icons/DevsIcons/commonjs.svg +4 -0
  62. package/build/components/Icons/DevsIcons/es6module.svg +4 -0
  63. package/build/components/Icons/DevsIcons/git.svg +4 -0
  64. package/build/components/Icons/DevsIcons/nodejs.svg +6 -0
  65. package/build/components/Icons/DevsIcons/typescript.svg +4 -0
  66. package/build/components/Icons/Earth.d.ts +1 -1
  67. package/build/components/Icons/FileBinary.d.ts +1 -1
  68. package/build/components/Icons/Law.d.ts +1 -1
  69. package/build/components/Icons/License.d.ts +1 -1
  70. package/build/components/Icons/Managers/Npm.d.ts +1 -1
  71. package/build/components/Icons/Managers/Pnpm.d.ts +1 -1
  72. package/build/components/Icons/Managers/Yarn.d.ts +1 -1
  73. package/build/components/Icons/Managers/npm.svg +15 -0
  74. package/build/components/Icons/Managers/pnpm.svg +1 -0
  75. package/build/components/Icons/Managers/yarn.svg +1 -0
  76. package/build/components/Icons/SvgIcon.d.ts +2 -2
  77. package/build/components/Icons/Time.d.ts +1 -1
  78. package/build/components/Icons/Version.d.ts +1 -1
  79. package/build/components/Install/Install.d.ts +3 -3
  80. package/build/components/Install/InstallListItem.d.ts +1 -1
  81. package/build/components/Install/InstallListItem.mjs +2 -2
  82. package/build/components/Install/InstallListItem.mjs.map +1 -1
  83. package/build/components/Keywords/KeywordListItems.d.ts +1 -1
  84. package/build/components/Keywords/Keywords.d.ts +2 -2
  85. package/build/components/Keywords/Keywords.mjs +2 -2
  86. package/build/components/Keywords/Keywords.mjs.map +1 -1
  87. package/build/components/Label/Label.d.ts +2 -2
  88. package/build/components/Link/Link.d.ts +1 -1
  89. package/build/components/Link/Link.mjs +2 -2
  90. package/build/components/Link/Link.mjs.map +1 -1
  91. package/build/components/LinkExternal/LinkExternal.d.ts +1 -1
  92. package/build/components/Loading/Loading.d.ts +1 -1
  93. package/build/components/Loading/Spinner/Spinner.d.ts +1 -1
  94. package/build/components/Loading/styles.d.ts +7 -7
  95. package/build/components/LoginDialog/LoginDialog.d.ts +1 -1
  96. package/build/components/LoginDialog/LoginDialogCloseButton.d.ts +1 -1
  97. package/build/components/LoginDialog/LoginDialogCloseButton.js +2 -2
  98. package/build/components/LoginDialog/LoginDialogCloseButton.js.map +1 -1
  99. package/build/components/LoginDialog/LoginDialogCloseButton.mjs +2 -2
  100. package/build/components/LoginDialog/LoginDialogCloseButton.mjs.map +1 -1
  101. package/build/components/LoginDialog/LoginDialogForm.d.ts +1 -1
  102. package/build/components/LoginDialog/LoginDialogFormError.d.ts +1 -1
  103. package/build/components/LoginForm/Login.d.ts +2 -2
  104. package/build/components/LoginForm/Login.mjs +2 -2
  105. package/build/components/LoginForm/Login.mjs.map +1 -1
  106. package/build/components/LoginForm/PasswordField.d.ts +3 -3
  107. package/build/components/LoginForm/UsernameField.d.ts +3 -3
  108. package/build/components/LoginForm/styles.d.ts +1 -1
  109. package/build/components/LoginForm/styles.js +2 -2
  110. package/build/components/LoginForm/styles.js.map +1 -1
  111. package/build/components/LoginForm/styles.mjs +2 -2
  112. package/build/components/LoginForm/styles.mjs.map +1 -1
  113. package/build/components/LoginForm/useLoginForm.d.ts +17 -17
  114. package/build/components/Logo/Logo.d.ts +1 -1
  115. package/build/components/Logo/img/logo-black-and-white.svg +1 -0
  116. package/build/components/Logo/img/logo.svg +1 -0
  117. package/build/components/MenuItem/MenuItem.d.ts +2 -2
  118. package/build/components/NoItems/NoItems.d.ts +1 -1
  119. package/build/components/NoItems/NoItems.mjs +2 -2
  120. package/build/components/NoItems/NoItems.mjs.map +1 -1
  121. package/build/components/NotFound/NotFound.d.ts +1 -1
  122. package/build/components/NotFound/img/package.svg +1 -0
  123. package/build/components/Package/Package.d.ts +3 -3
  124. package/build/components/Package/Package.js.map +1 -1
  125. package/build/components/Package/Package.mjs.map +1 -1
  126. package/build/components/Package/styles.d.ts +39 -29
  127. package/build/components/Package/styles.mjs +2 -2
  128. package/build/components/Package/styles.mjs.map +1 -1
  129. package/build/components/PackageList/PackageList.d.ts +2 -2
  130. package/build/components/Person/Person.d.ts +2 -2
  131. package/build/components/Person/PersonTooltip.d.ts +2 -2
  132. package/build/components/Person/PersonTooltip.mjs +2 -2
  133. package/build/components/Person/PersonTooltip.mjs.map +1 -1
  134. package/build/components/Person/utils.d.ts +1 -1
  135. package/build/components/RawViewer/RawViewer.d.ts +1 -1
  136. package/build/components/Readme/Readme.d.ts +2 -5
  137. package/build/components/Readme/Readme.js +6 -6
  138. package/build/components/Readme/Readme.js.map +1 -1
  139. package/build/components/Readme/Readme.mjs +6 -6
  140. package/build/components/Readme/Readme.mjs.map +1 -1
  141. package/build/components/Readme/github-markdown.css +1654 -0
  142. package/build/components/Readme/hljs-github-dark.css +117 -0
  143. package/build/components/Readme/hljs-github-light.css +117 -0
  144. package/build/components/RegistryInfoDialog/RegistryInfoDialog.d.ts +2 -2
  145. package/build/components/RegistryInfoDialog/styles.d.ts +11 -7
  146. package/build/components/RegistryInfoDialog/types.d.ts +1 -1
  147. package/build/components/Repository/Repository.d.ts +1 -1
  148. package/build/components/Repository/Repository.mjs +4 -4
  149. package/build/components/Repository/Repository.mjs.map +1 -1
  150. package/build/components/Search/AutoComplete/AutoComplete.d.ts +2 -3
  151. package/build/components/Search/AutoComplete/styles.d.ts +3 -3
  152. package/build/components/Search/Search.d.ts +1 -1
  153. package/build/components/Search/Search.js +15 -30
  154. package/build/components/Search/Search.js.map +1 -1
  155. package/build/components/Search/Search.mjs +15 -30
  156. package/build/components/Search/Search.mjs.map +1 -1
  157. package/build/components/Search/SearchItem.d.ts +4 -4
  158. package/build/components/Search/styles.d.ts +10 -6
  159. package/build/components/Search/utils.d.ts +21 -0
  160. package/build/components/Search/utils.js +37 -0
  161. package/build/components/Search/utils.js.map +1 -1
  162. package/build/components/Search/utils.mjs +37 -1
  163. package/build/components/Search/utils.mjs.map +1 -1
  164. package/build/components/SettingsMenu/SettingsMenu.d.ts +1 -1
  165. package/build/components/SideBarTitle/SideBarTitle.d.ts +1 -1
  166. package/build/components/UnAuthorized/UnAuthorized.d.ts +1 -1
  167. package/build/components/UpLinks/UpLinks.d.ts +1 -1
  168. package/build/components/UpLinks/UplinkLink.d.ts +1 -1
  169. package/build/components/UpLinks/index.js +1 -1
  170. package/build/components/UpLinks/styles.d.ts +11 -7
  171. package/build/components/UpLinks/styles.mjs +5 -5
  172. package/build/components/UpLinks/styles.mjs.map +1 -1
  173. package/build/components/Versions/HistoryList.d.ts +2 -2
  174. package/build/components/Versions/TagList.d.ts +2 -2
  175. package/build/components/Versions/Versions.d.ts +7 -2
  176. package/build/components/Versions/Versions.mjs +2 -2
  177. package/build/components/Versions/Versions.mjs.map +1 -1
  178. package/build/components/Versions/index.js +1 -1
  179. package/build/components/Versions/styles.d.ts +6 -6
  180. package/build/components/Versions/styles.mjs +3 -3
  181. package/build/components/Versions/styles.mjs.map +1 -1
  182. package/build/components/Versions/types.d.ts +1 -1
  183. package/build/configuration.d.ts +1 -1
  184. package/build/hooks/useOnClickOutside.d.ts +1 -1
  185. package/build/index.d.ts +0 -3
  186. package/build/index.js +59 -62
  187. package/build/index.mjs +2 -6
  188. package/build/layouts/Security/Dialog.d.ts +1 -1
  189. package/build/layouts/Version/Version.d.ts +1 -1
  190. package/build/pages/Front/index.js +1 -1
  191. package/build/pages/Version/Version.d.ts +1 -1
  192. package/build/pages/Version/index.js +1 -1
  193. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.d.ts +2 -2
  194. package/build/providers/AuthProvider/AuthProvider.d.ts +2 -3
  195. package/build/providers/AuthProvider/types.d.ts +1 -1
  196. package/build/providers/AuthProvider/utils.d.ts +1 -1
  197. package/build/providers/DownloadProvider/DownloadProvider.d.ts +1 -2
  198. package/build/providers/ManifestsProvider/ManifestsProvider.d.ts +2 -3
  199. package/build/providers/ManifestsProvider/README.md +22 -0
  200. package/build/providers/PersistenceSettingProvider/PersistenceSettingProvider.d.ts +1 -2
  201. package/build/providers/SearchProvider/SearchProvider.d.ts +2 -3
  202. package/build/providers/TranslatorProvider/TranslatorProvider.d.ts +2 -3
  203. package/build/providers/VersionProvider/README.md +22 -0
  204. package/build/providers/VersionProvider/VersionProvider.d.ts +2 -2
  205. package/build/routes/SecurityRoutes.d.ts +1 -1
  206. package/build/sections/Detail/ContainerContent.d.ts +1 -1
  207. package/build/sections/Detail/Detail.d.ts +1 -1
  208. package/build/sections/Detail/ReadmeSection.d.ts +1 -1
  209. package/build/sections/Detail/Tabs.d.ts +1 -1
  210. package/build/sections/Footer/Footer.d.ts +1 -1
  211. package/build/sections/Footer/styles.d.ts +17 -17
  212. package/build/sections/Header/Header.d.ts +1 -1
  213. package/build/sections/Header/HeaderGreetings.d.ts +1 -1
  214. package/build/sections/Header/HeaderLeft.d.ts +1 -1
  215. package/build/sections/Header/HeaderMenu.d.ts +1 -2
  216. package/build/sections/Header/HeaderMenu.js +10 -11
  217. package/build/sections/Header/HeaderMenu.js.map +1 -1
  218. package/build/sections/Header/HeaderMenu.mjs +10 -11
  219. package/build/sections/Header/HeaderMenu.mjs.map +1 -1
  220. package/build/sections/Header/HeaderRight.d.ts +1 -1
  221. package/build/sections/Header/HeaderSettingsDialog.d.ts +1 -1
  222. package/build/sections/Header/HeaderToolTip.d.ts +2 -2
  223. package/build/sections/Header/HeaderToolTipIcon.d.ts +1 -1
  224. package/build/sections/Header/LanguageSwitch.d.ts +12 -3
  225. package/build/sections/Header/LanguageSwitch.mjs +2 -2
  226. package/build/sections/Header/LanguageSwitch.mjs.map +1 -1
  227. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.d.ts +7 -8
  228. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +5 -5
  229. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs.map +1 -1
  230. package/build/sections/Header/RegistryInfoContent/styles.d.ts +7 -7
  231. package/build/sections/Header/styles.d.ts +33 -19
  232. package/build/sections/Home/Home.d.ts +1 -1
  233. package/build/sections/Security/AddUser.d.ts +1 -1
  234. package/build/sections/Security/AddUser.js +0 -1
  235. package/build/sections/Security/AddUser.js.map +1 -1
  236. package/build/sections/Security/AddUser.mjs +0 -1
  237. package/build/sections/Security/AddUser.mjs.map +1 -1
  238. package/build/sections/Security/ChangePassword.d.ts +1 -1
  239. package/build/sections/Security/ChangePassword.js +0 -1
  240. package/build/sections/Security/ChangePassword.js.map +1 -1
  241. package/build/sections/Security/ChangePassword.mjs +0 -1
  242. package/build/sections/Security/ChangePassword.mjs.map +1 -1
  243. package/build/sections/Security/Login.d.ts +1 -1
  244. package/build/sections/Security/Success.d.ts +1 -1
  245. package/build/sections/Security/styles.d.ts +5 -3
  246. package/build/sections/Security/styles.js +1 -1
  247. package/build/sections/Security/styles.js.map +1 -1
  248. package/build/sections/Security/styles.mjs +1 -1
  249. package/build/sections/Security/styles.mjs.map +1 -1
  250. package/build/sections/SideBar/Sidebar.d.ts +1 -1
  251. package/build/types/index.d.ts +1 -1
  252. package/build/types/packageMeta.d.ts +1 -1
  253. package/build/ui-components.css +1024 -334
  254. package/build/utils/cli-utils.d.ts +1 -1
  255. package/build/utils/loadable.d.ts +1 -1
  256. package/build/utils/utils.d.ts +2 -2
  257. package/package.json +5 -8
  258. package/build/pages/Security/index.js +0 -4
  259. package/build/pages/Security/index.mjs +0 -4
  260. package/build/test/i18n-config.d.ts +0 -2
  261. package/build/test/test-react-testing-library.d.ts +0 -23
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  export type TooltipIconType = 'search' | 'info' | 'dark-mode' | 'light-mode' | 'settings';
3
3
  interface Props {
4
4
  tooltipIconType: TooltipIconType;
@@ -1,5 +1,14 @@
1
- import React from 'react';
2
- export declare const CardSelected: import("@emotion/styled").StyledComponent<any, {}, {}>;
3
- export declare const CardUnSelected: import("@emotion/styled").StyledComponent<any, {}, {}>;
1
+ import { default as React } from 'react';
2
+ import { Theme } from '../../';
3
+ export declare const CardSelected: import('@emotion/styled').StyledComponent<import('@mui/material/Card').CardOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "style" | "elevation" | "className" | "classes" | "square" | "sx" | "variant" | "raised"> & {
4
+ theme?: import('@emotion/react').Theme;
5
+ } & {
6
+ theme?: Theme;
7
+ }, {}, {}>;
8
+ export declare const CardUnSelected: import('@emotion/styled').StyledComponent<import('@mui/material/Card').CardOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "style" | "elevation" | "className" | "classes" | "square" | "sx" | "variant" | "raised"> & {
9
+ theme?: import('@emotion/react').Theme;
10
+ } & {
11
+ theme?: Theme;
12
+ }, {}, {}>;
4
13
  declare const LanguageSwitch: () => React.JSX.Element;
5
14
  export default LanguageSwitch;
@@ -5,7 +5,7 @@ import { useCallback, useState } from "react";
5
5
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
6
6
  import i18next from "i18next";
7
7
  import { useTranslation } from "react-i18next";
8
- import MaterialUITypography from "@mui/material/Typography";
8
+ import Typography from "@mui/material/Typography";
9
9
  import Card from "@mui/material/Card";
10
10
  import CardContent from "@mui/material/CardContent";
11
11
  import Grid from "@mui/material/Grid";
@@ -24,7 +24,7 @@ var CardUnSelected = styled(Card)(({ theme }) => {
24
24
  ":hover": { backgroundColor: theme.palette.greyGainsboro }
25
25
  };
26
26
  });
27
- var LanguageContent = ({ translation, icon }) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(MaterialUITypography, {
27
+ var LanguageContent = ({ translation, icon }) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(CardContent, { children: /* @__PURE__ */ jsx(Typography, {
28
28
  display: "block",
29
29
  gutterBottom: true,
30
30
  variant: "caption",
@@ -1 +1 @@
1
- {"version":3,"file":"LanguageSwitch.mjs","names":[],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,eAAe,OAAO,KAAK,EAAqB,EAAE,YAAY;AACzE,QAAO;EACL,iBAAiB,MAAM,QAAQ,KAAK;EACpC,SAAS;EACT,OAAO,MAAM,QAAQ,MAAM;EAC3B,YAAY;EACb;EACD;AAEF,IAAa,iBAAiB,OAAO,KAAK,EAAqB,EAAE,YAAY;AAC3E,QAAO;EACL,QAAQ;EACR,UAAU,EACR,iBAAiB,MAAM,QAAQ,eAChC;EACF;EACD;AAEF,IAAM,mBAAmB,EAAE,aAAa,WACtC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UACE,oBAAC,sBAAD;CAAY,SAAQ;CAAQ,cAAc;CAAM,SAAQ;WACrD;CACU,CAAA,EACD,CAAA,EACd,oBAAC,aAAD,EAAA,UAAc,MAAmB,CAAA,CAChC,EAAA,CAAA;AAGL,IAAM,uBAAuB;CAC3B,MAAM,EAAE,UAAU,aAAa,kBAAkB,aAAa;CAC9D,MAAM,gBAAgB,cAAc,QACjC,MAAM,SAAS;AACd,OAAK,KAAK,OAAO;GACf,aAAa,KAAK;GAClB,MAAM,KAAK;GACZ;AACD,SAAO;IAET,EAAE,CACH;CAED,MAAM,CAAC,aAAa,SAAmB,OAAO,KAAK,QAAQ,SAAS,aAAa,EAAE,CAAC,CAAC;CACrF,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,kBAAkB;CACxB,MAAM,uBAAuB,aAC1B,aAAqB;EACpB,MAAM,MAAM,cAAc,aAAa,cAAc;AACrD,SAAO;GACL,MAAM,oBAAC,IAAI,MAAL,EAAY,CAAA;GAClB,aAAa,EAAE,IAAI,YAAY;GAChC;IAEH,CAAC,eAAe,EAAE,CACnB;CACD,MAAM,uBAAuB,aAC1B,aAAqB;AACpB,cAAY,SAAS;IAEvB,CAAC,YAAY,CACd;AAED,QACE,oBAAC,OAAD,EAAA,UACE,oBAAC,MAAD;EAAM,SAAS;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;GAAI;EAAE,WAAW;EAAM,SAAS;GAAE,IAAI;GAAG,IAAI;GAAG;YAClF,UAAU,KAAK,UAAU,UAAU;GAClC,MAAM,EAAE,MAAM,gBAAgB,qBAAqB,SAAS;AAC5D,UACE,oBAAC,MAAD;IAAkB,MAAM;KAAE,IAAI;KAAG,IAAI;KAAG;cACrC,aAAa,kBACZ,oBAAC,cAAD;KAAc,IAAI,EAAE,UAAU,IAAI;eAChC,oBAAC,iBAAD;MAAuB;MAAmB;MAAe,CAAA;KAC5C,CAAA,GAEf,oBAAC,gBAAD;KAAgB,eAAe,qBAAqB,SAAS;eAC3D,oBAAC,iBAAD;MAAuB;MAAmB;MAAe,CAAA;KAC1C,CAAA;IAEd,EAVI,MAUJ;IAET;EACG,CAAA,EACH,CAAA"}
1
+ {"version":3,"file":"LanguageSwitch.mjs","names":[],"sources":["../../../src/sections/Header/LanguageSwitch.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport i18next from 'i18next';\nimport React, { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport type { Theme } from '../../';\nimport { useLanguage } from '../../';\n\nexport const CardSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n backgroundColor: theme.palette.grey['600'],\n opacity: '0.9',\n color: theme.palette.error.contrastText,\n fontWeight: 'bold',\n };\n});\n\nexport const CardUnSelected = styled(Card)<{ theme?: Theme }>(({ theme }) => {\n return {\n cursor: 'pointer',\n ':hover': {\n backgroundColor: theme.palette.greyGainsboro,\n },\n };\n});\n\nconst LanguageContent = ({ translation, icon }) => (\n <>\n <CardContent>\n <Typography display=\"block\" gutterBottom={true} variant=\"caption\">\n {translation}\n </Typography>\n </CardContent>\n <CardContent>{icon}</CardContent>\n </>\n);\n\nconst LanguageSwitch = () => {\n const { language, setLanguage, listLanguages } = useLanguage();\n const listConverted = listLanguages.reduce(\n (prev, item) => {\n prev[item.lng] = {\n translation: item.menuKey,\n icon: item.icon,\n };\n return prev;\n },\n {} as Record<string, { translation: string; icon: any }>\n );\n\n const [languages] = useState<string[]>(Object.keys(i18next.options?.resources || {}));\n const { t } = useTranslation();\n const currentLanguage = language;\n const getCurrentLngDetails = useCallback(\n (language: string) => {\n const lng = listConverted[language] || listConverted['en-US'];\n return {\n icon: <lng.icon />,\n translation: t(lng.translation),\n };\n },\n [listConverted, t]\n );\n const handleChangeLanguage = useCallback(\n (language: string) => {\n setLanguage(language);\n },\n [setLanguage]\n );\n\n return (\n <div>\n <Grid columns={{ xs: 12, sm: 12, md: 12 }} container={true} spacing={{ xs: 1, md: 1 }}>\n {languages.map((language, index) => {\n const { icon, translation } = getCurrentLngDetails(language);\n return (\n <Grid key={index} size={{ sm: 2, xs: 6 }}>\n {language === currentLanguage ? (\n <CardSelected sx={{ maxWidth: 80 }}>\n <LanguageContent icon={icon} translation={translation} />\n </CardSelected>\n ) : (\n <CardUnSelected onClick={() => handleChangeLanguage(language)}>\n <LanguageContent icon={icon} translation={translation} />\n </CardUnSelected>\n )}\n </Grid>\n );\n })}\n </Grid>\n </div>\n );\n};\n\nexport default LanguageSwitch;\n"],"mappings":";;;;;;;;;;;;AAYA,IAAa,eAAe,OAAO,KAAK,EAAqB,EAAE,YAAY;AACzE,QAAO;EACL,iBAAiB,MAAM,QAAQ,KAAK;EACpC,SAAS;EACT,OAAO,MAAM,QAAQ,MAAM;EAC3B,YAAY;EACb;EACD;AAEF,IAAa,iBAAiB,OAAO,KAAK,EAAqB,EAAE,YAAY;AAC3E,QAAO;EACL,QAAQ;EACR,UAAU,EACR,iBAAiB,MAAM,QAAQ,eAChC;EACF;EACD;AAEF,IAAM,mBAAmB,EAAE,aAAa,WACtC,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UACE,oBAAC,YAAD;CAAY,SAAQ;CAAQ,cAAc;CAAM,SAAQ;WACrD;CACU,CAAA,EACD,CAAA,EACd,oBAAC,aAAD,EAAA,UAAc,MAAmB,CAAA,CAChC,EAAA,CAAA;AAGL,IAAM,uBAAuB;CAC3B,MAAM,EAAE,UAAU,aAAa,kBAAkB,aAAa;CAC9D,MAAM,gBAAgB,cAAc,QACjC,MAAM,SAAS;AACd,OAAK,KAAK,OAAO;GACf,aAAa,KAAK;GAClB,MAAM,KAAK;GACZ;AACD,SAAO;IAET,EAAE,CACH;CAED,MAAM,CAAC,aAAa,SAAmB,OAAO,KAAK,QAAQ,SAAS,aAAa,EAAE,CAAC,CAAC;CACrF,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,kBAAkB;CACxB,MAAM,uBAAuB,aAC1B,aAAqB;EACpB,MAAM,MAAM,cAAc,aAAa,cAAc;AACrD,SAAO;GACL,MAAM,oBAAC,IAAI,MAAL,EAAY,CAAA;GAClB,aAAa,EAAE,IAAI,YAAY;GAChC;IAEH,CAAC,eAAe,EAAE,CACnB;CACD,MAAM,uBAAuB,aAC1B,aAAqB;AACpB,cAAY,SAAS;IAEvB,CAAC,YAAY,CACd;AAED,QACE,oBAAC,OAAD,EAAA,UACE,oBAAC,MAAD;EAAM,SAAS;GAAE,IAAI;GAAI,IAAI;GAAI,IAAI;GAAI;EAAE,WAAW;EAAM,SAAS;GAAE,IAAI;GAAG,IAAI;GAAG;YAClF,UAAU,KAAK,UAAU,UAAU;GAClC,MAAM,EAAE,MAAM,gBAAgB,qBAAqB,SAAS;AAC5D,UACE,oBAAC,MAAD;IAAkB,MAAM;KAAE,IAAI;KAAG,IAAI;KAAG;cACrC,aAAa,kBACZ,oBAAC,cAAD;KAAc,IAAI,EAAE,UAAU,IAAI;eAChC,oBAAC,iBAAD;MAAuB;MAAmB;MAAe,CAAA;KAC5C,CAAA,GAEf,oBAAC,gBAAD;KAAgB,eAAe,qBAAqB,SAAS;eAC3D,oBAAC,iBAAD;MAAuB;MAAmB;MAAe,CAAA;KAC1C,CAAA;IAEd,EAVI,MAUJ;IAET;EACG,CAAA,EACH,CAAA"}
@@ -1,20 +1,19 @@
1
- import type { FC } from 'react';
2
- import React from 'react';
1
+ import { FC, default as React } from 'react';
3
2
  export declare const NODE_MANAGER: {
4
3
  npm: string;
5
4
  yarn: string;
6
5
  pnpm: string;
7
6
  };
8
- export declare const AccordionContainer: import("@emotion/styled").StyledComponent<{
9
- theme?: import("@emotion/react").Theme;
7
+ export declare const AccordionContainer: import('@emotion/styled').StyledComponent<{
8
+ theme?: import('@emotion/react').Theme;
10
9
  as?: React.ElementType;
11
10
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
12
- export declare const CommandContainer: import("@emotion/styled").StyledComponent<{
13
- theme?: import("@emotion/react").Theme;
11
+ export declare const CommandContainer: import('@emotion/styled').StyledComponent<{
12
+ theme?: import('@emotion/react').Theme;
14
13
  as?: React.ElementType;
15
14
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
16
- export declare const LinkContainer: import("@emotion/styled").StyledComponent<{
17
- theme?: import("@emotion/react").Theme;
15
+ export declare const LinkContainer: import('@emotion/styled').StyledComponent<{
16
+ theme?: import('@emotion/react').Theme;
18
17
  as?: React.ElementType;
19
18
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
20
19
  export type Props = {
@@ -9,7 +9,7 @@ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
9
9
  import Box from "@mui/material/Box";
10
10
  import { useTranslation } from "react-i18next";
11
11
  import Link from "@mui/material/Link";
12
- import MaterialUITypography from "@mui/material/Typography";
12
+ import Typography from "@mui/material/Typography";
13
13
  import ReactMarkdown from "react-markdown";
14
14
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
15
15
  import Accordion from "@mui/material/Accordion";
@@ -104,7 +104,7 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
104
104
  "aria-controls": "panel1a-content",
105
105
  expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
106
106
  id: "panel1a-header",
107
- children: /* @__PURE__ */ jsx(MaterialUITypography, {
107
+ children: /* @__PURE__ */ jsx(Typography, {
108
108
  sx: {
109
109
  fontSize: "1rem",
110
110
  fontWeight: "bold"
@@ -122,7 +122,7 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
122
122
  "aria-controls": "panel2a-content",
123
123
  expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
124
124
  id: "panel2a-header",
125
- children: /* @__PURE__ */ jsx(MaterialUITypography, {
125
+ children: /* @__PURE__ */ jsx(Typography, {
126
126
  sx: {
127
127
  fontSize: "1rem",
128
128
  fontWeight: "bold"
@@ -148,7 +148,7 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
148
148
  "aria-controls": "panel3a-content",
149
149
  expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
150
150
  id: "panel3a-header",
151
- children: /* @__PURE__ */ jsx(MaterialUITypography, {
151
+ children: /* @__PURE__ */ jsx(Typography, {
152
152
  sx: {
153
153
  fontSize: "1rem",
154
154
  fontWeight: "bold"
@@ -163,7 +163,7 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
163
163
  /* @__PURE__ */ jsx(LinkContainer, { children: /* @__PURE__ */ jsx(Link, {
164
164
  href: "https://verdaccio.org/docs/cli-registry",
165
165
  target: "_blank",
166
- children: /* @__PURE__ */ jsx(MaterialUITypography, { children: t("header.registry-info-link") })
166
+ children: /* @__PURE__ */ jsx(Typography, { children: t("header.registry-info-link") })
167
167
  }) })
168
168
  ] })] });
169
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"RegistryInfoContent.mjs","names":[],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
1
+ {"version":3,"file":"RegistryInfoContent.mjs","names":[],"sources":["../../../../src/sections/Header/RegistryInfoContent/RegistryInfoContent.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport Box from '@mui/material/Box';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport type { FC } from 'react';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport {\n CopyClipboard,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n useConfig,\n} from '../../../';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n};\n\nconst renderNpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.npm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.npm} adduser`, registryUrl)}\n />\n <CopyClipboard dataTestId=\"copy\" text={getCLIChangePassword(NODE_MANAGER.npm, registryUrl)} />\n </Box>\n );\n};\n\nconst renderPnpmTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.pnpm} set`, scope, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.pnpm} adduser`, registryUrl)}\n />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLIChangePassword(NODE_MANAGER.pnpm, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetConfigRegistry(`${NODE_MANAGER.yarn} config set`, scope, registryUrl)}\n />\n </Box>\n );\n};\n\nconst renderYarnBerryTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getCLISBerryYamlRegistry(scope, registryUrl)} />\n </Box>\n );\n};\n\nexport const AccordionContainer = styled('div')({\n padding: 0,\n paddingLeft: 0,\n paddingRight: 0,\n});\n\nexport const CommandContainer = styled('div')({\n padding: 5,\n});\n\nexport const LinkContainer = styled('div')({\n margin: 10,\n marginLeft: 0,\n});\n\nexport type Props = {\n registryUrl: string;\n scope: string | undefined;\n};\n\nconst RegistryInfoContent: FC<Props> = ({ scope, registryUrl }) => {\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n\n const hasNpm = configOptions?.pkgManagers?.includes('npm');\n const hasYarn = configOptions?.pkgManagers?.includes('yarn');\n const hasPnpm = configOptions?.pkgManagers?.includes('pnpm');\n // TODO: we can improve this logic, expanding only one accordion based on which package manager is enabled\n // feel free to contribute here\n return (\n <>\n <TextContent>{t('packageManagers.description')}</TextContent>\n <AccordionContainer>\n <Accordion disabled={!hasNpm}>\n <AccordionSummary\n aria-controls=\"panel1a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel1a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'npm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderNpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n <Accordion disabled={!hasYarn}>\n <AccordionSummary\n aria-controls=\"panel2a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel2a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'yarn'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnclassicDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown>{t('packageManagers.yarnBerryDetails')}</ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnBerryTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <Accordion disabled={!hasPnpm}>\n <AccordionSummary\n aria-controls=\"panel3a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel3a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'pnpm'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <CommandContainer data-testid={'tab-content'}>\n {renderPnpmTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n\n <LinkContainer>\n <Link href=\"https://verdaccio.org/docs/cli-registry\" target=\"_blank\">\n <Typography>{t('header.registry-info-link')}</Typography>\n </Link>\n </LinkContainer>\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- import type { Theme } from '../../../';
2
- export declare const TextContent: import("@emotion/styled").StyledComponent<{
3
- theme?: import("@emotion/react").Theme;
1
+ import { Theme } from '../../../';
2
+ export declare const TextContent: import('@emotion/styled').StyledComponent<{
3
+ theme?: import('@emotion/react').Theme;
4
4
  as?: React.ElementType;
5
5
  } & {
6
6
  theme?: Theme;
7
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
- export declare const Description: import("@emotion/styled").StyledComponent<{
9
- theme?: import("@emotion/react").Theme;
7
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
+ export declare const Description: import('@emotion/styled').StyledComponent<{
9
+ theme?: import('@emotion/react').Theme;
10
10
  as?: React.ElementType;
11
11
  } & {
12
12
  theme?: Theme;
13
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -1,27 +1,41 @@
1
- import type { Theme } from '../../Theme';
2
- export declare const InnerNavBar: import("@emotion/styled").StyledComponent<any, {}, {}>;
3
- export declare const Greetings: import("@emotion/styled").StyledComponent<{
4
- theme?: import("@emotion/react").Theme;
1
+ import { Theme } from '../../Theme';
2
+ export declare const InnerNavBar: import('@emotion/styled').StyledComponent<import('@mui/material/Toolbar').ToolbarOwnProps & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "children" | "style" | "className" | "classes" | "sx" | "variant" | "disableGutters"> & {
3
+ theme?: import('@emotion/react').Theme;
4
+ }, {}, {}>;
5
+ export declare const Greetings: import('@emotion/styled').StyledComponent<{
6
+ theme?: import('@emotion/react').Theme;
5
7
  as?: React.ElementType;
6
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
7
- export declare const MobileNavBar: import("@emotion/styled").StyledComponent<{
8
- theme?: import("@emotion/react").Theme;
8
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
9
+ export declare const MobileNavBar: import('@emotion/styled').StyledComponent<{
10
+ theme?: import('@emotion/react').Theme;
9
11
  as?: React.ElementType;
10
12
  } & {
11
13
  theme?: Theme;
12
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
- export declare const InnerMobileNavBar: import("@emotion/styled").StyledComponent<{
14
- theme?: import("@emotion/react").Theme;
14
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
15
+ export declare const InnerMobileNavBar: import('@emotion/styled').StyledComponent<{
16
+ theme?: import('@emotion/react').Theme;
15
17
  as?: React.ElementType;
16
18
  } & {
17
19
  theme?: Theme;
18
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
19
- export declare const IconSearchButton: import("@emotion/styled").StyledComponent<any, {}, {}>;
20
- export declare const InfoButton: import("@emotion/styled").StyledComponent<any, {}, {}>;
21
- export declare const SwitchThemeButton: import("@emotion/styled").StyledComponent<any, {}, {}>;
22
- export declare const SettingsButtom: import("@emotion/styled").StyledComponent<any, {}, {}>;
23
- export declare const SearchWrapper: import("@emotion/styled").StyledComponent<{
24
- theme?: import("@emotion/react").Theme;
20
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
21
+ export declare const IconSearchButton: import('@emotion/styled').StyledComponent<import('@mui/material/IconButton').IconButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "style" | "color" | "className" | "classes" | "sx" | "tabIndex" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator" | "size"> & {
22
+ theme?: import('@emotion/react').Theme;
23
+ }, {}, {}>;
24
+ export declare const InfoButton: import('@emotion/styled').StyledComponent<import('@mui/material/IconButton').IconButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "style" | "color" | "className" | "classes" | "sx" | "tabIndex" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator" | "size"> & {
25
+ theme?: import('@emotion/react').Theme;
26
+ }, {}, {}>;
27
+ export declare const SwitchThemeButton: import('@emotion/styled').StyledComponent<import('@mui/material/IconButton').IconButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "style" | "color" | "className" | "classes" | "sx" | "tabIndex" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator" | "size"> & {
28
+ theme?: import('@emotion/react').Theme;
29
+ }, {}, {}>;
30
+ export declare const SettingsButtom: import('@emotion/styled').StyledComponent<import('@mui/material/IconButton').IconButtonOwnProps & Omit<import('@mui/material').ButtonBaseOwnProps, "classes"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children" | "style" | "color" | "className" | "classes" | "sx" | "tabIndex" | "action" | "centerRipple" | "disabled" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator" | "size"> & {
31
+ theme?: import('@emotion/react').Theme;
32
+ }, {}, {}>;
33
+ export declare const SearchWrapper: import('@emotion/styled').StyledComponent<{
34
+ theme?: import('@emotion/react').Theme;
25
35
  as?: React.ElementType;
26
- }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
27
- export declare const NavBar: import("@emotion/styled").StyledComponent<any, {}, {}>;
36
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
37
+ export declare const NavBar: import('@emotion/styled').StyledComponent<import('@mui/material/AppBar').AppBarOwnProps & Omit<import('@mui/material').PaperOwnProps, "color" | "position" | "elevation" | "classes" | "square"> & import('@mui/material/OverridableComponent').CommonProps & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLElement>, HTMLElement>, "children" | "style" | "color" | "position" | "elevation" | "className" | "classes" | "square" | "sx" | "variant" | "enableColorOnDark"> & {
38
+ theme?: import('@emotion/react').Theme;
39
+ } & {
40
+ theme?: Theme;
41
+ }, {}, {}>;
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const Home: React.FC;
3
3
  export default Home;
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const AddUser: React.FC;
3
3
  export default AddUser;
@@ -72,7 +72,6 @@ var AddUser = () => {
72
72
  if (!createUserEnabled) navigate("/");
73
73
  }, [createUserEnabled, navigate]);
74
74
  return createUserEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Dialog.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.SecurityContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_styles.SecurityForm, {
75
- component: "form",
76
75
  onSubmit: handleSubmit(onSubmit),
77
76
  children: [
78
77
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material.Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"AddUser.js","names":[],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n watch,\n formState: { isValid, errors },\n } = form;\n\n const username = watch('username');\n\n const addUserLink = `${Route.ADD_USER}:${encodeURIComponent(username)}`;\n\n const { trigger } = useDataMutation<{ ok: string; token: string }>(basePath, addUserLink, 'PUT');\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n try {\n await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Failed to create user',\n });\n }\n },\n [handleAddUser, setError, navigate]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link href={loginLink} sx={{ ml: 1 }}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":"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"}
1
+ {"version":3,"file":"AddUser.js","names":[],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n watch,\n formState: { isValid, errors },\n } = form;\n\n const username = watch('username');\n\n const addUserLink = `${Route.ADD_USER}:${encodeURIComponent(username)}`;\n\n const { trigger } = useDataMutation<{ ok: string; token: string }>(basePath, addUserLink, 'PUT');\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n try {\n await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Failed to create user',\n });\n }\n },\n [handleAddUser, setError, navigate]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link href={loginLink} sx={{ ml: 1 }}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":"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"}
@@ -70,7 +70,6 @@ var AddUser = () => {
70
70
  if (!createUserEnabled) navigate("/");
71
71
  }, [createUserEnabled, navigate]);
72
72
  return createUserEnabled ? /* @__PURE__ */ jsx(SecurityLayout, { children: /* @__PURE__ */ jsx(SecurityContainer, { children: /* @__PURE__ */ jsxs(SecurityForm, {
73
- component: "form",
74
73
  onSubmit: handleSubmit(onSubmit),
75
74
  children: [
76
75
  /* @__PURE__ */ jsx(Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"AddUser.mjs","names":[],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n watch,\n formState: { isValid, errors },\n } = form;\n\n const username = watch('username');\n\n const addUserLink = `${Route.ADD_USER}:${encodeURIComponent(username)}`;\n\n const { trigger } = useDataMutation<{ ok: string; token: string }>(basePath, addUserLink, 'PUT');\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n try {\n await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Failed to create user',\n });\n }\n },\n [handleAddUser, setError, navigate]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link href={loginLink} sx={{ ml: 1 }}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,EAAE,MAAM,SAAS,qBAAqB,SAAS;CACrD,MAAM,YAAY,QAAM,SAAS,OAAO,SAAS,mBAAmB,KAAK,KAAK;CAC9E,MAAM,oBAAoB,eAAe,OAAO;CAWhD,MAAM,EACJ,UACA,cACA,UACA,OACA,WAAW,EAAE,SAAS,aAfX,QAA2B;EACtC,MAAM;EACN,eAAe;GACb,UAAU,OAAO,SAAS,WAAW,OAAO;GAC5C,UAAU;GACV,OAAO;GACR;EACD,UAAU,YAAY,cAAc;EACrC,CAAC;CAUF,MAAM,WAAW,MAAM,WAAW;CAIlC,MAAM,EAAE,YAAY,gBAA+C,UAF/C,GAAG,QAAM,SAAS,GAAG,mBAAmB,SAAS,IAEqB,MAAM;CAEhG,MAAM,gBAAgB,YACpB,OAAO,SAAsB;AAC3B,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAA4B;AACjC,MAAI;AACF,SAAM,cAAc;IAClB,MAAM,KAAK;IACX,UAAU,KAAK;IACf,OAAO,KAAK;IACb,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,UAAU;UACzD;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAe;EAAU;EAAS,CACpC;AAED,iBAAgB;AACd,MAAI,CAAC,kBACH,UAAS,IAAI;IAEd,CAAC,mBAAmB,SAAS,CAAC;AAEjC,QAAO,oBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,WAAU;EAAO,UAAU,aAAa,SAAS;YAA/D;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,yBAAyB;IACjB,CAAA;GACb,oBAAC,eAAD;IAAuB;IAAkB;IAAY,CAAA;GACrD,oBAAC,eAAD;IAAuB;IAAkB;IAAY,CAAA;GAErD,oBAAC,mBAAD;IACE,OAAO,EAAE,yBAAyB;IAClC,MAAK;IACL,GAAI,SAAS,QAAQ;IACrB,CAAA;GAEF,oBAAC,YAAD;IAAY,OAAM;IAAiB,WAAW;IAAM,IAAI,EAAE,UAAU,IAAI;IAAE,SAAQ;cAC/E,EAAE,oCAAoC;IAC5B,CAAA;GACZ,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,0BAA0B;IACtB,CAAA;GACT,qBAAC,YAAD;IAAY,OAAM;IAAS,IAAI;KAAE,IAAI;KAAG,UAAU;KAAI;IAAE,SAAQ;cAAhE,CACG,EAAE,uCAAuC,EAC1C,oBAAC,QAAD;KAAM,MAAM;KAAW,IAAI,EAAE,IAAI,GAAG;eACjC,EAAE,yBAAyB;KACvB,CAAA,CACI;;GACA;KACG,CAAA,EACL,CAAA,GACf"}
1
+ {"version":3,"file":"AddUser.mjs","names":[],"sources":["../../../src/sections/Security/AddUser.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation, useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport PasswordField from '../../components/LoginForm/PasswordField';\nimport UsernameField from '../../components/LoginForm/UsernameField';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport type { AddUserFormValues } from '../../utils/schemas';\nimport { addUserSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\nimport { getSecurityUrlParams } from './utils';\n\ntype AddUserBody = {\n name: string;\n password: string;\n email?: string;\n};\n\nconst AddUser: React.FC = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const { next, user } = getSecurityUrlParams(location);\n const loginLink = Route.LOGIN + (next ? `?next=${encodeURIComponent(next)}` : '');\n const createUserEnabled = configuration?.flags?.createUser;\n const form = useForm<AddUserFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: typeof user === 'string' ? user : '',\n password: '',\n email: '',\n },\n resolver: yupResolver(addUserSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n watch,\n formState: { isValid, errors },\n } = form;\n\n const username = watch('username');\n\n const addUserLink = `${Route.ADD_USER}:${encodeURIComponent(username)}`;\n\n const { trigger } = useDataMutation<{ ok: string; token: string }>(basePath, addUserLink, 'PUT');\n\n const handleAddUser = useCallback(\n async (body: AddUserBody) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: AddUserFormValues) => {\n try {\n await handleAddUser({\n name: data.username,\n password: data.password,\n email: data.email,\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.AddUser}`);\n } catch {\n setError('root', {\n type: 'server',\n // TODO: add translation key\n message: 'Failed to create user',\n });\n }\n },\n [handleAddUser, setError, navigate]\n );\n\n useEffect(() => {\n if (!createUserEnabled) {\n navigate('/');\n }\n }, [createUserEnabled, navigate]);\n\n return createUserEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.addUser.title')}\n </Typography>\n <UsernameField errors={errors} register={register} />\n <PasswordField errors={errors} register={register} />\n\n <SecurityTextField\n label={t('security.addUser.email')}\n type=\"email\"\n {...register('email')}\n />\n\n <Typography color=\"text.secondary\" paragraph={true} sx={{ fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.emailDescription')}\n </Typography>\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.addUser.submit')}\n </Button>\n <Typography align=\"center\" sx={{ mt: 2, fontSize: 12 }} variant=\"body2\">\n {t('security.addUser.alreadyUserQuestion')}\n <Link href={loginLink} sx={{ ml: 1 }}>\n {t('security.addUser.login')}\n </Link>\n </Typography>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default AddUser;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA4BA,IAAM,gBAA0B;CAC9B,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,EAAE,MAAM,SAAS,qBAAqB,SAAS;CACrD,MAAM,YAAY,QAAM,SAAS,OAAO,SAAS,mBAAmB,KAAK,KAAK;CAC9E,MAAM,oBAAoB,eAAe,OAAO;CAWhD,MAAM,EACJ,UACA,cACA,UACA,OACA,WAAW,EAAE,SAAS,aAfX,QAA2B;EACtC,MAAM;EACN,eAAe;GACb,UAAU,OAAO,SAAS,WAAW,OAAO;GAC5C,UAAU;GACV,OAAO;GACR;EACD,UAAU,YAAY,cAAc;EACrC,CAAC;CAUF,MAAM,WAAW,MAAM,WAAW;CAIlC,MAAM,EAAE,YAAY,gBAA+C,UAF/C,GAAG,QAAM,SAAS,GAAG,mBAAmB,SAAS,IAEqB,MAAM;CAEhG,MAAM,gBAAgB,YACpB,OAAO,SAAsB;AAC3B,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAA4B;AACjC,MAAI;AACF,SAAM,cAAc;IAClB,MAAM,KAAK;IACX,UAAU,KAAK;IACf,OAAO,KAAK;IACb,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,UAAU;UACzD;AACN,YAAS,QAAQ;IACf,MAAM;IAEN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAe;EAAU;EAAS,CACpC;AAED,iBAAgB;AACd,MAAI,CAAC,kBACH,UAAS,IAAI;IAEd,CAAC,mBAAmB,SAAS,CAAC;AAEjC,QAAO,oBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,UAAU,aAAa,SAAS;YAA9C;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,yBAAyB;IACjB,CAAA;GACb,oBAAC,eAAD;IAAuB;IAAkB;IAAY,CAAA;GACrD,oBAAC,eAAD;IAAuB;IAAkB;IAAY,CAAA;GAErD,oBAAC,mBAAD;IACE,OAAO,EAAE,yBAAyB;IAClC,MAAK;IACL,GAAI,SAAS,QAAQ;IACrB,CAAA;GAEF,oBAAC,YAAD;IAAY,OAAM;IAAiB,WAAW;IAAM,IAAI,EAAE,UAAU,IAAI;IAAE,SAAQ;cAC/E,EAAE,oCAAoC;IAC5B,CAAA;GACZ,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,0BAA0B;IACtB,CAAA;GACT,qBAAC,YAAD;IAAY,OAAM;IAAS,IAAI;KAAE,IAAI;KAAG,UAAU;KAAI;IAAE,SAAQ;cAAhE,CACG,EAAE,uCAAuC,EAC1C,oBAAC,QAAD;KAAM,MAAM;KAAW,IAAI,EAAE,IAAI,GAAG;eACjC,EAAE,yBAAyB;KACvB,CAAA,CACI;;GACA;KACG,CAAA,EACL,CAAA,GACf"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const ChangePassword: React.FC;
3
3
  export default ChangePassword;
@@ -65,7 +65,6 @@ var ChangePassword = () => {
65
65
  if (!changePasswordEnabled) navigate("/");
66
66
  }, [changePasswordEnabled, navigate]);
67
67
  return changePasswordEnabled ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Dialog.default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.SecurityContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_styles.SecurityForm, {
68
- component: "form",
69
68
  onSubmit: handleSubmit(onSubmit),
70
69
  children: [
71
70
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material.Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePassword.js","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChangePassword.js","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":"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"}
@@ -63,7 +63,6 @@ var ChangePassword = () => {
63
63
  if (!changePasswordEnabled) navigate("/");
64
64
  }, [changePasswordEnabled, navigate]);
65
65
  return changePasswordEnabled ? /* @__PURE__ */ jsx(SecurityLayout, { children: /* @__PURE__ */ jsx(SecurityContainer, { children: /* @__PURE__ */ jsxs(SecurityForm, {
66
- component: "form",
67
66
  onSubmit: handleSubmit(onSubmit),
68
67
  children: [
69
68
  /* @__PURE__ */ jsx(Typography, {
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePassword.mjs","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm component=\"form\" onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAM,uBAAiC;CACrC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,wBAAwB,eAAe,OAAO;CAapD,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aAfX,QAAkC;EAC7C,MAAM;EACN,eAAe;GACb,UAAU;GACV,aAAa;GACb,aAAa;GACb,iBAAiB;GAClB;EACD,UAAU,YAAY,qBAAqB;EAC5C,CAAC;CASF,MAAM,EAAE,YAAY,gBAAgC,UAAU,SAAS,gBAAgB,MAAM;CAE7F,MAAM,uBAAuB,YAC3B,OAAO,SAAqD;AAC1D,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAAmC;AACxC,MAAI;AACF,SAAM,qBAAqB,EACzB,UAAU;IACR,KAAK,KAAK;IACV,KAAK,KAAK;IACX,EACF,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,iBAAiB;UAChE;AACN,YAAS,QAAQ;IACf,MAAM;IACN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAsB;EAAU;EAAS,CAC3C;AAED,iBAAgB;AACd,MAAI,CAAC,sBACH,UAAS,IAAI;IAEd,CAAC,uBAAuB,SAAS,CAAC;AAErC,QAAO,wBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,WAAU;EAAO,UAAU,aAAa,SAAS;YAA/D;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,gCAAgC;IACxB,CAAA;GACb,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,UAAU;IAC7B,OAAO,EAAE,mCAAmC;IAC5C,GAAI,SAAS,WAAW;IACxB,UAAU;IACV,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,iBAAiB;IACpC,OAAO,EAAE,0CAA0C;IACnD,GAAI,SAAS,kBAAkB;IAC/B,UAAU;IACV,MAAK;IACL,CAAA;GACD,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,iCAAiC;IAC7B,CAAA;GACI;KACG,CAAA,EACL,CAAA,GACf"}
1
+ {"version":3,"file":"ChangePassword.mjs","names":[],"sources":["../../../src/sections/Security/ChangePassword.tsx"],"sourcesContent":["import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Typography } from '@mui/material';\nimport React, { useCallback, useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router';\n\nimport { useDataMutation } from '../../api/use-data-mutation';\nimport LoginDialogFormError from '../../components/LoginDialog/LoginDialogFormError';\nimport { getConfiguration } from '../../configuration';\nimport SecurityLayout from '../../layouts/Security/Dialog';\nimport { normalizeAuthError } from '../../providers/AuthProvider/utils';\nimport { stripTrailingSlash } from '../../store/utils';\nimport { Route } from '../../utils';\nimport { APIRoute } from '../../utils/routes';\nimport type { ChangePasswordFormValues } from '../../utils/schemas';\nimport { changePasswordSchema } from '../../utils/schemas';\nimport { MessageType } from './Success';\nimport { SecurityContainer, SecurityForm, SecurityTextField } from './styles';\n\nconst ChangePassword: React.FC = () => {\n const { t } = useTranslation();\n const navigate = useNavigate();\n const configuration = getConfiguration();\n const basePath = stripTrailingSlash(configuration.base);\n const changePasswordEnabled = configuration?.flags?.changePassword;\n\n const form = useForm<ChangePasswordFormValues>({\n mode: 'onChange',\n defaultValues: {\n username: '',\n oldPassword: '',\n newPassword: '',\n confirmPassword: '',\n },\n resolver: yupResolver(changePasswordSchema),\n });\n\n const {\n setError,\n handleSubmit,\n register,\n formState: { isValid, errors },\n } = form;\n\n const { trigger } = useDataMutation<{ ok: string }>(basePath, APIRoute.RESET_PASSWORD, 'PUT');\n\n const handleChangePassword = useCallback(\n async (body: { password: { old: string; new: string } }) => {\n try {\n await trigger(body);\n } catch (err) {\n throw normalizeAuthError(err);\n }\n },\n [trigger]\n );\n\n const onSubmit = useCallback(\n async (data: ChangePasswordFormValues) => {\n try {\n await handleChangePassword({\n password: {\n old: data.oldPassword,\n new: data.newPassword,\n },\n });\n navigate(`${Route.SUCCESS}?messageType=${MessageType.ChangePassword}`);\n } catch {\n setError('root', {\n type: 'server',\n message: 'Failed to change password',\n });\n }\n },\n [handleChangePassword, setError, navigate]\n );\n\n useEffect(() => {\n if (!changePasswordEnabled) {\n navigate('/');\n }\n }, [changePasswordEnabled, navigate]);\n\n return changePasswordEnabled ? (\n <SecurityLayout>\n <SecurityContainer>\n <SecurityForm onSubmit={handleSubmit(onSubmit)}>\n <Typography align=\"center\" component=\"h1\" gutterBottom={true} variant=\"h4\">\n {t('security.changePassword.title')}\n </Typography>\n <SecurityTextField\n error={!!errors.username}\n helperText={errors.username?.message}\n label={t('security.changePassword.username')}\n {...register('username')}\n required={true}\n />\n <SecurityTextField\n error={!!errors.oldPassword}\n helperText={errors.oldPassword?.message}\n label={t('security.changePassword.oldPassword')}\n {...register('oldPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.newPassword}\n helperText={errors.newPassword?.message}\n label={t('security.changePassword.newPassword')}\n {...register('newPassword')}\n required={true}\n type=\"password\"\n />\n <SecurityTextField\n error={!!errors.confirmPassword}\n helperText={errors.confirmPassword?.message}\n label={t('security.changePassword.confirmPassword')}\n {...register('confirmPassword')}\n required={true}\n type=\"password\"\n />\n {errors.root && <LoginDialogFormError error={errors.root} />}\n <Button\n color=\"primary\"\n disabled={!isValid}\n fullWidth={true}\n sx={{ mt: 2 }}\n type=\"submit\"\n variant=\"contained\"\n >\n {t('security.changePassword.submit')}\n </Button>\n </SecurityForm>\n </SecurityContainer>\n </SecurityLayout>\n ) : null;\n};\n\nexport default ChangePassword;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAM,uBAAiC;CACrC,MAAM,EAAE,MAAM,gBAAgB;CAC9B,MAAM,WAAW,aAAa;CAC9B,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,WAAW,mBAAmB,cAAc,KAAK;CACvD,MAAM,wBAAwB,eAAe,OAAO;CAapD,MAAM,EACJ,UACA,cACA,UACA,WAAW,EAAE,SAAS,aAfX,QAAkC;EAC7C,MAAM;EACN,eAAe;GACb,UAAU;GACV,aAAa;GACb,aAAa;GACb,iBAAiB;GAClB;EACD,UAAU,YAAY,qBAAqB;EAC5C,CAAC;CASF,MAAM,EAAE,YAAY,gBAAgC,UAAU,SAAS,gBAAgB,MAAM;CAE7F,MAAM,uBAAuB,YAC3B,OAAO,SAAqD;AAC1D,MAAI;AACF,SAAM,QAAQ,KAAK;WACZ,KAAK;AACZ,SAAM,mBAAmB,IAAI;;IAGjC,CAAC,QAAQ,CACV;CAED,MAAM,WAAW,YACf,OAAO,SAAmC;AACxC,MAAI;AACF,SAAM,qBAAqB,EACzB,UAAU;IACR,KAAK,KAAK;IACV,KAAK,KAAK;IACX,EACF,CAAC;AACF,YAAS,GAAG,QAAM,QAAQ,eAAe,YAAY,iBAAiB;UAChE;AACN,YAAS,QAAQ;IACf,MAAM;IACN,SAAS;IACV,CAAC;;IAGN;EAAC;EAAsB;EAAU;EAAS,CAC3C;AAED,iBAAgB;AACd,MAAI,CAAC,sBACH,UAAS,IAAI;IAEd,CAAC,uBAAuB,SAAS,CAAC;AAErC,QAAO,wBACL,oBAAC,gBAAD,EAAA,UACE,oBAAC,mBAAD,EAAA,UACE,qBAAC,cAAD;EAAc,UAAU,aAAa,SAAS;YAA9C;GACE,oBAAC,YAAD;IAAY,OAAM;IAAS,WAAU;IAAK,cAAc;IAAM,SAAQ;cACnE,EAAE,gCAAgC;IACxB,CAAA;GACb,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,UAAU;IAC7B,OAAO,EAAE,mCAAmC;IAC5C,GAAI,SAAS,WAAW;IACxB,UAAU;IACV,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,aAAa;IAChC,OAAO,EAAE,sCAAsC;IAC/C,GAAI,SAAS,cAAc;IAC3B,UAAU;IACV,MAAK;IACL,CAAA;GACF,oBAAC,mBAAD;IACE,OAAO,CAAC,CAAC,OAAO;IAChB,YAAY,OAAO,iBAAiB;IACpC,OAAO,EAAE,0CAA0C;IACnD,GAAI,SAAS,kBAAkB;IAC/B,UAAU;IACV,MAAK;IACL,CAAA;GACD,OAAO,QAAQ,oBAAC,sBAAD,EAAsB,OAAO,OAAO,MAAQ,CAAA;GAC5D,oBAAC,QAAD;IACE,OAAM;IACN,UAAU,CAAC;IACX,WAAW;IACX,IAAI,EAAE,IAAI,GAAG;IACb,MAAK;IACL,SAAQ;cAEP,EAAE,iCAAiC;IAC7B,CAAA;GACI;KACG,CAAA,EACL,CAAA,GACf"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const Login: React.FC;
3
3
  export default Login;
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  export declare enum MessageType {
3
3
  Login = "Login",
4
4
  ChangePassword = "ChangePassword",
@@ -1,3 +1,5 @@
1
- export declare const SecurityContainer: any;
2
- export declare const SecurityForm: any;
3
- export declare const SecurityTextField: any;
1
+ export declare const SecurityContainer: import('@emotion/styled').StyledComponent<import('@mui/system').BoxOwnProps<import('@mui/material').Theme> & Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import('@mui/system').BoxOwnProps<import('@mui/material').Theme>> & import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, {}, {}>;
2
+ export declare const SecurityForm: import('@emotion/styled').StyledComponent<import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, import('react').DetailedHTMLProps<import('react').FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, {}>;
3
+ export declare const SecurityTextField: import('@emotion/styled').StyledComponent<{
4
+ variant?: import('@mui/material').TextFieldVariants | undefined;
5
+ } & Omit<import('@mui/material').OutlinedTextFieldProps | import('@mui/material').FilledTextFieldProps | import('@mui/material').StandardTextFieldProps, "variant"> & import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles/createTheme').Theme>, {}, {}>;
@@ -11,7 +11,7 @@ var SecurityContainer = (0, _mui_material_styles.styled)(_mui_material.Box)(({ t
11
11
  padding: theme.spacing(2),
12
12
  backgroundColor: theme.palette.background.default
13
13
  }));
14
- var SecurityForm = (0, _mui_material_styles.styled)(_mui_material.Box)(({ theme }) => ({
14
+ var SecurityForm = (0, _mui_material_styles.styled)("form")(({ theme }) => ({
15
15
  width: "100%",
16
16
  maxWidth: 420,
17
17
  padding: theme.spacing(4),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled(Box)(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;;AAGA,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,gBAAA,GAAA,qBAAA,QAAsB,cAAA,IAAI,EAAE,EAAE,aAAa;CACtD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
1
+ {"version":3,"file":"styles.js","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled('form')(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;;AAGA,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,gBAAA,GAAA,qBAAA,QAAsB,OAAO,EAAE,EAAE,aAAa;CACzD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,qBAAA,GAAA,qBAAA,QAA2B,cAAA,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
@@ -10,7 +10,7 @@ var SecurityContainer = styled(Box)(({ theme }) => ({
10
10
  padding: theme.spacing(2),
11
11
  backgroundColor: theme.palette.background.default
12
12
  }));
13
- var SecurityForm = styled(Box)(({ theme }) => ({
13
+ var SecurityForm = styled("form")(({ theme }) => ({
14
14
  width: "100%",
15
15
  maxWidth: 420,
16
16
  padding: theme.spacing(4),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.mjs","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled(Box)(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;AAGA,IAAa,oBAAoB,OAAO,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,eAAe,OAAO,IAAI,EAAE,EAAE,aAAa;CACtD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,oBAAoB,OAAO,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
1
+ {"version":3,"file":"styles.mjs","names":[],"sources":["../../../src/sections/Security/styles.ts"],"sourcesContent":["import { Box, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nexport const SecurityContainer = styled(Box)(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '100%',\n padding: theme.spacing(2),\n backgroundColor: theme.palette.background.default,\n}));\n\nexport const SecurityForm = styled('form')(({ theme }) => ({\n width: '100%',\n maxWidth: 420,\n padding: theme.spacing(4),\n backgroundColor: theme.palette.background.paper,\n borderRadius: theme.shape.borderRadius,\n boxShadow: theme.shadows[3],\n}));\n\nexport const SecurityTextField = styled(TextField)(({ theme }) => ({\n width: '100%',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1),\n}));\n"],"mappings":";;;AAGA,IAAa,oBAAoB,OAAO,IAAI,EAAE,EAAE,aAAa;CAC3D,SAAS;CACT,eAAe;CACf,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC3C,EAAE;AAEH,IAAa,eAAe,OAAO,OAAO,EAAE,EAAE,aAAa;CACzD,OAAO;CACP,UAAU;CACV,SAAS,MAAM,QAAQ,EAAE;CACzB,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,cAAc,MAAM,MAAM;CAC1B,WAAW,MAAM,QAAQ;CAC1B,EAAE;AAEH,IAAa,oBAAoB,OAAO,UAAU,EAAE,EAAE,aAAa;CACjE,OAAO;CACP,WAAW,MAAM,QAAQ,EAAE;CAC3B,cAAc,MAAM,QAAQ,EAAE;CAC/B,EAAE"}
@@ -1,3 +1,3 @@
1
- import React from 'react';
1
+ import { default as React } from 'react';
2
2
  declare const DetailSidebar: React.FC;
3
3
  export default DetailSidebar;
@@ -1,4 +1,4 @@
1
- import type { TemplateUIOptions } from '@verdaccio/types';
1
+ import { TemplateUIOptions } from '@verdaccio/types';
2
2
  declare global {
3
3
  interface Window {
4
4
  /**