@lokalise/harmony 2.1.0 → 2.1.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 (543) hide show
  1. package/dist/harmony.cjs +135 -135
  2. package/dist/harmony.mjs +79 -79
  3. package/dist/harmony102.cjs +1 -1
  4. package/dist/harmony102.mjs +1 -1
  5. package/dist/harmony103.cjs +7 -7
  6. package/dist/harmony103.mjs +7 -7
  7. package/dist/harmony105.cjs +2 -2
  8. package/dist/harmony105.mjs +2 -2
  9. package/dist/harmony106.cjs +13 -165
  10. package/dist/harmony106.cjs.map +1 -1
  11. package/dist/harmony106.mjs +13 -165
  12. package/dist/harmony106.mjs.map +1 -1
  13. package/dist/harmony107.cjs +159 -37
  14. package/dist/harmony107.cjs.map +1 -1
  15. package/dist/harmony107.mjs +160 -38
  16. package/dist/harmony107.mjs.map +1 -1
  17. package/dist/harmony108.cjs +42 -12
  18. package/dist/harmony108.cjs.map +1 -1
  19. package/dist/harmony108.mjs +42 -12
  20. package/dist/harmony108.mjs.map +1 -1
  21. package/dist/harmony109.cjs +3 -12
  22. package/dist/harmony109.cjs.map +1 -1
  23. package/dist/harmony109.mjs +3 -12
  24. package/dist/harmony109.mjs.map +1 -1
  25. package/dist/harmony11.cjs +55 -30
  26. package/dist/harmony11.cjs.map +1 -1
  27. package/dist/harmony11.mjs +55 -30
  28. package/dist/harmony11.mjs.map +1 -1
  29. package/dist/harmony110.cjs +18 -12
  30. package/dist/harmony110.cjs.map +1 -1
  31. package/dist/harmony110.mjs +17 -11
  32. package/dist/harmony110.mjs.map +1 -1
  33. package/dist/harmony111.cjs +76 -3
  34. package/dist/harmony111.cjs.map +1 -1
  35. package/dist/harmony111.mjs +76 -3
  36. package/dist/harmony111.mjs.map +1 -1
  37. package/dist/harmony112.cjs +11 -17
  38. package/dist/harmony112.cjs.map +1 -1
  39. package/dist/harmony112.mjs +11 -17
  40. package/dist/harmony112.mjs.map +1 -1
  41. package/dist/harmony113.cjs +34 -76
  42. package/dist/harmony113.cjs.map +1 -1
  43. package/dist/harmony113.mjs +34 -76
  44. package/dist/harmony113.mjs.map +1 -1
  45. package/dist/harmony114.cjs +9 -12
  46. package/dist/harmony114.cjs.map +1 -1
  47. package/dist/harmony114.mjs +9 -12
  48. package/dist/harmony114.mjs.map +1 -1
  49. package/dist/harmony115.cjs +47 -34
  50. package/dist/harmony115.cjs.map +1 -1
  51. package/dist/harmony115.mjs +47 -34
  52. package/dist/harmony115.mjs.map +1 -1
  53. package/dist/harmony116.cjs +10 -10
  54. package/dist/harmony116.cjs.map +1 -1
  55. package/dist/harmony116.mjs +9 -9
  56. package/dist/harmony116.mjs.map +1 -1
  57. package/dist/harmony117.cjs +9 -45
  58. package/dist/harmony117.cjs.map +1 -1
  59. package/dist/harmony117.mjs +11 -47
  60. package/dist/harmony117.mjs.map +1 -1
  61. package/dist/harmony118.cjs +20 -8
  62. package/dist/harmony118.cjs.map +1 -1
  63. package/dist/harmony118.mjs +20 -8
  64. package/dist/harmony118.mjs.map +1 -1
  65. package/dist/harmony119.cjs +10 -9
  66. package/dist/harmony119.cjs.map +1 -1
  67. package/dist/harmony119.mjs +12 -11
  68. package/dist/harmony119.mjs.map +1 -1
  69. package/dist/harmony12.cjs +30 -22
  70. package/dist/harmony12.cjs.map +1 -1
  71. package/dist/harmony12.mjs +30 -22
  72. package/dist/harmony12.mjs.map +1 -1
  73. package/dist/harmony120.cjs +11 -20
  74. package/dist/harmony120.cjs.map +1 -1
  75. package/dist/harmony120.mjs +11 -20
  76. package/dist/harmony120.mjs.map +1 -1
  77. package/dist/harmony121.cjs +20 -7
  78. package/dist/harmony121.cjs.map +1 -1
  79. package/dist/harmony121.mjs +20 -7
  80. package/dist/harmony121.mjs.map +1 -1
  81. package/dist/harmony122.cjs +97 -15
  82. package/dist/harmony122.cjs.map +1 -1
  83. package/dist/harmony122.mjs +81 -16
  84. package/dist/harmony122.mjs.map +1 -1
  85. package/dist/harmony123.cjs +86 -7
  86. package/dist/harmony123.cjs.map +1 -1
  87. package/dist/harmony123.mjs +86 -7
  88. package/dist/harmony123.mjs.map +1 -1
  89. package/dist/harmony124.cjs +30 -8
  90. package/dist/harmony124.cjs.map +1 -1
  91. package/dist/harmony124.mjs +30 -8
  92. package/dist/harmony124.mjs.map +1 -1
  93. package/dist/harmony125.cjs +7 -15
  94. package/dist/harmony125.cjs.map +1 -1
  95. package/dist/harmony125.mjs +7 -15
  96. package/dist/harmony125.mjs.map +1 -1
  97. package/dist/harmony126.cjs +17 -20
  98. package/dist/harmony126.cjs.map +1 -1
  99. package/dist/harmony126.mjs +17 -20
  100. package/dist/harmony126.mjs.map +1 -1
  101. package/dist/harmony127.cjs +7 -98
  102. package/dist/harmony127.cjs.map +1 -1
  103. package/dist/harmony127.mjs +7 -81
  104. package/dist/harmony127.mjs.map +1 -1
  105. package/dist/harmony128.cjs +7 -86
  106. package/dist/harmony128.cjs.map +1 -1
  107. package/dist/harmony128.mjs +7 -86
  108. package/dist/harmony128.mjs.map +1 -1
  109. package/dist/harmony129.cjs +15 -30
  110. package/dist/harmony129.cjs.map +1 -1
  111. package/dist/harmony129.mjs +15 -30
  112. package/dist/harmony129.mjs.map +1 -1
  113. package/dist/harmony13.cjs +11 -52
  114. package/dist/harmony13.cjs.map +1 -1
  115. package/dist/harmony13.mjs +11 -52
  116. package/dist/harmony13.mjs.map +1 -1
  117. package/dist/harmony131.cjs +2 -2
  118. package/dist/harmony131.mjs +2 -2
  119. package/dist/harmony132.cjs +2 -2
  120. package/dist/harmony132.mjs +2 -2
  121. package/dist/harmony133.cjs +3 -3
  122. package/dist/harmony133.mjs +3 -3
  123. package/dist/harmony134.cjs +1 -1
  124. package/dist/harmony134.mjs +1 -1
  125. package/dist/harmony135.cjs +3 -3
  126. package/dist/harmony135.mjs +3 -3
  127. package/dist/harmony136.cjs +2 -2
  128. package/dist/harmony136.mjs +2 -2
  129. package/dist/harmony137.cjs +3 -3
  130. package/dist/harmony137.mjs +3 -3
  131. package/dist/harmony138.cjs +2 -2
  132. package/dist/harmony138.mjs +2 -2
  133. package/dist/harmony139.cjs +2 -2
  134. package/dist/harmony139.mjs +2 -2
  135. package/dist/harmony14.cjs +55 -9
  136. package/dist/harmony14.cjs.map +1 -1
  137. package/dist/harmony14.mjs +55 -9
  138. package/dist/harmony14.mjs.map +1 -1
  139. package/dist/harmony140.cjs +4 -4
  140. package/dist/harmony140.mjs +4 -4
  141. package/dist/harmony142.cjs +1 -1
  142. package/dist/harmony142.mjs +1 -1
  143. package/dist/harmony145.cjs +6 -4
  144. package/dist/harmony145.cjs.map +1 -1
  145. package/dist/harmony145.mjs +5 -3
  146. package/dist/harmony145.mjs.map +1 -1
  147. package/dist/harmony146.cjs +6 -4
  148. package/dist/harmony146.cjs.map +1 -1
  149. package/dist/harmony146.mjs +5 -3
  150. package/dist/harmony146.mjs.map +1 -1
  151. package/dist/harmony147.cjs +10 -3
  152. package/dist/harmony147.cjs.map +1 -1
  153. package/dist/harmony147.mjs +10 -3
  154. package/dist/harmony147.mjs.map +1 -1
  155. package/dist/harmony148.cjs +3 -14
  156. package/dist/harmony148.cjs.map +1 -1
  157. package/dist/harmony148.mjs +3 -14
  158. package/dist/harmony148.mjs.map +1 -1
  159. package/dist/harmony149.cjs +3 -14
  160. package/dist/harmony149.cjs.map +1 -1
  161. package/dist/harmony149.mjs +3 -14
  162. package/dist/harmony149.mjs.map +1 -1
  163. package/dist/harmony15.cjs +30 -5
  164. package/dist/harmony15.cjs.map +1 -1
  165. package/dist/harmony15.mjs +30 -5
  166. package/dist/harmony15.mjs.map +1 -1
  167. package/dist/harmony150.cjs +3 -3
  168. package/dist/harmony150.cjs.map +1 -1
  169. package/dist/harmony150.mjs +3 -3
  170. package/dist/harmony150.mjs.map +1 -1
  171. package/dist/harmony151.cjs +15 -6
  172. package/dist/harmony151.cjs.map +1 -1
  173. package/dist/harmony151.mjs +14 -5
  174. package/dist/harmony151.mjs.map +1 -1
  175. package/dist/harmony152.cjs +15 -6
  176. package/dist/harmony152.cjs.map +1 -1
  177. package/dist/harmony152.mjs +14 -5
  178. package/dist/harmony152.mjs.map +1 -1
  179. package/dist/harmony153.cjs +3 -10
  180. package/dist/harmony153.cjs.map +1 -1
  181. package/dist/harmony153.mjs +3 -10
  182. package/dist/harmony153.mjs.map +1 -1
  183. package/dist/harmony154.cjs +10 -97
  184. package/dist/harmony154.cjs.map +1 -1
  185. package/dist/harmony154.mjs +9 -96
  186. package/dist/harmony154.mjs.map +1 -1
  187. package/dist/harmony155.cjs +7 -14
  188. package/dist/harmony155.cjs.map +1 -1
  189. package/dist/harmony155.mjs +6 -13
  190. package/dist/harmony155.mjs.map +1 -1
  191. package/dist/harmony156.cjs +10 -15
  192. package/dist/harmony156.cjs.map +1 -1
  193. package/dist/harmony156.mjs +9 -14
  194. package/dist/harmony156.mjs.map +1 -1
  195. package/dist/harmony157.cjs +25 -37
  196. package/dist/harmony157.cjs.map +1 -1
  197. package/dist/harmony157.mjs +24 -36
  198. package/dist/harmony157.mjs.map +1 -1
  199. package/dist/harmony158.cjs +7 -29
  200. package/dist/harmony158.cjs.map +1 -1
  201. package/dist/harmony158.mjs +6 -28
  202. package/dist/harmony158.mjs.map +1 -1
  203. package/dist/harmony159.cjs +12 -32
  204. package/dist/harmony159.cjs.map +1 -1
  205. package/dist/harmony159.mjs +11 -31
  206. package/dist/harmony159.mjs.map +1 -1
  207. package/dist/harmony16.cjs +18 -15
  208. package/dist/harmony16.cjs.map +1 -1
  209. package/dist/harmony16.mjs +18 -15
  210. package/dist/harmony16.mjs.map +1 -1
  211. package/dist/harmony160.cjs +3 -6
  212. package/dist/harmony160.cjs.map +1 -1
  213. package/dist/harmony160.mjs +3 -6
  214. package/dist/harmony160.mjs.map +1 -1
  215. package/dist/harmony161.cjs +97 -7
  216. package/dist/harmony161.cjs.map +1 -1
  217. package/dist/harmony161.mjs +96 -6
  218. package/dist/harmony161.mjs.map +1 -1
  219. package/dist/harmony162.cjs +14 -10
  220. package/dist/harmony162.cjs.map +1 -1
  221. package/dist/harmony162.mjs +13 -9
  222. package/dist/harmony162.mjs.map +1 -1
  223. package/dist/harmony163.cjs +15 -25
  224. package/dist/harmony163.cjs.map +1 -1
  225. package/dist/harmony163.mjs +14 -24
  226. package/dist/harmony163.mjs.map +1 -1
  227. package/dist/harmony164.cjs +37 -7
  228. package/dist/harmony164.cjs.map +1 -1
  229. package/dist/harmony164.mjs +36 -6
  230. package/dist/harmony164.mjs.map +1 -1
  231. package/dist/harmony165.cjs +29 -13
  232. package/dist/harmony165.cjs.map +1 -1
  233. package/dist/harmony165.mjs +28 -12
  234. package/dist/harmony165.mjs.map +1 -1
  235. package/dist/harmony166.cjs +32 -6
  236. package/dist/harmony166.cjs.map +1 -1
  237. package/dist/harmony166.mjs +31 -5
  238. package/dist/harmony166.mjs.map +1 -1
  239. package/dist/harmony17.cjs +28 -32
  240. package/dist/harmony17.cjs.map +1 -1
  241. package/dist/harmony17.mjs +28 -32
  242. package/dist/harmony17.mjs.map +1 -1
  243. package/dist/harmony18.cjs +14 -5
  244. package/dist/harmony18.cjs.map +1 -1
  245. package/dist/harmony18.mjs +14 -5
  246. package/dist/harmony18.mjs.map +1 -1
  247. package/dist/harmony19.cjs +13 -10
  248. package/dist/harmony19.cjs.map +1 -1
  249. package/dist/harmony19.mjs +13 -10
  250. package/dist/harmony19.mjs.map +1 -1
  251. package/dist/harmony20.cjs +13 -10
  252. package/dist/harmony20.cjs.map +1 -1
  253. package/dist/harmony20.mjs +13 -10
  254. package/dist/harmony20.mjs.map +1 -1
  255. package/dist/harmony21.cjs +13 -17
  256. package/dist/harmony21.cjs.map +1 -1
  257. package/dist/harmony21.mjs +13 -17
  258. package/dist/harmony21.mjs.map +1 -1
  259. package/dist/harmony22.cjs +13 -15
  260. package/dist/harmony22.cjs.map +1 -1
  261. package/dist/harmony22.mjs +13 -15
  262. package/dist/harmony22.mjs.map +1 -1
  263. package/dist/harmony23.cjs +12 -141
  264. package/dist/harmony23.cjs.map +1 -1
  265. package/dist/harmony23.mjs +12 -141
  266. package/dist/harmony23.mjs.map +1 -1
  267. package/dist/harmony24.cjs +22 -20
  268. package/dist/harmony24.cjs.map +1 -1
  269. package/dist/harmony24.mjs +22 -20
  270. package/dist/harmony24.mjs.map +1 -1
  271. package/dist/harmony25.cjs +13 -14
  272. package/dist/harmony25.cjs.map +1 -1
  273. package/dist/harmony25.mjs +13 -14
  274. package/dist/harmony25.mjs.map +1 -1
  275. package/dist/harmony26.cjs +12 -16
  276. package/dist/harmony26.cjs.map +1 -1
  277. package/dist/harmony26.mjs +13 -17
  278. package/dist/harmony26.mjs.map +1 -1
  279. package/dist/harmony27.cjs +15 -16
  280. package/dist/harmony27.cjs.map +1 -1
  281. package/dist/harmony27.mjs +16 -17
  282. package/dist/harmony27.mjs.map +1 -1
  283. package/dist/harmony28.cjs +15 -18
  284. package/dist/harmony28.cjs.map +1 -1
  285. package/dist/harmony28.mjs +15 -18
  286. package/dist/harmony28.mjs.map +1 -1
  287. package/dist/harmony29.cjs +15 -20
  288. package/dist/harmony29.cjs.map +1 -1
  289. package/dist/harmony29.mjs +15 -20
  290. package/dist/harmony29.mjs.map +1 -1
  291. package/dist/harmony30.cjs +15 -10
  292. package/dist/harmony30.cjs.map +1 -1
  293. package/dist/harmony30.mjs +15 -10
  294. package/dist/harmony30.mjs.map +1 -1
  295. package/dist/harmony31.cjs +15 -11
  296. package/dist/harmony31.cjs.map +1 -1
  297. package/dist/harmony31.mjs +15 -11
  298. package/dist/harmony31.mjs.map +1 -1
  299. package/dist/harmony32.cjs +16 -8
  300. package/dist/harmony32.cjs.map +1 -1
  301. package/dist/harmony32.mjs +16 -8
  302. package/dist/harmony32.mjs.map +1 -1
  303. package/dist/harmony33.cjs +16 -8
  304. package/dist/harmony33.cjs.map +1 -1
  305. package/dist/harmony33.mjs +16 -8
  306. package/dist/harmony33.mjs.map +1 -1
  307. package/dist/harmony34.cjs +16 -14
  308. package/dist/harmony34.cjs.map +1 -1
  309. package/dist/harmony34.mjs +16 -14
  310. package/dist/harmony34.mjs.map +1 -1
  311. package/dist/harmony35.cjs +16 -13
  312. package/dist/harmony35.cjs.map +1 -1
  313. package/dist/harmony35.mjs +16 -13
  314. package/dist/harmony35.mjs.map +1 -1
  315. package/dist/harmony36.cjs +16 -13
  316. package/dist/harmony36.cjs.map +1 -1
  317. package/dist/harmony36.mjs +16 -13
  318. package/dist/harmony36.mjs.map +1 -1
  319. package/dist/harmony37.cjs +14 -13
  320. package/dist/harmony37.cjs.map +1 -1
  321. package/dist/harmony37.mjs +14 -13
  322. package/dist/harmony37.mjs.map +1 -1
  323. package/dist/harmony38.cjs +16 -13
  324. package/dist/harmony38.cjs.map +1 -1
  325. package/dist/harmony38.mjs +16 -13
  326. package/dist/harmony38.mjs.map +1 -1
  327. package/dist/harmony39.cjs +16 -7
  328. package/dist/harmony39.cjs.map +1 -1
  329. package/dist/harmony39.mjs +16 -7
  330. package/dist/harmony39.mjs.map +1 -1
  331. package/dist/harmony40.cjs +17 -10
  332. package/dist/harmony40.cjs.map +1 -1
  333. package/dist/harmony40.mjs +17 -10
  334. package/dist/harmony40.mjs.map +1 -1
  335. package/dist/harmony41.cjs +14 -11
  336. package/dist/harmony41.cjs.map +1 -1
  337. package/dist/harmony41.mjs +14 -11
  338. package/dist/harmony41.mjs.map +1 -1
  339. package/dist/harmony42.cjs +14 -9
  340. package/dist/harmony42.cjs.map +1 -1
  341. package/dist/harmony42.mjs +14 -9
  342. package/dist/harmony42.mjs.map +1 -1
  343. package/dist/harmony43.cjs +124 -9
  344. package/dist/harmony43.cjs.map +1 -1
  345. package/dist/harmony43.mjs +124 -9
  346. package/dist/harmony43.mjs.map +1 -1
  347. package/dist/harmony44.cjs +82 -9
  348. package/dist/harmony44.cjs.map +1 -1
  349. package/dist/harmony44.mjs +82 -9
  350. package/dist/harmony44.mjs.map +1 -1
  351. package/dist/harmony45.cjs +6 -88
  352. package/dist/harmony45.cjs.map +1 -1
  353. package/dist/harmony45.mjs +6 -88
  354. package/dist/harmony45.mjs.map +1 -1
  355. package/dist/harmony46.cjs +25 -52
  356. package/dist/harmony46.cjs.map +1 -1
  357. package/dist/harmony46.mjs +25 -52
  358. package/dist/harmony46.mjs.map +1 -1
  359. package/dist/harmony47.cjs +23 -30
  360. package/dist/harmony47.cjs.map +1 -1
  361. package/dist/harmony47.mjs +23 -30
  362. package/dist/harmony47.mjs.map +1 -1
  363. package/dist/harmony48.cjs +141 -11
  364. package/dist/harmony48.cjs.map +1 -1
  365. package/dist/harmony48.mjs +140 -10
  366. package/dist/harmony48.mjs.map +1 -1
  367. package/dist/harmony49.cjs +32 -50
  368. package/dist/harmony49.cjs.map +1 -1
  369. package/dist/harmony49.mjs +32 -50
  370. package/dist/harmony49.mjs.map +1 -1
  371. package/dist/harmony5.cjs +5 -5
  372. package/dist/harmony5.mjs +5 -5
  373. package/dist/harmony50.cjs +26 -30
  374. package/dist/harmony50.cjs.map +1 -1
  375. package/dist/harmony50.mjs +26 -30
  376. package/dist/harmony50.mjs.map +1 -1
  377. package/dist/harmony51.cjs +4 -18
  378. package/dist/harmony51.cjs.map +1 -1
  379. package/dist/harmony51.mjs +4 -18
  380. package/dist/harmony51.mjs.map +1 -1
  381. package/dist/harmony52.cjs +81 -25
  382. package/dist/harmony52.cjs.map +1 -1
  383. package/dist/harmony52.mjs +81 -25
  384. package/dist/harmony52.mjs.map +1 -1
  385. package/dist/harmony53.cjs +57 -13
  386. package/dist/harmony53.cjs.map +1 -1
  387. package/dist/harmony53.mjs +56 -12
  388. package/dist/harmony53.mjs.map +1 -1
  389. package/dist/harmony54.cjs +18 -14
  390. package/dist/harmony54.cjs.map +1 -1
  391. package/dist/harmony54.mjs +18 -14
  392. package/dist/harmony54.mjs.map +1 -1
  393. package/dist/harmony55.cjs +30 -14
  394. package/dist/harmony55.cjs.map +1 -1
  395. package/dist/harmony55.mjs +30 -14
  396. package/dist/harmony55.mjs.map +1 -1
  397. package/dist/harmony56.cjs +22 -13
  398. package/dist/harmony56.cjs.map +1 -1
  399. package/dist/harmony56.mjs +22 -13
  400. package/dist/harmony56.mjs.map +1 -1
  401. package/dist/harmony57.cjs +52 -14
  402. package/dist/harmony57.cjs.map +1 -1
  403. package/dist/harmony57.mjs +52 -14
  404. package/dist/harmony57.mjs.map +1 -1
  405. package/dist/harmony58.cjs +9 -13
  406. package/dist/harmony58.cjs.map +1 -1
  407. package/dist/harmony58.mjs +9 -13
  408. package/dist/harmony58.mjs.map +1 -1
  409. package/dist/harmony59.cjs +5 -22
  410. package/dist/harmony59.cjs.map +1 -1
  411. package/dist/harmony59.mjs +5 -22
  412. package/dist/harmony59.mjs.map +1 -1
  413. package/dist/harmony6.cjs +1 -1
  414. package/dist/harmony6.mjs +2 -2
  415. package/dist/harmony60.cjs +14 -12
  416. package/dist/harmony60.cjs.map +1 -1
  417. package/dist/harmony60.mjs +14 -12
  418. package/dist/harmony60.mjs.map +1 -1
  419. package/dist/harmony61.cjs +31 -12
  420. package/dist/harmony61.cjs.map +1 -1
  421. package/dist/harmony61.mjs +31 -12
  422. package/dist/harmony61.mjs.map +1 -1
  423. package/dist/harmony62.cjs +5 -17
  424. package/dist/harmony62.cjs.map +1 -1
  425. package/dist/harmony62.mjs +5 -17
  426. package/dist/harmony62.mjs.map +1 -1
  427. package/dist/harmony63.cjs +10 -16
  428. package/dist/harmony63.cjs.map +1 -1
  429. package/dist/harmony63.mjs +10 -16
  430. package/dist/harmony63.mjs.map +1 -1
  431. package/dist/harmony64.cjs +11 -15
  432. package/dist/harmony64.cjs.map +1 -1
  433. package/dist/harmony64.mjs +11 -15
  434. package/dist/harmony64.mjs.map +1 -1
  435. package/dist/harmony65.cjs +18 -15
  436. package/dist/harmony65.cjs.map +1 -1
  437. package/dist/harmony65.mjs +18 -15
  438. package/dist/harmony65.mjs.map +1 -1
  439. package/dist/harmony66.cjs +16 -15
  440. package/dist/harmony66.cjs.map +1 -1
  441. package/dist/harmony66.mjs +16 -15
  442. package/dist/harmony66.mjs.map +1 -1
  443. package/dist/harmony67.cjs +142 -17
  444. package/dist/harmony67.cjs.map +1 -1
  445. package/dist/harmony67.mjs +142 -17
  446. package/dist/harmony67.mjs.map +1 -1
  447. package/dist/harmony68.cjs +19 -16
  448. package/dist/harmony68.cjs.map +1 -1
  449. package/dist/harmony68.mjs +19 -16
  450. package/dist/harmony68.mjs.map +1 -1
  451. package/dist/harmony69.cjs +13 -16
  452. package/dist/harmony69.cjs.map +1 -1
  453. package/dist/harmony69.mjs +13 -16
  454. package/dist/harmony69.mjs.map +1 -1
  455. package/dist/harmony70.cjs +15 -15
  456. package/dist/harmony70.cjs.map +1 -1
  457. package/dist/harmony70.mjs +16 -16
  458. package/dist/harmony70.mjs.map +1 -1
  459. package/dist/harmony71.cjs +16 -15
  460. package/dist/harmony71.cjs.map +1 -1
  461. package/dist/harmony71.mjs +17 -16
  462. package/dist/harmony71.mjs.map +1 -1
  463. package/dist/harmony72.cjs +20 -15
  464. package/dist/harmony72.cjs.map +1 -1
  465. package/dist/harmony72.mjs +20 -15
  466. package/dist/harmony72.mjs.map +1 -1
  467. package/dist/harmony73.cjs +19 -16
  468. package/dist/harmony73.cjs.map +1 -1
  469. package/dist/harmony73.mjs +19 -16
  470. package/dist/harmony73.mjs.map +1 -1
  471. package/dist/harmony74.cjs +8 -15
  472. package/dist/harmony74.cjs.map +1 -1
  473. package/dist/harmony74.mjs +8 -15
  474. package/dist/harmony74.mjs.map +1 -1
  475. package/dist/harmony75.cjs +9 -16
  476. package/dist/harmony75.cjs.map +1 -1
  477. package/dist/harmony75.mjs +9 -16
  478. package/dist/harmony75.mjs.map +1 -1
  479. package/dist/harmony76.cjs +9 -14
  480. package/dist/harmony76.cjs.map +1 -1
  481. package/dist/harmony76.mjs +9 -14
  482. package/dist/harmony76.mjs.map +1 -1
  483. package/dist/harmony77.cjs +9 -14
  484. package/dist/harmony77.cjs.map +1 -1
  485. package/dist/harmony77.mjs +9 -14
  486. package/dist/harmony77.mjs.map +1 -1
  487. package/dist/harmony78.cjs +15 -124
  488. package/dist/harmony78.cjs.map +1 -1
  489. package/dist/harmony78.mjs +15 -124
  490. package/dist/harmony78.mjs.map +1 -1
  491. package/dist/harmony79.cjs +14 -82
  492. package/dist/harmony79.cjs.map +1 -1
  493. package/dist/harmony79.mjs +14 -82
  494. package/dist/harmony79.mjs.map +1 -1
  495. package/dist/harmony80.cjs +14 -6
  496. package/dist/harmony80.cjs.map +1 -1
  497. package/dist/harmony80.mjs +14 -6
  498. package/dist/harmony80.mjs.map +1 -1
  499. package/dist/harmony81.cjs +14 -28
  500. package/dist/harmony81.cjs.map +1 -1
  501. package/dist/harmony81.mjs +14 -28
  502. package/dist/harmony81.mjs.map +1 -1
  503. package/dist/harmony82.cjs +14 -24
  504. package/dist/harmony82.cjs.map +1 -1
  505. package/dist/harmony82.mjs +14 -24
  506. package/dist/harmony82.mjs.map +1 -1
  507. package/dist/harmony83.cjs +8 -141
  508. package/dist/harmony83.cjs.map +1 -1
  509. package/dist/harmony83.mjs +8 -141
  510. package/dist/harmony83.mjs.map +1 -1
  511. package/dist/harmony84.cjs +11 -37
  512. package/dist/harmony84.cjs.map +1 -1
  513. package/dist/harmony84.mjs +11 -37
  514. package/dist/harmony84.mjs.map +1 -1
  515. package/dist/harmony85.cjs +11 -26
  516. package/dist/harmony85.cjs.map +1 -1
  517. package/dist/harmony85.mjs +11 -26
  518. package/dist/harmony85.mjs.map +1 -1
  519. package/dist/harmony86.cjs +9 -4
  520. package/dist/harmony86.cjs.map +1 -1
  521. package/dist/harmony86.mjs +9 -4
  522. package/dist/harmony86.mjs.map +1 -1
  523. package/dist/harmony87.cjs +9 -84
  524. package/dist/harmony87.cjs.map +1 -1
  525. package/dist/harmony87.mjs +9 -84
  526. package/dist/harmony87.mjs.map +1 -1
  527. package/dist/harmony88.cjs +9 -58
  528. package/dist/harmony88.cjs.map +1 -1
  529. package/dist/harmony88.mjs +9 -58
  530. package/dist/harmony88.mjs.map +1 -1
  531. package/dist/harmony89.cjs +88 -18
  532. package/dist/harmony89.cjs.map +1 -1
  533. package/dist/harmony89.mjs +88 -18
  534. package/dist/harmony89.mjs.map +1 -1
  535. package/dist/harmony94.cjs +1 -1
  536. package/dist/harmony94.mjs +1 -1
  537. package/dist/harmony96.cjs +2 -2
  538. package/dist/harmony96.mjs +2 -2
  539. package/dist/harmony98.cjs +2 -2
  540. package/dist/harmony98.mjs +2 -2
  541. package/dist/harmony99.cjs +4 -4
  542. package/dist/harmony99.mjs +4 -4
  543. package/package.json +1 -1
