@lokalise/harmony 4.5.2 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (705) hide show
  1. package/dist/harmony.cjs +92 -90
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.mjs +92 -90
  4. package/dist/harmony.mjs.map +1 -1
  5. package/dist/harmony10.cjs +11 -15
  6. package/dist/harmony10.cjs.map +1 -1
  7. package/dist/harmony10.mjs +13 -17
  8. package/dist/harmony10.mjs.map +1 -1
  9. package/dist/harmony100.cjs +61 -8
  10. package/dist/harmony100.cjs.map +1 -1
  11. package/dist/harmony100.mjs +61 -8
  12. package/dist/harmony100.mjs.map +1 -1
  13. package/dist/harmony101.cjs +5 -26
  14. package/dist/harmony101.cjs.map +1 -1
  15. package/dist/harmony101.mjs +8 -29
  16. package/dist/harmony101.mjs.map +1 -1
  17. package/dist/harmony102.cjs +29 -3
  18. package/dist/harmony102.cjs.map +1 -1
  19. package/dist/harmony102.mjs +29 -3
  20. package/dist/harmony102.mjs.map +1 -1
  21. package/dist/harmony103.cjs +3 -29
  22. package/dist/harmony103.cjs.map +1 -1
  23. package/dist/harmony103.mjs +3 -29
  24. package/dist/harmony103.mjs.map +1 -1
  25. package/dist/harmony104.cjs +26 -63
  26. package/dist/harmony104.cjs.map +1 -1
  27. package/dist/harmony104.mjs +26 -63
  28. package/dist/harmony104.mjs.map +1 -1
  29. package/dist/harmony105.cjs +66 -3
  30. package/dist/harmony105.cjs.map +1 -1
  31. package/dist/harmony105.mjs +66 -3
  32. package/dist/harmony105.mjs.map +1 -1
  33. package/dist/harmony106.cjs +3 -43
  34. package/dist/harmony106.cjs.map +1 -1
  35. package/dist/harmony106.mjs +3 -43
  36. package/dist/harmony106.mjs.map +1 -1
  37. package/dist/harmony107.cjs +54 -38
  38. package/dist/harmony107.cjs.map +1 -1
  39. package/dist/harmony107.mjs +54 -38
  40. package/dist/harmony107.mjs.map +1 -1
  41. package/dist/harmony108.cjs +37 -36
  42. package/dist/harmony108.cjs.map +1 -1
  43. package/dist/harmony108.mjs +38 -37
  44. package/dist/harmony108.mjs.map +1 -1
  45. package/dist/harmony109.cjs +38 -9
  46. package/dist/harmony109.cjs.map +1 -1
  47. package/dist/harmony109.mjs +37 -8
  48. package/dist/harmony109.mjs.map +1 -1
  49. package/dist/harmony11.cjs +18 -30
  50. package/dist/harmony11.cjs.map +1 -1
  51. package/dist/harmony11.mjs +18 -30
  52. package/dist/harmony11.mjs.map +1 -1
  53. package/dist/harmony110.cjs +10 -34
  54. package/dist/harmony110.cjs.map +1 -1
  55. package/dist/harmony110.mjs +9 -33
  56. package/dist/harmony110.mjs.map +1 -1
  57. package/dist/harmony111.cjs +31 -164
  58. package/dist/harmony111.cjs.map +1 -1
  59. package/dist/harmony111.mjs +31 -164
  60. package/dist/harmony111.mjs.map +1 -1
  61. package/dist/harmony112.cjs +12 -42
  62. package/dist/harmony112.cjs.map +1 -1
  63. package/dist/harmony112.mjs +12 -42
  64. package/dist/harmony112.mjs.map +1 -1
  65. package/dist/harmony113.cjs +165 -13
  66. package/dist/harmony113.cjs.map +1 -1
  67. package/dist/harmony113.mjs +165 -13
  68. package/dist/harmony113.mjs.map +1 -1
  69. package/dist/harmony114.cjs +43 -2
  70. package/dist/harmony114.cjs.map +1 -1
  71. package/dist/harmony114.mjs +44 -3
  72. package/dist/harmony114.mjs.map +1 -1
  73. package/dist/harmony115.cjs +3 -18
  74. package/dist/harmony115.cjs.map +1 -1
  75. package/dist/harmony115.mjs +3 -18
  76. package/dist/harmony115.mjs.map +1 -1
  77. package/dist/harmony116.cjs +13 -71
  78. package/dist/harmony116.cjs.map +1 -1
  79. package/dist/harmony116.mjs +15 -73
  80. package/dist/harmony116.mjs.map +1 -1
  81. package/dist/harmony117.cjs +75 -11
  82. package/dist/harmony117.cjs.map +1 -1
  83. package/dist/harmony117.mjs +75 -11
  84. package/dist/harmony117.mjs.map +1 -1
  85. package/dist/harmony118.cjs +12 -34
  86. package/dist/harmony118.cjs.map +1 -1
  87. package/dist/harmony118.mjs +12 -34
  88. package/dist/harmony118.mjs.map +1 -1
  89. package/dist/harmony119.cjs +34 -9
  90. package/dist/harmony119.cjs.map +1 -1
  91. package/dist/harmony119.mjs +34 -9
  92. package/dist/harmony119.mjs.map +1 -1
  93. package/dist/harmony12.cjs +30 -23
  94. package/dist/harmony12.cjs.map +1 -1
  95. package/dist/harmony12.mjs +30 -23
  96. package/dist/harmony12.mjs.map +1 -1
  97. package/dist/harmony120.cjs +8 -46
  98. package/dist/harmony120.cjs.map +1 -1
  99. package/dist/harmony120.mjs +9 -47
  100. package/dist/harmony120.mjs.map +1 -1
  101. package/dist/harmony121.cjs +47 -9
  102. package/dist/harmony121.cjs.map +1 -1
  103. package/dist/harmony121.mjs +46 -8
  104. package/dist/harmony121.mjs.map +1 -1
  105. package/dist/harmony122.cjs +9 -12
  106. package/dist/harmony122.cjs.map +1 -1
  107. package/dist/harmony122.mjs +8 -11
  108. package/dist/harmony122.mjs.map +1 -1
  109. package/dist/harmony123.cjs +12 -13
  110. package/dist/harmony123.cjs.map +1 -1
  111. package/dist/harmony123.mjs +11 -12
  112. package/dist/harmony123.mjs.map +1 -1
  113. package/dist/harmony124.cjs +22 -12
  114. package/dist/harmony124.cjs.map +1 -1
  115. package/dist/harmony124.mjs +21 -11
  116. package/dist/harmony124.mjs.map +1 -1
  117. package/dist/harmony125.cjs +12 -21
  118. package/dist/harmony125.cjs.map +1 -1
  119. package/dist/harmony125.mjs +11 -20
  120. package/dist/harmony125.mjs.map +1 -1
  121. package/dist/harmony126.cjs +13 -21
  122. package/dist/harmony126.cjs.map +1 -1
  123. package/dist/harmony126.mjs +12 -20
  124. package/dist/harmony126.mjs.map +1 -1
  125. package/dist/harmony127.cjs +7 -86
  126. package/dist/harmony127.cjs.map +1 -1
  127. package/dist/harmony127.mjs +7 -86
  128. package/dist/harmony127.mjs.map +1 -1
  129. package/dist/harmony128.cjs +8 -30
  130. package/dist/harmony128.cjs.map +1 -1
  131. package/dist/harmony128.mjs +8 -30
  132. package/dist/harmony128.mjs.map +1 -1
  133. package/dist/harmony129.cjs +21 -21
  134. package/dist/harmony129.cjs.map +1 -1
  135. package/dist/harmony129.mjs +21 -21
  136. package/dist/harmony129.mjs.map +1 -1
  137. package/dist/harmony13.cjs +16 -45
  138. package/dist/harmony13.cjs.map +1 -1
  139. package/dist/harmony13.mjs +16 -45
  140. package/dist/harmony13.mjs.map +1 -1
  141. package/dist/harmony130.cjs +20 -8
  142. package/dist/harmony130.cjs.map +1 -1
  143. package/dist/harmony130.mjs +20 -8
  144. package/dist/harmony130.mjs.map +1 -1
  145. package/dist/harmony131.cjs +21 -8
  146. package/dist/harmony131.cjs.map +1 -1
  147. package/dist/harmony131.mjs +21 -8
  148. package/dist/harmony131.mjs.map +1 -1
  149. package/dist/harmony132.cjs +86 -18
  150. package/dist/harmony132.cjs.map +1 -1
  151. package/dist/harmony132.mjs +86 -18
  152. package/dist/harmony132.mjs.map +1 -1
  153. package/dist/harmony133.cjs +29 -98
  154. package/dist/harmony133.cjs.map +1 -1
  155. package/dist/harmony133.mjs +29 -81
  156. package/dist/harmony133.mjs.map +1 -1
  157. package/dist/harmony135.cjs +2 -2
  158. package/dist/harmony135.mjs +2 -2
  159. package/dist/harmony136.cjs +2 -2
  160. package/dist/harmony136.mjs +2 -2
  161. package/dist/harmony137.cjs +3 -3
  162. package/dist/harmony137.mjs +3 -3
  163. package/dist/harmony138.cjs +1 -1
  164. package/dist/harmony138.mjs +1 -1
  165. package/dist/harmony139.cjs +3 -3
  166. package/dist/harmony139.mjs +3 -3
  167. package/dist/harmony14.cjs +51 -8
  168. package/dist/harmony14.cjs.map +1 -1
  169. package/dist/harmony14.mjs +51 -8
  170. package/dist/harmony14.mjs.map +1 -1
  171. package/dist/harmony140.cjs +2 -2
  172. package/dist/harmony140.mjs +2 -2
  173. package/dist/harmony141.cjs +3 -3
  174. package/dist/harmony141.mjs +3 -3
  175. package/dist/harmony142.cjs +2 -2
  176. package/dist/harmony142.mjs +2 -2
  177. package/dist/harmony143.cjs +2 -2
  178. package/dist/harmony143.mjs +2 -2
  179. package/dist/harmony144.cjs +4 -4
  180. package/dist/harmony144.mjs +4 -4
  181. package/dist/harmony146.cjs +2 -2
  182. package/dist/harmony146.mjs +2 -2
  183. package/dist/harmony149.cjs +97 -8
  184. package/dist/harmony149.cjs.map +1 -1
  185. package/dist/harmony149.mjs +80 -8
  186. package/dist/harmony149.mjs.map +1 -1
  187. package/dist/harmony15.cjs +8 -4
  188. package/dist/harmony15.cjs.map +1 -1
  189. package/dist/harmony15.mjs +8 -4
  190. package/dist/harmony15.mjs.map +1 -1
  191. package/dist/harmony150.cjs +9 -6
  192. package/dist/harmony150.cjs.map +1 -1
  193. package/dist/harmony150.mjs +8 -5
  194. package/dist/harmony150.mjs.map +1 -1
  195. package/dist/harmony151.cjs +3 -6
  196. package/dist/harmony151.cjs.map +1 -1
  197. package/dist/harmony151.mjs +2 -5
  198. package/dist/harmony151.mjs.map +1 -1
  199. package/dist/harmony152.cjs +3 -8
  200. package/dist/harmony152.cjs.map +1 -1
  201. package/dist/harmony152.mjs +3 -8
  202. package/dist/harmony152.mjs.map +1 -1
  203. package/dist/harmony153.cjs +3 -2
  204. package/dist/harmony153.cjs.map +1 -1
  205. package/dist/harmony153.mjs +3 -2
  206. package/dist/harmony153.mjs.map +1 -1
  207. package/dist/harmony154.cjs +3 -3
  208. package/dist/harmony154.cjs.map +1 -1
  209. package/dist/harmony154.mjs +3 -3
  210. package/dist/harmony154.mjs.map +1 -1
  211. package/dist/harmony155.cjs +14 -3
  212. package/dist/harmony155.cjs.map +1 -1
  213. package/dist/harmony155.mjs +14 -3
  214. package/dist/harmony155.mjs.map +1 -1
  215. package/dist/harmony156.cjs +3 -3
  216. package/dist/harmony156.cjs.map +1 -1
  217. package/dist/harmony156.mjs +3 -3
  218. package/dist/harmony156.mjs.map +1 -1
  219. package/dist/harmony157.cjs +3 -14
  220. package/dist/harmony157.cjs.map +1 -1
  221. package/dist/harmony157.mjs +3 -14
  222. package/dist/harmony157.mjs.map +1 -1
  223. package/dist/harmony158.cjs +14 -3
  224. package/dist/harmony158.cjs.map +1 -1
  225. package/dist/harmony158.mjs +14 -3
  226. package/dist/harmony158.mjs.map +1 -1
  227. package/dist/harmony159.cjs +10 -14
  228. package/dist/harmony159.cjs.map +1 -1
  229. package/dist/harmony159.mjs +10 -14
  230. package/dist/harmony159.mjs.map +1 -1
  231. package/dist/harmony16.cjs +3 -13
  232. package/dist/harmony16.cjs.map +1 -1
  233. package/dist/harmony16.mjs +4 -14
  234. package/dist/harmony16.mjs.map +1 -1
  235. package/dist/harmony160.cjs +5 -9
  236. package/dist/harmony160.cjs.map +1 -1
  237. package/dist/harmony160.mjs +5 -9
  238. package/dist/harmony160.mjs.map +1 -1
  239. package/dist/harmony161.cjs +5 -6
  240. package/dist/harmony161.cjs.map +1 -1
  241. package/dist/harmony161.mjs +5 -6
  242. package/dist/harmony162.cjs +32 -9
  243. package/dist/harmony162.cjs.map +1 -1
  244. package/dist/harmony162.mjs +31 -8
  245. package/dist/harmony162.mjs.map +1 -1
  246. package/dist/harmony163.cjs +6 -21
  247. package/dist/harmony163.cjs.map +1 -1
  248. package/dist/harmony163.mjs +6 -21
  249. package/dist/harmony163.mjs.map +1 -1
  250. package/dist/harmony164.cjs +3 -3
  251. package/dist/harmony164.mjs +3 -3
  252. package/dist/harmony165.cjs +4 -7
  253. package/dist/harmony165.cjs.map +1 -1
  254. package/dist/harmony165.mjs +4 -7
  255. package/dist/harmony165.mjs.map +1 -1
  256. package/dist/harmony166.cjs +21 -3
  257. package/dist/harmony166.cjs.map +1 -1
  258. package/dist/harmony166.mjs +21 -3
  259. package/dist/harmony166.mjs.map +1 -1
  260. package/dist/harmony167.cjs +7 -97
  261. package/dist/harmony167.cjs.map +1 -1
  262. package/dist/harmony167.mjs +6 -96
  263. package/dist/harmony167.mjs.map +1 -1
  264. package/dist/harmony168.cjs +13 -14
  265. package/dist/harmony168.cjs.map +1 -1
  266. package/dist/harmony168.mjs +12 -13
  267. package/dist/harmony168.mjs.map +1 -1
  268. package/dist/harmony169.cjs +7 -15
  269. package/dist/harmony169.cjs.map +1 -1
  270. package/dist/harmony169.mjs +6 -14
  271. package/dist/harmony169.mjs.map +1 -1
  272. package/dist/harmony17.cjs +15 -32
  273. package/dist/harmony17.cjs.map +1 -1
  274. package/dist/harmony17.mjs +15 -32
  275. package/dist/harmony17.mjs.map +1 -1
  276. package/dist/harmony170.cjs +94 -34
  277. package/dist/harmony170.cjs.map +1 -1
  278. package/dist/harmony170.mjs +94 -34
  279. package/dist/harmony170.mjs.map +1 -1
  280. package/dist/harmony171.cjs +11 -26
  281. package/dist/harmony171.cjs.map +1 -1
  282. package/dist/harmony171.mjs +11 -26
  283. package/dist/harmony171.mjs.map +1 -1
  284. package/dist/harmony172.cjs +14 -32
  285. package/dist/harmony172.cjs.map +1 -1
  286. package/dist/harmony172.mjs +14 -32
  287. package/dist/harmony172.mjs.map +1 -1
  288. package/dist/harmony173.cjs +35 -12
  289. package/dist/harmony173.cjs.map +1 -1
  290. package/dist/harmony173.mjs +35 -12
  291. package/dist/harmony173.mjs.map +1 -1
  292. package/dist/harmony174.cjs +26 -13
  293. package/dist/harmony174.cjs.map +1 -1
  294. package/dist/harmony174.mjs +26 -13
  295. package/dist/harmony174.mjs.map +1 -1
  296. package/dist/harmony175.cjs +4 -16
  297. package/dist/harmony175.cjs.map +1 -1
  298. package/dist/harmony175.mjs +4 -16
  299. package/dist/harmony175.mjs.map +1 -1
  300. package/dist/harmony176.cjs +12 -10
  301. package/dist/harmony176.cjs.map +1 -1
  302. package/dist/harmony176.mjs +12 -10
  303. package/dist/harmony176.mjs.map +1 -1
  304. package/dist/harmony177.cjs +13 -14
  305. package/dist/harmony177.cjs.map +1 -1
  306. package/dist/harmony177.mjs +13 -14
  307. package/dist/harmony177.mjs.map +1 -1
  308. package/dist/harmony178.cjs +14 -19
  309. package/dist/harmony178.cjs.map +1 -1
  310. package/dist/harmony178.mjs +14 -19
  311. package/dist/harmony178.mjs.map +1 -1
  312. package/dist/harmony179.cjs +10 -11
  313. package/dist/harmony179.cjs.map +1 -1
  314. package/dist/harmony179.mjs +10 -11
  315. package/dist/harmony179.mjs.map +1 -1
  316. package/dist/harmony18.cjs +32 -5
  317. package/dist/harmony18.cjs.map +1 -1
  318. package/dist/harmony18.mjs +32 -5
  319. package/dist/harmony18.mjs.map +1 -1
  320. package/dist/harmony180.cjs +16 -4
  321. package/dist/harmony180.cjs.map +1 -1
  322. package/dist/harmony180.mjs +16 -4
  323. package/dist/harmony180.mjs.map +1 -1
  324. package/dist/harmony181.cjs +20 -5
  325. package/dist/harmony181.cjs.map +1 -1
  326. package/dist/harmony181.mjs +20 -5
  327. package/dist/harmony181.mjs.map +1 -1
  328. package/dist/harmony182.cjs +11 -11
  329. package/dist/harmony182.cjs.map +1 -1
  330. package/dist/harmony182.mjs +11 -11
  331. package/dist/harmony182.mjs.map +1 -1
  332. package/dist/harmony183.cjs +5 -31
  333. package/dist/harmony183.cjs.map +1 -1
  334. package/dist/harmony183.mjs +5 -31
  335. package/dist/harmony183.mjs.map +1 -1
  336. package/dist/harmony184.cjs +11 -13
  337. package/dist/harmony184.cjs.map +1 -1
  338. package/dist/harmony184.mjs +11 -13
  339. package/dist/harmony184.mjs.map +1 -1
  340. package/dist/harmony185.cjs +35 -0
  341. package/dist/harmony185.cjs.map +1 -0
  342. package/dist/harmony185.mjs +35 -0
  343. package/dist/harmony185.mjs.map +1 -0
  344. package/dist/harmony186.cjs +17 -0
  345. package/dist/harmony186.cjs.map +1 -0
  346. package/dist/harmony186.mjs +17 -0
  347. package/dist/harmony186.mjs.map +1 -0
  348. package/dist/harmony19.cjs +5 -11
  349. package/dist/harmony19.cjs.map +1 -1
  350. package/dist/harmony19.mjs +5 -11
  351. package/dist/harmony19.mjs.map +1 -1
  352. package/dist/harmony2.cjs +3 -3
  353. package/dist/harmony2.mjs +3 -3
  354. package/dist/harmony20.cjs +9 -9
  355. package/dist/harmony20.cjs.map +1 -1
  356. package/dist/harmony20.mjs +9 -9
  357. package/dist/harmony20.mjs.map +1 -1
  358. package/dist/harmony21.cjs +9 -16
  359. package/dist/harmony21.cjs.map +1 -1
  360. package/dist/harmony21.mjs +9 -16
  361. package/dist/harmony21.mjs.map +1 -1
  362. package/dist/harmony22.cjs +16 -14
  363. package/dist/harmony22.cjs.map +1 -1
  364. package/dist/harmony22.mjs +16 -14
  365. package/dist/harmony22.mjs.map +1 -1
  366. package/dist/harmony23.cjs +13 -139
  367. package/dist/harmony23.cjs.map +1 -1
  368. package/dist/harmony23.mjs +13 -139
  369. package/dist/harmony23.mjs.map +1 -1
  370. package/dist/harmony24.cjs +142 -20
  371. package/dist/harmony24.cjs.map +1 -1
  372. package/dist/harmony24.mjs +142 -20
  373. package/dist/harmony24.mjs.map +1 -1
  374. package/dist/harmony25.cjs +20 -14
  375. package/dist/harmony25.cjs.map +1 -1
  376. package/dist/harmony25.mjs +20 -14
  377. package/dist/harmony25.mjs.map +1 -1
  378. package/dist/harmony26.cjs +13 -16
  379. package/dist/harmony26.cjs.map +1 -1
  380. package/dist/harmony26.mjs +13 -16
  381. package/dist/harmony26.mjs.map +1 -1
  382. package/dist/harmony27.cjs +10 -11
  383. package/dist/harmony27.cjs.map +1 -1
  384. package/dist/harmony27.mjs +10 -11
  385. package/dist/harmony27.mjs.map +1 -1
  386. package/dist/harmony28.cjs +16 -18
  387. package/dist/harmony28.cjs.map +1 -1
  388. package/dist/harmony28.mjs +16 -18
  389. package/dist/harmony28.mjs.map +1 -1
  390. package/dist/harmony29.cjs +17 -17
  391. package/dist/harmony29.cjs.map +1 -1
  392. package/dist/harmony29.mjs +18 -18
  393. package/dist/harmony29.mjs.map +1 -1
  394. package/dist/harmony3.cjs +4 -4
  395. package/dist/harmony3.mjs +4 -4
  396. package/dist/harmony30.cjs +19 -9
  397. package/dist/harmony30.cjs.map +1 -1
  398. package/dist/harmony30.mjs +19 -9
  399. package/dist/harmony30.mjs.map +1 -1
  400. package/dist/harmony31.cjs +7 -8
  401. package/dist/harmony31.cjs.map +1 -1
  402. package/dist/harmony31.mjs +7 -8
  403. package/dist/harmony31.mjs.map +1 -1
  404. package/dist/harmony32.cjs +11 -14
  405. package/dist/harmony32.cjs.map +1 -1
  406. package/dist/harmony32.mjs +11 -14
  407. package/dist/harmony32.mjs.map +1 -1
  408. package/dist/harmony33.cjs +6 -6
  409. package/dist/harmony33.cjs.map +1 -1
  410. package/dist/harmony33.mjs +6 -6
  411. package/dist/harmony33.mjs.map +1 -1
  412. package/dist/harmony34.cjs +5 -5
  413. package/dist/harmony34.cjs.map +1 -1
  414. package/dist/harmony34.mjs +5 -5
  415. package/dist/harmony34.mjs.map +1 -1
  416. package/dist/harmony35.cjs +11 -11
  417. package/dist/harmony35.cjs.map +1 -1
  418. package/dist/harmony35.mjs +11 -11
  419. package/dist/harmony35.mjs.map +1 -1
  420. package/dist/harmony36.cjs +12 -12
  421. package/dist/harmony36.cjs.map +1 -1
  422. package/dist/harmony36.mjs +13 -13
  423. package/dist/harmony36.mjs.map +1 -1
  424. package/dist/harmony37.cjs +12 -6
  425. package/dist/harmony37.cjs.map +1 -1
  426. package/dist/harmony37.mjs +13 -7
  427. package/dist/harmony37.mjs.map +1 -1
  428. package/dist/harmony38.cjs +5 -5
  429. package/dist/harmony38.cjs.map +1 -1
  430. package/dist/harmony38.mjs +5 -5
  431. package/dist/harmony38.mjs.map +1 -1
  432. package/dist/harmony39.cjs +5 -5
  433. package/dist/harmony39.cjs.map +1 -1
  434. package/dist/harmony39.mjs +5 -5
  435. package/dist/harmony39.mjs.map +1 -1
  436. package/dist/harmony4.cjs +3 -3
  437. package/dist/harmony4.mjs +3 -3
  438. package/dist/harmony40.cjs +5 -5
  439. package/dist/harmony40.cjs.map +1 -1
  440. package/dist/harmony40.mjs +5 -5
  441. package/dist/harmony40.mjs.map +1 -1
  442. package/dist/harmony41.cjs +6 -7
  443. package/dist/harmony41.cjs.map +1 -1
  444. package/dist/harmony41.mjs +6 -7
  445. package/dist/harmony41.mjs.map +1 -1
  446. package/dist/harmony42.cjs +5 -5
  447. package/dist/harmony42.cjs.map +1 -1
  448. package/dist/harmony42.mjs +5 -5
  449. package/dist/harmony42.mjs.map +1 -1
  450. package/dist/harmony43.cjs +9 -17
  451. package/dist/harmony43.cjs.map +1 -1
  452. package/dist/harmony43.mjs +9 -17
  453. package/dist/harmony43.mjs.map +1 -1
  454. package/dist/harmony44.cjs +17 -6
  455. package/dist/harmony44.cjs.map +1 -1
  456. package/dist/harmony44.mjs +17 -6
  457. package/dist/harmony44.mjs.map +1 -1
  458. package/dist/harmony45.cjs +6 -5
  459. package/dist/harmony45.cjs.map +1 -1
  460. package/dist/harmony45.mjs +6 -5
  461. package/dist/harmony45.mjs.map +1 -1
  462. package/dist/harmony46.cjs +4 -39
  463. package/dist/harmony46.cjs.map +1 -1
  464. package/dist/harmony46.mjs +4 -39
  465. package/dist/harmony46.mjs.map +1 -1
  466. package/dist/harmony47.cjs +37 -60
  467. package/dist/harmony47.cjs.map +1 -1
  468. package/dist/harmony47.mjs +37 -60
  469. package/dist/harmony47.mjs.map +1 -1
  470. package/dist/harmony48.cjs +62 -9
  471. package/dist/harmony48.cjs.map +1 -1
  472. package/dist/harmony48.mjs +62 -9
  473. package/dist/harmony48.mjs.map +1 -1
  474. package/dist/harmony49.cjs +11 -55
  475. package/dist/harmony49.cjs.map +1 -1
  476. package/dist/harmony49.mjs +11 -55
  477. package/dist/harmony49.mjs.map +1 -1
  478. package/dist/harmony5.cjs +8 -8
  479. package/dist/harmony5.mjs +8 -8
  480. package/dist/harmony50.cjs +49 -25
  481. package/dist/harmony50.cjs.map +1 -1
  482. package/dist/harmony50.mjs +50 -26
  483. package/dist/harmony50.mjs.map +1 -1
  484. package/dist/harmony51.cjs +28 -8
  485. package/dist/harmony51.cjs.map +1 -1
  486. package/dist/harmony51.mjs +29 -9
  487. package/dist/harmony51.mjs.map +1 -1
  488. package/dist/harmony52.cjs +10 -54
  489. package/dist/harmony52.cjs.map +1 -1
  490. package/dist/harmony52.mjs +10 -54
  491. package/dist/harmony52.mjs.map +1 -1
  492. package/dist/harmony53.cjs +50 -25
  493. package/dist/harmony53.cjs.map +1 -1
  494. package/dist/harmony53.mjs +51 -26
  495. package/dist/harmony53.mjs.map +1 -1
  496. package/dist/harmony54.cjs +27 -15
  497. package/dist/harmony54.cjs.map +1 -1
  498. package/dist/harmony54.mjs +28 -16
  499. package/dist/harmony54.mjs.map +1 -1
  500. package/dist/harmony55.cjs +15 -25
  501. package/dist/harmony55.cjs.map +1 -1
  502. package/dist/harmony55.mjs +16 -26
  503. package/dist/harmony55.mjs.map +1 -1
  504. package/dist/harmony56.cjs +25 -11
  505. package/dist/harmony56.cjs.map +1 -1
  506. package/dist/harmony56.mjs +26 -12
  507. package/dist/harmony56.mjs.map +1 -1
  508. package/dist/harmony57.cjs +14 -14
  509. package/dist/harmony57.cjs.map +1 -1
  510. package/dist/harmony57.mjs +14 -14
  511. package/dist/harmony57.mjs.map +1 -1
  512. package/dist/harmony58.cjs +6 -6
  513. package/dist/harmony58.cjs.map +1 -1
  514. package/dist/harmony58.mjs +6 -6
  515. package/dist/harmony58.mjs.map +1 -1
  516. package/dist/harmony59.cjs +4 -4
  517. package/dist/harmony59.cjs.map +1 -1
  518. package/dist/harmony59.mjs +4 -4
  519. package/dist/harmony59.mjs.map +1 -1
  520. package/dist/harmony6.cjs +8 -5
  521. package/dist/harmony6.cjs.map +1 -1
  522. package/dist/harmony6.mjs +9 -6
  523. package/dist/harmony6.mjs.map +1 -1
  524. package/dist/harmony60.cjs +6 -6
  525. package/dist/harmony60.cjs.map +1 -1
  526. package/dist/harmony60.mjs +6 -6
  527. package/dist/harmony60.mjs.map +1 -1
  528. package/dist/harmony61.cjs +6 -6
  529. package/dist/harmony61.cjs.map +1 -1
  530. package/dist/harmony61.mjs +6 -6
  531. package/dist/harmony61.mjs.map +1 -1
  532. package/dist/harmony62.cjs +6 -5
  533. package/dist/harmony62.cjs.map +1 -1
  534. package/dist/harmony62.mjs +6 -5
  535. package/dist/harmony62.mjs.map +1 -1
  536. package/dist/harmony63.cjs +6 -15
  537. package/dist/harmony63.cjs.map +1 -1
  538. package/dist/harmony63.mjs +7 -16
  539. package/dist/harmony63.mjs.map +1 -1
  540. package/dist/harmony64.cjs +16 -7
  541. package/dist/harmony64.cjs.map +1 -1
  542. package/dist/harmony64.mjs +16 -7
  543. package/dist/harmony64.mjs.map +1 -1
  544. package/dist/harmony65.cjs +4 -4
  545. package/dist/harmony65.cjs.map +1 -1
  546. package/dist/harmony65.mjs +4 -4
  547. package/dist/harmony65.mjs.map +1 -1
  548. package/dist/harmony66.cjs +7 -11
  549. package/dist/harmony66.cjs.map +1 -1
  550. package/dist/harmony66.mjs +9 -13
  551. package/dist/harmony66.mjs.map +1 -1
  552. package/dist/harmony67.cjs +8 -8
  553. package/dist/harmony67.cjs.map +1 -1
  554. package/dist/harmony67.mjs +8 -8
  555. package/dist/harmony67.mjs.map +1 -1
  556. package/dist/harmony68.cjs +14 -12
  557. package/dist/harmony68.cjs.map +1 -1
  558. package/dist/harmony68.mjs +14 -12
  559. package/dist/harmony68.mjs.map +1 -1
  560. package/dist/harmony69.cjs +8 -8
  561. package/dist/harmony69.cjs.map +1 -1
  562. package/dist/harmony69.mjs +9 -9
  563. package/dist/harmony69.mjs.map +1 -1
  564. package/dist/harmony7.cjs +8 -6
  565. package/dist/harmony7.cjs.map +1 -1
  566. package/dist/harmony7.mjs +8 -6
  567. package/dist/harmony7.mjs.map +1 -1
  568. package/dist/harmony70.cjs +12 -14
  569. package/dist/harmony70.cjs.map +1 -1
  570. package/dist/harmony70.mjs +13 -15
  571. package/dist/harmony70.mjs.map +1 -1
  572. package/dist/harmony71.cjs +14 -12
  573. package/dist/harmony71.cjs.map +1 -1
  574. package/dist/harmony71.mjs +14 -12
  575. package/dist/harmony71.mjs.map +1 -1
  576. package/dist/harmony72.cjs +12 -14
  577. package/dist/harmony72.cjs.map +1 -1
  578. package/dist/harmony72.mjs +12 -14
  579. package/dist/harmony72.mjs.map +1 -1
  580. package/dist/harmony73.cjs +10 -10
  581. package/dist/harmony73.cjs.map +1 -1
  582. package/dist/harmony73.mjs +10 -10
  583. package/dist/harmony73.mjs.map +1 -1
  584. package/dist/harmony74.cjs +8 -8
  585. package/dist/harmony74.cjs.map +1 -1
  586. package/dist/harmony74.mjs +8 -8
  587. package/dist/harmony74.mjs.map +1 -1
  588. package/dist/harmony75.cjs +7 -7
  589. package/dist/harmony75.cjs.map +1 -1
  590. package/dist/harmony75.mjs +7 -7
  591. package/dist/harmony75.mjs.map +1 -1
  592. package/dist/harmony76.cjs +8 -8
  593. package/dist/harmony76.cjs.map +1 -1
  594. package/dist/harmony76.mjs +8 -8
  595. package/dist/harmony76.mjs.map +1 -1
  596. package/dist/harmony77.cjs +14 -12
  597. package/dist/harmony77.cjs.map +1 -1
  598. package/dist/harmony77.mjs +14 -12
  599. package/dist/harmony77.mjs.map +1 -1
  600. package/dist/harmony78.cjs +12 -14
  601. package/dist/harmony78.cjs.map +1 -1
  602. package/dist/harmony78.mjs +12 -14
  603. package/dist/harmony78.mjs.map +1 -1
  604. package/dist/harmony79.cjs +8 -8
  605. package/dist/harmony79.cjs.map +1 -1
  606. package/dist/harmony79.mjs +8 -8
  607. package/dist/harmony79.mjs.map +1 -1
  608. package/dist/harmony8.cjs +6 -25
  609. package/dist/harmony8.cjs.map +1 -1
  610. package/dist/harmony8.mjs +6 -25
  611. package/dist/harmony8.mjs.map +1 -1
  612. package/dist/harmony80.cjs +8 -9
  613. package/dist/harmony80.cjs.map +1 -1
  614. package/dist/harmony80.mjs +9 -10
  615. package/dist/harmony80.mjs.map +1 -1
  616. package/dist/harmony81.cjs +11 -7
  617. package/dist/harmony81.cjs.map +1 -1
  618. package/dist/harmony81.mjs +12 -8
  619. package/dist/harmony81.mjs.map +1 -1
  620. package/dist/harmony82.cjs +4 -4
  621. package/dist/harmony82.cjs.map +1 -1
  622. package/dist/harmony82.mjs +4 -4
  623. package/dist/harmony82.mjs.map +1 -1
  624. package/dist/harmony83.cjs +13 -59
  625. package/dist/harmony83.cjs.map +1 -1
  626. package/dist/harmony83.mjs +13 -59
  627. package/dist/harmony83.mjs.map +1 -1
  628. package/dist/harmony84.cjs +58 -122
  629. package/dist/harmony84.cjs.map +1 -1
  630. package/dist/harmony84.mjs +56 -120
  631. package/dist/harmony84.mjs.map +1 -1
  632. package/dist/harmony85.cjs +102 -60
  633. package/dist/harmony85.cjs.map +1 -1
  634. package/dist/harmony85.mjs +102 -60
  635. package/dist/harmony85.mjs.map +1 -1
  636. package/dist/harmony86.cjs +80 -4
  637. package/dist/harmony86.cjs.map +1 -1
  638. package/dist/harmony86.mjs +80 -4
  639. package/dist/harmony86.mjs.map +1 -1
  640. package/dist/harmony87.cjs +4 -20
  641. package/dist/harmony87.cjs.map +1 -1
  642. package/dist/harmony87.mjs +4 -20
  643. package/dist/harmony87.mjs.map +1 -1
  644. package/dist/harmony88.cjs +19 -21
  645. package/dist/harmony88.cjs.map +1 -1
  646. package/dist/harmony88.mjs +19 -21
  647. package/dist/harmony88.mjs.map +1 -1
  648. package/dist/harmony89.cjs +19 -147
  649. package/dist/harmony89.cjs.map +1 -1
  650. package/dist/harmony89.mjs +17 -145
  651. package/dist/harmony89.mjs.map +1 -1
  652. package/dist/harmony9.cjs +25 -13
  653. package/dist/harmony9.cjs.map +1 -1
  654. package/dist/harmony9.mjs +25 -13
  655. package/dist/harmony9.mjs.map +1 -1
  656. package/dist/harmony90.cjs +151 -36
  657. package/dist/harmony90.cjs.map +1 -1
  658. package/dist/harmony90.mjs +150 -35
  659. package/dist/harmony90.mjs.map +1 -1
  660. package/dist/harmony91.cjs +36 -25
  661. package/dist/harmony91.cjs.map +1 -1
  662. package/dist/harmony91.mjs +36 -25
  663. package/dist/harmony91.mjs.map +1 -1
  664. package/dist/harmony92.cjs +24 -82
  665. package/dist/harmony92.cjs.map +1 -1
  666. package/dist/harmony92.mjs +24 -82
  667. package/dist/harmony92.mjs.map +1 -1
  668. package/dist/harmony93.cjs +79 -42
  669. package/dist/harmony93.cjs.map +1 -1
  670. package/dist/harmony93.mjs +79 -42
  671. package/dist/harmony93.mjs.map +1 -1
  672. package/dist/harmony94.cjs +46 -17
  673. package/dist/harmony94.cjs.map +1 -1
  674. package/dist/harmony94.mjs +46 -17
  675. package/dist/harmony94.mjs.map +1 -1
  676. package/dist/harmony95.cjs +19 -3
  677. package/dist/harmony95.cjs.map +1 -1
  678. package/dist/harmony95.mjs +18 -2
  679. package/dist/harmony95.mjs.map +1 -1
  680. package/dist/harmony96.cjs +2 -2
  681. package/dist/harmony96.cjs.map +1 -1
  682. package/dist/harmony96.mjs +2 -2
  683. package/dist/harmony96.mjs.map +1 -1
  684. package/dist/harmony97.cjs +2 -15
  685. package/dist/harmony97.cjs.map +1 -1
  686. package/dist/harmony97.mjs +2 -15
  687. package/dist/harmony97.mjs.map +1 -1
  688. package/dist/harmony98.cjs +15 -18
  689. package/dist/harmony98.cjs.map +1 -1
  690. package/dist/harmony98.mjs +15 -18
  691. package/dist/harmony98.mjs.map +1 -1
  692. package/dist/harmony99.cjs +18 -61
  693. package/dist/harmony99.cjs.map +1 -1
  694. package/dist/harmony99.mjs +18 -61
  695. package/dist/harmony99.mjs.map +1 -1
  696. package/dist/types/src/features/navigation/core/NavigationClient.d.ts +12 -1
  697. package/dist/types/src/features/navigation/hooks/useNavigationFeatureFlags.d.ts +8 -0
  698. package/dist/types/src/features/navigation/hooks/useNavigationFeatureFlags.test.d.ts +1 -0
  699. package/dist/types/src/features/navigation/providers/NavigationProvider.d.ts +4 -2
  700. package/dist/types/src/features/permissions/actionResolvers/testNewProjectSetupFlow.d.ts +2 -0
  701. package/dist/types/src/features/permissions/actionResolvers/testNewProjectSetupFlow.test.d.ts +1 -0
  702. package/dist/types/src/features/permissions/actionResolvers.d.ts +1 -0
  703. package/dist/types/src/features/permissions/types/featureFlagTypes.d.ts +3 -1
  704. package/dist/types/src/node.d.ts +2 -1
  705. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.cjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":["createContext"],"mappings":";;;AAGa,MAAA,iBAAiBA,MAAc,cAAA,CAAyB,CAAA;;"}
