@lokalise/harmony 2.0.5 → 2.0.7

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 (619) 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 +2 -43
  14. package/dist/harmony107.cjs.map +1 -1
  15. package/dist/harmony107.mjs +3 -44
  16. package/dist/harmony107.mjs.map +1 -1
  17. package/dist/harmony108.cjs +17 -13
  18. package/dist/harmony108.cjs.map +1 -1
  19. package/dist/harmony108.mjs +17 -13
  20. package/dist/harmony108.mjs.map +1 -1
  21. package/dist/harmony109.cjs +74 -9
  22. package/dist/harmony109.cjs.map +1 -1
  23. package/dist/harmony109.mjs +76 -11
  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 +12 -21
  30. package/dist/harmony110.cjs.map +1 -1
  31. package/dist/harmony110.mjs +11 -20
  32. package/dist/harmony110.mjs.map +1 -1
  33. package/dist/harmony111.cjs +34 -3
  34. package/dist/harmony111.cjs.map +1 -1
  35. package/dist/harmony111.mjs +34 -3
  36. package/dist/harmony111.mjs.map +1 -1
  37. package/dist/harmony112.cjs +8 -17
  38. package/dist/harmony112.cjs.map +1 -1
  39. package/dist/harmony112.mjs +8 -17
  40. package/dist/harmony112.mjs.map +1 -1
  41. package/dist/harmony113.cjs +36 -65
  42. package/dist/harmony113.cjs.map +1 -1
  43. package/dist/harmony113.mjs +37 -66
  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 +8 -11
  48. package/dist/harmony114.mjs.map +1 -1
  49. package/dist/harmony115.cjs +12 -34
  50. package/dist/harmony115.cjs.map +1 -1
  51. package/dist/harmony115.mjs +12 -34
  52. package/dist/harmony115.mjs.map +1 -1
  53. package/dist/harmony116.cjs +13 -10
  54. package/dist/harmony116.cjs.map +1 -1
  55. package/dist/harmony116.mjs +12 -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 +165 -11
  66. package/dist/harmony119.cjs.map +1 -1
  67. package/dist/harmony119.mjs +165 -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 +44 -12
  74. package/dist/harmony120.cjs.map +1 -1
  75. package/dist/harmony120.mjs +43 -11
  76. package/dist/harmony120.mjs.map +1 -1
  77. package/dist/harmony121.cjs +2 -2
  78. package/dist/harmony121.mjs +2 -2
  79. package/dist/harmony122.cjs +20 -87
  80. package/dist/harmony122.cjs.map +1 -1
  81. package/dist/harmony122.mjs +20 -87
  82. package/dist/harmony122.mjs.map +1 -1
  83. package/dist/harmony123.cjs +10 -31
  84. package/dist/harmony123.cjs.map +1 -1
  85. package/dist/harmony123.mjs +9 -30
  86. package/dist/harmony123.mjs.map +1 -1
  87. package/dist/harmony124.cjs +13 -6
  88. package/dist/harmony124.cjs.map +1 -1
  89. package/dist/harmony124.mjs +12 -5
  90. package/dist/harmony124.mjs.map +1 -1
  91. package/dist/harmony125.cjs +16 -6
  92. package/dist/harmony125.cjs.map +1 -1
  93. package/dist/harmony125.mjs +15 -5
  94. package/dist/harmony125.mjs.map +1 -1
  95. package/dist/harmony126.cjs +19 -20
  96. package/dist/harmony126.cjs.map +1 -1
  97. package/dist/harmony126.mjs +19 -20
  98. package/dist/harmony126.mjs.map +1 -1
  99. package/dist/harmony127.cjs +10 -7
  100. package/dist/harmony127.cjs.map +1 -1
  101. package/dist/harmony127.mjs +10 -7
  102. package/dist/harmony127.mjs.map +1 -1
  103. package/dist/harmony128.cjs +24 -15
  104. package/dist/harmony128.cjs.map +1 -1
  105. package/dist/harmony128.mjs +24 -15
  106. package/dist/harmony128.mjs.map +1 -1
  107. package/dist/harmony129.cjs +11 -7
  108. package/dist/harmony129.cjs.map +1 -1
  109. package/dist/harmony129.mjs +11 -7
  110. package/dist/harmony129.mjs.map +1 -1
  111. package/dist/harmony13.cjs +11 -52
  112. package/dist/harmony13.cjs.map +1 -1
  113. package/dist/harmony13.mjs +11 -52
  114. package/dist/harmony13.mjs.map +1 -1
  115. package/dist/harmony130.cjs +37 -7
  116. package/dist/harmony130.cjs.map +1 -1
  117. package/dist/harmony130.mjs +37 -7
  118. package/dist/harmony130.mjs.map +1 -1
  119. package/dist/harmony131.cjs +11 -14
  120. package/dist/harmony131.cjs.map +1 -1
  121. package/dist/harmony131.mjs +11 -14
  122. package/dist/harmony131.mjs.map +1 -1
  123. package/dist/harmony132.cjs +22 -9
  124. package/dist/harmony132.cjs.map +1 -1
  125. package/dist/harmony132.mjs +21 -8
  126. package/dist/harmony132.mjs.map +1 -1
  127. package/dist/harmony133.cjs +31 -7
  128. package/dist/harmony133.cjs.map +1 -1
  129. package/dist/harmony133.mjs +32 -8
  130. package/dist/harmony133.mjs.map +1 -1
  131. package/dist/harmony134.cjs +21 -15
  132. package/dist/harmony134.cjs.map +1 -1
  133. package/dist/harmony134.mjs +20 -14
  134. package/dist/harmony134.mjs.map +1 -1
  135. package/dist/harmony135.cjs +18 -16
  136. package/dist/harmony135.cjs.map +1 -1
  137. package/dist/harmony135.mjs +20 -18
  138. package/dist/harmony135.mjs.map +1 -1
  139. package/dist/harmony136.cjs +6 -10
  140. package/dist/harmony136.cjs.map +1 -1
  141. package/dist/harmony136.mjs +5 -9
  142. package/dist/harmony136.mjs.map +1 -1
  143. package/dist/harmony137.cjs +15 -26
  144. package/dist/harmony137.cjs.map +1 -1
  145. package/dist/harmony137.mjs +14 -25
  146. package/dist/harmony137.mjs.map +1 -1
  147. package/dist/harmony138.cjs +7 -12
  148. package/dist/harmony138.cjs.map +1 -1
  149. package/dist/harmony138.mjs +7 -12
  150. package/dist/harmony138.mjs.map +1 -1
  151. package/dist/harmony139.cjs +15 -36
  152. package/dist/harmony139.cjs.map +1 -1
  153. package/dist/harmony139.mjs +15 -36
  154. package/dist/harmony139.mjs.map +1 -1
  155. package/dist/harmony14.cjs +55 -9
  156. package/dist/harmony14.cjs.map +1 -1
  157. package/dist/harmony14.mjs +55 -9
  158. package/dist/harmony14.mjs.map +1 -1
  159. package/dist/harmony140.cjs +7 -11
  160. package/dist/harmony140.cjs.map +1 -1
  161. package/dist/harmony140.mjs +7 -11
  162. package/dist/harmony140.mjs.map +1 -1
  163. package/dist/harmony141.cjs +7 -21
  164. package/dist/harmony141.cjs.map +1 -1
  165. package/dist/harmony141.mjs +7 -21
  166. package/dist/harmony141.mjs.map +1 -1
  167. package/dist/harmony142.cjs +14 -35
  168. package/dist/harmony142.cjs.map +1 -1
  169. package/dist/harmony142.mjs +14 -35
  170. package/dist/harmony142.mjs.map +1 -1
  171. package/dist/harmony143.cjs +87 -21
  172. package/dist/harmony143.cjs.map +1 -1
  173. package/dist/harmony143.mjs +86 -20
  174. package/dist/harmony143.mjs.map +1 -1
  175. package/dist/harmony144.cjs +30 -21
  176. package/dist/harmony144.cjs.map +1 -1
  177. package/dist/harmony144.mjs +30 -21
  178. package/dist/harmony144.mjs.map +1 -1
  179. package/dist/harmony145.cjs +5 -6
  180. package/dist/harmony145.cjs.map +1 -1
  181. package/dist/harmony145.mjs +5 -6
  182. package/dist/harmony146.cjs +5 -15
  183. package/dist/harmony146.cjs.map +1 -1
  184. package/dist/harmony146.mjs +5 -15
  185. package/dist/harmony146.mjs.map +1 -1
  186. package/dist/harmony147.cjs +9 -10
  187. package/dist/harmony147.cjs.map +1 -1
  188. package/dist/harmony147.mjs +8 -9
  189. package/dist/harmony147.mjs.map +1 -1
  190. package/dist/harmony148.cjs +7 -97
  191. package/dist/harmony148.cjs.map +1 -1
  192. package/dist/harmony148.mjs +6 -96
  193. package/dist/harmony148.mjs.map +1 -1
  194. package/dist/harmony149.cjs +10 -14
  195. package/dist/harmony149.cjs.map +1 -1
  196. package/dist/harmony149.mjs +9 -13
  197. package/dist/harmony149.mjs.map +1 -1
  198. package/dist/harmony15.cjs +30 -5
  199. package/dist/harmony15.cjs.map +1 -1
  200. package/dist/harmony15.mjs +30 -5
  201. package/dist/harmony15.mjs.map +1 -1
  202. package/dist/harmony150.cjs +25 -15
  203. package/dist/harmony150.cjs.map +1 -1
  204. package/dist/harmony150.mjs +24 -14
  205. package/dist/harmony150.mjs.map +1 -1
  206. package/dist/harmony151.cjs +7 -37
  207. package/dist/harmony151.cjs.map +1 -1
  208. package/dist/harmony151.mjs +6 -36
  209. package/dist/harmony151.mjs.map +1 -1
  210. package/dist/harmony152.cjs +13 -29
  211. package/dist/harmony152.cjs.map +1 -1
  212. package/dist/harmony152.mjs +12 -28
  213. package/dist/harmony152.mjs.map +1 -1
  214. package/dist/harmony153.cjs +7 -4
  215. package/dist/harmony153.cjs.map +1 -1
  216. package/dist/harmony153.mjs +6 -3
  217. package/dist/harmony153.mjs.map +1 -1
  218. package/dist/harmony154.cjs +96 -3
  219. package/dist/harmony154.cjs.map +1 -1
  220. package/dist/harmony154.mjs +96 -3
  221. package/dist/harmony154.mjs.map +1 -1
  222. package/dist/harmony155.cjs +13 -3
  223. package/dist/harmony155.cjs.map +1 -1
  224. package/dist/harmony155.mjs +13 -3
  225. package/dist/harmony155.mjs.map +1 -1
  226. package/dist/harmony156.cjs +14 -14
  227. package/dist/harmony156.cjs.map +1 -1
  228. package/dist/harmony156.mjs +14 -14
  229. package/dist/harmony156.mjs.map +1 -1
  230. package/dist/harmony157.cjs +36 -14
  231. package/dist/harmony157.cjs.map +1 -1
  232. package/dist/harmony157.mjs +36 -14
  233. package/dist/harmony157.mjs.map +1 -1
  234. package/dist/harmony158.cjs +28 -3
  235. package/dist/harmony158.cjs.map +1 -1
  236. package/dist/harmony158.mjs +28 -3
  237. package/dist/harmony158.mjs.map +1 -1
  238. package/dist/harmony159.cjs +10 -13
  239. package/dist/harmony159.cjs.map +1 -1
  240. package/dist/harmony159.mjs +10 -13
  241. package/dist/harmony159.mjs.map +1 -1
  242. package/dist/harmony16.cjs +18 -15
  243. package/dist/harmony16.cjs.map +1 -1
  244. package/dist/harmony16.mjs +18 -15
  245. package/dist/harmony16.mjs.map +1 -1
  246. package/dist/harmony160.cjs +3 -15
  247. package/dist/harmony160.cjs.map +1 -1
  248. package/dist/harmony160.mjs +3 -15
  249. package/dist/harmony160.mjs.map +1 -1
  250. package/dist/harmony161.cjs +3 -16
  251. package/dist/harmony161.cjs.map +1 -1
  252. package/dist/harmony161.mjs +3 -16
  253. package/dist/harmony161.mjs.map +1 -1
  254. package/dist/harmony162.cjs +4 -10
  255. package/dist/harmony162.cjs.map +1 -1
  256. package/dist/harmony162.mjs +3 -9
  257. package/dist/harmony162.mjs.map +1 -1
  258. package/dist/harmony163.cjs +15 -7
  259. package/dist/harmony163.cjs.map +1 -1
  260. package/dist/harmony163.mjs +14 -6
  261. package/dist/harmony163.mjs.map +1 -1
  262. package/dist/harmony164.cjs +15 -10
  263. package/dist/harmony164.cjs.map +1 -1
  264. package/dist/harmony164.mjs +14 -9
  265. package/dist/harmony164.mjs.map +1 -1
  266. package/dist/harmony165.cjs +4 -25
  267. package/dist/harmony165.cjs.map +1 -1
  268. package/dist/harmony165.mjs +3 -24
  269. package/dist/harmony165.mjs.map +1 -1
  270. package/dist/harmony166.cjs +14 -7
  271. package/dist/harmony166.cjs.map +1 -1
  272. package/dist/harmony166.mjs +13 -6
  273. package/dist/harmony166.mjs.map +1 -1
  274. package/dist/harmony167.cjs +16 -13
  275. package/dist/harmony167.cjs.map +1 -1
  276. package/dist/harmony167.mjs +15 -12
  277. package/dist/harmony167.mjs.map +1 -1
  278. package/dist/harmony168.cjs +17 -7
  279. package/dist/harmony168.cjs.map +1 -1
  280. package/dist/harmony168.mjs +16 -6
  281. package/dist/harmony168.mjs.map +1 -1
  282. package/dist/harmony169.cjs +10 -15
  283. package/dist/harmony169.cjs.map +1 -1
  284. package/dist/harmony169.mjs +10 -15
  285. package/dist/harmony169.mjs.map +1 -1
  286. package/dist/harmony17.cjs +28 -32
  287. package/dist/harmony17.cjs.map +1 -1
  288. package/dist/harmony17.mjs +28 -32
  289. package/dist/harmony17.mjs.map +1 -1
  290. package/dist/harmony170.cjs +13 -18
  291. package/dist/harmony170.cjs.map +1 -1
  292. package/dist/harmony170.mjs +13 -18
  293. package/dist/harmony170.mjs.map +1 -1
  294. package/dist/harmony171.cjs +19 -10
  295. package/dist/harmony171.cjs.map +1 -1
  296. package/dist/harmony171.mjs +19 -10
  297. package/dist/harmony171.mjs.map +1 -1
  298. package/dist/harmony172.cjs +11 -10
  299. package/dist/harmony172.cjs.map +1 -1
  300. package/dist/harmony172.mjs +11 -10
  301. package/dist/harmony172.mjs.map +1 -1
  302. package/dist/harmony174.cjs +5 -11
  303. package/dist/harmony174.cjs.map +1 -1
  304. package/dist/harmony174.mjs +5 -11
  305. package/dist/harmony174.mjs.map +1 -1
  306. package/dist/harmony175.cjs +11 -31
  307. package/dist/harmony175.cjs.map +1 -1
  308. package/dist/harmony175.mjs +11 -31
  309. package/dist/harmony175.mjs.map +1 -1
  310. package/dist/harmony176.cjs +28 -10
  311. package/dist/harmony176.cjs.map +1 -1
  312. package/dist/harmony176.mjs +28 -10
  313. package/dist/harmony176.mjs.map +1 -1
  314. package/dist/harmony177.cjs +13 -5
  315. package/dist/harmony177.cjs.map +1 -1
  316. package/dist/harmony177.mjs +13 -5
  317. package/dist/harmony177.mjs.map +1 -1
  318. package/dist/harmony18.cjs +14 -5
  319. package/dist/harmony18.cjs.map +1 -1
  320. package/dist/harmony18.mjs +14 -5
  321. package/dist/harmony18.mjs.map +1 -1
  322. package/dist/harmony19.cjs +13 -10
  323. package/dist/harmony19.cjs.map +1 -1
  324. package/dist/harmony19.mjs +13 -10
  325. package/dist/harmony19.mjs.map +1 -1
  326. package/dist/harmony20.cjs +13 -10
  327. package/dist/harmony20.cjs.map +1 -1
  328. package/dist/harmony20.mjs +13 -10
  329. package/dist/harmony20.mjs.map +1 -1
  330. package/dist/harmony21.cjs +13 -17
  331. package/dist/harmony21.cjs.map +1 -1
  332. package/dist/harmony21.mjs +13 -17
  333. package/dist/harmony21.mjs.map +1 -1
  334. package/dist/harmony22.cjs +13 -15
  335. package/dist/harmony22.cjs.map +1 -1
  336. package/dist/harmony22.mjs +13 -15
  337. package/dist/harmony22.mjs.map +1 -1
  338. package/dist/harmony23.cjs +12 -141
  339. package/dist/harmony23.cjs.map +1 -1
  340. package/dist/harmony23.mjs +12 -141
  341. package/dist/harmony23.mjs.map +1 -1
  342. package/dist/harmony24.cjs +22 -20
  343. package/dist/harmony24.cjs.map +1 -1
  344. package/dist/harmony24.mjs +22 -20
  345. package/dist/harmony24.mjs.map +1 -1
  346. package/dist/harmony25.cjs +13 -14
  347. package/dist/harmony25.cjs.map +1 -1
  348. package/dist/harmony25.mjs +13 -14
  349. package/dist/harmony25.mjs.map +1 -1
  350. package/dist/harmony26.cjs +12 -16
  351. package/dist/harmony26.cjs.map +1 -1
  352. package/dist/harmony26.mjs +13 -17
  353. package/dist/harmony26.mjs.map +1 -1
  354. package/dist/harmony27.cjs +15 -16
  355. package/dist/harmony27.cjs.map +1 -1
  356. package/dist/harmony27.mjs +16 -17
  357. package/dist/harmony27.mjs.map +1 -1
  358. package/dist/harmony28.cjs +15 -18
  359. package/dist/harmony28.cjs.map +1 -1
  360. package/dist/harmony28.mjs +15 -18
  361. package/dist/harmony28.mjs.map +1 -1
  362. package/dist/harmony29.cjs +15 -20
  363. package/dist/harmony29.cjs.map +1 -1
  364. package/dist/harmony29.mjs +15 -20
  365. package/dist/harmony29.mjs.map +1 -1
  366. package/dist/harmony30.cjs +15 -10
  367. package/dist/harmony30.cjs.map +1 -1
  368. package/dist/harmony30.mjs +15 -10
  369. package/dist/harmony30.mjs.map +1 -1
  370. package/dist/harmony31.cjs +15 -11
  371. package/dist/harmony31.cjs.map +1 -1
  372. package/dist/harmony31.mjs +15 -11
  373. package/dist/harmony31.mjs.map +1 -1
  374. package/dist/harmony32.cjs +16 -8
  375. package/dist/harmony32.cjs.map +1 -1
  376. package/dist/harmony32.mjs +16 -8
  377. package/dist/harmony32.mjs.map +1 -1
  378. package/dist/harmony33.cjs +16 -8
  379. package/dist/harmony33.cjs.map +1 -1
  380. package/dist/harmony33.mjs +16 -8
  381. package/dist/harmony33.mjs.map +1 -1
  382. package/dist/harmony34.cjs +16 -14
  383. package/dist/harmony34.cjs.map +1 -1
  384. package/dist/harmony34.mjs +16 -14
  385. package/dist/harmony34.mjs.map +1 -1
  386. package/dist/harmony35.cjs +16 -9
  387. package/dist/harmony35.cjs.map +1 -1
  388. package/dist/harmony35.mjs +16 -9
  389. package/dist/harmony35.mjs.map +1 -1
  390. package/dist/harmony36.cjs +16 -12
  391. package/dist/harmony36.cjs.map +1 -1
  392. package/dist/harmony36.mjs +16 -12
  393. package/dist/harmony36.mjs.map +1 -1
  394. package/dist/harmony37.cjs +14 -9
  395. package/dist/harmony37.cjs.map +1 -1
  396. package/dist/harmony37.mjs +14 -9
  397. package/dist/harmony37.mjs.map +1 -1
  398. package/dist/harmony38.cjs +16 -13
  399. package/dist/harmony38.cjs.map +1 -1
  400. package/dist/harmony38.mjs +16 -13
  401. package/dist/harmony38.mjs.map +1 -1
  402. package/dist/harmony39.cjs +16 -7
  403. package/dist/harmony39.cjs.map +1 -1
  404. package/dist/harmony39.mjs +16 -7
  405. package/dist/harmony39.mjs.map +1 -1
  406. package/dist/harmony40.cjs +17 -10
  407. package/dist/harmony40.cjs.map +1 -1
  408. package/dist/harmony40.mjs +17 -10
  409. package/dist/harmony40.mjs.map +1 -1
  410. package/dist/harmony41.cjs +14 -11
  411. package/dist/harmony41.cjs.map +1 -1
  412. package/dist/harmony41.mjs +14 -11
  413. package/dist/harmony41.mjs.map +1 -1
  414. package/dist/harmony42.cjs +14 -9
  415. package/dist/harmony42.cjs.map +1 -1
  416. package/dist/harmony42.mjs +14 -9
  417. package/dist/harmony42.mjs.map +1 -1
  418. package/dist/harmony43.cjs +124 -9
  419. package/dist/harmony43.cjs.map +1 -1
  420. package/dist/harmony43.mjs +124 -9
  421. package/dist/harmony43.mjs.map +1 -1
  422. package/dist/harmony44.cjs +82 -9
  423. package/dist/harmony44.cjs.map +1 -1
  424. package/dist/harmony44.mjs +82 -9
  425. package/dist/harmony44.mjs.map +1 -1
  426. package/dist/harmony45.cjs +6 -88
  427. package/dist/harmony45.cjs.map +1 -1
  428. package/dist/harmony45.mjs +6 -88
  429. package/dist/harmony45.mjs.map +1 -1
  430. package/dist/harmony46.cjs +25 -52
  431. package/dist/harmony46.cjs.map +1 -1
  432. package/dist/harmony46.mjs +25 -52
  433. package/dist/harmony46.mjs.map +1 -1
  434. package/dist/harmony47.cjs +23 -30
  435. package/dist/harmony47.cjs.map +1 -1
  436. package/dist/harmony47.mjs +23 -30
  437. package/dist/harmony47.mjs.map +1 -1
  438. package/dist/harmony48.cjs +141 -11
  439. package/dist/harmony48.cjs.map +1 -1
  440. package/dist/harmony48.mjs +140 -10
  441. package/dist/harmony48.mjs.map +1 -1
  442. package/dist/harmony49.cjs +32 -50
  443. package/dist/harmony49.cjs.map +1 -1
  444. package/dist/harmony49.mjs +32 -50
  445. package/dist/harmony49.mjs.map +1 -1
  446. package/dist/harmony5.cjs +5 -5
  447. package/dist/harmony5.mjs +5 -5
  448. package/dist/harmony50.cjs +26 -30
  449. package/dist/harmony50.cjs.map +1 -1
  450. package/dist/harmony50.mjs +26 -30
  451. package/dist/harmony50.mjs.map +1 -1
  452. package/dist/harmony51.cjs +4 -18
  453. package/dist/harmony51.cjs.map +1 -1
  454. package/dist/harmony51.mjs +4 -18
  455. package/dist/harmony51.mjs.map +1 -1
  456. package/dist/harmony52.cjs +81 -25
  457. package/dist/harmony52.cjs.map +1 -1
  458. package/dist/harmony52.mjs +81 -25
  459. package/dist/harmony52.mjs.map +1 -1
  460. package/dist/harmony53.cjs +57 -13
  461. package/dist/harmony53.cjs.map +1 -1
  462. package/dist/harmony53.mjs +56 -12
  463. package/dist/harmony53.mjs.map +1 -1
  464. package/dist/harmony54.cjs +18 -14
  465. package/dist/harmony54.cjs.map +1 -1
  466. package/dist/harmony54.mjs +18 -14
  467. package/dist/harmony54.mjs.map +1 -1
  468. package/dist/harmony55.cjs +30 -14
  469. package/dist/harmony55.cjs.map +1 -1
  470. package/dist/harmony55.mjs +30 -14
  471. package/dist/harmony55.mjs.map +1 -1
  472. package/dist/harmony56.cjs +22 -13
  473. package/dist/harmony56.cjs.map +1 -1
  474. package/dist/harmony56.mjs +22 -13
  475. package/dist/harmony56.mjs.map +1 -1
  476. package/dist/harmony57.cjs +52 -14
  477. package/dist/harmony57.cjs.map +1 -1
  478. package/dist/harmony57.mjs +52 -14
  479. package/dist/harmony57.mjs.map +1 -1
  480. package/dist/harmony58.cjs +9 -13
  481. package/dist/harmony58.cjs.map +1 -1
  482. package/dist/harmony58.mjs +9 -13
  483. package/dist/harmony58.mjs.map +1 -1
  484. package/dist/harmony59.cjs +5 -22
  485. package/dist/harmony59.cjs.map +1 -1
  486. package/dist/harmony59.mjs +5 -22
  487. package/dist/harmony59.mjs.map +1 -1
  488. package/dist/harmony6.cjs +1 -1
  489. package/dist/harmony6.mjs +2 -2
  490. package/dist/harmony60.cjs +14 -12
  491. package/dist/harmony60.cjs.map +1 -1
  492. package/dist/harmony60.mjs +14 -12
  493. package/dist/harmony60.mjs.map +1 -1
  494. package/dist/harmony61.cjs +31 -12
  495. package/dist/harmony61.cjs.map +1 -1
  496. package/dist/harmony61.mjs +31 -12
  497. package/dist/harmony61.mjs.map +1 -1
  498. package/dist/harmony62.cjs +5 -17
  499. package/dist/harmony62.cjs.map +1 -1
  500. package/dist/harmony62.mjs +5 -17
  501. package/dist/harmony62.mjs.map +1 -1
  502. package/dist/harmony63.cjs +10 -16
  503. package/dist/harmony63.cjs.map +1 -1
  504. package/dist/harmony63.mjs +10 -16
  505. package/dist/harmony63.mjs.map +1 -1
  506. package/dist/harmony64.cjs +11 -15
  507. package/dist/harmony64.cjs.map +1 -1
  508. package/dist/harmony64.mjs +11 -15
  509. package/dist/harmony64.mjs.map +1 -1
  510. package/dist/harmony65.cjs +18 -15
  511. package/dist/harmony65.cjs.map +1 -1
  512. package/dist/harmony65.mjs +18 -15
  513. package/dist/harmony65.mjs.map +1 -1
  514. package/dist/harmony66.cjs +16 -15
  515. package/dist/harmony66.cjs.map +1 -1
  516. package/dist/harmony66.mjs +16 -15
  517. package/dist/harmony66.mjs.map +1 -1
  518. package/dist/harmony67.cjs +142 -17
  519. package/dist/harmony67.cjs.map +1 -1
  520. package/dist/harmony67.mjs +142 -17
  521. package/dist/harmony67.mjs.map +1 -1
  522. package/dist/harmony68.cjs +19 -16
  523. package/dist/harmony68.cjs.map +1 -1
  524. package/dist/harmony68.mjs +19 -16
  525. package/dist/harmony68.mjs.map +1 -1
  526. package/dist/harmony69.cjs +13 -16
  527. package/dist/harmony69.cjs.map +1 -1
  528. package/dist/harmony69.mjs +13 -16
  529. package/dist/harmony69.mjs.map +1 -1
  530. package/dist/harmony70.cjs +15 -15
  531. package/dist/harmony70.cjs.map +1 -1
  532. package/dist/harmony70.mjs +16 -16
  533. package/dist/harmony70.mjs.map +1 -1
  534. package/dist/harmony71.cjs +16 -15
  535. package/dist/harmony71.cjs.map +1 -1
  536. package/dist/harmony71.mjs +17 -16
  537. package/dist/harmony71.mjs.map +1 -1
  538. package/dist/harmony72.cjs +20 -15
  539. package/dist/harmony72.cjs.map +1 -1
  540. package/dist/harmony72.mjs +20 -15
  541. package/dist/harmony72.mjs.map +1 -1
  542. package/dist/harmony73.cjs +19 -16
  543. package/dist/harmony73.cjs.map +1 -1
  544. package/dist/harmony73.mjs +19 -16
  545. package/dist/harmony73.mjs.map +1 -1
  546. package/dist/harmony74.cjs +8 -15
  547. package/dist/harmony74.cjs.map +1 -1
  548. package/dist/harmony74.mjs +8 -15
  549. package/dist/harmony74.mjs.map +1 -1
  550. package/dist/harmony75.cjs +9 -16
  551. package/dist/harmony75.cjs.map +1 -1
  552. package/dist/harmony75.mjs +9 -16
  553. package/dist/harmony75.mjs.map +1 -1
  554. package/dist/harmony76.cjs +9 -14
  555. package/dist/harmony76.cjs.map +1 -1
  556. package/dist/harmony76.mjs +9 -14
  557. package/dist/harmony76.mjs.map +1 -1
  558. package/dist/harmony77.cjs +9 -14
  559. package/dist/harmony77.cjs.map +1 -1
  560. package/dist/harmony77.mjs +9 -14
  561. package/dist/harmony77.mjs.map +1 -1
  562. package/dist/harmony78.cjs +15 -124
  563. package/dist/harmony78.cjs.map +1 -1
  564. package/dist/harmony78.mjs +15 -124
  565. package/dist/harmony78.mjs.map +1 -1
  566. package/dist/harmony79.cjs +10 -82
  567. package/dist/harmony79.cjs.map +1 -1
  568. package/dist/harmony79.mjs +10 -82
  569. package/dist/harmony79.mjs.map +1 -1
  570. package/dist/harmony80.cjs +13 -6
  571. package/dist/harmony80.cjs.map +1 -1
  572. package/dist/harmony80.mjs +13 -6
  573. package/dist/harmony80.mjs.map +1 -1
  574. package/dist/harmony81.cjs +10 -28
  575. package/dist/harmony81.cjs.map +1 -1
  576. package/dist/harmony81.mjs +10 -28
  577. package/dist/harmony81.mjs.map +1 -1
  578. package/dist/harmony82.cjs +14 -24
  579. package/dist/harmony82.cjs.map +1 -1
  580. package/dist/harmony82.mjs +14 -24
  581. package/dist/harmony82.mjs.map +1 -1
  582. package/dist/harmony83.cjs +8 -141
  583. package/dist/harmony83.cjs.map +1 -1
  584. package/dist/harmony83.mjs +8 -141
  585. package/dist/harmony83.mjs.map +1 -1
  586. package/dist/harmony84.cjs +11 -37
  587. package/dist/harmony84.cjs.map +1 -1
  588. package/dist/harmony84.mjs +11 -37
  589. package/dist/harmony84.mjs.map +1 -1
  590. package/dist/harmony85.cjs +11 -26
  591. package/dist/harmony85.cjs.map +1 -1
  592. package/dist/harmony85.mjs +11 -26
  593. package/dist/harmony85.mjs.map +1 -1
  594. package/dist/harmony86.cjs +9 -4
  595. package/dist/harmony86.cjs.map +1 -1
  596. package/dist/harmony86.mjs +9 -4
  597. package/dist/harmony86.mjs.map +1 -1
  598. package/dist/harmony87.cjs +9 -84
  599. package/dist/harmony87.cjs.map +1 -1
  600. package/dist/harmony87.mjs +9 -84
  601. package/dist/harmony87.mjs.map +1 -1
  602. package/dist/harmony88.cjs +9 -58
  603. package/dist/harmony88.cjs.map +1 -1
  604. package/dist/harmony88.mjs +9 -58
  605. package/dist/harmony88.mjs.map +1 -1
  606. package/dist/harmony89.cjs +88 -18
  607. package/dist/harmony89.cjs.map +1 -1
  608. package/dist/harmony89.mjs +88 -18
  609. package/dist/harmony89.mjs.map +1 -1
  610. package/dist/harmony96.cjs +2 -2
  611. package/dist/harmony96.mjs +2 -2
  612. package/dist/harmony98.cjs +2 -2
  613. package/dist/harmony98.mjs +2 -2
  614. package/dist/harmony99.cjs +4 -4
  615. package/dist/harmony99.mjs +4 -4
  616. package/dist/types/src/features/permissions/components/ProjectActionResolverContextProvider.d.ts +2 -2
  617. package/dist/types/src/features/permissions/context/ActionsContext.d.ts +2 -2
  618. package/dist/types/src/features/permissions/types.d.ts +3 -1
  619. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"harmony126.mjs","sources":["../src/features/auth/core/types/jwtTokenPayload.ts"],"sourcesContent":["import { z } from 'zod'\nimport { TEAM_ROLE_SCHEMA } from '../../../publicApi/types/teamRoleTypes'\n\nexport const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({\n\tuserId: z.number(),\n\tuserUuid: z.string().uuid(),\n\tteamId: z.number(),\n\tteamUuid: z.string().uuid(),\n\tuserTeamRole: TEAM_ROLE_SCHEMA,\n\tuserEmail: z.string().email(),\n\tuserName: z.string(),\n\tuserCurrentTeamId: z.number(),\n\tplanId: z.number(),\n\tplanName: z.string(),\n\tisProviderAlpha: z.boolean(),\n\tisFullyAuthenticated: z.boolean(),\n\tisEndOfTrialActive: z.boolean(),\n\tisTeamSuspended: z.boolean(),\n\texp: z.number(),\n})\nexport type JwtTokenPayload = z.infer<typeof JWT_TOKEN_PAYLOAD_SCHEMA>\n"],"names":[],"mappings":";;AAGa,MAAA,2BAA2B,EAAE,OAAO;AAAA,EAChD,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,cAAc;AAAA,EACd,WAAW,EAAE,OAAO,EAAE,MAAM;AAAA,EAC5B,UAAU,EAAE,OAAO;AAAA,EACnB,mBAAmB,EAAE,OAAO;AAAA,EAC5B,QAAQ,EAAE,OAAO;AAAA,EACjB,UAAU,EAAE,OAAO;AAAA,EACnB,iBAAiB,EAAE,QAAQ;AAAA,EAC3B,sBAAsB,EAAE,QAAQ;AAAA,EAChC,oBAAoB,EAAE,QAAQ;AAAA,EAC9B,iBAAiB,EAAE,QAAQ;AAAA,EAC3B,KAAK,EAAE,OAAO;AACf,CAAC;"}
