@lokalise/harmony 1.26.1 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (447) hide show
  1. package/dist/harmony.cjs +95 -48
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.mjs +67 -20
  4. package/dist/harmony.mjs.map +1 -1
  5. package/dist/harmony100.cjs +18 -14
  6. package/dist/harmony100.cjs.map +1 -1
  7. package/dist/harmony100.mjs +18 -14
  8. package/dist/harmony100.mjs.map +1 -1
  9. package/dist/harmony101.cjs +13 -35
  10. package/dist/harmony101.cjs.map +1 -1
  11. package/dist/harmony101.mjs +13 -35
  12. package/dist/harmony101.mjs.map +1 -1
  13. package/dist/harmony102.cjs +7 -29
  14. package/dist/harmony102.cjs.map +1 -1
  15. package/dist/harmony102.mjs +6 -28
  16. package/dist/harmony102.mjs.map +1 -1
  17. package/dist/harmony103.cjs +6 -14
  18. package/dist/harmony103.cjs.map +1 -1
  19. package/dist/harmony103.mjs +5 -13
  20. package/dist/harmony103.mjs.map +1 -1
  21. package/dist/harmony104.cjs +6 -16
  22. package/dist/harmony104.cjs.map +1 -1
  23. package/dist/harmony104.mjs +5 -15
  24. package/dist/harmony104.mjs.map +1 -1
  25. package/dist/harmony105.cjs +62 -16
  26. package/dist/harmony105.cjs.map +1 -1
  27. package/dist/harmony105.mjs +61 -15
  28. package/dist/harmony105.mjs.map +1 -1
  29. package/dist/harmony106.cjs +87 -6
  30. package/dist/harmony106.cjs.map +1 -1
  31. package/dist/harmony106.mjs +87 -6
  32. package/dist/harmony106.mjs.map +1 -1
  33. package/dist/harmony107.cjs +18 -57
  34. package/dist/harmony107.cjs.map +1 -1
  35. package/dist/harmony107.mjs +17 -56
  36. package/dist/harmony107.mjs.map +1 -1
  37. package/dist/harmony108.cjs +95 -59
  38. package/dist/harmony108.cjs.map +1 -1
  39. package/dist/harmony108.mjs +95 -59
  40. package/dist/harmony108.mjs.map +1 -1
  41. package/dist/harmony109.cjs +14 -19
  42. package/dist/harmony109.cjs.map +1 -1
  43. package/dist/harmony109.mjs +13 -18
  44. package/dist/harmony109.mjs.map +1 -1
  45. package/dist/harmony110.cjs +13 -10
  46. package/dist/harmony110.cjs.map +1 -1
  47. package/dist/harmony110.mjs +13 -10
  48. package/dist/harmony110.mjs.map +1 -1
  49. package/dist/harmony111.cjs +33 -13
  50. package/dist/harmony111.cjs.map +1 -1
  51. package/dist/harmony111.mjs +33 -13
  52. package/dist/harmony111.mjs.map +1 -1
  53. package/dist/harmony112.cjs +25 -18
  54. package/dist/harmony112.cjs.map +1 -1
  55. package/dist/harmony112.mjs +25 -18
  56. package/dist/harmony112.mjs.map +1 -1
  57. package/dist/harmony113.cjs +7 -12
  58. package/dist/harmony113.cjs.map +1 -1
  59. package/dist/harmony113.mjs +7 -12
  60. package/dist/harmony113.mjs.map +1 -1
  61. package/dist/harmony114.cjs +54 -43
  62. package/dist/harmony114.cjs.map +1 -1
  63. package/dist/harmony114.mjs +56 -45
  64. package/dist/harmony114.mjs.map +1 -1
  65. package/dist/harmony115.cjs +61 -13
  66. package/dist/harmony115.cjs.map +1 -1
  67. package/dist/harmony115.mjs +59 -11
  68. package/dist/harmony115.mjs.map +1 -1
  69. package/dist/harmony116.cjs +19 -7
  70. package/dist/harmony116.cjs.map +1 -1
  71. package/dist/harmony116.mjs +18 -6
  72. package/dist/harmony116.mjs.map +1 -1
  73. package/dist/harmony117.cjs +12 -11
  74. package/dist/harmony117.cjs.map +1 -1
  75. package/dist/harmony117.mjs +12 -11
  76. package/dist/harmony117.mjs.map +1 -1
  77. package/dist/harmony118.cjs +13 -30
  78. package/dist/harmony118.cjs.map +1 -1
  79. package/dist/harmony118.mjs +13 -30
  80. package/dist/harmony118.mjs.map +1 -1
  81. package/dist/harmony119.cjs +14 -12
  82. package/dist/harmony119.cjs.map +1 -1
  83. package/dist/harmony119.mjs +14 -12
  84. package/dist/harmony119.mjs.map +1 -1
  85. package/dist/harmony120.cjs +14 -0
  86. package/dist/harmony120.cjs.map +1 -0
  87. package/dist/harmony120.mjs +14 -0
  88. package/dist/harmony120.mjs.map +1 -0
  89. package/dist/harmony121.cjs +19 -0
  90. package/dist/harmony121.cjs.map +1 -0
  91. package/dist/harmony121.mjs +19 -0
  92. package/dist/harmony121.mjs.map +1 -0
  93. package/dist/harmony122.cjs +24 -0
  94. package/dist/harmony122.cjs.map +1 -0
  95. package/dist/harmony122.mjs +24 -0
  96. package/dist/harmony122.mjs.map +1 -0
  97. package/dist/harmony123.cjs +15 -0
  98. package/dist/harmony123.cjs.map +1 -0
  99. package/dist/harmony123.mjs +15 -0
  100. package/dist/harmony123.mjs.map +1 -0
  101. package/dist/harmony124.cjs +9 -0
  102. package/dist/harmony124.cjs.map +1 -0
  103. package/dist/harmony124.mjs +9 -0
  104. package/dist/harmony124.mjs.map +1 -0
  105. package/dist/harmony125.cjs +15 -0
  106. package/dist/harmony125.cjs.map +1 -0
  107. package/dist/harmony125.mjs +15 -0
  108. package/dist/harmony125.mjs.map +1 -0
  109. package/dist/harmony126.cjs +35 -0
  110. package/dist/harmony126.cjs.map +1 -0
  111. package/dist/harmony126.mjs +35 -0
  112. package/dist/harmony126.mjs.map +1 -0
  113. package/dist/harmony127.cjs +17 -0
  114. package/dist/harmony127.cjs.map +1 -0
  115. package/dist/harmony127.mjs +17 -0
  116. package/dist/harmony127.mjs.map +1 -0
  117. package/dist/harmony128.cjs +49 -0
  118. package/dist/harmony128.cjs.map +1 -0
  119. package/dist/harmony128.mjs +49 -0
  120. package/dist/harmony128.mjs.map +1 -0
  121. package/dist/harmony129.cjs +15 -0
  122. package/dist/harmony129.cjs.map +1 -0
  123. package/dist/harmony129.mjs +15 -0
  124. package/dist/harmony129.mjs.map +1 -0
  125. package/dist/harmony15.cjs +1 -1
  126. package/dist/harmony15.mjs +1 -1
  127. package/dist/harmony20.cjs +1 -1
  128. package/dist/harmony20.mjs +1 -1
  129. package/dist/harmony21.cjs +1 -1
  130. package/dist/harmony21.mjs +1 -1
  131. package/dist/harmony22.cjs +1 -1
  132. package/dist/harmony22.mjs +1 -1
  133. package/dist/harmony23.cjs +1 -1
  134. package/dist/harmony23.mjs +1 -1
  135. package/dist/harmony25.cjs +1 -1
  136. package/dist/harmony25.mjs +1 -1
  137. package/dist/harmony26.cjs +2 -2
  138. package/dist/harmony26.mjs +2 -2
  139. package/dist/harmony27.cjs +2 -2
  140. package/dist/harmony27.mjs +2 -2
  141. package/dist/harmony28.cjs +10 -37
  142. package/dist/harmony28.cjs.map +1 -1
  143. package/dist/harmony28.mjs +10 -37
  144. package/dist/harmony28.mjs.map +1 -1
  145. package/dist/harmony29.cjs +44 -9
  146. package/dist/harmony29.cjs.map +1 -1
  147. package/dist/harmony29.mjs +44 -9
  148. package/dist/harmony29.mjs.map +1 -1
  149. package/dist/harmony3.cjs +3 -3
  150. package/dist/harmony3.mjs +3 -3
  151. package/dist/harmony30.cjs +10 -13
  152. package/dist/harmony30.cjs.map +1 -1
  153. package/dist/harmony30.mjs +10 -13
  154. package/dist/harmony30.mjs.map +1 -1
  155. package/dist/harmony31.cjs +18 -80
  156. package/dist/harmony31.cjs.map +1 -1
  157. package/dist/harmony31.mjs +17 -79
  158. package/dist/harmony31.mjs.map +1 -1
  159. package/dist/harmony32.cjs +10 -110
  160. package/dist/harmony32.cjs.map +1 -1
  161. package/dist/harmony32.mjs +9 -109
  162. package/dist/harmony32.mjs.map +1 -1
  163. package/dist/harmony33.cjs +13 -7
  164. package/dist/harmony33.cjs.map +1 -1
  165. package/dist/harmony33.mjs +13 -7
  166. package/dist/harmony33.mjs.map +1 -1
  167. package/dist/harmony34.cjs +14 -56
  168. package/dist/harmony34.cjs.map +1 -1
  169. package/dist/harmony34.mjs +14 -56
  170. package/dist/harmony34.mjs.map +1 -1
  171. package/dist/harmony35.cjs +14 -24
  172. package/dist/harmony35.cjs.map +1 -1
  173. package/dist/harmony35.mjs +14 -24
  174. package/dist/harmony35.mjs.map +1 -1
  175. package/dist/harmony36.cjs +13 -18
  176. package/dist/harmony36.cjs.map +1 -1
  177. package/dist/harmony36.mjs +13 -18
  178. package/dist/harmony36.mjs.map +1 -1
  179. package/dist/harmony37.cjs +17 -21
  180. package/dist/harmony37.cjs.map +1 -1
  181. package/dist/harmony37.mjs +17 -21
  182. package/dist/harmony37.mjs.map +1 -1
  183. package/dist/harmony38.cjs +10 -6
  184. package/dist/harmony38.cjs.map +1 -1
  185. package/dist/harmony38.mjs +12 -8
  186. package/dist/harmony38.mjs.map +1 -1
  187. package/dist/harmony39.cjs +1 -1
  188. package/dist/harmony39.mjs +1 -1
  189. package/dist/harmony4.cjs +10 -10
  190. package/dist/harmony4.mjs +10 -10
  191. package/dist/harmony40.cjs +1 -1
  192. package/dist/harmony40.mjs +1 -1
  193. package/dist/harmony41.cjs +12 -14
  194. package/dist/harmony41.cjs.map +1 -1
  195. package/dist/harmony41.mjs +12 -14
  196. package/dist/harmony41.mjs.map +1 -1
  197. package/dist/harmony42.cjs +10 -10
  198. package/dist/harmony42.cjs.map +1 -1
  199. package/dist/harmony42.mjs +10 -10
  200. package/dist/harmony42.mjs.map +1 -1
  201. package/dist/harmony43.cjs +14 -12
  202. package/dist/harmony43.cjs.map +1 -1
  203. package/dist/harmony43.mjs +14 -12
  204. package/dist/harmony43.mjs.map +1 -1
  205. package/dist/harmony44.cjs +8 -8
  206. package/dist/harmony44.cjs.map +1 -1
  207. package/dist/harmony44.mjs +8 -8
  208. package/dist/harmony44.mjs.map +1 -1
  209. package/dist/harmony45.cjs +13 -12
  210. package/dist/harmony45.cjs.map +1 -1
  211. package/dist/harmony45.mjs +15 -14
  212. package/dist/harmony45.mjs.map +1 -1
  213. package/dist/harmony46.cjs +10 -7
  214. package/dist/harmony46.cjs.map +1 -1
  215. package/dist/harmony46.mjs +12 -9
  216. package/dist/harmony46.mjs.map +1 -1
  217. package/dist/harmony47.cjs +6 -9
  218. package/dist/harmony47.cjs.map +1 -1
  219. package/dist/harmony47.mjs +8 -11
  220. package/dist/harmony47.mjs.map +1 -1
  221. package/dist/harmony48.cjs +57 -16
  222. package/dist/harmony48.cjs.map +1 -1
  223. package/dist/harmony48.mjs +56 -15
  224. package/dist/harmony48.mjs.map +1 -1
  225. package/dist/harmony49.cjs +81 -19
  226. package/dist/harmony49.cjs.map +1 -1
  227. package/dist/harmony49.mjs +80 -18
  228. package/dist/harmony49.mjs.map +1 -1
  229. package/dist/harmony5.cjs +1 -1
  230. package/dist/harmony5.mjs +1 -1
  231. package/dist/harmony50.cjs +7 -62
  232. package/dist/harmony50.cjs.map +1 -1
  233. package/dist/harmony50.mjs +6 -61
  234. package/dist/harmony50.mjs.map +1 -1
  235. package/dist/harmony51.cjs +24 -7
  236. package/dist/harmony51.cjs.map +1 -1
  237. package/dist/harmony51.mjs +23 -6
  238. package/dist/harmony51.mjs.map +1 -1
  239. package/dist/harmony52.cjs +37 -9
  240. package/dist/harmony52.cjs.map +1 -1
  241. package/dist/harmony52.mjs +37 -9
  242. package/dist/harmony52.mjs.map +1 -1
  243. package/dist/harmony53.cjs +117 -18
  244. package/dist/harmony53.cjs.map +1 -1
  245. package/dist/harmony53.mjs +117 -18
  246. package/dist/harmony53.mjs.map +1 -1
  247. package/dist/harmony54.cjs +21 -23
  248. package/dist/harmony54.cjs.map +1 -1
  249. package/dist/harmony54.mjs +21 -23
  250. package/dist/harmony54.mjs.map +1 -1
  251. package/dist/harmony55.cjs +26 -5
  252. package/dist/harmony55.cjs.map +1 -1
  253. package/dist/harmony55.mjs +26 -5
  254. package/dist/harmony55.mjs.map +1 -1
  255. package/dist/harmony56.cjs +8 -32
  256. package/dist/harmony56.cjs.map +1 -1
  257. package/dist/harmony56.mjs +8 -32
  258. package/dist/harmony56.mjs.map +1 -1
  259. package/dist/harmony57.cjs +50 -32
  260. package/dist/harmony57.cjs.map +1 -1
  261. package/dist/harmony57.mjs +50 -32
  262. package/dist/harmony57.mjs.map +1 -1
  263. package/dist/harmony58.cjs +24 -19
  264. package/dist/harmony58.cjs.map +1 -1
  265. package/dist/harmony58.mjs +24 -19
  266. package/dist/harmony58.mjs.map +1 -1
  267. package/dist/harmony59.cjs +18 -31
  268. package/dist/harmony59.cjs.map +1 -1
  269. package/dist/harmony59.mjs +18 -31
  270. package/dist/harmony59.mjs.map +1 -1
  271. package/dist/harmony6.cjs +4 -4
  272. package/dist/harmony6.mjs +4 -4
  273. package/dist/harmony60.cjs +16 -60
  274. package/dist/harmony60.cjs.map +1 -1
  275. package/dist/harmony60.mjs +15 -59
  276. package/dist/harmony60.mjs.map +1 -1
  277. package/dist/harmony61.cjs +15 -6
  278. package/dist/harmony61.cjs.map +1 -1
  279. package/dist/harmony61.mjs +16 -7
  280. package/dist/harmony61.mjs.map +1 -1
  281. package/dist/harmony62.cjs +61 -8
  282. package/dist/harmony62.cjs.map +1 -1
  283. package/dist/harmony62.mjs +61 -8
  284. package/dist/harmony62.mjs.map +1 -1
  285. package/dist/harmony63.cjs +7 -30
  286. package/dist/harmony63.cjs.map +1 -1
  287. package/dist/harmony63.mjs +6 -29
  288. package/dist/harmony63.mjs.map +1 -1
  289. package/dist/harmony64.cjs +9 -3
  290. package/dist/harmony64.cjs.map +1 -1
  291. package/dist/harmony64.mjs +9 -3
  292. package/dist/harmony64.mjs.map +1 -1
  293. package/dist/harmony65.cjs +18 -6
  294. package/dist/harmony65.cjs.map +1 -1
  295. package/dist/harmony65.mjs +17 -5
  296. package/dist/harmony65.mjs.map +1 -1
  297. package/dist/harmony66.cjs +23 -9
  298. package/dist/harmony66.cjs.map +1 -1
  299. package/dist/harmony66.mjs +22 -8
  300. package/dist/harmony66.mjs.map +1 -1
  301. package/dist/harmony67.cjs +6 -10
  302. package/dist/harmony67.cjs.map +1 -1
  303. package/dist/harmony67.mjs +5 -9
  304. package/dist/harmony67.mjs.map +1 -1
  305. package/dist/harmony68.cjs +29 -54
  306. package/dist/harmony68.cjs.map +1 -1
  307. package/dist/harmony68.mjs +30 -55
  308. package/dist/harmony68.mjs.map +1 -1
  309. package/dist/harmony69.cjs +29 -29
  310. package/dist/harmony69.cjs.map +1 -1
  311. package/dist/harmony69.mjs +30 -30
  312. package/dist/harmony69.mjs.map +1 -1
  313. package/dist/harmony70.cjs +19 -5
  314. package/dist/harmony70.cjs.map +1 -1
  315. package/dist/harmony70.mjs +19 -5
  316. package/dist/harmony70.mjs.map +1 -1
  317. package/dist/harmony71.cjs +31 -9
  318. package/dist/harmony71.cjs.map +1 -1
  319. package/dist/harmony71.mjs +30 -8
  320. package/dist/harmony71.mjs.map +1 -1
  321. package/dist/harmony72.cjs +60 -25
  322. package/dist/harmony72.cjs.map +1 -1
  323. package/dist/harmony72.mjs +59 -24
  324. package/dist/harmony72.mjs.map +1 -1
  325. package/dist/harmony73.cjs +8 -5
  326. package/dist/harmony73.cjs.map +1 -1
  327. package/dist/harmony73.mjs +8 -5
  328. package/dist/harmony73.mjs.map +1 -1
  329. package/dist/harmony74.cjs +6 -19
  330. package/dist/harmony74.cjs.map +1 -1
  331. package/dist/harmony74.mjs +8 -21
  332. package/dist/harmony74.mjs.map +1 -1
  333. package/dist/harmony75.cjs +30 -13
  334. package/dist/harmony75.cjs.map +1 -1
  335. package/dist/harmony75.mjs +29 -12
  336. package/dist/harmony75.mjs.map +1 -1
  337. package/dist/harmony76.cjs +3 -11
  338. package/dist/harmony76.cjs.map +1 -1
  339. package/dist/harmony76.mjs +3 -11
  340. package/dist/harmony76.mjs.map +1 -1
  341. package/dist/harmony77.cjs +5 -20
  342. package/dist/harmony77.cjs.map +1 -1
  343. package/dist/harmony77.mjs +5 -20
  344. package/dist/harmony77.mjs.map +1 -1
  345. package/dist/harmony78.cjs +10 -19
  346. package/dist/harmony78.cjs.map +1 -1
  347. package/dist/harmony78.mjs +9 -18
  348. package/dist/harmony78.mjs.map +1 -1
  349. package/dist/harmony79.cjs +9 -14
  350. package/dist/harmony79.cjs.map +1 -1
  351. package/dist/harmony79.mjs +8 -13
  352. package/dist/harmony79.mjs.map +1 -1
  353. package/dist/harmony80.cjs +57 -26
  354. package/dist/harmony80.cjs.map +1 -1
  355. package/dist/harmony80.mjs +57 -26
  356. package/dist/harmony80.mjs.map +1 -1
  357. package/dist/harmony81.cjs +32 -11
  358. package/dist/harmony81.cjs.map +1 -1
  359. package/dist/harmony81.mjs +32 -11
  360. package/dist/harmony81.mjs.map +1 -1
  361. package/dist/harmony82.cjs +4 -98
  362. package/dist/harmony82.cjs.map +1 -1
  363. package/dist/harmony82.mjs +5 -82
  364. package/dist/harmony82.mjs.map +1 -1
  365. package/dist/harmony83.cjs +6 -18
  366. package/dist/harmony83.cjs.map +1 -1
  367. package/dist/harmony83.mjs +6 -18
  368. package/dist/harmony83.mjs.map +1 -1
  369. package/dist/harmony84.cjs +24 -5
  370. package/dist/harmony84.cjs.map +1 -1
  371. package/dist/harmony84.mjs +23 -4
  372. package/dist/harmony84.mjs.map +1 -1
  373. package/dist/harmony85.cjs +6 -132
  374. package/dist/harmony85.cjs.map +1 -1
  375. package/dist/harmony85.mjs +5 -131
  376. package/dist/harmony85.mjs.map +1 -1
  377. package/dist/harmony86.cjs +21 -12
  378. package/dist/harmony86.cjs.map +1 -1
  379. package/dist/harmony86.mjs +20 -11
  380. package/dist/harmony86.mjs.map +1 -1
  381. package/dist/harmony87.cjs +13 -6
  382. package/dist/harmony87.cjs.map +1 -1
  383. package/dist/harmony87.mjs +12 -5
  384. package/dist/harmony87.mjs.map +1 -1
  385. package/dist/harmony88.cjs +9 -38
  386. package/dist/harmony88.cjs.map +1 -1
  387. package/dist/harmony88.mjs +11 -40
  388. package/dist/harmony88.mjs.map +1 -1
  389. package/dist/harmony89.cjs +21 -60
  390. package/dist/harmony89.cjs.map +1 -1
  391. package/dist/harmony89.mjs +20 -59
  392. package/dist/harmony89.mjs.map +1 -1
  393. package/dist/harmony90.cjs +98 -6
  394. package/dist/harmony90.cjs.map +1 -1
  395. package/dist/harmony90.mjs +81 -6
  396. package/dist/harmony90.mjs.map +1 -1
  397. package/dist/harmony91.cjs +17 -7
  398. package/dist/harmony91.cjs.map +1 -1
  399. package/dist/harmony91.mjs +16 -6
  400. package/dist/harmony91.mjs.map +1 -1
  401. package/dist/harmony92.cjs +21 -5
  402. package/dist/harmony92.cjs.map +1 -1
  403. package/dist/harmony92.mjs +21 -5
  404. package/dist/harmony92.mjs.map +1 -1
  405. package/dist/harmony93.cjs +6 -6
  406. package/dist/harmony93.cjs.map +1 -1
  407. package/dist/harmony93.mjs +5 -5
  408. package/dist/harmony93.mjs.map +1 -1
  409. package/dist/harmony94.cjs +129 -13
  410. package/dist/harmony94.cjs.map +1 -1
  411. package/dist/harmony94.mjs +129 -13
  412. package/dist/harmony94.mjs.map +1 -1
  413. package/dist/harmony95.cjs +13 -63
  414. package/dist/harmony95.cjs.map +1 -1
  415. package/dist/harmony95.mjs +12 -62
  416. package/dist/harmony95.mjs.map +1 -1
  417. package/dist/harmony96.cjs +5 -88
  418. package/dist/harmony96.cjs.map +1 -1
  419. package/dist/harmony96.mjs +5 -88
  420. package/dist/harmony96.mjs.map +1 -1
  421. package/dist/harmony97.cjs +40 -18
  422. package/dist/harmony97.cjs.map +1 -1
  423. package/dist/harmony97.mjs +39 -17
  424. package/dist/harmony97.mjs.map +1 -1
  425. package/dist/harmony98.cjs +60 -96
  426. package/dist/harmony98.cjs.map +1 -1
  427. package/dist/harmony98.mjs +60 -96
  428. package/dist/harmony98.mjs.map +1 -1
  429. package/dist/harmony99.cjs +7 -13
  430. package/dist/harmony99.cjs.map +1 -1
  431. package/dist/harmony99.mjs +7 -13
  432. package/dist/harmony99.mjs.map +1 -1
  433. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +42 -0
  434. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +7 -5
  435. package/dist/types/src/features/publicApi/hooks/useListTeamsQuery.d.ts +37 -0
  436. package/dist/types/src/features/publicApi/hooks/useRetrieveTeamQuery.d.ts +37 -0
  437. package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +2 -2
  438. package/dist/types/src/features/publicApi/node.d.ts +21 -9
  439. package/dist/types/src/features/publicApi/permissionTemplates.d.ts +35 -25
  440. package/dist/types/src/features/publicApi/projects.d.ts +178 -5
  441. package/dist/types/src/features/publicApi/team.d.ts +297 -0
  442. package/dist/types/src/features/publicApi/types/paginationTypes.d.ts +12 -0
  443. package/dist/types/src/features/publicApi/types/permissionTemplateTypes.d.ts +56 -40
  444. package/dist/types/src/features/publicApi/types/permissionTypes.d.ts +34 -0
  445. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +121 -12
  446. package/dist/types/src/features/publicApi/types/teamTypes.d.ts +257 -0
  447. package/package.json +1 -1