1
+ {"version":3,"file":"harmony114.cjs","sources":["../src/features/navigation/hooks/useNextgenNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useCallback, useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n// TODO: react-router-dom as peer dependencies works only inside next-gen apps. It shouldn't be like that.\n// Because of that we can't use THE WHOLE package in legacy apps, therefore it should be implemented in legacy apps as well(almost impossible),\n// so this dependency should be installed as direct dependency. or we should think about other options\n// import { useNavigate } from \"react-router-dom\";\nimport { navigationItems } from '../schemas/navigationSchema'\n\n// TODO: Unify navigation items for next-gen and legacy apps\n/**\n * Hook to generate navigation items for new applications\n */\nexport const useNextgenNavigation = (\n\tactiveKey: string,\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\tconst navigationClient = useNavigationClient()\n\tconst nextgenUrl = navigationClient.getNextgenUrl()\n\n\tconst navigate = useCallback(\n\t\t(path: string) => {\n\t\t\t// TODO: Define navigate logic here\n\t\t\twindow.location.href = `${nextgenUrl}${path}`\n\t\t},\n\t\t[nextgenUrl],\n\t)\n\n\treturn useMemo(() => {\n\t\tif (!enabled) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst projectId = project?.uuid || ''\n\n\t\t// Context for filtering and transforming navigation items\n\t\tconst context = {\n\t\t\tflags: {}, // TODO: getFeatureFlags(features),\n\t\t\tpathname: window.location.pathname,\n\t\t\tpermissions: contributor?.admin_rights || [],\n\t\t}\n\n\t\t// Filter and map items\n\t\treturn (\n\t\t\tnavigationItems\n\t\t\t\t// Filter based on conditions\n\t\t\t\t.filter((item) => (item.shouldShow ? item.shouldShow(context) : true))\n\t\t\t\t// Map to NavigationTabsItem shape\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst disabled =\n\t\t\t\t\t\ttypeof item.disabled === 'function' ? item.disabled(context) : !!item.disabled\n\n\t\t\t\t\tconst badge = typeof item.badge === 'function' ? item.badge(context) : item.badge\n\n\t\t\t\t\t// Create isActive function\n\t\t\t\t\tconst isActive = (input: string) =>\n\t\t\t\t\t\titem.isActive ? item.isActive(input) : item.key === activeKey || input === item.key\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: item.key,\n\t\t\t\t\t\tlabel: item.labelKey, // You can apply translations here if needed\n\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\tdropdown: item.dropdown,\n\t\t\t\t\t\tisActive,\n\t\t\t\t\t\tlink: `${nextgenUrl}${item.path({ projectId })}`,\n\t\t\t\t\t\tonClick: () => navigate(item.path({ projectId })),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t)\n\t}, [project, activeKey, enabled, navigate, contributor, nextgenUrl])\n}\n\n// TODO: Helper to convert features to flags format\n// const getFeatureFlags = (features) => {\n// \tif (!features) return {}\n//\n// \t// Convert features to the format expected by navigation schema\n// \treturn Object.keys(features).reduce((flags, key) => {\n// \t\tflags[key] = features[key] ? 'on' : 'off'\n// \t\treturn flags\n// \t}, {})\n// }\n"],"names":["useNavigationClient","useCallback","useMemo","navigationItems"],"mappings":";;;;;AAaO,MAAM,uBAAuB,CACnC,WACA,SACA,SACA,gBACI;AACJ,QAAM,mBAAmBA,yBAAAA,oBAAoB;AACvC,QAAA,aAAa,iBAAiB,cAAc;AAElD,QAAM,WAAWC,MAAA;AAAA,IAChB,CAAC,SAAiB;AAEjB,aAAO,SAAS,OAAO,GAAG,UAAU,GAAG,IAAI;AAAA,IAC5C;AAAA,IACA,CAAC,UAAU;AAAA,EACZ;AAEA,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGH,UAAA,aAAY,mCAAS,SAAQ;AAGnC,UAAM,UAAU;AAAA,MACf,OAAO,CAAC;AAAA;AAAA,MACR,UAAU,OAAO,SAAS;AAAA,MAC1B,aAA0C,CAAA;AAAA,IAC3C;AAGA,WACCC,iBAEE,gBAAA,OAAO,CAAC,SAAU,KAAK,aAAa,KAAK,WAAW,OAAO,IAAI,IAAK,EAEpE,IAAI,CAAC,SAAS;AACR,YAAA,WACL,OAAO,KAAK,aAAa,aAAa,KAAK,SAAS,OAAO,IAAI,CAAC,CAAC,KAAK;AAEjE,YAAA,QAAQ,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,IAAI,KAAK;AAG5E,YAAM,WAAW,CAAC,UACjB,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK;AAE1E,aAAA;AAAA,QACN,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf;AAAA,QACA,MAAM,GAAG,UAAU,GAAG,KAAK,KAAK,EAAE,UAAW,CAAA,CAAC;AAAA,QAC9C,SAAS,MAAM,SAAS,KAAK,KAAK,EAAE,UAAA,CAAW,CAAC;AAAA,MACjD;AAAA,IAAA,CACA;AAAA,EAAA,GAED,CAAC,SAAS,WAAW,SAAS,UAAU,aAAa,UAAU,CAAC;AACpE;;"}
@@ -1,6 +1,47 @@
1
- import { createContext } from "react";
2
- const SidebarContext = createContext({});
1
+ import { useCallback, useMemo } from "react";
2
+ import { useNavigationClient } from "./harmony17.mjs";
3
+ import { navigationItems } from "./harmony133.mjs";
4
+ const useNextgenNavigation = (activeKey, enabled, project, contributor) => {
5
+ const navigationClient = useNavigationClient();
6
+ const nextgenUrl = navigationClient.getNextgenUrl();
7
+ const navigate = useCallback(
8
+ (path) => {
9
+ window.location.href = `${nextgenUrl}${path}`;
10
+ },
11
+ [nextgenUrl]
12
+ );
13
+ return useMemo(() => {
14
+ if (!enabled) {
15
+ return [];
16
+ }
17
+ const projectId = (project == null ? void 0 : project.uuid) || "";
18
+ const context = {
19
+ flags: {},
20
+ // TODO: getFeatureFlags(features),
21
+ pathname: window.location.pathname,
22
+ permissions: []
23
+ };
24
+ return navigationItems.filter((item) => item.shouldShow ? item.shouldShow(context) : true).map((item) => {
25
+ const disabled = typeof item.disabled === "function" ? item.disabled(context) : !!item.disabled;
26
+ const badge = typeof item.badge === "function" ? item.badge(context) : item.badge;
27
+ const isActive = (input) => item.isActive ? item.isActive(input) : item.key === activeKey || input === item.key;
28
+ return {
29
+ key: item.key,
30
+ label: item.labelKey,
31
+ // You can apply translations here if needed
32
+ icon: item.icon,
33
+ visible: true,
34
+ badge,
35
+ disabled,
36
+ dropdown: item.dropdown,
37
+ isActive,
38
+ link: `${nextgenUrl}${item.path({ projectId })}`,
39
+ onClick: () => navigate(item.path({ projectId }))
40
+ };
41
+ });
42
+ }, [project, activeKey, enabled, navigate, contributor, nextgenUrl]);
43
+ };
3
44
  export {
4
- SidebarContext
45
+ useNextgenNavigation
5
46
  };
