@lokalise/harmony 2.0.7 → 2.0.8

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 (587) hide show
  1. package/dist/harmony.cjs +135 -135
  2. package/dist/harmony.mjs +79 -79
  3. package/dist/harmony105.cjs +2 -2
  4. package/dist/harmony105.mjs +2 -2
  5. package/dist/harmony106.cjs +1 -1
  6. package/dist/harmony106.mjs +1 -1
  7. package/dist/harmony108.cjs +1 -1
  8. package/dist/harmony108.mjs +1 -1
  9. package/dist/harmony109.cjs +12 -12
  10. package/dist/harmony109.mjs +12 -12
  11. package/dist/harmony11.cjs +30 -55
  12. package/dist/harmony11.cjs.map +1 -1
  13. package/dist/harmony11.mjs +30 -55
  14. package/dist/harmony11.mjs.map +1 -1
  15. package/dist/harmony111.cjs +1 -1
  16. package/dist/harmony111.mjs +1 -1
  17. package/dist/harmony112.cjs +1 -1
  18. package/dist/harmony112.mjs +1 -1
  19. package/dist/harmony113.cjs +1 -1
  20. package/dist/harmony113.mjs +1 -1
  21. package/dist/harmony115.cjs +165 -11
  22. package/dist/harmony115.cjs.map +1 -1
  23. package/dist/harmony115.mjs +165 -11
  24. package/dist/harmony115.mjs.map +1 -1
  25. package/dist/harmony116.cjs +44 -12
  26. package/dist/harmony116.cjs.map +1 -1
  27. package/dist/harmony116.mjs +43 -11
  28. package/dist/harmony116.mjs.map +1 -1
  29. package/dist/harmony117.cjs +10 -9
  30. package/dist/harmony117.cjs.map +1 -1
  31. package/dist/harmony117.mjs +12 -11
  32. package/dist/harmony117.mjs.map +1 -1
  33. package/dist/harmony118.cjs +11 -20
  34. package/dist/harmony118.cjs.map +1 -1
  35. package/dist/harmony118.mjs +11 -20
  36. package/dist/harmony118.mjs.map +1 -1
  37. package/dist/harmony119.cjs +11 -166
  38. package/dist/harmony119.cjs.map +1 -1
  39. package/dist/harmony119.mjs +11 -166
  40. package/dist/harmony119.mjs.map +1 -1
  41. package/dist/harmony12.cjs +22 -30
  42. package/dist/harmony12.cjs.map +1 -1
  43. package/dist/harmony12.mjs +22 -30
  44. package/dist/harmony12.mjs.map +1 -1
  45. package/dist/harmony120.cjs +21 -44
  46. package/dist/harmony120.cjs.map +1 -1
  47. package/dist/harmony120.mjs +20 -43
  48. package/dist/harmony120.mjs.map +1 -1
  49. package/dist/harmony122.cjs +7 -20
  50. package/dist/harmony122.cjs.map +1 -1
  51. package/dist/harmony122.mjs +7 -20
  52. package/dist/harmony122.mjs.map +1 -1
  53. package/dist/harmony123.cjs +17 -9
  54. package/dist/harmony123.cjs.map +1 -1
  55. package/dist/harmony123.mjs +16 -8
  56. package/dist/harmony123.mjs.map +1 -1
  57. package/dist/harmony124.cjs +7 -11
  58. package/dist/harmony124.cjs.map +1 -1
  59. package/dist/harmony124.mjs +7 -11
  60. package/dist/harmony124.mjs.map +1 -1
  61. package/dist/harmony125.cjs +7 -14
  62. package/dist/harmony125.cjs.map +1 -1
  63. package/dist/harmony125.mjs +7 -14
  64. package/dist/harmony125.mjs.map +1 -1
  65. package/dist/harmony126.cjs +14 -18
  66. package/dist/harmony126.cjs.map +1 -1
  67. package/dist/harmony126.mjs +14 -18
  68. package/dist/harmony126.mjs.map +1 -1
  69. package/dist/harmony127.cjs +20 -10
  70. package/dist/harmony127.cjs.map +1 -1
  71. package/dist/harmony127.mjs +20 -10
  72. package/dist/harmony127.mjs.map +1 -1
  73. package/dist/harmony128.cjs +9 -26
  74. package/dist/harmony128.cjs.map +1 -1
  75. package/dist/harmony128.mjs +8 -25
  76. package/dist/harmony128.mjs.map +1 -1
  77. package/dist/harmony129.cjs +4 -4
  78. package/dist/harmony129.cjs.map +1 -1
  79. package/dist/harmony129.mjs +5 -5
  80. package/dist/harmony129.mjs.map +1 -1
  81. package/dist/harmony13.cjs +52 -11
  82. package/dist/harmony13.cjs.map +1 -1
  83. package/dist/harmony13.mjs +52 -11
  84. package/dist/harmony13.mjs.map +1 -1
  85. package/dist/harmony130.cjs +9 -32
  86. package/dist/harmony130.cjs.map +1 -1
  87. package/dist/harmony130.mjs +11 -34
  88. package/dist/harmony130.mjs.map +1 -1
  89. package/dist/harmony131.cjs +11 -4
  90. package/dist/harmony131.cjs.map +1 -1
  91. package/dist/harmony131.mjs +14 -7
  92. package/dist/harmony131.mjs.map +1 -1
  93. package/dist/harmony132.cjs +8 -20
  94. package/dist/harmony132.cjs.map +1 -1
  95. package/dist/harmony132.mjs +9 -21
  96. package/dist/harmony132.mjs.map +1 -1
  97. package/dist/harmony133.cjs +15 -25
  98. package/dist/harmony133.cjs.map +1 -1
  99. package/dist/harmony133.mjs +17 -27
  100. package/dist/harmony133.mjs.map +1 -1
  101. package/dist/harmony134.cjs +12 -21
  102. package/dist/harmony134.cjs.map +1 -1
  103. package/dist/harmony134.mjs +11 -20
  104. package/dist/harmony134.mjs.map +1 -1
  105. package/dist/harmony135.cjs +32 -15
  106. package/dist/harmony135.cjs.map +1 -1
  107. package/dist/harmony135.mjs +34 -17
  108. package/dist/harmony135.mjs.map +1 -1
  109. package/dist/harmony136.cjs +12 -6
  110. package/dist/harmony136.cjs.map +1 -1
  111. package/dist/harmony136.mjs +11 -5
  112. package/dist/harmony136.mjs.map +1 -1
  113. package/dist/harmony137.cjs +22 -15
  114. package/dist/harmony137.cjs.map +1 -1
  115. package/dist/harmony137.mjs +21 -14
  116. package/dist/harmony137.mjs.map +1 -1
  117. package/dist/harmony138.cjs +36 -7
  118. package/dist/harmony138.cjs.map +1 -1
  119. package/dist/harmony138.mjs +36 -7
  120. package/dist/harmony138.mjs.map +1 -1
  121. package/dist/harmony139.cjs +21 -17
  122. package/dist/harmony139.cjs.map +1 -1
  123. package/dist/harmony139.mjs +20 -16
  124. package/dist/harmony139.mjs.map +1 -1
  125. package/dist/harmony14.cjs +9 -55
  126. package/dist/harmony14.cjs.map +1 -1
  127. package/dist/harmony14.mjs +9 -55
  128. package/dist/harmony14.mjs.map +1 -1
  129. package/dist/harmony140.cjs +20 -7
  130. package/dist/harmony140.cjs.map +1 -1
  131. package/dist/harmony140.mjs +20 -7
  132. package/dist/harmony140.mjs.map +1 -1
  133. package/dist/harmony141.cjs +6 -8
  134. package/dist/harmony141.cjs.map +1 -1
  135. package/dist/harmony141.mjs +5 -7
  136. package/dist/harmony141.mjs.map +1 -1
  137. package/dist/harmony142.cjs +15 -15
  138. package/dist/harmony142.cjs.map +1 -1
  139. package/dist/harmony142.mjs +14 -14
  140. package/dist/harmony142.mjs.map +1 -1
  141. package/dist/harmony143.cjs +1 -1
  142. package/dist/harmony143.mjs +1 -1
  143. package/dist/harmony145.cjs +2 -2
  144. package/dist/harmony145.mjs +2 -2
  145. package/dist/harmony146.cjs +2 -2
  146. package/dist/harmony146.mjs +2 -2
  147. package/dist/harmony147.cjs +4 -10
  148. package/dist/harmony147.cjs.map +1 -1
  149. package/dist/harmony147.mjs +3 -9
  150. package/dist/harmony147.mjs.map +1 -1
  151. package/dist/harmony148.cjs +4 -7
  152. package/dist/harmony148.cjs.map +1 -1
  153. package/dist/harmony148.mjs +3 -6
  154. package/dist/harmony148.mjs.map +1 -1
  155. package/dist/harmony149.cjs +4 -10
  156. package/dist/harmony149.cjs.map +1 -1
  157. package/dist/harmony149.mjs +3 -9
  158. package/dist/harmony149.mjs.map +1 -1
  159. package/dist/harmony15.cjs +5 -30
  160. package/dist/harmony15.cjs.map +1 -1
  161. package/dist/harmony15.mjs +5 -30
  162. package/dist/harmony15.mjs.map +1 -1
  163. package/dist/harmony150.cjs +15 -25
  164. package/dist/harmony150.cjs.map +1 -1
  165. package/dist/harmony150.mjs +14 -24
  166. package/dist/harmony150.mjs.map +1 -1
  167. package/dist/harmony151.cjs +15 -7
  168. package/dist/harmony151.cjs.map +1 -1
  169. package/dist/harmony151.mjs +14 -6
  170. package/dist/harmony151.mjs.map +1 -1
  171. package/dist/harmony152.cjs +4 -13
  172. package/dist/harmony152.cjs.map +1 -1
  173. package/dist/harmony152.mjs +3 -12
  174. package/dist/harmony152.mjs.map +1 -1
  175. package/dist/harmony153.cjs +97 -7
  176. package/dist/harmony153.cjs.map +1 -1
  177. package/dist/harmony153.mjs +96 -6
  178. package/dist/harmony153.mjs.map +1 -1
  179. package/dist/harmony154.cjs +11 -94
  180. package/dist/harmony154.cjs.map +1 -1
  181. package/dist/harmony154.mjs +11 -94
  182. package/dist/harmony154.mjs.map +1 -1
  183. package/dist/harmony155.cjs +13 -12
  184. package/dist/harmony155.cjs.map +1 -1
  185. package/dist/harmony155.mjs +13 -12
  186. package/dist/harmony155.mjs.map +1 -1
  187. package/dist/harmony156.cjs +35 -13
  188. package/dist/harmony156.cjs.map +1 -1
  189. package/dist/harmony156.mjs +35 -13
  190. package/dist/harmony156.mjs.map +1 -1
  191. package/dist/harmony157.cjs +24 -32
  192. package/dist/harmony157.cjs.map +1 -1
  193. package/dist/harmony157.mjs +24 -32
  194. package/dist/harmony157.mjs.map +1 -1
  195. package/dist/harmony158.cjs +10 -29
  196. package/dist/harmony158.cjs.map +1 -1
  197. package/dist/harmony158.mjs +9 -28
  198. package/dist/harmony158.mjs.map +1 -1
  199. package/dist/harmony159.cjs +6 -10
  200. package/dist/harmony159.cjs.map +1 -1
  201. package/dist/harmony159.mjs +5 -9
  202. package/dist/harmony159.mjs.map +1 -1
  203. package/dist/harmony16.cjs +15 -18
  204. package/dist/harmony16.cjs.map +1 -1
  205. package/dist/harmony16.mjs +15 -18
  206. package/dist/harmony16.mjs.map +1 -1
  207. package/dist/harmony160.cjs +10 -4
  208. package/dist/harmony160.cjs.map +1 -1
  209. package/dist/harmony160.mjs +9 -3
  210. package/dist/harmony160.mjs.map +1 -1
  211. package/dist/harmony161.cjs +25 -4
  212. package/dist/harmony161.cjs.map +1 -1
  213. package/dist/harmony161.mjs +24 -3
  214. package/dist/harmony161.mjs.map +1 -1
  215. package/dist/harmony162.cjs +7 -4
  216. package/dist/harmony162.cjs.map +1 -1
  217. package/dist/harmony162.mjs +6 -3
  218. package/dist/harmony162.mjs.map +1 -1
  219. package/dist/harmony163.cjs +13 -15
  220. package/dist/harmony163.cjs.map +1 -1
  221. package/dist/harmony163.mjs +12 -14
  222. package/dist/harmony163.mjs.map +1 -1
  223. package/dist/harmony164.cjs +7 -15
  224. package/dist/harmony164.cjs.map +1 -1
  225. package/dist/harmony164.mjs +6 -14
  226. package/dist/harmony164.mjs.map +1 -1
  227. package/dist/harmony165.cjs +32 -3
  228. package/dist/harmony165.cjs.map +1 -1
  229. package/dist/harmony165.mjs +32 -3
  230. package/dist/harmony165.mjs.map +1 -1
  231. package/dist/harmony166.cjs +10 -13
  232. package/dist/harmony166.cjs.map +1 -1
  233. package/dist/harmony166.mjs +10 -13
  234. package/dist/harmony166.mjs.map +1 -1
  235. package/dist/harmony167.cjs +12 -14
  236. package/dist/harmony167.cjs.map +1 -1
  237. package/dist/harmony167.mjs +12 -14
  238. package/dist/harmony167.mjs.map +1 -1
  239. package/dist/harmony168.cjs +13 -14
  240. package/dist/harmony168.cjs.map +1 -1
  241. package/dist/harmony168.mjs +13 -14
  242. package/dist/harmony168.mjs.map +1 -1
  243. package/dist/harmony169.cjs +15 -10
  244. package/dist/harmony169.cjs.map +1 -1
  245. package/dist/harmony169.mjs +15 -10
  246. package/dist/harmony169.mjs.map +1 -1
  247. package/dist/harmony17.cjs +32 -28
  248. package/dist/harmony17.cjs.map +1 -1
  249. package/dist/harmony17.mjs +32 -28
  250. package/dist/harmony17.mjs.map +1 -1
  251. package/dist/harmony170.cjs +10 -15
  252. package/dist/harmony170.cjs.map +1 -1
  253. package/dist/harmony170.mjs +10 -15
  254. package/dist/harmony170.mjs.map +1 -1
  255. package/dist/harmony171.cjs +13 -18
  256. package/dist/harmony171.cjs.map +1 -1
  257. package/dist/harmony171.mjs +13 -18
  258. package/dist/harmony171.mjs.map +1 -1
  259. package/dist/harmony172.cjs +19 -10
  260. package/dist/harmony172.cjs.map +1 -1
  261. package/dist/harmony172.mjs +19 -10
  262. package/dist/harmony172.mjs.map +1 -1
  263. package/dist/harmony173.cjs +12 -32
  264. package/dist/harmony173.cjs.map +1 -1
  265. package/dist/harmony173.mjs +12 -32
  266. package/dist/harmony173.mjs.map +1 -1
  267. package/dist/harmony174.cjs +4 -6
  268. package/dist/harmony174.cjs.map +1 -1
  269. package/dist/harmony174.mjs +4 -6
  270. package/dist/harmony174.mjs.map +1 -1
  271. package/dist/harmony175.cjs +5 -11
  272. package/dist/harmony175.cjs.map +1 -1
  273. package/dist/harmony175.mjs +5 -11
  274. package/dist/harmony175.mjs.map +1 -1
  275. package/dist/harmony176.cjs +11 -31
  276. package/dist/harmony176.cjs.map +1 -1
  277. package/dist/harmony176.mjs +11 -31
  278. package/dist/harmony176.mjs.map +1 -1
  279. package/dist/harmony177.cjs +28 -10
  280. package/dist/harmony177.cjs.map +1 -1
  281. package/dist/harmony177.mjs +28 -10
  282. package/dist/harmony177.mjs.map +1 -1
  283. package/dist/harmony178.cjs +14 -4
  284. package/dist/harmony178.cjs.map +1 -1
  285. package/dist/harmony178.mjs +14 -4
  286. package/dist/harmony178.mjs.map +1 -1
  287. package/dist/harmony18.cjs +5 -14
  288. package/dist/harmony18.cjs.map +1 -1
  289. package/dist/harmony18.mjs +5 -14
  290. package/dist/harmony18.mjs.map +1 -1
  291. package/dist/harmony19.cjs +10 -13
  292. package/dist/harmony19.cjs.map +1 -1
  293. package/dist/harmony19.mjs +10 -13
  294. package/dist/harmony19.mjs.map +1 -1
  295. package/dist/harmony20.cjs +10 -13
  296. package/dist/harmony20.cjs.map +1 -1
  297. package/dist/harmony20.mjs +10 -13
  298. package/dist/harmony20.mjs.map +1 -1
  299. package/dist/harmony21.cjs +17 -13
  300. package/dist/harmony21.cjs.map +1 -1
  301. package/dist/harmony21.mjs +17 -13
  302. package/dist/harmony21.mjs.map +1 -1
  303. package/dist/harmony22.cjs +15 -13
  304. package/dist/harmony22.cjs.map +1 -1
  305. package/dist/harmony22.mjs +15 -13
  306. package/dist/harmony22.mjs.map +1 -1
  307. package/dist/harmony23.cjs +141 -12
  308. package/dist/harmony23.cjs.map +1 -1
  309. package/dist/harmony23.mjs +141 -12
  310. package/dist/harmony23.mjs.map +1 -1
  311. package/dist/harmony24.cjs +20 -22
  312. package/dist/harmony24.cjs.map +1 -1
  313. package/dist/harmony24.mjs +20 -22
  314. package/dist/harmony24.mjs.map +1 -1
  315. package/dist/harmony25.cjs +14 -13
  316. package/dist/harmony25.cjs.map +1 -1
  317. package/dist/harmony25.mjs +14 -13
  318. package/dist/harmony25.mjs.map +1 -1
  319. package/dist/harmony26.cjs +16 -12
  320. package/dist/harmony26.cjs.map +1 -1
  321. package/dist/harmony26.mjs +17 -13
  322. package/dist/harmony26.mjs.map +1 -1
  323. package/dist/harmony27.cjs +16 -15
  324. package/dist/harmony27.cjs.map +1 -1
  325. package/dist/harmony27.mjs +17 -16
  326. package/dist/harmony27.mjs.map +1 -1
  327. package/dist/harmony28.cjs +18 -15
  328. package/dist/harmony28.cjs.map +1 -1
  329. package/dist/harmony28.mjs +18 -15
  330. package/dist/harmony28.mjs.map +1 -1
  331. package/dist/harmony29.cjs +20 -15
  332. package/dist/harmony29.cjs.map +1 -1
  333. package/dist/harmony29.mjs +20 -15
  334. package/dist/harmony29.mjs.map +1 -1
  335. package/dist/harmony30.cjs +10 -15
  336. package/dist/harmony30.cjs.map +1 -1
  337. package/dist/harmony30.mjs +10 -15
  338. package/dist/harmony30.mjs.map +1 -1
  339. package/dist/harmony31.cjs +11 -15
  340. package/dist/harmony31.cjs.map +1 -1
  341. package/dist/harmony31.mjs +11 -15
  342. package/dist/harmony31.mjs.map +1 -1
  343. package/dist/harmony32.cjs +8 -16
  344. package/dist/harmony32.cjs.map +1 -1
  345. package/dist/harmony32.mjs +8 -16
  346. package/dist/harmony32.mjs.map +1 -1
  347. package/dist/harmony33.cjs +8 -16
  348. package/dist/harmony33.cjs.map +1 -1
  349. package/dist/harmony33.mjs +8 -16
  350. package/dist/harmony33.mjs.map +1 -1
  351. package/dist/harmony34.cjs +14 -16
  352. package/dist/harmony34.cjs.map +1 -1
  353. package/dist/harmony34.mjs +14 -16
  354. package/dist/harmony34.mjs.map +1 -1
  355. package/dist/harmony35.cjs +9 -16
  356. package/dist/harmony35.cjs.map +1 -1
  357. package/dist/harmony35.mjs +9 -16
  358. package/dist/harmony35.mjs.map +1 -1
  359. package/dist/harmony36.cjs +12 -16
  360. package/dist/harmony36.cjs.map +1 -1
  361. package/dist/harmony36.mjs +12 -16
  362. package/dist/harmony36.mjs.map +1 -1
  363. package/dist/harmony37.cjs +9 -14
  364. package/dist/harmony37.cjs.map +1 -1
  365. package/dist/harmony37.mjs +9 -14
  366. package/dist/harmony37.mjs.map +1 -1
  367. package/dist/harmony38.cjs +13 -16
  368. package/dist/harmony38.cjs.map +1 -1
  369. package/dist/harmony38.mjs +13 -16
  370. package/dist/harmony38.mjs.map +1 -1
  371. package/dist/harmony39.cjs +7 -16
  372. package/dist/harmony39.cjs.map +1 -1
  373. package/dist/harmony39.mjs +7 -16
  374. package/dist/harmony39.mjs.map +1 -1
  375. package/dist/harmony40.cjs +10 -17
  376. package/dist/harmony40.cjs.map +1 -1
  377. package/dist/harmony40.mjs +10 -17
  378. package/dist/harmony40.mjs.map +1 -1
  379. package/dist/harmony41.cjs +11 -14
  380. package/dist/harmony41.cjs.map +1 -1
  381. package/dist/harmony41.mjs +11 -14
  382. package/dist/harmony41.mjs.map +1 -1
  383. package/dist/harmony42.cjs +9 -14
  384. package/dist/harmony42.cjs.map +1 -1
  385. package/dist/harmony42.mjs +9 -14
  386. package/dist/harmony42.mjs.map +1 -1
  387. package/dist/harmony43.cjs +9 -124
  388. package/dist/harmony43.cjs.map +1 -1
  389. package/dist/harmony43.mjs +9 -124
  390. package/dist/harmony43.mjs.map +1 -1
  391. package/dist/harmony44.cjs +9 -82
  392. package/dist/harmony44.cjs.map +1 -1
  393. package/dist/harmony44.mjs +9 -82
  394. package/dist/harmony44.mjs.map +1 -1
  395. package/dist/harmony45.cjs +88 -6
  396. package/dist/harmony45.cjs.map +1 -1
  397. package/dist/harmony45.mjs +88 -6
  398. package/dist/harmony45.mjs.map +1 -1
  399. package/dist/harmony46.cjs +52 -25
  400. package/dist/harmony46.cjs.map +1 -1
  401. package/dist/harmony46.mjs +52 -25
  402. package/dist/harmony46.mjs.map +1 -1
  403. package/dist/harmony47.cjs +30 -23
  404. package/dist/harmony47.cjs.map +1 -1
  405. package/dist/harmony47.mjs +30 -23
  406. package/dist/harmony47.mjs.map +1 -1
  407. package/dist/harmony48.cjs +11 -141
  408. package/dist/harmony48.cjs.map +1 -1
  409. package/dist/harmony48.mjs +10 -140
  410. package/dist/harmony48.mjs.map +1 -1
  411. package/dist/harmony49.cjs +50 -32
  412. package/dist/harmony49.cjs.map +1 -1
  413. package/dist/harmony49.mjs +50 -32
  414. package/dist/harmony49.mjs.map +1 -1
  415. package/dist/harmony5.cjs +5 -5
  416. package/dist/harmony5.mjs +5 -5
  417. package/dist/harmony50.cjs +30 -26
  418. package/dist/harmony50.cjs.map +1 -1
  419. package/dist/harmony50.mjs +30 -26
  420. package/dist/harmony50.mjs.map +1 -1
  421. package/dist/harmony51.cjs +18 -4
  422. package/dist/harmony51.cjs.map +1 -1
  423. package/dist/harmony51.mjs +18 -4
  424. package/dist/harmony51.mjs.map +1 -1
  425. package/dist/harmony52.cjs +25 -81
  426. package/dist/harmony52.cjs.map +1 -1
  427. package/dist/harmony52.mjs +25 -81
  428. package/dist/harmony52.mjs.map +1 -1
  429. package/dist/harmony53.cjs +13 -57
  430. package/dist/harmony53.cjs.map +1 -1
  431. package/dist/harmony53.mjs +12 -56
  432. package/dist/harmony53.mjs.map +1 -1
  433. package/dist/harmony54.cjs +14 -18
  434. package/dist/harmony54.cjs.map +1 -1
  435. package/dist/harmony54.mjs +14 -18
  436. package/dist/harmony54.mjs.map +1 -1
  437. package/dist/harmony55.cjs +14 -30
  438. package/dist/harmony55.cjs.map +1 -1
  439. package/dist/harmony55.mjs +14 -30
  440. package/dist/harmony55.mjs.map +1 -1
  441. package/dist/harmony56.cjs +13 -22
  442. package/dist/harmony56.cjs.map +1 -1
  443. package/dist/harmony56.mjs +13 -22
  444. package/dist/harmony56.mjs.map +1 -1
  445. package/dist/harmony57.cjs +14 -52
  446. package/dist/harmony57.cjs.map +1 -1
  447. package/dist/harmony57.mjs +14 -52
  448. package/dist/harmony57.mjs.map +1 -1
  449. package/dist/harmony58.cjs +13 -9
  450. package/dist/harmony58.cjs.map +1 -1
  451. package/dist/harmony58.mjs +13 -9
  452. package/dist/harmony58.mjs.map +1 -1
  453. package/dist/harmony59.cjs +22 -5
  454. package/dist/harmony59.cjs.map +1 -1
  455. package/dist/harmony59.mjs +22 -5
  456. package/dist/harmony59.mjs.map +1 -1
  457. package/dist/harmony6.cjs +1 -1
  458. package/dist/harmony6.mjs +2 -2
  459. package/dist/harmony60.cjs +12 -14
  460. package/dist/harmony60.cjs.map +1 -1
  461. package/dist/harmony60.mjs +12 -14
  462. package/dist/harmony60.mjs.map +1 -1
  463. package/dist/harmony61.cjs +12 -31
  464. package/dist/harmony61.cjs.map +1 -1
  465. package/dist/harmony61.mjs +12 -31
  466. package/dist/harmony61.mjs.map +1 -1
  467. package/dist/harmony62.cjs +17 -5
  468. package/dist/harmony62.cjs.map +1 -1
  469. package/dist/harmony62.mjs +17 -5
  470. package/dist/harmony62.mjs.map +1 -1
  471. package/dist/harmony63.cjs +16 -10
  472. package/dist/harmony63.cjs.map +1 -1
  473. package/dist/harmony63.mjs +16 -10
  474. package/dist/harmony63.mjs.map +1 -1
  475. package/dist/harmony64.cjs +15 -11
  476. package/dist/harmony64.cjs.map +1 -1
  477. package/dist/harmony64.mjs +15 -11
  478. package/dist/harmony64.mjs.map +1 -1
  479. package/dist/harmony65.cjs +15 -18
  480. package/dist/harmony65.cjs.map +1 -1
  481. package/dist/harmony65.mjs +15 -18
  482. package/dist/harmony65.mjs.map +1 -1
  483. package/dist/harmony66.cjs +15 -16
  484. package/dist/harmony66.cjs.map +1 -1
  485. package/dist/harmony66.mjs +15 -16
  486. package/dist/harmony66.mjs.map +1 -1
  487. package/dist/harmony67.cjs +17 -142
  488. package/dist/harmony67.cjs.map +1 -1
  489. package/dist/harmony67.mjs +17 -142
  490. package/dist/harmony67.mjs.map +1 -1
  491. package/dist/harmony68.cjs +16 -19
  492. package/dist/harmony68.cjs.map +1 -1
  493. package/dist/harmony68.mjs +16 -19
  494. package/dist/harmony68.mjs.map +1 -1
  495. package/dist/harmony69.cjs +16 -13
  496. package/dist/harmony69.cjs.map +1 -1
  497. package/dist/harmony69.mjs +16 -13
  498. package/dist/harmony69.mjs.map +1 -1
  499. package/dist/harmony70.cjs +15 -15
  500. package/dist/harmony70.cjs.map +1 -1
  501. package/dist/harmony70.mjs +16 -16
  502. package/dist/harmony70.mjs.map +1 -1
  503. package/dist/harmony71.cjs +15 -16
  504. package/dist/harmony71.cjs.map +1 -1
  505. package/dist/harmony71.mjs +16 -17
  506. package/dist/harmony71.mjs.map +1 -1
  507. package/dist/harmony72.cjs +15 -20
  508. package/dist/harmony72.cjs.map +1 -1
  509. package/dist/harmony72.mjs +15 -20
  510. package/dist/harmony72.mjs.map +1 -1
  511. package/dist/harmony73.cjs +16 -19
  512. package/dist/harmony73.cjs.map +1 -1
  513. package/dist/harmony73.mjs +16 -19
  514. package/dist/harmony73.mjs.map +1 -1
  515. package/dist/harmony74.cjs +15 -8
  516. package/dist/harmony74.cjs.map +1 -1
  517. package/dist/harmony74.mjs +15 -8
  518. package/dist/harmony74.mjs.map +1 -1
  519. package/dist/harmony75.cjs +16 -9
  520. package/dist/harmony75.cjs.map +1 -1
  521. package/dist/harmony75.mjs +16 -9
  522. package/dist/harmony75.mjs.map +1 -1
  523. package/dist/harmony76.cjs +14 -9
  524. package/dist/harmony76.cjs.map +1 -1
  525. package/dist/harmony76.mjs +14 -9
  526. package/dist/harmony76.mjs.map +1 -1
  527. package/dist/harmony77.cjs +14 -9
  528. package/dist/harmony77.cjs.map +1 -1
  529. package/dist/harmony77.mjs +14 -9
  530. package/dist/harmony77.mjs.map +1 -1
  531. package/dist/harmony78.cjs +124 -15
  532. package/dist/harmony78.cjs.map +1 -1
  533. package/dist/harmony78.mjs +124 -15
  534. package/dist/harmony78.mjs.map +1 -1
  535. package/dist/harmony79.cjs +82 -10
  536. package/dist/harmony79.cjs.map +1 -1
  537. package/dist/harmony79.mjs +82 -10
  538. package/dist/harmony79.mjs.map +1 -1
  539. package/dist/harmony80.cjs +6 -13
  540. package/dist/harmony80.cjs.map +1 -1
  541. package/dist/harmony80.mjs +6 -13
  542. package/dist/harmony80.mjs.map +1 -1
  543. package/dist/harmony81.cjs +28 -10
  544. package/dist/harmony81.cjs.map +1 -1
  545. package/dist/harmony81.mjs +28 -10
  546. package/dist/harmony81.mjs.map +1 -1
  547. package/dist/harmony82.cjs +24 -14
  548. package/dist/harmony82.cjs.map +1 -1
  549. package/dist/harmony82.mjs +24 -14
  550. package/dist/harmony82.mjs.map +1 -1
  551. package/dist/harmony83.cjs +141 -8
  552. package/dist/harmony83.cjs.map +1 -1
  553. package/dist/harmony83.mjs +141 -8
  554. package/dist/harmony83.mjs.map +1 -1
  555. package/dist/harmony84.cjs +37 -11
  556. package/dist/harmony84.cjs.map +1 -1
  557. package/dist/harmony84.mjs +37 -11
  558. package/dist/harmony84.mjs.map +1 -1
  559. package/dist/harmony85.cjs +26 -11
  560. package/dist/harmony85.cjs.map +1 -1
  561. package/dist/harmony85.mjs +26 -11
  562. package/dist/harmony85.mjs.map +1 -1
  563. package/dist/harmony86.cjs +4 -9
  564. package/dist/harmony86.cjs.map +1 -1
  565. package/dist/harmony86.mjs +4 -9
  566. package/dist/harmony86.mjs.map +1 -1
  567. package/dist/harmony87.cjs +84 -9
  568. package/dist/harmony87.cjs.map +1 -1
  569. package/dist/harmony87.mjs +84 -9
  570. package/dist/harmony87.mjs.map +1 -1
  571. package/dist/harmony88.cjs +58 -9
  572. package/dist/harmony88.cjs.map +1 -1
  573. package/dist/harmony88.mjs +58 -9
  574. package/dist/harmony88.mjs.map +1 -1
  575. package/dist/harmony89.cjs +18 -88
  576. package/dist/harmony89.cjs.map +1 -1
  577. package/dist/harmony89.mjs +18 -88
  578. package/dist/harmony89.mjs.map +1 -1
  579. package/dist/harmony96.cjs +2 -2
  580. package/dist/harmony96.mjs +2 -2
  581. package/dist/harmony98.cjs +2 -2
  582. package/dist/harmony98.mjs +2 -2
  583. package/dist/harmony99.cjs +4 -4
  584. package/dist/harmony99.mjs +4 -4
  585. package/dist/types/src/features/publicApi/teamUsers.d.ts +2 -2
  586. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +4 -4
  587. package/package.json +1 -1
