@lokalise/harmony 1.37.1-exp-epic2x.1 → 1.39.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 (691) hide show
  1. package/dist/harmony.cjs +71 -62
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.css +317 -110
  4. package/dist/harmony.mjs +71 -62
  5. package/dist/harmony.mjs.map +1 -1
  6. package/dist/harmony10.cjs +16 -45
  7. package/dist/harmony10.cjs.map +1 -1
  8. package/dist/harmony10.mjs +16 -45
  9. package/dist/harmony10.mjs.map +1 -1
  10. package/dist/harmony100.cjs +5 -10
  11. package/dist/harmony100.cjs.map +1 -1
  12. package/dist/harmony100.mjs +5 -10
  13. package/dist/harmony100.mjs.map +1 -1
  14. package/dist/harmony101.cjs +9 -29
  15. package/dist/harmony101.cjs.map +1 -1
  16. package/dist/harmony101.mjs +8 -28
  17. package/dist/harmony101.mjs.map +1 -1
  18. package/dist/harmony102.cjs +24 -14
  19. package/dist/harmony102.cjs.map +1 -1
  20. package/dist/harmony102.mjs +23 -13
  21. package/dist/harmony102.mjs.map +1 -1
  22. package/dist/harmony103.cjs +6 -37
  23. package/dist/harmony103.cjs.map +1 -1
  24. package/dist/harmony103.mjs +5 -36
  25. package/dist/harmony103.mjs.map +1 -1
  26. package/dist/harmony104.cjs +18 -11
  27. package/dist/harmony104.cjs.map +1 -1
  28. package/dist/harmony104.mjs +19 -12
  29. package/dist/harmony104.mjs.map +1 -1
  30. package/dist/harmony105.cjs +12 -22
  31. package/dist/harmony105.cjs.map +1 -1
  32. package/dist/harmony105.mjs +11 -21
  33. package/dist/harmony105.mjs.map +1 -1
  34. package/dist/harmony106.cjs +164 -33
  35. package/dist/harmony106.cjs.map +1 -1
  36. package/dist/harmony106.mjs +164 -33
  37. package/dist/harmony106.mjs.map +1 -1
  38. package/dist/harmony107.cjs +44 -21
  39. package/dist/harmony107.cjs.map +1 -1
  40. package/dist/harmony107.mjs +43 -20
  41. package/dist/harmony107.mjs.map +1 -1
  42. package/dist/harmony108.cjs +9 -18
  43. package/dist/harmony108.cjs.map +1 -1
  44. package/dist/harmony108.mjs +10 -19
  45. package/dist/harmony108.mjs.map +1 -1
  46. package/dist/harmony109.cjs +9 -3
  47. package/dist/harmony109.cjs.map +1 -1
  48. package/dist/harmony109.mjs +9 -3
  49. package/dist/harmony109.mjs.map +1 -1
  50. package/dist/harmony11.cjs +51 -8
  51. package/dist/harmony11.cjs.map +1 -1
  52. package/dist/harmony11.mjs +51 -8
  53. package/dist/harmony11.mjs.map +1 -1
  54. package/dist/harmony110.cjs +12 -16
  55. package/dist/harmony110.cjs.map +1 -1
  56. package/dist/harmony110.mjs +11 -15
  57. package/dist/harmony110.mjs.map +1 -1
  58. package/dist/harmony111.cjs +21 -5
  59. package/dist/harmony111.cjs.map +1 -1
  60. package/dist/harmony111.mjs +21 -5
  61. package/dist/harmony111.mjs.map +1 -1
  62. package/dist/harmony112.cjs +15 -6
  63. package/dist/harmony112.cjs.map +1 -1
  64. package/dist/harmony112.mjs +14 -5
  65. package/dist/harmony112.mjs.map +1 -1
  66. package/dist/harmony113.cjs +19 -10
  67. package/dist/harmony113.cjs.map +1 -1
  68. package/dist/harmony113.mjs +18 -9
  69. package/dist/harmony113.mjs.map +1 -1
  70. package/dist/harmony114.cjs +18 -3
  71. package/dist/harmony114.cjs.map +1 -1
  72. package/dist/harmony114.mjs +18 -3
  73. package/dist/harmony114.mjs.map +1 -1
  74. package/dist/harmony115.cjs +6 -9
  75. package/dist/harmony115.cjs.map +1 -1
  76. package/dist/harmony115.mjs +5 -8
  77. package/dist/harmony115.mjs.map +1 -1
  78. package/dist/harmony116.cjs +132 -24
  79. package/dist/harmony116.cjs.map +1 -1
  80. package/dist/harmony116.mjs +131 -23
  81. package/dist/harmony116.mjs.map +1 -1
  82. package/dist/harmony117.cjs +9 -3
  83. package/dist/harmony117.cjs.map +1 -1
  84. package/dist/harmony117.mjs +9 -3
  85. package/dist/harmony117.mjs.map +1 -1
  86. package/dist/harmony118.cjs +6 -13
  87. package/dist/harmony118.cjs.map +1 -1
  88. package/dist/harmony118.mjs +5 -12
  89. package/dist/harmony118.mjs.map +1 -1
  90. package/dist/harmony119.cjs +40 -6
  91. package/dist/harmony119.cjs.map +1 -1
  92. package/dist/harmony119.mjs +39 -5
  93. package/dist/harmony119.mjs.map +1 -1
  94. package/dist/harmony12.cjs +8 -4
  95. package/dist/harmony12.cjs.map +1 -1
  96. package/dist/harmony12.mjs +8 -4
  97. package/dist/harmony12.mjs.map +1 -1
  98. package/dist/harmony120.cjs +60 -96
  99. package/dist/harmony120.cjs.map +1 -1
  100. package/dist/harmony120.mjs +60 -96
  101. package/dist/harmony120.mjs.map +1 -1
  102. package/dist/harmony121.cjs +7 -13
  103. package/dist/harmony121.cjs.map +1 -1
  104. package/dist/harmony121.mjs +7 -13
  105. package/dist/harmony121.mjs.map +1 -1
  106. package/dist/harmony122.cjs +98 -13
  107. package/dist/harmony122.cjs.map +1 -1
  108. package/dist/harmony122.mjs +81 -13
  109. package/dist/harmony122.mjs.map +1 -1
  110. package/dist/harmony123.cjs +86 -35
  111. package/dist/harmony123.cjs.map +1 -1
  112. package/dist/harmony123.mjs +86 -35
  113. package/dist/harmony123.mjs.map +1 -1
  114. package/dist/harmony124.cjs +29 -27
  115. package/dist/harmony124.cjs.map +1 -1
  116. package/dist/harmony124.mjs +29 -27
  117. package/dist/harmony124.mjs.map +1 -1
  118. package/dist/harmony125.cjs +7 -14
  119. package/dist/harmony125.cjs.map +1 -1
  120. package/dist/harmony125.mjs +6 -13
  121. package/dist/harmony125.mjs.map +1 -1
  122. package/dist/harmony126.cjs +6 -16
  123. package/dist/harmony126.cjs.map +1 -1
  124. package/dist/harmony126.mjs +5 -15
  125. package/dist/harmony126.mjs.map +1 -1
  126. package/dist/harmony127.cjs +6 -17
  127. package/dist/harmony127.cjs.map +1 -1
  128. package/dist/harmony127.mjs +5 -16
  129. package/dist/harmony127.mjs.map +1 -1
  130. package/dist/harmony128.cjs +62 -11
  131. package/dist/harmony128.cjs.map +1 -1
  132. package/dist/harmony128.mjs +61 -10
  133. package/dist/harmony128.mjs.map +1 -1
  134. package/dist/harmony129.cjs +88 -16
  135. package/dist/harmony129.cjs.map +1 -1
  136. package/dist/harmony129.mjs +88 -16
  137. package/dist/harmony129.mjs.map +1 -1
  138. package/dist/harmony13.cjs +5 -32
  139. package/dist/harmony13.cjs.map +1 -1
  140. package/dist/harmony13.mjs +5 -32
  141. package/dist/harmony13.mjs.map +1 -1
  142. package/dist/harmony130.cjs +19 -22
  143. package/dist/harmony130.cjs.map +1 -1
  144. package/dist/harmony130.mjs +18 -21
  145. package/dist/harmony130.mjs.map +1 -1
  146. package/dist/harmony131.cjs +10 -12
  147. package/dist/harmony131.cjs.map +1 -1
  148. package/dist/harmony131.mjs +10 -12
  149. package/dist/harmony131.mjs.map +1 -1
  150. package/dist/harmony132.cjs +95 -5
  151. package/dist/harmony132.cjs.map +1 -1
  152. package/dist/harmony132.mjs +95 -5
  153. package/dist/harmony132.mjs.map +1 -1
  154. package/dist/harmony133.cjs +12 -11
  155. package/dist/harmony133.cjs.map +1 -1
  156. package/dist/harmony133.mjs +12 -11
  157. package/dist/harmony133.mjs.map +1 -1
  158. package/dist/harmony134.cjs +13 -31
  159. package/dist/harmony134.cjs.map +1 -1
  160. package/dist/harmony134.mjs +13 -31
  161. package/dist/harmony134.mjs.map +1 -1
  162. package/dist/harmony135.cjs +34 -12
  163. package/dist/harmony135.cjs.map +1 -1
  164. package/dist/harmony135.mjs +34 -12
  165. package/dist/harmony135.mjs.map +1 -1
  166. package/dist/harmony136.cjs +31 -0
  167. package/dist/harmony136.cjs.map +1 -0
  168. package/dist/harmony136.mjs +31 -0
  169. package/dist/harmony136.mjs.map +1 -0
  170. package/dist/harmony137.cjs +10 -0
  171. package/dist/harmony137.cjs.map +1 -0
  172. package/dist/harmony137.mjs +10 -0
  173. package/dist/harmony137.mjs.map +1 -0
  174. package/dist/harmony138.cjs +60 -0
  175. package/dist/harmony138.cjs.map +1 -0
  176. package/dist/harmony138.mjs +60 -0
  177. package/dist/harmony138.mjs.map +1 -0
  178. package/dist/harmony139.cjs +63 -0
  179. package/dist/harmony139.cjs.map +1 -0
  180. package/dist/harmony139.mjs +63 -0
  181. package/dist/harmony139.mjs.map +1 -0
  182. package/dist/harmony14.cjs +32 -5
  183. package/dist/harmony14.cjs.map +1 -1
  184. package/dist/harmony14.mjs +32 -5
  185. package/dist/harmony14.mjs.map +1 -1
  186. package/dist/harmony140.cjs +21 -0
  187. package/dist/harmony140.cjs.map +1 -0
  188. package/dist/harmony140.mjs +21 -0
  189. package/dist/harmony140.mjs.map +1 -0
  190. package/dist/harmony141.cjs +16 -0
  191. package/dist/harmony141.cjs.map +1 -0
  192. package/dist/harmony141.mjs +16 -0
  193. package/dist/harmony141.mjs.map +1 -0
  194. package/dist/harmony142.cjs +18 -0
  195. package/dist/harmony142.cjs.map +1 -0
  196. package/dist/harmony142.mjs +18 -0
  197. package/dist/harmony142.mjs.map +1 -0
  198. package/dist/harmony143.cjs +19 -0
  199. package/dist/harmony143.cjs.map +1 -0
  200. package/dist/harmony143.mjs +19 -0
  201. package/dist/harmony143.mjs.map +1 -0
  202. package/dist/harmony144.cjs +14 -0
  203. package/dist/harmony144.cjs.map +1 -0
  204. package/dist/harmony144.mjs +14 -0
  205. package/dist/harmony144.mjs.map +1 -0
  206. package/dist/harmony145.cjs +19 -0
  207. package/dist/harmony145.cjs.map +1 -0
  208. package/dist/harmony145.mjs +19 -0
  209. package/dist/harmony145.mjs.map +1 -0
  210. package/dist/harmony146.cjs +24 -0
  211. package/dist/harmony146.cjs.map +1 -0
  212. package/dist/harmony146.mjs +24 -0
  213. package/dist/harmony146.mjs.map +1 -0
  214. package/dist/harmony147.cjs +15 -0
  215. package/dist/harmony147.cjs.map +1 -0
  216. package/dist/harmony147.mjs +15 -0
  217. package/dist/harmony147.mjs.map +1 -0
  218. package/dist/harmony148.cjs +9 -0
  219. package/dist/harmony148.cjs.map +1 -0
  220. package/dist/harmony148.mjs +9 -0
  221. package/dist/harmony148.mjs.map +1 -0
  222. package/dist/harmony149.cjs +15 -0
  223. package/dist/harmony149.cjs.map +1 -0
  224. package/dist/harmony149.mjs +15 -0
  225. package/dist/harmony149.mjs.map +1 -0
  226. package/dist/harmony15.cjs +5 -11
  227. package/dist/harmony15.cjs.map +1 -1
  228. package/dist/harmony15.mjs +5 -11
  229. package/dist/harmony15.mjs.map +1 -1
  230. package/dist/harmony150.cjs +35 -0
  231. package/dist/harmony150.cjs.map +1 -0
  232. package/dist/harmony150.mjs +35 -0
  233. package/dist/harmony150.mjs.map +1 -0
  234. package/dist/harmony151.cjs +17 -0
  235. package/dist/harmony151.cjs.map +1 -0
  236. package/dist/harmony151.mjs +17 -0
  237. package/dist/harmony151.mjs.map +1 -0
  238. package/dist/harmony152.cjs +49 -0
  239. package/dist/harmony152.cjs.map +1 -0
  240. package/dist/harmony152.mjs +49 -0
  241. package/dist/harmony152.mjs.map +1 -0
  242. package/dist/harmony153.cjs +15 -0
  243. package/dist/harmony153.cjs.map +1 -0
  244. package/dist/harmony153.mjs +15 -0
  245. package/dist/harmony153.mjs.map +1 -0
  246. package/dist/harmony16.cjs +9 -9
  247. package/dist/harmony16.cjs.map +1 -1
  248. package/dist/harmony16.mjs +9 -9
  249. package/dist/harmony16.mjs.map +1 -1
  250. package/dist/harmony17.cjs +9 -16
  251. package/dist/harmony17.cjs.map +1 -1
  252. package/dist/harmony17.mjs +9 -16
  253. package/dist/harmony17.mjs.map +1 -1
  254. package/dist/harmony18.cjs +16 -14
  255. package/dist/harmony18.cjs.map +1 -1
  256. package/dist/harmony18.mjs +16 -14
  257. package/dist/harmony18.mjs.map +1 -1
  258. package/dist/harmony19.cjs +13 -139
  259. package/dist/harmony19.cjs.map +1 -1
  260. package/dist/harmony19.mjs +13 -139
  261. package/dist/harmony19.mjs.map +1 -1
  262. package/dist/harmony20.cjs +141 -13
  263. package/dist/harmony20.cjs.map +1 -1
  264. package/dist/harmony20.mjs +141 -13
  265. package/dist/harmony20.mjs.map +1 -1
  266. package/dist/harmony21.cjs +20 -17
  267. package/dist/harmony21.cjs.map +1 -1
  268. package/dist/harmony21.mjs +20 -17
  269. package/dist/harmony21.mjs.map +1 -1
  270. package/dist/harmony22.cjs +13 -17
  271. package/dist/harmony22.cjs.map +1 -1
  272. package/dist/harmony22.mjs +13 -17
  273. package/dist/harmony22.mjs.map +1 -1
  274. package/dist/harmony23.cjs +15 -18
  275. package/dist/harmony23.cjs.map +1 -1
  276. package/dist/harmony23.mjs +15 -18
  277. package/dist/harmony23.mjs.map +1 -1
  278. package/dist/harmony24.cjs +17 -19
  279. package/dist/harmony24.cjs.map +1 -1
  280. package/dist/harmony24.mjs +17 -19
  281. package/dist/harmony24.mjs.map +1 -1
  282. package/dist/harmony25.cjs +18 -8
  283. package/dist/harmony25.cjs.map +1 -1
  284. package/dist/harmony25.mjs +18 -8
  285. package/dist/harmony25.mjs.map +1 -1
  286. package/dist/harmony26.cjs +19 -10
  287. package/dist/harmony26.cjs.map +1 -1
  288. package/dist/harmony26.mjs +19 -10
  289. package/dist/harmony26.mjs.map +1 -1
  290. package/dist/harmony27.cjs +10 -55
  291. package/dist/harmony27.cjs.map +1 -1
  292. package/dist/harmony27.mjs +10 -55
  293. package/dist/harmony27.mjs.map +1 -1
  294. package/dist/harmony28.cjs +11 -31
  295. package/dist/harmony28.cjs.map +1 -1
  296. package/dist/harmony28.mjs +11 -31
  297. package/dist/harmony28.mjs.map +1 -1
  298. package/dist/harmony29.cjs +54 -10
  299. package/dist/harmony29.cjs.map +1 -1
  300. package/dist/harmony29.mjs +54 -10
  301. package/dist/harmony29.mjs.map +1 -1
  302. package/dist/harmony3.cjs +9 -5
  303. package/dist/harmony3.cjs.map +1 -1
  304. package/dist/harmony3.mjs +9 -5
  305. package/dist/harmony3.mjs.map +1 -1
  306. package/dist/harmony30.cjs +26 -50
  307. package/dist/harmony30.cjs.map +1 -1
  308. package/dist/harmony30.mjs +27 -51
  309. package/dist/harmony30.mjs.map +1 -1
  310. package/dist/harmony31.cjs +8 -27
  311. package/dist/harmony31.cjs.map +1 -1
  312. package/dist/harmony31.mjs +9 -28
  313. package/dist/harmony31.mjs.map +1 -1
  314. package/dist/harmony32.cjs +52 -15
  315. package/dist/harmony32.cjs.map +1 -1
  316. package/dist/harmony32.mjs +53 -16
  317. package/dist/harmony32.mjs.map +1 -1
  318. package/dist/harmony33.cjs +27 -15
  319. package/dist/harmony33.cjs.map +1 -1
  320. package/dist/harmony33.mjs +28 -16
  321. package/dist/harmony33.mjs.map +1 -1
  322. package/dist/harmony34.cjs +16 -12
  323. package/dist/harmony34.cjs.map +1 -1
  324. package/dist/harmony34.mjs +17 -13
  325. package/dist/harmony34.mjs.map +1 -1
  326. package/dist/harmony35.cjs +28 -14
  327. package/dist/harmony35.cjs.map +1 -1
  328. package/dist/harmony35.mjs +28 -14
  329. package/dist/harmony35.mjs.map +1 -1
  330. package/dist/harmony36.cjs +14 -14
  331. package/dist/harmony36.cjs.map +1 -1
  332. package/dist/harmony36.mjs +14 -14
  333. package/dist/harmony36.mjs.map +1 -1
  334. package/dist/harmony37.cjs +6 -6
  335. package/dist/harmony37.cjs.map +1 -1
  336. package/dist/harmony37.mjs +6 -6
  337. package/dist/harmony37.mjs.map +1 -1
  338. package/dist/harmony38.cjs +6 -6
  339. package/dist/harmony38.cjs.map +1 -1
  340. package/dist/harmony38.mjs +6 -6
  341. package/dist/harmony38.mjs.map +1 -1
  342. package/dist/harmony39.cjs +5 -4
  343. package/dist/harmony39.cjs.map +1 -1
  344. package/dist/harmony39.mjs +5 -4
  345. package/dist/harmony39.mjs.map +1 -1
  346. package/dist/harmony4.cjs +24 -15
  347. package/dist/harmony4.cjs.map +1 -1
  348. package/dist/harmony4.mjs +24 -15
  349. package/dist/harmony4.mjs.map +1 -1
  350. package/dist/harmony40.cjs +7 -15
  351. package/dist/harmony40.cjs.map +1 -1
  352. package/dist/harmony40.mjs +8 -16
  353. package/dist/harmony40.mjs.map +1 -1
  354. package/dist/harmony41.cjs +6 -6
  355. package/dist/harmony41.cjs.map +1 -1
  356. package/dist/harmony41.mjs +7 -7
  357. package/dist/harmony41.mjs.map +1 -1
  358. package/dist/harmony42.cjs +16 -7
  359. package/dist/harmony42.cjs.map +1 -1
  360. package/dist/harmony42.mjs +16 -7
  361. package/dist/harmony42.mjs.map +1 -1
  362. package/dist/harmony43.cjs +7 -11
  363. package/dist/harmony43.cjs.map +1 -1
  364. package/dist/harmony43.mjs +9 -13
  365. package/dist/harmony43.mjs.map +1 -1
  366. package/dist/harmony44.cjs +6 -10
  367. package/dist/harmony44.cjs.map +1 -1
  368. package/dist/harmony44.mjs +8 -12
  369. package/dist/harmony44.mjs.map +1 -1
  370. package/dist/harmony45.cjs +14 -12
  371. package/dist/harmony45.cjs.map +1 -1
  372. package/dist/harmony45.mjs +14 -12
  373. package/dist/harmony45.mjs.map +1 -1
  374. package/dist/harmony46.cjs +14 -12
  375. package/dist/harmony46.cjs.map +1 -1
  376. package/dist/harmony46.mjs +15 -13
  377. package/dist/harmony46.mjs.map +1 -1
  378. package/dist/harmony47.cjs +9 -9
  379. package/dist/harmony47.cjs.map +1 -1
  380. package/dist/harmony47.mjs +9 -9
  381. package/dist/harmony47.mjs.map +1 -1
  382. package/dist/harmony48.cjs +12 -14
  383. package/dist/harmony48.cjs.map +1 -1
  384. package/dist/harmony48.mjs +13 -15
  385. package/dist/harmony48.mjs.map +1 -1
  386. package/dist/harmony49.cjs +12 -14
  387. package/dist/harmony49.cjs.map +1 -1
  388. package/dist/harmony49.mjs +12 -14
  389. package/dist/harmony49.mjs.map +1 -1
  390. package/dist/harmony5.cjs +1 -1
  391. package/dist/harmony5.mjs +1 -1
  392. package/dist/harmony50.cjs +10 -10
  393. package/dist/harmony50.cjs.map +1 -1
  394. package/dist/harmony50.mjs +10 -10
  395. package/dist/harmony50.mjs.map +1 -1
  396. package/dist/harmony51.cjs +8 -8
  397. package/dist/harmony51.cjs.map +1 -1
  398. package/dist/harmony51.mjs +8 -8
  399. package/dist/harmony51.mjs.map +1 -1
  400. package/dist/harmony52.cjs +8 -8
  401. package/dist/harmony52.cjs.map +1 -1
  402. package/dist/harmony52.mjs +8 -8
  403. package/dist/harmony52.mjs.map +1 -1
  404. package/dist/harmony53.cjs +14 -12
  405. package/dist/harmony53.cjs.map +1 -1
  406. package/dist/harmony53.mjs +14 -12
  407. package/dist/harmony53.mjs.map +1 -1
  408. package/dist/harmony54.cjs +8 -8
  409. package/dist/harmony54.cjs.map +1 -1
  410. package/dist/harmony54.mjs +8 -8
  411. package/dist/harmony54.mjs.map +1 -1
  412. package/dist/harmony55.cjs +12 -14
  413. package/dist/harmony55.cjs.map +1 -1
  414. package/dist/harmony55.mjs +12 -14
  415. package/dist/harmony55.mjs.map +1 -1
  416. package/dist/harmony56.cjs +10 -7
  417. package/dist/harmony56.cjs.map +1 -1
  418. package/dist/harmony56.mjs +12 -9
  419. package/dist/harmony56.mjs.map +1 -1
  420. package/dist/harmony57.cjs +10 -7
  421. package/dist/harmony57.cjs.map +1 -1
  422. package/dist/harmony57.mjs +12 -9
  423. package/dist/harmony57.mjs.map +1 -1
  424. package/dist/harmony58.cjs +13 -123
  425. package/dist/harmony58.cjs.map +1 -1
  426. package/dist/harmony58.mjs +13 -123
  427. package/dist/harmony58.mjs.map +1 -1
  428. package/dist/harmony59.cjs +13 -81
  429. package/dist/harmony59.cjs.map +1 -1
  430. package/dist/harmony59.mjs +13 -81
  431. package/dist/harmony59.mjs.map +1 -1
  432. package/dist/harmony6.cjs +4 -4
  433. package/dist/harmony6.cjs.map +1 -1
  434. package/dist/harmony6.mjs +4 -4
  435. package/dist/harmony6.mjs.map +1 -1
  436. package/dist/harmony60.cjs +122 -4
  437. package/dist/harmony60.cjs.map +1 -1
  438. package/dist/harmony60.mjs +122 -4
  439. package/dist/harmony60.mjs.map +1 -1
  440. package/dist/harmony61.cjs +81 -22
  441. package/dist/harmony61.cjs.map +1 -1
  442. package/dist/harmony61.mjs +80 -21
  443. package/dist/harmony61.mjs.map +1 -1
  444. package/dist/harmony62.cjs +4 -18
  445. package/dist/harmony62.cjs.map +1 -1
  446. package/dist/harmony62.mjs +4 -18
  447. package/dist/harmony62.mjs.map +1 -1
  448. package/dist/harmony63.cjs +11 -131
  449. package/dist/harmony63.cjs.map +1 -1
  450. package/dist/harmony63.mjs +11 -131
  451. package/dist/harmony63.mjs.map +1 -1
  452. package/dist/harmony64.cjs +37 -34
  453. package/dist/harmony64.cjs.map +1 -1
  454. package/dist/harmony64.mjs +37 -34
  455. package/dist/harmony64.mjs.map +1 -1
  456. package/dist/harmony65.cjs +143 -24
  457. package/dist/harmony65.cjs.map +1 -1
  458. package/dist/harmony65.mjs +143 -24
  459. package/dist/harmony65.mjs.map +1 -1
  460. package/dist/harmony66.cjs +35 -7
  461. package/dist/harmony66.cjs.map +1 -1
  462. package/dist/harmony66.mjs +35 -7
  463. package/dist/harmony66.mjs.map +1 -1
  464. package/dist/harmony67.cjs +24 -82
  465. package/dist/harmony67.cjs.map +1 -1
  466. package/dist/harmony67.mjs +24 -82
  467. package/dist/harmony67.mjs.map +1 -1
  468. package/dist/harmony68.cjs +7 -32
  469. package/dist/harmony68.cjs.map +1 -1
  470. package/dist/harmony68.mjs +7 -32
  471. package/dist/harmony68.mjs.map +1 -1
  472. package/dist/harmony69.cjs +82 -16
  473. package/dist/harmony69.cjs.map +1 -1
  474. package/dist/harmony69.mjs +82 -16
  475. package/dist/harmony69.mjs.map +1 -1
  476. package/dist/harmony7.cjs +1 -1
  477. package/dist/harmony7.mjs +1 -1
  478. package/dist/harmony70.cjs +55 -16
  479. package/dist/harmony70.cjs.map +1 -1
  480. package/dist/harmony70.mjs +54 -15
  481. package/dist/harmony70.mjs.map +1 -1
  482. package/dist/harmony71.cjs +19 -19
  483. package/dist/harmony71.cjs.map +1 -1
  484. package/dist/harmony71.mjs +18 -18
  485. package/dist/harmony71.mjs.map +1 -1
  486. package/dist/harmony72.cjs +14 -60
  487. package/dist/harmony72.cjs.map +1 -1
  488. package/dist/harmony72.mjs +14 -60
  489. package/dist/harmony72.mjs.map +1 -1
  490. package/dist/harmony73.cjs +18 -51
  491. package/dist/harmony73.cjs.map +1 -1
  492. package/dist/harmony73.mjs +17 -50
  493. package/dist/harmony73.mjs.map +1 -1
  494. package/dist/harmony74.cjs +62 -40
  495. package/dist/harmony74.cjs.map +1 -1
  496. package/dist/harmony74.mjs +61 -39
  497. package/dist/harmony74.mjs.map +1 -1
  498. package/dist/harmony75.cjs +5 -8
  499. package/dist/harmony75.cjs.map +1 -1
  500. package/dist/harmony75.mjs +5 -8
  501. package/dist/harmony75.mjs.map +1 -1
  502. package/dist/harmony76.cjs +8 -7
  503. package/dist/harmony76.cjs.map +1 -1
  504. package/dist/harmony76.mjs +9 -8
  505. package/dist/harmony76.mjs.map +1 -1
  506. package/dist/harmony77.cjs +14 -25
  507. package/dist/harmony77.cjs.map +1 -1
  508. package/dist/harmony77.mjs +15 -26
  509. package/dist/harmony77.mjs.map +1 -1
  510. package/dist/harmony78.cjs +23 -3
  511. package/dist/harmony78.cjs.map +1 -1
  512. package/dist/harmony78.mjs +23 -3
  513. package/dist/harmony78.mjs.map +1 -1
  514. package/dist/harmony79.cjs +4 -32
  515. package/dist/harmony79.cjs.map +1 -1
  516. package/dist/harmony79.mjs +5 -33
  517. package/dist/harmony79.mjs.map +1 -1
  518. package/dist/harmony8.cjs +59 -30
  519. package/dist/harmony8.cjs.map +1 -1
  520. package/dist/harmony8.mjs +59 -30
  521. package/dist/harmony8.mjs.map +1 -1
  522. package/dist/harmony80.cjs +30 -25
  523. package/dist/harmony80.cjs.map +1 -1
  524. package/dist/harmony80.mjs +30 -25
  525. package/dist/harmony80.mjs.map +1 -1
  526. package/dist/harmony81.cjs +32 -3
  527. package/dist/harmony81.cjs.map +1 -1
  528. package/dist/harmony81.mjs +32 -3
  529. package/dist/harmony81.mjs.map +1 -1
  530. package/dist/harmony82.cjs +15 -14
  531. package/dist/harmony82.cjs.map +1 -1
  532. package/dist/harmony82.mjs +15 -14
  533. package/dist/harmony82.mjs.map +1 -1
  534. package/dist/harmony83.cjs +25 -69
  535. package/dist/harmony83.cjs.map +1 -1
  536. package/dist/harmony83.mjs +27 -71
  537. package/dist/harmony83.mjs.map +1 -1
  538. package/dist/harmony84.cjs +58 -11
  539. package/dist/harmony84.cjs.map +1 -1
  540. package/dist/harmony84.mjs +59 -12
  541. package/dist/harmony84.mjs.map +1 -1
  542. package/dist/harmony85.cjs +10 -31
  543. package/dist/harmony85.cjs.map +1 -1
  544. package/dist/harmony85.mjs +9 -30
  545. package/dist/harmony85.mjs.map +1 -1
  546. package/dist/harmony86.cjs +7 -8
  547. package/dist/harmony86.cjs.map +1 -1
  548. package/dist/harmony86.mjs +8 -9
  549. package/dist/harmony86.mjs.map +1 -1
  550. package/dist/harmony87.cjs +20 -38
  551. package/dist/harmony87.cjs.map +1 -1
  552. package/dist/harmony87.mjs +22 -40
  553. package/dist/harmony87.mjs.map +1 -1
  554. package/dist/harmony88.cjs +4 -10
  555. package/dist/harmony88.cjs.map +1 -1
  556. package/dist/harmony88.mjs +3 -9
  557. package/dist/harmony88.mjs.map +1 -1
  558. package/dist/harmony89.cjs +31 -9
  559. package/dist/harmony89.cjs.map +1 -1
  560. package/dist/harmony89.mjs +32 -10
  561. package/dist/harmony89.mjs.map +1 -1
  562. package/dist/harmony9.cjs +30 -23
  563. package/dist/harmony9.cjs.map +1 -1
  564. package/dist/harmony9.mjs +30 -23
  565. package/dist/harmony9.mjs.map +1 -1
  566. package/dist/harmony90.cjs +44 -22
  567. package/dist/harmony90.cjs.map +1 -1
  568. package/dist/harmony90.mjs +43 -21
  569. package/dist/harmony90.mjs.map +1 -1
  570. package/dist/harmony91.cjs +28 -11
  571. package/dist/harmony91.cjs.map +1 -1
  572. package/dist/harmony91.mjs +28 -11
  573. package/dist/harmony91.mjs.map +1 -1
  574. package/dist/harmony92.cjs +67 -13
  575. package/dist/harmony92.cjs.map +1 -1
  576. package/dist/harmony92.mjs +66 -12
  577. package/dist/harmony92.mjs.map +1 -1
  578. package/dist/harmony93.cjs +11 -95
  579. package/dist/harmony93.cjs.map +1 -1
  580. package/dist/harmony93.mjs +12 -79
  581. package/dist/harmony93.mjs.map +1 -1
  582. package/dist/harmony94.cjs +3 -14
  583. package/dist/harmony94.cjs.map +1 -1
  584. package/dist/harmony94.mjs +3 -14
  585. package/dist/harmony94.mjs.map +1 -1
  586. package/dist/harmony95.cjs +7 -21
  587. package/dist/harmony95.cjs.map +1 -1
  588. package/dist/harmony95.mjs +6 -20
  589. package/dist/harmony95.mjs.map +1 -1
  590. package/dist/harmony97.cjs +9 -14
  591. package/dist/harmony97.cjs.map +1 -1
  592. package/dist/harmony97.mjs +8 -13
  593. package/dist/harmony97.mjs.map +1 -1
  594. package/dist/harmony98.cjs +53 -13
  595. package/dist/harmony98.cjs.map +1 -1
  596. package/dist/harmony98.mjs +55 -15
  597. package/dist/harmony98.mjs.map +1 -1
  598. package/dist/harmony99.cjs +40 -19
  599. package/dist/harmony99.cjs.map +1 -1
  600. package/dist/harmony99.mjs +41 -20
  601. package/dist/harmony99.mjs.map +1 -1
  602. package/dist/types/src/components/NavigationPanel/components/DropdownContent/DropdownContent.d.ts +1 -1
  603. package/dist/types/src/components/NavigationPanel/components/NavigationTabs/NavigationTabs.d.ts +1 -1
  604. package/dist/types/src/components/NavigationPanel/components/NavigationTabs/__fixtures__/navigationMock.d.ts +1 -1
  605. package/dist/types/src/components/NavigationPanel/components/NavigationTabs/helpers.d.ts +1 -1
  606. package/dist/types/src/components/Sidebar/Sidebar.d.ts +49 -15
  607. package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +0 -5
  608. package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +2 -3
  609. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +24 -11
  610. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.stories.d.ts +5 -3
  611. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContent.d.ts +6 -0
  612. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.d.ts +3 -0
  613. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.d.ts +7 -0
  614. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +35 -10
  615. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +3 -1
  616. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +7 -5
  617. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +9 -6
  618. package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/content.d.ts +0 -4
  619. package/dist/types/src/components/Sidebar/types.d.ts +0 -72
  620. package/dist/types/src/components/Sidebar/utils/index.d.ts +4 -0
  621. package/dist/types/src/features/auth/core/types/jwtTokenPayload.d.ts +10 -16
  622. package/dist/types/src/features/auth/core/types/jwtTokenPayload.fixture.d.ts +11 -15
  623. package/dist/types/src/features/auth/factories/headerBuilderFactories.d.ts +9 -0
  624. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedProjectContributor.d.ts +1 -1
  625. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedSessionPayload.d.ts +5 -7
  626. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
  627. package/dist/types/src/features/auth/node.d.ts +1 -0
  628. package/dist/types/src/features/auth/utils/permissions.d.ts +2 -0
  629. package/dist/types/src/features/navigation/ProjectNavigationPanel.d.ts +13 -0
  630. package/dist/types/src/features/navigation/core/NavigationClient.d.ts +23 -0
  631. package/dist/types/src/features/navigation/hooks/useExpertNavigation.d.ts +8 -0
  632. package/dist/types/src/features/navigation/hooks/useNavigation.d.ts +18 -0
  633. package/dist/types/src/features/navigation/hooks/useNavigationQueries.d.ts +279 -0
  634. package/dist/types/src/features/navigation/hooks/useNextgenNavigation.d.ts +16 -0
  635. package/dist/types/src/features/navigation/providers/NavigationClientProvider.d.ts +9 -0
  636. package/dist/types/src/features/navigation/schemas/navigationSchema.d.ts +22 -0
  637. package/dist/types/src/{components/NavigationPanel → features/navigation}/types/navigation.d.ts +1 -0
  638. package/dist/types/src/features/navigation/utils/toolbarVisibility.d.ts +28 -0
  639. package/dist/types/src/features/publicApi/contributors.d.ts +16 -16
  640. package/dist/types/src/features/publicApi/hooks/useAddContributorsMutation.d.ts +1 -1
  641. package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +3 -2
  642. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +2 -2
  643. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
  644. package/dist/types/src/features/publicApi/hooks/useListContributorsQuery.d.ts +1 -1
  645. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +1 -1
  646. package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +3 -2
  647. package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
  648. package/dist/types/src/features/publicApi/hooks/useRetrieveContributorQuery.d.ts +1 -1
  649. package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +2 -1
  650. package/dist/types/src/features/publicApi/hooks/useRetrieveUserPermissions.d.ts +23 -0
  651. package/dist/types/src/features/publicApi/hooks/useUpdateContributorMutation.d.ts +1 -1
  652. package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +2 -1
  653. package/dist/types/src/features/publicApi/permissionTemplates.d.ts +4 -4
  654. package/dist/types/src/features/publicApi/projects.d.ts +50 -28
  655. package/dist/types/src/features/publicApi/teamUsers.d.ts +119 -8
  656. package/dist/types/src/features/publicApi/types/contributorTypes.d.ts +18 -18
  657. package/dist/types/src/features/publicApi/types/permissionTemplateTypes.d.ts +6 -6
  658. package/dist/types/src/features/publicApi/types/permissionTypes.d.ts +3 -2
  659. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +42 -27
  660. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +76 -10
  661. package/dist/types/src/node.d.ts +2 -0
  662. package/dist/types/src/shared/queryClient.d.ts +2 -0
  663. package/package.json +2 -1
  664. package/dist/types/src/components/Sidebar/SidebarContent/SidebarContent.d.ts +0 -7
  665. package/dist/types/src/components/Sidebar/SidebarContext.d.ts +0 -3
  666. package/dist/types/src/components/Sidebar/SidebarProvider.d.ts +0 -3
  667. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.d.ts +0 -13
  668. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.d.ts +0 -13
  669. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.d.ts +0 -17
  670. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.test.d.ts +0 -1
  671. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.d.ts +0 -17
  672. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.test.d.ts +0 -1
  673. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.d.ts +0 -18
  674. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.test.d.ts +0 -1
  675. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.d.ts +0 -13
  676. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.test.d.ts +0 -1
  677. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.test.d.ts +0 -1
  678. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.d.ts +0 -13
  679. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.test.d.ts +0 -1
  680. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.test.d.ts +0 -1
  681. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.test.d.ts +0 -1
  682. package/dist/types/src/components/Sidebar/hooks/useSidebar.d.ts +0 -1
  683. package/dist/types/src/components/Sidebar/hooks/useSidebarDataLoader.d.ts +0 -5
  684. package/dist/types/src/utils/user/permissions.d.ts +0 -9
  685. package/dist/types/src/utils/user/permissions.test.d.ts +0 -1
  686. package/dist/types/tests/mocks/sidebar/sidebar.d.ts +0 -19
  687. package/dist/types/tests/utils/sidebar.d.ts +0 -4
  688. /package/dist/types/src/components/{Sidebar/Widgets/Avatar/Avatar.test.d.ts → NavigationPanel/NavigationPanel.test.d.ts} +0 -0
  689. /package/dist/types/src/components/Sidebar/{Widgets/ProfileMenu/UpgradeIcon → UpgradeIcon}/UpgradeIcon.d.ts +0 -0
  690. /package/dist/types/src/components/Sidebar/Widgets/{HelpMenu/HelpMenu.test.d.ts → ProfileMenu/ProfileMenu.test.d.ts} +0 -0
  691. /package/dist/types/src/{components/Sidebar/Widgets/IconLink/IconLink.test.d.ts → shared/queryClient.test.d.ts} +0 -0