6
47
  //# sourceMappingURL=harmony114.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.mjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":[],"mappings":";AAGa,MAAA,iBAAiB,cAAc,CAAyB,CAAA;"}
1
+ {"version":3,"file":"harmony114.mjs","sources":["../src/features/navigation/hooks/useNextgenNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useCallback, useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n// TODO: react-router-dom as peer dependencies works only inside next-gen apps. It shouldn't be like that.\n// Because of that we can't use THE WHOLE package in legacy apps, therefore it should be implemented in legacy apps as well(almost impossible),\n// so this dependency should be installed as direct dependency. or we should think about other options\n// import { useNavigate } from \"react-router-dom\";\nimport { navigationItems } from '../schemas/navigationSchema'\n\n// TODO: Unify navigation items for next-gen and legacy apps\n/**\n * Hook to generate navigation items for new applications\n */\nexport const useNextgenNavigation = (\n\tactiveKey: string,\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\tconst navigationClient = useNavigationClient()\n\tconst nextgenUrl = navigationClient.getNextgenUrl()\n\n\tconst navigate = useCallback(\n\t\t(path: string) => {\n\t\t\t// TODO: Define navigate logic here\n\t\t\twindow.location.href = `${nextgenUrl}${path}`\n\t\t},\n\t\t[nextgenUrl],\n\t)\n\n\treturn useMemo(() => {\n\t\tif (!enabled) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst projectId = project?.uuid || ''\n\n\t\t// Context for filtering and transforming navigation items\n\t\tconst context = {\n\t\t\tflags: {}, // TODO: getFeatureFlags(features),\n\t\t\tpathname: window.location.pathname,\n\t\t\tpermissions: contributor?.admin_rights || [],\n\t\t}\n\n\t\t// Filter and map items\n\t\treturn (\n\t\t\tnavigationItems\n\t\t\t\t// Filter based on conditions\n\t\t\t\t.filter((item) => (item.shouldShow ? item.shouldShow(context) : true))\n\t\t\t\t// Map to NavigationTabsItem shape\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst disabled =\n\t\t\t\t\t\ttypeof item.disabled === 'function' ? item.disabled(context) : !!item.disabled\n\n\t\t\t\t\tconst badge = typeof item.badge === 'function' ? item.badge(context) : item.badge\n\n\t\t\t\t\t// Create isActive function\n\t\t\t\t\tconst isActive = (input: string) =>\n\t\t\t\t\t\titem.isActive ? item.isActive(input) : item.key === activeKey || input === item.key\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: item.key,\n\t\t\t\t\t\tlabel: item.labelKey, // You can apply translations here if needed\n\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\tdropdown: item.dropdown,\n\t\t\t\t\t\tisActive,\n\t\t\t\t\t\tlink: `${nextgenUrl}${item.path({ projectId })}`,\n\t\t\t\t\t\tonClick: () => navigate(item.path({ projectId })),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t)\n\t}, [project, activeKey, enabled, navigate, contributor, nextgenUrl])\n}\n\n// TODO: Helper to convert features to flags format\n// const getFeatureFlags = (features) => {\n// \tif (!features) return {}\n//\n// \t// Convert features to the format expected by navigation schema\n// \treturn Object.keys(features).reduce((flags, key) => {\n// \t\tflags[key] = features[key] ? 'on' : 'off'\n// \t\treturn flags\n// \t}, {})\n// }\n"],"names":[],"mappings":";;;AAaO,MAAM,uBAAuB,CACnC,WACA,SACA,SACA,gBACI;AACJ,QAAM,mBAAmB,oBAAoB;AACvC,QAAA,aAAa,iBAAiB,cAAc;AAElD,QAAM,WAAW;AAAA,IAChB,CAAC,SAAiB;AAEjB,aAAO,SAAS,OAAO,GAAG,UAAU,GAAG,IAAI;AAAA,IAC5C;AAAA,IACA,CAAC,UAAU;AAAA,EACZ;AAEA,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGH,UAAA,aAAY,mCAAS,SAAQ;AAGnC,UAAM,UAAU;AAAA,MACf,OAAO,CAAC;AAAA;AAAA,MACR,UAAU,OAAO,SAAS;AAAA,MAC1B,aAA0C,CAAA;AAAA,IAC3C;AAGA,WACC,gBAEE,OAAO,CAAC,SAAU,KAAK,aAAa,KAAK,WAAW,OAAO,IAAI,IAAK,EAEpE,IAAI,CAAC,SAAS;AACR,YAAA,WACL,OAAO,KAAK,aAAa,aAAa,KAAK,SAAS,OAAO,IAAI,CAAC,CAAC,KAAK;AAEjE,YAAA,QAAQ,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,IAAI,KAAK;AAG5E,YAAM,WAAW,CAAC,UACjB,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK;AAE1E,aAAA;AAAA,QACN,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf;AAAA,QACA,MAAM,GAAG,UAAU,GAAG,KAAK,KAAK,EAAE,UAAW,CAAA,CAAC;AAAA,QAC9C,SAAS,MAAM,SAAS,KAAK,KAAK,EAAE,UAAA,CAAW,CAAC;AAAA,MACjD;AAAA,IAAA,CACA;AAAA,EAAA,GAED,CAAC,SAAS,WAAW,SAAS,UAAU,aAAa,UAAU,CAAC;AACpE;"}
@@ -1,21 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const clsx = require("./harmony97.cjs");
6
- const IconLink_module = require("./harmony134.cjs");
7
- const IconLink = ({ label, to, icon: Icon }) => {
8
- return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsxRuntime.jsx(
9
- louis.Link,
10
- {
11
- "aria-label": label,
12
- className: clsx.clsx(IconLink_module.default.link, {
13
- [IconLink_module.default.active]: typeof window !== "undefined" && window.location.pathname.startsWith(to)
14
- }),
15
- href: to,
16
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: "25px" })
17
- }
18
- ) });
19
- };
20
- exports.IconLink = IconLink;
3
+ const React = require("react");
4
+ const SidebarContext = React.createContext({});
5
+ exports.SidebarContext = SidebarContext;
21
6
  //# sourceMappingURL=harmony115.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony115.cjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: typeof window !== 'undefined' && window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":["jsx","Tooltip","Link","clsx","styles"],"mappings":";;;;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACEA,2BAAA,IAAAC,MAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAWC,KAAAA,KAAKC,gBAAA,QAAO,MAAM;AAAA,QAC5B,CAACA,gBAAO,QAAA,MAAM,GAAG,OAAO,WAAW,eAAe,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACxF;AAAA,MACD,MAAM;AAAA,MAEN,UAAAJ,2BAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;;"}
