@verdaccio/ui-components 5.0.0-next-9.24 → 5.0.0-next-9.26

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 (296) hide show
  1. package/README.md +20 -0
  2. package/build/api/use-data.d.ts +2 -2
  3. package/build/api/use-data.js +2 -2
  4. package/build/api/use-data.js.map +1 -1
  5. package/build/api/use-data.mjs +2 -2
  6. package/build/api/use-data.mjs.map +1 -1
  7. package/build/components/CopyClipboard/CopyToClipBoard.d.ts +1 -0
  8. package/build/components/CopyClipboard/CopyToClipBoard.js +36 -17
  9. package/build/components/CopyClipboard/CopyToClipBoard.js.map +1 -1
  10. package/build/components/CopyClipboard/CopyToClipBoard.mjs +36 -19
  11. package/build/components/CopyClipboard/CopyToClipBoard.mjs.map +1 -1
  12. package/build/components/CopyClipboard/utils.d.ts +2 -1
  13. package/build/components/CopyClipboard/utils.js +6 -4
  14. package/build/components/CopyClipboard/utils.js.map +1 -1
  15. package/build/components/CopyClipboard/utils.mjs +6 -4
  16. package/build/components/CopyClipboard/utils.mjs.map +1 -1
  17. package/build/components/DocsLink/DocsLink.d.ts +8 -0
  18. package/build/components/DocsLink/DocsLink.js +40 -0
  19. package/build/components/DocsLink/DocsLink.js.map +1 -0
  20. package/build/components/DocsLink/DocsLink.mjs +35 -0
  21. package/build/components/DocsLink/DocsLink.mjs.map +1 -0
  22. package/build/components/DocsLink/index.d.ts +1 -0
  23. package/build/components/DocsLink/index.js +3 -0
  24. package/build/components/DocsLink/index.mjs +1 -0
  25. package/build/components/Help/Help.d.ts +13 -0
  26. package/build/components/Help/Help.js +280 -36
  27. package/build/components/Help/Help.js.map +1 -1
  28. package/build/components/Help/Help.mjs +274 -39
  29. package/build/components/Help/Help.mjs.map +1 -1
  30. package/build/components/Help/styles.d.ts +29 -0
  31. package/build/components/Help/styles.js +86 -1
  32. package/build/components/Help/styles.js.map +1 -1
  33. package/build/components/Help/styles.mjs +82 -2
  34. package/build/components/Help/styles.mjs.map +1 -1
  35. package/build/components/Icons/Managers/Bun.d.ts +2 -0
  36. package/build/components/Icons/Managers/Bun2.js +18 -0
  37. package/build/components/Icons/Managers/Bun2.js.map +1 -0
  38. package/build/components/Icons/Managers/Bun2.mjs +16 -0
  39. package/build/components/Icons/Managers/Bun2.mjs.map +1 -0
  40. package/build/components/Icons/Managers/bun.js +6 -0
  41. package/build/components/Icons/Managers/bun.js.map +1 -0
  42. package/build/components/Icons/Managers/bun.mjs +6 -0
  43. package/build/components/Icons/Managers/bun.mjs.map +1 -0
  44. package/build/components/Icons/Managers/bun.svg +1 -0
  45. package/build/components/Icons/Managers/index.d.ts +1 -0
  46. package/build/components/Icons/Managers/index.js +2 -0
  47. package/build/components/Icons/Managers/index.mjs +2 -1
  48. package/build/components/Icons/index.js +3 -0
  49. package/build/components/Icons/index.mjs +3 -1
  50. package/build/components/Install/Install.d.ts +2 -0
  51. package/build/components/Install/Install.js +30 -2
  52. package/build/components/Install/Install.js.map +1 -1
  53. package/build/components/Install/Install.mjs +30 -3
  54. package/build/components/Install/Install.mjs.map +1 -1
  55. package/build/components/Install/InstallListItem.d.ts +2 -1
  56. package/build/components/Install/InstallListItem.js +17 -0
  57. package/build/components/Install/InstallListItem.js.map +1 -1
  58. package/build/components/Install/InstallListItem.mjs +17 -0
  59. package/build/components/Install/InstallListItem.mjs.map +1 -1
  60. package/build/components/Loading/PackageListSkeleton.d.ts +3 -0
  61. package/build/components/Loading/PackageListSkeleton.js +70 -0
  62. package/build/components/Loading/PackageListSkeleton.js.map +1 -0
  63. package/build/components/Loading/PackageListSkeleton.mjs +65 -0
  64. package/build/components/Loading/PackageListSkeleton.mjs.map +1 -0
  65. package/build/components/Loading/VersionSkeleton.d.ts +3 -0
  66. package/build/components/Loading/VersionSkeleton.js +119 -0
  67. package/build/components/Loading/VersionSkeleton.js.map +1 -0
  68. package/build/components/Loading/VersionSkeleton.mjs +111 -0
  69. package/build/components/Loading/VersionSkeleton.mjs.map +1 -0
  70. package/build/components/Loading/index.d.ts +2 -0
  71. package/build/components/Loading/index.js +4 -0
  72. package/build/components/Loading/index.mjs +4 -1
  73. package/build/components/Package/Package.js +5 -1
  74. package/build/components/Package/Package.js.map +1 -1
  75. package/build/components/Package/Package.mjs +6 -2
  76. package/build/components/Package/Package.mjs.map +1 -1
  77. package/build/components/Package/styles.d.ts +3 -0
  78. package/build/components/Package/styles.js +8 -0
  79. package/build/components/Package/styles.js.map +1 -1
  80. package/build/components/Package/styles.mjs +8 -1
  81. package/build/components/Package/styles.mjs.map +1 -1
  82. package/build/components/PackageList/PackageList.js +4 -4
  83. package/build/components/PackageList/PackageList.js.map +1 -1
  84. package/build/components/PackageList/PackageList.mjs +5 -5
  85. package/build/components/PackageList/PackageList.mjs.map +1 -1
  86. package/build/components/PackageList/PackageListToolbar.d.ts +15 -0
  87. package/build/components/PackageList/PackageListToolbar.js +127 -0
  88. package/build/components/PackageList/PackageListToolbar.js.map +1 -0
  89. package/build/components/PackageList/PackageListToolbar.mjs +119 -0
  90. package/build/components/PackageList/PackageListToolbar.mjs.map +1 -0
  91. package/build/components/PackageList/filterPackages.d.ts +16 -0
  92. package/build/components/PackageList/filterPackages.js +37 -0
  93. package/build/components/PackageList/filterPackages.js.map +1 -0
  94. package/build/components/PackageList/filterPackages.mjs +34 -0
  95. package/build/components/PackageList/filterPackages.mjs.map +1 -0
  96. package/build/components/RegistryInfoDialog/RegistryInfoDialog.js +18 -7
  97. package/build/components/RegistryInfoDialog/RegistryInfoDialog.js.map +1 -1
  98. package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs +18 -7
  99. package/build/components/RegistryInfoDialog/RegistryInfoDialog.mjs.map +1 -1
  100. package/build/components/RegistryInfoDialog/types.d.ts +1 -0
  101. package/build/components/Search/AutoComplete/AutoComplete.d.ts +3 -0
  102. package/build/components/Search/AutoComplete/AutoComplete.js +3 -1
  103. package/build/components/Search/AutoComplete/AutoComplete.js.map +1 -1
  104. package/build/components/Search/AutoComplete/AutoComplete.mjs +3 -1
  105. package/build/components/Search/AutoComplete/AutoComplete.mjs.map +1 -1
  106. package/build/components/Search/Search.js +28 -1
  107. package/build/components/Search/Search.js.map +1 -1
  108. package/build/components/Search/Search.mjs +31 -5
  109. package/build/components/Search/Search.mjs.map +1 -1
  110. package/build/components/Search/SearchItem.d.ts +12 -1
  111. package/build/components/Search/SearchItem.js +53 -70
  112. package/build/components/Search/SearchItem.js.map +1 -1
  113. package/build/components/Search/SearchItem.mjs +51 -67
  114. package/build/components/Search/SearchItem.mjs.map +1 -1
  115. package/build/components/Search/utils.d.ts +10 -0
  116. package/build/components/Search/utils.js +28 -1
  117. package/build/components/Search/utils.js.map +1 -1
  118. package/build/components/Search/utils.mjs +26 -2
  119. package/build/components/Search/utils.mjs.map +1 -1
  120. package/build/components/SettingsMenu/SettingsMenu.js +2 -2
  121. package/build/components/SettingsMenu/SettingsMenu.mjs +1 -1
  122. package/build/components/Versions/Versions.js +8 -2
  123. package/build/components/Versions/Versions.js.map +1 -1
  124. package/build/components/Versions/Versions.mjs +8 -2
  125. package/build/components/Versions/Versions.mjs.map +1 -1
  126. package/build/components/VisuallyHidden/index.d.ts +5 -0
  127. package/build/components/VisuallyHidden/index.js +17 -0
  128. package/build/components/VisuallyHidden/index.js.map +1 -0
  129. package/build/components/VisuallyHidden/index.mjs +15 -0
  130. package/build/components/VisuallyHidden/index.mjs.map +1 -0
  131. package/build/configuration.js +2 -1
  132. package/build/configuration.js.map +1 -1
  133. package/build/configuration.mjs +2 -1
  134. package/build/configuration.mjs.map +1 -1
  135. package/build/i18n/crowdin/ui.js +68 -11
  136. package/build/i18n/crowdin/ui.js.map +1 -1
  137. package/build/i18n/crowdin/ui.json +64 -11
  138. package/build/i18n/crowdin/ui.mjs +67 -12
  139. package/build/i18n/crowdin/ui.mjs.map +1 -1
  140. package/build/i18n/download_translations/cs-CZ/ui.js +68 -11
  141. package/build/i18n/download_translations/cs-CZ/ui.js.map +1 -1
  142. package/build/i18n/download_translations/cs-CZ/ui.json +64 -11
  143. package/build/i18n/download_translations/cs-CZ/ui.mjs +67 -12
  144. package/build/i18n/download_translations/cs-CZ/ui.mjs.map +1 -1
  145. package/build/i18n/download_translations/de-DE/ui.js +68 -11
  146. package/build/i18n/download_translations/de-DE/ui.js.map +1 -1
  147. package/build/i18n/download_translations/de-DE/ui.json +64 -11
  148. package/build/i18n/download_translations/de-DE/ui.mjs +67 -12
  149. package/build/i18n/download_translations/de-DE/ui.mjs.map +1 -1
  150. package/build/i18n/download_translations/es-ES/ui.js +68 -11
  151. package/build/i18n/download_translations/es-ES/ui.js.map +1 -1
  152. package/build/i18n/download_translations/es-ES/ui.json +64 -11
  153. package/build/i18n/download_translations/es-ES/ui.mjs +67 -12
  154. package/build/i18n/download_translations/es-ES/ui.mjs.map +1 -1
  155. package/build/i18n/download_translations/fr-FR/ui.js +68 -11
  156. package/build/i18n/download_translations/fr-FR/ui.js.map +1 -1
  157. package/build/i18n/download_translations/fr-FR/ui.json +64 -11
  158. package/build/i18n/download_translations/fr-FR/ui.mjs +67 -12
  159. package/build/i18n/download_translations/fr-FR/ui.mjs.map +1 -1
  160. package/build/i18n/download_translations/ga-IE/ui.js +68 -11
  161. package/build/i18n/download_translations/ga-IE/ui.js.map +1 -1
  162. package/build/i18n/download_translations/ga-IE/ui.json +64 -11
  163. package/build/i18n/download_translations/ga-IE/ui.mjs +67 -12
  164. package/build/i18n/download_translations/ga-IE/ui.mjs.map +1 -1
  165. package/build/i18n/download_translations/gl-ES/ui.js +68 -11
  166. package/build/i18n/download_translations/gl-ES/ui.js.map +1 -1
  167. package/build/i18n/download_translations/gl-ES/ui.json +64 -11
  168. package/build/i18n/download_translations/gl-ES/ui.mjs +67 -12
  169. package/build/i18n/download_translations/gl-ES/ui.mjs.map +1 -1
  170. package/build/i18n/download_translations/it-IT/ui.js +68 -11
  171. package/build/i18n/download_translations/it-IT/ui.js.map +1 -1
  172. package/build/i18n/download_translations/it-IT/ui.json +64 -11
  173. package/build/i18n/download_translations/it-IT/ui.mjs +67 -12
  174. package/build/i18n/download_translations/it-IT/ui.mjs.map +1 -1
  175. package/build/i18n/download_translations/ko-KR/ui.js +68 -11
  176. package/build/i18n/download_translations/ko-KR/ui.js.map +1 -1
  177. package/build/i18n/download_translations/ko-KR/ui.json +64 -11
  178. package/build/i18n/download_translations/ko-KR/ui.mjs +67 -12
  179. package/build/i18n/download_translations/ko-KR/ui.mjs.map +1 -1
  180. package/build/i18n/download_translations/pl-PL/ui.js +68 -11
  181. package/build/i18n/download_translations/pl-PL/ui.js.map +1 -1
  182. package/build/i18n/download_translations/pl-PL/ui.json +64 -11
  183. package/build/i18n/download_translations/pl-PL/ui.mjs +67 -12
  184. package/build/i18n/download_translations/pl-PL/ui.mjs.map +1 -1
  185. package/build/i18n/download_translations/pt-BR/ui.js +68 -11
  186. package/build/i18n/download_translations/pt-BR/ui.js.map +1 -1
  187. package/build/i18n/download_translations/pt-BR/ui.json +64 -11
  188. package/build/i18n/download_translations/pt-BR/ui.mjs +67 -12
  189. package/build/i18n/download_translations/pt-BR/ui.mjs.map +1 -1
  190. package/build/i18n/download_translations/ru-RU/ui.js +68 -11
  191. package/build/i18n/download_translations/ru-RU/ui.js.map +1 -1
  192. package/build/i18n/download_translations/ru-RU/ui.json +64 -11
  193. package/build/i18n/download_translations/ru-RU/ui.mjs +67 -12
  194. package/build/i18n/download_translations/ru-RU/ui.mjs.map +1 -1
  195. package/build/i18n/download_translations/sr-CS/ui.js +66 -12
  196. package/build/i18n/download_translations/sr-CS/ui.js.map +1 -1
  197. package/build/i18n/download_translations/sr-CS/ui.json +64 -11
  198. package/build/i18n/download_translations/sr-CS/ui.mjs +66 -13
  199. package/build/i18n/download_translations/sr-CS/ui.mjs.map +1 -1
  200. package/build/i18n/download_translations/tr-TR/ui.js +68 -11
  201. package/build/i18n/download_translations/tr-TR/ui.js.map +1 -1
  202. package/build/i18n/download_translations/tr-TR/ui.json +64 -11
  203. package/build/i18n/download_translations/tr-TR/ui.mjs +67 -12
  204. package/build/i18n/download_translations/tr-TR/ui.mjs.map +1 -1
  205. package/build/i18n/download_translations/vi-VN/ui.js +66 -12
  206. package/build/i18n/download_translations/vi-VN/ui.js.map +1 -1
  207. package/build/i18n/download_translations/vi-VN/ui.json +64 -11
  208. package/build/i18n/download_translations/vi-VN/ui.mjs +66 -13
  209. package/build/i18n/download_translations/vi-VN/ui.mjs.map +1 -1
  210. package/build/i18n/download_translations/yo-NG/ui.js +66 -12
  211. package/build/i18n/download_translations/yo-NG/ui.js.map +1 -1
  212. package/build/i18n/download_translations/yo-NG/ui.json +64 -11
  213. package/build/i18n/download_translations/yo-NG/ui.mjs +66 -13
  214. package/build/i18n/download_translations/yo-NG/ui.mjs.map +1 -1
  215. package/build/i18n/download_translations/zh-CN/ui.js +68 -11
  216. package/build/i18n/download_translations/zh-CN/ui.js.map +1 -1
  217. package/build/i18n/download_translations/zh-CN/ui.json +64 -11
  218. package/build/i18n/download_translations/zh-CN/ui.mjs +67 -12
  219. package/build/i18n/download_translations/zh-CN/ui.mjs.map +1 -1
  220. package/build/i18n/download_translations/zh-TW/ui.js +68 -11
  221. package/build/i18n/download_translations/zh-TW/ui.js.map +1 -1
  222. package/build/i18n/download_translations/zh-TW/ui.json +64 -11
  223. package/build/i18n/download_translations/zh-TW/ui.mjs +67 -12
  224. package/build/i18n/download_translations/zh-TW/ui.mjs.map +1 -1
  225. package/build/i18n/loadTranslationFile.d.ts +2 -2
  226. package/build/i18n/loadTranslationFile.js +2 -2
  227. package/build/i18n/loadTranslationFile.js.map +1 -1
  228. package/build/i18n/loadTranslationFile.mjs +2 -2
  229. package/build/i18n/loadTranslationFile.mjs.map +1 -1
  230. package/build/index.d.ts +1 -0
  231. package/build/index.js +8 -0
  232. package/build/index.mjs +4 -2
  233. package/build/mockServiceWorker.js +1 -0
  234. package/build/pages/Version/Version.js +2 -2
  235. package/build/pages/Version/Version.js.map +1 -1
  236. package/build/pages/Version/Version.mjs +2 -2
  237. package/build/pages/Version/Version.mjs.map +1 -1
  238. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js +3 -1
  239. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.js.map +1 -1
  240. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.mjs +3 -1
  241. package/build/providers/AppConfigurationProvider/AppConfigurationProvider.mjs.map +1 -1
  242. package/build/providers/ManifestsProvider/ManifestsProvider.d.ts +3 -0
  243. package/build/providers/ManifestsProvider/ManifestsProvider.js +9 -2
  244. package/build/providers/ManifestsProvider/ManifestsProvider.js.map +1 -1
  245. package/build/providers/ManifestsProvider/ManifestsProvider.mjs +10 -4
  246. package/build/providers/ManifestsProvider/ManifestsProvider.mjs.map +1 -1
  247. package/build/sections/Detail/ContainerContent.js +8 -0
  248. package/build/sections/Detail/ContainerContent.js.map +1 -1
  249. package/build/sections/Detail/ContainerContent.mjs +8 -1
  250. package/build/sections/Detail/ContainerContent.mjs.map +1 -1
  251. package/build/sections/Detail/Detail.d.ts +3 -6
  252. package/build/sections/Detail/Detail.js +13 -14
  253. package/build/sections/Detail/Detail.js.map +1 -1
  254. package/build/sections/Detail/Detail.mjs +14 -15
  255. package/build/sections/Detail/Detail.mjs.map +1 -1
  256. package/build/sections/Detail/Tabs.d.ts +3 -2
  257. package/build/sections/Detail/Tabs.js +9 -4
  258. package/build/sections/Detail/Tabs.js.map +1 -1
  259. package/build/sections/Detail/Tabs.mjs +9 -4
  260. package/build/sections/Detail/Tabs.mjs.map +1 -1
  261. package/build/sections/Footer/Footer.js +24 -3
  262. package/build/sections/Footer/Footer.js.map +1 -1
  263. package/build/sections/Footer/Footer.mjs +24 -4
  264. package/build/sections/Footer/Footer.mjs.map +1 -1
  265. package/build/sections/Footer/styles.d.ts +6 -0
  266. package/build/sections/Footer/styles.js +21 -2
  267. package/build/sections/Footer/styles.js.map +1 -1
  268. package/build/sections/Footer/styles.mjs +21 -3
  269. package/build/sections/Footer/styles.mjs.map +1 -1
  270. package/build/sections/Header/HeaderSettingsDialog.js +39 -10
  271. package/build/sections/Header/HeaderSettingsDialog.js.map +1 -1
  272. package/build/sections/Header/HeaderSettingsDialog.mjs +39 -10
  273. package/build/sections/Header/HeaderSettingsDialog.mjs.map +1 -1
  274. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.d.ts +1 -4
  275. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js +98 -15
  276. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.js.map +1 -1
  277. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs +100 -15
  278. package/build/sections/Header/RegistryInfoContent/RegistryInfoContent.mjs.map +1 -1
  279. package/build/sections/Home/Home.js +58 -2
  280. package/build/sections/Home/Home.js.map +1 -1
  281. package/build/sections/Home/Home.mjs +60 -4
  282. package/build/sections/Home/Home.mjs.map +1 -1
  283. package/build/utils/cli-utils.d.ts +10 -0
  284. package/build/utils/cli-utils.js +26 -0
  285. package/build/utils/cli-utils.js.map +1 -1
  286. package/build/utils/cli-utils.mjs +23 -1
  287. package/build/utils/cli-utils.mjs.map +1 -1
  288. package/build/utils/index.d.ts +1 -1
  289. package/build/utils/index.js +4 -0
  290. package/build/utils/index.mjs +2 -2
  291. package/build/utils/markdown.d.ts +6 -0
  292. package/build/utils/markdown.js +16 -0
  293. package/build/utils/markdown.js.map +1 -0
  294. package/build/utils/markdown.mjs +13 -0
  295. package/build/utils/markdown.mjs.map +1 -0
  296. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderSettingsDialog.mjs","names":[],"sources":["../../../src/sections/Header/HeaderSettingsDialog.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport type { Theme } from '../../';\nimport RegistryInfoDialog from '../../components/RegistryInfoDialog';\nimport { getConfiguration } from '../../configuration';\nimport LanguageSwitch from './LanguageSwitch';\nimport RegistryInfoContent from './RegistryInfoContent';\n\ninterface Props {\n isOpen: boolean;\n onCloseDialog: () => void;\n}\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n <div\n aria-labelledby={`simple-tab-${index}`}\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n role=\"tabpanel\"\n {...other}\n >\n {value === index && <Box sx={{ paddingTop: 3 }}>{children}</Box>}\n </div>\n );\n}\n\nconst TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n padding: '10px 0',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst HeaderSettingsDialog: React.FC<Props> = ({ onCloseDialog, isOpen }) => {\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event, newValue) => {\n setValue(newValue);\n };\n const configStore = getConfiguration();\n const { scope, base } = configStore;\n const { t } = useTranslation();\n return (\n <RegistryInfoDialog onClose={onCloseDialog} open={isOpen} title={t('dialog.settings.title')}>\n <Box sx={{ width: '100%' }}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <Tabs aria-label=\"basic tabs example\" onChange={handleChange} value={value}>\n <Tab label={t('packageManagers.title')} {...a11yProps(0)} />\n <Tab label={t('language.title')} {...a11yProps(1)} />\n </Tabs>\n </Box>\n <TabPanel index={0} value={value}>\n <RegistryInfoContent registryUrl={base} scope={scope} />\n </TabPanel>\n <TabPanel index={1} value={value}>\n <TextContent>{t('language.description')}</TextContent>\n <LanguageSwitch />\n <ReactMarkdown>{t('language.contribute')}</ReactMarkdown>\n </TabPanel>\n </Box>\n </RegistryInfoDialog>\n );\n};\n\nexport default HeaderSettingsDialog;\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,SAAS,UAAU,OAAO;CACxB,OAAO;EACL,IAAI,cAAc;EAClB,iBAAiB,mBAAmB;CACtC;AACF;AAEA,SAAS,SAAS,OAAO;CACvB,MAAM,EAAE,UAAU,OAAO,OAAO,GAAG,UAAU;CAE7C,OACE,oBAAC,OAAD;EACE,mBAAiB,cAAc;EAC/B,QAAQ,UAAU;EAClB,IAAI,mBAAmB;EACvB,MAAK;EACL,GAAI;EAEH,UAAA,UAAU,SAAS,oBAAC,KAAD;GAAK,IAAI,EAAE,YAAY,EAAE;GAAI;EAAc,CAAA;CAC5D,CAAA;AAET;AAEA,IAAM,cAAc,OAAO,KAAK,CAAC,EAAqB,EAAE,aAAa;CACnE,SAAS;CACT,iBAAiB,MAAM,QAAQ,WAAW;AAC5C,EAAE;AAEF,IAAM,wBAAyC,EAAE,eAAe,aAAa;CAC3E,MAAM,CAAC,OAAO,YAAY,MAAM,SAAS,CAAC;CAE1C,MAAM,gBAAgB,QAAQ,aAAa;EACzC,SAAS,QAAQ;CACnB;CAEA,MAAM,EAAE,OAAO,SADK,iBACI;CACxB,MAAM,EAAE,MAAM,eAAe;CAC7B,OACE,oBAAC,oBAAD;EAAoB,SAAS;EAAe,MAAM;EAAQ,OAAO,EAAE,uBAAuB;EACxF,UAAA,qBAAC,KAAD;GAAK,IAAI,EAAE,OAAO,OAAO;GAAzB,UAAA;IACE,oBAAC,KAAD;KAAK,IAAI;MAAE,cAAc;MAAG,aAAa;KAAU;KACjD,UAAA,qBAAC,MAAD;MAAM,cAAW;MAAqB,UAAU;MAAqB;MAArE,UAAA,CACE,oBAAC,KAAD;OAAK,OAAO,EAAE,uBAAuB;OAAG,GAAI,UAAU,CAAC;MAAI,CAAA,GAC3D,oBAAC,KAAD;OAAK,OAAO,EAAE,gBAAgB;OAAG,GAAI,UAAU,CAAC;MAAI,CAAA,CAChD;;IACH,CAAA;IACL,oBAAC,UAAD;KAAU,OAAO;KAAU;KACzB,UAAA,oBAAC,qBAAD;MAAqB,aAAa;MAAa;KAAQ,CAAA;IAC/C,CAAA;IACV,qBAAC,UAAD;KAAU,OAAO;KAAU;KAA3B,UAAA;MACE,oBAAC,aAAD,EAAA,UAAc,EAAE,sBAAsB,EAAe,CAAA;MACrD,oBAAC,gBAAD,CAAiB,CAAA;MACjB,oBAAC,eAAD,EAAA,UAAgB,EAAE,qBAAqB,EAAiB,CAAA;KAChD;;GACP;;CACa,CAAA;AAExB"}