@@ -1,35 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
4
5
  const plan = require("./harmony7.cjs");
5
- const types = require("./harmony84.cjs");
6
- const ProfileMenuContext = require("./harmony70.cjs");
7
- const billingRoles = [
8
- types.SidebarTeamRoles.biller,
9
- types.SidebarTeamRoles.owner
10
- ];
11
- const ProfileMenuProvider = ({ children, config }) => {
12
- const { teams, currentTeamId, planId, isEndOfTrialActive, isFullyAuthenticated, userTeamRole } = config;
13
- const currentTeam = teams.find((t) => t.id === currentTeamId);
14
- const otherTeams = teams.filter((t) => t.id !== currentTeamId);
15
- const canChangeBilling = billingRoles.includes(userTeamRole);
16
- const canAccessTeamSettings = billingRoles.includes(userTeamRole);
17
- const isOnFreeOrTrialPlan = plan.isFreePlan(planId) || plan.isTrialPlan(planId);
18
- const showUpgradeCta = isFullyAuthenticated && isOnFreeOrTrialPlan && canChangeBilling;
19
- const showBillingButton = isFullyAuthenticated && canAccessTeamSettings && canChangeBilling;
20
- const allowTeamCreation = isFullyAuthenticated && !isEndOfTrialActive;
21
- const providerValue = {
22
- ...config,
23
- currentTeam,
24
- otherTeams,
25
- canChangeBilling,
26
- canAccessTeamSettings,
27
- isOnFreeOrTrialPlan,
28
- showUpgradeCta,
29
- showBillingButton,
30
- allowTeamCreation
31
- };
32
- return /* @__PURE__ */ jsxRuntime.jsx(ProfileMenuContext.ProfileMenuContext.Provider, { value: providerValue, children });
6
+ const ProfileMenuContext = require("./harmony82.cjs");
7
+ const TeamMenuItem_module = require("./harmony84.cjs");
8
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
9
+ const { currentTeam, planId } = ProfileMenuContext.useProfileMenu();
10
+ const contextTeam = team || currentTeam;
11
+ if (!contextTeam) {
12
+ return null;
13
+ }
14
+ const planLabel = plan.isFreePlan(planId) ? "Free" : plan.isTrialPlan(planId) ? "Trial" : void 0;
15
+ const WrapperNode = onClick ? louis.MenuItem : "div";
16
+ return /* @__PURE__ */ jsxRuntime.jsxs(
17
+ WrapperNode,
18
+ {
19
+ className: TeamMenuItem_module.default.wrapper,
20
+ ...onClick && { onClick: () => onClick(contextTeam) },
21
+ children: [
22
+ 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" }) }),
23
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.teamDetails, children: [
24
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.planWrapper, children: [
25
+ /* @__PURE__ */ jsxRuntime.jsx("span", { title: contextTeam.name, className: TeamMenuItem_module.default.teamName, children: contextTeam.name }),
26
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.teamName, children: planLabel })
27
+ ] }),
28
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.membership, children: contextTeam.role })
29
+ ] })
30
+ ]
31
+ }
32
+ );
33
33
  };