1
+ {"version":3,"file":"harmony115.cjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":["createContext"],"mappings":";;;AAGa,MAAA,iBAAiBA,MAAc,cAAA,CAAyB,CAAA;;"}
@@ -1,21 +1,6 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { Tooltip, Link } from "@lokalise/louis";
3
- import { clsx } from "./harmony97.mjs";
4
- import styles from "./harmony134.mjs";
5
- const IconLink = ({ label, to, icon: Icon }) => {
6
- return /* @__PURE__ */ jsx(Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsx(
7
- Link,
8
- {
9
- "aria-label": label,
10
- className: clsx(styles.link, {
11
- [styles.active]: typeof window !== "undefined" && window.location.pathname.startsWith(to)
12
- }),
13
- href: to,
14
- children: /* @__PURE__ */ jsx(Icon, { size: "25px" })
15
- }
16
- ) });
17
- };
1
+ import { createContext } from "react";
2
+ const SidebarContext = createContext({});
18
3
  export {
19
- IconLink
4
+ SidebarContext
20
5
  };
21
6
  //# sourceMappingURL=harmony115.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony115.mjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: typeof window !== 'undefined' && window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":[],"mappings":";;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACE,oBAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW,KAAK,OAAO,MAAM;AAAA,QAC5B,CAAC,OAAO,MAAM,GAAG,OAAO,WAAW,eAAe,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACxF;AAAA,MACD,MAAM;AAAA,MAEN,UAAA,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;"}