@@ -1,13 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const 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;
3
+ const zod = require("zod");
4
+ const teamRoleTypes = require("./harmony86.cjs");
5
+ const JWT_TOKEN_PAYLOAD_SCHEMA = zod.z.object({
6
+ userId: zod.z.number(),
7
+ userUuid: zod.z.string().uuid(),
8
+ teamId: zod.z.number(),
9
+ teamUuid: zod.z.string().uuid(),
10
+ userTeamRole: teamRoleTypes.TEAM_ROLE_SCHEMA,
11
+ userEmail: zod.z.string().email(),
12
+ userName: zod.z.string(),
13
+ userCurrentTeamId: zod.z.number(),
14
+ planId: zod.z.number(),
15
+ planName: zod.z.string(),
16
+ isProviderAlpha: zod.z.boolean(),
17
+ isFullyAuthenticated: zod.z.boolean(),
18
+ isEndOfTrialActive: zod.z.boolean(),
19
+ isTeamSuspended: zod.z.boolean(),
20
+ exp: zod.z.number()
21
+ });
22
+ exports.JWT_TOKEN_PAYLOAD_SCHEMA = JWT_TOKEN_PAYLOAD_SCHEMA;
13
23
  //# sourceMappingURL=harmony127.cjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony127.cjs","sources":["../src/features/auth/core/types/jwtTokenPayload.ts"],"sourcesContent":["import { z } from 'zod'\nimport { TEAM_ROLE_SCHEMA } from '../../../publicApi/types/teamRoleTypes'\n\nexport const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({\n\tuserId: z.number(),\n\tuserUuid: z.string().uuid(),\n\tteamId: z.number(),\n\tteamUuid: z.string().uuid(),\n\tuserTeamRole: TEAM_ROLE_SCHEMA,\n\tuserEmail: z.string().email(),\n\tuserName: z.string(),\n\tuserCurrentTeamId: z.number(),\n\tplanId: z.number(),\n\tplanName: z.string(),\n\tisProviderAlpha: z.boolean(),\n\tisFullyAuthenticated: z.boolean(),\n\tisEndOfTrialActive: z.boolean(),\n\tisTeamSuspended: z.boolean(),\n\texp: z.number(),\n})\nexport type JwtTokenPayload = z.infer<typeof JWT_TOKEN_PAYLOAD_SCHEMA>\n"],"names":["z","TEAM_ROLE_SCHEMA"],"mappings":";;;;AAGa,MAAA,2BAA2BA,MAAE,OAAO;AAAA,EAChD,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,IAAA,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,IAAA,EAAE,OAAO,EAAE,KAAK;AAAA,EAC1B,cAAcC,cAAA;AAAA,EACd,WAAWD,IAAA,EAAE,OAAO,EAAE,MAAM;AAAA,EAC5B,UAAUA,MAAE,OAAO;AAAA,EACnB,mBAAmBA,MAAE,OAAO;AAAA,EAC5B,QAAQA,MAAE,OAAO;AAAA,EACjB,UAAUA,MAAE,OAAO;AAAA,EACnB,iBAAiBA,MAAE,QAAQ;AAAA,EAC3B,sBAAsBA,MAAE,QAAQ;AAAA,EAChC,oBAAoBA,MAAE,QAAQ;AAAA,EAC9B,iBAAiBA,MAAE,QAAQ;AAAA,EAC3B,KAAKA,MAAE,OAAO;AACf,CAAC;;"}