34
- exports.ProfileMenuProvider = ProfileMenuProvider;
34
+ exports.TeamMenuItem = TeamMenuItem;
35
35
  //# sourceMappingURL=harmony69.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony69.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.tsx"],"sourcesContent":["import { isFreePlan, isTrialPlan } from '@utils'\nimport type { PropsWithChildren } from 'react'\nimport { type SidebarTeamRole, SidebarTeamRoles } from '../../types'\nimport { ProfileMenuContext } from './ProfileMenuContext'\nimport type { SidebarProfileMenuConfig } from './types'\n\ntype ProfileMenuProviderProps = PropsWithChildren<{\n\tconfig: SidebarProfileMenuConfig\n}>\n\nconst billingRoles: ReadonlyArray<SidebarTeamRole> = [\n\tSidebarTeamRoles.biller,\n\tSidebarTeamRoles.owner,\n]\n\nexport const ProfileMenuProvider = ({ children, config }: ProfileMenuProviderProps) => {\n\tconst { teams, currentTeamId, planId, isEndOfTrialActive, isFullyAuthenticated, userTeamRole } =\n\t\tconfig\n\n\tconst currentTeam = teams.find((t) => t.id === currentTeamId)\n\n\tconst otherTeams = teams.filter((t) => t.id !== currentTeamId)\n\n\tconst canChangeBilling = billingRoles.includes(userTeamRole)\n\n\tconst canAccessTeamSettings = billingRoles.includes(userTeamRole)\n\n\tconst isOnFreeOrTrialPlan = isFreePlan(planId) || isTrialPlan(planId)\n\n\tconst showUpgradeCta = isFullyAuthenticated && isOnFreeOrTrialPlan && canChangeBilling\n\n\tconst showBillingButton = isFullyAuthenticated && canAccessTeamSettings && canChangeBilling\n\n\tconst allowTeamCreation = isFullyAuthenticated && !isEndOfTrialActive\n\n\tconst providerValue = {\n\t\t...config,\n\t\tcurrentTeam,\n\t\totherTeams,\n\t\tcanChangeBilling,\n\t\tcanAccessTeamSettings,\n\t\tisOnFreeOrTrialPlan,\n\t\tshowUpgradeCta,\n\t\tshowBillingButton,\n\t\tallowTeamCreation,\n\t}\n\n\treturn <ProfileMenuContext.Provider value={providerValue}>{children}</ProfileMenuContext.Provider>\n}\n"],"names":["SidebarTeamRoles","isFreePlan","isTrialPlan","ProfileMenuContext"],"mappings":";;;;;;AAUA,MAAM,eAA+C;AAAA,EACpDA,MAAAA,iBAAiB;AAAA,EACjBA,uBAAiB;AAClB;AAEO,MAAM,sBAAsB,CAAC,EAAE,UAAU,aAAuC;AACtF,QAAM,EAAE,OAAO,eAAe,QAAQ,oBAAoB,sBAAsB,iBAC/E;AAED,QAAM,cAAc,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa;AAE5D,QAAM,aAAa,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,aAAa;AAEvD,QAAA,mBAAmB,aAAa,SAAS,YAAY;AAErD,QAAA,wBAAwB,aAAa,SAAS,YAAY;AAEhE,QAAM,sBAAsBC,KAAA,WAAW,MAAM,KAAKC,KAAAA,YAAY,MAAM;AAE9D,QAAA,iBAAiB,wBAAwB,uBAAuB;AAEhE,QAAA,oBAAoB,wBAAwB,yBAAyB;AAErE,QAAA,oBAAoB,wBAAwB,CAAC;AAEnD,QAAM,gBAAgB;AAAA,IACrB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,wCAAQC,mBAAAA,mBAAmB,UAAnB,EAA4B,OAAO,eAAgB,UAAS;AACrE;;"}