@@ -1,30 +1,35 @@
1
- import { useState } from "react";
2
- const useSidebarDataLoader = (callback) => {
3
- const [result, setResult] = useState(null);
4
- const [loading, setLoading] = useState(true);
5
- const [error, setError] = useState(false);
6
- const loadData = async (args) => {
7
- const result2 = await callback(args);
8
- if (result2) {
9
- setResult(result2);
10
- setLoading(false);
11
- setError(false);
12
- return result2;
13
- }
14
- setError(true);
15
- setLoading(false);
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { MenuItem, MenuDivider } from "@lokalise/louis";
3
+ import { useProfileMenu } from "./harmony100.mjs";
4
+ import styles from "./harmony101.mjs";
5
+ const ProfileSettingsMenuItem = ({
6
+ href,
7
+ onClick,
8
+ userEmail,
9
+ hideBottomDivider
10
+ }) => {
11
+ const { isEndOfTrialActive, isTeamSuspended } = useProfileMenu();
12
+ if (isEndOfTrialActive || isTeamSuspended) {
16
13
  return null;
17
- };
18
- return {
19
- data: {
20
- result,
21
- loading,
22
- error
23
- },
24
- loadData
25
- };
14
+ }
15
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
16
+ /* @__PURE__ */ jsx(
17
+ MenuItem,
18
+ {
19
+ href,
20
+ onClick: () => {
21
+ onClick == null ? void 0 : onClick();
22
+ },
23
+ children: /* @__PURE__ */ jsxs("div", { className: `flex-col ${styles.container}`, children: [
24
+ /* @__PURE__ */ jsx("span", { children: "Profile Settings" }),
25
+ /* @__PURE__ */ jsx("span", { className: styles.profileEmail, children: userEmail })
26
+ ] })
27
+ }
28
+ ),
29
+ !hideBottomDivider && /* @__PURE__ */ jsx(MenuDivider, {})
30
+ ] });
26
31
  };