@@ -1,13 +1,23 @@
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
- };
1
+ import { z } from "zod";
2
+ import { TEAM_ROLE_SCHEMA } from "./harmony86.mjs";
3
+ const JWT_TOKEN_PAYLOAD_SCHEMA = z.object({
4
+ userId: z.number(),
5
+ userUuid: z.string().uuid(),
6
+ teamId: z.number(),
7
+ teamUuid: z.string().uuid(),
8
+ userTeamRole: TEAM_ROLE_SCHEMA,
9
+ userEmail: z.string().email(),
10
+ userName: z.string(),
11
+ userCurrentTeamId: z.number(),
12
+ planId: z.number(),
13
+ planName: z.string(),
14
+ isProviderAlpha: z.boolean(),
15
+ isFullyAuthenticated: z.boolean(),
16
+ isEndOfTrialActive: z.boolean(),
17
+ isTeamSuspended: z.boolean(),
18
+ exp: z.number()
19
+ });
10
20
  export {
11
- DarkModeToggle
21
+ JWT_TOKEN_PAYLOAD_SCHEMA
12
22
  };
13
23
  //# sourceMappingURL=harmony127.mjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony127.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,29 +1,12 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
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
- }
26
- );
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const link = "_link_18vhx_1";
4
+ const active = "_active_18vhx_18";
5
+ const styles = {
6
+ link,
7
+ active
27
8
  };