1
+ {"version":3,"file":"harmony115.mjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":[],"mappings":";AAGa,MAAA,iBAAiB,cAAc,CAAyB,CAAA;"}
@@ -1,79 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const BillingMenuItem = require("./harmony135.cjs");
5
- const CreateNewTeam = require("./harmony136.cjs");
6
- const CreateNewTeamPlaceholder = require("./harmony137.cjs");
7
- const DarkModeToggle = require("./harmony138.cjs");
8
- const ProfileSettingsMenuItem = require("./harmony139.cjs");
9
- const ProviderMenuItem = require("./harmony140.cjs");
10
- const TeamMenuItem = require("./harmony141.cjs");
11
- const TeamSettingsMenuItem = require("./harmony142.cjs");
12
- const TeamSwitch = require("./harmony143.cjs");
13
- const UpgradeMenuItem = require("./harmony144.cjs");
14
- const useSidebar = require("./harmony117.cjs");
15
4
  const louis = require("@lokalise/louis");
16
- const permissions = require("./harmony118.cjs");
17
- const clsx = require("./harmony97.cjs");
18
- const ProfileMenu_module = require("./harmony145.cjs");
19
- const UpgradeIcon = require("./harmony146.cjs");
20
- const ProfileMenu = ({ config }) => {
21
- const {
22
- jwt,
23
- data: { currentTeam }
24
- } = useSidebar.useSidebar();
25
- const {
26
- darkModeToggle,
27
- teamSwitch,
28
- createTeam,
29
- createTeamPlaceholder,
30
- upgradeMenuItem,
31
- profileSettings
32
- } = config;
33
- return /* @__PURE__ */ jsxRuntime.jsx(
34
- louis.Menu,
5
+ const clsx = require("./harmony98.cjs");
6
+ const IconLink_module = require("./harmony134.cjs");
7
+ const IconLink = ({ label, to, icon: Icon }) => {
8
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsxRuntime.jsx(
9
+ louis.Link,
35
10
  {
36
- menuButton: () => {
37
- var _a;
38
- return /* @__PURE__ */ jsxRuntime.jsxs("button", { className: ProfileMenu_module.default.profileButton, "aria-label": "Profile menu", type: "button", children: [
39
- ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsxRuntime.jsx(
40
- "img",
41
- {
42
- src: currentTeam.result.logoUrl,
43
- className: clsx.clsx(ProfileMenu_module.default.profileImage, {
44
- [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt)
45
- }),
46
- alt: "Team Logo"
47
- }
48
- ) : /* @__PURE__ */ jsxRuntime.jsx(
49
- "div",
50
- {
51
- className: clsx.clsx(ProfileMenu_module.default.userIconWrapper, "flex-row", "align-center", "items-center", {
52
- [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt)
53
- }),
54
- children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" })
55
- }
56
- ),
57
- permissions.canUpgradePlan(jwt) && /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, { className: ProfileMenu_module.default.profileImageUpgradeIcon })
58
- ] });
59
- },
60
- children: /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuList, { placement: "right-end", className: ProfileMenu_module.default.menuContainer, children: [
61
- teamSwitch && /* @__PURE__ */ jsxRuntime.jsx(TeamSwitch.TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
62
- createTeam && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeam.CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
63
- createTeamPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeamPlaceholder.CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
64
- /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, {}),
65
- upgradeMenuItem && /* @__PURE__ */ jsxRuntime.jsx(UpgradeMenuItem.UpgradeMenuItem, { href: upgradeMenuItem.href }),
66
- /* @__PURE__ */ jsxRuntime.jsx(BillingMenuItem.BillingMenuItem, {}),
67
- /* @__PURE__ */ jsxRuntime.jsx(TeamSettingsMenuItem.TeamSettingsMenuItem, {}),
68
- /* @__PURE__ */ jsxRuntime.jsx(ProviderMenuItem.ProviderMenuItem, {}),
69
- /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
70
- /* @__PURE__ */ jsxRuntime.jsx(ProfileSettingsMenuItem.ProfileSettingsMenuItem, { ...profileSettings ?? {} }),
71
- darkModeToggle && /* @__PURE__ */ jsxRuntime.jsx(DarkModeToggle.DarkModeToggle, { ...darkModeToggle }),
72
- (permissions.canAccessProfileSettings(jwt) || darkModeToggle) && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
73
- /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/login?action=logout", children: "Logout" })
74
- ] })
11
+ "aria-label": label,
12
+ className: clsx.clsx(IconLink_module.default.link, {
13
+ [IconLink_module.default.active]: typeof window !== "undefined" && window.location.pathname.startsWith(to)
14
+ }),
15
+ href: to,
16
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: "25px" })
75
17
  }