1
+ {"version":3,"file":"harmony126.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { canCreateTeam } from '@utils/user/permissions'\nimport styles from './CreateNewTeamPlaceholder.module.css'\n\ntype CreateNewTeamPlaceholderProps = {\n\tonClick: () => void\n}\n\n/**\n * A placeholder menu item for creating a new team.\n * Checks the user's permissions using the Sidebar context and renders\n * nothing if the user does not have access.\n *\n * @example\n * ```\n * <CreateNewTeamPlaceholder onClick={handleCreateTeam} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const CreateNewTeamPlaceholder = ({ onClick }: CreateNewTeamPlaceholderProps) => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canCreateTeam(jwt)) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={onClick} data-testid=\"sidebar-create-new-team-placeholder\">\n\t\t\t\t<div className=\"flex flex-col\">\n\t\t\t\t\t<span className={styles.mainLabel}>Create new team</span>\n\t\t\t\t\t<span className={styles.subLabel}>Switch to Expert to create a new team</span>\n\t\t\t\t</div>\n\t\t\t</MenuItem>\n\t\t\t<MenuDivider />\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAsBO,MAAM,2BAA2B,CAAC,EAAE,cAA6C;AACjF,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,cAAc,GAAG,GAAG;AACjB,WAAA;AAAA,EAAA;AAGR,SAEE,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,oBAAC,YAAS,SAAkB,eAAY,uCACvC,UAAC,qBAAA,OAAA,EAAI,WAAU,iBACd,UAAA;AAAA,MAAA,oBAAC,QAAK,EAAA,WAAW,OAAO,WAAW,UAAe,mBAAA;AAAA,MACjD,oBAAA,QAAA,EAAK,WAAW,OAAO,UAAU,UAAqC,wCAAA,CAAA;AAAA,IAAA,EAAA,CACxE,EACD,CAAA;AAAA,wBACC,aAAY,CAAA,CAAA;AAAA,EAAA,GACd;AAEF;"}
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const featureFlagContext = React.createContext(void 0);
5
- const teamContext = React.createContext(void 0);
6
- const projectPermissionsContext = React.createContext({});
7
- exports.featureFlagContext = featureFlagContext;
8
- exports.projectPermissionsContext = projectPermissionsContext;
9
- exports.teamContext = teamContext;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
5
+ const DarkModeToggle_module = require("./harmony148.cjs");
6
+ const DarkModeToggle = ({ onToggle, isDarkMode }) => {
7
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { onClick: onToggle, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-row justify-between gap-1 ${DarkModeToggle_module.default.switchContainer}`, children: [
8
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Dark mode" }),
9
+ /* @__PURE__ */ jsxRuntime.jsx(louis.Switch, { defaultChecked: isDarkMode, "aria-label": "Toggle dark mode" })
10
+ ] }) });
11
+ };
12
+ exports.DarkModeToggle = DarkModeToggle;
10
13
  //# sourceMappingURL=harmony127.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.cjs","sources":["../src/features/permissions/context/ActionsContext.tsx"],"sourcesContent":["import type {\n\tFeatureFlag,\n\tProjectPermission,\n\tProjectType,\n\tTeamRole,\n} from '@features/permissions/types'\nimport { createContext } from 'react'\n\nexport const featureFlagContext = createContext<FeatureFlag[] | undefined>(undefined)\n\nexport const teamContext = createContext<TeamRole | undefined>(undefined)\n\ntype ProjectPermissionsContextType = {\n\tpermissions?: ProjectPermission[]\n\tprojectType?: ProjectType\n}\nexport const projectPermissionsContext = createContext<ProjectPermissionsContextType>({})\n"],"names":["createContext"],"mappings":";;;AAQa,MAAA,qBAAqBA,oBAAyC,MAAS;AAEvE,MAAA,cAAcA,oBAAoC,MAAS;AAM3D,MAAA,4BAA4BA,MAA6C,cAAA,CAAE,CAAA;;;;"}
1
+ {"version":3,"file":"harmony127.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.tsx"],"sourcesContent":["import { MenuItem, Switch } from '@lokalise/louis'\nimport styles from './DarkModeToggle.module.css'\n\ntype DarkModeToggleProps = {\n\tonToggle: () => void\n\tisDarkMode: boolean\n}\n\n/**\n * A menu item component for toggling dark mode.\n * Displays a switch and label, and calls the provided onToggle handler when clicked.\n *\n * @example\n * ```\n * <DarkModeToggle\n * isDarkMode={isDarkMode}\n * onToggle={handleToggleDarkMode}\n * />\n * ```\n */\n\nexport const DarkModeToggle = ({ onToggle, isDarkMode }: DarkModeToggleProps) => {\n\treturn (\n\t\t<MenuItem onClick={onToggle}>\n\t\t\t<div className={`flex-row justify-between gap-1 ${styles.switchContainer}`}>\n\t\t\t\t<span>Dark mode</span>\n\t\t\t\t<Switch defaultChecked={isDarkMode} aria-label=\"Toggle dark mode\" />\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":["jsx","MenuItem","jsxs","styles","Switch"],"mappings":";;;;;AAqBO,MAAM,iBAAiB,CAAC,EAAE,UAAU,iBAAsC;AAE/E,SAAAA,2BAAAA,IAACC,MAAAA,UAAS,EAAA,SAAS,UAClB,UAAAC,2BAAA,KAAC,SAAI,WAAW,kCAAkCC,sBAAO,QAAA,eAAe,IACvE,UAAA;AAAA,IAAAH,2BAAAA,IAAC,UAAK,UAAS,YAAA,CAAA;AAAA,IACdA,2BAAA,IAAAI,MAAA,QAAA,EAAO,gBAAgB,YAAY,cAAW,mBAAmB,CAAA;AAAA,EAAA,EAAA,CACnE,EACD,CAAA;AAEF;;"}
@@ -1,10 +1,13 @@
1
- import { createContext } from "react";
2
- const featureFlagContext = createContext(void 0);
3
- const teamContext = createContext(void 0);
4
- const projectPermissionsContext = createContext({});
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { MenuItem, Switch } from "@lokalise/louis";
3
+ import styles from "./harmony148.mjs";
4
+ const DarkModeToggle = ({ onToggle, isDarkMode }) => {
5
+ return /* @__PURE__ */ jsx(MenuItem, { onClick: onToggle, children: /* @__PURE__ */ jsxs("div", { className: `flex-row justify-between gap-1 ${styles.switchContainer}`, children: [
6
+ /* @__PURE__ */ jsx("span", { children: "Dark mode" }),
7
+ /* @__PURE__ */ jsx(Switch, { defaultChecked: isDarkMode, "aria-label": "Toggle dark mode" })
8
+ ] }) });
9
+ };
5
10
  export {
6
- featureFlagContext,
7
- projectPermissionsContext,
8
- teamContext
11
+ DarkModeToggle
9
12
  };
10
13
  //# sourceMappingURL=harmony127.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony127.mjs","sources":["../src/features/permissions/context/ActionsContext.tsx"],"sourcesContent":["import type {\n\tFeatureFlag,\n\tProjectPermission,\n\tProjectType,\n\tTeamRole,\n} from '@features/permissions/types'\nimport { createContext } from 'react'\n\nexport const featureFlagContext = createContext<FeatureFlag[] | undefined>(undefined)\n\nexport const teamContext = createContext<TeamRole | undefined>(undefined)\n\ntype ProjectPermissionsContextType = {\n\tpermissions?: ProjectPermission[]\n\tprojectType?: ProjectType\n}\nexport const projectPermissionsContext = createContext<ProjectPermissionsContextType>({})\n"],"names":[],"mappings":";AAQa,MAAA,qBAAqB,cAAyC,MAAS;AAEvE,MAAA,cAAc,cAAoC,MAAS;AAM3D,MAAA,4BAA4B,cAA6C,CAAE,CAAA;"}
1
+ {"version":3,"file":"harmony127.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.tsx"],"sourcesContent":["import { MenuItem, Switch } from '@lokalise/louis'\nimport styles from './DarkModeToggle.module.css'\n\ntype DarkModeToggleProps = {\n\tonToggle: () => void\n\tisDarkMode: boolean\n}\n\n/**\n * A menu item component for toggling dark mode.\n * Displays a switch and label, and calls the provided onToggle handler when clicked.\n *\n * @example\n * ```\n * <DarkModeToggle\n * isDarkMode={isDarkMode}\n * onToggle={handleToggleDarkMode}\n * />\n * ```\n */\n\nexport const DarkModeToggle = ({ onToggle, isDarkMode }: DarkModeToggleProps) => {\n\treturn (\n\t\t<MenuItem onClick={onToggle}>\n\t\t\t<div className={`flex-row justify-between gap-1 ${styles.switchContainer}`}>\n\t\t\t\t<span>Dark mode</span>\n\t\t\t\t<Switch defaultChecked={isDarkMode} aria-label=\"Toggle dark mode\" />\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;AAqBO,MAAM,iBAAiB,CAAC,EAAE,UAAU,iBAAsC;AAE/E,SAAA,oBAAC,UAAS,EAAA,SAAS,UAClB,UAAA,qBAAC,SAAI,WAAW,kCAAkC,OAAO,eAAe,IACvE,UAAA;AAAA,IAAA,oBAAC,UAAK,UAAS,YAAA,CAAA;AAAA,IACd,oBAAA,QAAA,EAAO,gBAAgB,YAAY,cAAW,mBAAmB,CAAA;AAAA,EAAA,EAAA,CACnE,EACD,CAAA;AAEF;"}
@@ -1,20 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const ActionsContext = require("./harmony127.cjs");
4
- const React = require("react");
5
- const useActionResolverPayload = () => {
6
- const teamRole = React.useContext(ActionsContext.teamContext);
7
- const enabledFeatureFlags = React.useContext(ActionsContext.featureFlagContext);
8
- const { permissions: projectPermissions, projectType } = React.useContext(ActionsContext.projectPermissionsContext);
9
- return React.useMemo(
10
- () => ({
11
- enabledFeatureFlags,
12
- teamRole,
13
- projectPermissions,
14
- projectType
15
- }),
16
- [enabledFeatureFlags, teamRole, projectPermissions, projectType]
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony110.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const permissions = require("./harmony111.cjs");
7
+ const ProfileSettingsMenuItem_module = require("./harmony149.cjs");
8
+ const ProfileSettingsMenuItem = ({ onClick }) => {
9
+ const { jwt } = useSidebar.useSidebar();
10
+ if (!permissions.canAccessProfileSettings(jwt)) {
11
+ return null;
12
+ }
13
+ return /* @__PURE__ */ jsxRuntime.jsx(
14
+ louis.MenuItem,
15
+ {
16
+ "data-testid": "sidebar-profile-settings-menu-item",
17
+ href: "/profile",
18
+ onClick: () => {
19
+ onClick == null ? void 0 : onClick();
20
+ },
21
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-col ${ProfileSettingsMenuItem_module.default.container}`, children: [
22
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Profile Settings" }),
23
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: ProfileSettingsMenuItem_module.default.profileEmail, children: jwt == null ? void 0 : jwt.userEmail })
24
+ ] })
25
+ }
17
26
  );