27
32
  export {
28
- useSidebarDataLoader
33
+ ProfileSettingsMenuItem
29
34
  };
30
35
  //# sourceMappingURL=harmony80.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony80.mjs","sources":["../src/components/Sidebar/hooks/useSidebarDataLoader.ts"],"sourcesContent":["import type { SidebarDataBase } from '@components/Sidebar/types'\nimport { useState } from 'react'\n\nexport const useSidebarDataLoader = <T, A = void>(\n\tcallback: (args: A) => Promise<T | null>,\n): {\n\tdata: SidebarDataBase<T>\n\tloadData: (args: A) => Promise<T | null>\n} => {\n\tconst [result, setResult] = useState<T | null>(null)\n\n\tconst [loading, setLoading] = useState(true)\n\n\tconst [error, setError] = useState(false)\n\n\tconst loadData = async (args: A): Promise<T | null> => {\n\t\tconst result = await callback(args)\n\n\t\tif (result) {\n\t\t\tsetResult(result)\n\t\t\tsetLoading(false)\n\t\t\tsetError(false)\n\n\t\t\treturn result\n\t\t}\n\n\t\tsetError(true)\n\t\tsetLoading(false)\n\t\treturn null\n\t}\n\n\treturn {\n\t\tdata: {\n\t\t\tresult,\n\t\t\tloading,\n\t\t\terror,\n\t\t},\n\t\tloadData,\n\t}\n}\n"],"names":["result"],"mappings":";AAGa,MAAA,uBAAuB,CACnC,aAII;AACJ,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAmB,IAAI;AAEnD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAE3C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,KAAK;AAElC,QAAA,WAAW,OAAO,SAA+B;AAChDA,UAAAA,UAAS,MAAM,SAAS,IAAI;AAElC,QAAIA,SAAQ;AACX,gBAAUA,OAAM;AAChB,iBAAW,KAAK;AAChB,eAAS,KAAK;AAEPA,aAAAA;AAAAA,IAAA;AAGR,aAAS,IAAI;AACb,eAAW,KAAK;AACT,WAAA;AAAA,EACR;AAEO,SAAA;AAAA,IACN,MAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,IACA;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"harmony80.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.tsx"],"sourcesContent":["import { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport styles from './ProfileSettingsMenuItem.module.css'\n\ntype ProfileSettingsMenuItemProps = {\n\t/** URL to the profile settings page */\n\thref: string\n\t/** User's email address to display below \"Profile Settings\" */\n\tuserEmail: string\n\t/** Optional callback function for tracking or additional actions */\n\tonClick?: () => void\n\t/** Whether to hide the divider that appears below this menu item */\n\thideBottomDivider?: boolean\n}\n\n/**\n * A menu item component that provides access to profile settings.\n *\n * Features:\n * - Displays \"Profile Settings\" with the user's email address below\n * - Conditionally renders based on team status\n * - Includes an optional divider below the item\n * - Will not render if:\n * - Team is suspended\n * - Team's trial period has ended\n *\n * @example\n * ```tsx\n * <ProfileSettingsMenuItem\n * href=\"/settings/profile\"\n * userEmail=\"user@example.com\"\n * onClick={() => trackSettingsClick()}\n * />\n *\n * // Without bottom divider\n * <ProfileSettingsMenuItem\n * href=\"/settings/profile\"\n * userEmail=\"user@example.com\"\n * hideBottomDivider\n * />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context for team status information.\n */\nexport const ProfileSettingsMenuItem = ({\n\thref,\n\tonClick,\n\tuserEmail,\n\thideBottomDivider,\n}: ProfileSettingsMenuItemProps) => {\n\tconst { isEndOfTrialActive, isTeamSuspended } = useProfileMenu()\n\n\tif (isEndOfTrialActive || isTeamSuspended) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MenuItem\n\t\t\t\thref={href}\n\t\t\t\tonClick={() => {\n\t\t\t\t\tonClick?.()\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className={`flex-col ${styles.container}`}>\n\t\t\t\t\t<span>Profile Settings</span>\n\t\t\t\t\t<span className={styles.profileEmail}>{userEmail}</span>\n\t\t\t\t</div>\n\t\t\t</MenuItem>\n\n\t\t\t{!hideBottomDivider && <MenuDivider />}\n\t\t</>\n\t)\n}\n"],"names":[],"mappings":";;;;AA6CO,MAAM,0BAA0B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAoC;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,IAAI,eAAe;AAE/D,MAAI,sBAAsB,iBAAiB;AACnC,WAAA;AAAA,EAAA;AAGR,SAEE,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACA;AAAA,QACA,SAAS,MAAM;AACJ;AAAA,QACX;AAAA,QAEA,+BAAC,OAAI,EAAA,WAAW,YAAY,OAAO,SAAS,IAC3C,UAAA;AAAA,UAAA,oBAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,UACrB,oBAAA,QAAA,EAAK,WAAW,OAAO,cAAe,UAAU,UAAA,CAAA;AAAA,QAAA,EAClD,CAAA;AAAA,MAAA;AAAA,IACD;AAAA,IAEC,CAAC,qBAAqB,oBAAC,aAAY,CAAA,CAAA;AAAA,EAAA,GACrC;AAEF;"}
