@lokalise/harmony 1.40.1 → 1.40.3-exp-epic2x.1

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 (408) hide show
  1. package/dist/harmony.css +110 -317
  2. package/dist/harmony100.cjs +8 -11
  3. package/dist/harmony100.cjs.map +1 -1
  4. package/dist/harmony100.mjs +8 -11
  5. package/dist/harmony100.mjs.map +1 -1
  6. package/dist/harmony101.cjs +47 -12
  7. package/dist/harmony101.cjs.map +1 -1
  8. package/dist/harmony101.mjs +46 -11
  9. package/dist/harmony101.mjs.map +1 -1
  10. package/dist/harmony102.cjs +6 -3
  11. package/dist/harmony102.cjs.map +1 -1
  12. package/dist/harmony102.mjs +6 -3
  13. package/dist/harmony102.mjs.map +1 -1
  14. package/dist/harmony103.cjs +99 -9
  15. package/dist/harmony103.cjs.map +1 -1
  16. package/dist/harmony103.mjs +81 -8
  17. package/dist/harmony103.mjs.map +1 -1
  18. package/dist/harmony104.cjs +14 -9
  19. package/dist/harmony104.cjs.map +1 -1
  20. package/dist/harmony104.mjs +13 -8
  21. package/dist/harmony104.mjs.map +1 -1
  22. package/dist/harmony105.cjs +20 -57
  23. package/dist/harmony105.cjs.map +1 -1
  24. package/dist/harmony105.mjs +20 -57
  25. package/dist/harmony105.mjs.map +1 -1
  26. package/dist/harmony106.cjs +9 -42
  27. package/dist/harmony106.cjs.map +1 -1
  28. package/dist/harmony106.mjs +8 -41
  29. package/dist/harmony106.mjs.map +1 -1
  30. package/dist/harmony107.cjs +14 -5
  31. package/dist/harmony107.cjs.map +1 -1
  32. package/dist/harmony107.mjs +14 -5
  33. package/dist/harmony107.mjs.map +1 -1
  34. package/dist/harmony108.cjs +17 -9
  35. package/dist/harmony108.cjs.map +1 -1
  36. package/dist/harmony108.mjs +16 -8
  37. package/dist/harmony108.mjs.map +1 -1
  38. package/dist/harmony109.cjs +21 -24
  39. package/dist/harmony109.cjs.map +1 -1
  40. package/dist/harmony109.mjs +20 -23
  41. package/dist/harmony109.mjs.map +1 -1
  42. package/dist/harmony110.cjs +10 -6
  43. package/dist/harmony110.cjs.map +1 -1
  44. package/dist/harmony110.mjs +9 -5
  45. package/dist/harmony110.mjs.map +1 -1
  46. package/dist/harmony111.cjs +22 -14
  47. package/dist/harmony111.cjs.map +1 -1
  48. package/dist/harmony111.mjs +24 -16
  49. package/dist/harmony111.mjs.map +1 -1
  50. package/dist/harmony112.cjs +14 -12
  51. package/dist/harmony112.cjs.map +1 -1
  52. package/dist/harmony112.mjs +13 -11
  53. package/dist/harmony112.mjs.map +1 -1
  54. package/dist/harmony113.cjs +35 -12
  55. package/dist/harmony113.cjs.map +1 -1
  56. package/dist/harmony113.mjs +35 -12
  57. package/dist/harmony113.mjs.map +1 -1
  58. package/dist/harmony114.cjs +14 -18
  59. package/dist/harmony114.cjs.map +1 -1
  60. package/dist/harmony114.mjs +14 -18
  61. package/dist/harmony114.mjs.map +1 -1
  62. package/dist/harmony115.cjs +19 -84
  63. package/dist/harmony115.cjs.map +1 -1
  64. package/dist/harmony115.mjs +19 -84
  65. package/dist/harmony115.mjs.map +1 -1
  66. package/dist/harmony116.cjs +34 -29
  67. package/dist/harmony116.cjs.map +1 -1
  68. package/dist/harmony116.mjs +34 -29
  69. package/dist/harmony116.mjs.map +1 -1
  70. package/dist/harmony117.cjs +21 -99
  71. package/dist/harmony117.cjs.map +1 -1
  72. package/dist/harmony117.mjs +20 -81
  73. package/dist/harmony117.mjs.map +1 -1
  74. package/dist/harmony118.cjs +21 -21
  75. package/dist/harmony118.cjs.map +1 -1
  76. package/dist/harmony118.mjs +20 -20
  77. package/dist/harmony118.mjs.map +1 -1
  78. package/dist/harmony119.cjs +6 -6
  79. package/dist/harmony119.cjs.map +1 -1
  80. package/dist/harmony119.mjs +5 -5
  81. package/dist/harmony119.mjs.map +1 -1
  82. package/dist/harmony120.cjs +15 -132
  83. package/dist/harmony120.cjs.map +1 -1
  84. package/dist/harmony120.mjs +14 -131
  85. package/dist/harmony120.mjs.map +1 -1
  86. package/dist/harmony121.cjs +87 -12
  87. package/dist/harmony121.cjs.map +1 -1
  88. package/dist/harmony121.mjs +86 -11
  89. package/dist/harmony121.mjs.map +1 -1
  90. package/dist/harmony122.cjs +30 -5
  91. package/dist/harmony122.cjs.map +1 -1
  92. package/dist/harmony122.mjs +30 -5
  93. package/dist/harmony122.mjs.map +1 -1
  94. package/dist/harmony123.cjs +6 -41
  95. package/dist/harmony123.cjs.map +1 -1
  96. package/dist/harmony123.mjs +5 -40
  97. package/dist/harmony123.mjs.map +1 -1
  98. package/dist/harmony124.cjs +6 -61
  99. package/dist/harmony124.cjs.map +1 -1
  100. package/dist/harmony124.mjs +5 -60
  101. package/dist/harmony124.mjs.map +1 -1
  102. package/dist/harmony125.cjs +96 -7
  103. package/dist/harmony125.cjs.map +1 -1
  104. package/dist/harmony125.mjs +96 -7
  105. package/dist/harmony125.mjs.map +1 -1
  106. package/dist/harmony126.cjs +14 -7
  107. package/dist/harmony126.cjs.map +1 -1
  108. package/dist/harmony126.mjs +13 -6
  109. package/dist/harmony126.mjs.map +1 -1
  110. package/dist/harmony127.cjs +14 -10
  111. package/dist/harmony127.cjs.map +1 -1
  112. package/dist/harmony127.mjs +14 -10
  113. package/dist/harmony127.mjs.map +1 -1
  114. package/dist/harmony128.cjs +37 -6
  115. package/dist/harmony128.cjs.map +1 -1
  116. package/dist/harmony128.mjs +36 -5
  117. package/dist/harmony128.mjs.map +1 -1
  118. package/dist/harmony129.cjs +29 -6
  119. package/dist/harmony129.cjs.map +1 -1
  120. package/dist/harmony129.mjs +28 -5
  121. package/dist/harmony129.mjs.map +1 -1
  122. package/dist/harmony130.cjs +10 -63
  123. package/dist/harmony130.cjs.map +1 -1
  124. package/dist/harmony130.mjs +9 -62
  125. package/dist/harmony130.mjs.map +1 -1
  126. package/dist/harmony131.cjs +6 -88
  127. package/dist/harmony131.cjs.map +1 -1
  128. package/dist/harmony131.mjs +5 -87
  129. package/dist/harmony131.mjs.map +1 -1
  130. package/dist/harmony132.cjs +6 -15
  131. package/dist/harmony132.cjs.map +1 -1
  132. package/dist/harmony132.mjs +6 -15
  133. package/dist/harmony132.mjs.map +1 -1
  134. package/dist/harmony133.cjs +25 -97
  135. package/dist/harmony133.cjs.map +1 -1
  136. package/dist/harmony133.mjs +24 -96
  137. package/dist/harmony133.mjs.map +1 -1
  138. package/dist/harmony134.cjs +7 -14
  139. package/dist/harmony134.cjs.map +1 -1
  140. package/dist/harmony134.mjs +6 -13
  141. package/dist/harmony134.mjs.map +1 -1
  142. package/dist/harmony135.cjs +13 -15
  143. package/dist/harmony135.cjs.map +1 -1
  144. package/dist/harmony135.mjs +12 -14
  145. package/dist/harmony135.mjs.map +1 -1
  146. package/dist/harmony136.cjs +7 -37
  147. package/dist/harmony136.cjs.map +1 -1
  148. package/dist/harmony136.mjs +6 -36
  149. package/dist/harmony136.mjs.map +1 -1
  150. package/dist/harmony137.cjs +10 -28
  151. package/dist/harmony137.cjs.map +1 -1
  152. package/dist/harmony137.mjs +10 -28
  153. package/dist/harmony137.mjs.map +1 -1
  154. package/dist/harmony138.cjs +13 -7
  155. package/dist/harmony138.cjs.map +1 -1
  156. package/dist/harmony138.mjs +13 -7
  157. package/dist/harmony138.mjs.map +1 -1
  158. package/dist/harmony139.cjs +15 -57
  159. package/dist/harmony139.cjs.map +1 -1
  160. package/dist/harmony139.mjs +15 -57
  161. package/dist/harmony139.mjs.map +1 -1
  162. package/dist/harmony14.cjs +1 -1
  163. package/dist/harmony14.mjs +1 -1
  164. package/dist/harmony140.cjs +15 -59
  165. package/dist/harmony140.cjs.map +1 -1
  166. package/dist/harmony140.mjs +15 -59
  167. package/dist/harmony140.mjs.map +1 -1
  168. package/dist/harmony141.cjs +12 -19
  169. package/dist/harmony141.cjs.map +1 -1
  170. package/dist/harmony141.mjs +11 -18
  171. package/dist/harmony141.mjs.map +1 -1
  172. package/dist/harmony142.cjs +15 -12
  173. package/dist/harmony142.cjs.map +1 -1
  174. package/dist/harmony142.mjs +15 -12
  175. package/dist/harmony142.mjs.map +1 -1
  176. package/dist/harmony143.cjs +19 -13
  177. package/dist/harmony143.cjs.map +1 -1
  178. package/dist/harmony143.mjs +19 -13
  179. package/dist/harmony143.mjs.map +1 -1
  180. package/dist/harmony144.cjs +10 -14
  181. package/dist/harmony144.cjs.map +1 -1
  182. package/dist/harmony144.mjs +10 -14
  183. package/dist/harmony144.mjs.map +1 -1
  184. package/dist/harmony145.cjs +5 -10
  185. package/dist/harmony145.cjs.map +1 -1
  186. package/dist/harmony145.mjs +5 -10
  187. package/dist/harmony145.mjs.map +1 -1
  188. package/dist/harmony146.cjs +11 -15
  189. package/dist/harmony146.cjs.map +1 -1
  190. package/dist/harmony146.mjs +11 -15
  191. package/dist/harmony146.mjs.map +1 -1
  192. package/dist/harmony147.cjs +28 -17
  193. package/dist/harmony147.cjs.map +1 -1
  194. package/dist/harmony147.mjs +28 -17
  195. package/dist/harmony147.mjs.map +1 -1
  196. package/dist/harmony148.cjs +12 -10
  197. package/dist/harmony148.cjs.map +1 -1
  198. package/dist/harmony148.mjs +12 -10
  199. package/dist/harmony148.mjs.map +1 -1
  200. package/dist/harmony17.cjs +1 -1
  201. package/dist/harmony17.mjs +1 -1
  202. package/dist/harmony25.cjs +1 -1
  203. package/dist/harmony25.mjs +1 -1
  204. package/dist/harmony26.cjs +1 -1
  205. package/dist/harmony26.mjs +1 -1
  206. package/dist/harmony4.cjs +15 -24
  207. package/dist/harmony4.cjs.map +1 -1
  208. package/dist/harmony4.mjs +15 -24
  209. package/dist/harmony4.mjs.map +1 -1
  210. package/dist/harmony5.cjs +1 -1
  211. package/dist/harmony5.mjs +1 -1
  212. package/dist/harmony6.cjs +3 -3
  213. package/dist/harmony6.mjs +3 -3
  214. package/dist/harmony66.cjs +1 -0
  215. package/dist/harmony66.cjs.map +1 -1
  216. package/dist/harmony66.mjs +1 -0
  217. package/dist/harmony66.mjs.map +1 -1
  218. package/dist/harmony7.cjs +1 -1
  219. package/dist/harmony7.mjs +1 -1
  220. package/dist/harmony75.cjs +1 -1
  221. package/dist/harmony75.mjs +1 -1
  222. package/dist/harmony76.cjs +51 -6
  223. package/dist/harmony76.cjs.map +1 -1
  224. package/dist/harmony76.mjs +50 -5
  225. package/dist/harmony76.mjs.map +1 -1
  226. package/dist/harmony77.cjs +38 -8
  227. package/dist/harmony77.cjs.map +1 -1
  228. package/dist/harmony77.mjs +38 -8
  229. package/dist/harmony77.mjs.map +1 -1
  230. package/dist/harmony78.cjs +9 -18
  231. package/dist/harmony78.cjs.map +1 -1
  232. package/dist/harmony78.mjs +8 -17
  233. package/dist/harmony78.mjs.map +1 -1
  234. package/dist/harmony79.cjs +6 -21
  235. package/dist/harmony79.cjs.map +1 -1
  236. package/dist/harmony79.mjs +8 -23
  237. package/dist/harmony79.mjs.map +1 -1
  238. package/dist/harmony8.cjs +5 -5
  239. package/dist/harmony8.mjs +5 -5
  240. package/dist/harmony80.cjs +28 -4
  241. package/dist/harmony80.cjs.map +1 -1
  242. package/dist/harmony80.mjs +28 -4
  243. package/dist/harmony80.mjs.map +1 -1
  244. package/dist/harmony81.cjs +3 -32
  245. package/dist/harmony81.cjs.map +1 -1
  246. package/dist/harmony81.mjs +3 -32
  247. package/dist/harmony81.mjs.map +1 -1
  248. package/dist/harmony82.cjs +30 -29
  249. package/dist/harmony82.cjs.map +1 -1
  250. package/dist/harmony82.mjs +31 -30
  251. package/dist/harmony82.mjs.map +1 -1
  252. package/dist/harmony83.cjs +43 -19
  253. package/dist/harmony83.cjs.map +1 -1
  254. package/dist/harmony83.mjs +43 -19
  255. package/dist/harmony83.mjs.map +1 -1
  256. package/dist/harmony84.cjs +27 -29
  257. package/dist/harmony84.cjs.map +1 -1
  258. package/dist/harmony84.mjs +27 -29
  259. package/dist/harmony84.mjs.map +1 -1
  260. package/dist/harmony85.cjs +64 -57
  261. package/dist/harmony85.cjs.map +1 -1
  262. package/dist/harmony85.mjs +64 -57
  263. package/dist/harmony85.mjs.map +1 -1
  264. package/dist/harmony86.cjs +15 -9
  265. package/dist/harmony86.cjs.map +1 -1
  266. package/dist/harmony86.mjs +14 -8
  267. package/dist/harmony86.mjs.map +1 -1
  268. package/dist/harmony87.cjs +3 -8
  269. package/dist/harmony87.cjs.map +1 -1
  270. package/dist/harmony87.mjs +3 -8
  271. package/dist/harmony87.mjs.map +1 -1
  272. package/dist/harmony88.cjs +10 -27
  273. package/dist/harmony88.cjs.map +1 -1
  274. package/dist/harmony88.mjs +11 -28
  275. package/dist/harmony88.mjs.map +1 -1
  276. package/dist/harmony89.cjs +13 -4
  277. package/dist/harmony89.cjs.map +1 -1
  278. package/dist/harmony89.mjs +12 -3
  279. package/dist/harmony89.mjs.map +1 -1
  280. package/dist/harmony90.cjs +9 -31
  281. package/dist/harmony90.cjs.map +1 -1
  282. package/dist/harmony90.mjs +10 -32
  283. package/dist/harmony90.mjs.map +1 -1
  284. package/dist/harmony91.cjs +22 -44
  285. package/dist/harmony91.cjs.map +1 -1
  286. package/dist/harmony91.mjs +21 -43
  287. package/dist/harmony91.mjs.map +1 -1
  288. package/dist/harmony92.cjs +160 -23
  289. package/dist/harmony92.cjs.map +1 -1
  290. package/dist/harmony92.mjs +160 -23
  291. package/dist/harmony92.mjs.map +1 -1
  292. package/dist/harmony93.cjs +41 -63
  293. package/dist/harmony93.cjs.map +1 -1
  294. package/dist/harmony93.mjs +41 -63
  295. package/dist/harmony93.mjs.map +1 -1
  296. package/dist/harmony94.cjs +25 -13
  297. package/dist/harmony94.cjs.map +1 -1
  298. package/dist/harmony94.mjs +26 -14
  299. package/dist/harmony94.mjs.map +1 -1
  300. package/dist/harmony95.cjs +3 -3
  301. package/dist/harmony95.cjs.map +1 -1
  302. package/dist/harmony95.mjs +3 -3
  303. package/dist/harmony95.mjs.map +1 -1
  304. package/dist/harmony96.cjs +16 -164
  305. package/dist/harmony96.cjs.map +1 -1
  306. package/dist/harmony96.mjs +16 -164
  307. package/dist/harmony96.mjs.map +1 -1
  308. package/dist/harmony97.cjs +73 -42
  309. package/dist/harmony97.cjs.map +1 -1
  310. package/dist/harmony97.mjs +73 -42
  311. package/dist/harmony97.mjs.map +1 -1
  312. package/dist/harmony98.cjs +12 -11
  313. package/dist/harmony98.cjs.map +1 -1
  314. package/dist/harmony98.mjs +12 -11
  315. package/dist/harmony98.mjs.map +1 -1
  316. package/dist/harmony99.cjs +31 -22
  317. package/dist/harmony99.cjs.map +1 -1
  318. package/dist/harmony99.mjs +30 -21
  319. package/dist/harmony99.mjs.map +1 -1
  320. package/dist/types/src/components/Sidebar/Sidebar.d.ts +15 -49
  321. package/dist/types/src/components/Sidebar/SidebarContent/SidebarContent.d.ts +7 -0
  322. package/dist/types/src/components/Sidebar/SidebarContext.d.ts +3 -0
  323. package/dist/types/src/components/Sidebar/SidebarProvider.d.ts +3 -0
  324. package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +5 -0
  325. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.d.ts +13 -0
  326. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.test.d.ts +1 -0
  327. package/dist/types/src/components/Sidebar/Widgets/IconLink/IconLink.test.d.ts +1 -0
  328. package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +3 -2
  329. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.d.ts +13 -0
  330. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.d.ts +17 -0
  331. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.test.d.ts +1 -0
  332. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.d.ts +17 -0
  333. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.test.d.ts +1 -0
  334. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.d.ts +18 -0
  335. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +11 -24
  336. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.stories.d.ts +3 -5
  337. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +10 -35
  338. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.test.d.ts +1 -0
  339. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.d.ts +13 -0
  340. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.test.d.ts +1 -0
  341. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +1 -3
  342. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.test.d.ts +1 -0
  343. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.d.ts +13 -0
  344. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.test.d.ts +1 -0
  345. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +5 -7
  346. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.test.d.ts +1 -0
  347. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +6 -9
  348. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.test.d.ts +1 -0
  349. package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/content.d.ts +4 -0
  350. package/dist/types/src/components/Sidebar/hooks/useSidebar.d.ts +1 -0
  351. package/dist/types/src/components/Sidebar/hooks/useSidebarDataLoader.d.ts +5 -0
  352. package/dist/types/src/components/Sidebar/types.d.ts +72 -0
  353. package/dist/types/src/features/auth/core/types/jwtTokenPayload.d.ts +16 -10
  354. package/dist/types/src/features/auth/core/types/jwtTokenPayload.fixture.d.ts +15 -11
  355. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedSessionPayload.d.ts +7 -5
  356. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
  357. package/dist/types/src/features/navigation/hooks/useNavigation.d.ts +1 -1
  358. package/dist/types/src/features/navigation/hooks/useNavigationQueries.d.ts +3 -3
  359. package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +2 -2
  360. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +2 -2
  361. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
  362. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +1 -1
  363. package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +2 -2
  364. package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
  365. package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +1 -1
  366. package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +1 -1
  367. package/dist/types/src/features/publicApi/permissionTemplates.d.ts +4 -4
  368. package/dist/types/src/features/publicApi/projects.d.ts +28 -28
  369. package/dist/types/src/features/publicApi/teamUsers.d.ts +8 -8
  370. package/dist/types/src/features/publicApi/types/permissionTemplateTypes.d.ts +6 -6
  371. package/dist/types/src/features/publicApi/types/permissionTypes.d.ts +2 -2
  372. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +27 -27
  373. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +10 -10
  374. package/dist/types/src/utils/user/permissions.d.ts +9 -0
  375. package/dist/types/src/utils/user/permissions.test.d.ts +1 -0
  376. package/dist/types/tests/mocks/sidebar/sidebar.d.ts +19 -0
  377. package/dist/types/tests/utils/sidebar.d.ts +4 -0
  378. package/package.json +1 -1
  379. package/dist/harmony149.cjs +0 -9
  380. package/dist/harmony149.cjs.map +0 -1
  381. package/dist/harmony149.mjs +0 -9
  382. package/dist/harmony149.mjs.map +0 -1
  383. package/dist/harmony150.cjs +0 -15
  384. package/dist/harmony150.cjs.map +0 -1
  385. package/dist/harmony150.mjs +0 -15
  386. package/dist/harmony150.mjs.map +0 -1
  387. package/dist/harmony151.cjs +0 -35
  388. package/dist/harmony151.cjs.map +0 -1
  389. package/dist/harmony151.mjs +0 -35
  390. package/dist/harmony151.mjs.map +0 -1
  391. package/dist/harmony152.cjs +0 -17
  392. package/dist/harmony152.cjs.map +0 -1
  393. package/dist/harmony152.mjs +0 -17
  394. package/dist/harmony152.mjs.map +0 -1
  395. package/dist/harmony153.cjs +0 -49
  396. package/dist/harmony153.cjs.map +0 -1
  397. package/dist/harmony153.mjs +0 -49
  398. package/dist/harmony153.mjs.map +0 -1
  399. package/dist/harmony154.cjs +0 -15
  400. package/dist/harmony154.cjs.map +0 -1
  401. package/dist/harmony154.mjs +0 -15
  402. package/dist/harmony154.mjs.map +0 -1
  403. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContent.d.ts +0 -6
  404. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.d.ts +0 -3
  405. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.d.ts +0 -7
  406. package/dist/types/src/components/Sidebar/utils/index.d.ts +0 -4
  407. /package/dist/types/src/components/Sidebar/Widgets/{ProfileMenu/ProfileMenu.test.d.ts → Avatar/Avatar.test.d.ts} +0 -0
  408. /package/dist/types/src/components/Sidebar/{UpgradeIcon → Widgets/ProfileMenu/UpgradeIcon}/UpgradeIcon.d.ts +0 -0
