@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,8 +1,29 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { ProfileMenuContent } from "./harmony68.mjs";
3
- import { ProfileMenuProvider } from "./harmony69.mjs";
4
- const ProfileMenu = ({ config, children }) => /* @__PURE__ */ jsx(ProfileMenuProvider, { config, children: /* @__PURE__ */ jsx(ProfileMenuContent, { children }) });
1
+ import { z } from "zod";
2
+ const AUTHORIZATION_HEADER_SCHEMA = z.union([
3
+ z.object({ authorization: z.string() }),
4
+ z.object({ AUTHORIZATION: z.string() })
5
+ ]);
6
+ const APU_TOKEN_AUTH_HEADER_SCHEMA = z.union([
7
+ z.object({ "X-API-Token": z.string() }),
8
+ z.object({ "X-Api-Token": z.string() }),
9
+ z.object({ "x-api-token": z.string() }),
10
+ z.object({ "X-API-TOKEN": z.string() })
11
+ ]);
12
+ const AUTHENTICATION_HEADERS_SCHEMA = z.union([
13
+ AUTHORIZATION_HEADER_SCHEMA,
14
+ APU_TOKEN_AUTH_HEADER_SCHEMA
15
+ ]);
16
+ const API_PLUGIN_HEADER_SCHEMA = z.union([
17
+ z.object({ "X-Lokalise-Plugin": z.string() }),
18
+ z.object({ "x-lokalise-plugin": z.string() }),
19
+ z.object({ "X-LOKALISE-PLUGIN": z.string() })
20
+ ]);
21
+ const BASE_API_ENDPOINT_HEADER_SCHEMA = AUTHENTICATION_HEADERS_SCHEMA.and(API_PLUGIN_HEADER_SCHEMA);
5
22
  export {
6
- ProfileMenu
23
+ API_PLUGIN_HEADER_SCHEMA,
24
+ APU_TOKEN_AUTH_HEADER_SCHEMA,
25
+ AUTHENTICATION_HEADERS_SCHEMA,
26
+ AUTHORIZATION_HEADER_SCHEMA,
27
+ BASE_API_ENDPOINT_HEADER_SCHEMA
7
28
  };
8
29
  //# sourceMappingURL=harmony55.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony55.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { ProfileMenuContent, type ProfileMenuContentProps } from './ProfileMenuContent'\nimport { ProfileMenuProvider } from './ProfileMenuProvider'\nimport type { SidebarProfileMenuConfig } from './types'\n\ntype ProfileMenuProps = {\n\t/** Configuration object containing team and user settings */\n\tconfig: SidebarProfileMenuConfig\n\t/** Render function for the menu content */\n\tchildren: ProfileMenuContentProps['children']\n}\n\n/**\n * A contextual menu component that provides team management functionality.\n * It manages team switching, profile settings, billing options, and upgrade prompts.\n *\n * The component uses a render prop pattern to provide context values to its children,\n * allowing flexible composition of menu items based on user permissions and team status.\n *\n * @example\n * ```tsx\n * <ProfileMenu config={profileMenuConfig}>\n * {({ allowTeamCreation, showBillingButton }) => (\n * <>\n * <TeamSwitch onSwitchTeam={handleTeamSwitch} />\n * {allowTeamCreation && <MenuItem>Create new team</MenuItem>}\n * {showBillingButton && <MenuItem href=\"/billing\">Billing</MenuItem>}\n * </>\n * )}\n * </ProfileMenu>\n * ```\n */\nexport const ProfileMenu = ({ config, children }: ProfileMenuProps) => (\n\t<ProfileMenuProvider config={config}>\n\t\t<ProfileMenuContent>{children}</ProfileMenuContent>\n\t</ProfileMenuProvider>\n)\n"],"names":[],"mappings":";;;AA+BO,MAAM,cAAc,CAAC,EAAE,QAAQ,SAAS,MAC7C,oBAAA,qBAAA,EAAoB,QACpB,UAAA,oBAAC,oBAAoB,EAAA,SAAS,CAAA,EAC/B,CAAA;"}