1
+ {"version":3,"file":"harmony69.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '../../../../../utils/billing/plan/plan'\nimport type { SidebarTeam } from '../../../types'\nimport { useProfileMenu } from '../ProfileMenuContext'\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 ProfileMenu component\n * as it requires access to the ProfileMenu context for current team\n * and plan information.\n */\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst { currentTeam, planId } = useProfileMenu()\n\n\tconst contextTeam = team || currentTeam\n\n\tif (!contextTeam) {\n\t\treturn null\n\t}\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\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":["useProfileMenu","isFreePlan","isTrialPlan","MenuItem","jsxs","styles","jsx","UserIcon"],"mappings":";;;;;;;AAwCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AACpF,QAAM,EAAE,aAAa,OAAO,IAAIA,kCAAe;AAE/C,QAAM,cAAc,QAAQ;AAE5B,MAAI,CAAC,aAAa;AACV,WAAA;AAAA,EAAA;AAGF,QAAA,YAAYC,gBAAW,MAAM,IAAI,SAASC,iBAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAUC,MAAAA,WAAW;AAGxC,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,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,35 +1,35 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { MenuItem, UserIcon } from "@lokalise/louis";
2
3
  import { isFreePlan, isTrialPlan } from "./harmony7.mjs";
3
- import { SidebarTeamRoles } from "./harmony84.mjs";
4
- import { ProfileMenuContext } from "./harmony70.mjs";
5
- const billingRoles = [
6
- SidebarTeamRoles.biller,
7
- SidebarTeamRoles.owner
8
- ];
9
- const ProfileMenuProvider = ({ children, config }) => {
10
- const { teams, currentTeamId, planId, isEndOfTrialActive, isFullyAuthenticated, userTeamRole } = config;
11
- const currentTeam = teams.find((t) => t.id === currentTeamId);
12
- const otherTeams = teams.filter((t) => t.id !== currentTeamId);
13
- const canChangeBilling = billingRoles.includes(userTeamRole);
14
- const canAccessTeamSettings = billingRoles.includes(userTeamRole);
15
- const isOnFreeOrTrialPlan = isFreePlan(planId) || isTrialPlan(planId);
16
- const showUpgradeCta = isFullyAuthenticated && isOnFreeOrTrialPlan && canChangeBilling;
17
- const showBillingButton = isFullyAuthenticated && canAccessTeamSettings && canChangeBilling;
18
- const allowTeamCreation = isFullyAuthenticated && !isEndOfTrialActive;
19
- const providerValue = {
20
- ...config,
21
- currentTeam,
22
- otherTeams,
23
- canChangeBilling,
24
- canAccessTeamSettings,
25
- isOnFreeOrTrialPlan,
26
- showUpgradeCta,
27
- showBillingButton,
28
- allowTeamCreation
29
- };
30
- return /* @__PURE__ */ jsx(ProfileMenuContext.Provider, { value: providerValue, children });
4
+ import { useProfileMenu } from "./harmony82.mjs";
5
+ import styles from "./harmony84.mjs";
6
+ const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
7
+ const { currentTeam, planId } = useProfileMenu();
8
+ const contextTeam = team || currentTeam;
9
+ if (!contextTeam) {
10
+ return null;
11
+ }
12
+ const planLabel = isFreePlan(planId) ? "Free" : isTrialPlan(planId) ? "Trial" : void 0;
13
+ const WrapperNode = onClick ? MenuItem : "div";
14
+ return /* @__PURE__ */ jsxs(
15
+ WrapperNode,
16
+ {
17
+ className: styles.wrapper,
18
+ ...onClick && { onClick: () => onClick(contextTeam) },
19
+ children: [
20
+ 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" }) }),
21
+ /* @__PURE__ */ jsxs("div", { className: styles.teamDetails, children: [
22
+ /* @__PURE__ */ jsxs("div", { className: styles.planWrapper, children: [
23
+ /* @__PURE__ */ jsx("span", { title: contextTeam.name, className: styles.teamName, children: contextTeam.name }),
24
+ planLabel && !hidePlanLabel && /* @__PURE__ */ jsx("span", { className: styles.teamName, children: planLabel })
25
+ ] }),
26
+ /* @__PURE__ */ jsx("span", { className: styles.membership, children: contextTeam.role })
27
+ ] })
28
+ ]
29
+ }
30
+ );
31
31
  };
32
32
  export {
33
- ProfileMenuProvider
33
+ TeamMenuItem
34
34
  };
35
35
  //# sourceMappingURL=harmony69.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony69.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.tsx"],"sourcesContent":["import { isFreePlan, isTrialPlan } from '@utils'\nimport type { PropsWithChildren } from 'react'\nimport { type SidebarTeamRole, SidebarTeamRoles } from '../../types'\nimport { ProfileMenuContext } from './ProfileMenuContext'\nimport type { SidebarProfileMenuConfig } from './types'\n\ntype ProfileMenuProviderProps = PropsWithChildren<{\n\tconfig: SidebarProfileMenuConfig\n}>\n\nconst billingRoles: ReadonlyArray<SidebarTeamRole> = [\n\tSidebarTeamRoles.biller,\n\tSidebarTeamRoles.owner,\n]\n\nexport const ProfileMenuProvider = ({ children, config }: ProfileMenuProviderProps) => {\n\tconst { teams, currentTeamId, planId, isEndOfTrialActive, isFullyAuthenticated, userTeamRole } =\n\t\tconfig\n\n\tconst currentTeam = teams.find((t) => t.id === currentTeamId)\n\n\tconst otherTeams = teams.filter((t) => t.id !== currentTeamId)\n\n\tconst canChangeBilling = billingRoles.includes(userTeamRole)\n\n\tconst canAccessTeamSettings = billingRoles.includes(userTeamRole)\n\n\tconst isOnFreeOrTrialPlan = isFreePlan(planId) || isTrialPlan(planId)\n\n\tconst showUpgradeCta = isFullyAuthenticated && isOnFreeOrTrialPlan && canChangeBilling\n\n\tconst showBillingButton = isFullyAuthenticated && canAccessTeamSettings && canChangeBilling\n\n\tconst allowTeamCreation = isFullyAuthenticated && !isEndOfTrialActive\n\n\tconst providerValue = {\n\t\t...config,\n\t\tcurrentTeam,\n\t\totherTeams,\n\t\tcanChangeBilling,\n\t\tcanAccessTeamSettings,\n\t\tisOnFreeOrTrialPlan,\n\t\tshowUpgradeCta,\n\t\tshowBillingButton,\n\t\tallowTeamCreation,\n\t}\n\n\treturn <ProfileMenuContext.Provider value={providerValue}>{children}</ProfileMenuContext.Provider>\n}\n"],"names":[],"mappings":";;;;AAUA,MAAM,eAA+C;AAAA,EACpD,iBAAiB;AAAA,EACjB,iBAAiB;AAClB;AAEO,MAAM,sBAAsB,CAAC,EAAE,UAAU,aAAuC;AACtF,QAAM,EAAE,OAAO,eAAe,QAAQ,oBAAoB,sBAAsB,iBAC/E;AAED,QAAM,cAAc,MAAM,KAAK,CAAC,MAAM,EAAE,OAAO,aAAa;AAE5D,QAAM,aAAa,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,aAAa;AAEvD,QAAA,mBAAmB,aAAa,SAAS,YAAY;AAErD,QAAA,wBAAwB,aAAa,SAAS,YAAY;AAEhE,QAAM,sBAAsB,WAAW,MAAM,KAAK,YAAY,MAAM;AAE9D,QAAA,iBAAiB,wBAAwB,uBAAuB;AAEhE,QAAA,oBAAoB,wBAAwB,yBAAyB;AAErE,QAAA,oBAAoB,wBAAwB,CAAC;AAEnD,QAAM,gBAAgB;AAAA,IACrB,GAAG;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAEA,6BAAQ,mBAAmB,UAAnB,EAA4B,OAAO,eAAgB,UAAS;AACrE;"}
1
+ {"version":3,"file":"harmony69.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '../../../../../utils/billing/plan/plan'\nimport type { SidebarTeam } from '../../../types'\nimport { useProfileMenu } from '../ProfileMenuContext'\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 ProfileMenu component\n * as it requires access to the ProfileMenu context for current team\n * and plan information.\n */\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst { currentTeam, planId } = useProfileMenu()\n\n\tconst contextTeam = team || currentTeam\n\n\tif (!contextTeam) {\n\t\treturn null\n\t}\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\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":";;;;;AAwCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AACpF,QAAM,EAAE,aAAa,OAAO,IAAI,eAAe;AAE/C,QAAM,cAAc,QAAQ;AAE5B,MAAI,CAAC,aAAa;AACV,WAAA;AAAA,EAAA;AAGF,QAAA,YAAY,WAAW,MAAM,IAAI,SAAS,YAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAU,WAAW;AAGxC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,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,8 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const ProfileMenuContext = React.createContext({});
5
- const useProfileMenu = () => React.useContext(ProfileMenuContext);
6
- exports.ProfileMenuContext = ProfileMenuContext;
7
- exports.useProfileMenu = useProfileMenu;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const ProfileMenuContext = require("./harmony82.cjs");
5
+ const TeamMenuItem = require("./harmony69.cjs");
6
+ const TeamSwitch_module = require("./harmony85.cjs");
7
+ const TeamSwitch = ({ onSwitchTeam }) => {
8
+ const { otherTeams } = ProfileMenuContext.useProfileMenu();
9
+ if (otherTeams.length === 0) {
10
+ return null;
11
+ }
12
+ return /* @__PURE__ */ jsxRuntime.jsx(
13
+ "div",
14
+ {
15
+ "data-testid": "sidebar-team-switch",
16
+ className: `flex-col items-stretch ${TeamSwitch_module.default.teamsContainer}`,
17
+ children: otherTeams.map((team) => /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
18
+ }
19
+ );
20
+ };
21
+ exports.TeamSwitch = TeamSwitch;
8
22
  //# sourceMappingURL=harmony70.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony70.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarProfileMenuContextProps } from './types'\n\nexport const ProfileMenuContext = createContext({} as SidebarProfileMenuContextProps)\n\nexport const useProfileMenu = () => useContext(ProfileMenuContext)\n"],"names":["createContext","useContext"],"mappings":";;;AAGa,MAAA,qBAAqBA,MAAc,cAAA,CAAoC,CAAA;AAEvE,MAAA,iBAAiB,MAAMC,MAAAA,WAAW,kBAAkB;;;"}
1
+ {"version":3,"file":"harmony70.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import type { SidebarTeam } from '../../../types'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\ntype TeamSwitchProps = {\n\t/** Callback function triggered when a user selects a different team */\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the ProfileMenu context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context.\n */\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst { otherTeams } = useProfileMenu()\n\n\tif (otherTeams.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useProfileMenu","jsx","styles","TeamMenuItem"],"mappings":";;;;;;AA+BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;AAC1D,QAAA,EAAE,WAAW,IAAIA,kCAAe;AAElC,MAAA,WAAW,WAAW,GAAG;AACrB,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0BC,kBAAA,QAAO,cAAc;AAAA,MAEzD,UAAW,WAAA,IAAI,CAAC,SACfD,2BAAAA,IAAAE,aAAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC,CAC7E;AAAA,IAAA;AAAA,EACF;AAEF;;"}
@@ -1,8 +1,22 @@
1
- import { useContext, createContext } from "react";
2
- const ProfileMenuContext = createContext({});
3
- const useProfileMenu = () => useContext(ProfileMenuContext);
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useProfileMenu } from "./harmony82.mjs";
3
+ import { TeamMenuItem } from "./harmony69.mjs";
4
+ import styles from "./harmony85.mjs";
5
+ const TeamSwitch = ({ onSwitchTeam }) => {
6
+ const { otherTeams } = useProfileMenu();
7
+ if (otherTeams.length === 0) {
8
+ return null;
9
+ }
10
+ return /* @__PURE__ */ jsx(
11
+ "div",
12
+ {
13
+ "data-testid": "sidebar-team-switch",
14
+ className: `flex-col items-stretch ${styles.teamsContainer}`,
15
+ children: otherTeams.map((team) => /* @__PURE__ */ jsx(TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
16
+ }
17
+ );
18
+ };
4
19
  export {
5
- ProfileMenuContext,
6
- useProfileMenu
20
+ TeamSwitch
7
21
  };
8
22
  //# sourceMappingURL=harmony70.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony70.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarProfileMenuContextProps } from './types'\n\nexport const ProfileMenuContext = createContext({} as SidebarProfileMenuContextProps)\n\nexport const useProfileMenu = () => useContext(ProfileMenuContext)\n"],"names":[],"mappings":";AAGa,MAAA,qBAAqB,cAAc,CAAoC,CAAA;AAEvE,MAAA,iBAAiB,MAAM,WAAW,kBAAkB;"}
1
+ {"version":3,"file":"harmony70.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import type { SidebarTeam } from '../../../types'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\ntype TeamSwitchProps = {\n\t/** Callback function triggered when a user selects a different team */\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the ProfileMenu context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context.\n */\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst { otherTeams } = useProfileMenu()\n\n\tif (otherTeams.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;AA+BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;AAC1D,QAAA,EAAE,WAAW,IAAI,eAAe;AAElC,MAAA,WAAW,WAAW,GAAG;AACrB,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0B,OAAO,cAAc;AAAA,MAEzD,UAAW,WAAA,IAAI,CAAC,SACf,oBAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC,CAC7E;AAAA,IAAA;AAAA,EACF;AAEF;"}
@@ -1,12 +1,34 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const container = "_container_q5pot_1";
4
- const profileEmail = "_profileEmail_q5pot_5";
5
- const styles = {
6
- container,
7
- profileEmail
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
5
+ const plan = require("./harmony7.cjs");
6
+ const UpgradeIcon = require("./harmony86.cjs");
7
+ const ProfileMenuContext = require("./harmony82.cjs");
8
+ const UpgradeMenuItem_module = require("./harmony87.cjs");
9
+ const UpgradeMenuItem = ({ upgradeOptionHref }) => {
10
+ const { planId, trialDaysLeft, showUpgradeCta } = ProfileMenuContext.useProfileMenu();
11
+ if (!showUpgradeCta) {
12
+ return null;
13
+ }
14
+ const isOnFreePlan = plan.isFreePlan(planId);
15
+ const daysNoun = trialDaysLeft === 1 ? "day" : "days";
16
+ const ctaMessage = isOnFreePlan ? "Your team is currently on the Free plan" : `Free trial ends in ${trialDaysLeft} ${daysNoun}`;
17
+ return /* @__PURE__ */ jsxRuntime.jsxs(
18
+ louis.MenuItem,
19
+ {
20
+ "data-testid": "sidebar-upgrade-menu-item",
21
+ href: upgradeOptionHref,
22
+ className: `flex-col gap-1 items-start ${UpgradeMenuItem_module.default.container}`,
23
+ children: [
24
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpgradeMenuItem_module.default.planCta, children: ctaMessage }),
25
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-row items-center gap-1 ${UpgradeMenuItem_module.default.upgradeIconWrapper}`, children: [
26
+ /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, {}),
27
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "See upgrade options" })
28
+ ] })
29
+ ]
30
+ }
31
+ );
8
32
  };
9
- exports.container = container;
10
- exports.default = styles;
11
- exports.profileEmail = profileEmail;
33
+ exports.UpgradeMenuItem = UpgradeMenuItem;
12
34
  //# sourceMappingURL=harmony71.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony71.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony71.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.tsx"],"sourcesContent":["import { MenuItem } from '@lokalise/louis'\nimport { isFreePlan } from '@utils'\nimport { UpgradeIcon } from '../../../UpgradeIcon/UpgradeIcon'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport styles from './UpgradeMenuItem.module.css'\n\ntype UpgradeMenuItemProps = {\n\t/** URL to the upgrade page or pricing options */\n\tupgradeOptionHref: string\n}\n\n/**\n * A menu item component that displays upgrade call-to-action information.\n * Only renders when upgrade options should be shown (determined by context).\n *\n * The component displays different messages based on the team's current plan:\n * - For free plans: \"Your team is currently on the Free plan\"\n * - For trial plans: \"Free trial ends in X days\"\n *\n * Includes an upgrade icon and \"See upgrade options\" text, styled to draw attention\n * to the upgrade opportunity.\n *\n * @example\n * ```tsx\n * <UpgradeMenuItem upgradeOptionHref=\"/pricing\" />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context for plan information\n * and visibility control.\n */\nexport const UpgradeMenuItem = ({ upgradeOptionHref }: UpgradeMenuItemProps) => {\n\tconst { planId, trialDaysLeft, showUpgradeCta } = useProfileMenu()\n\n\tif (!showUpgradeCta) {\n\t\treturn null\n\t}\n\n\tconst isOnFreePlan = isFreePlan(planId)\n\n\tconst daysNoun = trialDaysLeft === 1 ? 'day' : 'days'\n\tconst ctaMessage = isOnFreePlan\n\t\t? 'Your team is currently on the Free plan'\n\t\t: `Free trial ends in ${trialDaysLeft} ${daysNoun}`\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-upgrade-menu-item\"\n\t\t\thref={upgradeOptionHref}\n\t\t\tclassName={`flex-col gap-1 items-start ${styles.container}`}\n\t\t>\n\t\t\t<span className={styles.planCta}>{ctaMessage}</span>\n\t\t\t<div className={`flex-row items-center gap-1 ${styles.upgradeIconWrapper}`}>\n\t\t\t\t<UpgradeIcon />\n\t\t\t\t<span>See upgrade options</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":["useProfileMenu","isFreePlan","jsxs","MenuItem","styles","jsx","UpgradeIcon"],"mappings":";;;;;;;;AA+BO,MAAM,kBAAkB,CAAC,EAAE,wBAA8C;AAC/E,QAAM,EAAE,QAAQ,eAAe,eAAA,IAAmBA,mBAAAA,eAAe;AAEjE,MAAI,CAAC,gBAAgB;AACb,WAAA;AAAA,EAAA;AAGF,QAAA,eAAeC,gBAAW,MAAM;AAEhC,QAAA,WAAW,kBAAkB,IAAI,QAAQ;AAC/C,QAAM,aAAa,eAChB,4CACA,sBAAsB,aAAa,IAAI,QAAQ;AAGjD,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAM;AAAA,MACN,WAAW,8BAA8BC,uBAAA,QAAO,SAAS;AAAA,MAEzD,UAAA;AAAA,QAAAC,2BAAA,IAAC,QAAK,EAAA,WAAWD,uBAAO,QAAA,SAAU,UAAW,YAAA;AAAA,wCAC5C,OAAI,EAAA,WAAW,+BAA+BA,+BAAO,kBAAkB,IACvE,UAAA;AAAA,UAAAC,2BAAA,IAACC,YAAY,aAAA,EAAA;AAAA,UACbD,2BAAAA,IAAC,UAAK,UAAmB,sBAAA,CAAA;AAAA,QAAA,EAC1B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,12 +1,34 @@
1
- const container = "_container_q5pot_1";
2
- const profileEmail = "_profileEmail_q5pot_5";
3
- const styles = {
4
- container,
5
- profileEmail
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { MenuItem } from "@lokalise/louis";
3
+ import { isFreePlan } from "./harmony7.mjs";
4
+ import { UpgradeIcon } from "./harmony86.mjs";
5
+ import { useProfileMenu } from "./harmony82.mjs";
6
+ import styles from "./harmony87.mjs";
7
+ const UpgradeMenuItem = ({ upgradeOptionHref }) => {
8
+ const { planId, trialDaysLeft, showUpgradeCta } = useProfileMenu();
9
+ if (!showUpgradeCta) {
10
+ return null;
11
+ }
12
+ const isOnFreePlan = isFreePlan(planId);
13
+ const daysNoun = trialDaysLeft === 1 ? "day" : "days";
14
+ const ctaMessage = isOnFreePlan ? "Your team is currently on the Free plan" : `Free trial ends in ${trialDaysLeft} ${daysNoun}`;
15
+ return /* @__PURE__ */ jsxs(
16
+ MenuItem,
17
+ {
18
+ "data-testid": "sidebar-upgrade-menu-item",
19
+ href: upgradeOptionHref,
20
+ className: `flex-col gap-1 items-start ${styles.container}`,
21
+ children: [
22
+ /* @__PURE__ */ jsx("span", { className: styles.planCta, children: ctaMessage }),
23
+ /* @__PURE__ */ jsxs("div", { className: `flex-row items-center gap-1 ${styles.upgradeIconWrapper}`, children: [
24
+ /* @__PURE__ */ jsx(UpgradeIcon, {}),
25
+ /* @__PURE__ */ jsx("span", { children: "See upgrade options" })
26
+ ] })
27
+ ]
28
+ }
29
+ );
6
30
  };
7
31
  export {
8
- container,
9
- styles as default,
10
- profileEmail
32
+ UpgradeMenuItem
11
33
  };
12
34
  //# sourceMappingURL=harmony71.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony71.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"harmony71.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.tsx"],"sourcesContent":["import { MenuItem } from '@lokalise/louis'\nimport { isFreePlan } from '@utils'\nimport { UpgradeIcon } from '../../../UpgradeIcon/UpgradeIcon'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport styles from './UpgradeMenuItem.module.css'\n\ntype UpgradeMenuItemProps = {\n\t/** URL to the upgrade page or pricing options */\n\tupgradeOptionHref: string\n}\n\n/**\n * A menu item component that displays upgrade call-to-action information.\n * Only renders when upgrade options should be shown (determined by context).\n *\n * The component displays different messages based on the team's current plan:\n * - For free plans: \"Your team is currently on the Free plan\"\n * - For trial plans: \"Free trial ends in X days\"\n *\n * Includes an upgrade icon and \"See upgrade options\" text, styled to draw attention\n * to the upgrade opportunity.\n *\n * @example\n * ```tsx\n * <UpgradeMenuItem upgradeOptionHref=\"/pricing\" />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context for plan information\n * and visibility control.\n */\nexport const UpgradeMenuItem = ({ upgradeOptionHref }: UpgradeMenuItemProps) => {\n\tconst { planId, trialDaysLeft, showUpgradeCta } = useProfileMenu()\n\n\tif (!showUpgradeCta) {\n\t\treturn null\n\t}\n\n\tconst isOnFreePlan = isFreePlan(planId)\n\n\tconst daysNoun = trialDaysLeft === 1 ? 'day' : 'days'\n\tconst ctaMessage = isOnFreePlan\n\t\t? 'Your team is currently on the Free plan'\n\t\t: `Free trial ends in ${trialDaysLeft} ${daysNoun}`\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-upgrade-menu-item\"\n\t\t\thref={upgradeOptionHref}\n\t\t\tclassName={`flex-col gap-1 items-start ${styles.container}`}\n\t\t>\n\t\t\t<span className={styles.planCta}>{ctaMessage}</span>\n\t\t\t<div className={`flex-row items-center gap-1 ${styles.upgradeIconWrapper}`}>\n\t\t\t\t<UpgradeIcon />\n\t\t\t\t<span>See upgrade options</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AA+BO,MAAM,kBAAkB,CAAC,EAAE,wBAA8C;AAC/E,QAAM,EAAE,QAAQ,eAAe,eAAA,IAAmB,eAAe;AAEjE,MAAI,CAAC,gBAAgB;AACb,WAAA;AAAA,EAAA;AAGF,QAAA,eAAe,WAAW,MAAM;AAEhC,QAAA,WAAW,kBAAkB,IAAI,QAAQ;AAC/C,QAAM,aAAa,eAChB,4CACA,sBAAsB,aAAa,IAAI,QAAQ;AAGjD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAM;AAAA,MACN,WAAW,8BAA8B,OAAO,SAAS;AAAA,MAEzD,UAAA;AAAA,QAAA,oBAAC,QAAK,EAAA,WAAW,OAAO,SAAU,UAAW,YAAA;AAAA,6BAC5C,OAAI,EAAA,WAAW,+BAA+B,OAAO,kBAAkB,IACvE,UAAA;AAAA,UAAA,oBAAC,aAAY,EAAA;AAAA,UACb,oBAAC,UAAK,UAAmB,sBAAA,CAAA;AAAA,QAAA,EAC1B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,27 +1,62 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const wrapper = "_wrapper_1in7x_5";
4
- const profileImage = "_profileImage_1in7x_11";
5
- const teamDetails = "_teamDetails_1in7x_19";
6
- const planWrapper = "_planWrapper_1in7x_28";
7
- const teamName = "_teamName_1in7x_36";
8
- const membership = "_membership_1in7x_53";
9
- const defaultProfileImage = "_defaultProfileImage_1in7x_59";
10
- const styles = {
11
- wrapper,
12
- profileImage,
13
- teamDetails,
14
- planWrapper,
15
- teamName,
16
- membership,
17
- defaultProfileImage
18
- };
19
- exports.default = styles;
20
- exports.defaultProfileImage = defaultProfileImage;
21
- exports.membership = membership;
22
- exports.planWrapper = planWrapper;
23
- exports.profileImage = profileImage;
24
- exports.teamDetails = teamDetails;
25
- exports.teamName = teamName;
26
- exports.wrapper = wrapper;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const floatingUi_core = require("./harmony94.cjs");
5
+ const louis = require("@lokalise/louis");
6
+ const useEffectOnce = require("./harmony11.cjs");
7
+ const clsx = require("./harmony60.cjs");
8
+ const React = require("react");
9
+ const Tasks_module = require("./harmony95.cjs");
10
+ const TasksContext = require("./harmony96.cjs");
11
+ const TasksPopover = require("./harmony97.cjs");
12
+ const TasksProvider = require("./harmony98.cjs");
13
+ const taskEvents = require("./harmony99.cjs");
14
+ const Tasks = TasksProvider.withTasksContext(() => {
15
+ const [open, setOpen] = React.useState(false);
16
+ const { tasksCount } = TasksContext.useTasks();
17
+ useEffectOnce.useEffectOnce(() => {
18
+ const showDialog = () => {
19
+ setOpen(true);
20
+ };
21
+ document.addEventListener(taskEvents.TaskEvents.ShowDialog, showDialog);
22
+ return () => {
23
+ document.removeEventListener(taskEvents.TaskEvents.ShowDialog, showDialog);
24
+ };
25
+ });
26
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { tooltip: "Tasks", placement: "right", children: /* @__PURE__ */ jsxRuntime.jsx(
27
+ louis.Popover,
28
+ {
29
+ content: /* @__PURE__ */ jsxRuntime.jsx(TasksPopover.TasksPopover, {}),
30
+ placement: "right",
31
+ open,
32
+ onOpenChange: setOpen,
33
+ middlewares: [
34
+ floatingUi_core.shift({
35
+ // Adding some spacing to the top and bottom so the popover
36
+ // doesn't extend to the edges of the screen.
37
+ padding: {
38
+ top: 32,
39
+ bottom: 32
40
+ }
41
+ })
42
+ ],
43
+ children: (visible) => /* @__PURE__ */ jsxRuntime.jsxs(
44
+ louis.Button,
45
+ {
46
+ type: "button",
47
+ "data-testid": "sidebar-tasks-widget-button",
48
+ "aria-label": "Tasks",
49
+ className: clsx.clsx(Tasks_module.default.navItem, {
50
+ [Tasks_module.default.activeNavItem]: visible
51
+ }),
52
+ children: [
53
+ /* @__PURE__ */ jsxRuntime.jsx(louis.JobIcon, { size: "25px" }),
54
+ tasksCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Tasks_module.default.badge, "aria-label": `${tasksCount} items requiring attention`, children: tasksCount > 9 ? "9+" : tasksCount })
55
+ ]
56
+ }
57
+ )
58
+ }
59
+ ) });
60
+ });
61
+ exports.Tasks = Tasks;
27
62
  //# sourceMappingURL=harmony72.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony72.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony72.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/Tasks.tsx"],"sourcesContent":["import { shift } from '@floating-ui/core'\nimport { Button, JobIcon, Popover, Tooltip } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport styles from './Tasks.module.css'\nimport { useTasks } from './TasksContext'\nimport { TasksPopover } from './TasksPopover/TasksPopover'\nimport { withTasksContext } from './TasksProvider'\nimport { TaskEvents } from './utils/taskEvents'\n\nexport const Tasks = withTasksContext(() => {\n\tconst [open, setOpen] = useState(false)\n\n\tconst { tasksCount } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst showDialog = () => {\n\t\t\tsetOpen(true)\n\t\t}\n\n\t\tdocument.addEventListener(TaskEvents.ShowDialog, showDialog)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.ShowDialog, showDialog)\n\t\t}\n\t})\n\n\treturn (\n\t\t<Tooltip tooltip=\"Tasks\" placement=\"right\">\n\t\t\t<Popover\n\t\t\t\tcontent={<TasksPopover />}\n\t\t\t\tplacement=\"right\"\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tmiddlewares={[\n\t\t\t\t\tshift({\n\t\t\t\t\t\t// Adding some spacing to the top and bottom so the popover\n\t\t\t\t\t\t// doesn't extend to the edges of the screen.\n\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\ttop: 32,\n\t\t\t\t\t\t\tbottom: 32,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{(visible) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdata-testid=\"sidebar-tasks-widget-button\"\n\t\t\t\t\t\taria-label=\"Tasks\"\n\t\t\t\t\t\tclassName={clsx(styles.navItem, {\n\t\t\t\t\t\t\t[styles.activeNavItem]: visible,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobIcon size=\"25px\" />\n\t\t\t\t\t\t{tasksCount > 0 && (\n\t\t\t\t\t\t\t<div className={styles.badge} aria-label={`${tasksCount} items requiring attention`}>\n\t\t\t\t\t\t\t\t{tasksCount > 9 ? '9+' : tasksCount}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</Popover>\n\t\t</Tooltip>\n\t)\n})\n"],"names":["withTasksContext","useState","useTasks","useEffectOnce","TaskEvents","jsx","Tooltip","Popover","TasksPopover","shift","jsxs","Button","clsx","styles","JobIcon"],"mappings":";;;;;;;;;;;;;AAWa,MAAA,QAAQA,+BAAiB,MAAM;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAIC,MAAAA,SAAS,KAAK;AAEhC,QAAA,EAAE,WAAW,IAAIC,sBAAS;AAEhCC,gBAAAA,cAAc,MAAM;AACnB,UAAM,aAAa,MAAM;AACxB,cAAQ,IAAI;AAAA,IACb;AAES,aAAA,iBAAiBC,sBAAW,YAAY,UAAU;AAE3D,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,YAAY,UAAU;AAAA,IAC/D;AAAA,EAAA,CACA;AAED,SACEC,2BAAA,IAAAC,MAAA,SAAA,EAAQ,SAAQ,SAAQ,WAAU,SAClC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,wCAAUC,aAAa,cAAA,EAAA;AAAA,MACvB,WAAU;AAAA,MACV;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACZC,sBAAM;AAAA;AAAA;AAAA,UAGL,SAAS;AAAA,YACR,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QAET,CAAA;AAAA,MACF;AAAA,MAEC,WAAC,YACDC,2BAAA;AAAA,QAACC,MAAA;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,eAAY;AAAA,UACZ,cAAW;AAAA,UACX,WAAWC,KAAAA,KAAKC,aAAA,QAAO,SAAS;AAAA,YAC/B,CAACA,aAAAA,QAAO,aAAa,GAAG;AAAA,UAAA,CACxB;AAAA,UAED,UAAA;AAAA,YAACR,2BAAAA,IAAAS,MAAA,SAAA,EAAQ,MAAK,OAAO,CAAA;AAAA,YACpB,aAAa,KACZT,+BAAA,OAAA,EAAI,WAAWQ,aAAO,QAAA,OAAO,cAAY,GAAG,UAAU,8BACrD,UAAa,aAAA,IAAI,OAAO,WAC1B,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA,GAGH;AAEF,CAAC;;"}
@@ -1,27 +1,62 @@
1
- const wrapper = "_wrapper_1in7x_5";
2
- const profileImage = "_profileImage_1in7x_11";
3
- const teamDetails = "_teamDetails_1in7x_19";
4
- const planWrapper = "_planWrapper_1in7x_28";
5
- const teamName = "_teamName_1in7x_36";
6
- const membership = "_membership_1in7x_53";
7
- const defaultProfileImage = "_defaultProfileImage_1in7x_59";
8
- const styles = {
9
- wrapper,
10
- profileImage,
11
- teamDetails,
12
- planWrapper,
13
- teamName,
14
- membership,
15
- defaultProfileImage
16
- };
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { shift } from "./harmony94.mjs";
3
+ import { Tooltip, Popover, Button, JobIcon } from "@lokalise/louis";
4
+ import { useEffectOnce } from "./harmony11.mjs";
5
+ import { clsx } from "./harmony60.mjs";
6
+ import { useState } from "react";
7
+ import styles from "./harmony95.mjs";
8
+ import { useTasks } from "./harmony96.mjs";
9
+ import { TasksPopover } from "./harmony97.mjs";
10
+ import { withTasksContext } from "./harmony98.mjs";
11
+ import { TaskEvents } from "./harmony99.mjs";
12
+ const Tasks = withTasksContext(() => {
13
+ const [open, setOpen] = useState(false);
14
+ const { tasksCount } = useTasks();
15
+ useEffectOnce(() => {
16
+ const showDialog = () => {
17
+ setOpen(true);
18
+ };
19
+ document.addEventListener(TaskEvents.ShowDialog, showDialog);
20
+ return () => {
21
+ document.removeEventListener(TaskEvents.ShowDialog, showDialog);
22
+ };
23
+ });
24
+ return /* @__PURE__ */ jsx(Tooltip, { tooltip: "Tasks", placement: "right", children: /* @__PURE__ */ jsx(
25
+ Popover,
26
+ {
27
+ content: /* @__PURE__ */ jsx(TasksPopover, {}),
28
+ placement: "right",
29
+ open,
30
+ onOpenChange: setOpen,
31
+ middlewares: [
32
+ shift({
33
+ // Adding some spacing to the top and bottom so the popover
34
+ // doesn't extend to the edges of the screen.
35
+ padding: {
36
+ top: 32,
37
+ bottom: 32
38
+ }
39
+ })
40
+ ],
41
+ children: (visible) => /* @__PURE__ */ jsxs(
42
+ Button,
43
+ {
44
+ type: "button",
45
+ "data-testid": "sidebar-tasks-widget-button",
46
+ "aria-label": "Tasks",
47
+ className: clsx(styles.navItem, {
48
+ [styles.activeNavItem]: visible
49
+ }),
50
+ children: [
51
+ /* @__PURE__ */ jsx(JobIcon, { size: "25px" }),
52
+ tasksCount > 0 && /* @__PURE__ */ jsx("div", { className: styles.badge, "aria-label": `${tasksCount} items requiring attention`, children: tasksCount > 9 ? "9+" : tasksCount })
53
+ ]
54
+ }
55
+ )
56
+ }
57
+ ) });
58
+ });
17
59
  export {
18
- styles as default,
19
- defaultProfileImage,
20
- membership,
21
- planWrapper,
22
- profileImage,
23
- teamDetails,
24
- teamName,
25
- wrapper
60
+ Tasks
26
61
  };
27
62
  //# sourceMappingURL=harmony72.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony72.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony72.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/Tasks.tsx"],"sourcesContent":["import { shift } from '@floating-ui/core'\nimport { Button, JobIcon, Popover, Tooltip } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport styles from './Tasks.module.css'\nimport { useTasks } from './TasksContext'\nimport { TasksPopover } from './TasksPopover/TasksPopover'\nimport { withTasksContext } from './TasksProvider'\nimport { TaskEvents } from './utils/taskEvents'\n\nexport const Tasks = withTasksContext(() => {\n\tconst [open, setOpen] = useState(false)\n\n\tconst { tasksCount } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst showDialog = () => {\n\t\t\tsetOpen(true)\n\t\t}\n\n\t\tdocument.addEventListener(TaskEvents.ShowDialog, showDialog)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.ShowDialog, showDialog)\n\t\t}\n\t})\n\n\treturn (\n\t\t<Tooltip tooltip=\"Tasks\" placement=\"right\">\n\t\t\t<Popover\n\t\t\t\tcontent={<TasksPopover />}\n\t\t\t\tplacement=\"right\"\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tmiddlewares={[\n\t\t\t\t\tshift({\n\t\t\t\t\t\t// Adding some spacing to the top and bottom so the popover\n\t\t\t\t\t\t// doesn't extend to the edges of the screen.\n\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\ttop: 32,\n\t\t\t\t\t\t\tbottom: 32,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{(visible) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdata-testid=\"sidebar-tasks-widget-button\"\n\t\t\t\t\t\taria-label=\"Tasks\"\n\t\t\t\t\t\tclassName={clsx(styles.navItem, {\n\t\t\t\t\t\t\t[styles.activeNavItem]: visible,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobIcon size=\"25px\" />\n\t\t\t\t\t\t{tasksCount > 0 && (\n\t\t\t\t\t\t\t<div className={styles.badge} aria-label={`${tasksCount} items requiring attention`}>\n\t\t\t\t\t\t\t\t{tasksCount > 9 ? '9+' : tasksCount}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</Popover>\n\t\t</Tooltip>\n\t)\n})\n"],"names":[],"mappings":";;;;;;;;;;;AAWa,MAAA,QAAQ,iBAAiB,MAAM;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEhC,QAAA,EAAE,WAAW,IAAI,SAAS;AAEhC,gBAAc,MAAM;AACnB,UAAM,aAAa,MAAM;AACxB,cAAQ,IAAI;AAAA,IACb;AAES,aAAA,iBAAiB,WAAW,YAAY,UAAU;AAE3D,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,YAAY,UAAU;AAAA,IAC/D;AAAA,EAAA,CACA;AAED,SACE,oBAAA,SAAA,EAAQ,SAAQ,SAAQ,WAAU,SAClC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,6BAAU,cAAa,EAAA;AAAA,MACvB,WAAU;AAAA,MACV;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACZ,MAAM;AAAA;AAAA;AAAA,UAGL,SAAS;AAAA,YACR,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QAET,CAAA;AAAA,MACF;AAAA,MAEC,WAAC,YACD;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,eAAY;AAAA,UACZ,cAAW;AAAA,UACX,WAAW,KAAK,OAAO,SAAS;AAAA,YAC/B,CAAC,OAAO,aAAa,GAAG;AAAA,UAAA,CACxB;AAAA,UAED,UAAA;AAAA,YAAC,oBAAA,SAAA,EAAQ,MAAK,OAAO,CAAA;AAAA,YACpB,aAAa,KACZ,oBAAA,OAAA,EAAI,WAAW,OAAO,OAAO,cAAY,GAAG,UAAU,8BACrD,UAAa,aAAA,IAAI,OAAO,WAC1B,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA,GAGH;AAEF,CAAC;"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const teamsContainer = "_teamsContainer_1ncrr_5";
4
- const styles = {
5
- teamsContainer
3
+ const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
4
+ const breadcrumbs = "_breadcrumbs_1hm6a_1";
5
+ const classes = {
6
+ breadcrumbsItem,
7
+ breadcrumbs
6
8
  };
7
- exports.default = styles;
8
- exports.teamsContainer = teamsContainer;
9
+ exports.breadcrumbs = breadcrumbs;
10
+ exports.breadcrumbsItem = breadcrumbsItem;
11
+ exports.default = classes;
9
12
  //# sourceMappingURL=harmony73.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony73.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"harmony73.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}