@@ -1,6 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const React = require("react");
4
- const SidebarContext = React.createContext({});
5
- exports.SidebarContext = SidebarContext;
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const louis = require("@lokalise/louis");
5
+ const plan = require("./harmony9.cjs");
6
+ const ProfileMenuContext = require("./harmony100.cjs");
7
+ const TeamMenuItem_module = require("./harmony102.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
+ };
34
+ exports.TeamMenuItem = TeamMenuItem;
6
35
  //# sourceMappingURL=harmony81.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony81.cjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":["createContext"],"mappings":";;;AAGa,MAAA,iBAAiBA,MAAc,cAAA,CAAyB,CAAA;;"}
1
+ {"version":3,"file":"harmony81.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,6 +1,35 @@
1
- import { createContext } from "react";
2
- const SidebarContext = createContext({});
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { MenuItem, UserIcon } from "@lokalise/louis";
3
+ import { isFreePlan, isTrialPlan } from "./harmony9.mjs";
4
+ import { useProfileMenu } from "./harmony100.mjs";
5
+ import styles from "./harmony102.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
+ };
3
32
  export {
4
- SidebarContext
33
+ TeamMenuItem
5
34
  };
6
35
  //# sourceMappingURL=harmony81.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony81.mjs","sources":["../src/components/Sidebar/SidebarContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\nimport type { SidebarContextProps } from './types'\n\nexport const SidebarContext = createContext({} as SidebarContextProps)\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":[],"mappings":";AAGa,MAAA,iBAAiB,cAAc,CAAyB,CAAA;"}