@@ -1,15 +1,17 @@
1
- const container = "_container_1u995_1";
2
- const planCta = "_planCta_1u995_15";
3
- const upgradeIconWrapper = "_upgradeIconWrapper_1u995_19";
4
- const styles = {
5
- container,
6
- planCta,
7
- upgradeIconWrapper
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony98.mjs";
3
+ import { MenuItem } from "@lokalise/louis";
4
+ import { canAccessProviderDashboard } from "./harmony99.mjs";
5
+ const ProviderMenuItem = () => {
6
+ const {
7
+ data: { jwt }
8
+ } = useSidebar();
9
+ if (!canAccessProviderDashboard(jwt.result)) {
10
+ return null;
11
+ }
12
+ return /* @__PURE__ */ jsx(MenuItem, { href: "/provider", children: "Provider dashboard" });
8
13
  };
9
14
  export {
10
- container,
11
- styles as default,
12
- planCta,
13
- upgradeIconWrapper
15
+ ProviderMenuItem
14
16
  };
15
17
  //# sourceMappingURL=harmony112.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony112.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"harmony112.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProviderDashboard } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the provider dashboard.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProviderMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const ProviderMenuItem = () => {\n\tconst {\n\t\tdata: { jwt },\n\t} = useSidebar()\n\n\tif (!canAccessProviderDashboard(jwt.result)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/provider\">Provider dashboard</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,mBAAmB,MAAM;AAC/B,QAAA;AAAA,IACL,MAAM,EAAE,IAAI;AAAA,MACT,WAAW;AAEf,MAAI,CAAC,2BAA2B,IAAI,MAAM,GAAG;AACrC,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,aAAY,UAAkB,sBAAA;AACrD;"}
@@ -1,17 +1,40 @@
1
1
  "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
- const jwtTokenPayload = require("./harmony17.cjs");
7
- const _NewJwtIssuedEvent = class _NewJwtIssuedEvent extends CustomEvent {
8
- constructor(token) {
9
- super(_NewJwtIssuedEvent.eventName, {
10
- detail: { token, payload: jwtTokenPayload.parseJwtTokenPayload(token.accessToken) }
11
- });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony98.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const plan = require("./harmony9.cjs");
7
+ const TeamMenuItem_module = require("./harmony133.cjs");
8
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
9
+ var _a;
10
+ const {
11
+ data: { currentTeam, jwt }
12
+ } = useSidebar.useSidebar();
13
+ const contextTeam = team || currentTeam.result;
14
+ if (!contextTeam || typeof ((_a = jwt.result) == null ? void 0 : _a.planId) !== "number" || !Number.isFinite(jwt.result.planId)) {
15
+ return null;
12
16
  }
17
+ const planId = jwt.result.planId;
18
+ const planLabel = plan.isFreePlan(planId) ? "Free" : plan.isTrialPlan(planId) ? "Trial" : void 0;
19
+ const WrapperNode = onClick ? louis.MenuItem : "div";
20
+ return /* @__PURE__ */ jsxRuntime.jsxs(
21
+ WrapperNode,
22
+ {
23
+ "data-testid": "sidebar-team-menu-item",
24
+ className: TeamMenuItem_module.default.wrapper,
25
+ ...onClick && { onClick: () => onClick(contextTeam) },
26
+ children: [
27
+ contextTeam.logoUrl ? /* @__PURE__ */ jsxRuntime.jsx("img", { className: TeamMenuItem_module.default.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${TeamMenuItem_module.default.defaultProfileImage}`, children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" }) }),
28
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.teamDetails, children: [
29
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.planWrapper, children: [
30
+ /* @__PURE__ */ jsxRuntime.jsx("span", { title: contextTeam.name, className: TeamMenuItem_module.default.teamName, children: contextTeam.name }),
31
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.teamName, children: planLabel })
32
+ ] }),
33
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.membership, children: contextTeam.role })
34
+ ] })
35
+ ]
36
+ }
37
+ );
13
38
  };
14
- __publicField(_NewJwtIssuedEvent, "eventName", "new-jwt-issued");
15
- let NewJwtIssuedEvent = _NewJwtIssuedEvent;
16
- exports.NewJwtIssuedEvent = NewJwtIssuedEvent;
39
+ exports.TeamMenuItem = TeamMenuItem;
17
40
  //# sourceMappingURL=harmony113.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony113.cjs","sources":["../src/features/auth/frontend/events/NewJwtIssuedEvent.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\ntype NewJwtIssuedEventDetail = {\n\ttoken: JwtToken\n\tpayload: JwtTokenPayload | undefined\n}\n\n/**\n * This event is emitted when a new JWT token is issued or refreshed.\n */\nexport class NewJwtIssuedEvent extends CustomEvent<NewJwtIssuedEventDetail> {\n\tstatic readonly eventName = 'new-jwt-issued' as const\n\n\tconstructor(token: JwtToken) {\n\t\tsuper(NewJwtIssuedEvent.eventName, {\n\t\t\tdetail: { token, payload: parseJwtTokenPayload(token.accessToken) },\n\t\t})\n\t}\n}\n\nexport const isNewJwtIssuedEvent = (event: Event): event is NewJwtIssuedEvent =>\n\tevent.type === NewJwtIssuedEvent.eventName\n\ndeclare global {\n\tinterface WindowEventMap {\n\t\t[NewJwtIssuedEvent.eventName]: NewJwtIssuedEvent\n\t}\n}\n"],"names":["parseJwtTokenPayload"],"mappings":";;;;;;AAYO,MAAM,qBAAN,MAAM,2BAA0B,YAAqC;AAAA,EAG3E,YAAY,OAAiB;AAC5B,UAAM,mBAAkB,WAAW;AAAA,MAClC,QAAQ,EAAE,OAAO,SAASA,gBAAAA,qBAAqB,MAAM,WAAW,EAAE;AAAA,IAAA,CAClE;AAAA,EAAA;AAEH;AAPC,cADY,oBACI,aAAY;AADtB,IAAM,oBAAN;;"}
1
+ {"version":3,"file":"harmony113.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst contextTeam = team || currentTeam.result\n\n\tif (\n\t\t!contextTeam ||\n\t\ttypeof jwt.result?.planId !== 'number' ||\n\t\t!Number.isFinite(jwt.result.planId)\n\t) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.result.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid=\"sidebar-team-menu-item\"\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":["useSidebar","isFreePlan","isTrialPlan","MenuItem","jsxs","styles","jsx","UserIcon"],"mappings":";;;;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;;AAC9E,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtBA,sBAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAExC,MACC,CAAC,eACD,SAAO,SAAI,WAAJ,mBAAY,YAAW,YAC9B,CAAC,OAAO,SAAS,IAAI,OAAO,MAAM,GACjC;AACM,WAAA;AAAA,EAAA;AAGF,QAAA,SAAS,IAAI,OAAO;AAEpB,QAAA,YAAYC,gBAAW,MAAM,IAAI,SAASC,iBAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAUC,MAAAA,WAAW;AAGxC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAWC,oBAAO,QAAA;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,yCACX,OAAI,EAAA,WAAWA,oBAAAA,QAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9EC,+BAAA,QAAA,EAAK,WAAW,GAAGD,oBAAO,QAAA,mBAAmB,IAC7C,UAACC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEAH,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,UAACD,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,YAACC,2BAAAA,IAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAWD,oBAAAA,QAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiBC,2BAAAA,IAAC,UAAK,WAAWD,4BAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,yCACC,QAAK,EAAA,WAAWA,oBAAAA,QAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,17 +1,40 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { parseJwtTokenPayload } from "./harmony17.mjs";
5
- const _NewJwtIssuedEvent = class _NewJwtIssuedEvent extends CustomEvent {
6
- constructor(token) {
7
- super(_NewJwtIssuedEvent.eventName, {
8
- detail: { token, payload: parseJwtTokenPayload(token.accessToken) }
9
- });
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony98.mjs";
3
+ import { MenuItem, UserIcon } from "@lokalise/louis";
4
+ import { isFreePlan, isTrialPlan } from "./harmony9.mjs";
5
+ import styles from "./harmony133.mjs";
6
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
7
+ var _a;
8
+ const {
9
+ data: { currentTeam, jwt }
10
+ } = useSidebar();
11
+ const contextTeam = team || currentTeam.result;
12
+ if (!contextTeam || typeof ((_a = jwt.result) == null ? void 0 : _a.planId) !== "number" || !Number.isFinite(jwt.result.planId)) {
13
+ return null;
10
14
  }
15
+ const planId = jwt.result.planId;
16
+ const planLabel = isFreePlan(planId) ? "Free" : isTrialPlan(planId) ? "Trial" : void 0;
17
+ const WrapperNode = onClick ? MenuItem : "div";
18
+ return /* @__PURE__ */ jsxs(
19
+ WrapperNode,
20
+ {
21
+ "data-testid": "sidebar-team-menu-item",
22
+ className: styles.wrapper,
23
+ ...onClick && { onClick: () => onClick(contextTeam) },
24
+ children: [
25
+ contextTeam.logoUrl ? /* @__PURE__ */ jsx("img", { className: styles.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsx("span", { className: `${styles.defaultProfileImage}`, children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" }) }),
26
+ /* @__PURE__ */ jsxs("div", { className: styles.teamDetails, children: [
27
+ /* @__PURE__ */ jsxs("div", { className: styles.planWrapper, children: [
28
+ /* @__PURE__ */ jsx("span", { title: contextTeam.name, className: styles.teamName, children: contextTeam.name }),
29
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsx("span", { className: styles.teamName, children: planLabel })
30
+ ] }),
31
+ /* @__PURE__ */ jsx("span", { className: styles.membership, children: contextTeam.role })
32
+ ] })
33
+ ]
34
+ }
35
+ );
11
36
  };
12
- __publicField(_NewJwtIssuedEvent, "eventName", "new-jwt-issued");
13
- let NewJwtIssuedEvent = _NewJwtIssuedEvent;
14
37
  export {
15
- NewJwtIssuedEvent
38
+ TeamMenuItem
16
39
  };
17
40
  //# sourceMappingURL=harmony113.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony113.mjs","sources":["../src/features/auth/frontend/events/NewJwtIssuedEvent.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { parseJwtTokenPayload } from '@features/auth/core/utils/jwtTokenPayload'\nimport type { JwtToken } from '@features/publicApi/types/userTokenTypes'\n\ntype NewJwtIssuedEventDetail = {\n\ttoken: JwtToken\n\tpayload: JwtTokenPayload | undefined\n}\n\n/**\n * This event is emitted when a new JWT token is issued or refreshed.\n */\nexport class NewJwtIssuedEvent extends CustomEvent<NewJwtIssuedEventDetail> {\n\tstatic readonly eventName = 'new-jwt-issued' as const\n\n\tconstructor(token: JwtToken) {\n\t\tsuper(NewJwtIssuedEvent.eventName, {\n\t\t\tdetail: { token, payload: parseJwtTokenPayload(token.accessToken) },\n\t\t})\n\t}\n}\n\nexport const isNewJwtIssuedEvent = (event: Event): event is NewJwtIssuedEvent =>\n\tevent.type === NewJwtIssuedEvent.eventName\n\ndeclare global {\n\tinterface WindowEventMap {\n\t\t[NewJwtIssuedEvent.eventName]: NewJwtIssuedEvent\n\t}\n}\n"],"names":[],"mappings":";;;;AAYO,MAAM,qBAAN,MAAM,2BAA0B,YAAqC;AAAA,EAG3E,YAAY,OAAiB;AAC5B,UAAM,mBAAkB,WAAW;AAAA,MAClC,QAAQ,EAAE,OAAO,SAAS,qBAAqB,MAAM,WAAW,EAAE;AAAA,IAAA,CAClE;AAAA,EAAA;AAEH;AAPC,cADY,oBACI,aAAY;AADtB,IAAM,oBAAN;"}
1
+ {"version":3,"file":"harmony113.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst contextTeam = team || currentTeam.result\n\n\tif (\n\t\t!contextTeam ||\n\t\ttypeof jwt.result?.planId !== 'number' ||\n\t\t!Number.isFinite(jwt.result.planId)\n\t) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.result.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid=\"sidebar-team-menu-item\"\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;;AAC9E,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtB,WAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAExC,MACC,CAAC,eACD,SAAO,SAAI,WAAJ,mBAAY,YAAW,YAC9B,CAAC,OAAO,SAAS,IAAI,OAAO,MAAM,GACjC;AACM,WAAA;AAAA,EAAA;AAGF,QAAA,SAAS,IAAI,OAAO;AAEpB,QAAA,YAAY,WAAW,MAAM,IAAI,SAAS,YAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAU,WAAW;AAGxC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,OAAO;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,8BACX,OAAI,EAAA,WAAW,OAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9E,oBAAA,QAAA,EAAK,WAAW,GAAG,OAAO,mBAAmB,IAC7C,UAAC,oBAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEA,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,YAAC,oBAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAW,OAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiB,oBAAC,UAAK,WAAW,OAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,8BACC,QAAK,EAAA,WAAW,OAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,21 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const zod = require("zod");
4
- const teamRoleTypes = require("./harmony69.cjs");
5
- const JWT_TOKEN_PAYLOAD_SCHEMA = zod.z.object({
6
- userId: zod.z.number(),
7
- userUuid: zod.z.string().uuid(),
8
- teamId: zod.z.number(),
9
- teamUuid: zod.z.string().uuid(),
10
- userTeamRole: teamRoleTypes.TEAM_ROLE_SCHEMA,
11
- userEmail: zod.z.string().email(),
12
- userName: zod.z.string(),
13
- userCurrentTeamId: zod.z.number(),
14
- planId: zod.z.number(),
15
- planName: zod.z.string(),
16
- isProviderAlpha: zod.z.boolean(),
17
- isFullyAuthenticated: zod.z.boolean(),
18
- exp: zod.z.number()
19
- });
20
- exports.JWT_TOKEN_PAYLOAD_SCHEMA = JWT_TOKEN_PAYLOAD_SCHEMA;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony98.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const permissions = require("./harmony99.cjs");
7
+ const TeamSettingsMenuItem = () => {
8
+ const {
9
+ data: { jwt }
10
+ } = useSidebar.useSidebar();
11
+ if (!permissions.canAccessTeamSettings(jwt.result)) {
12
+ return null;
13
+ }
14
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/team", children: "Team settings" });
15
+ };
16
+ exports.TeamSettingsMenuItem = TeamSettingsMenuItem;
21
17
  //# sourceMappingURL=harmony114.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.cjs","sources":["../src/features/auth/core/types/jwtTokenPayload.ts"],"sourcesContent":["import { z } from 'zod'\nimport { TEAM_ROLE_SCHEMA } from '../../../publicApi/types/teamRoleTypes'\n\nexport const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({\n\tuserId: z.number(),\n\tuserUuid: z.string().uuid(),\n\tteamId: z.number(),\n\tteamUuid: z.string().uuid(),\n\tuserTeamRole: TEAM_ROLE_SCHEMA,\n\tuserEmail: z.string().email(),\n\tuserName: z.string(),\n\tuserCurrentTeamId: z.number(),\n\tplanId: z.number(),\n\tplanName: z.string(),\n\tisProviderAlpha: z.boolean(),\n\tisFullyAuthenticated: z.boolean(),\n\texp: z.number(),\n})\nexport type JwtTokenPayload = z.infer<typeof JWT_TOKEN_PAYLOAD_SCHEMA>\n"],"names":["z","TEAM_ROLE_SCHEMA"],"mappings":";;;;AAGa,MAAA,2BAA2BA,MAAE,OAAO;AAAA,EAChD,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,IAAA,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,IAAA,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,cAAcC,cAAA;AAAA,EACd,WAAWD,IAAA,EAAE,OAAO,EAAE,MAAM;AAAA,EAC5B,UAAUA,MAAE,OAAO;AAAA,EACnB,mBAAmBA,MAAE,OAAO;AAAA,EAC5B,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,MAAE,OAAO;AAAA,EACnB,iBAAiBA,MAAE,QAAQ;AAAA,EAC3B,sBAAsBA,MAAE,QAAQ;AAAA,EAChC,KAAKA,MAAE,OAAO;AACf,CAAC;;"}
1
+ {"version":3,"file":"harmony114.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessTeamSettings } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the team settings page.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <TeamSettingsMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamSettingsMenuItem = () => {\n\tconst {\n\t\tdata: { jwt },\n\t} = useSidebar()\n\n\tif (!canAccessTeamSettings(jwt.result)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team\">Team settings</MenuItem>\n}\n"],"names":["useSidebar","canAccessTeamSettings","jsx","MenuItem"],"mappings":";;;;;;AAiBO,MAAM,uBAAuB,MAAM;AACnC,QAAA;AAAA,IACL,MAAM,EAAE,IAAI;AAAA,MACTA,sBAAW;AAEf,MAAI,CAACC,YAAA,sBAAsB,IAAI,MAAM,GAAG;AAChC,WAAA;AAAA,EAAA;AAGR,SAAQC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,SAAQ,UAAa,iBAAA;AAC5C;;"}
@@ -1,21 +1,17 @@
1
- import { z } from "zod";
2
- import { TEAM_ROLE_SCHEMA } from "./harmony69.mjs";
3
- const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({
4
- userId: z.number(),
5
- userUuid: z.string().uuid(),
6
- teamId: z.number(),
7
- teamUuid: z.string().uuid(),
8
- userTeamRole: TEAM_ROLE_SCHEMA,
9
- userEmail: z.string().email(),
10
- userName: z.string(),
11
- userCurrentTeamId: z.number(),
12
- planId: z.number(),
13
- planName: z.string(),
14
- isProviderAlpha: z.boolean(),
15
- isFullyAuthenticated: z.boolean(),
16
- exp: z.number()
17
- });
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony98.mjs";
3
+ import { MenuItem } from "@lokalise/louis";
4
+ import { canAccessTeamSettings } from "./harmony99.mjs";
5
+ const TeamSettingsMenuItem = () => {
6
+ const {
7
+ data: { jwt }
8
+ } = useSidebar();
9
+ if (!canAccessTeamSettings(jwt.result)) {
10
+ return null;
11
+ }
12
+ return /* @__PURE__ */ jsx(MenuItem, { href: "/team", children: "Team settings" });
13
+ };
18
14
  export {
19
- JWT_TOKEN_PAYLOAD_SCHEMA
15
+ TeamSettingsMenuItem
20
16
  };
21
17
  //# sourceMappingURL=harmony114.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.mjs","sources":["../src/features/auth/core/types/jwtTokenPayload.ts"],"sourcesContent":["import { z } from 'zod'\nimport { TEAM_ROLE_SCHEMA } from '../../../publicApi/types/teamRoleTypes'\n\nexport const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({\n\tuserId: z.number(),\n\tuserUuid: z.string().uuid(),\n\tteamId: z.number(),\n\tteamUuid: z.string().uuid(),\n\tuserTeamRole: TEAM_ROLE_SCHEMA,\n\tuserEmail: z.string().email(),\n\tuserName: z.string(),\n\tuserCurrentTeamId: z.number(),\n\tplanId: z.number(),\n\tplanName: z.string(),\n\tisProviderAlpha: z.boolean(),\n\tisFullyAuthenticated: z.boolean(),\n\texp: z.number(),\n})\nexport type JwtTokenPayload = z.infer<typeof JWT_TOKEN_PAYLOAD_SCHEMA>\n"],"names":[],"mappings":";;AAGa,MAAA,2BAA2B,EAAE,OAAO;AAAA,EAChD,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,cAAc;AAAA,EACd,WAAW,EAAE,OAAO,EAAE,MAAM;AAAA,EAC5B,UAAU,EAAE,OAAO;AAAA,EACnB,mBAAmB,EAAE,OAAO;AAAA,EAC5B,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO;AAAA,EACnB,iBAAiB,EAAE,QAAQ;AAAA,EAC3B,sBAAsB,EAAE,QAAQ;AAAA,EAChC,KAAK,EAAE,OAAO;AACf,CAAC;"}
1
+ {"version":3,"file":"harmony114.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessTeamSettings } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the team settings page.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <TeamSettingsMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamSettingsMenuItem = () => {\n\tconst {\n\t\tdata: { jwt },\n\t} = useSidebar()\n\n\tif (!canAccessTeamSettings(jwt.result)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team\">Team settings</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,uBAAuB,MAAM;AACnC,QAAA;AAAA,IACL,MAAM,EAAE,IAAI;AAAA,MACT,WAAW;AAEf,MAAI,CAAC,sBAAsB,IAAI,MAAM,GAAG;AAChC,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,SAAQ,UAAa,iBAAA;AAC5C;"}
@@ -1,90 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const permissions = require("./harmony127.cjs");
4
- const getProjectNavigationVisibilityMap = (project, adminRights, isFeatureEnabled) => {
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony98.cjs");
5
+ const TeamMenuItem = require("./harmony113.cjs");
6
+ const TeamSwitch_module = require("./harmony134.cjs");
7
+ const TeamSwitch = ({ onSwitchTeam }) => {
5
8
  var _a, _b;
6
- return {
7
- upload: {
8
- visible: permissions.hasAdminRight(adminRights, "upload"),
9
- disabled: false
10
- },
11
- download: {
12
- visible: permissions.hasAdminRight(adminRights, "download"),
13
- disabled: false
14
- },
15
- // TODO: HOME-1009, Clean up after permission management
16
- // -- There is a plan for "Install apps" permission. Right..?
17
- apps: {
18
- visible: true,
19
- disabled: false
20
- },
21
- // TODO: HOME-1009, Clean up after permission management
22
- // -- There is a plan for "Install apps" permission. Right..?
23
- contentManagement: {
24
- visible: project.project_type === "content_integration" && permissions.hasAdminRight(adminRights, "keys"),
25
- disabled: false
26
- },
27
- editor: {
28
- visible: true,
29
- disabled: false
30
- },
31
- files: {
32
- visible: isFeatureEnabled("lionLfcFilesManagement") && project.project_type === "paged_documents" && permissions.hasAnyAdminRight(adminRights, ["upload", "download"]),
33
- disabled: false
34
- },
35
- tasks: {
36
- visible: permissions.hasAdminRight(adminRights, "tasks"),
37
- disabled: false
38
- },
39
- contributors: {
40
- visible: permissions.hasAdminRight(adminRights, "contributors"),
41
- disabled: false
42
- },
43
- workflows: {
44
- visible: permissions.hasAdminRight(adminRights, "settings"),
45
- disabled: false
46
- },
47
- screenshots: {
48
- visible: permissions.hasAdminRight(adminRights, "screenshots"),
49
- disabled: false
50
- },
51
- glossary: {
52
- visible: permissions.hasAdminRight(adminRights, "glossary"),
53
- disabled: false
54
- },
55
- more: {
56
- visible: true,
57
- disabled: false
58
- },
59
- settings: {
60
- visible: permissions.hasAdminRight(adminRights, "settings"),
61
- disabled: false
62
- },
63
- branches: {
64
- visible: !!((_a = project.settings) == null ? void 0 : _a.branching) && permissions.hasAnyAdminRight(adminRights, ["branches_create", "create_branches", "branches_merge"]),
65
- disabled: false
66
- },
67
- otaBundles: {
68
- visible: permissions.hasAnyAdminRight(adminRights, ["download", "settings", "keys"]) && project.project_type === "localization_files",
69
- disabled: false
70
- },
71
- automations: {
72
- visible: permissions.hasAdminRight(adminRights, "settings"),
73
- disabled: false
74
- },
75
- duplicateFinder: {
76
- visible: permissions.hasAdminRight(adminRights, "keys") && project.project_type === "localization_files",
77
- disabled: false
78
- },
79
- activity: {
80
- visible: !!((_b = project.settings) == null ? void 0 : _b.offline_translation) || permissions.hasAdminRight(adminRights, "activity"),
81
- disabled: false
82
- },
83
- statistics: {
84
- visible: permissions.hasAdminRight(adminRights, "statistics"),
85
- disabled: false
9
+ const {
10
+ data: { otherTeams }
11
+ } = useSidebar.useSidebar();
12
+ if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
13
+ return null;
14
+ }
15
+ return /* @__PURE__ */ jsxRuntime.jsx(
16
+ "div",
17
+ {
18
+ "data-testid": "sidebar-team-switch",
19
+ className: `flex-col items-stretch ${TeamSwitch_module.default.teamsContainer}`,
20
+ children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
86
21
  }
87
- };
22
+ );
88
23
  };
89
- exports.getProjectNavigationVisibilityMap = getProjectNavigationVisibilityMap;
24
+ exports.TeamSwitch = TeamSwitch;
90
25
  //# sourceMappingURL=harmony115.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony115.cjs","sources":["../src/features/navigation/utils/toolbarVisibility.ts"],"sourcesContent":["import { hasAdminRight, hasAnyAdminRight } from '@features/auth/utils/permissions'\nimport type { Project } from '@features/node'\n\ntype ToolbarVisibility = {\n\tdisabled: boolean\n\tvisible: boolean\n}\n\nexport type ToolbarVisibilityMap = {\n\tupload: ToolbarVisibility\n\tdownload: ToolbarVisibility\n\tapps: ToolbarVisibility\n\tcontentManagement: ToolbarVisibility\n\teditor: ToolbarVisibility\n\tfiles: ToolbarVisibility\n\ttasks: ToolbarVisibility\n\tworkflows: ToolbarVisibility\n\tcontributors: ToolbarVisibility\n\tscreenshots: ToolbarVisibility\n\tglossary: ToolbarVisibility\n\tmore: ToolbarVisibility\n\tsettings: ToolbarVisibility\n\tbranches: ToolbarVisibility\n\totaBundles: ToolbarVisibility\n\tautomations: ToolbarVisibility\n\tduplicateFinder: ToolbarVisibility\n\tactivity: ToolbarVisibility\n\tstatistics: ToolbarVisibility\n}\n\nexport const getProjectNavigationVisibilityMap = (\n\tproject: Project,\n\tadminRights: string[],\n\tisFeatureEnabled: (key: string) => boolean,\n): ToolbarVisibilityMap => ({\n\tupload: {\n\t\tvisible: hasAdminRight(adminRights, 'upload'),\n\t\tdisabled: false,\n\t},\n\tdownload: {\n\t\tvisible: hasAdminRight(adminRights, 'download'),\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tapps: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tcontentManagement: {\n\t\tvisible: project.project_type === 'content_integration' && hasAdminRight(adminRights, 'keys'),\n\t\tdisabled: false,\n\t},\n\teditor: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tfiles: {\n\t\tvisible:\n\t\t\tisFeatureEnabled('lionLfcFilesManagement') &&\n\t\t\tproject.project_type === 'paged_documents' &&\n\t\t\thasAnyAdminRight(adminRights, ['upload', 'download']),\n\t\tdisabled: false,\n\t},\n\ttasks: {\n\t\tvisible: hasAdminRight(adminRights, 'tasks'),\n\t\tdisabled: false,\n\t},\n\tcontributors: {\n\t\tvisible: hasAdminRight(adminRights, 'contributors'),\n\t\tdisabled: false,\n\t},\n\tworkflows: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tscreenshots: {\n\t\tvisible: hasAdminRight(adminRights, 'screenshots'),\n\t\tdisabled: false,\n\t},\n\tglossary: {\n\t\tvisible: hasAdminRight(adminRights, 'glossary'),\n\t\tdisabled: false,\n\t},\n\tmore: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tsettings: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tbranches: {\n\t\tvisible:\n\t\t\t!!project.settings?.branching &&\n\t\t\thasAnyAdminRight(adminRights, ['branches_create', 'create_branches', 'branches_merge']),\n\t\tdisabled: false,\n\t},\n\totaBundles: {\n\t\tvisible:\n\t\t\thasAnyAdminRight(adminRights, ['download', 'settings', 'keys']) &&\n\t\t\tproject.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tautomations: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tduplicateFinder: {\n\t\tvisible: hasAdminRight(adminRights, 'keys') && project.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tactivity: {\n\t\tvisible: !!project.settings?.offline_translation || hasAdminRight(adminRights, 'activity'),\n\t\tdisabled: false,\n\t},\n\tstatistics: {\n\t\tvisible: hasAdminRight(adminRights, 'statistics'),\n\t\tdisabled: false,\n\t},\n})\n"],"names":["hasAdminRight","hasAnyAdminRight"],"mappings":";;;AA8BO,MAAM,oCAAoC,CAChD,SACA,aACA,qBAC2B;;AAAA;AAAA,IAC3B,QAAQ;AAAA,MACP,SAASA,YAAAA,cAAc,aAAa,QAAQ;AAAA,MAC5C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,mBAAmB;AAAA,MAClB,SAAS,QAAQ,iBAAiB,yBAAyBA,YAAA,cAAc,aAAa,MAAM;AAAA,MAC5F,UAAU;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SACC,iBAAiB,wBAAwB,KACzC,QAAQ,iBAAiB,qBACzBC,YAAAA,iBAAiB,aAAa,CAAC,UAAU,UAAU,CAAC;AAAA,MACrD,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SAASD,YAAAA,cAAc,aAAa,OAAO;AAAA,MAC3C,UAAU;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACb,SAASA,YAAAA,cAAc,aAAa,cAAc;AAAA,MAClD,UAAU;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACV,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAASA,YAAAA,cAAc,aAAa,aAAa;AAAA,MACjD,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAASA,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SACC,CAAC,GAAC,aAAQ,aAAR,mBAAkB,cACpBC,6BAAiB,aAAa,CAAC,mBAAmB,mBAAmB,gBAAgB,CAAC;AAAA,MACvF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SACCA,YAAAA,iBAAiB,aAAa,CAAC,YAAY,YAAY,MAAM,CAAC,KAC9D,QAAQ,iBAAiB;AAAA,MAC1B,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAASD,YAAAA,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MAChB,SAASA,YAAc,cAAA,aAAa,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MACxE,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,CAAC,GAAC,aAAQ,aAAR,mBAAkB,wBAAuBA,YAAA,cAAc,aAAa,UAAU;AAAA,MACzF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SAASA,YAAAA,cAAc,aAAa,YAAY;AAAA,MAChD,UAAU;AAAA,IAAA;AAAA,EAEZ;AAAA;;"}
1
+ {"version":3,"file":"harmony115.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useSidebar","jsx","styles","TeamMenuItem"],"mappings":";;;;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChBA,sBAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0BC,kBAAA,QAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvBD,2BAAAA,IAAAE,aAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;;"}
@@ -1,90 +1,25 @@
1
- import { hasAdminRight, hasAnyAdminRight } from "./harmony127.mjs";
2
- const getProjectNavigationVisibilityMap = (project, adminRights, isFeatureEnabled) => {
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony98.mjs";
3
+ import { TeamMenuItem } from "./harmony113.mjs";
4
+ import styles from "./harmony134.mjs";
5
+ const TeamSwitch = ({ onSwitchTeam }) => {
3
6
  var _a, _b;
4
- return {
5
- upload: {
6
- visible: hasAdminRight(adminRights, "upload"),
7
- disabled: false
8
- },
9
- download: {
10
- visible: hasAdminRight(adminRights, "download"),
11
- disabled: false
12
- },
13
- // TODO: HOME-1009, Clean up after permission management
14
- // -- There is a plan for "Install apps" permission. Right..?
15
- apps: {
16
- visible: true,
17
- disabled: false
18
- },
19
- // TODO: HOME-1009, Clean up after permission management
20
- // -- There is a plan for "Install apps" permission. Right..?
21
- contentManagement: {
22
- visible: project.project_type === "content_integration" && hasAdminRight(adminRights, "keys"),
23
- disabled: false
24
- },
25
- editor: {
26
- visible: true,
27
- disabled: false
28
- },
29
- files: {
30
- visible: isFeatureEnabled("lionLfcFilesManagement") && project.project_type === "paged_documents" && hasAnyAdminRight(adminRights, ["upload", "download"]),
31
- disabled: false
32
- },
33
- tasks: {
34
- visible: hasAdminRight(adminRights, "tasks"),
35
- disabled: false
36
- },
37
- contributors: {
38
- visible: hasAdminRight(adminRights, "contributors"),
39
- disabled: false
40
- },
41
- workflows: {
42
- visible: hasAdminRight(adminRights, "settings"),
43
- disabled: false
44
- },
45
- screenshots: {
46
- visible: hasAdminRight(adminRights, "screenshots"),
47
- disabled: false
48
- },
49
- glossary: {
50
- visible: hasAdminRight(adminRights, "glossary"),
51
- disabled: false
52
- },
53
- more: {
54
- visible: true,
55
- disabled: false
56
- },
57
- settings: {
58
- visible: hasAdminRight(adminRights, "settings"),
59
- disabled: false
60
- },
61
- branches: {
62
- visible: !!((_a = project.settings) == null ? void 0 : _a.branching) && hasAnyAdminRight(adminRights, ["branches_create", "create_branches", "branches_merge"]),
63
- disabled: false
64
- },
65
- otaBundles: {
66
- visible: hasAnyAdminRight(adminRights, ["download", "settings", "keys"]) && project.project_type === "localization_files",
67
- disabled: false
68
- },
69
- automations: {
70
- visible: hasAdminRight(adminRights, "settings"),
71
- disabled: false
72
- },
73
- duplicateFinder: {
74
- visible: hasAdminRight(adminRights, "keys") && project.project_type === "localization_files",
75
- disabled: false
76
- },
77
- activity: {
78
- visible: !!((_b = project.settings) == null ? void 0 : _b.offline_translation) || hasAdminRight(adminRights, "activity"),
79
- disabled: false
80
- },
81
- statistics: {
82
- visible: hasAdminRight(adminRights, "statistics"),
83
- disabled: false
7
+ const {
8
+ data: { otherTeams }
9
+ } = useSidebar();
10
+ if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
11
+ return null;
12
+ }
13
+ return /* @__PURE__ */ jsx(
14
+ "div",
15
+ {
16
+ "data-testid": "sidebar-team-switch",
17
+ className: `flex-col items-stretch ${styles.teamsContainer}`,
18
+ children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsx(TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
84
19
  }
85
- };
20
+ );
86
21
  };
87
22
  export {
88
- getProjectNavigationVisibilityMap
23
+ TeamSwitch
89
24
  };
90
25
  //# sourceMappingURL=harmony115.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony115.mjs","sources":["../src/features/navigation/utils/toolbarVisibility.ts"],"sourcesContent":["import { hasAdminRight, hasAnyAdminRight } from '@features/auth/utils/permissions'\nimport type { Project } from '@features/node'\n\ntype ToolbarVisibility = {\n\tdisabled: boolean\n\tvisible: boolean\n}\n\nexport type ToolbarVisibilityMap = {\n\tupload: ToolbarVisibility\n\tdownload: ToolbarVisibility\n\tapps: ToolbarVisibility\n\tcontentManagement: ToolbarVisibility\n\teditor: ToolbarVisibility\n\tfiles: ToolbarVisibility\n\ttasks: ToolbarVisibility\n\tworkflows: ToolbarVisibility\n\tcontributors: ToolbarVisibility\n\tscreenshots: ToolbarVisibility\n\tglossary: ToolbarVisibility\n\tmore: ToolbarVisibility\n\tsettings: ToolbarVisibility\n\tbranches: ToolbarVisibility\n\totaBundles: ToolbarVisibility\n\tautomations: ToolbarVisibility\n\tduplicateFinder: ToolbarVisibility\n\tactivity: ToolbarVisibility\n\tstatistics: ToolbarVisibility\n}\n\nexport const getProjectNavigationVisibilityMap = (\n\tproject: Project,\n\tadminRights: string[],\n\tisFeatureEnabled: (key: string) => boolean,\n): ToolbarVisibilityMap => ({\n\tupload: {\n\t\tvisible: hasAdminRight(adminRights, 'upload'),\n\t\tdisabled: false,\n\t},\n\tdownload: {\n\t\tvisible: hasAdminRight(adminRights, 'download'),\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tapps: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\t// TODO: HOME-1009, Clean up after permission management\n\t// -- There is a plan for \"Install apps\" permission. Right..?\n\tcontentManagement: {\n\t\tvisible: project.project_type === 'content_integration' && hasAdminRight(adminRights, 'keys'),\n\t\tdisabled: false,\n\t},\n\teditor: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tfiles: {\n\t\tvisible:\n\t\t\tisFeatureEnabled('lionLfcFilesManagement') &&\n\t\t\tproject.project_type === 'paged_documents' &&\n\t\t\thasAnyAdminRight(adminRights, ['upload', 'download']),\n\t\tdisabled: false,\n\t},\n\ttasks: {\n\t\tvisible: hasAdminRight(adminRights, 'tasks'),\n\t\tdisabled: false,\n\t},\n\tcontributors: {\n\t\tvisible: hasAdminRight(adminRights, 'contributors'),\n\t\tdisabled: false,\n\t},\n\tworkflows: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tscreenshots: {\n\t\tvisible: hasAdminRight(adminRights, 'screenshots'),\n\t\tdisabled: false,\n\t},\n\tglossary: {\n\t\tvisible: hasAdminRight(adminRights, 'glossary'),\n\t\tdisabled: false,\n\t},\n\tmore: {\n\t\tvisible: true,\n\t\tdisabled: false,\n\t},\n\tsettings: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tbranches: {\n\t\tvisible:\n\t\t\t!!project.settings?.branching &&\n\t\t\thasAnyAdminRight(adminRights, ['branches_create', 'create_branches', 'branches_merge']),\n\t\tdisabled: false,\n\t},\n\totaBundles: {\n\t\tvisible:\n\t\t\thasAnyAdminRight(adminRights, ['download', 'settings', 'keys']) &&\n\t\t\tproject.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tautomations: {\n\t\tvisible: hasAdminRight(adminRights, 'settings'),\n\t\tdisabled: false,\n\t},\n\tduplicateFinder: {\n\t\tvisible: hasAdminRight(adminRights, 'keys') && project.project_type === 'localization_files',\n\t\tdisabled: false,\n\t},\n\tactivity: {\n\t\tvisible: !!project.settings?.offline_translation || hasAdminRight(adminRights, 'activity'),\n\t\tdisabled: false,\n\t},\n\tstatistics: {\n\t\tvisible: hasAdminRight(adminRights, 'statistics'),\n\t\tdisabled: false,\n\t},\n})\n"],"names":[],"mappings":";AA8BO,MAAM,oCAAoC,CAChD,SACA,aACA,qBAC2B;;AAAA;AAAA,IAC3B,QAAQ;AAAA,MACP,SAAS,cAAc,aAAa,QAAQ;AAAA,MAC5C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA;AAAA;AAAA,IAGA,mBAAmB;AAAA,MAClB,SAAS,QAAQ,iBAAiB,yBAAyB,cAAc,aAAa,MAAM;AAAA,MAC5F,UAAU;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SACC,iBAAiB,wBAAwB,KACzC,QAAQ,iBAAiB,qBACzB,iBAAiB,aAAa,CAAC,UAAU,UAAU,CAAC;AAAA,MACrD,UAAU;AAAA,IACX;AAAA,IACA,OAAO;AAAA,MACN,SAAS,cAAc,aAAa,OAAO;AAAA,MAC3C,UAAU;AAAA,IACX;AAAA,IACA,cAAc;AAAA,MACb,SAAS,cAAc,aAAa,cAAc;AAAA,MAClD,UAAU;AAAA,IACX;AAAA,IACA,WAAW;AAAA,MACV,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAAS,cAAc,aAAa,aAAa;AAAA,MACjD,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACL,SAAS;AAAA,MACT,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SACC,CAAC,GAAC,aAAQ,aAAR,mBAAkB,cACpB,iBAAiB,aAAa,CAAC,mBAAmB,mBAAmB,gBAAgB,CAAC;AAAA,MACvF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SACC,iBAAiB,aAAa,CAAC,YAAY,YAAY,MAAM,CAAC,KAC9D,QAAQ,iBAAiB;AAAA,MAC1B,UAAU;AAAA,IACX;AAAA,IACA,aAAa;AAAA,MACZ,SAAS,cAAc,aAAa,UAAU;AAAA,MAC9C,UAAU;AAAA,IACX;AAAA,IACA,iBAAiB;AAAA,MAChB,SAAS,cAAc,aAAa,MAAM,KAAK,QAAQ,iBAAiB;AAAA,MACxE,UAAU;AAAA,IACX;AAAA,IACA,UAAU;AAAA,MACT,SAAS,CAAC,GAAC,aAAQ,aAAR,mBAAkB,wBAAuB,cAAc,aAAa,UAAU;AAAA,MACzF,UAAU;AAAA,IACX;AAAA,IACA,YAAY;AAAA,MACX,SAAS,cAAc,aAAa,YAAY;AAAA,MAChD,UAAU;AAAA,IAAA;AAAA,EAEZ;AAAA;"}
1
+ {"version":3,"file":"harmony115.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChB,WAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0B,OAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvB,oBAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;"}