1
+ {"version":3,"file":"harmony55.mjs","sources":["../src/features/publicApi/types/sharedTypes.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const AUTHORIZATION_HEADER_SCHEMA = z.union([\n\tz.object({ authorization: z.string() }),\n\tz.object({ AUTHORIZATION: z.string() }),\n])\n\nexport const APU_TOKEN_AUTH_HEADER_SCHEMA = z.union([\n\tz.object({ 'X-API-Token': z.string() }),\n\tz.object({ 'X-Api-Token': z.string() }),\n\tz.object({ 'x-api-token': z.string() }),\n\tz.object({ 'X-API-TOKEN': z.string() }),\n])\n\nexport const AUTHENTICATION_HEADERS_SCHEMA = z.union([\n\tAUTHORIZATION_HEADER_SCHEMA,\n\tAPU_TOKEN_AUTH_HEADER_SCHEMA,\n])\n\nexport type AuthenticationHeaders = z.infer<typeof AUTHENTICATION_HEADERS_SCHEMA>\n\nexport const API_PLUGIN_HEADER_SCHEMA = z.union([\n\tz.object({ 'X-Lokalise-Plugin': z.string() }),\n\tz.object({ 'x-lokalise-plugin': z.string() }),\n\tz.object({ 'X-LOKALISE-PLUGIN': z.string() }),\n])\n\nexport type ApiPluginHeader = z.infer<typeof API_PLUGIN_HEADER_SCHEMA>\n\nexport const BASE_API_ENDPOINT_HEADER_SCHEMA =\n\tAUTHENTICATION_HEADERS_SCHEMA.and(API_PLUGIN_HEADER_SCHEMA)\n\nexport type BaseApiEndpointHeader = z.infer<typeof BASE_API_ENDPOINT_HEADER_SCHEMA>\n"],"names":[],"mappings":";AAEa,MAAA,8BAA8B,EAAE,MAAM;AAAA,EAClD,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU;AAAA,EACtC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAA,EAAU,CAAA;AACvC,CAAC;AAEY,MAAA,+BAA+B,EAAE,MAAM;AAAA,EACnD,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU;AAAA,EACtC,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU;AAAA,EACtC,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU;AAAA,EACtC,EAAE,OAAO,EAAE,eAAe,EAAE,OAAA,EAAU,CAAA;AACvC,CAAC;AAEY,MAAA,gCAAgC,EAAE,MAAM;AAAA,EACpD;AAAA,EACA;AACD,CAAC;AAIY,MAAA,2BAA2B,EAAE,MAAM;AAAA,EAC/C,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU;AAAA,EAC5C,EAAE,OAAO,EAAE,qBAAqB,EAAE,UAAU;AAAA,EAC5C,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAA,EAAU,CAAA;AAC7C,CAAC;AAIY,MAAA,kCACZ,8BAA8B,IAAI,wBAAwB;"}
@@ -1,35 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const ProfileMenuContext = require("./harmony70.cjs");
6
- const ProfileSettingsMenuItem_module = require("./harmony71.cjs");
7
- const ProfileSettingsMenuItem = ({
8
- href,
9
- onClick,
10
- userEmail,
11
- hideBottomDivider
12
- }) => {
13
- const { isEndOfTrialActive, isTeamSuspended } = ProfileMenuContext.useProfileMenu();
14
- if (isEndOfTrialActive || isTeamSuspended) {
15
- return null;
16
- }
17
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
18
- /* @__PURE__ */ jsxRuntime.jsx(
19
- louis.MenuItem,
20
- {
21
- href,
22
- onClick: () => {
23
- onClick == null ? void 0 : onClick();
24
- },
25
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-col ${ProfileSettingsMenuItem_module.default.container}`, children: [
26
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Profile Settings" }),
27
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ProfileSettingsMenuItem_module.default.profileEmail, children: userEmail })
28
- ] })
29
- }
30
- ),
31
- !hideBottomDivider && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {})
32
- ] });
33
- };
34
- exports.ProfileSettingsMenuItem = ProfileSettingsMenuItem;
3
+ const zod = require("zod");
4
+ const TEAM_ROLE_SCHEMA = zod.z.union([
5
+ zod.z.literal("owner"),
6
+ zod.z.literal("admin"),
7
+ zod.z.literal("biller"),
8
+ zod.z.literal("member")
9
+ ]);
10
+ exports.TEAM_ROLE_SCHEMA = TEAM_ROLE_SCHEMA;
35
11
  //# sourceMappingURL=harmony56.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony56.cjs","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":["useProfileMenu","jsxs","Fragment","jsx","MenuItem","styles","MenuDivider"],"mappings":";;;;;;AA6CO,MAAM,0BAA0B,CAAC;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,MAAoC;AACnC,QAAM,EAAE,oBAAoB,gBAAgB,IAAIA,kCAAe;AAE/D,MAAI,sBAAsB,iBAAiB;AACnC,WAAA;AAAA,EAAA;AAGR,SAEEC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAAC,2BAAA;AAAA,MAACC,MAAA;AAAA,MAAA;AAAA,QACA;AAAA,QACA,SAAS,MAAM;AACJ;AAAA,QACX;AAAA,QAEA,0CAAC,OAAI,EAAA,WAAW,YAAYC,uCAAO,SAAS,IAC3C,UAAA;AAAA,UAAAF,2BAAAA,IAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,UACrBA,2BAAA,IAAA,QAAA,EAAK,WAAWE,+BAAA,QAAO,cAAe,UAAU,UAAA,CAAA;AAAA,QAAA,EAClD,CAAA;AAAA,MAAA;AAAA,IACD;AAAA,IAEC,CAAC,qBAAqBF,+BAACG,MAAAA,aAAY,CAAA,CAAA;AAAA,EAAA,GACrC;AAEF;;"}
1
+ {"version":3,"file":"harmony56.cjs","sources":["../src/features/publicApi/types/teamRoleTypes.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const TEAM_ROLE_SCHEMA = z.union([\n\tz.literal('owner'),\n\tz.literal('admin'),\n\tz.literal('biller'),\n\tz.literal('member'),\n])\n\nexport type TeamRole = z.infer<typeof TEAM_ROLE_SCHEMA>\n"],"names":["z"],"mappings":";;;AAEa,MAAA,mBAAmBA,MAAE,MAAM;AAAA,EACvCA,IAAA,EAAE,QAAQ,OAAO;AAAA,EACjBA,IAAA,EAAE,QAAQ,OAAO;AAAA,EACjBA,IAAA,EAAE,QAAQ,QAAQ;AAAA,EAClBA,IAAA,EAAE,QAAQ,QAAQ;AACnB,CAAC;;"}
@@ -1,35 +1,11 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { MenuItem, MenuDivider } from "@lokalise/louis";
3
- import { useProfileMenu } from "./harmony70.mjs";
4
- import styles from "./harmony71.mjs";
5
- const ProfileSettingsMenuItem = ({
6
- href,
7
- onClick,
8
- userEmail,
9
- hideBottomDivider
10
- }) => {
11
- const { isEndOfTrialActive, isTeamSuspended } = useProfileMenu();
12
- if (isEndOfTrialActive || isTeamSuspended) {
13
- return null;
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
- ] });
31
- };
1
+ import { z } from "zod";
2
+ const TEAM_ROLE_SCHEMA = z.union([
3
+ z.literal("owner"),
4
+ z.literal("admin"),
5
+ z.literal("biller"),
6
+ z.literal("member")
7
+ ]);
32
8
  export {
33
- ProfileSettingsMenuItem
9
+ TEAM_ROLE_SCHEMA
34
10
  };
35
11
  //# sourceMappingURL=harmony56.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony56.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
+ {"version":3,"file":"harmony56.mjs","sources":["../src/features/publicApi/types/teamRoleTypes.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const TEAM_ROLE_SCHEMA = z.union([\n\tz.literal('owner'),\n\tz.literal('admin'),\n\tz.literal('biller'),\n\tz.literal('member'),\n])\n\nexport type TeamRole = z.infer<typeof TEAM_ROLE_SCHEMA>\n"],"names":[],"mappings":";AAEa,MAAA,mBAAmB,EAAE,MAAM;AAAA,EACvC,EAAE,QAAQ,OAAO;AAAA,EACjB,EAAE,QAAQ,OAAO;AAAA,EACjB,EAAE,QAAQ,QAAQ;AAAA,EAClB,EAAE,QAAQ,QAAQ;AACnB,CAAC;"}
@@ -1,35 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const plan = require("./harmony7.cjs");
6
- const ProfileMenuContext = require("./harmony70.cjs");
7
- const TeamMenuItem_module = require("./harmony72.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;
3
+ const paginationTypes = require("./harmony50.cjs");
4
+ const sharedTypes = require("./harmony55.cjs");
5
+ const zod = require("zod");
6
+ const TEAM_API_BASE_HEADERS_SCHEMA = sharedTypes.BASE_API_ENDPOINT_HEADER_SCHEMA;
7
+ const TEAM_QUOTA_METRICS = ["keys", "projects", "mau", "trafficBytes", "ai_words"];
8
+ const TEAM_QUOTA_METRICS_SCHEMA = zod.z.enum(TEAM_QUOTA_METRICS);
9
+ const TEAM_QUOTA_USAGE_SCHEMA = zod.z.record(TEAM_QUOTA_METRICS_SCHEMA, zod.z.number());
10
+ const TEAM_QUOTA_ALLOWED_SCHEMA = zod.z.record(TEAM_QUOTA_METRICS_SCHEMA, zod.z.number());
11
+ const NORMALISED_TEAM_ID_SCHEMA = zod.z.union([
12
+ zod.z.object({ id: zod.z.number() }),
13
+ zod.z.object({ team_id: zod.z.number() }).transform(({ team_id }) => ({ id: team_id }))
14
+ ]);
15
+ const BASE_TEAM_SCHEMA = NORMALISED_TEAM_ID_SCHEMA.and(
16
+ zod.z.object({
17
+ // TODO: This should not be optional, but the API is not consistent yet
18
+ uuid: zod.z.string().uuid().optional(),
19
+ name: zod.z.string(),
20
+ created_at: zod.z.string().datetime(),
21
+ created_at_timestamp: zod.z.number(),
22
+ plan: zod.z.string()
23
+ })
24
+ );
25
+ const TEAM_QUOTA_SCHEMA = zod.z.object({
26
+ quota_usage: TEAM_QUOTA_USAGE_SCHEMA,
27
+ quota_allowed: TEAM_QUOTA_ALLOWED_SCHEMA
28
+ });
29
+ const TEAM_META_SCHEMA = zod.z.object({
30
+ is_team_suspended: zod.z.boolean(),
31
+ is_end_of_trial_active: zod.z.boolean(),
32
+ trial_days_left: zod.z.number()
33
+ });
34
+ const LIST_TEAMS_QUERY_SCHEMA = paginationTypes.PAGINATION_QUERY_PARAMS_SCHEMA;
35
+ const LIST_TEAMS_RESPONSE_SCHEMA = zod.z.object({
36
+ teams: zod.z.array(BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA))
37
+ });
38
+ const RETRIEVE_TEAM_PATH_PARAMS_SCHEMA = zod.z.object({
39
+ teamId: zod.z.union([zod.z.string().uuid(), zod.z.number()])
40
+ });
41
+ const RETRIEVE_TEAM_RESPONSE_SCHEMA = zod.z.object({
42
+ team: BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA).and(TEAM_META_SCHEMA)
43
+ });
44
+ exports.LIST_TEAMS_QUERY_SCHEMA = LIST_TEAMS_QUERY_SCHEMA;
45
+ exports.LIST_TEAMS_RESPONSE_SCHEMA = LIST_TEAMS_RESPONSE_SCHEMA;
46
+ exports.RETRIEVE_TEAM_PATH_PARAMS_SCHEMA = RETRIEVE_TEAM_PATH_PARAMS_SCHEMA;
47
+ exports.RETRIEVE_TEAM_RESPONSE_SCHEMA = RETRIEVE_TEAM_RESPONSE_SCHEMA;
48
+ exports.TEAM_API_BASE_HEADERS_SCHEMA = TEAM_API_BASE_HEADERS_SCHEMA;
49
+ exports.TEAM_QUOTA_ALLOWED_SCHEMA = TEAM_QUOTA_ALLOWED_SCHEMA;
50
+ exports.TEAM_QUOTA_METRICS = TEAM_QUOTA_METRICS;
51
+ exports.TEAM_QUOTA_METRICS_SCHEMA = TEAM_QUOTA_METRICS_SCHEMA;
52
+ exports.TEAM_QUOTA_USAGE_SCHEMA = TEAM_QUOTA_USAGE_SCHEMA;
35
53
  //# sourceMappingURL=harmony57.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony57.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
+ {"version":3,"file":"harmony57.cjs","sources":["../src/features/publicApi/types/teamTypes.ts"],"sourcesContent":["import { PAGINATION_QUERY_PARAMS_SCHEMA } from '@features/publicApi/types/paginationTypes'\nimport { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { z } from 'zod'\n\nexport const TEAM_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA\n\nexport type TeamApiBaseHeaders = z.infer<typeof TEAM_API_BASE_HEADERS_SCHEMA>\n\nexport const TEAM_QUOTA_METRICS = ['keys', 'projects', 'mau', 'trafficBytes', 'ai_words'] as const\nexport const TEAM_QUOTA_METRICS_SCHEMA = z.enum(TEAM_QUOTA_METRICS)\nexport type TeamQuotaMetrics = z.infer<typeof TEAM_QUOTA_METRICS_SCHEMA>\n\nexport const TEAM_QUOTA_USAGE_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number())\nexport type TeamQuotaUsage = z.infer<typeof TEAM_QUOTA_USAGE_SCHEMA>\n\nexport const TEAM_QUOTA_ALLOWED_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number())\nexport type TeamQuotaAllowed = z.infer<typeof TEAM_QUOTA_ALLOWED_SCHEMA>\n\n// This is a MASSIVE HACK to make the API work with the old `team_id` field so that it's normalised to `id`\nconst NORMALISED_TEAM_ID_SCHEMA = z.union([\n\tz.object({ id: z.number() }),\n\tz.object({ team_id: z.number() }).transform(({ team_id }) => ({ id: team_id })),\n])\n\nconst BASE_TEAM_SCHEMA = NORMALISED_TEAM_ID_SCHEMA.and(\n\tz.object({\n\t\t// TODO: This should not be optional, but the API is not consistent yet\n\t\tuuid: z.string().uuid().optional(),\n\t\tname: z.string(),\n\t\tcreated_at: z.string().datetime(),\n\t\tcreated_at_timestamp: z.number(),\n\t\tplan: z.string(),\n\t}),\n)\n\nconst TEAM_QUOTA_SCHEMA = z.object({\n\tquota_usage: TEAM_QUOTA_USAGE_SCHEMA,\n\tquota_allowed: TEAM_QUOTA_ALLOWED_SCHEMA,\n})\n\nconst TEAM_META_SCHEMA = z.object({\n\tis_team_suspended: z.boolean(),\n\tis_end_of_trial_active: z.boolean(),\n\ttrial_days_left: z.number(),\n})\n\nexport const LIST_TEAMS_QUERY_SCHEMA = PAGINATION_QUERY_PARAMS_SCHEMA\nexport type ListTeamsQueryParams = z.infer<typeof LIST_TEAMS_QUERY_SCHEMA>\n\nexport const LIST_TEAMS_RESPONSE_SCHEMA = z.object({\n\tteams: z.array(BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA)),\n})\n\nexport type ListTeamsResponse = z.infer<typeof LIST_TEAMS_RESPONSE_SCHEMA>\n\nexport const RETRIEVE_TEAM_PATH_PARAMS_SCHEMA = z.object({\n\tteamId: z.union([z.string().uuid(), z.number()]),\n})\n\nexport type RetrieveTeamPathParams = z.infer<typeof RETRIEVE_TEAM_PATH_PARAMS_SCHEMA>\n\nexport const RETRIEVE_TEAM_RESPONSE_SCHEMA = z.object({\n\tteam: BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA).and(TEAM_META_SCHEMA),\n})\n\nexport type RetrieveTeamResponse = z.infer<typeof RETRIEVE_TEAM_RESPONSE_SCHEMA>\n"],"names":["BASE_API_ENDPOINT_HEADER_SCHEMA","z","PAGINATION_QUERY_PARAMS_SCHEMA"],"mappings":";;;;;AAIO,MAAM,+BAA+BA,YAAAA;AAIrC,MAAM,qBAAqB,CAAC,QAAQ,YAAY,OAAO,gBAAgB,UAAU;AAC3E,MAAA,4BAA4BC,IAAAA,EAAE,KAAK,kBAAkB;AAG3D,MAAM,0BAA0BA,IAAAA,EAAE,OAAO,2BAA2BA,IAAAA,EAAE,OAAQ,CAAA;AAG9E,MAAM,4BAA4BA,IAAAA,EAAE,OAAO,2BAA2BA,IAAAA,EAAE,OAAQ,CAAA;AAIvF,MAAM,4BAA4BA,MAAE,MAAM;AAAA,EACzCA,MAAE,OAAO,EAAE,IAAIA,IAAAA,EAAE,UAAU;AAAA,EAC3BA,IAAAA,EAAE,OAAO,EAAE,SAASA,IAAA,EAAE,SAAU,CAAA,EAAE,UAAU,CAAC,EAAE,QAAA,OAAe,EAAE,IAAI,UAAU;AAC/E,CAAC;AAED,MAAM,mBAAmB,0BAA0B;AAAA,EAClDA,IAAAA,EAAE,OAAO;AAAA;AAAA,IAER,MAAMA,IAAAA,EAAE,OAAS,EAAA,KAAA,EAAO,SAAS;AAAA,IACjC,MAAMA,MAAE,OAAO;AAAA,IACf,YAAYA,IAAA,EAAE,OAAO,EAAE,SAAS;AAAA,IAChC,sBAAsBA,MAAE,OAAO;AAAA,IAC/B,MAAMA,MAAE,OAAO;AAAA,EACf,CAAA;AACF;AAEA,MAAM,oBAAoBA,MAAE,OAAO;AAAA,EAClC,aAAa;AAAA,EACb,eAAe;AAChB,CAAC;AAED,MAAM,mBAAmBA,MAAE,OAAO;AAAA,EACjC,mBAAmBA,MAAE,QAAQ;AAAA,EAC7B,wBAAwBA,MAAE,QAAQ;AAAA,EAClC,iBAAiBA,MAAE,OAAO;AAC3B,CAAC;AAEM,MAAM,0BAA0BC,gBAAAA;AAG1B,MAAA,6BAA6BD,MAAE,OAAO;AAAA,EAClD,OAAOA,IAAAA,EAAE,MAAM,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC;AAIY,MAAA,mCAAmCA,MAAE,OAAO;AAAA,EACxD,QAAQA,IAAAA,EAAE,MAAM,CAACA,IAAE,EAAA,OAAS,EAAA,KAAQ,GAAAA,MAAE,QAAQ,CAAC;AAChD,CAAC;AAIY,MAAA,gCAAgCA,MAAE,OAAO;AAAA,EACrD,MAAM,iBAAiB,IAAI,iBAAiB,EAAE,IAAI,gBAAgB;AACnE,CAAC;;;;;;;;;;"}
@@ -1,35 +1,53 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { MenuItem, UserIcon } from "@lokalise/louis";
3
- import { isFreePlan, isTrialPlan } from "./harmony7.mjs";
4
- import { useProfileMenu } from "./harmony70.mjs";
5
- import styles from "./harmony72.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
- };
1
+ import { PAGINATION_QUERY_PARAMS_SCHEMA } from "./harmony50.mjs";
2
+ import { BASE_API_ENDPOINT_HEADER_SCHEMA } from "./harmony55.mjs";
3
+ import { z } from "zod";
4
+ const TEAM_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA;
5
+ const TEAM_QUOTA_METRICS = ["keys", "projects", "mau", "trafficBytes", "ai_words"];
6
+ const TEAM_QUOTA_METRICS_SCHEMA = z.enum(TEAM_QUOTA_METRICS);
7
+ const TEAM_QUOTA_USAGE_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number());
8
+ const TEAM_QUOTA_ALLOWED_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number());
9
+ const NORMALISED_TEAM_ID_SCHEMA = z.union([
10
+ z.object({ id: z.number() }),
11
+ z.object({ team_id: z.number() }).transform(({ team_id }) => ({ id: team_id }))
12
+ ]);
13
+ const BASE_TEAM_SCHEMA = NORMALISED_TEAM_ID_SCHEMA.and(
14
+ z.object({
15
+ // TODO: This should not be optional, but the API is not consistent yet
16
+ uuid: z.string().uuid().optional(),
17
+ name: z.string(),
18
+ created_at: z.string().datetime(),
19
+ created_at_timestamp: z.number(),
20
+ plan: z.string()
21
+ })
22
+ );
23
+ const TEAM_QUOTA_SCHEMA = z.object({
24
+ quota_usage: TEAM_QUOTA_USAGE_SCHEMA,
25
+ quota_allowed: TEAM_QUOTA_ALLOWED_SCHEMA
26
+ });
27
+ const TEAM_META_SCHEMA = z.object({
28
+ is_team_suspended: z.boolean(),
29
+ is_end_of_trial_active: z.boolean(),
30
+ trial_days_left: z.number()
31
+ });
32
+ const LIST_TEAMS_QUERY_SCHEMA = PAGINATION_QUERY_PARAMS_SCHEMA;
33
+ const LIST_TEAMS_RESPONSE_SCHEMA = z.object({
34
+ teams: z.array(BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA))
35
+ });
36
+ const RETRIEVE_TEAM_PATH_PARAMS_SCHEMA = z.object({
37
+ teamId: z.union([z.string().uuid(), z.number()])
38
+ });
39
+ const RETRIEVE_TEAM_RESPONSE_SCHEMA = z.object({
40
+ team: BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA).and(TEAM_META_SCHEMA)
41
+ });
32
42
  export {
33
- TeamMenuItem
43
+ LIST_TEAMS_QUERY_SCHEMA,
44
+ LIST_TEAMS_RESPONSE_SCHEMA,
45
+ RETRIEVE_TEAM_PATH_PARAMS_SCHEMA,
46
+ RETRIEVE_TEAM_RESPONSE_SCHEMA,
47
+ TEAM_API_BASE_HEADERS_SCHEMA,
48
+ TEAM_QUOTA_ALLOWED_SCHEMA,
49
+ TEAM_QUOTA_METRICS,
50
+ TEAM_QUOTA_METRICS_SCHEMA,
51
+ TEAM_QUOTA_USAGE_SCHEMA
34
52
  };
35
53
  //# sourceMappingURL=harmony57.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony57.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
+ {"version":3,"file":"harmony57.mjs","sources":["../src/features/publicApi/types/teamTypes.ts"],"sourcesContent":["import { PAGINATION_QUERY_PARAMS_SCHEMA } from '@features/publicApi/types/paginationTypes'\nimport { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { z } from 'zod'\n\nexport const TEAM_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA\n\nexport type TeamApiBaseHeaders = z.infer<typeof TEAM_API_BASE_HEADERS_SCHEMA>\n\nexport const TEAM_QUOTA_METRICS = ['keys', 'projects', 'mau', 'trafficBytes', 'ai_words'] as const\nexport const TEAM_QUOTA_METRICS_SCHEMA = z.enum(TEAM_QUOTA_METRICS)\nexport type TeamQuotaMetrics = z.infer<typeof TEAM_QUOTA_METRICS_SCHEMA>\n\nexport const TEAM_QUOTA_USAGE_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number())\nexport type TeamQuotaUsage = z.infer<typeof TEAM_QUOTA_USAGE_SCHEMA>\n\nexport const TEAM_QUOTA_ALLOWED_SCHEMA = z.record(TEAM_QUOTA_METRICS_SCHEMA, z.number())\nexport type TeamQuotaAllowed = z.infer<typeof TEAM_QUOTA_ALLOWED_SCHEMA>\n\n// This is a MASSIVE HACK to make the API work with the old `team_id` field so that it's normalised to `id`\nconst NORMALISED_TEAM_ID_SCHEMA = z.union([\n\tz.object({ id: z.number() }),\n\tz.object({ team_id: z.number() }).transform(({ team_id }) => ({ id: team_id })),\n])\n\nconst BASE_TEAM_SCHEMA = NORMALISED_TEAM_ID_SCHEMA.and(\n\tz.object({\n\t\t// TODO: This should not be optional, but the API is not consistent yet\n\t\tuuid: z.string().uuid().optional(),\n\t\tname: z.string(),\n\t\tcreated_at: z.string().datetime(),\n\t\tcreated_at_timestamp: z.number(),\n\t\tplan: z.string(),\n\t}),\n)\n\nconst TEAM_QUOTA_SCHEMA = z.object({\n\tquota_usage: TEAM_QUOTA_USAGE_SCHEMA,\n\tquota_allowed: TEAM_QUOTA_ALLOWED_SCHEMA,\n})\n\nconst TEAM_META_SCHEMA = z.object({\n\tis_team_suspended: z.boolean(),\n\tis_end_of_trial_active: z.boolean(),\n\ttrial_days_left: z.number(),\n})\n\nexport const LIST_TEAMS_QUERY_SCHEMA = PAGINATION_QUERY_PARAMS_SCHEMA\nexport type ListTeamsQueryParams = z.infer<typeof LIST_TEAMS_QUERY_SCHEMA>\n\nexport const LIST_TEAMS_RESPONSE_SCHEMA = z.object({\n\tteams: z.array(BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA)),\n})\n\nexport type ListTeamsResponse = z.infer<typeof LIST_TEAMS_RESPONSE_SCHEMA>\n\nexport const RETRIEVE_TEAM_PATH_PARAMS_SCHEMA = z.object({\n\tteamId: z.union([z.string().uuid(), z.number()]),\n})\n\nexport type RetrieveTeamPathParams = z.infer<typeof RETRIEVE_TEAM_PATH_PARAMS_SCHEMA>\n\nexport const RETRIEVE_TEAM_RESPONSE_SCHEMA = z.object({\n\tteam: BASE_TEAM_SCHEMA.and(TEAM_QUOTA_SCHEMA).and(TEAM_META_SCHEMA),\n})\n\nexport type RetrieveTeamResponse = z.infer<typeof RETRIEVE_TEAM_RESPONSE_SCHEMA>\n"],"names":[],"mappings":";;;AAIO,MAAM,+BAA+B;AAIrC,MAAM,qBAAqB,CAAC,QAAQ,YAAY,OAAO,gBAAgB,UAAU;AAC3E,MAAA,4BAA4B,EAAE,KAAK,kBAAkB;AAG3D,MAAM,0BAA0B,EAAE,OAAO,2BAA2B,EAAE,OAAQ,CAAA;AAG9E,MAAM,4BAA4B,EAAE,OAAO,2BAA2B,EAAE,OAAQ,CAAA;AAIvF,MAAM,4BAA4B,EAAE,MAAM;AAAA,EACzC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU;AAAA,EAC3B,EAAE,OAAO,EAAE,SAAS,EAAE,SAAU,CAAA,EAAE,UAAU,CAAC,EAAE,QAAA,OAAe,EAAE,IAAI,UAAU;AAC/E,CAAC;AAED,MAAM,mBAAmB,0BAA0B;AAAA,EAClD,EAAE,OAAO;AAAA;AAAA,IAER,MAAM,EAAE,OAAS,EAAA,KAAA,EAAO,SAAS;AAAA,IACjC,MAAM,EAAE,OAAO;AAAA,IACf,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,IAChC,sBAAsB,EAAE,OAAO;AAAA,IAC/B,MAAM,EAAE,OAAO;AAAA,EACf,CAAA;AACF;AAEA,MAAM,oBAAoB,EAAE,OAAO;AAAA,EAClC,aAAa;AAAA,EACb,eAAe;AAChB,CAAC;AAED,MAAM,mBAAmB,EAAE,OAAO;AAAA,EACjC,mBAAmB,EAAE,QAAQ;AAAA,EAC7B,wBAAwB,EAAE,QAAQ;AAAA,EAClC,iBAAiB,EAAE,OAAO;AAC3B,CAAC;AAEM,MAAM,0BAA0B;AAG1B,MAAA,6BAA6B,EAAE,OAAO;AAAA,EAClD,OAAO,EAAE,MAAM,iBAAiB,IAAI,iBAAiB,CAAC;AACvD,CAAC;AAIY,MAAA,mCAAmC,EAAE,OAAO;AAAA,EACxD,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAS,EAAA,KAAQ,GAAA,EAAE,QAAQ,CAAC;AAChD,CAAC;AAIY,MAAA,gCAAgC,EAAE,OAAO;AAAA,EACrD,MAAM,iBAAiB,IAAI,iBAAiB,EAAE,IAAI,gBAAgB;AACnE,CAAC;"}
@@ -1,22 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const ProfileMenuContext = require("./harmony70.cjs");
5
- const TeamMenuItem = require("./harmony57.cjs");
6
- const TeamSwitch_module = require("./harmony73.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;
3
+ const sharedTypes = require("./harmony55.cjs");
4
+ const teamRoleTypes = require("./harmony56.cjs");
5
+ const zod = require("zod");
6
+ const TEAM_USER_API_BASE_HEADERS_SCHEMA = sharedTypes.BASE_API_ENDPOINT_HEADER_SCHEMA;
7
+ const TEAM_USER_SCHEMA = zod.z.object({
8
+ user_id: zod.z.number(),
9
+ email: zod.z.string().email(),
10
+ fullname: zod.z.string(),
11
+ created_at: zod.z.string(),
12
+ created_at_timestamp: zod.z.number(),
13
+ role: teamRoleTypes.TEAM_ROLE_SCHEMA
14
+ });
15
+ const TEAM_USER_PATH_PARAMS_SCHEMA = zod.z.object({
16
+ teamId: zod.z.number(),
17
+ userId: zod.z.number()
18
+ });
19
+ const TEAM_USER_RESPONSE_SCHEMA = zod.z.object({
20
+ team_id: zod.z.number(),
21
+ team_user: TEAM_USER_SCHEMA
22
+ });
23
+ exports.TEAM_USER_API_BASE_HEADERS_SCHEMA = TEAM_USER_API_BASE_HEADERS_SCHEMA;
24
+ exports.TEAM_USER_PATH_PARAMS_SCHEMA = TEAM_USER_PATH_PARAMS_SCHEMA;
25
+ exports.TEAM_USER_RESPONSE_SCHEMA = TEAM_USER_RESPONSE_SCHEMA;
26
+ exports.TEAM_USER_SCHEMA = TEAM_USER_SCHEMA;
22
27
  //# sourceMappingURL=harmony58.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony58.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
+ {"version":3,"file":"harmony58.cjs","sources":["../src/features/publicApi/types/teamUserTypes.ts"],"sourcesContent":["import { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { TEAM_ROLE_SCHEMA } from '@features/publicApi/types/teamRoleTypes'\nimport { z } from 'zod'\n\nexport const TEAM_USER_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA\n\nexport type TeamUserApiBaseHeaders = z.infer<typeof TEAM_USER_API_BASE_HEADERS_SCHEMA>\n\nexport const TEAM_USER_SCHEMA = z.object({\n\tuser_id: z.number(),\n\temail: z.string().email(),\n\tfullname: z.string(),\n\tcreated_at: z.string(),\n\tcreated_at_timestamp: z.number(),\n\trole: TEAM_ROLE_SCHEMA,\n})\n\nexport type TeamUser = z.infer<typeof TEAM_USER_SCHEMA>\n\nexport const TEAM_USER_PATH_PARAMS_SCHEMA = z.object({\n\tteamId: z.number(),\n\tuserId: z.number(),\n})\n\nexport type TeamUserPathParams = z.infer<typeof TEAM_USER_PATH_PARAMS_SCHEMA>\n\nexport const TEAM_USER_RESPONSE_SCHEMA = z.object({\n\tteam_id: z.number(),\n\tteam_user: TEAM_USER_SCHEMA,\n})\n\nexport type TeamUserResponse = z.infer<typeof TEAM_USER_RESPONSE_SCHEMA>\n"],"names":["BASE_API_ENDPOINT_HEADER_SCHEMA","z","TEAM_ROLE_SCHEMA"],"mappings":";;;;;AAIO,MAAM,oCAAoCA,YAAAA;AAIpC,MAAA,mBAAmBC,MAAE,OAAO;AAAA,EACxC,SAASA,MAAE,OAAO;AAAA,EAClB,OAAOA,IAAA,EAAE,OAAO,EAAE,MAAM;AAAA,EACxB,UAAUA,MAAE,OAAO;AAAA,EACnB,YAAYA,MAAE,OAAO;AAAA,EACrB,sBAAsBA,MAAE,OAAO;AAAA,EAC/B,MAAMC,cAAAA;AACP,CAAC;AAIY,MAAA,+BAA+BD,MAAE,OAAO;AAAA,EACpD,QAAQA,MAAE,OAAO;AAAA,EACjB,QAAQA,MAAE,OAAO;AAClB,CAAC;AAIY,MAAA,4BAA4BA,MAAE,OAAO;AAAA,EACjD,SAASA,MAAE,OAAO;AAAA,EAClB,WAAW;AACZ,CAAC;;;;;"}
@@ -1,22 +1,27 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useProfileMenu } from "./harmony70.mjs";
3
- import { TeamMenuItem } from "./harmony57.mjs";
4
- import styles from "./harmony73.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
- };
1
+ import { BASE_API_ENDPOINT_HEADER_SCHEMA } from "./harmony55.mjs";
2
+ import { TEAM_ROLE_SCHEMA } from "./harmony56.mjs";
3
+ import { z } from "zod";
4
+ const TEAM_USER_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA;
5
+ const TEAM_USER_SCHEMA = z.object({
6
+ user_id: z.number(),
7
+ email: z.string().email(),
8
+ fullname: z.string(),
9
+ created_at: z.string(),
10
+ created_at_timestamp: z.number(),
11
+ role: TEAM_ROLE_SCHEMA
12
+ });
13
+ const TEAM_USER_PATH_PARAMS_SCHEMA = z.object({
14
+ teamId: z.number(),
15
+ userId: z.number()
16
+ });
17
+ const TEAM_USER_RESPONSE_SCHEMA = z.object({
18
+ team_id: z.number(),
19
+ team_user: TEAM_USER_SCHEMA
20
+ });
19
21
  export {
20
- TeamSwitch
22
+ TEAM_USER_API_BASE_HEADERS_SCHEMA,
23
+ TEAM_USER_PATH_PARAMS_SCHEMA,
24
+ TEAM_USER_RESPONSE_SCHEMA,
25
+ TEAM_USER_SCHEMA
21
26
  };
22
27
  //# sourceMappingURL=harmony58.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony58.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
+ {"version":3,"file":"harmony58.mjs","sources":["../src/features/publicApi/types/teamUserTypes.ts"],"sourcesContent":["import { BASE_API_ENDPOINT_HEADER_SCHEMA } from '@features/publicApi/types/sharedTypes'\nimport { TEAM_ROLE_SCHEMA } from '@features/publicApi/types/teamRoleTypes'\nimport { z } from 'zod'\n\nexport const TEAM_USER_API_BASE_HEADERS_SCHEMA = BASE_API_ENDPOINT_HEADER_SCHEMA\n\nexport type TeamUserApiBaseHeaders = z.infer<typeof TEAM_USER_API_BASE_HEADERS_SCHEMA>\n\nexport const TEAM_USER_SCHEMA = z.object({\n\tuser_id: z.number(),\n\temail: z.string().email(),\n\tfullname: z.string(),\n\tcreated_at: z.string(),\n\tcreated_at_timestamp: z.number(),\n\trole: TEAM_ROLE_SCHEMA,\n})\n\nexport type TeamUser = z.infer<typeof TEAM_USER_SCHEMA>\n\nexport const TEAM_USER_PATH_PARAMS_SCHEMA = z.object({\n\tteamId: z.number(),\n\tuserId: z.number(),\n})\n\nexport type TeamUserPathParams = z.infer<typeof TEAM_USER_PATH_PARAMS_SCHEMA>\n\nexport const TEAM_USER_RESPONSE_SCHEMA = z.object({\n\tteam_id: z.number(),\n\tteam_user: TEAM_USER_SCHEMA,\n})\n\nexport type TeamUserResponse = z.infer<typeof TEAM_USER_RESPONSE_SCHEMA>\n"],"names":[],"mappings":";;;AAIO,MAAM,oCAAoC;AAIpC,MAAA,mBAAmB,EAAE,OAAO;AAAA,EACxC,SAAS,EAAE,OAAO;AAAA,EAClB,OAAO,EAAE,OAAO,EAAE,MAAM;AAAA,EACxB,UAAU,EAAE,OAAO;AAAA,EACnB,YAAY,EAAE,OAAO;AAAA,EACrB,sBAAsB,EAAE,OAAO;AAAA,EAC/B,MAAM;AACP,CAAC;AAIY,MAAA,+BAA+B,EAAE,OAAO;AAAA,EACpD,QAAQ,EAAE,OAAO;AAAA,EACjB,QAAQ,EAAE,OAAO;AAClB,CAAC;AAIY,MAAA,4BAA4B,EAAE,OAAO;AAAA,EACjD,SAAS,EAAE,OAAO;AAAA,EAClB,WAAW;AACZ,CAAC;"}
@@ -1,34 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const louis = require("@lokalise/louis");
5
- const plan = require("./harmony7.cjs");
6
- const UpgradeIcon = require("./harmony74.cjs");
7
- const ProfileMenuContext = require("./harmony70.cjs");
8
- const UpgradeMenuItem_module = require("./harmony75.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
- );
32
- };
33
- exports.UpgradeMenuItem = UpgradeMenuItem;
3
+ const sharedTypes = require("./harmony55.cjs");
4
+ const zod = require("zod");
5
+ const JWT_TOKEN_SCHEMA = zod.z.object({
6
+ accessToken: zod.z.string(),
7
+ refreshToken: zod.z.string()
8
+ });
9
+ const X_CSRF_TOKEN_SCHEMA = zod.z.union([
10
+ zod.z.object({ "X-Csrf-Token": zod.z.string() }),
11
+ zod.z.object({ "X-CSRF-Token": zod.z.string() }),
12
+ zod.z.object({ "x-csrf-token": zod.z.string() }),
13
+ zod.z.object({ "X-CSRF-TOKEN": zod.z.string() })
14
+ ]);
15
+ const USER_TOKEN_REQUEST_HEADER_SCHEMA = zod.z.union([
16
+ sharedTypes.AUTHORIZATION_HEADER_SCHEMA,
17
+ X_CSRF_TOKEN_SCHEMA
18
+ ]);
19
+ exports.JWT_TOKEN_SCHEMA = JWT_TOKEN_SCHEMA;
20
+ exports.USER_TOKEN_REQUEST_HEADER_SCHEMA = USER_TOKEN_REQUEST_HEADER_SCHEMA;
34
21
  //# sourceMappingURL=harmony59.cjs.map