1
+ {"version":3,"file":"harmony81.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,21 +1,22 @@
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");
5
- const clsx = require("./harmony70.cjs");
6
- const IconLink_module = require("./harmony96.cjs");
7
- const IconLink = ({ label, to, icon: Icon }) => {
8
- return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsxRuntime.jsx(
9
- louis.Link,
4
+ const ProfileMenuContext = require("./harmony100.cjs");
5
+ const TeamMenuItem = require("./harmony81.cjs");
6
+ const TeamSwitch_module = require("./harmony103.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",
10
14
  {
11
- "aria-label": label,
12
- className: clsx.clsx(IconLink_module.default.link, {
13
- [IconLink_module.default.active]: window.location.pathname.startsWith(to)
14
- }),
15
- href: to,
16
- children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: "25px" })
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))
17
18
  }
18
- ) });
19
+ );
19
20
  };
20
- exports.IconLink = IconLink;
21
+ exports.TeamSwitch = TeamSwitch;
21
22
  //# sourceMappingURL=harmony82.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony82.cjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":["jsx","Tooltip","Link","clsx","styles"],"mappings":";;;;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACEA,2BAAA,IAAAC,MAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAWC,KAAAA,KAAKC,gBAAA,QAAO,MAAM;AAAA,QAC5B,CAACA,gBAAAA,QAAO,MAAM,GAAG,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACvD;AAAA,MACD,MAAM;AAAA,MAEN,UAAAJ,2BAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;;"}