28
- exports.ProfileSettingsMenuItem = ProfileSettingsMenuItem;
9
+ exports.active = active;
10
+ exports.default = styles;
11
+ exports.link = link;
29
12
  //# sourceMappingURL=harmony128.cjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony128.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -1,29 +1,12 @@
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
- }
24
- );
1
+ const link = "_link_18vhx_1";
2
+ const active = "_active_18vhx_18";
3
+ const styles = {
4
+ link,
5
+ active
25
6
  };
26
7
  export {
27
- ProfileSettingsMenuItem
8
+ active,
9
+ styles as default,
10
+ link
28
11
  };
29
12
  //# sourceMappingURL=harmony128.mjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony128.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -4,12 +4,12 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const useSidebar = require("./harmony110.cjs");
5
5
  const louis = require("@lokalise/louis");
6
6
  const permissions = require("./harmony111.cjs");
7
- const ProviderMenuItem = () => {
7
+ const BillingMenuItem = () => {
8
8
  const { jwt } = useSidebar.useSidebar();
9
- if (!permissions.canAccessProviderDashboard(jwt)) {
9
+ if (!permissions.canChangeBilling(jwt)) {
10
10
  return null;
11
11
  }
12
- return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/provider", children: "Provider dashboard" });
12
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/team#billing", children: "Billing" });
13
13
  };
14
- exports.ProviderMenuItem = ProviderMenuItem;
14
+ exports.BillingMenuItem = BillingMenuItem;
15
15
  //# sourceMappingURL=harmony129.cjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony129.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canChangeBilling } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the billing section.\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 * <BillingMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const BillingMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canChangeBilling(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team#billing\">Billing</MenuItem>\n}\n"],"names":["useSidebar","canChangeBilling","jsx","MenuItem"],"mappings":";;;;;;AAiBO,MAAM,kBAAkB,MAAM;AAC9B,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,iBAAiB,GAAG,GAAG;AACpB,WAAA;AAAA,EAAA;AAGR,SAAQC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,iBAAgB,UAAO,WAAA;AAC9C;;"}
@@ -1,15 +1,15 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useSidebar } from "./harmony110.mjs";
3
3
  import { MenuItem } from "@lokalise/louis";
4
- import { canAccessProviderDashboard } from "./harmony111.mjs";
5
- const ProviderMenuItem = () => {
4
+ import { canChangeBilling } from "./harmony111.mjs";
5
+ const BillingMenuItem = () => {
6
6
  const { jwt } = useSidebar();
7
- if (!canAccessProviderDashboard(jwt)) {
7
+ if (!canChangeBilling(jwt)) {
8
8
  return null;
9
9
  }
10
- return /* @__PURE__ */ jsx(MenuItem, { href: "/provider", children: "Provider dashboard" });
10
+ return /* @__PURE__ */ jsx(MenuItem, { href: "/team#billing", children: "Billing" });
11
11
  };
12
12
  export {
13
- ProviderMenuItem
13
+ BillingMenuItem
14
14
  };
15
15
  //# sourceMappingURL=harmony129.mjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony129.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canChangeBilling } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the billing section.\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 * <BillingMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const BillingMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canChangeBilling(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team#billing\">Billing</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,kBAAkB,MAAM;AAC9B,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,iBAAiB,GAAG,GAAG;AACpB,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,iBAAgB,UAAO,WAAA;AAC9C;"}
@@ -1,14 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
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;
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;
14
55
  //# sourceMappingURL=harmony13.cjs.map
@@ -1 +1 @@
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
+ {"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,14 +1,55 @@
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
- });
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
+ };
11
51
  export {
12
- listPermissionTemplates
52
+ makeUrlClickable,
53
+ matchUrl
13
54
  };
14
55
  //# sourceMappingURL=harmony13.mjs.map
@@ -1 +1 @@
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
+ {"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;"}
@@ -3,39 +3,16 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const useSidebar = require("./harmony110.cjs");
5
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)) {
6
+ const permissions = require("./harmony111.cjs");
7
+ const CreateNewTeam = ({ onCreateTeam }) => {
8
+ const { jwt } = useSidebar.useSidebar();
9
+ if (!permissions.canCreateTeam(jwt)) {
15
10
  return null;
16
11
  }
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
- );
12
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
13
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { onClick: onCreateTeam, children: "Create new team" }),
14
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {})
15
+ ] });
39
16
  };