1
+ {"version":3,"file":"HeaderSettingsDialog.mjs","names":[],"sources":["../../../src/sections/Header/HeaderSettingsDialog.tsx"],"sourcesContent":["import styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport Tabs from '@mui/material/Tabs';\nimport React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ReactMarkdown from 'react-markdown';\n\nimport type { Theme } from '../../';\nimport { VERDACCIO_DOCS_URL } from '../../components/DocsLink';\nimport { CustomHelp, HelpGuide } from '../../components/Help/Help';\nimport RegistryInfoDialog from '../../components/RegistryInfoDialog';\nimport { getConfiguration } from '../../configuration';\nimport { useConfig } from '../../providers';\nimport { externalLinkComponents } from '../../utils/markdown';\nimport LanguageSwitch from './LanguageSwitch';\nimport RegistryInfoContent from './RegistryInfoContent';\n\ninterface Props {\n isOpen: boolean;\n onCloseDialog: () => void;\n}\n\nfunction a11yProps(index) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\nfunction TabPanel(props) {\n const { children, value, index, ...other } = props;\n\n return (\n <div\n aria-labelledby={`simple-tab-${index}`}\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n role=\"tabpanel\"\n {...other}\n >\n {value === index && <Box sx={{ paddingTop: 3, paddingBottom: 3 }}>{children}</Box>}\n </div>\n );\n}\n\nconst TextContent = styled('div')<{ theme?: Theme }>(({ theme }) => ({\n padding: '10px 0',\n backgroundColor: theme.palette.background.default,\n}));\n\nconst HeaderSettingsDialog: React.FC<Props> = ({ onCloseDialog, isOpen }) => {\n const [value, setValue] = React.useState(0);\n\n const handleChange = (_event, newValue) => {\n setValue(newValue);\n };\n const configStore = getConfiguration();\n const { scope, base } = configStore;\n const { t } = useTranslation();\n const { configOptions } = useConfig();\n const customHelp = configOptions.help?.trim();\n return (\n <RegistryInfoDialog\n docsUrl={VERDACCIO_DOCS_URL}\n onClose={onCloseDialog}\n open={isOpen}\n title={t('dialog.settings.title')}\n >\n <Box sx={{ width: '100%' }}>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <Tabs aria-label=\"basic tabs example\" onChange={handleChange} value={value}>\n <Tab label={t('packageManagers.title')} {...a11yProps(0)} />\n <Tab\n data-testid=\"settings-publish-tab\"\n label={t('help.settings-tab')}\n {...a11yProps(1)}\n />\n <Tab label={t('language.title')} {...a11yProps(2)} />\n </Tabs>\n </Box>\n <TabPanel index={0} value={value}>\n <RegistryInfoContent registryUrl={base} scope={scope} />\n </TabPanel>\n {/* the welcome guide stays reachable once the registry has packages */}\n <TabPanel data-testid=\"settings-publish\" index={1} value={value}>\n {customHelp ? <CustomHelp markdown={customHelp} /> : <HelpGuide />}\n </TabPanel>\n <TabPanel index={2} value={value}>\n <TextContent>{t('language.description')}</TextContent>\n <LanguageSwitch />\n <ReactMarkdown components={externalLinkComponents}>\n {t('language.contribute')}\n </ReactMarkdown>\n </TabPanel>\n </Box>\n </RegistryInfoDialog>\n );\n};\n\nexport default HeaderSettingsDialog;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAuBA,SAAS,UAAU,OAAO;CACxB,OAAO;EACL,IAAI,cAAc;EAClB,iBAAiB,mBAAmB;CACtC;AACF;AAEA,SAAS,SAAS,OAAO;CACvB,MAAM,EAAE,UAAU,OAAO,OAAO,GAAG,UAAU;CAE7C,OACE,oBAAC,OAAD;EACE,mBAAiB,cAAc;EAC/B,QAAQ,UAAU;EAClB,IAAI,mBAAmB;EACvB,MAAK;EACL,GAAI;EAEH,UAAA,UAAU,SAAS,oBAAC,KAAD;GAAK,IAAI;IAAE,YAAY;IAAG,eAAe;GAAE;GAAI;EAAc,CAAA;CAC9E,CAAA;AAET;AAEA,IAAM,cAAc,OAAO,KAAK,CAAC,EAAqB,EAAE,aAAa;CACnE,SAAS;CACT,iBAAiB,MAAM,QAAQ,WAAW;AAC5C,EAAE;AAEF,IAAM,wBAAyC,EAAE,eAAe,aAAa;CAC3E,MAAM,CAAC,OAAO,YAAY,MAAM,SAAS,CAAC;CAE1C,MAAM,gBAAgB,QAAQ,aAAa;EACzC,SAAS,QAAQ;CACnB;CAEA,MAAM,EAAE,OAAO,SADK,iBACI;CACxB,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,aAAa,cAAc,MAAM,KAAK;CAC5C,OACE,oBAAC,oBAAD;EACE,SAAS;EACT,SAAS;EACT,MAAM;EACN,OAAO,EAAE,uBAAuB;EAEhC,UAAA,qBAAC,KAAD;GAAK,IAAI,EAAE,OAAO,OAAO;GAAzB,UAAA;IACE,oBAAC,KAAD;KAAK,IAAI;MAAE,cAAc;MAAG,aAAa;KAAU;KACjD,UAAA,qBAAC,MAAD;MAAM,cAAW;MAAqB,UAAU;MAAqB;MAArE,UAAA;OACE,oBAAC,KAAD;QAAK,OAAO,EAAE,uBAAuB;QAAG,GAAI,UAAU,CAAC;OAAI,CAAA;OAC3D,oBAAC,KAAD;QACE,eAAY;QACZ,OAAO,EAAE,mBAAmB;QAC5B,GAAI,UAAU,CAAC;OAChB,CAAA;OACD,oBAAC,KAAD;QAAK,OAAO,EAAE,gBAAgB;QAAG,GAAI,UAAU,CAAC;OAAI,CAAA;MAChD;;IACH,CAAA;IACL,oBAAC,UAAD;KAAU,OAAO;KAAU;KACzB,UAAA,oBAAC,qBAAD;MAAqB,aAAa;MAAa;KAAQ,CAAA;IAC/C,CAAA;IAEV,oBAAC,UAAD;KAAU,eAAY;KAAmB,OAAO;KAAU;KACvD,UAAA,aAAa,oBAAC,YAAD,EAAY,UAAU,WAAa,CAAA,IAAI,oBAAC,WAAD,CAAY,CAAA;IACzD,CAAA;IACV,qBAAC,UAAD;KAAU,OAAO;KAAU;KAA3B,UAAA;MACE,oBAAC,aAAD,EAAA,UAAc,EAAE,sBAAsB,EAAe,CAAA;MACrD,oBAAC,gBAAD,CAAiB,CAAA;MACjB,oBAAC,eAAD;OAAe,YAAY;OACxB,UAAA,EAAE,qBAAqB;MACX,CAAA;KACP;;GACP;;CACa,CAAA;AAExB"}
@@ -4,6 +4,7 @@ export declare const NODE_MANAGER: {
4
4
  npm: string;
5
5
  yarn: string;
6
6
  pnpm: string;
7
+ bun: string;
7
8
  };
8
9
  export declare const AccordionContainer: import("@emotion/styled").StyledComponent<{
9
10
  theme?: import("@emotion/react").Theme;
@@ -13,10 +14,6 @@ export declare const CommandContainer: import("@emotion/styled").StyledComponent
13
14
  theme?: import("@emotion/react").Theme;
14
15
  as?: React.ElementType;
15
16
  }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
16
- export declare const LinkContainer: import("@emotion/styled").StyledComponent<{
17
- theme?: import("@emotion/react").Theme;
18
- as?: React.ElementType;
19
- }, React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
20
17
  export type Props = {
21
18
  registryUrl: string;
22
19
  scope: string | undefined;
@@ -2,6 +2,7 @@ const require_runtime = require("../../../_virtual/_rolldown/runtime.js");
2
2
  const require_CopyToClipBoard = require("../../../components/CopyClipboard/CopyToClipBoard.js");
3
3
  const require_cli_utils = require("../../../utils/cli-utils.js");
4
4
  const require_AppConfigurationProvider = require("../../../providers/AppConfigurationProvider/AppConfigurationProvider.js");
5
+ const require_markdown = require("../../../utils/markdown.js");
5
6
  const require_styles = require("./styles.js");
6
7
  require("../../../index.js");
7
8
  let _emotion_styled = require("@emotion/styled");
@@ -12,8 +13,6 @@ let react_i18next = require("react-i18next");
12
13
  let react_jsx_runtime = require("react/jsx-runtime");
13
14
  let _mui_material_Box = require("@mui/material/Box");
14
15
  _mui_material_Box = require_runtime.__toESM(_mui_material_Box);
15
- let _mui_material_Link = require("@mui/material/Link");
16
- _mui_material_Link = require_runtime.__toESM(_mui_material_Link);
17
16
  let _mui_material_Typography = require("@mui/material/Typography");
18
17
  _mui_material_Typography = require_runtime.__toESM(_mui_material_Typography);
19
18
  let react_markdown = require("react-markdown");
@@ -30,7 +29,8 @@ _mui_material_AccordionSummary = require_runtime.__toESM(_mui_material_Accordion
30
29
  var NODE_MANAGER = {
31
30
  npm: "npm",
32
31
  yarn: "yarn",
33
- pnpm: "pnpm"
32
+ pnpm: "pnpm",
33
+ bun: "bun"
34
34
  };
35
35
  var renderNpmTab = (scope, registryUrl) => {
36
36
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Box.default, {
@@ -92,22 +92,59 @@ var renderYarnBerryTab = (scope, registryUrl) => {
92
92
  })
93
93
  });
94
94
  };
95
+ var renderBunTab = (scope, registryUrl) => {
96
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Box.default, {
97
+ display: "flex",
98
+ flexDirection: "column",
99
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CopyToClipBoard.default, {
100
+ dataTestId: "copy",
101
+ text: require_cli_utils.getBunfigRegistry(scope, registryUrl)
102
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CopyToClipBoard.default, {
103
+ dataTestId: "copy",
104
+ text: require_cli_utils.getCLISetRegistry(`${NODE_MANAGER.bun} publish`, registryUrl)
105
+ })]
106
+ });
107
+ };
108
+ var PLACEHOLDER_SCOPE = "@your-scope";
109
+ var renderMinReleaseAgeTab = (managers, scope, t) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Box.default, {
110
+ display: "flex",
111
+ flexDirection: "column",
112
+ children: managers.map((manager) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Box.default, {
113
+ "data-testid": `min-release-age-${manager}`,
114
+ sx: { mb: 2 },
115
+ children: [
116
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Typography.default, {
117
+ sx: { fontWeight: "bold" },
118
+ children: manager
119
+ }),
120
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: t(`packageManagers.minReleaseAge.${manager}`) }),
121
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_CopyToClipBoard.default, {
122
+ dataTestId: "copy",
123
+ text: require_cli_utils.getMinReleaseAgeConfig(manager, scope)
124
+ })
125
+ ]
126
+ }, manager))
127
+ });
95
128
  var AccordionContainer = (0, _emotion_styled.default)("div")({
96
129
  padding: 0,
97
130
  paddingLeft: 0,
98
131
  paddingRight: 0
99
132
  });