1
+ {"version":3,"file":"harmony82.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,21 +1,22 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { Tooltip, Link } from "@lokalise/louis";
3
- import { clsx } from "./harmony70.mjs";
4
- import styles from "./harmony96.mjs";
5
- const IconLink = ({ label, to, icon: Icon }) => {
6
- return /* @__PURE__ */ jsx(Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsx(
7
- Link,
2
+ import { useProfileMenu } from "./harmony100.mjs";
3
+ import { TeamMenuItem } from "./harmony81.mjs";
4
+ import styles from "./harmony103.mjs";
5
+ const TeamSwitch = ({ onSwitchTeam }) => {
6
+ const { otherTeams } = useProfileMenu();
7
+ if (otherTeams.length === 0) {
8
+ return null;
9
+ }
10
+ return /* @__PURE__ */ jsx(
11
+ "div",
8
12
  {
9
- "aria-label": label,
10
- className: clsx(styles.link, {
11
- [styles.active]: window.location.pathname.startsWith(to)
12
- }),
13
- href: to,
14
- children: /* @__PURE__ */ jsx(Icon, { size: "25px" })
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))
15
16
  }
16
- ) });
17
+ );
17
18
  };
18
19
  export {
19
- IconLink
20
+ TeamSwitch
20
21
  };