76
- );
18
+ ) });
77
19
  };
78
- exports.ProfileMenu = ProfileMenu;
20
+ exports.IconLink = IconLink;
79
21
  //# sourceMappingURL=harmony116.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony116.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t<ProfileSettingsMenuItem {...(profileSettings ?? {})} />\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{(canAccessProfileSettings(jwt) || darkModeToggle) && <MenuDivider />}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":["useSidebar","jsx","Menu","jsxs","styles","clsx","canUpgradePlan","UserIcon","UpgradeIcon","MenuList","TeamSwitch","CreateNewTeam","CreateNewTeamPlaceholder","TeamMenuItem","UpgradeMenuItem","BillingMenuItem","TeamSettingsMenuItem","ProviderMenuItem","MenuDivider","ProfileSettingsMenuItem","DarkModeToggle","canAccessProfileSettings","MenuItem"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjBA,sBAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,YAAY,MACXC;;AAAAA,0CAAAA,KAAC,UAAO,EAAA,WAAWC,mBAAAA,QAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpBH,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAWI,KAAAA,KAAKD,mBAAA,QAAO,cAAc;AAAA,gBACpC,CAACA,mBAAA,QAAO,qBAAqB,GAAGE,YAAAA,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGLL,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWI,KAAK,KAAAD,mBAAA,QAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAACA,mBAAA,QAAO,qBAAqB,GAAGE,YAAAA,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cAED,UAAAL,2BAAAA,IAACM,MAAAA,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEAD,2BAAe,GAAG,oCAAME,YAAY,aAAA,EAAA,WAAWJ,2BAAO,wBAAyB,CAAA;AAAA,QAAA,GACjF;AAAA;AAAA,MAGD,0CAACK,MAAS,UAAA,EAAA,WAAU,aAAY,WAAWL,mBAAAA,QAAO,eAChD,UAAA;AAAA,QAAA,cAAeH,2BAAA,IAAAS,WAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAcT,2BAAA,IAACU,cAAc,eAAA,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACAV,2BAAA,IAACW,yBAAyB,0BAAA,EAAA,SAAS,sBAAsB,SAAS;AAAA,uCAElEC,aAAa,cAAA,EAAA;AAAA,QACb,mBAAmBZ,2BAAA,IAACa,gBAAgB,iBAAA,EAAA,MAAM,gBAAgB,MAAM;AAAA,uCAChEC,gBAAgB,iBAAA,EAAA;AAAA,uCAChBC,qBAAqB,sBAAA,EAAA;AAAA,uCACrBC,iBAAiB,kBAAA,EAAA;AAAA,uCACjBC,MAAY,aAAA,EAAA;AAAA,QAEZjB,2BAAAA,IAAAkB,wBAAAA,yBAAA,EAAyB,GAAI,mBAAmB,CAAK,EAAA,CAAA;AAAA,QACrD,kBAAkBlB,2BAAAA,IAACmB,eAAAA,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACrDC,YAAAA,yBAAyB,GAAG,KAAK,kDAAoBH,MAAY,aAAA,EAAA;AAAA,QAElEjB,2BAAA,IAAAqB,MAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