100
133
  var CommandContainer = (0, _emotion_styled.default)("div")({ padding: 5 });
101
- var LinkContainer = (0, _emotion_styled.default)("div")({
102
- margin: 10,
103
- marginLeft: 0
104
- });
105
134
  var RegistryInfoContent = ({ scope, registryUrl }) => {
106
135
  const { t } = (0, react_i18next.useTranslation)();
107
136
  const { configOptions } = require_AppConfigurationProvider.useConfig();
108
137
  const hasNpm = configOptions?.pkgManagers?.includes("npm");
109
138
  const hasYarn = configOptions?.pkgManagers?.includes("yarn");
110
139
  const hasPnpm = configOptions?.pkgManagers?.includes("pnpm");
140
+ const hasBun = configOptions?.pkgManagers?.includes("bun");
141
+ const minAgeManagers = [
142
+ "npm",
143
+ "pnpm",
144
+ "yarn",
145
+ "bun"
146
+ ].filter((manager) => configOptions?.pkgManagers?.includes(manager));
147
+ const exampleScope = scope || PLACEHOLDER_SCOPE;
111
148
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.TextContent, { children: t("packageManagers.description") }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(AccordionContainer, { children: [
112
149
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Accordion.default, {
113
150
  disabled: !hasNpm,
@@ -141,12 +178,18 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
141
178
  children: "yarn"
142
179
  })
143
180
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_AccordionDetails.default, { children: [
144
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, { children: t("packageManagers.yarnclassicDetails") }) }),
181
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, {
182
+ components: require_markdown.externalLinkComponents,
183
+ children: t("packageManagers.yarnclassicDetails")
184
+ }) }),
145
185
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CommandContainer, {
146
186
  "data-testid": "tab-content",
147
187
  children: renderYarnTab(scope, registryUrl)
148
188
  }),