21
22
  //# sourceMappingURL=harmony82.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony82.mjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":[],"mappings":";;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACE,oBAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW,KAAK,OAAO,MAAM;AAAA,QAC5B,CAAC,OAAO,MAAM,GAAG,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACvD;AAAA,MACD,MAAM;AAAA,MAEN,UAAA,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;"}
1
+ {"version":3,"file":"harmony82.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,78 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const BillingMenuItem = require("./harmony97.cjs");
5
- const CreateNewTeam = require("./harmony98.cjs");
6
- const CreateNewTeamPlaceholder = require("./harmony99.cjs");
7
- const DarkModeToggle = require("./harmony100.cjs");
8
- const ProfileSettingsMenuItem = require("./harmony101.cjs");
9
- const ProviderMenuItem = require("./harmony102.cjs");
10
- const TeamMenuItem = require("./harmony103.cjs");
11
- const TeamSettingsMenuItem = require("./harmony104.cjs");
12
- const TeamSwitch = require("./harmony105.cjs");
13
- const UpgradeMenuItem = require("./harmony106.cjs");
14
- const useSidebar = require("./harmony84.cjs");
15
4
  const louis = require("@lokalise/louis");
16
- const permissions = require("./harmony85.cjs");
17
- const clsx = require("./harmony70.cjs");
18
- const ProfileMenu_module = require("./harmony107.cjs");
19
- const UpgradeIcon = require("./harmony108.cjs");
20
- const ProfileMenu = ({ config }) => {
21
- const {
22
- data: { currentTeam, jwt }
23
- } = useSidebar.useSidebar();
24
- const {
25
- darkModeToggle,
26
- teamSwitch,
27
- createTeam,
28
- createTeamPlaceholder,
29
- upgradeMenuItem,
30
- profileSettings
31
- } = config;
32
- return /* @__PURE__ */ jsxRuntime.jsx(
33
- louis.Menu,
5
+ const plan = require("./harmony9.cjs");
6
+ const UpgradeIcon = require("./harmony104.cjs");
7
+ const ProfileMenuContext = require("./harmony100.cjs");
8
+ const UpgradeMenuItem_module = require("./harmony105.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,
34
19
  {
35
- menuButton: () => {
36
- var _a;
37
- return /* @__PURE__ */ jsxRuntime.jsxs("button", { className: ProfileMenu_module.default.profileButton, "aria-label": "Profile menu", type: "button", children: [
38
- ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsxRuntime.jsx(
39
- "img",
40
- {
41
- src: currentTeam.result.logoUrl,
42
- className: clsx.clsx(ProfileMenu_module.default.profileImage, {
43
- [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt.result)
44
- }),
45
- alt: "Team Logo"
46
- }
47
- ) : /* @__PURE__ */ jsxRuntime.jsx(
48
- "div",
49
- {
50
- className: clsx.clsx(ProfileMenu_module.default.userIconWrapper, "flex-row", "align-center", "items-center", {
51
- [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt.result)
52
- }),
53
- children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" })
54
- }
55
- ),
56
- permissions.canUpgradePlan(jwt.result) && /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, { className: ProfileMenu_module.default.profileImageUpgradeIcon })
57
- ] });
58
- },
59
- children: /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuList, { placement: "right-end", className: ProfileMenu_module.default.menuContainer, children: [
60
- teamSwitch && /* @__PURE__ */ jsxRuntime.jsx(TeamSwitch.TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
61
- createTeam && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeam.CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
62
- createTeamPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeamPlaceholder.CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
63
- /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, {}),
64
- upgradeMenuItem && /* @__PURE__ */ jsxRuntime.jsx(UpgradeMenuItem.UpgradeMenuItem, { href: upgradeMenuItem.href }),
65
- /* @__PURE__ */ jsxRuntime.jsx(BillingMenuItem.BillingMenuItem, {}),
66
- /* @__PURE__ */ jsxRuntime.jsx(TeamSettingsMenuItem.TeamSettingsMenuItem, {}),
67
- /* @__PURE__ */ jsxRuntime.jsx(ProviderMenuItem.ProviderMenuItem, {}),
68
- /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
69
- profileSettings && /* @__PURE__ */ jsxRuntime.jsx(ProfileSettingsMenuItem.ProfileSettingsMenuItem, {}),
70
- darkModeToggle && /* @__PURE__ */ jsxRuntime.jsx(DarkModeToggle.DarkModeToggle, { ...darkModeToggle }),
71
- (profileSettings && permissions.canAccessProfileSettings(jwt.result) || darkModeToggle) && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
72
- /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/login?action=logout", children: "Logout" })
73
- ] })
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
+ ]
74
30
  }
75
31
  );
76
32
  };