40
- exports.TeamMenuItem = TeamMenuItem;
17
+ exports.CreateNewTeam = CreateNewTeam;
41
18
  //# sourceMappingURL=harmony130.cjs.map
@@ -1 +1 @@
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
+ {"version":3,"file":"harmony130.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { canCreateTeam } from '@utils/user/permissions'\n\ntype CreateNewTeamProps = {\n\tonCreateTeam: () => void\n}\n\n/**\n * A menu item component 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 * <CreateNewTeam onCreateTeam={handleCreateTeam} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const CreateNewTeam = ({ onCreateTeam }: CreateNewTeamProps) => {\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={onCreateTeam}>Create new team</MenuItem>\n\t\t\t<MenuDivider />\n\t\t</>\n\t)\n}\n"],"names":["useSidebar","canCreateTeam","jsxs","Fragment","jsx","MenuItem","MenuDivider"],"mappings":";;;;;;AAqBO,MAAM,gBAAgB,CAAC,EAAE,mBAAuC;AAChE,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,cAAc,GAAG,GAAG;AACjB,WAAA;AAAA,EAAA;AAGR,SAEEC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAACC,2BAAA,IAAAC,MAAA,UAAA,EAAS,SAAS,cAAc,UAAe,mBAAA;AAAA,mCAC/CC,MAAY,aAAA,CAAA,CAAA;AAAA,EAAA,GACd;AAEF;;"}
@@ -1,41 +1,18 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
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)) {
3
+ import { MenuItem, MenuDivider } from "@lokalise/louis";
4
+ import { canCreateTeam } from "./harmony111.mjs";
5
+ const CreateNewTeam = ({ onCreateTeam }) => {
6
+ const { jwt } = useSidebar();
7
+ if (!canCreateTeam(jwt)) {
13
8
  return null;
14
9
  }
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
- );
10
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
11
+ /* @__PURE__ */ jsx(MenuItem, { onClick: onCreateTeam, children: "Create new team" }),
12
+ /* @__PURE__ */ jsx(MenuDivider, {})
13
+ ] });
37
14
  };