1
+ {"version":3,"file":"harmony116.cjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: typeof window !== 'undefined' && window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":["jsx","Tooltip","Link","clsx","styles"],"mappings":";;;;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACEA,2BAAA,IAAAC,MAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAWC,KAAAA,KAAKC,gBAAA,QAAO,MAAM;AAAA,QAC5B,CAACA,gBAAO,QAAA,MAAM,GAAG,OAAO,WAAW,eAAe,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACxF;AAAA,MACD,MAAM;AAAA,MAEN,UAAAJ,2BAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;;"}
@@ -1,79 +1,21 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { BillingMenuItem } from "./harmony135.mjs";
3
- import { CreateNewTeam } from "./harmony136.mjs";
4
- import { CreateNewTeamPlaceholder } from "./harmony137.mjs";
5
- import { DarkModeToggle } from "./harmony138.mjs";
6
- import { ProfileSettingsMenuItem } from "./harmony139.mjs";
7
- import { ProviderMenuItem } from "./harmony140.mjs";
8
- import { TeamMenuItem } from "./harmony141.mjs";
9
- import { TeamSettingsMenuItem } from "./harmony142.mjs";
10
- import { TeamSwitch } from "./harmony143.mjs";
11
- import { UpgradeMenuItem } from "./harmony144.mjs";
12
- import { useSidebar } from "./harmony117.mjs";
13
- import { Menu, MenuList, MenuDivider, MenuItem, UserIcon } from "@lokalise/louis";
14
- import { canAccessProfileSettings, canUpgradePlan } from "./harmony118.mjs";
15
- import { clsx } from "./harmony97.mjs";
16
- import styles from "./harmony145.mjs";
17
- import { UpgradeIcon } from "./harmony146.mjs";
18
- const ProfileMenu = ({ config }) => {
19
- const {
20
- jwt,
21
- data: { currentTeam }
22
- } = useSidebar();
23
- const {
24
- darkModeToggle,
25
- teamSwitch,
26
- createTeam,
27
- createTeamPlaceholder,
28
- upgradeMenuItem,
29
- profileSettings
30
- } = config;
31
- return /* @__PURE__ */ jsx(
32
- Menu,
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Tooltip, Link } from "@lokalise/louis";
3
+ import { clsx } from "./harmony98.mjs";
4
+ import styles from "./harmony134.mjs";
5
+ const IconLink = ({ label, to, icon: Icon }) => {
6
+ return /* @__PURE__ */ jsx(Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsx(
7
+ Link,
33
8
  {
34
- menuButton: () => {
35
- var _a;
36
- return /* @__PURE__ */ jsxs("button", { className: styles.profileButton, "aria-label": "Profile menu", type: "button", children: [
37
- ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsx(
38
- "img",
39
- {
40
- src: currentTeam.result.logoUrl,
41
- className: clsx(styles.profileImage, {
42
- [styles.profileImageHighlight]: canUpgradePlan(jwt)
43
- }),
44
- alt: "Team Logo"
45
- }
46
- ) : /* @__PURE__ */ jsx(
47
- "div",
48
- {
49
- className: clsx(styles.userIconWrapper, "flex-row", "align-center", "items-center", {
50
- [styles.profileImageHighlight]: canUpgradePlan(jwt)
51
- }),
52
- children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" })
53
- }
54
- ),
55
- canUpgradePlan(jwt) && /* @__PURE__ */ jsx(UpgradeIcon, { className: styles.profileImageUpgradeIcon })
56
- ] });
57
- },
58
- children: /* @__PURE__ */ jsxs(MenuList, { placement: "right-end", className: styles.menuContainer, children: [
59
- teamSwitch && /* @__PURE__ */ jsx(TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
60
- createTeam && /* @__PURE__ */ jsx(CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
61
- createTeamPlaceholder && /* @__PURE__ */ jsx(CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
62
- /* @__PURE__ */ jsx(TeamMenuItem, {}),
63
- upgradeMenuItem && /* @__PURE__ */ jsx(UpgradeMenuItem, { href: upgradeMenuItem.href }),
64
- /* @__PURE__ */ jsx(BillingMenuItem, {}),
65
- /* @__PURE__ */ jsx(TeamSettingsMenuItem, {}),
66
- /* @__PURE__ */ jsx(ProviderMenuItem, {}),
67
- /* @__PURE__ */ jsx(MenuDivider, {}),
68
- /* @__PURE__ */ jsx(ProfileSettingsMenuItem, { ...profileSettings ?? {} }),
69
- darkModeToggle && /* @__PURE__ */ jsx(DarkModeToggle, { ...darkModeToggle }),
70
- (canAccessProfileSettings(jwt) || darkModeToggle) && /* @__PURE__ */ jsx(MenuDivider, {}),
71
- /* @__PURE__ */ jsx(MenuItem, { href: "/login?action=logout", children: "Logout" })
72
- ] })
9
+ "aria-label": label,
10
+ className: clsx(styles.link, {
11
+ [styles.active]: typeof window !== "undefined" && window.location.pathname.startsWith(to)
12
+ }),
13
+ href: to,
14
+ children: /* @__PURE__ */ jsx(Icon, { size: "25px" })
73
15
  }
74
- );
16
+ ) });
75
17
  };
76
18
  export {
77
- ProfileMenu
19
+ IconLink
78
20
  };
79
21
  //# sourceMappingURL=harmony116.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony116.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t<ProfileSettingsMenuItem {...(profileSettings ?? {})} />\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{(canAccessProfileSettings(jwt) || darkModeToggle) && <MenuDivider />}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjB,WAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MACX;;AAAA,oCAAC,UAAO,EAAA,WAAW,OAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpB;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAW,KAAK,OAAO,cAAc;AAAA,gBACpC,CAAC,OAAO,qBAAqB,GAAG,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGL;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAW,KAAK,OAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAAC,OAAO,qBAAqB,GAAG,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cAED,UAAA,oBAAC,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEA,eAAe,GAAG,yBAAM,aAAY,EAAA,WAAW,OAAO,wBAAyB,CAAA;AAAA,QAAA,GACjF;AAAA;AAAA,MAGD,+BAAC,UAAS,EAAA,WAAU,aAAY,WAAW,OAAO,eAChD,UAAA;AAAA,QAAA,cAAe,oBAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAc,oBAAC,eAAc,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACA,oBAAC,0BAAyB,EAAA,SAAS,sBAAsB,SAAS;AAAA,4BAElE,cAAa,EAAA;AAAA,QACb,mBAAmB,oBAAC,iBAAgB,EAAA,MAAM,gBAAgB,MAAM;AAAA,4BAChE,iBAAgB,EAAA;AAAA,4BAChB,sBAAqB,EAAA;AAAA,4BACrB,kBAAiB,EAAA;AAAA,4BACjB,aAAY,EAAA;AAAA,QAEZ,oBAAA,yBAAA,EAAyB,GAAI,mBAAmB,CAAK,EAAA,CAAA;AAAA,QACrD,kBAAkB,oBAAC,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACrD,yBAAyB,GAAG,KAAK,uCAAoB,aAAY,EAAA;AAAA,QAElE,oBAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"harmony116.mjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: typeof window !== 'undefined' && window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":[],"mappings":";;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACE,oBAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW,KAAK,OAAO,MAAM;AAAA,QAC5B,CAAC,OAAO,MAAM,GAAG,OAAO,WAAW,eAAe,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACxF;AAAA,MACD,MAAM;AAAA,MAEN,UAAA,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;"}
@@ -1,15 +1,79 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const SidebarContext = require("./harmony114.cjs");
4
- const React = require("react");
5
- const useSidebar = () => {
6
- const context = React.useContext(SidebarContext.SidebarContext);
7
- if (!context) {
8
- throw new Error(
9
- "You are using useSidebar hook outside its context. Please review your code implementation"
10
- );
11
- }
12
- return context;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const BillingMenuItem = require("./harmony135.cjs");
5
+ const CreateNewTeam = require("./harmony136.cjs");
6
+ const CreateNewTeamPlaceholder = require("./harmony137.cjs");
7
+ const DarkModeToggle = require("./harmony138.cjs");
8
+ const ProfileSettingsMenuItem = require("./harmony139.cjs");
9
+ const ProviderMenuItem = require("./harmony140.cjs");
10
+ const TeamMenuItem = require("./harmony141.cjs");
11
+ const TeamSettingsMenuItem = require("./harmony142.cjs");
12
+ const TeamSwitch = require("./harmony143.cjs");
13
+ const UpgradeMenuItem = require("./harmony144.cjs");
14
+ const useSidebar = require("./harmony118.cjs");
15
+ const louis = require("@lokalise/louis");
16
+ const permissions = require("./harmony119.cjs");
17
+ const clsx = require("./harmony98.cjs");
18
+ const ProfileMenu_module = require("./harmony145.cjs");
19
+ const UpgradeIcon = require("./harmony146.cjs");
20
+ const ProfileMenu = ({ config }) => {
21
+ const {
22
+ jwt,
23
+ data: { currentTeam }
24
+ } = useSidebar.useSidebar();
25
+ const {
26
+ darkModeToggle,
27
+ teamSwitch,
28
+ createTeam,
29
+ createTeamPlaceholder,
30
+ upgradeMenuItem,
31
+ profileSettings
32
+ } = config;
33
+ return /* @__PURE__ */ jsxRuntime.jsx(
34
+ louis.Menu,
35
+ {
36
+ menuButton: () => {
37
+ var _a;
38
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", { className: ProfileMenu_module.default.profileButton, "aria-label": "Profile menu", type: "button", children: [
39
+ ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsxRuntime.jsx(
40
+ "img",
41
+ {
42
+ src: currentTeam.result.logoUrl,
43
+ className: clsx.clsx(ProfileMenu_module.default.profileImage, {
44
+ [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt)
45
+ }),
46
+ alt: "Team Logo"
47
+ }
48
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
49
+ "div",
50
+ {
51
+ className: clsx.clsx(ProfileMenu_module.default.userIconWrapper, "flex-row", "align-center", "items-center", {
52
+ [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt)
53
+ }),
54
+ children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" })
55
+ }
56
+ ),
57
+ permissions.canUpgradePlan(jwt) && /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, { className: ProfileMenu_module.default.profileImageUpgradeIcon })
58
+ ] });
59
+ },
60
+ children: /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuList, { placement: "right-end", className: ProfileMenu_module.default.menuContainer, children: [
61
+ teamSwitch && /* @__PURE__ */ jsxRuntime.jsx(TeamSwitch.TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
62
+ createTeam && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeam.CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
63
+ createTeamPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeamPlaceholder.CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
64
+ /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, {}),
65
+ upgradeMenuItem && /* @__PURE__ */ jsxRuntime.jsx(UpgradeMenuItem.UpgradeMenuItem, { href: upgradeMenuItem.href }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(BillingMenuItem.BillingMenuItem, {}),
67
+ /* @__PURE__ */ jsxRuntime.jsx(TeamSettingsMenuItem.TeamSettingsMenuItem, {}),
68
+ /* @__PURE__ */ jsxRuntime.jsx(ProviderMenuItem.ProviderMenuItem, {}),
69
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
70
+ /* @__PURE__ */ jsxRuntime.jsx(ProfileSettingsMenuItem.ProfileSettingsMenuItem, { ...profileSettings ?? {} }),
71
+ darkModeToggle && /* @__PURE__ */ jsxRuntime.jsx(DarkModeToggle.DarkModeToggle, { ...darkModeToggle }),
72
+ (permissions.canAccessProfileSettings(jwt) || darkModeToggle) && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
73
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/login?action=logout", children: "Logout" })
74
+ ] })
75
+ }
76
+ );
13
77
  };