@@ -1,79 +1,37 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const BillingMenuItem = require("./harmony131.cjs");
5
- const CreateNewTeam = require("./harmony132.cjs");
6
- const CreateNewTeamPlaceholder = require("./harmony133.cjs");
7
- const DarkModeToggle = require("./harmony134.cjs");
8
- const ProfileSettingsMenuItem = require("./harmony135.cjs");
9
- const ProviderMenuItem = require("./harmony136.cjs");
10
- const TeamMenuItem = require("./harmony137.cjs");
11
- const TeamSettingsMenuItem = require("./harmony138.cjs");
12
- const TeamSwitch = require("./harmony139.cjs");
13
- const UpgradeMenuItem = require("./harmony140.cjs");
14
- const useSidebar = require("./harmony114.cjs");
15
- const louis = require("@lokalise/louis");
16
- const permissions = require("./harmony115.cjs");
17
- const clsx = require("./harmony92.cjs");
18
- const ProfileMenu_module = require("./harmony141.cjs");
19
- const UpgradeIcon = require("./harmony142.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
- );
77
- };
78
- exports.ProfileMenu = ProfileMenu;
3
+ const plan = require("./harmony55.cjs");
4
+ const withJwtCheck = (checkFn) => (jwtPayload) => !!jwtPayload && checkFn(jwtPayload);
5
+ const canAccessStyleGuide = withJwtCheck(
6
+ (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole)
7
+ );
8
+ const canAccessReporting = withJwtCheck(
9
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole)
10
+ );
11
+ const canAccessTeamSettings = withJwtCheck(
12
+ (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
13
+ );
14
+ const canCreateTeam = withJwtCheck(
15
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
16
+ );
17
+ const canUpgradePlan = withJwtCheck(
18
+ (jwt) => ["owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && (plan.isFreePlan(jwt.planId) || plan.isTrialPlan(jwt.planId))
19
+ );
20
+ const canChangeBilling = withJwtCheck(
21
+ (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isTeamSuspended && !jwt.isEndOfTrialActive
22
+ );
23
+ const canAccessProviderDashboard = withJwtCheck(
24
+ (jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated
25
+ );
26
+ const canAccessProfileSettings = withJwtCheck(
27
+ (jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended
28
+ );
29
+ exports.canAccessProfileSettings = canAccessProfileSettings;
30
+ exports.canAccessProviderDashboard = canAccessProviderDashboard;
31
+ exports.canAccessReporting = canAccessReporting;
32
+ exports.canAccessStyleGuide = canAccessStyleGuide;
33
+ exports.canAccessTeamSettings = canAccessTeamSettings;
34
+ exports.canChangeBilling = canChangeBilling;
35
+ exports.canCreateTeam = canCreateTeam;
36
+ exports.canUpgradePlan = canUpgradePlan;
79
37
  //# sourceMappingURL=harmony113.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony113.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":"harmony113.cjs","sources":["../src/utils/user/permissions.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { isFreePlan, isTrialPlan } from '@utils'\n\ntype JwtCheckFn = (jwt: JwtTokenPayload) => boolean\n\nconst withJwtCheck =\n\t(checkFn: JwtCheckFn) =>\n\t(jwtPayload: JwtTokenPayload | null | undefined): boolean =>\n\t\t!!jwtPayload && checkFn(jwtPayload)\n\nexport const canAccessStyleGuide = withJwtCheck((jwt) =>\n\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessReporting = withJwtCheck((jwt) =>\n\t['admin', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessTeamSettings = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canCreateTeam = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canUpgradePlan = withJwtCheck(\n\t(jwt) =>\n\t\t['owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t(isFreePlan(jwt.planId) || isTrialPlan(jwt.planId)),\n)\n\nexport const canChangeBilling = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isTeamSuspended &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canAccessProviderDashboard = withJwtCheck(\n\t(jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated,\n)\n\nexport const canAccessProfileSettings = withJwtCheck(\n\t(jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended,\n)\n"],"names":["isFreePlan","isTrialPlan"],"mappings":";;;AAKA,MAAM,eACL,CAAC,YACD,CAAC,eACA,CAAC,CAAC,cAAc,QAAQ,UAAU;AAE7B,MAAM,sBAAsB;AAAA,EAAa,CAAC,QAChD,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY;AACvD;AAEO,MAAM,qBAAqB;AAAA,EAAa,CAAC,QAC/C,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY;AAC7C;AAEO,MAAM,wBAAwB;AAAA,EACpC,CAAC,QACA,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,gBAAgB;AAAA,EAC5B,CAAC,QACA,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY,KAC5C,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,iBAAiB;AAAA,EAC7B,CAAC,QACA,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KAC7C,IAAI,yBACHA,KAAW,WAAA,IAAI,MAAM,KAAKC,KAAA,YAAY,IAAI,MAAM;AACnD;AAEO,MAAM,mBAAmB;AAAA,EAC/B,CAAC,QACA,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI,mBACL,CAAC,IAAI;AACP;AAEO,MAAM,6BAA6B;AAAA,EACzC,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,IAAI;AAC7D;AAEO,MAAM,2BAA2B;AAAA,EACvC,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,IAAI;AAC1C;;;;;;;;;"}
@@ -1,79 +1,37 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { BillingMenuItem } from "./harmony131.mjs";
3
- import { CreateNewTeam } from "./harmony132.mjs";
4
- import { CreateNewTeamPlaceholder } from "./harmony133.mjs";
5
- import { DarkModeToggle } from "./harmony134.mjs";
6
- import { ProfileSettingsMenuItem } from "./harmony135.mjs";
7
- import { ProviderMenuItem } from "./harmony136.mjs";
8
- import { TeamMenuItem } from "./harmony137.mjs";
9
- import { TeamSettingsMenuItem } from "./harmony138.mjs";
10
- import { TeamSwitch } from "./harmony139.mjs";
11
- import { UpgradeMenuItem } from "./harmony140.mjs";
12
- import { useSidebar } from "./harmony114.mjs";
13
- import { Menu, MenuList, MenuDivider, MenuItem, UserIcon } from "@lokalise/louis";
14
- import { canAccessProfileSettings, canUpgradePlan } from "./harmony115.mjs";
15
- import { clsx } from "./harmony92.mjs";
16
- import styles from "./harmony141.mjs";
17
- import { UpgradeIcon } from "./harmony142.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
- );
75
- };
1
+ import { isFreePlan, isTrialPlan } from "./harmony55.mjs";
2
+ const withJwtCheck = (checkFn) => (jwtPayload) => !!jwtPayload && checkFn(jwtPayload);
3
+ const canAccessStyleGuide = withJwtCheck(
4
+ (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole)
5
+ );
6
+ const canAccessReporting = withJwtCheck(
7
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole)
8
+ );
9
+ const canAccessTeamSettings = withJwtCheck(
10
+ (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
11
+ );
12
+ const canCreateTeam = withJwtCheck(
13
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
14
+ );
15
+ const canUpgradePlan = withJwtCheck(
16
+ (jwt) => ["owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && (isFreePlan(jwt.planId) || isTrialPlan(jwt.planId))
17
+ );
18
+ const canChangeBilling = withJwtCheck(
19
+ (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isTeamSuspended && !jwt.isEndOfTrialActive
20
+ );
21
+ const canAccessProviderDashboard = withJwtCheck(
22
+ (jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated
23
+ );
24
+ const canAccessProfileSettings = withJwtCheck(
25
+ (jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended
26
+ );
76
27
  export {
77
- ProfileMenu
28
+ canAccessProfileSettings,
29
+ canAccessProviderDashboard,
30
+ canAccessReporting,
31
+ canAccessStyleGuide,
32
+ canAccessTeamSettings,
33
+ canChangeBilling,
34
+ canCreateTeam,
35
+ canUpgradePlan
78
36
  };
79
37
  //# sourceMappingURL=harmony113.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony113.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":"harmony113.mjs","sources":["../src/utils/user/permissions.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { isFreePlan, isTrialPlan } from '@utils'\n\ntype JwtCheckFn = (jwt: JwtTokenPayload) => boolean\n\nconst withJwtCheck =\n\t(checkFn: JwtCheckFn) =>\n\t(jwtPayload: JwtTokenPayload | null | undefined): boolean =>\n\t\t!!jwtPayload && checkFn(jwtPayload)\n\nexport const canAccessStyleGuide = withJwtCheck((jwt) =>\n\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessReporting = withJwtCheck((jwt) =>\n\t['admin', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessTeamSettings = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canCreateTeam = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canUpgradePlan = withJwtCheck(\n\t(jwt) =>\n\t\t['owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t(isFreePlan(jwt.planId) || isTrialPlan(jwt.planId)),\n)\n\nexport const canChangeBilling = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isTeamSuspended &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canAccessProviderDashboard = withJwtCheck(\n\t(jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated,\n)\n\nexport const canAccessProfileSettings = withJwtCheck(\n\t(jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended,\n)\n"],"names":[],"mappings":";AAKA,MAAM,eACL,CAAC,YACD,CAAC,eACA,CAAC,CAAC,cAAc,QAAQ,UAAU;AAE7B,MAAM,sBAAsB;AAAA,EAAa,CAAC,QAChD,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY;AACvD;AAEO,MAAM,qBAAqB;AAAA,EAAa,CAAC,QAC/C,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY;AAC7C;AAEO,MAAM,wBAAwB;AAAA,EACpC,CAAC,QACA,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,gBAAgB;AAAA,EAC5B,CAAC,QACA,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY,KAC5C,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,iBAAiB;AAAA,EAC7B,CAAC,QACA,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KAC7C,IAAI,yBACH,WAAW,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM;AACnD;AAEO,MAAM,mBAAmB;AAAA,EAC/B,CAAC,QACA,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI,mBACL,CAAC,IAAI;AACP;AAEO,MAAM,6BAA6B;AAAA,EACzC,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,IAAI;AAC7D;AAEO,MAAM,2BAA2B;AAAA,EACvC,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,IAAI;AAC1C;"}
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const SidebarContext = require("./harmony111.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;
13
- };
14
- exports.useSidebar = useSidebar;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const Avatar_module = require("./harmony143.cjs");
5
+ const Avatar = ({
6
+ src,
7
+ href = "/",
8
+ ariaLabel = "Lokalise App Home",
9
+ alt = "Lokalise Logo"
10
+ }) => /* @__PURE__ */ jsxRuntime.jsx("a", { className: Avatar_module.default.logoLink, href, "aria-label": ariaLabel, children: /* @__PURE__ */ jsxRuntime.jsx("img", { src, alt }) });
11
+ exports.Avatar = Avatar;
15
12
  //# sourceMappingURL=harmony114.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.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":"harmony114.cjs","sources":["../src/components/Sidebar/Widgets/Avatar/Avatar.tsx"],"sourcesContent":["import styles from './Avatar.module.css'\n\ntype AvatarProps = {\n\t/** URL of the avatar/logo image */\n\tsrc: string\n\t/** Link destination when avatar is clicked. Defaults to '/' */\n\thref?: string\n\t/** Accessibility label for the avatar link. Defaults to 'Home' */\n\tariaLabel?: string\n\t/** Alt text for the avatar image. Defaults to 'Lokalise' */\n\talt?: string\n}\n\n/**\n * Display company main avatar / logo in the top section of the Sidebar.\n * Used as the main branding element and home navigation link.\n *\n * @example\n * ```\n * <Avatar src=\"/logo.png\" href=\"/\" ariaLabel=\"Home\" alt=\"\" />\n * ```\n */\n\nexport const Avatar = ({\n\tsrc,\n\thref = '/',\n\tariaLabel = 'Lokalise App Home',\n\talt = 'Lokalise Logo',\n}: AvatarProps) => (\n\t<a className={styles.logoLink} href={href} aria-label={ariaLabel}>\n\t\t<img src={src} alt={alt} />\n\t</a>\n)\n"],"names":["jsx","styles"],"mappings":";;;;AAuBO,MAAM,SAAS,CAAC;AAAA,EACtB;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,MAAM;AACP,MACEA,2BAAAA,IAAA,KAAA,EAAE,WAAWC,cAAA,QAAO,UAAU,MAAY,cAAY,WACtD,UAACD,2BAAAA,IAAA,OAAA,EAAI,KAAU,IAAA,CAAU,EAC1B,CAAA;;"}
@@ -1,15 +1,12 @@
1
- import { SidebarContext } from "./harmony111.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;
11
- };
1
+ import { jsx } from "react/jsx-runtime";
2
+ import styles from "./harmony143.mjs";
3
+ const Avatar = ({
4
+ src,
5
+ href = "/",
6
+ ariaLabel = "Lokalise App Home",
7
+ alt = "Lokalise Logo"
8
+ }) => /* @__PURE__ */ jsx("a", { className: styles.logoLink, href, "aria-label": ariaLabel, children: /* @__PURE__ */ jsx("img", { src, alt }) });
12
9
  export {
13
- useSidebar
10
+ Avatar
14
11
  };
15
12
  //# sourceMappingURL=harmony114.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony114.mjs","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":[],"mappings":";;AAGO,MAAM,aAAa,MAAM;AACzB,QAAA,UAAU,WAAW,cAAc;AAEzC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EAAA;AAGM,SAAA;AACR;"}
1
+ {"version":3,"file":"harmony114.mjs","sources":["../src/components/Sidebar/Widgets/Avatar/Avatar.tsx"],"sourcesContent":["import styles from './Avatar.module.css'\n\ntype AvatarProps = {\n\t/** URL of the avatar/logo image */\n\tsrc: string\n\t/** Link destination when avatar is clicked. Defaults to '/' */\n\thref?: string\n\t/** Accessibility label for the avatar link. Defaults to 'Home' */\n\tariaLabel?: string\n\t/** Alt text for the avatar image. Defaults to 'Lokalise' */\n\talt?: string\n}\n\n/**\n * Display company main avatar / logo in the top section of the Sidebar.\n * Used as the main branding element and home navigation link.\n *\n * @example\n * ```\n * <Avatar src=\"/logo.png\" href=\"/\" ariaLabel=\"Home\" alt=\"\" />\n * ```\n */\n\nexport const Avatar = ({\n\tsrc,\n\thref = '/',\n\tariaLabel = 'Lokalise App Home',\n\talt = 'Lokalise Logo',\n}: AvatarProps) => (\n\t<a className={styles.logoLink} href={href} aria-label={ariaLabel}>\n\t\t<img src={src} alt={alt} />\n\t</a>\n)\n"],"names":[],"mappings":";;AAuBO,MAAM,SAAS,CAAC;AAAA,EACtB;AAAA,EACA,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,MAAM;AACP,MACE,oBAAA,KAAA,EAAE,WAAW,OAAO,UAAU,MAAY,cAAY,WACtD,UAAC,oBAAA,OAAA,EAAI,KAAU,IAAA,CAAU,EAC1B,CAAA;"}
@@ -1,37 +1,50 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const plan = require("./harmony11.cjs");
4
- const withJwtCheck = (checkFn) => (jwtPayload) => !!jwtPayload && checkFn(jwtPayload);
5
- const canAccessStyleGuide = withJwtCheck(
6
- (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole)
7
- );
8
- const canAccessReporting = withJwtCheck(
9
- (jwt) => ["admin", "owner"].includes(jwt.userTeamRole)
10
- );
11
- const canAccessTeamSettings = withJwtCheck(
12
- (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
13
- );
14
- const canCreateTeam = withJwtCheck(
15
- (jwt) => ["admin", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
16
- );
17
- const canUpgradePlan = withJwtCheck(
18
- (jwt) => ["owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && (plan.isFreePlan(jwt.planId) || plan.isTrialPlan(jwt.planId))
19
- );
20
- const canChangeBilling = withJwtCheck(
21
- (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isTeamSuspended && !jwt.isEndOfTrialActive
22
- );
23
- const canAccessProviderDashboard = withJwtCheck(
24
- (jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated
25
- );
26
- const canAccessProfileSettings = withJwtCheck(
27
- (jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended
28
- );
29
- exports.canAccessProfileSettings = canAccessProfileSettings;
30
- exports.canAccessProviderDashboard = canAccessProviderDashboard;
31
- exports.canAccessReporting = canAccessReporting;
32
- exports.canAccessStyleGuide = canAccessStyleGuide;
33
- exports.canAccessTeamSettings = canAccessTeamSettings;
34
- exports.canChangeBilling = canChangeBilling;
35
- exports.canCreateTeam = canCreateTeam;
36
- exports.canUpgradePlan = canUpgradePlan;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
5
+ const clsx = require("./harmony92.cjs");
6
+ const HelpMenu_module = require("./harmony144.cjs");
7
+ const HelpMenu = ({ contactSupport, keyboardShortcuts }) => {
8
+ return /* @__PURE__ */ jsxRuntime.jsx(
9
+ louis.Menu,
10
+ {
11
+ menuButton: ({ opened }) => /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { placement: "right", tooltip: "Help", children: /* @__PURE__ */ jsxRuntime.jsx(
12
+ "button",
13
+ {
14
+ type: "button",
15
+ className: clsx.clsx(HelpMenu_module.default.dropdownButton, {
16
+ [HelpMenu_module.default.dropdownButtonActive]: opened
17
+ }),
18
+ "data-testid": "sidebar-help-menu-button",
19
+ children: /* @__PURE__ */ jsxRuntime.jsx(louis.HelpCenterIcon, { size: "25px" })
20
+ }
21
+ ) }),
22
+ children: /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuList, { placement: "right-start", children: [
23
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://lokalise.com/blog/category/tutorials/", target: "_blank", children: "Tutorials" }),
24
+ contactSupport && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { onClick: contactSupport.onClick, children: "Contact support" }),
25
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://docs.lokalise.com/en/", target: "_blank", children: "Documentation" }),
26
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
27
+ keyboardShortcuts && /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuItem, { className: HelpMenu_module.default.shortcutMenu, onClick: keyboardShortcuts.onClick, children: [
28
+ "Keyboard shortcuts",
29
+ " ",
30
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: HelpMenu_module.default.shortcutLabel, children: keyboardShortcuts.label })
31
+ ] }),
32
+ /* @__PURE__ */ jsxRuntime.jsx(
33
+ louis.MenuItem,
34
+ {
35
+ href: "https://developers.lokalise.com/reference/lokalise-rest-api",
36
+ target: "_blank",
37
+ children: "API reference"
38
+ }
39
+ ),
40
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://github.com/lokalise/lokalise-cli-2-go", target: "_blank", children: "CLI tool" }),
41
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
42
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://lokalise.com/blog/category/product-updates/", target: "_blank", children: "What’s new" }),
43
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://lokalise.com/blog/", target: "_blank", children: "Blog" }),
44
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "https://lokalise.com/product/apps", target: "_blank", children: "Apps" })
45
+ ] })
46
+ }
47
+ );
48
+ };
49
+ exports.HelpMenu = HelpMenu;
37
50
  //# sourceMappingURL=harmony115.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony115.cjs","sources":["../src/utils/user/permissions.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { isFreePlan, isTrialPlan } from '@utils'\n\ntype JwtCheckFn = (jwt: JwtTokenPayload) => boolean\n\nconst withJwtCheck =\n\t(checkFn: JwtCheckFn) =>\n\t(jwtPayload: JwtTokenPayload | null | undefined): boolean =>\n\t\t!!jwtPayload && checkFn(jwtPayload)\n\nexport const canAccessStyleGuide = withJwtCheck((jwt) =>\n\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessReporting = withJwtCheck((jwt) =>\n\t['admin', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessTeamSettings = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canCreateTeam = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canUpgradePlan = withJwtCheck(\n\t(jwt) =>\n\t\t['owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t(isFreePlan(jwt.planId) || isTrialPlan(jwt.planId)),\n)\n\nexport const canChangeBilling = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isTeamSuspended &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canAccessProviderDashboard = withJwtCheck(\n\t(jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated,\n)\n\nexport const canAccessProfileSettings = withJwtCheck(\n\t(jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended,\n)\n"],"names":["isFreePlan","isTrialPlan"],"mappings":";;;AAKA,MAAM,eACL,CAAC,YACD,CAAC,eACA,CAAC,CAAC,cAAc,QAAQ,UAAU;AAE7B,MAAM,sBAAsB;AAAA,EAAa,CAAC,QAChD,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY;AACvD;AAEO,MAAM,qBAAqB;AAAA,EAAa,CAAC,QAC/C,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY;AAC7C;AAEO,MAAM,wBAAwB;AAAA,EACpC,CAAC,QACA,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,gBAAgB;AAAA,EAC5B,CAAC,QACA,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY,KAC5C,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,iBAAiB;AAAA,EAC7B,CAAC,QACA,CAAC,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KAC7C,IAAI,yBACHA,KAAW,WAAA,IAAI,MAAM,KAAKC,KAAA,YAAY,IAAI,MAAM;AACnD;AAEO,MAAM,mBAAmB;AAAA,EAC/B,CAAC,QACA,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI,mBACL,CAAC,IAAI;AACP;AAEO,MAAM,6BAA6B;AAAA,EACzC,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,IAAI;AAC7D;AAEO,MAAM,2BAA2B;AAAA,EACvC,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,IAAI;AAC1C;;;;;;;;;"}
1
+ {"version":3,"file":"harmony115.cjs","sources":["../src/components/Sidebar/Widgets/HelpMenu/HelpMenu.tsx"],"sourcesContent":["import type { HelpMenuConfig } from '@components/Sidebar/types'\nimport { HelpCenterIcon, Menu, MenuDivider, MenuItem, MenuList, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport styles from './HelpMenu.module.css'\n\n/**\n * Help menu component that provides links to tutorials, documentation, support, and more.\n *\n * @example\n * ```\n * <HelpMenu\n * contactSupport={{ onClick: handleContactSupport }}\n * keyboardShortcuts={{ onClick: handleShowShortcuts, label: '⌘K' }}\n * />\n * ```\n */\n\nexport const HelpMenu = ({ contactSupport, keyboardShortcuts }: HelpMenuConfig) => {\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={({ opened }) => (\n\t\t\t\t<Tooltip placement=\"right\" tooltip=\"Help\">\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={clsx(styles.dropdownButton, {\n\t\t\t\t\t\t\t[styles.dropdownButtonActive]: opened,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tdata-testid=\"sidebar-help-menu-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<HelpCenterIcon size=\"25px\" />\n\t\t\t\t\t</button>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-start\">\n\t\t\t\t<MenuItem href=\"https://lokalise.com/blog/category/tutorials/\" target=\"_blank\">\n\t\t\t\t\tTutorials\n\t\t\t\t</MenuItem>\n\t\t\t\t{contactSupport && <MenuItem onClick={contactSupport.onClick}>Contact support</MenuItem>}\n\t\t\t\t<MenuItem href=\"https://docs.lokalise.com/en/\" target=\"_blank\">\n\t\t\t\t\tDocumentation\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuDivider />\n\t\t\t\t{keyboardShortcuts && (\n\t\t\t\t\t<MenuItem className={styles.shortcutMenu} onClick={keyboardShortcuts.onClick}>\n\t\t\t\t\t\tKeyboard shortcuts{' '}\n\t\t\t\t\t\t<span className={styles.shortcutLabel}>{keyboardShortcuts.label}</span>\n\t\t\t\t\t</MenuItem>\n\t\t\t\t)}\n\t\t\t\t<MenuItem\n\t\t\t\t\thref=\"https://developers.lokalise.com/reference/lokalise-rest-api\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\tAPI reference\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem href=\"https://github.com/lokalise/lokalise-cli-2-go\" target=\"_blank\">\n\t\t\t\t\tCLI tool\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuDivider />\n\t\t\t\t<MenuItem href=\"https://lokalise.com/blog/category/product-updates/\" target=\"_blank\">\n\t\t\t\t\tWhat’s new\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem href=\"https://lokalise.com/blog/\" target=\"_blank\">\n\t\t\t\t\tBlog\n\t\t\t\t</MenuItem>\n\t\t\t\t<MenuItem href=\"https://lokalise.com/product/apps\" target=\"_blank\">\n\t\t\t\t\tApps\n\t\t\t\t</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":["jsx","Menu","Tooltip","clsx","styles","HelpCenterIcon","jsxs","MenuList","MenuItem","MenuDivider"],"mappings":";;;;;;AAiBO,MAAM,WAAW,CAAC,EAAE,gBAAgB,wBAAwC;AAEjF,SAAAA,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,YAAY,CAAC,EAAE,OAAO,qCACpBC,MAAQ,SAAA,EAAA,WAAU,SAAQ,SAAQ,QAClC,UAAAF,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,WAAWG,KAAAA,KAAKC,gBAAA,QAAO,gBAAgB;AAAA,YACtC,CAACA,gBAAAA,QAAO,oBAAoB,GAAG;AAAA,UAAA,CAC/B;AAAA,UACD,eAAY;AAAA,UAEZ,UAAAJ,2BAAAA,IAACK,MAAAA,gBAAe,EAAA,MAAK,OAAO,CAAA;AAAA,QAAA;AAAA,MAAA,GAE9B;AAAA,MAGD,UAAAC,2BAAA,KAACC,MAAS,UAAA,EAAA,WAAU,eACnB,UAAA;AAAA,QAAAP,+BAACQ,MAAAA,UAAS,EAAA,MAAK,iDAAgD,QAAO,UAAS,UAE/E,aAAA;AAAA,QACC,kBAAmBR,2BAAAA,IAAAQ,MAAAA,UAAA,EAAS,SAAS,eAAe,SAAS,UAAe,mBAAA;AAAA,uCAC5EA,MAAAA,UAAS,EAAA,MAAK,iCAAgC,QAAO,UAAS,UAE/D,iBAAA;AAAA,uCACCC,MAAY,aAAA,EAAA;AAAA,QACZ,qDACCD,gBAAS,EAAA,WAAWJ,gBAAAA,QAAO,cAAc,SAAS,kBAAkB,SAAS,UAAA;AAAA,UAAA;AAAA,UAC1D;AAAA,yCAClB,QAAK,EAAA,WAAWA,gBAAAA,QAAO,eAAgB,4BAAkB,MAAM,CAAA;AAAA,QAAA,GACjE;AAAA,QAEDJ,2BAAA;AAAA,UAACQ,MAAA;AAAA,UAAA;AAAA,YACA,MAAK;AAAA,YACL,QAAO;AAAA,YACP,UAAA;AAAA,UAAA;AAAA,QAED;AAAA,uCACCA,MAAAA,UAAS,EAAA,MAAK,iDAAgD,QAAO,UAAS,UAE/E,YAAA;AAAA,uCACCC,MAAY,aAAA,EAAA;AAAA,uCACZD,MAAAA,UAAS,EAAA,MAAK,uDAAsD,QAAO,UAAS,UAErF,cAAA;AAAA,uCACCA,MAAAA,UAAS,EAAA,MAAK,8BAA6B,QAAO,UAAS,UAE5D,QAAA;AAAA,uCACCA,MAAAA,UAAS,EAAA,MAAK,qCAAoC,QAAO,UAAS,UAEnE,OAAA,CAAA;AAAA,MAAA,EACD,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,37 +1,50 @@
1
- import { isFreePlan, isTrialPlan } from "./harmony11.mjs";
2
- const withJwtCheck = (checkFn) => (jwtPayload) => !!jwtPayload && checkFn(jwtPayload);
3
- const canAccessStyleGuide = withJwtCheck(
4
- (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole)
5
- );
6
- const canAccessReporting = withJwtCheck(
7
- (jwt) => ["admin", "owner"].includes(jwt.userTeamRole)
8
- );
9
- const canAccessTeamSettings = withJwtCheck(
10
- (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
11
- );
12
- const canCreateTeam = withJwtCheck(
13
- (jwt) => ["admin", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
14
- );
15
- const canUpgradePlan = withJwtCheck(
16
- (jwt) => ["owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && (isFreePlan(jwt.planId) || isTrialPlan(jwt.planId))
17
- );
18
- const canChangeBilling = withJwtCheck(
19
- (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isTeamSuspended && !jwt.isEndOfTrialActive
20
- );
21
- const canAccessProviderDashboard = withJwtCheck(
22
- (jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated
23
- );
24
- const canAccessProfileSettings = withJwtCheck(
25
- (jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended
26
- );
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Menu, MenuList, MenuItem, MenuDivider, Tooltip, HelpCenterIcon } from "@lokalise/louis";
3
+ import { clsx } from "./harmony92.mjs";
4
+ import styles from "./harmony144.mjs";
5
+ const HelpMenu = ({ contactSupport, keyboardShortcuts }) => {
6
+ return /* @__PURE__ */ jsx(
7
+ Menu,
8
+ {
9
+ menuButton: ({ opened }) => /* @__PURE__ */ jsx(Tooltip, { placement: "right", tooltip: "Help", children: /* @__PURE__ */ jsx(
10
+ "button",
11
+ {
12
+ type: "button",
13
+ className: clsx(styles.dropdownButton, {
14
+ [styles.dropdownButtonActive]: opened
15
+ }),
16
+ "data-testid": "sidebar-help-menu-button",
17
+ children: /* @__PURE__ */ jsx(HelpCenterIcon, { size: "25px" })
18
+ }
19
+ ) }),
20
+ children: /* @__PURE__ */ jsxs(MenuList, { placement: "right-start", children: [
21
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://lokalise.com/blog/category/tutorials/", target: "_blank", children: "Tutorials" }),
22
+ contactSupport && /* @__PURE__ */ jsx(MenuItem, { onClick: contactSupport.onClick, children: "Contact support" }),
23
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://docs.lokalise.com/en/", target: "_blank", children: "Documentation" }),
24
+ /* @__PURE__ */ jsx(MenuDivider, {}),
25
+ keyboardShortcuts && /* @__PURE__ */ jsxs(MenuItem, { className: styles.shortcutMenu, onClick: keyboardShortcuts.onClick, children: [
26
+ "Keyboard shortcuts",
27
+ " ",
28
+ /* @__PURE__ */ jsx("span", { className: styles.shortcutLabel, children: keyboardShortcuts.label })
29
+ ] }),
30
+ /* @__PURE__ */ jsx(
31
+ MenuItem,
32
+ {
33
+ href: "https://developers.lokalise.com/reference/lokalise-rest-api",
34
+ target: "_blank",
35
+ children: "API reference"
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://github.com/lokalise/lokalise-cli-2-go", target: "_blank", children: "CLI tool" }),
39
+ /* @__PURE__ */ jsx(MenuDivider, {}),
40
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://lokalise.com/blog/category/product-updates/", target: "_blank", children: "What’s new" }),
41
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://lokalise.com/blog/", target: "_blank", children: "Blog" }),
42
+ /* @__PURE__ */ jsx(MenuItem, { href: "https://lokalise.com/product/apps", target: "_blank", children: "Apps" })
43
+ ] })
44
+ }
45
+ );
46
+ };
27
47
  export {
28
- canAccessProfileSettings,
29
- canAccessProviderDashboard,
30
- canAccessReporting,
31
- canAccessStyleGuide,
32
- canAccessTeamSettings,
33
- canChangeBilling,
34
- canCreateTeam,
35
- canUpgradePlan
48
+ HelpMenu
36
49
  };
37
50
  //# sourceMappingURL=harmony115.mjs.map