18
27
  };
19
- exports.useActionResolverPayload = useActionResolverPayload;
28
+ exports.ProfileSettingsMenuItem = ProfileSettingsMenuItem;
20
29
  //# sourceMappingURL=harmony128.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.cjs","sources":["../src/features/permissions/hooks/useActionResolverPayload.ts"],"sourcesContent":["import {\n\tfeatureFlagContext,\n\tprojectPermissionsContext,\n\tteamContext,\n} from '@features/permissions/context/ActionsContext'\nimport type { ActionResolverPayload } from '@features/permissions/types'\nimport { useContext, useMemo } from 'react'\n\nexport const useActionResolverPayload = (): ActionResolverPayload => {\n\tconst teamRole = useContext(teamContext)\n\tconst enabledFeatureFlags = useContext(featureFlagContext)\n\tconst { permissions: projectPermissions, projectType } = useContext(projectPermissionsContext)\n\n\treturn useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tenabledFeatureFlags,\n\t\t\t\tteamRole,\n\t\t\t\tprojectPermissions,\n\t\t\t\tprojectType,\n\t\t\t}) satisfies ActionResolverPayload,\n\t\t[enabledFeatureFlags, teamRole, projectPermissions, projectType],\n\t)\n}\n"],"names":["useContext","teamContext","featureFlagContext","projectPermissionsContext","useMemo"],"mappings":";;;;AAQO,MAAM,2BAA2B,MAA6B;AAC9D,QAAA,WAAWA,iBAAWC,0BAAW;AACjC,QAAA,sBAAsBD,iBAAWE,iCAAkB;AACzD,QAAM,EAAE,aAAa,oBAAoB,YAAY,IAAIF,MAAAA,WAAWG,eAAAA,yBAAyB;AAEtF,SAAAC,MAAA;AAAA,IACN,OACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,CAAC,qBAAqB,UAAU,oBAAoB,WAAW;AAAA,EAChE;AACD;;"}