38
15
  export {
39
- TeamMenuItem
16
+ CreateNewTeam
40
17
  };
41
18
  //# sourceMappingURL=harmony130.mjs.map
@@ -1 +1 @@
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;"}
1
+ {"version":3,"file":"harmony130.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { canCreateTeam } from '@utils/user/permissions'\n\ntype CreateNewTeamProps = {\n\tonCreateTeam: () => void\n}\n\n/**\n * A menu item component 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 * <CreateNewTeam onCreateTeam={handleCreateTeam} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const CreateNewTeam = ({ onCreateTeam }: CreateNewTeamProps) => {\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={onCreateTeam}>Create new team</MenuItem>\n\t\t\t<MenuDivider />\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":";;;;AAqBO,MAAM,gBAAgB,CAAC,EAAE,mBAAuC;AAChE,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,cAAc,GAAG,GAAG;AACjB,WAAA;AAAA,EAAA;AAGR,SAEE,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAC,oBAAA,UAAA,EAAS,SAAS,cAAc,UAAe,mBAAA;AAAA,wBAC/C,aAAY,CAAA,CAAA;AAAA,EAAA,GACd;AAEF;"}
@@ -4,12 +4,19 @@ const jsxRuntime = require("react/jsx-runtime");
4
4
  const useSidebar = require("./harmony110.cjs");
5
5
  const louis = require("@lokalise/louis");
6
6
  const permissions = require("./harmony111.cjs");
7
- const TeamSettingsMenuItem = () => {
7
+ const CreateNewTeamPlaceholder_module = require("./harmony158.cjs");
8
+ const CreateNewTeamPlaceholder = ({ onClick }) => {
8
9
  const { jwt } = useSidebar.useSidebar();
9
- if (!permissions.canAccessTeamSettings(jwt)) {
10
+ if (!permissions.canCreateTeam(jwt)) {
10
11
  return null;
11
12
  }
12
- return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/team", children: "Team settings" });
13
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
14
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { onClick, "data-testid": "sidebar-create-new-team-placeholder", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
15
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: CreateNewTeamPlaceholder_module.default.mainLabel, children: "Create new team" }),
16
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: CreateNewTeamPlaceholder_module.default.subLabel, children: "Switch to Expert to create a new team" })
17
+ ] }) }),
18
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {})
19
+ ] });
13
20
  };
14
- exports.TeamSettingsMenuItem = TeamSettingsMenuItem;
21
+ exports.CreateNewTeamPlaceholder = CreateNewTeamPlaceholder;
15
22
  //# sourceMappingURL=harmony131.cjs.map