149
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, { children: t("packageManagers.yarnBerryDetails") }) }),
189
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, {
190
+ components: require_markdown.externalLinkComponents,
191
+ children: t("packageManagers.yarnBerryDetails")
192
+ }) }),
150
193
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CommandContainer, {
151
194
  "data-testid": "tab-content",
152
195
  children: renderYarnBerryTab(scope, registryUrl)
@@ -171,17 +214,57 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
171
214
  children: renderPnpmTab(scope, registryUrl)
172
215
  }) })]
173
216
  }),
174
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LinkContainer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Link.default, {
175
- href: "https://verdaccio.org/docs/cli-registry",
176
- target: "_blank",
177
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Typography.default, { children: t("header.registry-info-link") })
178
- }) })
217
+ hasBun && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Accordion.default, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_AccordionSummary.default, {
218
+ "aria-controls": "panel4a-content",
219
+ expandIcon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_icons_material_ExpandMore.default, {}),
220
+ id: "panel4a-header",
221
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Typography.default, {
222
+ sx: {
223
+ fontSize: "1rem",
224
+ fontWeight: "bold"
225
+ },
226
+ children: "bun"
227
+ })
228
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_AccordionDetails.default, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, {
229
+ components: require_markdown.externalLinkComponents,
230
+ children: t("packageManagers.bunDetails")
231
+ }) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CommandContainer, {
232
+ "data-testid": "tab-content",
233
+ children: renderBunTab(scope, registryUrl)
234
+ })] })] }),
235
+ minAgeManagers.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_Accordion.default, {
236
+ "data-testid": "min-release-age",
237
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_AccordionSummary.default, {
238
+ "aria-controls": "panel5a-content",
239
+ expandIcon: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_icons_material_ExpandMore.default, {}),
240
+ id: "panel5a-header",
241
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_mui_material_Typography.default, {
242
+ sx: {
243
+ fontSize: "1rem",
244
+ fontWeight: "bold"
245
+ },
246
+ children: t("packageManagers.minReleaseAge.title")
247
+ })
248
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_mui_material_AccordionDetails.default, { children: [
249
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: t("packageManagers.minReleaseAge.description", {
250
+ days: 3,
251
+ scope: exampleScope
252
+ }) }),
253
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(CommandContainer, {
254
+ "data-testid": "tab-content",
255
+ children: renderMinReleaseAgeTab(minAgeManagers, exampleScope, t)
256
+ }),
257
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_styles.Description, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_markdown.default, {
258
+ components: require_markdown.externalLinkComponents,
259
+ children: t("packageManagers.minReleaseAge.registry")
260
+ }) })
261
+ ] })]
262
+ })
179
263
  ] })] });
180
264
  };
181
265
  //#endregion
182
266
  exports.AccordionContainer = AccordionContainer;
183
267
  exports.CommandContainer = CommandContainer;
184
- exports.LinkContainer = LinkContainer;
185
268
  exports.NODE_MANAGER = NODE_MANAGER;
186
269
  exports.default = RegistryInfoContent;
187
270
 