1
+ {"version":3,"file":"harmony128.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProfileSettings } from '@utils/user/permissions'\nimport styles from './ProfileSettingsMenuItem.module.css'\n\n/**\n * A menu item component for navigating to the profile settings page.\n * Checks the user's permissions using the Sidebar context and renders\n * nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProfileSettingsMenuItem onClick={() => { }} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileSettingsMenuItem = {\n\tonClick?: () => void\n}\n\nexport const ProfileSettingsMenuItem = ({ onClick }: ProfileSettingsMenuItem) => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProfileSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-profile-settings-menu-item\"\n\t\t\thref=\"/profile\"\n\t\t\tonClick={() => {\n\t\t\t\tonClick?.()\n\t\t\t}}\n\t\t>\n\t\t\t<div className={`flex-col ${styles.container}`}>\n\t\t\t\t<span>Profile Settings</span>\n\t\t\t\t<span className={styles.profileEmail}>{jwt?.userEmail}</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":["useSidebar","canAccessProfileSettings","jsx","MenuItem","styles"],"mappings":";;;;;;;AAsBO,MAAM,0BAA0B,CAAC,EAAE,cAAuC;AAC1E,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,yBAAyB,GAAG,GAAG;AAC5B,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAS,MAAM;AACJ;AAAA,MACX;AAAA,MAEA,0CAAC,OAAI,EAAA,WAAW,YAAYC,uCAAO,SAAS,IAC3C,UAAA;AAAA,QAAAF,2BAAAA,IAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,uCACrB,QAAK,EAAA,WAAWE,+BAAAA,QAAO,cAAe,qCAAK,UAAU,CAAA;AAAA,MAAA,EACvD,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,20 +1,29 @@
1
- import { teamContext, featureFlagContext, projectPermissionsContext } from "./harmony127.mjs";
2
- import { useContext, useMemo } from "react";
3
- const useActionResolverPayload = () => {
4
- const teamRole = useContext(teamContext);
5
- const enabledFeatureFlags = useContext(featureFlagContext);
6
- const { permissions: projectPermissions, projectType } = useContext(projectPermissionsContext);
7
- return useMemo(
8
- () => ({
9
- enabledFeatureFlags,
10
- teamRole,
11
- projectPermissions,
12
- projectType
13
- }),
14
- [enabledFeatureFlags, teamRole, projectPermissions, projectType]
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony110.mjs";
3
+ import { MenuItem } from "@lokalise/louis";
4
+ import { canAccessProfileSettings } from "./harmony111.mjs";
5
+ import styles from "./harmony149.mjs";
6
+ const ProfileSettingsMenuItem = ({ onClick }) => {
7
+ const { jwt } = useSidebar();
8
+ if (!canAccessProfileSettings(jwt)) {
9
+ return null;
10
+ }
11
+ return /* @__PURE__ */ jsx(
12
+ MenuItem,
13
+ {
14
+ "data-testid": "sidebar-profile-settings-menu-item",
15
+ href: "/profile",
16
+ onClick: () => {
17
+ onClick == null ? void 0 : onClick();
18
+ },
19
+ children: /* @__PURE__ */ jsxs("div", { className: `flex-col ${styles.container}`, children: [
20
+ /* @__PURE__ */ jsx("span", { children: "Profile Settings" }),
21
+ /* @__PURE__ */ jsx("span", { className: styles.profileEmail, children: jwt == null ? void 0 : jwt.userEmail })
22
+ ] })
23
+ }
15
24
  );
16
25
  };
17
26
  export {
18
- useActionResolverPayload
27
+ ProfileSettingsMenuItem
19
28
  };
20
29
  //# sourceMappingURL=harmony128.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony128.mjs","sources":["../src/features/permissions/hooks/useActionResolverPayload.ts"],"sourcesContent":["import {\n\tfeatureFlagContext,\n\tprojectPermissionsContext,\n\tteamContext,\n} from '@features/permissions/context/ActionsContext'\nimport type { ActionResolverPayload } from '@features/permissions/types'\nimport { useContext, useMemo } from 'react'\n\nexport const useActionResolverPayload = (): ActionResolverPayload => {\n\tconst teamRole = useContext(teamContext)\n\tconst enabledFeatureFlags = useContext(featureFlagContext)\n\tconst { permissions: projectPermissions, projectType } = useContext(projectPermissionsContext)\n\n\treturn useMemo(\n\t\t() =>\n\t\t\t({\n\t\t\t\tenabledFeatureFlags,\n\t\t\t\tteamRole,\n\t\t\t\tprojectPermissions,\n\t\t\t\tprojectType,\n\t\t\t}) satisfies ActionResolverPayload,\n\t\t[enabledFeatureFlags, teamRole, projectPermissions, projectType],\n\t)\n}\n"],"names":[],"mappings":";;AAQO,MAAM,2BAA2B,MAA6B;AAC9D,QAAA,WAAW,WAAW,WAAW;AACjC,QAAA,sBAAsB,WAAW,kBAAkB;AACzD,QAAM,EAAE,aAAa,oBAAoB,YAAY,IAAI,WAAW,yBAAyB;AAEtF,SAAA;AAAA,IACN,OACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF,CAAC,qBAAqB,UAAU,oBAAoB,WAAW;AAAA,EAChE;AACD;"}
1
+ {"version":3,"file":"harmony128.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProfileSettings } from '@utils/user/permissions'\nimport styles from './ProfileSettingsMenuItem.module.css'\n\n/**\n * A menu item component for navigating to the profile settings page.\n * Checks the user's permissions using the Sidebar context and renders\n * nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProfileSettingsMenuItem onClick={() => { }} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileSettingsMenuItem = {\n\tonClick?: () => void\n}\n\nexport const ProfileSettingsMenuItem = ({ onClick }: ProfileSettingsMenuItem) => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProfileSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-profile-settings-menu-item\"\n\t\t\thref=\"/profile\"\n\t\t\tonClick={() => {\n\t\t\t\tonClick?.()\n\t\t\t}}\n\t\t>\n\t\t\t<div className={`flex-col ${styles.container}`}>\n\t\t\t\t<span>Profile Settings</span>\n\t\t\t\t<span className={styles.profileEmail}>{jwt?.userEmail}</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAsBO,MAAM,0BAA0B,CAAC,EAAE,cAAuC;AAC1E,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,yBAAyB,GAAG,GAAG;AAC5B,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAS,MAAM;AACJ;AAAA,MACX;AAAA,MAEA,+BAAC,OAAI,EAAA,WAAW,YAAY,OAAO,SAAS,IAC3C,UAAA;AAAA,QAAA,oBAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,4BACrB,QAAK,EAAA,WAAW,OAAO,cAAe,qCAAK,UAAU,CAAA;AAAA,MAAA,EACvD,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,11 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const hasAny = (seed, ...items) => {
4
- if (!seed) return false;
5
- if (items.length === 0) return false;
6
- const seedArray = Array.isArray(seed) ? seed : [seed];
7
- if (seedArray.length === 0) return false;
8
- return items.some((item) => seedArray.includes(item));
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony110.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const permissions = require("./harmony111.cjs");
7
+ const ProviderMenuItem = () => {
8
+ const { jwt } = useSidebar.useSidebar();
9
+ if (!permissions.canAccessProviderDashboard(jwt)) {
10
+ return null;
11
+ }
12
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/provider", children: "Provider dashboard" });
9
13
  };
10
- exports.hasAny = hasAny;
14
+ exports.ProviderMenuItem = ProviderMenuItem;
11
15
  //# sourceMappingURL=harmony129.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony129.cjs","sources":["../src/features/permissions/utils/hasAny.ts"],"sourcesContent":["export const hasAny = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.some((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":";;AAAa,MAAA,SAAS,CAAmB,SAA8B,UAAe;AACjF,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,KAAK,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACrD;;"}
1
+ {"version":3,"file":"harmony129.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProviderDashboard } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the provider dashboard.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProviderMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const ProviderMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProviderDashboard(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/provider\">Provider dashboard</MenuItem>\n}\n"],"names":["useSidebar","canAccessProviderDashboard","jsx","MenuItem"],"mappings":";;;;;;AAiBO,MAAM,mBAAmB,MAAM;AAC/B,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,2BAA2B,GAAG,GAAG;AAC9B,WAAA;AAAA,EAAA;AAGR,SAAQC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,aAAY,UAAkB,sBAAA;AACrD;;"}
@@ -1,11 +1,15 @@
1
- const hasAny = (seed, ...items) => {
2
- if (!seed) return false;
3
- if (items.length === 0) return false;
4
- const seedArray = Array.isArray(seed) ? seed : [seed];
5
- if (seedArray.length === 0) return false;
6
- return items.some((item) => seedArray.includes(item));
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony110.mjs";
3
+ import { MenuItem } from "@lokalise/louis";
4
+ import { canAccessProviderDashboard } from "./harmony111.mjs";
5
+ const ProviderMenuItem = () => {
6
+ const { jwt } = useSidebar();
7
+ if (!canAccessProviderDashboard(jwt)) {
8
+ return null;
9
+ }
10
+ return /* @__PURE__ */ jsx(MenuItem, { href: "/provider", children: "Provider dashboard" });
7
11
  };
8
12
  export {
9
- hasAny
13
+ ProviderMenuItem
10
14
  };
11
15
  //# sourceMappingURL=harmony129.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony129.mjs","sources":["../src/features/permissions/utils/hasAny.ts"],"sourcesContent":["export const hasAny = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.some((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":"AAAa,MAAA,SAAS,CAAmB,SAA8B,UAAe;AACjF,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,KAAK,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACrD;"}
1
+ {"version":3,"file":"harmony129.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProviderDashboard } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the provider dashboard.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProviderMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const ProviderMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProviderDashboard(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/provider\">Provider dashboard</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,mBAAmB,MAAM;AAC/B,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,2BAA2B,GAAG,GAAG;AAC9B,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,aAAY,UAAkB,sBAAA;AACrD;"}
@@ -1,55 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const urlRegex = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi;
5
- const matchUrl = (input) => input.match(urlRegex) ?? [];
6
- const replaceWithAnchor = (text, pattern, index) => {
7
- const components = text.split(pattern);
8
- if (components.length === 1) {
9
- return text;
10
- }
11
- const result = [];
12
- if (components[0] !== "") {
13
- result.push(components[0]);
14
- }
15
- components.shift();
16
- if (components[components.length - 1] === "") {
17
- components.pop();
18
- }
19
- result.push(
20
- /* @__PURE__ */ jsxRuntime.jsx("a", { href: pattern, target: "_blank", rel: "noreferrer noopener", children: pattern }, pattern + index)
21
- );
22
- result.push(components.join(pattern));
23
- return result.filter((item) => item !== "");
24
- };
25
- const matchUrlsAndReplace = (text) => {
26
- const matchedUrls = matchUrl(text);
27
- if (!(matchedUrls == null ? void 0 : matchedUrls.length)) {
28
- return text;
29
- }
30
- return matchedUrls.reduce((accumulator, pattern, index) => {
31
- if (typeof accumulator === "string") {
32
- return replaceWithAnchor(accumulator, pattern, index);
33
- }
34
- return accumulator.flatMap((item) => {
35
- if (typeof item === "string") {
36
- return replaceWithAnchor(item, pattern, index);
37
- }
38
- return item;
39
- });
40
- }, text);
41
- };
42
- const makeUrlClickable = (text) => {
43
- if (typeof text === "string") {
44
- return matchUrlsAndReplace(text);
45
- }
46
- return text.flatMap((item) => {
47
- if (typeof item === "string") {
48
- return matchUrlsAndReplace(item);
49
- }
50
- return item;
51
- }, text);
52
- };
53
- exports.makeUrlClickable = makeUrlClickable;
54
- exports.matchUrl = matchUrl;
3
+ const permissionTemplateTypes = require("./harmony46.cjs");
4
+ const sharedTypes = require("./harmony50.cjs");
5
+ const apiContracts = require("@lokalise/api-contracts");
6
+ const listPermissionTemplates = apiContracts.buildGetRoute({
7
+ description: "List permission templates for a team",
8
+ requestHeaderSchema: sharedTypes.BASE_API_ENDPOINT_HEADER_SCHEMA,
9
+ requestPathParamsSchema: permissionTemplateTypes.LIST_PERMISSION_TEMPLATES_PATH_PARAMS,
10
+ pathResolver: ({ teamId }) => `/teams/${teamId}/roles`,
11
+ successResponseBodySchema: permissionTemplateTypes.LIST_PERMISSION_TEMPLATES_RESPONSE
12
+ });
13
+ exports.listPermissionTemplates = listPermissionTemplates;
55
14
  //# sourceMappingURL=harmony13.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony13.cjs","sources":["../src/utils/content/url/url.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nconst urlRegex =\n\t/(\\b(https?|):\\/\\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi\n\nexport const matchUrl = (input: string): readonly string[] => input.match(urlRegex) ?? []\n\nconst replaceWithAnchor = (text: string, pattern: string, index: number) => {\n\tconst components = text.split(pattern)\n\t// if there are no matches\n\tif (components.length === 1) {\n\t\treturn text\n\t}\n\n\tconst result = []\n\n\t// empty value in first position means string starts with pattern\n\tif (components[0] !== '') {\n\t\tresult.push(components[0])\n\t}\n\n\tcomponents.shift()\n\n\t// empty value in last position means string ends with pattern\n\tif (components[components.length - 1] === '') {\n\t\tcomponents.pop()\n\t}\n\n\tresult.push(\n\t\t<a key={pattern + index} href={pattern} target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t{pattern}\n\t\t</a>,\n\t)\n\tresult.push(components.join(pattern))\n\n\treturn result.filter((item) => item !== '')\n}\n\nconst matchUrlsAndReplace = (text: string) => {\n\tconst matchedUrls = matchUrl(text)\n\n\tif (!matchedUrls?.length) {\n\t\treturn text\n\t}\n\n\treturn matchedUrls.reduce<string | ReactNode[]>((accumulator, pattern, index) => {\n\t\tif (typeof accumulator === 'string') {\n\t\t\treturn replaceWithAnchor(accumulator, pattern, index)\n\t\t}\n\n\t\treturn accumulator.flatMap((item) => {\n\t\t\tif (typeof item === 'string') {\n\t\t\t\treturn replaceWithAnchor(item, pattern, index)\n\t\t\t}\n\n\t\t\treturn item\n\t\t})\n\t}, text)\n}\n\nexport const makeUrlClickable = (text: string | ReactNode[]) => {\n\tif (typeof text === 'string') {\n\t\treturn matchUrlsAndReplace(text)\n\t}\n\n\treturn text.flatMap((item) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn matchUrlsAndReplace(item)\n\t\t}\n\n\t\treturn item\n\t}, text)\n}\n"],"names":["jsx"],"mappings":";;;AAEA,MAAM,WACL;AAEM,MAAM,WAAW,CAAC,UAAqC,MAAM,MAAM,QAAQ,KAAK,CAAA;AAEvF,MAAM,oBAAoB,CAAC,MAAc,SAAiB,UAAkB;AACrE,QAAA,aAAa,KAAK,MAAM,OAAO;AAEjC,MAAA,WAAW,WAAW,GAAG;AACrB,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,CAAC;AAGZ,MAAA,WAAW,CAAC,MAAM,IAAI;AAClB,WAAA,KAAK,WAAW,CAAC,CAAC;AAAA,EAAA;AAG1B,aAAW,MAAM;AAGjB,MAAI,WAAW,WAAW,SAAS,CAAC,MAAM,IAAI;AAC7C,eAAW,IAAI;AAAA,EAAA;AAGT,SAAA;AAAA,IACNA,2BAAAA,IAAC,KAAwB,EAAA,MAAM,SAAS,QAAO,UAAS,KAAI,uBAC1D,UADM,QAAA,GAAA,UAAU,KAElB;AAAA,EACD;AACA,SAAO,KAAK,WAAW,KAAK,OAAO,CAAC;AAEpC,SAAO,OAAO,OAAO,CAAC,SAAS,SAAS,EAAE;AAC3C;AAEA,MAAM,sBAAsB,CAAC,SAAiB;AACvC,QAAA,cAAc,SAAS,IAAI;AAE7B,MAAA,EAAC,2CAAa,SAAQ;AAClB,WAAA;AAAA,EAAA;AAGR,SAAO,YAAY,OAA6B,CAAC,aAAa,SAAS,UAAU;AAC5E,QAAA,OAAO,gBAAgB,UAAU;AAC7B,aAAA,kBAAkB,aAAa,SAAS,KAAK;AAAA,IAAA;AAG9C,WAAA,YAAY,QAAQ,CAAC,SAAS;AAChC,UAAA,OAAO,SAAS,UAAU;AACtB,eAAA,kBAAkB,MAAM,SAAS,KAAK;AAAA,MAAA;AAGvC,aAAA;AAAA,IAAA,CACP;AAAA,KACC,IAAI;AACR;AAEa,MAAA,mBAAmB,CAAC,SAA+B;AAC3D,MAAA,OAAO,SAAS,UAAU;AAC7B,WAAO,oBAAoB,IAAI;AAAA,EAAA;AAGzB,SAAA,KAAK,QAAQ,CAAC,SAAS;AACzB,QAAA,OAAO,SAAS,UAAU;AAC7B,aAAO,oBAAoB,IAAI;AAAA,IAAA;AAGzB,WAAA;AAAA,KACL,IAAI;AACR;;;"}
1
+ {"version":3,"file":"harmony13.cjs","sources":["../src/features/publicApi/permissionTemplates.ts"],"sourcesContent":["import {\n\tLIST_PERMISSION_TEMPLATES_PATH_PARAMS,\n\tLIST_PERMISSION_TEMPLATES_RESPONSE,\n} from '@features/publicApi/types/permissionTemplateTypes'\nimport { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { buildGetRoute } from '@lokalise/api-contracts'\n\n/**\n * Public API router definition for retrieving a list of permission templates for a team.\n */\nexport const listPermissionTemplates = buildGetRoute({\n\tdescription: 'List permission templates for a team',\n\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\n\trequestPathParamsSchema: LIST_PERMISSION_TEMPLATES_PATH_PARAMS,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/roles`,\n\n\tsuccessResponseBodySchema: LIST_PERMISSION_TEMPLATES_RESPONSE,\n})\n"],"names":["buildGetRoute","BASE_API_ENDPOINT_HEADER_SCHEMA","LIST_PERMISSION_TEMPLATES_PATH_PARAMS","LIST_PERMISSION_TEMPLATES_RESPONSE"],"mappings":";;;;;AAUO,MAAM,0BAA0BA,aAAAA,cAAc;AAAA,EACpD,aAAa;AAAA,EAEb,qBAAqBC,YAAA;AAAA,EAErB,yBAAyBC,wBAAA;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAE9C,2BAA2BC,wBAAAA;AAC5B,CAAC;;"}
@@ -1,55 +1,14 @@
1
- import { jsx } from "react/jsx-runtime";
2
- const urlRegex = /(\b(https?|):\/\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi;
3
- const matchUrl = (input) => input.match(urlRegex) ?? [];
4
- const replaceWithAnchor = (text, pattern, index) => {
5
- const components = text.split(pattern);
6
- if (components.length === 1) {
7
- return text;
8
- }
9
- const result = [];
10
- if (components[0] !== "") {
11
- result.push(components[0]);
12
- }
13
- components.shift();
14
- if (components[components.length - 1] === "") {
15
- components.pop();
16
- }
17
- result.push(
18
- /* @__PURE__ */ jsx("a", { href: pattern, target: "_blank", rel: "noreferrer noopener", children: pattern }, pattern + index)
19
- );
20
- result.push(components.join(pattern));
21
- return result.filter((item) => item !== "");
22
- };
23
- const matchUrlsAndReplace = (text) => {
24
- const matchedUrls = matchUrl(text);
25
- if (!(matchedUrls == null ? void 0 : matchedUrls.length)) {
26
- return text;
27
- }
28
- return matchedUrls.reduce((accumulator, pattern, index) => {
29
- if (typeof accumulator === "string") {
30
- return replaceWithAnchor(accumulator, pattern, index);
31
- }
32
- return accumulator.flatMap((item) => {
33
- if (typeof item === "string") {
34
- return replaceWithAnchor(item, pattern, index);
35
- }
36
- return item;
37
- });
38
- }, text);
39
- };
40
- const makeUrlClickable = (text) => {
41
- if (typeof text === "string") {
42
- return matchUrlsAndReplace(text);
43
- }
44
- return text.flatMap((item) => {
45
- if (typeof item === "string") {
46
- return matchUrlsAndReplace(item);
47
- }
48
- return item;
49
- }, text);
50
- };
1
+ import { LIST_PERMISSION_TEMPLATES_RESPONSE, LIST_PERMISSION_TEMPLATES_PATH_PARAMS } from "./harmony46.mjs";
2
+ import { BASE_API_ENDPOINT_HEADER_SCHEMA } from "./harmony50.mjs";
3
+ import { buildGetRoute } from "@lokalise/api-contracts";
4
+ const listPermissionTemplates = buildGetRoute({
5
+ description: "List permission templates for a team",
6
+ requestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,
7
+ requestPathParamsSchema: LIST_PERMISSION_TEMPLATES_PATH_PARAMS,
8
+ pathResolver: ({ teamId }) => `/teams/${teamId}/roles`,
9
+ successResponseBodySchema: LIST_PERMISSION_TEMPLATES_RESPONSE
10
+ });
51
11
  export {
52
- makeUrlClickable,
53
- matchUrl
12
+ listPermissionTemplates
54
13
  };
55
14
  //# sourceMappingURL=harmony13.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony13.mjs","sources":["../src/utils/content/url/url.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nconst urlRegex =\n\t/(\\b(https?|):\\/\\/[-a-zA-Zа-яА-Я0-9+&@#/%?=~_|!:,.;]*[-a-zA-Zа-яА-Я0-9+&@#/%=~_|])/gi\n\nexport const matchUrl = (input: string): readonly string[] => input.match(urlRegex) ?? []\n\nconst replaceWithAnchor = (text: string, pattern: string, index: number) => {\n\tconst components = text.split(pattern)\n\t// if there are no matches\n\tif (components.length === 1) {\n\t\treturn text\n\t}\n\n\tconst result = []\n\n\t// empty value in first position means string starts with pattern\n\tif (components[0] !== '') {\n\t\tresult.push(components[0])\n\t}\n\n\tcomponents.shift()\n\n\t// empty value in last position means string ends with pattern\n\tif (components[components.length - 1] === '') {\n\t\tcomponents.pop()\n\t}\n\n\tresult.push(\n\t\t<a key={pattern + index} href={pattern} target=\"_blank\" rel=\"noreferrer noopener\">\n\t\t\t{pattern}\n\t\t</a>,\n\t)\n\tresult.push(components.join(pattern))\n\n\treturn result.filter((item) => item !== '')\n}\n\nconst matchUrlsAndReplace = (text: string) => {\n\tconst matchedUrls = matchUrl(text)\n\n\tif (!matchedUrls?.length) {\n\t\treturn text\n\t}\n\n\treturn matchedUrls.reduce<string | ReactNode[]>((accumulator, pattern, index) => {\n\t\tif (typeof accumulator === 'string') {\n\t\t\treturn replaceWithAnchor(accumulator, pattern, index)\n\t\t}\n\n\t\treturn accumulator.flatMap((item) => {\n\t\t\tif (typeof item === 'string') {\n\t\t\t\treturn replaceWithAnchor(item, pattern, index)\n\t\t\t}\n\n\t\t\treturn item\n\t\t})\n\t}, text)\n}\n\nexport const makeUrlClickable = (text: string | ReactNode[]) => {\n\tif (typeof text === 'string') {\n\t\treturn matchUrlsAndReplace(text)\n\t}\n\n\treturn text.flatMap((item) => {\n\t\tif (typeof item === 'string') {\n\t\t\treturn matchUrlsAndReplace(item)\n\t\t}\n\n\t\treturn item\n\t}, text)\n}\n"],"names":[],"mappings":";AAEA,MAAM,WACL;AAEM,MAAM,WAAW,CAAC,UAAqC,MAAM,MAAM,QAAQ,KAAK,CAAA;AAEvF,MAAM,oBAAoB,CAAC,MAAc,SAAiB,UAAkB;AACrE,QAAA,aAAa,KAAK,MAAM,OAAO;AAEjC,MAAA,WAAW,WAAW,GAAG;AACrB,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,CAAC;AAGZ,MAAA,WAAW,CAAC,MAAM,IAAI;AAClB,WAAA,KAAK,WAAW,CAAC,CAAC;AAAA,EAAA;AAG1B,aAAW,MAAM;AAGjB,MAAI,WAAW,WAAW,SAAS,CAAC,MAAM,IAAI;AAC7C,eAAW,IAAI;AAAA,EAAA;AAGT,SAAA;AAAA,IACN,oBAAC,KAAwB,EAAA,MAAM,SAAS,QAAO,UAAS,KAAI,uBAC1D,UADM,QAAA,GAAA,UAAU,KAElB;AAAA,EACD;AACA,SAAO,KAAK,WAAW,KAAK,OAAO,CAAC;AAEpC,SAAO,OAAO,OAAO,CAAC,SAAS,SAAS,EAAE;AAC3C;AAEA,MAAM,sBAAsB,CAAC,SAAiB;AACvC,QAAA,cAAc,SAAS,IAAI;AAE7B,MAAA,EAAC,2CAAa,SAAQ;AAClB,WAAA;AAAA,EAAA;AAGR,SAAO,YAAY,OAA6B,CAAC,aAAa,SAAS,UAAU;AAC5E,QAAA,OAAO,gBAAgB,UAAU;AAC7B,aAAA,kBAAkB,aAAa,SAAS,KAAK;AAAA,IAAA;AAG9C,WAAA,YAAY,QAAQ,CAAC,SAAS;AAChC,UAAA,OAAO,SAAS,UAAU;AACtB,eAAA,kBAAkB,MAAM,SAAS,KAAK;AAAA,MAAA;AAGvC,aAAA;AAAA,IAAA,CACP;AAAA,KACC,IAAI;AACR;AAEa,MAAA,mBAAmB,CAAC,SAA+B;AAC3D,MAAA,OAAO,SAAS,UAAU;AAC7B,WAAO,oBAAoB,IAAI;AAAA,EAAA;AAGzB,SAAA,KAAK,QAAQ,CAAC,SAAS;AACzB,QAAA,OAAO,SAAS,UAAU;AAC7B,aAAO,oBAAoB,IAAI;AAAA,IAAA;AAGzB,WAAA;AAAA,KACL,IAAI;AACR;"}
1
+ {"version":3,"file":"harmony13.mjs","sources":["../src/features/publicApi/permissionTemplates.ts"],"sourcesContent":["import {\n\tLIST_PERMISSION_TEMPLATES_PATH_PARAMS,\n\tLIST_PERMISSION_TEMPLATES_RESPONSE,\n} from '@features/publicApi/types/permissionTemplateTypes'\nimport { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { buildGetRoute } from '@lokalise/api-contracts'\n\n/**\n * Public API router definition for retrieving a list of permission templates for a team.\n */\nexport const listPermissionTemplates = buildGetRoute({\n\tdescription: 'List permission templates for a team',\n\n\trequestHeaderSchema: BASE_API_ENDPOINT_HEADER_SCHEMA,\n\n\trequestPathParamsSchema: LIST_PERMISSION_TEMPLATES_PATH_PARAMS,\n\tpathResolver: ({ teamId }) => `/teams/${teamId}/roles`,\n\n\tsuccessResponseBodySchema: LIST_PERMISSION_TEMPLATES_RESPONSE,\n})\n"],"names":[],"mappings":";;;AAUO,MAAM,0BAA0B,cAAc;AAAA,EACpD,aAAa;AAAA,EAEb,qBAAqB;AAAA,EAErB,yBAAyB;AAAA,EACzB,cAAc,CAAC,EAAE,OAAO,MAAM,UAAU,MAAM;AAAA,EAE9C,2BAA2B;AAC5B,CAAC;"}
@@ -1,11 +1,41 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const has = (seed, ...items) => {
4
- if (!seed) return false;
5
- if (items.length === 0) return false;
6
- const seedArray = Array.isArray(seed) ? seed : [seed];
7
- if (seedArray.length === 0) return false;
8
- return items.every((item) => seedArray.includes(item));
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const useSidebar = require("./harmony110.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const plan = require("./harmony55.cjs");
7
+ const TeamMenuItem_module = require("./harmony150.cjs");
8
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
9
+ const {
10
+ jwt,
11
+ data: { currentTeam }
12
+ } = useSidebar.useSidebar();
13
+ const contextTeam = team ?? currentTeam.result;
14
+ if (!contextTeam || typeof (jwt == null ? void 0 : jwt.planId) !== "number" || !Number.isFinite(jwt.planId)) {
15
+ return null;
16
+ }
17
+ const planId = jwt.planId;
18
+ const planLabel = plan.isFreePlan(planId) ? "Free" : plan.isTrialPlan(planId) ? "Trial" : void 0;
19
+ const WrapperNode = onClick ? louis.MenuItem : "div";
20
+ const testId = onClick ? "sidebar-clickable-team-menu-item" : "sidebar-team-menu-item";
21
+ return /* @__PURE__ */ jsxRuntime.jsxs(
22
+ WrapperNode,
23
+ {
24
+ "data-testid": testId,
25
+ className: TeamMenuItem_module.default.wrapper,
26
+ ...onClick && { onClick: () => onClick(contextTeam) },
27
+ children: [
28
+ contextTeam.logoUrl ? /* @__PURE__ */ jsxRuntime.jsx("img", { className: TeamMenuItem_module.default.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${TeamMenuItem_module.default.defaultProfileImage}`, children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" }) }),
29
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.teamDetails, children: [
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.planWrapper, children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx("span", { title: contextTeam.name, className: TeamMenuItem_module.default.teamName, children: contextTeam.name }),
32
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.teamName, children: planLabel })
33
+ ] }),
34
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.membership, children: contextTeam.role })
35
+ ] })
36
+ ]
37
+ }
38
+ );
9
39
  };
10
- exports.has = has;
40
+ exports.TeamMenuItem = TeamMenuItem;
11
41
  //# sourceMappingURL=harmony130.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.cjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":";;AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;;"}
1
+ {"version":3,"file":"harmony130.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst contextTeam = team ?? currentTeam.result\n\n\tif (!contextTeam || typeof jwt?.planId !== 'number' || !Number.isFinite(jwt.planId)) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\tconst testId = onClick ? 'sidebar-clickable-team-menu-item' : 'sidebar-team-menu-item'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid={testId}\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":["useSidebar","isFreePlan","isTrialPlan","MenuItem","jsxs","styles","jsx","UserIcon"],"mappings":";;;;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AAC9E,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjBA,sBAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAEpC,MAAA,CAAC,eAAe,QAAO,2BAAK,YAAW,YAAY,CAAC,OAAO,SAAS,IAAI,MAAM,GAAG;AAC7E,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,IAAI;AAEb,QAAA,YAAYC,gBAAW,MAAM,IAAI,SAASC,iBAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAUC,MAAAA,WAAW;AAEnC,QAAA,SAAS,UAAU,qCAAqC;AAG7D,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAa;AAAA,MACb,WAAWC,oBAAO,QAAA;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,yCACX,OAAI,EAAA,WAAWA,oBAAAA,QAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9EC,+BAAA,QAAA,EAAK,WAAW,GAAGD,oBAAO,QAAA,mBAAmB,IAC7C,UAACC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEAH,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,UAACD,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,YAACC,2BAAAA,IAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAWD,oBAAAA,QAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiBC,2BAAAA,IAAC,UAAK,WAAWD,4BAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,yCACC,QAAK,EAAA,WAAWA,oBAAAA,QAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,11 +1,41 @@
1
- const has = (seed, ...items) => {
2
- if (!seed) return false;
3
- if (items.length === 0) return false;
4
- const seedArray = Array.isArray(seed) ? seed : [seed];
5
- if (seedArray.length === 0) return false;
6
- return items.every((item) => seedArray.includes(item));
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony110.mjs";
3
+ import { MenuItem, UserIcon } from "@lokalise/louis";
4
+ import { isFreePlan, isTrialPlan } from "./harmony55.mjs";
5
+ import styles from "./harmony150.mjs";
6
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
7
+ const {
8
+ jwt,
9
+ data: { currentTeam }
10
+ } = useSidebar();
11
+ const contextTeam = team ?? currentTeam.result;
12
+ if (!contextTeam || typeof (jwt == null ? void 0 : jwt.planId) !== "number" || !Number.isFinite(jwt.planId)) {
13
+ return null;
14
+ }
15
+ const planId = jwt.planId;
16
+ const planLabel = isFreePlan(planId) ? "Free" : isTrialPlan(planId) ? "Trial" : void 0;
17
+ const WrapperNode = onClick ? MenuItem : "div";
18
+ const testId = onClick ? "sidebar-clickable-team-menu-item" : "sidebar-team-menu-item";
19
+ return /* @__PURE__ */ jsxs(
20
+ WrapperNode,
21
+ {
22
+ "data-testid": testId,
23
+ className: styles.wrapper,
24
+ ...onClick && { onClick: () => onClick(contextTeam) },
25
+ children: [
26
+ contextTeam.logoUrl ? /* @__PURE__ */ jsx("img", { className: styles.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsx("span", { className: `${styles.defaultProfileImage}`, children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" }) }),
27
+ /* @__PURE__ */ jsxs("div", { className: styles.teamDetails, children: [
28
+ /* @__PURE__ */ jsxs("div", { className: styles.planWrapper, children: [
29
+ /* @__PURE__ */ jsx("span", { title: contextTeam.name, className: styles.teamName, children: contextTeam.name }),
30
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsx("span", { className: styles.teamName, children: planLabel })
31
+ ] }),
32
+ /* @__PURE__ */ jsx("span", { className: styles.membership, children: contextTeam.role })
33
+ ] })
34
+ ]
35
+ }
36
+ );
7
37
  };
8
38
  export {
9
- has
39
+ TeamMenuItem
10
40
  };
11
41
  //# sourceMappingURL=harmony130.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony130.mjs","sources":["../src/features/permissions/utils/has.ts"],"sourcesContent":["export const has = <T extends string>(seed: T | T[] | undefined, ...items: T[]) => {\n\tif (!seed) return false\n\tif (items.length === 0) return false\n\tconst seedArray = Array.isArray(seed) ? seed : [seed]\n\tif (seedArray.length === 0) return false\n\treturn items.every((item) => seedArray.includes(item))\n}\n"],"names":[],"mappings":"AAAa,MAAA,MAAM,CAAmB,SAA8B,UAAe;AAC9E,MAAA,CAAC,KAAa,QAAA;AACd,MAAA,MAAM,WAAW,EAAU,QAAA;AAC/B,QAAM,YAAY,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC,IAAI;AAChD,MAAA,UAAU,WAAW,EAAU,QAAA;AACnC,SAAO,MAAM,MAAM,CAAC,SAAS,UAAU,SAAS,IAAI,CAAC;AACtD;"}
1
+ {"version":3,"file":"harmony130.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst contextTeam = team ?? currentTeam.result\n\n\tif (!contextTeam || typeof jwt?.planId !== 'number' || !Number.isFinite(jwt.planId)) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\tconst testId = onClick ? 'sidebar-clickable-team-menu-item' : 'sidebar-team-menu-item'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid={testId}\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AAC9E,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjB,WAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAEpC,MAAA,CAAC,eAAe,QAAO,2BAAK,YAAW,YAAY,CAAC,OAAO,SAAS,IAAI,MAAM,GAAG;AAC7E,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,IAAI;AAEb,QAAA,YAAY,WAAW,MAAM,IAAI,SAAS,YAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAU,WAAW;AAEnC,QAAA,SAAS,UAAU,qCAAqC;AAG7D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAa;AAAA,MACb,WAAW,OAAO;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,8BACX,OAAI,EAAA,WAAW,OAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9E,oBAAA,QAAA,EAAK,WAAW,GAAG,OAAO,mBAAmB,IAC7C,UAAC,oBAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEA,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,YAAC,oBAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAW,OAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiB,oBAAC,UAAK,WAAW,OAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,8BACC,QAAK,EAAA,WAAW,OAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}