14
- exports.useSidebar = useSidebar;
78
+ exports.ProfileMenu = ProfileMenu;
15
79
  //# sourceMappingURL=harmony117.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony117.cjs","sources":["../src/components/Sidebar/hooks/useSidebar.ts"],"sourcesContent":["import { SidebarContext } from '@components/Sidebar/SidebarContext'\nimport { useContext } from 'react'\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":["useContext","SidebarContext"],"mappings":";;;;AAGO,MAAM,aAAa,MAAM;AACzB,QAAA,UAAUA,iBAAWC,6BAAc;AAEzC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EAAA;AAGM,SAAA;AACR;;"}
1
+ {"version":3,"file":"harmony117.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t<ProfileSettingsMenuItem {...(profileSettings ?? {})} />\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{(canAccessProfileSettings(jwt) || darkModeToggle) && <MenuDivider />}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":["useSidebar","jsx","Menu","jsxs","styles","clsx","canUpgradePlan","UserIcon","UpgradeIcon","MenuList","TeamSwitch","CreateNewTeam","CreateNewTeamPlaceholder","TeamMenuItem","UpgradeMenuItem","BillingMenuItem","TeamSettingsMenuItem","ProviderMenuItem","MenuDivider","ProfileSettingsMenuItem","DarkModeToggle","canAccessProfileSettings","MenuItem"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjBA,sBAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,YAAY,MACXC;;AAAAA,0CAAAA,KAAC,UAAO,EAAA,WAAWC,mBAAAA,QAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpBH,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAWI,KAAAA,KAAKD,mBAAA,QAAO,cAAc;AAAA,gBACpC,CAACA,mBAAA,QAAO,qBAAqB,GAAGE,YAAAA,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGLL,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWI,KAAK,KAAAD,mBAAA,QAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAACA,mBAAA,QAAO,qBAAqB,GAAGE,YAAAA,eAAe,GAAG;AAAA,cAAA,CAClD;AAAA,cAED,UAAAL,2BAAAA,IAACM,MAAAA,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEAD,2BAAe,GAAG,oCAAME,YAAY,aAAA,EAAA,WAAWJ,2BAAO,wBAAyB,CAAA;AAAA,QAAA,GACjF;AAAA;AAAA,MAGD,0CAACK,MAAS,UAAA,EAAA,WAAU,aAAY,WAAWL,mBAAAA,QAAO,eAChD,UAAA;AAAA,QAAA,cAAeH,2BAAA,IAAAS,WAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAcT,2BAAA,IAACU,cAAc,eAAA,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACAV,2BAAA,IAACW,yBAAyB,0BAAA,EAAA,SAAS,sBAAsB,SAAS;AAAA,uCAElEC,aAAa,cAAA,EAAA;AAAA,QACb,mBAAmBZ,2BAAA,IAACa,gBAAgB,iBAAA,EAAA,MAAM,gBAAgB,MAAM;AAAA,uCAChEC,gBAAgB,iBAAA,EAAA;AAAA,uCAChBC,qBAAqB,sBAAA,EAAA;AAAA,uCACrBC,iBAAiB,kBAAA,EAAA;AAAA,uCACjBC,MAAY,aAAA,EAAA;AAAA,QAEZjB,2BAAAA,IAAAkB,wBAAAA,yBAAA,EAAyB,GAAI,mBAAmB,CAAK,EAAA,CAAA;AAAA,QACrD,kBAAkBlB,2BAAAA,IAACmB,eAAAA,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACrDC,YAAAA,yBAAyB,GAAG,KAAK,kDAAoBH,MAAY,aAAA,EAAA;AAAA,QAElEjB,2BAAA,IAAAqB,MAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,15 +1,79 @@
1
- import { SidebarContext } from "./harmony114.mjs";
2
- import { useContext } from "react";
3
- const useSidebar = () => {
4
- const context = useContext(SidebarContext);
5
- if (!context) {
6
- throw new Error(
7
- "You are using useSidebar hook outside its context. Please review your code implementation"
8
- );
9
- }
10
- return context;
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { BillingMenuItem } from "./harmony135.mjs";
3
+ import { CreateNewTeam } from "./harmony136.mjs";
4
+ import { CreateNewTeamPlaceholder } from "./harmony137.mjs";
5
+ import { DarkModeToggle } from "./harmony138.mjs";
6
+ import { ProfileSettingsMenuItem } from "./harmony139.mjs";
7
+ import { ProviderMenuItem } from "./harmony140.mjs";
8
+ import { TeamMenuItem } from "./harmony141.mjs";
9
+ import { TeamSettingsMenuItem } from "./harmony142.mjs";
10
+ import { TeamSwitch } from "./harmony143.mjs";
11
+ import { UpgradeMenuItem } from "./harmony144.mjs";
12
+ import { useSidebar } from "./harmony118.mjs";
13
+ import { Menu, MenuList, MenuDivider, MenuItem, UserIcon } from "@lokalise/louis";
14
+ import { canAccessProfileSettings, canUpgradePlan } from "./harmony119.mjs";
15
+ import { clsx } from "./harmony98.mjs";
16
+ import styles from "./harmony145.mjs";
17
+ import { UpgradeIcon } from "./harmony146.mjs";
18
+ const ProfileMenu = ({ config }) => {
19
+ const {
20
+ jwt,
21
+ data: { currentTeam }
22
+ } = useSidebar();
23
+ const {
24
+ darkModeToggle,
25
+ teamSwitch,
26
+ createTeam,
27
+ createTeamPlaceholder,
28
+ upgradeMenuItem,
29
+ profileSettings
30
+ } = config;
31
+ return /* @__PURE__ */ jsx(
32
+ Menu,
33
+ {
34
+ menuButton: () => {
35
+ var _a;
36
+ return /* @__PURE__ */ jsxs("button", { className: styles.profileButton, "aria-label": "Profile menu", type: "button", children: [
37
+ ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsx(
38
+ "img",
39
+ {
40
+ src: currentTeam.result.logoUrl,
41
+ className: clsx(styles.profileImage, {
42
+ [styles.profileImageHighlight]: canUpgradePlan(jwt)
43
+ }),
44
+ alt: "Team Logo"
45
+ }
46
+ ) : /* @__PURE__ */ jsx(
47
+ "div",
48
+ {
49
+ className: clsx(styles.userIconWrapper, "flex-row", "align-center", "items-center", {
50
+ [styles.profileImageHighlight]: canUpgradePlan(jwt)
51
+ }),
52
+ children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" })
53
+ }
54
+ ),
55
+ canUpgradePlan(jwt) && /* @__PURE__ */ jsx(UpgradeIcon, { className: styles.profileImageUpgradeIcon })
56
+ ] });
57
+ },
58
+ children: /* @__PURE__ */ jsxs(MenuList, { placement: "right-end", className: styles.menuContainer, children: [
59
+ teamSwitch && /* @__PURE__ */ jsx(TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
60
+ createTeam && /* @__PURE__ */ jsx(CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
61
+ createTeamPlaceholder && /* @__PURE__ */ jsx(CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
62
+ /* @__PURE__ */ jsx(TeamMenuItem, {}),
63
+ upgradeMenuItem && /* @__PURE__ */ jsx(UpgradeMenuItem, { href: upgradeMenuItem.href }),
64
+ /* @__PURE__ */ jsx(BillingMenuItem, {}),
65
+ /* @__PURE__ */ jsx(TeamSettingsMenuItem, {}),
66
+ /* @__PURE__ */ jsx(ProviderMenuItem, {}),
67
+ /* @__PURE__ */ jsx(MenuDivider, {}),
68
+ /* @__PURE__ */ jsx(ProfileSettingsMenuItem, { ...profileSettings ?? {} }),
69
+ darkModeToggle && /* @__PURE__ */ jsx(DarkModeToggle, { ...darkModeToggle }),
70
+ (canAccessProfileSettings(jwt) || darkModeToggle) && /* @__PURE__ */ jsx(MenuDivider, {}),
71
+ /* @__PURE__ */ jsx(MenuItem, { href: "/login?action=logout", children: "Logout" })
72
+ ] })
73
+ }
74
+ );
11
75
  };
12
76
  export {
13
- useSidebar
77
+ ProfileMenu
14
78
  };
15
79
  //# sourceMappingURL=harmony117.mjs.map