@@ -1 +1 @@
1
- {"version":3,"file":"RegistryInfoContent.js","names":["Box","CopyClipboard","getCLISetConfigRegistry","getCLISetRegistry","getCLIChangePassword","getCLISBerryYamlRegistry","styled","useTranslation","useConfig","_Fragment","TextContent","Accordion","AccordionSummary","ExpandMoreIcon","Typography","AccordionDetails","Description","ReactMarkdown","Link"],"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAa,eAAe;CAC1B,KAAK;CACL,MAAM;CACN,MAAM;AACR;AAEA,IAAM,gBAAgB,OAA2B,gBAA2C;CAC1F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,kBAAAA,SAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,SAAD;IACE,YAAW;IACX,MAAMC,kBAAAA,wBAAwB,GAAG,aAAa,IAAI,OAAO,OAAO,WAAW;GAC5E,CAAA;GACD,iBAAA,GAAA,kBAAA,IAAA,CAACD,wBAAAA,SAAD;IACE,YAAW;IACX,MAAME,kBAAAA,kBAAkB,GAAG,aAAa,IAAI,WAAW,WAAW;GACnE,CAAA;GACD,iBAAA,GAAA,kBAAA,IAAA,CAACF,wBAAAA,SAAD;IAAe,YAAW;IAAO,MAAMG,kBAAAA,qBAAqB,aAAa,KAAK,WAAW;GAAI,CAAA;EAC1F;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACJ,kBAAAA,SAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,SAAD;IACE,YAAW;IACX,MAAMC,kBAAAA,wBAAwB,GAAG,aAAa,KAAK,OAAO,OAAO,WAAW;GAC7E,CAAA;GACD,iBAAA,GAAA,kBAAA,IAAA,CAACD,wBAAAA,SAAD;IACE,YAAW;IACX,MAAME,kBAAAA,kBAAkB,GAAG,aAAa,KAAK,WAAW,WAAW;GACpE,CAAA;GACD,iBAAA,GAAA,kBAAA,IAAA,CAACF,wBAAAA,SAAD;IACE,YAAW;IACX,MAAMG,kBAAAA,qBAAqB,aAAa,MAAM,WAAW;GAC1D,CAAA;EACE;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACJ,kBAAAA,SAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,SAAD;GACE,YAAW;GACX,MAAMC,kBAAAA,wBAAwB,GAAG,aAAa,KAAK,cAAc,OAAO,WAAW;EACpF,CAAA;CACE,CAAA;AAET;AAEA,IAAM,sBAAsB,OAA2B,gBAA2C;CAChG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACF,kBAAAA,SAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,wBAAAA,SAAD;GAAe,YAAW;GAAO,MAAMI,kBAAAA,yBAAyB,OAAO,WAAW;EAAI,CAAA;CACnF,CAAA;AAET;AAEA,IAAa,sBAAA,GAAqBC,gBAAAA,QAAAA,CAAO,KAAK,CAAC,CAAC;CAC9C,SAAS;CACT,aAAa;CACb,cAAc;AAChB,CAAC;AAED,IAAa,oBAAA,GAAmBA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,CAAC,EAC5C,SAAS,EACX,CAAC;AAED,IAAa,iBAAA,GAAgBA,gBAAAA,QAAAA,CAAO,KAAK,CAAC,CAAC;CACzC,QAAQ;CACR,YAAY;AACd,CAAC;AAOD,IAAM,uBAAkC,EAAE,OAAO,kBAAkB;CACjE,MAAM,EAAE,OAAA,GAAMC,cAAAA,eAAAA,CAAe;CAC7B,MAAM,EAAE,kBAAkBC,iCAAAA,UAAU;CAEpC,MAAM,SAAS,eAAe,aAAa,SAAS,KAAK;CACzD,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAC3D,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAG3D,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,aAAD,EAAA,UAAc,EAAE,6BAA6B,EAAe,CAAA,GAC5D,iBAAA,GAAA,kBAAA,KAAA,CAAC,oBAAD,EAAA,UAAA;EACE,iBAAA,GAAA,kBAAA,KAAA,CAACC,wBAAAA,SAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD;IACE,iBAAc;IACd,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAkB,CAAA;GAC7D,CAAA,GAClB,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,aAAa,OAAO,WAAW;GAChB,CAAA,EACF,CAAA,CACT;;EACX,iBAAA,GAAA,kBAAA,KAAA,CAACJ,wBAAAA,SAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD;IACE,iBAAc;IACd,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,iBAAA,GAAA,kBAAA,KAAA,CAACC,+BAAAA,SAAD,EAAA,UAAA;IACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,aAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,SAAD,EAAA,UAAgB,EAAE,oCAAoC,EAAiB,CAAA,EAC5D,CAAA;IACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,cAAc,OAAO,WAAW;IACjB,CAAA;IAClB,iBAAA,GAAA,kBAAA,IAAA,CAACD,eAAAA,aAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,SAAD,EAAA,UAAgB,EAAE,kCAAkC,EAAiB,CAAA,EAC1D,CAAA;IACb,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,mBAAmB,OAAO,WAAW;IACtB,CAAA;GACF,EAAA,CAAA,CACT;;EAEX,iBAAA,GAAA,kBAAA,KAAA,CAACN,wBAAAA,SAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD;IACE,iBAAc;IACd,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,yBAAAA,SAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,iBAAA,GAAA,kBAAA,IAAA,CAACC,+BAAAA,SAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,cAAc,OAAO,WAAW;GACjB,CAAA,EACF,CAAA,CACT;;EAEX,iBAAA,GAAA,kBAAA,IAAA,CAAC,eAAD,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACG,mBAAAA,SAAD;GAAM,MAAK;GAA0C,QAAO;GAC1D,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACJ,yBAAAA,SAAD,EAAA,UAAa,EAAE,2BAA2B,EAAc,CAAA;EACpD,CAAA,EACO,CAAA;CACG,EAAA,CAAA,CACpB,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"RegistryInfoContent.js","names":["Box","CopyClipboard","getCLISetConfigRegistry","getCLISetRegistry","getCLIChangePassword","getCLISBerryYamlRegistry","getBunfigRegistry","Typography","Description","getMinReleaseAgeConfig","styled","useTranslation","useConfig","_Fragment","TextContent","Accordion","AccordionSummary","ExpandMoreIcon","AccordionDetails","ReactMarkdown","externalLinkComponents"],"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 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 MIN_RELEASE_AGE_DAYS,\n getBunfigRegistry,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n getMinReleaseAgeConfig,\n useConfig,\n} from '../../../';\nimport { externalLinkComponents } from '../../../utils/markdown';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n bun: 'bun',\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\nconst renderBunTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getBunfigRegistry(scope, registryUrl)} />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.bun} publish`, registryUrl)}\n />\n </Box>\n );\n};\n\n// shown when the registry sets no web.scope\nconst PLACEHOLDER_SCOPE = '@your-scope';\n\nconst renderMinReleaseAgeTab = (\n managers: string[],\n scope: string,\n t: (key: string) => string\n): React.JSX.Element => (\n <Box display=\"flex\" flexDirection=\"column\">\n {managers.map((manager) => (\n <Box data-testid={`min-release-age-${manager}`} key={manager} sx={{ mb: 2 }}>\n <Typography sx={{ fontWeight: 'bold' }}>{manager}</Typography>\n <Description>{t(`packageManagers.minReleaseAge.${manager}`)}</Description>\n <CopyClipboard dataTestId=\"copy\" text={getMinReleaseAgeConfig(manager, scope)} />\n </Box>\n ))}\n </Box>\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 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 const hasBun = configOptions?.pkgManagers?.includes('bun');\n const minAgeManagers = ['npm', 'pnpm', 'yarn', 'bun'].filter((manager) =>\n configOptions?.pkgManagers?.includes(manager)\n );\n const exampleScope = scope || PLACEHOLDER_SCOPE;\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 components={externalLinkComponents}>\n {t('packageManagers.yarnclassicDetails')}\n </ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.yarnBerryDetails')}\n </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 {hasBun && (\n <Accordion>\n <AccordionSummary\n aria-controls=\"panel4a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel4a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'bun'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.bunDetails')}\n </ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderBunTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n )}\n\n {minAgeManagers.length > 0 && (\n <Accordion data-testid=\"min-release-age\">\n <AccordionSummary\n aria-controls=\"panel5a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel5a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>\n {t('packageManagers.minReleaseAge.title')}\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n {t('packageManagers.minReleaseAge.description', {\n days: MIN_RELEASE_AGE_DAYS,\n scope: exampleScope,\n })}\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderMinReleaseAgeTab(minAgeManagers, exampleScope, t)}\n </CommandContainer>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.minReleaseAge.registry')}\n </ReactMarkdown>\n </Description>\n </AccordionDetails>\n </Accordion>\n )}\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import CopyToClipBoard from "../../../components/CopyClipboard/CopyToClipBoard.mjs";
2
- import { getCLIChangePassword, getCLISBerryYamlRegistry, getCLISetConfigRegistry, getCLISetRegistry } from "../../../utils/cli-utils.mjs";
2
+ import { getBunfigRegistry, getCLIChangePassword, getCLISBerryYamlRegistry, getCLISetConfigRegistry, getCLISetRegistry, getMinReleaseAgeConfig } from "../../../utils/cli-utils.mjs";
3
3
  import { useConfig } from "../../../providers/AppConfigurationProvider/AppConfigurationProvider.mjs";
4
+ import { externalLinkComponents } from "../../../utils/markdown.mjs";
4
5
  import { Description, TextContent } from "./styles.mjs";
5
6
  import "../../../index.mjs";
6
7
  import styled from "@emotion/styled";
@@ -8,7 +9,6 @@ import "react";
8
9
  import { useTranslation } from "react-i18next";
9
10
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
10
11
  import Box from "@mui/material/Box";
11
- import Link from "@mui/material/Link";
12
12
  import Typography from "@mui/material/Typography";
13
13
  import ReactMarkdown from "react-markdown";
14
14
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
@@ -19,7 +19,8 @@ import AccordionSummary from "@mui/material/AccordionSummary";
19
19
  var NODE_MANAGER = {
20
20
  npm: "npm",
21
21
  yarn: "yarn",
22
- pnpm: "pnpm"
22
+ pnpm: "pnpm",
23
+ bun: "bun"
23
24
  };
24
25
  var renderNpmTab = (scope, registryUrl) => {
25
26
  return /* @__PURE__ */ jsxs(Box, {
@@ -81,22 +82,59 @@ var renderYarnBerryTab = (scope, registryUrl) => {
81
82
  })
82
83
  });
83
84
  };
85
+ var renderBunTab = (scope, registryUrl) => {
86
+ return /* @__PURE__ */ jsxs(Box, {
87
+ display: "flex",
88
+ flexDirection: "column",
89
+ children: [/* @__PURE__ */ jsx(CopyToClipBoard, {
90
+ dataTestId: "copy",
91
+ text: getBunfigRegistry(scope, registryUrl)
92
+ }), /* @__PURE__ */ jsx(CopyToClipBoard, {
93
+ dataTestId: "copy",
94
+ text: getCLISetRegistry(`${NODE_MANAGER.bun} publish`, registryUrl)
95
+ })]
96
+ });
97
+ };
98
+ var PLACEHOLDER_SCOPE = "@your-scope";
99
+ var renderMinReleaseAgeTab = (managers, scope, t) => /* @__PURE__ */ jsx(Box, {
100
+ display: "flex",
101
+ flexDirection: "column",
102
+ children: managers.map((manager) => /* @__PURE__ */ jsxs(Box, {
103
+ "data-testid": `min-release-age-${manager}`,
104
+ sx: { mb: 2 },
105
+ children: [
106
+ /* @__PURE__ */ jsx(Typography, {
107
+ sx: { fontWeight: "bold" },
108
+ children: manager
109
+ }),
110
+ /* @__PURE__ */ jsx(Description, { children: t(`packageManagers.minReleaseAge.${manager}`) }),
111
+ /* @__PURE__ */ jsx(CopyToClipBoard, {
112
+ dataTestId: "copy",
113
+ text: getMinReleaseAgeConfig(manager, scope)
114
+ })
115
+ ]
116
+ }, manager))
117
+ });
84
118
  var AccordionContainer = styled("div")({
85
119
  padding: 0,
86
120
  paddingLeft: 0,
87
121
  paddingRight: 0
88
122
  });
89
123
  var CommandContainer = styled("div")({ padding: 5 });
90
- var LinkContainer = styled("div")({
91
- margin: 10,
92
- marginLeft: 0
93
- });
94
124
  var RegistryInfoContent = ({ scope, registryUrl }) => {
95
125
  const { t } = useTranslation();
96
126
  const { configOptions } = useConfig();
97
127
  const hasNpm = configOptions?.pkgManagers?.includes("npm");
98
128
  const hasYarn = configOptions?.pkgManagers?.includes("yarn");
99
129
  const hasPnpm = configOptions?.pkgManagers?.includes("pnpm");
130
+ const hasBun = configOptions?.pkgManagers?.includes("bun");
131
+ const minAgeManagers = [
132
+ "npm",
133
+ "pnpm",
134
+ "yarn",
135
+ "bun"
136
+ ].filter((manager) => configOptions?.pkgManagers?.includes(manager));
137
+ const exampleScope = scope || PLACEHOLDER_SCOPE;
100
138
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(TextContent, { children: t("packageManagers.description") }), /* @__PURE__ */ jsxs(AccordionContainer, { children: [
101
139
  /* @__PURE__ */ jsxs(Accordion, {
102
140
  disabled: !hasNpm,
@@ -130,12 +168,18 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
130
168
  children: "yarn"
131
169
  })
132
170
  }), /* @__PURE__ */ jsxs(AccordionDetails, { children: [
133
- /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, { children: t("packageManagers.yarnclassicDetails") }) }),
171
+ /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, {
172
+ components: externalLinkComponents,
173
+ children: t("packageManagers.yarnclassicDetails")
174
+ }) }),
134
175
  /* @__PURE__ */ jsx(CommandContainer, {
135
176
  "data-testid": "tab-content",
136
177
  children: renderYarnTab(scope, registryUrl)
137
178
  }),
138
- /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, { children: t("packageManagers.yarnBerryDetails") }) }),
179
+ /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, {
180
+ components: externalLinkComponents,
181
+ children: t("packageManagers.yarnBerryDetails")
182
+ }) }),
139
183
  /* @__PURE__ */ jsx(CommandContainer, {
140
184
  "data-testid": "tab-content",
141
185
  children: renderYarnBerryTab(scope, registryUrl)
@@ -160,14 +204,55 @@ var RegistryInfoContent = ({ scope, registryUrl }) => {
160
204
  children: renderPnpmTab(scope, registryUrl)
161
205
  }) })]
162
206
  }),
163
- /* @__PURE__ */ jsx(LinkContainer, { children: /* @__PURE__ */ jsx(Link, {
164
- href: "https://verdaccio.org/docs/cli-registry",
165
- target: "_blank",
166
- children: /* @__PURE__ */ jsx(Typography, { children: t("header.registry-info-link") })
167
- }) })
207
+ hasBun && /* @__PURE__ */ jsxs(Accordion, { children: [/* @__PURE__ */ jsx(AccordionSummary, {
208
+ "aria-controls": "panel4a-content",
209
+ expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
210
+ id: "panel4a-header",
211
+ children: /* @__PURE__ */ jsx(Typography, {
212
+ sx: {
213
+ fontSize: "1rem",
214
+ fontWeight: "bold"
215
+ },
216
+ children: "bun"
217
+ })
218
+ }), /* @__PURE__ */ jsxs(AccordionDetails, { children: [/* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, {
219
+ components: externalLinkComponents,
220
+ children: t("packageManagers.bunDetails")
221
+ }) }), /* @__PURE__ */ jsx(CommandContainer, {
222
+ "data-testid": "tab-content",
223
+ children: renderBunTab(scope, registryUrl)
224
+ })] })] }),
225
+ minAgeManagers.length > 0 && /* @__PURE__ */ jsxs(Accordion, {
226
+ "data-testid": "min-release-age",
227
+ children: [/* @__PURE__ */ jsx(AccordionSummary, {
228
+ "aria-controls": "panel5a-content",
229
+ expandIcon: /* @__PURE__ */ jsx(ExpandMoreIcon, {}),
230
+ id: "panel5a-header",
231
+ children: /* @__PURE__ */ jsx(Typography, {
232
+ sx: {
233
+ fontSize: "1rem",
234
+ fontWeight: "bold"
235
+ },
236
+ children: t("packageManagers.minReleaseAge.title")
237
+ })
238
+ }), /* @__PURE__ */ jsxs(AccordionDetails, { children: [
239
+ /* @__PURE__ */ jsx(Description, { children: t("packageManagers.minReleaseAge.description", {
240
+ days: 3,
241
+ scope: exampleScope
242
+ }) }),
243
+ /* @__PURE__ */ jsx(CommandContainer, {
244
+ "data-testid": "tab-content",
245
+ children: renderMinReleaseAgeTab(minAgeManagers, exampleScope, t)
246
+ }),
247
+ /* @__PURE__ */ jsx(Description, { children: /* @__PURE__ */ jsx(ReactMarkdown, {
248
+ components: externalLinkComponents,
249
+ children: t("packageManagers.minReleaseAge.registry")
250
+ }) })
251
+ ] })]
252
+ })
168
253
  ] })] });
169
254
  };
170
255
  //#endregion
171
- export { AccordionContainer, CommandContainer, LinkContainer, NODE_MANAGER, RegistryInfoContent as default };
256
+ export { AccordionContainer, CommandContainer, NODE_MANAGER, RegistryInfoContent as default };
172
257
 
173
258
  //# sourceMappingURL=RegistryInfoContent.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"RegistryInfoContent.mjs","names":["CopyClipboard","_Fragment"],"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":";;;;;;;;;;;;;;;;;;AAuBA,IAAa,eAAe;CAC1B,KAAK;CACL,MAAM;CACN,MAAM;AACR;AAEA,IAAM,gBAAgB,OAA2B,gBAA2C;CAC1F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,wBAAwB,GAAG,aAAa,IAAI,OAAO,OAAO,WAAW;GAC5E,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,kBAAkB,GAAG,aAAa,IAAI,WAAW,WAAW;GACnE,CAAA;GACD,oBAACA,iBAAD;IAAe,YAAW;IAAO,MAAM,qBAAqB,aAAa,KAAK,WAAW;GAAI,CAAA;EAC1F;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,wBAAwB,GAAG,aAAa,KAAK,OAAO,OAAO,WAAW;GAC7E,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,kBAAkB,GAAG,aAAa,KAAK,WAAW,WAAW;GACpE,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,qBAAqB,aAAa,MAAM,WAAW;GAC1D,CAAA;EACE;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,oBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,oBAACA,iBAAD;GACE,YAAW;GACX,MAAM,wBAAwB,GAAG,aAAa,KAAK,cAAc,OAAO,WAAW;EACpF,CAAA;CACE,CAAA;AAET;AAEA,IAAM,sBAAsB,OAA2B,gBAA2C;CAChG,OACE,oBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,oBAACA,iBAAD;GAAe,YAAW;GAAO,MAAM,yBAAyB,OAAO,WAAW;EAAI,CAAA;CACnF,CAAA;AAET;AAEA,IAAa,qBAAqB,OAAO,KAAK,CAAC,CAAC;CAC9C,SAAS;CACT,aAAa;CACb,cAAc;AAChB,CAAC;AAED,IAAa,mBAAmB,OAAO,KAAK,CAAC,CAAC,EAC5C,SAAS,EACX,CAAC;AAED,IAAa,gBAAgB,OAAO,KAAK,CAAC,CAAC;CACzC,QAAQ;CACR,YAAY;AACd,CAAC;AAOD,IAAM,uBAAkC,EAAE,OAAO,kBAAkB;CACjE,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CAEpC,MAAM,SAAS,eAAe,aAAa,SAAS,KAAK;CACzD,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAC3D,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAG3D,OACE,qBAAAC,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UAAc,EAAE,6BAA6B,EAAe,CAAA,GAC5D,qBAAC,oBAAD,EAAA,UAAA;EACE,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAkB,CAAA;GAC7D,CAAA,GAClB,oBAAC,kBAAD,EAAA,UACE,oBAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,aAAa,OAAO,WAAW;GAChB,CAAA,EACF,CAAA,CACT;;EACX,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,qBAAC,kBAAD,EAAA,UAAA;IACE,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD,EAAA,UAAgB,EAAE,oCAAoC,EAAiB,CAAA,EAC5D,CAAA;IACb,oBAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,cAAc,OAAO,WAAW;IACjB,CAAA;IAClB,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD,EAAA,UAAgB,EAAE,kCAAkC,EAAiB,CAAA,EAC1D,CAAA;IACb,oBAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,mBAAmB,OAAO,WAAW;IACtB,CAAA;GACF,EAAA,CAAA,CACT;;EAEX,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,oBAAC,kBAAD,EAAA,UACE,oBAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,cAAc,OAAO,WAAW;GACjB,CAAA,EACF,CAAA,CACT;;EAEX,oBAAC,eAAD,EAAA,UACE,oBAAC,MAAD;GAAM,MAAK;GAA0C,QAAO;GAC1D,UAAA,oBAAC,YAAD,EAAA,UAAa,EAAE,2BAA2B,EAAc,CAAA;EACpD,CAAA,EACO,CAAA;CACG,EAAA,CAAA,CACpB,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"RegistryInfoContent.mjs","names":["CopyClipboard","_Fragment"],"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 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 MIN_RELEASE_AGE_DAYS,\n getBunfigRegistry,\n getCLIChangePassword,\n getCLISBerryYamlRegistry,\n getCLISetConfigRegistry,\n getCLISetRegistry,\n getMinReleaseAgeConfig,\n useConfig,\n} from '../../../';\nimport { externalLinkComponents } from '../../../utils/markdown';\nimport { Description, TextContent } from './styles';\n\nexport const NODE_MANAGER = {\n npm: 'npm',\n yarn: 'yarn',\n pnpm: 'pnpm',\n bun: 'bun',\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\nconst renderBunTab = (scope: string | undefined, registryUrl: string): React.JSX.Element => {\n return (\n <Box display=\"flex\" flexDirection=\"column\">\n <CopyClipboard dataTestId=\"copy\" text={getBunfigRegistry(scope, registryUrl)} />\n <CopyClipboard\n dataTestId=\"copy\"\n text={getCLISetRegistry(`${NODE_MANAGER.bun} publish`, registryUrl)}\n />\n </Box>\n );\n};\n\n// shown when the registry sets no web.scope\nconst PLACEHOLDER_SCOPE = '@your-scope';\n\nconst renderMinReleaseAgeTab = (\n managers: string[],\n scope: string,\n t: (key: string) => string\n): React.JSX.Element => (\n <Box display=\"flex\" flexDirection=\"column\">\n {managers.map((manager) => (\n <Box data-testid={`min-release-age-${manager}`} key={manager} sx={{ mb: 2 }}>\n <Typography sx={{ fontWeight: 'bold' }}>{manager}</Typography>\n <Description>{t(`packageManagers.minReleaseAge.${manager}`)}</Description>\n <CopyClipboard dataTestId=\"copy\" text={getMinReleaseAgeConfig(manager, scope)} />\n </Box>\n ))}\n </Box>\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 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 const hasBun = configOptions?.pkgManagers?.includes('bun');\n const minAgeManagers = ['npm', 'pnpm', 'yarn', 'bun'].filter((manager) =>\n configOptions?.pkgManagers?.includes(manager)\n );\n const exampleScope = scope || PLACEHOLDER_SCOPE;\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 components={externalLinkComponents}>\n {t('packageManagers.yarnclassicDetails')}\n </ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderYarnTab(scope, registryUrl)}\n </CommandContainer>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.yarnBerryDetails')}\n </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 {hasBun && (\n <Accordion>\n <AccordionSummary\n aria-controls=\"panel4a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel4a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>{'bun'}</Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.bunDetails')}\n </ReactMarkdown>\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderBunTab(scope, registryUrl)}\n </CommandContainer>\n </AccordionDetails>\n </Accordion>\n )}\n\n {minAgeManagers.length > 0 && (\n <Accordion data-testid=\"min-release-age\">\n <AccordionSummary\n aria-controls=\"panel5a-content\"\n expandIcon={<ExpandMoreIcon />}\n id=\"panel5a-header\"\n >\n <Typography sx={{ fontSize: '1rem', fontWeight: 'bold' }}>\n {t('packageManagers.minReleaseAge.title')}\n </Typography>\n </AccordionSummary>\n <AccordionDetails>\n <Description>\n {t('packageManagers.minReleaseAge.description', {\n days: MIN_RELEASE_AGE_DAYS,\n scope: exampleScope,\n })}\n </Description>\n <CommandContainer data-testid={'tab-content'}>\n {renderMinReleaseAgeTab(minAgeManagers, exampleScope, t)}\n </CommandContainer>\n <Description>\n <ReactMarkdown components={externalLinkComponents}>\n {t('packageManagers.minReleaseAge.registry')}\n </ReactMarkdown>\n </Description>\n </AccordionDetails>\n </Accordion>\n )}\n </AccordionContainer>\n </>\n );\n};\n\nexport default RegistryInfoContent;\n"],"mappings":";;;;;;;;;;;;;;;;;;AA0BA,IAAa,eAAe;CAC1B,KAAK;CACL,MAAM;CACN,MAAM;CACN,KAAK;AACP;AAEA,IAAM,gBAAgB,OAA2B,gBAA2C;CAC1F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,wBAAwB,GAAG,aAAa,IAAI,OAAO,OAAO,WAAW;GAC5E,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,kBAAkB,GAAG,aAAa,IAAI,WAAW,WAAW;GACnE,CAAA;GACD,oBAACA,iBAAD;IAAe,YAAW;IAAO,MAAM,qBAAqB,aAAa,KAAK,WAAW;GAAI,CAAA;EAC1F;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA;GACE,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,wBAAwB,GAAG,aAAa,KAAK,OAAO,OAAO,WAAW;GAC7E,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,kBAAkB,GAAG,aAAa,KAAK,WAAW,WAAW;GACpE,CAAA;GACD,oBAACA,iBAAD;IACE,YAAW;IACX,MAAM,qBAAqB,aAAa,MAAM,WAAW;GAC1D,CAAA;EACE;;AAET;AAEA,IAAM,iBAAiB,OAA2B,gBAA2C;CAC3F,OACE,oBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,oBAACA,iBAAD;GACE,YAAW;GACX,MAAM,wBAAwB,GAAG,aAAa,KAAK,cAAc,OAAO,WAAW;EACpF,CAAA;CACE,CAAA;AAET;AAEA,IAAM,sBAAsB,OAA2B,gBAA2C;CAChG,OACE,oBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAChC,UAAA,oBAACA,iBAAD;GAAe,YAAW;GAAO,MAAM,yBAAyB,OAAO,WAAW;EAAI,CAAA;CACnF,CAAA;AAET;AAEA,IAAM,gBAAgB,OAA2B,gBAA2C;CAC1F,OACE,qBAAC,KAAD;EAAK,SAAQ;EAAO,eAAc;EAAlC,UAAA,CACE,oBAACA,iBAAD;GAAe,YAAW;GAAO,MAAM,kBAAkB,OAAO,WAAW;EAAI,CAAA,GAC/E,oBAACA,iBAAD;GACE,YAAW;GACX,MAAM,kBAAkB,GAAG,aAAa,IAAI,WAAW,WAAW;EACnE,CAAA,CACE;;AAET;AAGA,IAAM,oBAAoB;AAE1B,IAAM,0BACJ,UACA,OACA,MAEA,oBAAC,KAAD;CAAK,SAAQ;CAAO,eAAc;CAC/B,UAAA,SAAS,KAAK,YACb,qBAAC,KAAD;EAAK,eAAa,mBAAmB;EAAyB,IAAI,EAAE,IAAI,EAAE;EAA1E,UAAA;GACE,oBAAC,YAAD;IAAY,IAAI,EAAE,YAAY,OAAO;IAAI,UAAA;GAAoB,CAAA;GAC7D,oBAAC,aAAD,EAAA,UAAc,EAAE,iCAAiC,SAAS,EAAe,CAAA;GACzE,oBAACA,iBAAD;IAAe,YAAW;IAAO,MAAM,uBAAuB,SAAS,KAAK;GAAI,CAAA;EAC7E;CAJgD,GAAA,OAIhD,CACN;AACE,CAAA;AAGP,IAAa,qBAAqB,OAAO,KAAK,CAAC,CAAC;CAC9C,SAAS;CACT,aAAa;CACb,cAAc;AAChB,CAAC;AAED,IAAa,mBAAmB,OAAO,KAAK,CAAC,CAAC,EAC5C,SAAS,EACX,CAAC;AAOD,IAAM,uBAAkC,EAAE,OAAO,kBAAkB;CACjE,MAAM,EAAE,MAAM,eAAe;CAC7B,MAAM,EAAE,kBAAkB,UAAU;CAEpC,MAAM,SAAS,eAAe,aAAa,SAAS,KAAK;CACzD,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAC3D,MAAM,UAAU,eAAe,aAAa,SAAS,MAAM;CAC3D,MAAM,SAAS,eAAe,aAAa,SAAS,KAAK;CACzD,MAAM,iBAAiB;EAAC;EAAO;EAAQ;EAAQ;CAAK,CAAC,CAAC,QAAQ,YAC5D,eAAe,aAAa,SAAS,OAAO,CAC9C;CACA,MAAM,eAAe,SAAS;CAG9B,OACE,qBAAAC,YAAA,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UAAc,EAAE,6BAA6B,EAAe,CAAA,GAC5D,qBAAC,oBAAD,EAAA,UAAA;EACE,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAkB,CAAA;GAC7D,CAAA,GAClB,oBAAC,kBAAD,EAAA,UACE,oBAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,aAAa,OAAO,WAAW;GAChB,CAAA,EACF,CAAA,CACT;;EACX,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,qBAAC,kBAAD,EAAA,UAAA;IACE,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD;KAAe,YAAY;KACxB,UAAA,EAAE,oCAAoC;IAC1B,CAAA,EACJ,CAAA;IACb,oBAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,cAAc,OAAO,WAAW;IACjB,CAAA;IAClB,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD;KAAe,YAAY;KACxB,UAAA,EAAE,kCAAkC;IACxB,CAAA,EACJ,CAAA;IACb,oBAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,mBAAmB,OAAO,WAAW;IACtB,CAAA;GACF,EAAA,CAAA,CACT;;EAEX,qBAAC,WAAD;GAAW,UAAU,CAAC;GAAtB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KAAI,UAAA;IAAmB,CAAA;GAC9D,CAAA,GAClB,oBAAC,kBAAD,EAAA,UACE,oBAAC,kBAAD;IAAkB,eAAa;IAC5B,UAAA,cAAc,OAAO,WAAW;GACjB,CAAA,EACF,CAAA,CACT;;EAEV,UACC,qBAAC,WAAD,EAAA,UAAA,CACE,oBAAC,kBAAD;GACE,iBAAc;GACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;GAC7B,IAAG;GAEH,UAAA,oBAAC,YAAD;IAAY,IAAI;KAAE,UAAU;KAAQ,YAAY;IAAO;IAAI,UAAA;GAAkB,CAAA;EAC7D,CAAA,GAClB,qBAAC,kBAAD,EAAA,UAAA,CACE,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD;GAAe,YAAY;GACxB,UAAA,EAAE,4BAA4B;EAClB,CAAA,EACJ,CAAA,GACb,oBAAC,kBAAD;GAAkB,eAAa;GAC5B,UAAA,aAAa,OAAO,WAAW;EAChB,CAAA,CACF,EAAA,CAAA,CACT,EAAA,CAAA;EAGZ,eAAe,SAAS,KACvB,qBAAC,WAAD;GAAW,eAAY;GAAvB,UAAA,CACE,oBAAC,kBAAD;IACE,iBAAc;IACd,YAAY,oBAAC,gBAAD,CAAiB,CAAA;IAC7B,IAAG;IAEH,UAAA,oBAAC,YAAD;KAAY,IAAI;MAAE,UAAU;MAAQ,YAAY;KAAO;KACpD,UAAA,EAAE,qCAAqC;IAC9B,CAAA;GACI,CAAA,GAClB,qBAAC,kBAAD,EAAA,UAAA;IACE,oBAAC,aAAD,EAAA,UACG,EAAE,6CAA6C;KAC9C,MAAA;KACA,OAAO;IACT,CAAC,EACU,CAAA;IACb,oBAAC,kBAAD;KAAkB,eAAa;KAC5B,UAAA,uBAAuB,gBAAgB,cAAc,CAAC;IACvC,CAAA;IAClB,oBAAC,aAAD,EAAA,UACE,oBAAC,eAAD;KAAe,YAAY;KACxB,UAAA,EAAE,wCAAwC;IAC9B,CAAA,EACJ,CAAA;GACG,EAAA,CAAA,CACT;;CAEK,EAAA,CAAA,CACpB,EAAA,CAAA;AAEN"}
@@ -1,20 +1,76 @@
1
1
  const require_runtime = require("../../_virtual/_rolldown/runtime.js");
2
+ const require_AppConfigurationProvider = require("../../providers/AppConfigurationProvider/AppConfigurationProvider.js");
3
+ const require_useLocalStorage = require("../../hooks/useLocalStorage.js");
2
4
  const require_ManifestsProvider = require("../../providers/ManifestsProvider/ManifestsProvider.js");
5
+ const require_NoItems = require("../../components/NoItems/NoItems.js");
6
+ require("../../components/NoItems/index.js");
3
7
  const require_GenericError = require("../../components/GenericError/GenericError.js");
4
- const require_Loading = require("../../components/Loading/Loading.js");
8
+ const require_PackageListSkeleton = require("../../components/Loading/PackageListSkeleton.js");
5
9
  const require_PackageList = require("../../components/PackageList/PackageList.js");
10
+ const require_filterPackages = require("../../components/PackageList/filterPackages.js");
11
+ const require_PackageListToolbar = require("../../components/PackageList/PackageListToolbar.js");
6
12
  require("../../index.js");
7
13
  let react = require("react");
8
14
  react = require_runtime.__toESM(react);
15
+ let react_i18next = require("react-i18next");
9
16
  let react_jsx_runtime = require("react/jsx-runtime");
17
+ let react_router = require("react-router");
10
18
  //#region src/sections/Home/Home.tsx
19
+ var QUERY_PARAM = "q";
20
+ var SCOPE_PARAM = "scope";
21
+ var SORT_STORAGE_KEY = "package-list-sort";
22
+ var EMPTY = [];
11
23
  var Home = () => {
24
+ const { t } = (0, react_i18next.useTranslation)();
12
25
  const manifests = require_ManifestsProvider.useManifests();
26
+ const { configOptions } = require_AppConfigurationProvider.useConfig();
27
+ const [searchParams, setSearchParams] = (0, react_router.useSearchParams)();
28
+ const [storedSort, setSort] = require_useLocalStorage.default(SORT_STORAGE_KEY, require_filterPackages.PackageSort.DEFAULT);
29
+ const sort = Object.values(require_filterPackages.PackageSort).includes(storedSort) ? storedSort : require_filterPackages.PackageSort.DEFAULT;
30
+ const packages = manifests.manifests ?? EMPTY;
31
+ const scopes = (0, react.useMemo)(() => require_filterPackages.getScopes(packages), [packages]);
32
+ const query = searchParams.get(QUERY_PARAM) ?? "";
33
+ const requestedScope = searchParams.get(SCOPE_PARAM) ?? "";
34
+ const scope = scopes.includes(requestedScope) ? requestedScope : "";
35
+ const visiblePackages = (0, react.useMemo)(() => require_filterPackages.filterPackages(packages, {
36
+ query,
37
+ scope,
38
+ sort
39
+ }), [
40
+ packages,
41
+ query,
42
+ scope,
43
+ sort
44
+ ]);
45
+ const updateParam = (key, value) => {
46
+ setSearchParams((params) => {
47
+ if (value) params.set(key, value);
48
+ else params.delete(key);
49
+ return params;
50
+ }, { replace: true });
51
+ };
13
52
  if (manifests.isError) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_GenericError.default, {});
53
+ const renderList = () => {
54
+ if (packages.length <= 1 || configOptions.showPackageListToolbar === false) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageList.default, { packages });
55
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageListToolbar.default, {
56
+ onQueryChange: (value) => updateParam(QUERY_PARAM, value),
57
+ onScopeChange: (value) => updateParam(SCOPE_PARAM, value),
58
+ onSortChange: setSort,
59
+ query,
60
+ scope,
61
+ scopes,
62
+ shown: visiblePackages.length,
63
+ sort,
64
+ total: packages.length
65
+ }), visiblePackages.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageList.default, { packages: visiblePackages }, `${query}|${scope}|${sort}`) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
66
+ "data-testid": "package-list-no-match",
67
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_NoItems.default, { text: t("packageList.no-match") })
68
+ })] });
69
+ };
14
70
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
15
71
  className: "container content",
16
72
  "data-testid": "home-page-container",
17
- children: manifests.isLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Loading.default, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageList.default, { packages: manifests.manifests })
73
+ children: manifests.isLoading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PackageListSkeleton.default, {}) : renderList()
18
74
  });
19
75
  };
20
76
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"Home.js","names":["useManifests","GenericError","Loading","PackageList"],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React from 'react';\n\nimport { GenericError, Loading, PackageList, useManifests } from '../..';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst Home: React.FC = () => {\n const manifests = useManifests();\n\n if (manifests.isError) {\n return <GenericError />;\n }\n\n return (\n <div className=\"container content\" data-testid=\"home-page-container\">\n {manifests.isLoading ? (\n <Loading />\n ) : (\n <PackageList packages={manifests.manifests as ManifestWeb[]} />\n )}\n </div>\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;AAKA,IAAM,aAAuB;CAC3B,MAAM,YAAYA,0BAAAA,aAAa;CAE/B,IAAI,UAAU,SACZ,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,SAAD,CAAe,CAAA;CAGxB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAoB,eAAY;EAC5C,UAAA,UAAU,YACT,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,SAAD,CAAU,CAAA,IAEV,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,SAAD,EAAa,UAAU,UAAU,UAA6B,CAAA;CAE7D,CAAA;AAET"}
1
+ {"version":3,"file":"Home.js","names":["useTranslation","useManifests","useConfig","useSearchParams","useLocalStorage","PackageSort","useMemo","getScopes","filterPackages","GenericError","PackageList","_Fragment","PackageListToolbar","NoItems","PackageListSkeleton"],"sources":["../../../src/sections/Home/Home.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useSearchParams } from 'react-router';\n\nimport { GenericError, PackageList, PackageListSkeleton, useConfig, useManifests } from '../..';\nimport NoItems from '../../components/NoItems';\nimport PackageListToolbar from '../../components/PackageList/PackageListToolbar';\nimport {\n PackageSort,\n filterPackages,\n getScopes,\n} from '../../components/PackageList/filterPackages';\nimport useLocalStorage from '../../hooks/useLocalStorage';\nimport type { ManifestWeb } from '../../providers/ManifestsProvider/ManifestsProvider';\n\nconst QUERY_PARAM = 'q';\nconst SCOPE_PARAM = 'scope';\nconst SORT_STORAGE_KEY = 'package-list-sort';\nconst EMPTY: ManifestWeb[] = [];\n\nconst Home: React.FC = () => {\n const { t } = useTranslation();\n const manifests = useManifests();\n const { configOptions } = useConfig();\n const [searchParams, setSearchParams] = useSearchParams();\n const [storedSort, setSort] = useLocalStorage<PackageSort>(SORT_STORAGE_KEY, PackageSort.DEFAULT);\n const sort = Object.values(PackageSort).includes(storedSort) ? storedSort : PackageSort.DEFAULT;\n const packages = (manifests.manifests as ManifestWeb[] | undefined) ?? EMPTY;\n const scopes = useMemo(() => getScopes(packages), [packages]);\n const query = searchParams.get(QUERY_PARAM) ?? '';\n const requestedScope = searchParams.get(SCOPE_PARAM) ?? '';\n const scope = scopes.includes(requestedScope) ? requestedScope : '';\n const visiblePackages = useMemo(\n () => filterPackages(packages, { query, scope, sort }),\n [packages, query, scope, sort]\n );\n\n // replace instead of push: one history entry per keystroke would make \"back\" useless\n const updateParam = (key: string, value: string) => {\n setSearchParams(\n (params) => {\n if (value) {\n params.set(key, value);\n } else {\n params.delete(key);\n }\n return params;\n },\n { replace: true }\n );\n };\n\n if (manifests.isError) {\n return <GenericError />;\n }\n\n const renderList = () => {\n // without the toolbar the list keeps the server order: nothing on screen could change it\n if (packages.length <= 1 || configOptions.showPackageListToolbar === false) {\n return <PackageList packages={packages} />;\n }\n return (\n <>\n <PackageListToolbar\n onQueryChange={(value) => updateParam(QUERY_PARAM, value)}\n onScopeChange={(value) => updateParam(SCOPE_PARAM, value)}\n onSortChange={setSort}\n query={query}\n scope={scope}\n scopes={scopes}\n shown={visiblePackages.length}\n sort={sort}\n total={packages.length}\n />\n {visiblePackages.length > 0 ? (\n <PackageList key={`${query}|${scope}|${sort}`} packages={visiblePackages} />\n ) : (\n <div data-testid=\"package-list-no-match\">\n <NoItems text={t('packageList.no-match')} />\n </div>\n )}\n </>\n );\n };\n\n return (\n <div className=\"container content\" data-testid=\"home-page-container\">\n {manifests.isLoading ? <PackageListSkeleton /> : renderList()}\n </div>\n );\n};\n\nexport default Home;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAeA,IAAM,cAAc;AACpB,IAAM,cAAc;AACpB,IAAM,mBAAmB;AACzB,IAAM,QAAuB,CAAC;AAE9B,IAAM,aAAuB;CAC3B,MAAM,EAAE,OAAA,GAAMA,cAAAA,eAAAA,CAAe;CAC7B,MAAM,YAAYC,0BAAAA,aAAa;CAC/B,MAAM,EAAE,kBAAkBC,iCAAAA,UAAU;CACpC,MAAM,CAAC,cAAc,oBAAA,GAAmBC,aAAAA,gBAAAA,CAAgB;CACxD,MAAM,CAAC,YAAY,WAAWC,wBAAAA,QAA6B,kBAAkBC,uBAAAA,YAAY,OAAO;CAChG,MAAM,OAAO,OAAO,OAAOA,uBAAAA,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,aAAaA,uBAAAA,YAAY;CACxF,MAAM,WAAY,UAAU,aAA2C;CACvE,MAAM,UAAA,GAASC,MAAAA,QAAAA,OAAcC,uBAAAA,UAAU,QAAQ,GAAG,CAAC,QAAQ,CAAC;CAC5D,MAAM,QAAQ,aAAa,IAAI,WAAW,KAAK;CAC/C,MAAM,iBAAiB,aAAa,IAAI,WAAW,KAAK;CACxD,MAAM,QAAQ,OAAO,SAAS,cAAc,IAAI,iBAAiB;CACjE,MAAM,mBAAA,GAAkBD,MAAAA,QAAAA,OAChBE,uBAAAA,eAAe,UAAU;EAAE;EAAO;EAAO;CAAK,CAAC,GACrD;EAAC;EAAU;EAAO;EAAO;CAAI,CAC/B;CAGA,MAAM,eAAe,KAAa,UAAkB;EAClD,iBACG,WAAW;GACV,IAAI,OACF,OAAO,IAAI,KAAK,KAAK;QAErB,OAAO,OAAO,GAAG;GAEnB,OAAO;EACT,GACA,EAAE,SAAS,KAAK,CAClB;CACF;CAEA,IAAI,UAAU,SACZ,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,qBAAAA,SAAD,CAAe,CAAA;CAGxB,MAAM,mBAAmB;EAEvB,IAAI,SAAS,UAAU,KAAK,cAAc,2BAA2B,OACnE,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,oBAAAA,SAAD,EAAuB,SAAW,CAAA;EAE3C,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAAC,kBAAAA,UAAA,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,2BAAAA,SAAD;GACE,gBAAgB,UAAU,YAAY,aAAa,KAAK;GACxD,gBAAgB,UAAU,YAAY,aAAa,KAAK;GACxD,cAAc;GACP;GACA;GACC;GACR,OAAO,gBAAgB;GACjB;GACN,OAAO,SAAS;EACjB,CAAA,GACA,gBAAgB,SAAS,IACxB,iBAAA,GAAA,kBAAA,IAAA,CAACF,oBAAAA,SAAD,EAA+C,UAAU,gBAAkB,GAAzD,GAAG,MAAM,GAAG,MAAM,GAAG,MAAoC,IAE3E,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GAAK,eAAY;GACf,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACG,gBAAAA,SAAD,EAAS,MAAM,EAAE,sBAAsB,EAAI,CAAA;EACxC,CAAA,CAEP,EAAA,CAAA;CAEN;CAEA,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAoB,eAAY;EAC5C,UAAA,UAAU,YAAY,iBAAA,GAAA,kBAAA,IAAA,CAACC,4BAAAA,SAAD,CAAsB,CAAA,IAAI,WAAW;CACzD,CAAA;AAET"}