77
- exports.ProfileMenu = ProfileMenu;
33
+ exports.UpgradeMenuItem = UpgradeMenuItem;
78
34
  //# sourceMappingURL=harmony83.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony83.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt.result) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t{profileSettings && <ProfileSettingsMenuItem />}\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{((profileSettings && canAccessProfileSettings(jwt.result)) || darkModeToggle) && (\n\t\t\t\t\t<MenuDivider />\n\t\t\t\t)}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":["useSidebar","jsx","Menu","jsxs","styles","clsx","canUpgradePlan","UserIcon","UpgradeIcon","MenuList","TeamSwitch","CreateNewTeam","CreateNewTeamPlaceholder","TeamMenuItem","UpgradeMenuItem","BillingMenuItem","TeamSettingsMenuItem","ProviderMenuItem","MenuDivider","ProfileSettingsMenuItem","DarkModeToggle","canAccessProfileSettings","MenuItem"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtBA,sBAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,YAAY,MACXC;;AAAAA,0CAAAA,KAAC,UAAO,EAAA,WAAWC,mBAAAA,QAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpBH,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAWI,KAAAA,KAAKD,mBAAA,QAAO,cAAc;AAAA,gBACpC,CAACA,2BAAO,qBAAqB,GAAGE,YAAA,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGLL,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWI,KAAK,KAAAD,mBAAA,QAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAACA,2BAAO,qBAAqB,GAAGE,YAAA,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cAED,UAAAL,2BAAAA,IAACM,MAAAA,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEAD,2BAAe,IAAI,MAAM,oCAAME,YAAAA,aAAY,EAAA,WAAWJ,2BAAO,wBAAyB,CAAA;AAAA,QAAA,GACxF;AAAA;AAAA,MAGD,0CAACK,MAAS,UAAA,EAAA,WAAU,aAAY,WAAWL,mBAAAA,QAAO,eAChD,UAAA;AAAA,QAAA,cAAeH,2BAAA,IAAAS,WAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAcT,2BAAA,IAACU,cAAc,eAAA,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACAV,2BAAA,IAACW,yBAAyB,0BAAA,EAAA,SAAS,sBAAsB,SAAS;AAAA,uCAElEC,aAAa,cAAA,EAAA;AAAA,QACb,mBAAmBZ,2BAAA,IAACa,gBAAgB,iBAAA,EAAA,MAAM,gBAAgB,MAAM;AAAA,uCAChEC,gBAAgB,iBAAA,EAAA;AAAA,uCAChBC,qBAAqB,sBAAA,EAAA;AAAA,uCACrBC,iBAAiB,kBAAA,EAAA;AAAA,uCACjBC,MAAY,aAAA,EAAA;AAAA,QAEZ,kDAAoBC,wBAAwB,yBAAA,EAAA;AAAA,QAC5C,kBAAkBlB,2BAAAA,IAACmB,eAAAA,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACpD,mBAAmBC,YAAyB,yBAAA,IAAI,MAAM,KAAM,kDAC7DH,MAAY,aAAA,EAAA;AAAA,QAGbjB,2BAAA,IAAAqB,MAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
1
+ {"version":3,"file":"harmony83.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,78 +1,34 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { BillingMenuItem } from "./harmony97.mjs";
3
- import { CreateNewTeam } from "./harmony98.mjs";
4
- import { CreateNewTeamPlaceholder } from "./harmony99.mjs";
5
- import { DarkModeToggle } from "./harmony100.mjs";
6
- import { ProfileSettingsMenuItem } from "./harmony101.mjs";
7
- import { ProviderMenuItem } from "./harmony102.mjs";
8
- import { TeamMenuItem } from "./harmony103.mjs";
9
- import { TeamSettingsMenuItem } from "./harmony104.mjs";
10
- import { TeamSwitch } from "./harmony105.mjs";
11
- import { UpgradeMenuItem } from "./harmony106.mjs";
12
- import { useSidebar } from "./harmony84.mjs";
13
- import { Menu, MenuList, MenuDivider, MenuItem, UserIcon } from "@lokalise/louis";
14
- import { canAccessProfileSettings, canUpgradePlan } from "./harmony85.mjs";
15
- import { clsx } from "./harmony70.mjs";
16
- import styles from "./harmony107.mjs";
17
- import { UpgradeIcon } from "./harmony108.mjs";
18
- const ProfileMenu = ({ config }) => {
19
- const {
20
- data: { currentTeam, jwt }
21
- } = useSidebar();
22
- const {
23
- darkModeToggle,
24
- teamSwitch,
25
- createTeam,
26
- createTeamPlaceholder,
27
- upgradeMenuItem,
28
- profileSettings
29
- } = config;
30
- return /* @__PURE__ */ jsx(
31
- Menu,
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { MenuItem } from "@lokalise/louis";
3
+ import { isFreePlan } from "./harmony9.mjs";
4
+ import { UpgradeIcon } from "./harmony104.mjs";
5
+ import { useProfileMenu } from "./harmony100.mjs";
6
+ import styles from "./harmony105.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,
32
17
  {
33
- menuButton: () => {
34
- var _a;
35
- return /* @__PURE__ */ jsxs("button", { className: styles.profileButton, "aria-label": "Profile menu", type: "button", children: [
36
- ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsx(
37
- "img",
38
- {
39
- src: currentTeam.result.logoUrl,
40
- className: clsx(styles.profileImage, {
41
- [styles.profileImageHighlight]: canUpgradePlan(jwt.result)
42
- }),
43
- alt: "Team Logo"
44
- }
45
- ) : /* @__PURE__ */ jsx(
46
- "div",
47
- {
48
- className: clsx(styles.userIconWrapper, "flex-row", "align-center", "items-center", {
49
- [styles.profileImageHighlight]: canUpgradePlan(jwt.result)
50
- }),
51
- children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" })
52
- }
53
- ),
54
- canUpgradePlan(jwt.result) && /* @__PURE__ */ jsx(UpgradeIcon, { className: styles.profileImageUpgradeIcon })
55
- ] });
56
- },
57
- children: /* @__PURE__ */ jsxs(MenuList, { placement: "right-end", className: styles.menuContainer, children: [
58
- teamSwitch && /* @__PURE__ */ jsx(TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
59
- createTeam && /* @__PURE__ */ jsx(CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
60
- createTeamPlaceholder && /* @__PURE__ */ jsx(CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
61
- /* @__PURE__ */ jsx(TeamMenuItem, {}),
62
- upgradeMenuItem && /* @__PURE__ */ jsx(UpgradeMenuItem, { href: upgradeMenuItem.href }),
63
- /* @__PURE__ */ jsx(BillingMenuItem, {}),
64
- /* @__PURE__ */ jsx(TeamSettingsMenuItem, {}),
65
- /* @__PURE__ */ jsx(ProviderMenuItem, {}),
66
- /* @__PURE__ */ jsx(MenuDivider, {}),
67
- profileSettings && /* @__PURE__ */ jsx(ProfileSettingsMenuItem, {}),
68
- darkModeToggle && /* @__PURE__ */ jsx(DarkModeToggle, { ...darkModeToggle }),
69
- (profileSettings && canAccessProfileSettings(jwt.result) || darkModeToggle) && /* @__PURE__ */ jsx(MenuDivider, {}),
70
- /* @__PURE__ */ jsx(MenuItem, { href: "/login?action=logout", children: "Logout" })
71
- ] })
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
+ ]
72
28
  }
73
29
  );
74
30
  };
75
31
  export {
76
- ProfileMenu
32
+ UpgradeMenuItem
77
33
  };
78
34
  //# sourceMappingURL=harmony83.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony83.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt.result) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t{profileSettings && <ProfileSettingsMenuItem />}\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{((profileSettings && canAccessProfileSettings(jwt.result)) || darkModeToggle) && (\n\t\t\t\t\t<MenuDivider />\n\t\t\t\t)}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtB,WAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MACX;;AAAA,oCAAC,UAAO,EAAA,WAAW,OAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpB;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAW,KAAK,OAAO,cAAc;AAAA,gBACpC,CAAC,OAAO,qBAAqB,GAAG,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGL;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAW,KAAK,OAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAAC,OAAO,qBAAqB,GAAG,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cAED,UAAA,oBAAC,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEA,eAAe,IAAI,MAAM,yBAAM,aAAY,EAAA,WAAW,OAAO,wBAAyB,CAAA;AAAA,QAAA,GACxF;AAAA;AAAA,MAGD,+BAAC,UAAS,EAAA,WAAU,aAAY,WAAW,OAAO,eAChD,UAAA;AAAA,QAAA,cAAe,oBAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAc,oBAAC,eAAc,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACA,oBAAC,0BAAyB,EAAA,SAAS,sBAAsB,SAAS;AAAA,4BAElE,cAAa,EAAA;AAAA,QACb,mBAAmB,oBAAC,iBAAgB,EAAA,MAAM,gBAAgB,MAAM;AAAA,4BAChE,iBAAgB,EAAA;AAAA,4BAChB,sBAAqB,EAAA;AAAA,4BACrB,kBAAiB,EAAA;AAAA,4BACjB,aAAY,EAAA;AAAA,QAEZ,uCAAoB,yBAAwB,EAAA;AAAA,QAC5C,kBAAkB,oBAAC,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACpD,mBAAmB,yBAAyB,IAAI,MAAM,KAAM,uCAC7D,aAAY,EAAA;AAAA,QAGb,oBAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"harmony83.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;"}