@lokalise/harmony 1.40.2 → 1.40.3-exp-epic2x.2

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 (390) hide show
  1. package/dist/harmony.css +110 -317
  2. package/dist/harmony100.cjs +9 -10
  3. package/dist/harmony100.cjs.map +1 -1
  4. package/dist/harmony100.mjs +11 -12
  5. package/dist/harmony100.mjs.map +1 -1
  6. package/dist/harmony101.cjs +20 -11
  7. package/dist/harmony101.cjs.map +1 -1
  8. package/dist/harmony101.mjs +20 -11
  9. package/dist/harmony101.mjs.map +1 -1
  10. package/dist/harmony102.cjs +99 -6
  11. package/dist/harmony102.cjs.map +1 -1
  12. package/dist/harmony102.mjs +81 -5
  13. package/dist/harmony102.mjs.map +1 -1
  14. package/dist/harmony103.cjs +14 -9
  15. package/dist/harmony103.cjs.map +1 -1
  16. package/dist/harmony103.mjs +13 -8
  17. package/dist/harmony103.mjs.map +1 -1
  18. package/dist/harmony104.cjs +21 -10
  19. package/dist/harmony104.cjs.map +1 -1
  20. package/dist/harmony104.mjs +20 -9
  21. package/dist/harmony104.mjs.map +1 -1
  22. package/dist/harmony105.cjs +85 -55
  23. package/dist/harmony105.cjs.map +1 -1
  24. package/dist/harmony105.mjs +85 -55
  25. package/dist/harmony105.mjs.map +1 -1
  26. package/dist/harmony106.cjs +29 -41
  27. package/dist/harmony106.cjs.map +1 -1
  28. package/dist/harmony106.mjs +29 -41
  29. package/dist/harmony106.mjs.map +1 -1
  30. package/dist/harmony107.cjs +10 -6
  31. package/dist/harmony107.cjs.map +1 -1
  32. package/dist/harmony107.mjs +9 -5
  33. package/dist/harmony107.mjs.map +1 -1
  34. package/dist/harmony108.cjs +12 -9
  35. package/dist/harmony108.cjs.map +1 -1
  36. package/dist/harmony108.mjs +11 -8
  37. package/dist/harmony108.mjs.map +1 -1
  38. package/dist/harmony109.cjs +15 -24
  39. package/dist/harmony109.cjs.map +1 -1
  40. package/dist/harmony109.mjs +14 -23
  41. package/dist/harmony109.mjs.map +1 -1
  42. package/dist/harmony110.cjs +19 -6
  43. package/dist/harmony110.cjs.map +1 -1
  44. package/dist/harmony110.mjs +18 -5
  45. package/dist/harmony110.mjs.map +1 -1
  46. package/dist/harmony111.cjs +7 -18
  47. package/dist/harmony111.cjs.map +1 -1
  48. package/dist/harmony111.mjs +9 -20
  49. package/dist/harmony111.mjs.map +1 -1
  50. package/dist/harmony112.cjs +27 -12
  51. package/dist/harmony112.cjs.map +1 -1
  52. package/dist/harmony112.mjs +26 -11
  53. package/dist/harmony112.mjs.map +1 -1
  54. package/dist/harmony113.cjs +10 -12
  55. package/dist/harmony113.cjs.map +1 -1
  56. package/dist/harmony113.mjs +10 -12
  57. package/dist/harmony113.mjs.map +1 -1
  58. package/dist/harmony114.cjs +38 -18
  59. package/dist/harmony114.cjs.map +1 -1
  60. package/dist/harmony114.mjs +38 -18
  61. package/dist/harmony114.mjs.map +1 -1
  62. package/dist/harmony115.cjs +11 -98
  63. package/dist/harmony115.cjs.map +1 -1
  64. package/dist/harmony115.mjs +11 -81
  65. package/dist/harmony115.mjs.map +1 -1
  66. package/dist/harmony116.cjs +19 -84
  67. package/dist/harmony116.cjs.map +1 -1
  68. package/dist/harmony116.mjs +19 -84
  69. package/dist/harmony116.mjs.map +1 -1
  70. package/dist/harmony117.cjs +35 -29
  71. package/dist/harmony117.cjs.map +1 -1
  72. package/dist/harmony117.mjs +35 -29
  73. package/dist/harmony117.mjs.map +1 -1
  74. package/dist/harmony119.cjs +20 -5
  75. package/dist/harmony119.cjs.map +1 -1
  76. package/dist/harmony119.mjs +20 -5
  77. package/dist/harmony119.mjs.map +1 -1
  78. package/dist/harmony120.cjs +6 -132
  79. package/dist/harmony120.cjs.map +1 -1
  80. package/dist/harmony120.mjs +5 -131
  81. package/dist/harmony120.mjs.map +1 -1
  82. package/dist/harmony121.cjs +12 -9
  83. package/dist/harmony121.cjs.map +1 -1
  84. package/dist/harmony121.mjs +12 -9
  85. package/dist/harmony121.mjs.map +1 -1
  86. package/dist/harmony122.cjs +6 -6
  87. package/dist/harmony122.cjs.map +1 -1
  88. package/dist/harmony122.mjs +5 -5
  89. package/dist/harmony122.mjs.map +1 -1
  90. package/dist/harmony123.cjs +6 -41
  91. package/dist/harmony123.cjs.map +1 -1
  92. package/dist/harmony123.mjs +5 -40
  93. package/dist/harmony123.mjs.map +1 -1
  94. package/dist/harmony124.cjs +96 -60
  95. package/dist/harmony124.cjs.map +1 -1
  96. package/dist/harmony124.mjs +96 -60
  97. package/dist/harmony124.mjs.map +1 -1
  98. package/dist/harmony125.cjs +13 -7
  99. package/dist/harmony125.cjs.map +1 -1
  100. package/dist/harmony125.mjs +13 -7
  101. package/dist/harmony125.mjs.map +1 -1
  102. package/dist/harmony126.cjs +15 -7
  103. package/dist/harmony126.cjs.map +1 -1
  104. package/dist/harmony126.mjs +14 -6
  105. package/dist/harmony126.mjs.map +1 -1
  106. package/dist/harmony127.cjs +37 -6
  107. package/dist/harmony127.cjs.map +1 -1
  108. package/dist/harmony127.mjs +36 -5
  109. package/dist/harmony127.mjs.map +1 -1
  110. package/dist/harmony128.cjs +29 -6
  111. package/dist/harmony128.cjs.map +1 -1
  112. package/dist/harmony128.mjs +28 -5
  113. package/dist/harmony128.mjs.map +1 -1
  114. package/dist/harmony130.cjs +10 -63
  115. package/dist/harmony130.cjs.map +1 -1
  116. package/dist/harmony130.mjs +9 -62
  117. package/dist/harmony130.mjs.map +1 -1
  118. package/dist/harmony131.cjs +6 -88
  119. package/dist/harmony131.cjs.map +1 -1
  120. package/dist/harmony131.mjs +5 -87
  121. package/dist/harmony131.mjs.map +1 -1
  122. package/dist/harmony132.cjs +6 -15
  123. package/dist/harmony132.cjs.map +1 -1
  124. package/dist/harmony132.mjs +6 -15
  125. package/dist/harmony132.mjs.map +1 -1
  126. package/dist/harmony133.cjs +25 -97
  127. package/dist/harmony133.cjs.map +1 -1
  128. package/dist/harmony133.mjs +24 -96
  129. package/dist/harmony133.mjs.map +1 -1
  130. package/dist/harmony134.cjs +7 -14
  131. package/dist/harmony134.cjs.map +1 -1
  132. package/dist/harmony134.mjs +6 -13
  133. package/dist/harmony134.mjs.map +1 -1
  134. package/dist/harmony135.cjs +13 -15
  135. package/dist/harmony135.cjs.map +1 -1
  136. package/dist/harmony135.mjs +12 -14
  137. package/dist/harmony135.mjs.map +1 -1
  138. package/dist/harmony136.cjs +7 -37
  139. package/dist/harmony136.cjs.map +1 -1
  140. package/dist/harmony136.mjs +6 -36
  141. package/dist/harmony136.mjs.map +1 -1
  142. package/dist/harmony137.cjs +12 -27
  143. package/dist/harmony137.cjs.map +1 -1
  144. package/dist/harmony137.mjs +12 -27
  145. package/dist/harmony137.mjs.map +1 -1
  146. package/dist/harmony138.cjs +14 -12
  147. package/dist/harmony138.cjs.map +1 -1
  148. package/dist/harmony138.mjs +14 -12
  149. package/dist/harmony138.mjs.map +1 -1
  150. package/dist/harmony139.cjs +14 -13
  151. package/dist/harmony139.cjs.map +1 -1
  152. package/dist/harmony139.mjs +14 -13
  153. package/dist/harmony139.mjs.map +1 -1
  154. package/dist/harmony14.cjs +1 -1
  155. package/dist/harmony14.mjs +1 -1
  156. package/dist/harmony140.cjs +10 -15
  157. package/dist/harmony140.cjs.map +1 -1
  158. package/dist/harmony140.mjs +10 -15
  159. package/dist/harmony140.mjs.map +1 -1
  160. package/dist/harmony141.cjs +16 -7
  161. package/dist/harmony141.cjs.map +1 -1
  162. package/dist/harmony141.mjs +16 -7
  163. package/dist/harmony141.mjs.map +1 -1
  164. package/dist/harmony142.cjs +20 -56
  165. package/dist/harmony142.cjs.map +1 -1
  166. package/dist/harmony142.mjs +20 -56
  167. package/dist/harmony142.mjs.map +1 -1
  168. package/dist/harmony143.cjs +11 -59
  169. package/dist/harmony143.cjs.map +1 -1
  170. package/dist/harmony143.mjs +11 -59
  171. package/dist/harmony143.mjs.map +1 -1
  172. package/dist/harmony144.cjs +7 -19
  173. package/dist/harmony144.cjs.map +1 -1
  174. package/dist/harmony144.mjs +6 -18
  175. package/dist/harmony144.mjs.map +1 -1
  176. package/dist/harmony145.cjs +11 -10
  177. package/dist/harmony145.cjs.map +1 -1
  178. package/dist/harmony145.mjs +11 -10
  179. package/dist/harmony145.mjs.map +1 -1
  180. package/dist/harmony146.cjs +29 -13
  181. package/dist/harmony146.cjs.map +1 -1
  182. package/dist/harmony146.mjs +29 -13
  183. package/dist/harmony146.mjs.map +1 -1
  184. package/dist/harmony147.cjs +12 -19
  185. package/dist/harmony147.cjs.map +1 -1
  186. package/dist/harmony147.mjs +12 -19
  187. package/dist/harmony147.mjs.map +1 -1
  188. package/dist/harmony17.cjs +1 -1
  189. package/dist/harmony17.mjs +1 -1
  190. package/dist/harmony25.cjs +1 -1
  191. package/dist/harmony25.mjs +1 -1
  192. package/dist/harmony26.cjs +1 -1
  193. package/dist/harmony26.mjs +1 -1
  194. package/dist/harmony4.cjs +5 -24
  195. package/dist/harmony4.cjs.map +1 -1
  196. package/dist/harmony4.mjs +5 -24
  197. package/dist/harmony4.mjs.map +1 -1
  198. package/dist/harmony5.cjs +1 -1
  199. package/dist/harmony5.mjs +1 -1
  200. package/dist/harmony6.cjs +3 -3
  201. package/dist/harmony6.mjs +3 -3
  202. package/dist/harmony7.cjs +1 -1
  203. package/dist/harmony7.mjs +1 -1
  204. package/dist/harmony75.cjs +1 -1
  205. package/dist/harmony75.mjs +1 -1
  206. package/dist/harmony76.cjs +39 -6
  207. package/dist/harmony76.cjs.map +1 -1
  208. package/dist/harmony76.mjs +38 -5
  209. package/dist/harmony76.mjs.map +1 -1
  210. package/dist/harmony77.cjs +36 -8
  211. package/dist/harmony77.cjs.map +1 -1
  212. package/dist/harmony77.mjs +37 -9
  213. package/dist/harmony77.mjs.map +1 -1
  214. package/dist/harmony78.cjs +9 -18
  215. package/dist/harmony78.cjs.map +1 -1
  216. package/dist/harmony78.mjs +8 -17
  217. package/dist/harmony78.mjs.map +1 -1
  218. package/dist/harmony79.cjs +6 -21
  219. package/dist/harmony79.cjs.map +1 -1
  220. package/dist/harmony79.mjs +8 -23
  221. package/dist/harmony79.mjs.map +1 -1
  222. package/dist/harmony8.cjs +5 -5
  223. package/dist/harmony8.mjs +5 -5
  224. package/dist/harmony80.cjs +28 -4
  225. package/dist/harmony80.cjs.map +1 -1
  226. package/dist/harmony80.mjs +28 -4
  227. package/dist/harmony80.mjs.map +1 -1
  228. package/dist/harmony81.cjs +3 -32
  229. package/dist/harmony81.cjs.map +1 -1
  230. package/dist/harmony81.mjs +3 -32
  231. package/dist/harmony81.mjs.map +1 -1
  232. package/dist/harmony82.cjs +30 -29
  233. package/dist/harmony82.cjs.map +1 -1
  234. package/dist/harmony82.mjs +31 -30
  235. package/dist/harmony82.mjs.map +1 -1
  236. package/dist/harmony83.cjs +43 -19
  237. package/dist/harmony83.cjs.map +1 -1
  238. package/dist/harmony83.mjs +43 -19
  239. package/dist/harmony83.mjs.map +1 -1
  240. package/dist/harmony84.cjs +27 -29
  241. package/dist/harmony84.cjs.map +1 -1
  242. package/dist/harmony84.mjs +27 -29
  243. package/dist/harmony84.mjs.map +1 -1
  244. package/dist/harmony85.cjs +64 -57
  245. package/dist/harmony85.cjs.map +1 -1
  246. package/dist/harmony85.mjs +64 -57
  247. package/dist/harmony85.mjs.map +1 -1
  248. package/dist/harmony86.cjs +15 -9
  249. package/dist/harmony86.cjs.map +1 -1
  250. package/dist/harmony86.mjs +14 -8
  251. package/dist/harmony86.mjs.map +1 -1
  252. package/dist/harmony87.cjs +3 -8
  253. package/dist/harmony87.cjs.map +1 -1
  254. package/dist/harmony87.mjs +3 -8
  255. package/dist/harmony87.mjs.map +1 -1
  256. package/dist/harmony88.cjs +163 -26
  257. package/dist/harmony88.cjs.map +1 -1
  258. package/dist/harmony88.mjs +164 -27
  259. package/dist/harmony88.mjs.map +1 -1
  260. package/dist/harmony89.cjs +44 -3
  261. package/dist/harmony89.cjs.map +1 -1
  262. package/dist/harmony89.mjs +44 -3
  263. package/dist/harmony89.mjs.map +1 -1
  264. package/dist/harmony90.cjs +9 -30
  265. package/dist/harmony90.cjs.map +1 -1
  266. package/dist/harmony90.mjs +11 -32
  267. package/dist/harmony90.mjs.map +1 -1
  268. package/dist/harmony91.cjs +13 -44
  269. package/dist/harmony91.cjs.map +1 -1
  270. package/dist/harmony91.mjs +12 -43
  271. package/dist/harmony91.mjs.map +1 -1
  272. package/dist/harmony92.cjs +2 -28
  273. package/dist/harmony92.cjs.map +1 -1
  274. package/dist/harmony92.mjs +3 -29
  275. package/dist/harmony92.mjs.map +1 -1
  276. package/dist/harmony93.cjs +15 -63
  277. package/dist/harmony93.cjs.map +1 -1
  278. package/dist/harmony93.mjs +15 -63
  279. package/dist/harmony93.mjs.map +1 -1
  280. package/dist/harmony94.cjs +74 -13
  281. package/dist/harmony94.cjs.map +1 -1
  282. package/dist/harmony94.mjs +75 -14
  283. package/dist/harmony94.mjs.map +1 -1
  284. package/dist/harmony95.cjs +12 -3
  285. package/dist/harmony95.cjs.map +1 -1
  286. package/dist/harmony95.mjs +12 -3
  287. package/dist/harmony95.mjs.map +1 -1
  288. package/dist/harmony96.cjs +30 -11
  289. package/dist/harmony96.cjs.map +1 -1
  290. package/dist/harmony96.mjs +30 -11
  291. package/dist/harmony96.mjs.map +1 -1
  292. package/dist/harmony97.cjs +10 -22
  293. package/dist/harmony97.cjs.map +1 -1
  294. package/dist/harmony97.mjs +9 -21
  295. package/dist/harmony97.mjs.map +1 -1
  296. package/dist/harmony98.cjs +44 -163
  297. package/dist/harmony98.cjs.map +1 -1
  298. package/dist/harmony98.mjs +44 -163
  299. package/dist/harmony98.mjs.map +1 -1
  300. package/dist/harmony99.cjs +9 -44
  301. package/dist/harmony99.cjs.map +1 -1
  302. package/dist/harmony99.mjs +8 -43
  303. package/dist/harmony99.mjs.map +1 -1
  304. package/dist/types/src/components/Sidebar/Sidebar.d.ts +15 -49
  305. package/dist/types/src/components/Sidebar/SidebarContent/SidebarContent.d.ts +7 -0
  306. package/dist/types/src/components/Sidebar/SidebarContext.d.ts +3 -0
  307. package/dist/types/src/components/Sidebar/SidebarProvider.d.ts +3 -0
  308. package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +5 -0
  309. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.d.ts +13 -0
  310. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.test.d.ts +1 -0
  311. package/dist/types/src/components/Sidebar/Widgets/IconLink/IconLink.test.d.ts +1 -0
  312. package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +3 -2
  313. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.d.ts +13 -0
  314. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.d.ts +17 -0
  315. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.test.d.ts +1 -0
  316. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.d.ts +17 -0
  317. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.test.d.ts +1 -0
  318. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.d.ts +18 -0
  319. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +11 -24
  320. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.stories.d.ts +3 -5
  321. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +10 -35
  322. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.test.d.ts +1 -0
  323. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.d.ts +13 -0
  324. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.test.d.ts +1 -0
  325. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +1 -3
  326. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.test.d.ts +1 -0
  327. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.d.ts +13 -0
  328. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.test.d.ts +1 -0
  329. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +5 -7
  330. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.test.d.ts +1 -0
  331. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +6 -9
  332. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.test.d.ts +1 -0
  333. package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/content.d.ts +4 -0
  334. package/dist/types/src/components/Sidebar/hooks/useSidebar.d.ts +1 -0
  335. package/dist/types/src/components/Sidebar/hooks/useSidebarDataLoader.d.ts +5 -0
  336. package/dist/types/src/components/Sidebar/types.d.ts +70 -0
  337. package/dist/types/src/features/auth/core/types/jwtTokenPayload.d.ts +16 -10
  338. package/dist/types/src/features/auth/core/types/jwtTokenPayload.fixture.d.ts +15 -11
  339. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedSessionPayload.d.ts +7 -5
  340. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
  341. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +3 -3
  342. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
  343. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +2 -2
  344. package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
  345. package/dist/types/src/features/publicApi/permissionTemplates.d.ts +8 -8
  346. package/dist/types/src/features/publicApi/projects.d.ts +12 -12
  347. package/dist/types/src/features/publicApi/teamUsers.d.ts +8 -8
  348. package/dist/types/src/features/publicApi/types/permissionTemplateTypes.d.ts +12 -12
  349. package/dist/types/src/features/publicApi/types/permissionTypes.d.ts +2 -2
  350. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +18 -18
  351. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +10 -10
  352. package/dist/types/src/utils/user/permissions.d.ts +9 -0
  353. package/dist/types/src/utils/user/permissions.test.d.ts +1 -0
  354. package/dist/types/tests/mocks/sidebar/sidebar.d.ts +14 -0
  355. package/dist/types/tests/utils/sidebar.d.ts +4 -0
  356. package/package.json +1 -1
  357. package/dist/harmony148.cjs +0 -15
  358. package/dist/harmony148.cjs.map +0 -1
  359. package/dist/harmony148.mjs +0 -15
  360. package/dist/harmony148.mjs.map +0 -1
  361. package/dist/harmony149.cjs +0 -9
  362. package/dist/harmony149.cjs.map +0 -1
  363. package/dist/harmony149.mjs +0 -9
  364. package/dist/harmony149.mjs.map +0 -1
  365. package/dist/harmony150.cjs +0 -15
  366. package/dist/harmony150.cjs.map +0 -1
  367. package/dist/harmony150.mjs +0 -15
  368. package/dist/harmony150.mjs.map +0 -1
  369. package/dist/harmony151.cjs +0 -35
  370. package/dist/harmony151.cjs.map +0 -1
  371. package/dist/harmony151.mjs +0 -35
  372. package/dist/harmony151.mjs.map +0 -1
  373. package/dist/harmony152.cjs +0 -17
  374. package/dist/harmony152.cjs.map +0 -1
  375. package/dist/harmony152.mjs +0 -17
  376. package/dist/harmony152.mjs.map +0 -1
  377. package/dist/harmony153.cjs +0 -49
  378. package/dist/harmony153.cjs.map +0 -1
  379. package/dist/harmony153.mjs +0 -49
  380. package/dist/harmony153.mjs.map +0 -1
  381. package/dist/harmony154.cjs +0 -15
  382. package/dist/harmony154.cjs.map +0 -1
  383. package/dist/harmony154.mjs +0 -15
  384. package/dist/harmony154.mjs.map +0 -1
  385. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContent.d.ts +0 -6
  386. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.d.ts +0 -3
  387. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.d.ts +0 -7
  388. package/dist/types/src/components/Sidebar/utils/index.d.ts +0 -4
  389. /package/dist/types/src/components/Sidebar/Widgets/{ProfileMenu/ProfileMenu.test.d.ts → Avatar/Avatar.test.d.ts} +0 -0
  390. /package/dist/types/src/components/Sidebar/{UpgradeIcon → Widgets/ProfileMenu/UpgradeIcon}/UpgradeIcon.d.ts +0 -0
@@ -1,34 +1,32 @@
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("./harmony9.cjs");
6
- const UpgradeIcon = require("./harmony111.cjs");
7
- const ProfileMenuContext = require("./harmony107.cjs");
8
- const UpgradeMenuItem_module = require("./harmony112.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
- }
3
+ const React = require("react");
4
+ const useExpertNavigation = require("./harmony88.cjs");
5
+ const useNextgenNavigation = require("./harmony89.cjs");
6
+ const isLegacyProject = (type) => {
7
+ return type !== "marketing";
8
+ };
9
+ const useNavigation = (activeKey, project, contributorData) => {
10
+ const legacyNavigationItems = useExpertNavigation.useExpertNavigation(
11
+ isLegacyProject(project == null ? void 0 : project.project_type),
12
+ project,
13
+ contributorData
14
+ );
15
+ const newNavigationItems = useNextgenNavigation.useNextgenNavigation(
16
+ activeKey,
17
+ !isLegacyProject(project == null ? void 0 : project.project_type),
18
+ project
31
19
  );
20
+ return React.useMemo(() => {
21
+ if (!project) {
22
+ return [];
23
+ }
24
+ if (isLegacyProject(project.project_type)) {
25
+ return legacyNavigationItems;
26
+ }
27
+ return newNavigationItems;
28
+ }, [project, legacyNavigationItems, newNavigationItems]);
32
29
  };
33
- exports.UpgradeMenuItem = UpgradeMenuItem;
30
+ exports.isLegacyProject = isLegacyProject;
31
+ exports.useNavigation = useNavigation;
34
32
  //# sourceMappingURL=harmony84.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony84.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
+ {"version":3,"file":"harmony84.cjs","sources":["../src/features/navigation/hooks/useNavigation.ts"],"sourcesContent":["import type { Contributor, Project, ProjectType } from '@features/node'\nimport { useMemo } from 'react'\nimport { useExpertNavigation } from './useExpertNavigation'\nimport { useNextgenNavigation } from './useNextgenNavigation'\n\nexport const isLegacyProject = (type: ProjectType | undefined) => {\n\treturn type !== 'marketing'\n}\n\n/**\n * Main useNavigation hook that serves as an arbiter between legacy and new navigation.\n * It determines which navigation system to use based on project type.\n */\nexport const useNavigation = (\n\tactiveKey: string,\n\tproject?: Project,\n\tcontributorData?: Contributor,\n) => {\n\t// Get navigation items from expert or next-gen system, depending on project type\n\tconst legacyNavigationItems = useExpertNavigation(\n\t\tisLegacyProject(project?.project_type),\n\t\tproject,\n\t\tcontributorData,\n\t)\n\tconst newNavigationItems = useNextgenNavigation(\n\t\tactiveKey,\n\t\t!isLegacyProject(project?.project_type),\n\t\tproject,\n\t)\n\n\t// Determine which navigation items to use based on project type\n\treturn useMemo(() => {\n\t\tif (!project) {\n\t\t\treturn []\n\t\t}\n\t\t// Use legacy navigation for legacy project types\n\t\tif (isLegacyProject(project.project_type)) {\n\t\t\treturn legacyNavigationItems\n\t\t}\n\n\t\t// Use new navigation for new project types\n\t\treturn newNavigationItems\n\t}, [project, legacyNavigationItems, newNavigationItems])\n}\n"],"names":["useExpertNavigation","useNextgenNavigation","useMemo"],"mappings":";;;;;AAKa,MAAA,kBAAkB,CAAC,SAAkC;AACjE,SAAO,SAAS;AACjB;AAMO,MAAM,gBAAgB,CAC5B,WACA,SACA,oBACI;AAEJ,QAAM,wBAAwBA,oBAAA;AAAA,IAC7B,gBAAgB,mCAAS,YAAY;AAAA,IACrC;AAAA,IACA;AAAA,EACD;AACA,QAAM,qBAAqBC,qBAAA;AAAA,IAC1B;AAAA,IACA,CAAC,gBAAgB,mCAAS,YAAY;AAAA,IACtC;AAAA,EACD;AAGA,SAAOC,cAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGL,QAAA,gBAAgB,QAAQ,YAAY,GAAG;AACnC,aAAA;AAAA,IAAA;AAID,WAAA;AAAA,EACL,GAAA,CAAC,SAAS,uBAAuB,kBAAkB,CAAC;AACxD;;;"}
@@ -1,34 +1,32 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { MenuItem } from "@lokalise/louis";
3
- import { isFreePlan } from "./harmony9.mjs";
4
- import { UpgradeIcon } from "./harmony111.mjs";
5
- import { useProfileMenu } from "./harmony107.mjs";
6
- import styles from "./harmony112.mjs";
7
- const UpgradeMenuItem = ({ upgradeOptionHref }) => {
8
- const { planId, trialDaysLeft, showUpgradeCta } = useProfileMenu();
9
- if (!showUpgradeCta) {
10
- return null;
11
- }
12
- const isOnFreePlan = isFreePlan(planId);
13
- const daysNoun = trialDaysLeft === 1 ? "day" : "days";
14
- const ctaMessage = isOnFreePlan ? "Your team is currently on the Free plan" : `Free trial ends in ${trialDaysLeft} ${daysNoun}`;
15
- return /* @__PURE__ */ jsxs(
16
- MenuItem,
17
- {
18
- "data-testid": "sidebar-upgrade-menu-item",
19
- href: upgradeOptionHref,
20
- className: `flex-col gap-1 items-start ${styles.container}`,
21
- children: [
22
- /* @__PURE__ */ jsx("span", { className: styles.planCta, children: ctaMessage }),
23
- /* @__PURE__ */ jsxs("div", { className: `flex-row items-center gap-1 ${styles.upgradeIconWrapper}`, children: [
24
- /* @__PURE__ */ jsx(UpgradeIcon, {}),
25
- /* @__PURE__ */ jsx("span", { children: "See upgrade options" })
26
- ] })
27
- ]
28
- }
1
+ import { useMemo } from "react";
2
+ import { useExpertNavigation } from "./harmony88.mjs";
3
+ import { useNextgenNavigation } from "./harmony89.mjs";
4
+ const isLegacyProject = (type) => {
5
+ return type !== "marketing";
6
+ };
7
+ const useNavigation = (activeKey, project, contributorData) => {
8
+ const legacyNavigationItems = useExpertNavigation(
9
+ isLegacyProject(project == null ? void 0 : project.project_type),
10
+ project,
11
+ contributorData
12
+ );
13
+ const newNavigationItems = useNextgenNavigation(
14
+ activeKey,
15
+ !isLegacyProject(project == null ? void 0 : project.project_type),
16
+ project
29
17
  );
18
+ return useMemo(() => {
19
+ if (!project) {
20
+ return [];
21
+ }
22
+ if (isLegacyProject(project.project_type)) {
23
+ return legacyNavigationItems;
24
+ }
25
+ return newNavigationItems;
26
+ }, [project, legacyNavigationItems, newNavigationItems]);
30
27
  };
31
28
  export {
32
- UpgradeMenuItem
29
+ isLegacyProject,
30
+ useNavigation
33
31
  };
34
32
  //# sourceMappingURL=harmony84.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony84.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.tsx"],"sourcesContent":["import { MenuItem } from '@lokalise/louis'\nimport { isFreePlan } from '@utils'\nimport { UpgradeIcon } from '../../../UpgradeIcon/UpgradeIcon'\nimport { useProfileMenu } from '../ProfileMenuContext'\nimport styles from './UpgradeMenuItem.module.css'\n\ntype UpgradeMenuItemProps = {\n\t/** URL to the upgrade page or pricing options */\n\tupgradeOptionHref: string\n}\n\n/**\n * A menu item component that displays upgrade call-to-action information.\n * Only renders when upgrade options should be shown (determined by context).\n *\n * The component displays different messages based on the team's current plan:\n * - For free plans: \"Your team is currently on the Free plan\"\n * - For trial plans: \"Free trial ends in X days\"\n *\n * Includes an upgrade icon and \"See upgrade options\" text, styled to draw attention\n * to the upgrade opportunity.\n *\n * @example\n * ```tsx\n * <UpgradeMenuItem upgradeOptionHref=\"/pricing\" />\n * ```\n *\n * @note This component must be used within a ProfileMenu component\n * as it requires access to the ProfileMenu context for plan information\n * and visibility control.\n */\nexport const UpgradeMenuItem = ({ upgradeOptionHref }: UpgradeMenuItemProps) => {\n\tconst { planId, trialDaysLeft, showUpgradeCta } = useProfileMenu()\n\n\tif (!showUpgradeCta) {\n\t\treturn null\n\t}\n\n\tconst isOnFreePlan = isFreePlan(planId)\n\n\tconst daysNoun = trialDaysLeft === 1 ? 'day' : 'days'\n\tconst ctaMessage = isOnFreePlan\n\t\t? 'Your team is currently on the Free plan'\n\t\t: `Free trial ends in ${trialDaysLeft} ${daysNoun}`\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-upgrade-menu-item\"\n\t\t\thref={upgradeOptionHref}\n\t\t\tclassName={`flex-col gap-1 items-start ${styles.container}`}\n\t\t>\n\t\t\t<span className={styles.planCta}>{ctaMessage}</span>\n\t\t\t<div className={`flex-row items-center gap-1 ${styles.upgradeIconWrapper}`}>\n\t\t\t\t<UpgradeIcon />\n\t\t\t\t<span>See upgrade options</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;;;;AA+BO,MAAM,kBAAkB,CAAC,EAAE,wBAA8C;AAC/E,QAAM,EAAE,QAAQ,eAAe,eAAA,IAAmB,eAAe;AAEjE,MAAI,CAAC,gBAAgB;AACb,WAAA;AAAA,EAAA;AAGF,QAAA,eAAe,WAAW,MAAM;AAEhC,QAAA,WAAW,kBAAkB,IAAI,QAAQ;AAC/C,QAAM,aAAa,eAChB,4CACA,sBAAsB,aAAa,IAAI,QAAQ;AAGjD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAM;AAAA,MACN,WAAW,8BAA8B,OAAO,SAAS;AAAA,MAEzD,UAAA;AAAA,QAAA,oBAAC,QAAK,EAAA,WAAW,OAAO,SAAU,UAAW,YAAA;AAAA,6BAC5C,OAAI,EAAA,WAAW,+BAA+B,OAAO,kBAAkB,IACvE,UAAA;AAAA,UAAA,oBAAC,aAAY,EAAA;AAAA,UACb,oBAAC,UAAK,UAAmB,sBAAA,CAAA;AAAA,QAAA,EAC1B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"harmony84.mjs","sources":["../src/features/navigation/hooks/useNavigation.ts"],"sourcesContent":["import type { Contributor, Project, ProjectType } from '@features/node'\nimport { useMemo } from 'react'\nimport { useExpertNavigation } from './useExpertNavigation'\nimport { useNextgenNavigation } from './useNextgenNavigation'\n\nexport const isLegacyProject = (type: ProjectType | undefined) => {\n\treturn type !== 'marketing'\n}\n\n/**\n * Main useNavigation hook that serves as an arbiter between legacy and new navigation.\n * It determines which navigation system to use based on project type.\n */\nexport const useNavigation = (\n\tactiveKey: string,\n\tproject?: Project,\n\tcontributorData?: Contributor,\n) => {\n\t// Get navigation items from expert or next-gen system, depending on project type\n\tconst legacyNavigationItems = useExpertNavigation(\n\t\tisLegacyProject(project?.project_type),\n\t\tproject,\n\t\tcontributorData,\n\t)\n\tconst newNavigationItems = useNextgenNavigation(\n\t\tactiveKey,\n\t\t!isLegacyProject(project?.project_type),\n\t\tproject,\n\t)\n\n\t// Determine which navigation items to use based on project type\n\treturn useMemo(() => {\n\t\tif (!project) {\n\t\t\treturn []\n\t\t}\n\t\t// Use legacy navigation for legacy project types\n\t\tif (isLegacyProject(project.project_type)) {\n\t\t\treturn legacyNavigationItems\n\t\t}\n\n\t\t// Use new navigation for new project types\n\t\treturn newNavigationItems\n\t}, [project, legacyNavigationItems, newNavigationItems])\n}\n"],"names":[],"mappings":";;;AAKa,MAAA,kBAAkB,CAAC,SAAkC;AACjE,SAAO,SAAS;AACjB;AAMO,MAAM,gBAAgB,CAC5B,WACA,SACA,oBACI;AAEJ,QAAM,wBAAwB;AAAA,IAC7B,gBAAgB,mCAAS,YAAY;AAAA,IACrC;AAAA,IACA;AAAA,EACD;AACA,QAAM,qBAAqB;AAAA,IAC1B;AAAA,IACA,CAAC,gBAAgB,mCAAS,YAAY;AAAA,IACtC;AAAA,EACD;AAGA,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGL,QAAA,gBAAgB,QAAQ,YAAY,GAAG;AACnC,aAAA;AAAA,IAAA;AAID,WAAA;AAAA,EACL,GAAA,CAAC,SAAS,uBAAuB,kBAAkB,CAAC;AACxD;"}
@@ -1,62 +1,69 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const floatingUi_core = require("./harmony120.cjs");
5
- const louis = require("@lokalise/louis");
6
- const useEffectOnce = require("./harmony13.cjs");
7
- const clsx = require("./harmony73.cjs");
8
- const React = require("react");
9
- const Tasks_module = require("./harmony121.cjs");
10
- const TasksContext = require("./harmony122.cjs");
11
- const TasksPopover = require("./harmony123.cjs");
12
- const TasksProvider = require("./harmony124.cjs");
13
- const taskEvents = require("./harmony125.cjs");
14
- const Tasks = TasksProvider.withTasksContext(() => {
15
- const [open, setOpen] = React.useState(false);
16
- const { tasksCount } = TasksContext.useTasks();
17
- useEffectOnce.useEffectOnce(() => {
18
- const showDialog = () => {
19
- setOpen(true);
20
- };
21
- document.addEventListener(taskEvents.TaskEvents.ShowDialog, showDialog);
22
- return () => {
23
- document.removeEventListener(taskEvents.TaskEvents.ShowDialog, showDialog);
24
- };
25
- });
26
- return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { tooltip: "Tasks", placement: "right", children: /* @__PURE__ */ jsxRuntime.jsx(
27
- louis.Popover,
3
+ const headerBuilderFactories = require("./harmony21.cjs");
4
+ const useRetrieveContributorQuery = require("./harmony55.cjs");
5
+ const useRetrieveProjectQuery = require("./harmony56.cjs");
6
+ const NavigationClientProvider = require("./harmony86.cjs");
7
+ function useNavigationProjectQuery(projectId) {
8
+ const navigationClient = NavigationClientProvider.useNavigationClient();
9
+ const expertPublicApiUrl = navigationClient.getExpertPublicApiUrl();
10
+ return useRetrieveProjectQuery.useRetrieveProjectQuery(
11
+ navigationClient.getPublicApiClient(),
12
+ headerBuilderFactories.createPublicApiHeaderBuilder(expertPublicApiUrl),
28
13
  {
29
- content: /* @__PURE__ */ jsxRuntime.jsx(TasksPopover.TasksPopover, {}),
30
- placement: "right",
31
- open,
32
- onOpenChange: setOpen,
33
- middlewares: [
34
- floatingUi_core.shift({
35
- // Adding some spacing to the top and bottom so the popover
36
- // doesn't extend to the edges of the screen.
37
- padding: {
38
- top: 32,
39
- bottom: 32
40
- }
41
- })
42
- ],
43
- children: (visible) => /* @__PURE__ */ jsxRuntime.jsxs(
44
- louis.Button,
45
- {
46
- type: "button",
47
- "data-testid": "sidebar-tasks-widget-button",
48
- "aria-label": "Tasks",
49
- className: clsx.clsx(Tasks_module.default.navItem, {
50
- [Tasks_module.default.activeNavItem]: visible
51
- }),
52
- children: [
53
- /* @__PURE__ */ jsxRuntime.jsx(louis.JobIcon, { size: "25px" }),
54
- tasksCount > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: Tasks_module.default.badge, "aria-label": `${tasksCount} items requiring attention`, children: tasksCount > 9 ? "9+" : tasksCount })
55
- ]
56
- }
57
- )
14
+ queryKey: useRetrieveProjectQuery.retrieveProjectQueryKey.projectIdKey(projectId),
15
+ enabled: !!projectId,
16
+ staleTime: 5 * 60 * 1e3
17
+ // 5 minutes
58
18
  }
59
- ) });
60
- });
61
- exports.Tasks = Tasks;
19
+ );
20
+ }
21
+ function useNavigationContributorQuery(projectId) {
22
+ const navigationClient = NavigationClientProvider.useNavigationClient();
23
+ const expertPublicApiUrl = navigationClient.getExpertPublicApiUrl();
24
+ return useRetrieveContributorQuery.useRetrieveContributorQuery(
25
+ navigationClient.getPublicApiClient(),
26
+ headerBuilderFactories.createPublicApiHeaderBuilder(expertPublicApiUrl),
27
+ {
28
+ queryKey: useRetrieveContributorQuery.retrieveContributorKeys.projectUserKey({
29
+ project: { id: projectId },
30
+ contributor: { authenticatedUser: true }
31
+ }),
32
+ enabled: !!projectId,
33
+ staleTime: 5 * 60 * 1e3
34
+ // 5 minutes
35
+ }
36
+ );
37
+ }
38
+ function useNavigationData(projectId) {
39
+ var _a;
40
+ const projectQuery = useNavigationProjectQuery(projectId);
41
+ const contributorQuery = useNavigationContributorQuery(projectId);
42
+ return {
43
+ // Individual queries
44
+ projectQuery,
45
+ contributorQuery,
46
+ // Combined data
47
+ data: {
48
+ project: projectQuery.data,
49
+ contributor: (_a = contributorQuery.data) == null ? void 0 : _a.contributor
50
+ },
51
+ // Combined loading state
52
+ isLoading: projectQuery.isLoading || contributorQuery.isLoading,
53
+ // Combined error state
54
+ error: projectQuery.error || contributorQuery.error,
55
+ // Check if any query is still loading
56
+ isAnyLoading: projectQuery.isLoading || contributorQuery.isLoading,
57
+ // Check if all queries have data
58
+ hasAllData: !!(projectQuery.data && contributorQuery.data),
59
+ // Refetch all queries
60
+ refetchAll: () => {
61
+ projectQuery.refetch();
62
+ contributorQuery.refetch();
63
+ }
64
+ };
65
+ }
66
+ exports.useNavigationContributorQuery = useNavigationContributorQuery;
67
+ exports.useNavigationData = useNavigationData;
68
+ exports.useNavigationProjectQuery = useNavigationProjectQuery;
62
69
  //# sourceMappingURL=harmony85.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony85.cjs","sources":["../src/components/Sidebar/Widgets/Tasks/Tasks.tsx"],"sourcesContent":["import { shift } from '@floating-ui/core'\nimport { Button, JobIcon, Popover, Tooltip } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport styles from './Tasks.module.css'\nimport { useTasks } from './TasksContext'\nimport { TasksPopover } from './TasksPopover/TasksPopover'\nimport { withTasksContext } from './TasksProvider'\nimport { TaskEvents } from './utils/taskEvents'\n\nexport const Tasks = withTasksContext(() => {\n\tconst [open, setOpen] = useState(false)\n\n\tconst { tasksCount } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst showDialog = () => {\n\t\t\tsetOpen(true)\n\t\t}\n\n\t\tdocument.addEventListener(TaskEvents.ShowDialog, showDialog)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.ShowDialog, showDialog)\n\t\t}\n\t})\n\n\treturn (\n\t\t<Tooltip tooltip=\"Tasks\" placement=\"right\">\n\t\t\t<Popover\n\t\t\t\tcontent={<TasksPopover />}\n\t\t\t\tplacement=\"right\"\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tmiddlewares={[\n\t\t\t\t\tshift({\n\t\t\t\t\t\t// Adding some spacing to the top and bottom so the popover\n\t\t\t\t\t\t// doesn't extend to the edges of the screen.\n\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\ttop: 32,\n\t\t\t\t\t\t\tbottom: 32,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{(visible) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdata-testid=\"sidebar-tasks-widget-button\"\n\t\t\t\t\t\taria-label=\"Tasks\"\n\t\t\t\t\t\tclassName={clsx(styles.navItem, {\n\t\t\t\t\t\t\t[styles.activeNavItem]: visible,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobIcon size=\"25px\" />\n\t\t\t\t\t\t{tasksCount > 0 && (\n\t\t\t\t\t\t\t<div className={styles.badge} aria-label={`${tasksCount} items requiring attention`}>\n\t\t\t\t\t\t\t\t{tasksCount > 9 ? '9+' : tasksCount}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</Popover>\n\t\t</Tooltip>\n\t)\n})\n"],"names":["withTasksContext","useState","useTasks","useEffectOnce","TaskEvents","jsx","Tooltip","Popover","TasksPopover","shift","jsxs","Button","clsx","styles","JobIcon"],"mappings":";;;;;;;;;;;;;AAWa,MAAA,QAAQA,+BAAiB,MAAM;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAIC,MAAAA,SAAS,KAAK;AAEhC,QAAA,EAAE,WAAW,IAAIC,sBAAS;AAEhCC,gBAAAA,cAAc,MAAM;AACnB,UAAM,aAAa,MAAM;AACxB,cAAQ,IAAI;AAAA,IACb;AAES,aAAA,iBAAiBC,sBAAW,YAAY,UAAU;AAE3D,WAAO,MAAM;AACH,eAAA,oBAAoBA,sBAAW,YAAY,UAAU;AAAA,IAC/D;AAAA,EAAA,CACA;AAED,SACEC,2BAAA,IAAAC,MAAA,SAAA,EAAQ,SAAQ,SAAQ,WAAU,SAClC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,wCAAUC,aAAa,cAAA,EAAA;AAAA,MACvB,WAAU;AAAA,MACV;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACZC,sBAAM;AAAA;AAAA;AAAA,UAGL,SAAS;AAAA,YACR,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QAET,CAAA;AAAA,MACF;AAAA,MAEC,WAAC,YACDC,2BAAA;AAAA,QAACC,MAAA;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,eAAY;AAAA,UACZ,cAAW;AAAA,UACX,WAAWC,KAAAA,KAAKC,aAAA,QAAO,SAAS;AAAA,YAC/B,CAACA,aAAAA,QAAO,aAAa,GAAG;AAAA,UAAA,CACxB;AAAA,UAED,UAAA;AAAA,YAACR,2BAAAA,IAAAS,MAAA,SAAA,EAAQ,MAAK,OAAO,CAAA;AAAA,YACpB,aAAa,KACZT,+BAAA,OAAA,EAAI,WAAWQ,aAAO,QAAA,OAAO,cAAY,GAAG,UAAU,8BACrD,UAAa,aAAA,IAAI,OAAO,WAC1B,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA,GAGH;AAEF,CAAC;;"}
1
+ {"version":3,"file":"harmony85.cjs","sources":["../src/features/navigation/hooks/useNavigationQueries.ts"],"sourcesContent":["import { createPublicApiHeaderBuilder } from '@features/auth/factories/headerBuilderFactories'\nimport {\n\tretrieveContributorKeys,\n\tuseRetrieveContributorQuery,\n} from '@features/publicApi/hooks/useRetrieveContributorQuery'\nimport {\n\tretrieveProjectQueryKey,\n\tuseRetrieveProjectQuery,\n} from '@features/publicApi/hooks/useRetrieveProjectQuery'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n\n/**\n * Hook to fetch project data for navigation\n */\nexport function useNavigationProjectQuery(projectId: string) {\n\tconst navigationClient = useNavigationClient()\n\tconst expertPublicApiUrl = navigationClient.getExpertPublicApiUrl()\n\n\treturn useRetrieveProjectQuery(\n\t\tnavigationClient.getPublicApiClient(),\n\t\tcreatePublicApiHeaderBuilder(expertPublicApiUrl),\n\t\t{\n\t\t\tqueryKey: retrieveProjectQueryKey.projectIdKey(projectId),\n\t\t\tenabled: !!projectId,\n\t\t\tstaleTime: 5 * 60 * 1000, // 5 minutes\n\t\t},\n\t)\n}\n\n/**\n * Hook to fetch contributor data for navigation\n */\nexport function useNavigationContributorQuery(projectId: string) {\n\tconst navigationClient = useNavigationClient()\n\tconst expertPublicApiUrl = navigationClient.getExpertPublicApiUrl()\n\n\treturn useRetrieveContributorQuery(\n\t\tnavigationClient.getPublicApiClient(),\n\t\tcreatePublicApiHeaderBuilder(expertPublicApiUrl),\n\t\t{\n\t\t\tqueryKey: retrieveContributorKeys.projectUserKey({\n\t\t\t\tproject: { id: projectId },\n\t\t\t\tcontributor: { authenticatedUser: true },\n\t\t\t}),\n\t\t\tenabled: !!projectId,\n\t\t\tstaleTime: 5 * 60 * 1000, // 5 minutes\n\t\t},\n\t)\n}\n\n/**\n * Composite hook that fetches all navigation data\n */\nexport function useNavigationData(projectId: string) {\n\tconst projectQuery = useNavigationProjectQuery(projectId)\n\tconst contributorQuery = useNavigationContributorQuery(projectId)\n\n\treturn {\n\t\t// Individual queries\n\t\tprojectQuery,\n\t\tcontributorQuery,\n\n\t\t// Combined data\n\t\tdata: {\n\t\t\tproject: projectQuery.data,\n\t\t\tcontributor: contributorQuery.data?.contributor,\n\t\t},\n\n\t\t// Combined loading state\n\t\tisLoading: projectQuery.isLoading || contributorQuery.isLoading,\n\n\t\t// Combined error state\n\t\terror: projectQuery.error || contributorQuery.error,\n\n\t\t// Check if any query is still loading\n\t\tisAnyLoading: projectQuery.isLoading || contributorQuery.isLoading,\n\n\t\t// Check if all queries have data\n\t\thasAllData: !!(projectQuery.data && contributorQuery.data),\n\n\t\t// Refetch all queries\n\t\trefetchAll: () => {\n\t\t\tprojectQuery.refetch()\n\t\t\tcontributorQuery.refetch()\n\t\t},\n\t}\n}\n"],"names":["useNavigationClient","useRetrieveProjectQuery","createPublicApiHeaderBuilder","retrieveProjectQueryKey","useRetrieveContributorQuery","retrieveContributorKeys"],"mappings":";;;;;;AAcO,SAAS,0BAA0B,WAAmB;AAC5D,QAAM,mBAAmBA,yBAAAA,oBAAoB;AACvC,QAAA,qBAAqB,iBAAiB,sBAAsB;AAE3D,SAAAC,wBAAA;AAAA,IACN,iBAAiB,mBAAmB;AAAA,IACpCC,uBAAAA,6BAA6B,kBAAkB;AAAA,IAC/C;AAAA,MACC,UAAUC,wBAAAA,wBAAwB,aAAa,SAAS;AAAA,MACxD,SAAS,CAAC,CAAC;AAAA,MACX,WAAW,IAAI,KAAK;AAAA;AAAA,IAAA;AAAA,EAEtB;AACD;AAKO,SAAS,8BAA8B,WAAmB;AAChE,QAAM,mBAAmBH,yBAAAA,oBAAoB;AACvC,QAAA,qBAAqB,iBAAiB,sBAAsB;AAE3D,SAAAI,4BAAA;AAAA,IACN,iBAAiB,mBAAmB;AAAA,IACpCF,uBAAAA,6BAA6B,kBAAkB;AAAA,IAC/C;AAAA,MACC,UAAUG,oDAAwB,eAAe;AAAA,QAChD,SAAS,EAAE,IAAI,UAAU;AAAA,QACzB,aAAa,EAAE,mBAAmB,KAAK;AAAA,MAAA,CACvC;AAAA,MACD,SAAS,CAAC,CAAC;AAAA,MACX,WAAW,IAAI,KAAK;AAAA;AAAA,IAAA;AAAA,EAEtB;AACD;AAKO,SAAS,kBAAkB,WAAmB;;AAC9C,QAAA,eAAe,0BAA0B,SAAS;AAClD,QAAA,mBAAmB,8BAA8B,SAAS;AAEzD,SAAA;AAAA;AAAA,IAEN;AAAA,IACA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS,aAAa;AAAA,MACtB,cAAa,sBAAiB,SAAjB,mBAAuB;AAAA,IACrC;AAAA;AAAA,IAGA,WAAW,aAAa,aAAa,iBAAiB;AAAA;AAAA,IAGtD,OAAO,aAAa,SAAS,iBAAiB;AAAA;AAAA,IAG9C,cAAc,aAAa,aAAa,iBAAiB;AAAA;AAAA,IAGzD,YAAY,CAAC,EAAE,aAAa,QAAQ,iBAAiB;AAAA;AAAA,IAGrD,YAAY,MAAM;AACjB,mBAAa,QAAQ;AACrB,uBAAiB,QAAQ;AAAA,IAAA;AAAA,EAE3B;AACD;;;;"}
@@ -1,62 +1,69 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { shift } from "./harmony120.mjs";
3
- import { Tooltip, Popover, Button, JobIcon } from "@lokalise/louis";
4
- import { useEffectOnce } from "./harmony13.mjs";
5
- import { clsx } from "./harmony73.mjs";
6
- import { useState } from "react";
7
- import styles from "./harmony121.mjs";
8
- import { useTasks } from "./harmony122.mjs";
9
- import { TasksPopover } from "./harmony123.mjs";
10
- import { withTasksContext } from "./harmony124.mjs";
11
- import { TaskEvents } from "./harmony125.mjs";
12
- const Tasks = withTasksContext(() => {
13
- const [open, setOpen] = useState(false);
14
- const { tasksCount } = useTasks();
15
- useEffectOnce(() => {
16
- const showDialog = () => {
17
- setOpen(true);
18
- };
19
- document.addEventListener(TaskEvents.ShowDialog, showDialog);
20
- return () => {
21
- document.removeEventListener(TaskEvents.ShowDialog, showDialog);
22
- };
23
- });
24
- return /* @__PURE__ */ jsx(Tooltip, { tooltip: "Tasks", placement: "right", children: /* @__PURE__ */ jsx(
25
- Popover,
1
+ import { createPublicApiHeaderBuilder } from "./harmony21.mjs";
2
+ import { useRetrieveContributorQuery, retrieveContributorKeys } from "./harmony55.mjs";
3
+ import { useRetrieveProjectQuery, retrieveProjectQueryKey } from "./harmony56.mjs";
4
+ import { useNavigationClient } from "./harmony86.mjs";
5
+ function useNavigationProjectQuery(projectId) {
6
+ const navigationClient = useNavigationClient();
7
+ const expertPublicApiUrl = navigationClient.getExpertPublicApiUrl();
8
+ return useRetrieveProjectQuery(
9
+ navigationClient.getPublicApiClient(),
10
+ createPublicApiHeaderBuilder(expertPublicApiUrl),
26
11
  {
27
- content: /* @__PURE__ */ jsx(TasksPopover, {}),
28
- placement: "right",
29
- open,
30
- onOpenChange: setOpen,
31
- middlewares: [
32
- shift({
33
- // Adding some spacing to the top and bottom so the popover
34
- // doesn't extend to the edges of the screen.
35
- padding: {
36
- top: 32,
37
- bottom: 32
38
- }
39
- })
40
- ],
41
- children: (visible) => /* @__PURE__ */ jsxs(
42
- Button,
43
- {
44
- type: "button",
45
- "data-testid": "sidebar-tasks-widget-button",
46
- "aria-label": "Tasks",
47
- className: clsx(styles.navItem, {
48
- [styles.activeNavItem]: visible
49
- }),
50
- children: [
51
- /* @__PURE__ */ jsx(JobIcon, { size: "25px" }),
52
- tasksCount > 0 && /* @__PURE__ */ jsx("div", { className: styles.badge, "aria-label": `${tasksCount} items requiring attention`, children: tasksCount > 9 ? "9+" : tasksCount })
53
- ]
54
- }
55
- )
12
+ queryKey: retrieveProjectQueryKey.projectIdKey(projectId),
13
+ enabled: !!projectId,
14
+ staleTime: 5 * 60 * 1e3
15
+ // 5 minutes
56
16
  }
57
- ) });
58
- });
17
+ );
18
+ }
19
+ function useNavigationContributorQuery(projectId) {
20
+ const navigationClient = useNavigationClient();
21
+ const expertPublicApiUrl = navigationClient.getExpertPublicApiUrl();
22
+ return useRetrieveContributorQuery(
23
+ navigationClient.getPublicApiClient(),
24
+ createPublicApiHeaderBuilder(expertPublicApiUrl),
25
+ {
26
+ queryKey: retrieveContributorKeys.projectUserKey({
27
+ project: { id: projectId },
28
+ contributor: { authenticatedUser: true }
29
+ }),
30
+ enabled: !!projectId,
31
+ staleTime: 5 * 60 * 1e3
32
+ // 5 minutes
33
+ }
34
+ );
35
+ }
36
+ function useNavigationData(projectId) {
37
+ var _a;
38
+ const projectQuery = useNavigationProjectQuery(projectId);
39
+ const contributorQuery = useNavigationContributorQuery(projectId);
40
+ return {
41
+ // Individual queries
42
+ projectQuery,
43
+ contributorQuery,
44
+ // Combined data
45
+ data: {
46
+ project: projectQuery.data,
47
+ contributor: (_a = contributorQuery.data) == null ? void 0 : _a.contributor
48
+ },
49
+ // Combined loading state
50
+ isLoading: projectQuery.isLoading || contributorQuery.isLoading,
51
+ // Combined error state
52
+ error: projectQuery.error || contributorQuery.error,
53
+ // Check if any query is still loading
54
+ isAnyLoading: projectQuery.isLoading || contributorQuery.isLoading,
55
+ // Check if all queries have data
56
+ hasAllData: !!(projectQuery.data && contributorQuery.data),
57
+ // Refetch all queries
58
+ refetchAll: () => {
59
+ projectQuery.refetch();
60
+ contributorQuery.refetch();
61
+ }
62
+ };
63
+ }
59
64
  export {
60
- Tasks
65
+ useNavigationContributorQuery,
66
+ useNavigationData,
67
+ useNavigationProjectQuery
61
68
  };
62
69
  //# sourceMappingURL=harmony85.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony85.mjs","sources":["../src/components/Sidebar/Widgets/Tasks/Tasks.tsx"],"sourcesContent":["import { shift } from '@floating-ui/core'\nimport { Button, JobIcon, Popover, Tooltip } from '@lokalise/louis'\nimport { useEffectOnce } from '@utils'\nimport clsx from 'clsx'\nimport { useState } from 'react'\nimport styles from './Tasks.module.css'\nimport { useTasks } from './TasksContext'\nimport { TasksPopover } from './TasksPopover/TasksPopover'\nimport { withTasksContext } from './TasksProvider'\nimport { TaskEvents } from './utils/taskEvents'\n\nexport const Tasks = withTasksContext(() => {\n\tconst [open, setOpen] = useState(false)\n\n\tconst { tasksCount } = useTasks()\n\n\tuseEffectOnce(() => {\n\t\tconst showDialog = () => {\n\t\t\tsetOpen(true)\n\t\t}\n\n\t\tdocument.addEventListener(TaskEvents.ShowDialog, showDialog)\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(TaskEvents.ShowDialog, showDialog)\n\t\t}\n\t})\n\n\treturn (\n\t\t<Tooltip tooltip=\"Tasks\" placement=\"right\">\n\t\t\t<Popover\n\t\t\t\tcontent={<TasksPopover />}\n\t\t\t\tplacement=\"right\"\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tmiddlewares={[\n\t\t\t\t\tshift({\n\t\t\t\t\t\t// Adding some spacing to the top and bottom so the popover\n\t\t\t\t\t\t// doesn't extend to the edges of the screen.\n\t\t\t\t\t\tpadding: {\n\t\t\t\t\t\t\ttop: 32,\n\t\t\t\t\t\t\tbottom: 32,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t]}\n\t\t\t>\n\t\t\t\t{(visible) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tdata-testid=\"sidebar-tasks-widget-button\"\n\t\t\t\t\t\taria-label=\"Tasks\"\n\t\t\t\t\t\tclassName={clsx(styles.navItem, {\n\t\t\t\t\t\t\t[styles.activeNavItem]: visible,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t<JobIcon size=\"25px\" />\n\t\t\t\t\t\t{tasksCount > 0 && (\n\t\t\t\t\t\t\t<div className={styles.badge} aria-label={`${tasksCount} items requiring attention`}>\n\t\t\t\t\t\t\t\t{tasksCount > 9 ? '9+' : tasksCount}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</Popover>\n\t\t</Tooltip>\n\t)\n})\n"],"names":[],"mappings":";;;;;;;;;;;AAWa,MAAA,QAAQ,iBAAiB,MAAM;AAC3C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAS,KAAK;AAEhC,QAAA,EAAE,WAAW,IAAI,SAAS;AAEhC,gBAAc,MAAM;AACnB,UAAM,aAAa,MAAM;AACxB,cAAQ,IAAI;AAAA,IACb;AAES,aAAA,iBAAiB,WAAW,YAAY,UAAU;AAE3D,WAAO,MAAM;AACH,eAAA,oBAAoB,WAAW,YAAY,UAAU;AAAA,IAC/D;AAAA,EAAA,CACA;AAED,SACE,oBAAA,SAAA,EAAQ,SAAQ,SAAQ,WAAU,SAClC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,6BAAU,cAAa,EAAA;AAAA,MACvB,WAAU;AAAA,MACV;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,QACZ,MAAM;AAAA;AAAA;AAAA,UAGL,SAAS;AAAA,YACR,KAAK;AAAA,YACL,QAAQ;AAAA,UAAA;AAAA,QAET,CAAA;AAAA,MACF;AAAA,MAEC,WAAC,YACD;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL,eAAY;AAAA,UACZ,cAAW;AAAA,UACX,WAAW,KAAK,OAAO,SAAS;AAAA,YAC/B,CAAC,OAAO,aAAa,GAAG;AAAA,UAAA,CACxB;AAAA,UAED,UAAA;AAAA,YAAC,oBAAA,SAAA,EAAQ,MAAK,OAAO,CAAA;AAAA,YACpB,aAAa,KACZ,oBAAA,OAAA,EAAI,WAAW,OAAO,OAAO,cAAY,GAAG,UAAU,8BACrD,UAAa,aAAA,IAAI,OAAO,WAC1B,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEF;AAAA,EAAA,GAGH;AAEF,CAAC;"}
1
+ {"version":3,"file":"harmony85.mjs","sources":["../src/features/navigation/hooks/useNavigationQueries.ts"],"sourcesContent":["import { createPublicApiHeaderBuilder } from '@features/auth/factories/headerBuilderFactories'\nimport {\n\tretrieveContributorKeys,\n\tuseRetrieveContributorQuery,\n} from '@features/publicApi/hooks/useRetrieveContributorQuery'\nimport {\n\tretrieveProjectQueryKey,\n\tuseRetrieveProjectQuery,\n} from '@features/publicApi/hooks/useRetrieveProjectQuery'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n\n/**\n * Hook to fetch project data for navigation\n */\nexport function useNavigationProjectQuery(projectId: string) {\n\tconst navigationClient = useNavigationClient()\n\tconst expertPublicApiUrl = navigationClient.getExpertPublicApiUrl()\n\n\treturn useRetrieveProjectQuery(\n\t\tnavigationClient.getPublicApiClient(),\n\t\tcreatePublicApiHeaderBuilder(expertPublicApiUrl),\n\t\t{\n\t\t\tqueryKey: retrieveProjectQueryKey.projectIdKey(projectId),\n\t\t\tenabled: !!projectId,\n\t\t\tstaleTime: 5 * 60 * 1000, // 5 minutes\n\t\t},\n\t)\n}\n\n/**\n * Hook to fetch contributor data for navigation\n */\nexport function useNavigationContributorQuery(projectId: string) {\n\tconst navigationClient = useNavigationClient()\n\tconst expertPublicApiUrl = navigationClient.getExpertPublicApiUrl()\n\n\treturn useRetrieveContributorQuery(\n\t\tnavigationClient.getPublicApiClient(),\n\t\tcreatePublicApiHeaderBuilder(expertPublicApiUrl),\n\t\t{\n\t\t\tqueryKey: retrieveContributorKeys.projectUserKey({\n\t\t\t\tproject: { id: projectId },\n\t\t\t\tcontributor: { authenticatedUser: true },\n\t\t\t}),\n\t\t\tenabled: !!projectId,\n\t\t\tstaleTime: 5 * 60 * 1000, // 5 minutes\n\t\t},\n\t)\n}\n\n/**\n * Composite hook that fetches all navigation data\n */\nexport function useNavigationData(projectId: string) {\n\tconst projectQuery = useNavigationProjectQuery(projectId)\n\tconst contributorQuery = useNavigationContributorQuery(projectId)\n\n\treturn {\n\t\t// Individual queries\n\t\tprojectQuery,\n\t\tcontributorQuery,\n\n\t\t// Combined data\n\t\tdata: {\n\t\t\tproject: projectQuery.data,\n\t\t\tcontributor: contributorQuery.data?.contributor,\n\t\t},\n\n\t\t// Combined loading state\n\t\tisLoading: projectQuery.isLoading || contributorQuery.isLoading,\n\n\t\t// Combined error state\n\t\terror: projectQuery.error || contributorQuery.error,\n\n\t\t// Check if any query is still loading\n\t\tisAnyLoading: projectQuery.isLoading || contributorQuery.isLoading,\n\n\t\t// Check if all queries have data\n\t\thasAllData: !!(projectQuery.data && contributorQuery.data),\n\n\t\t// Refetch all queries\n\t\trefetchAll: () => {\n\t\t\tprojectQuery.refetch()\n\t\t\tcontributorQuery.refetch()\n\t\t},\n\t}\n}\n"],"names":[],"mappings":";;;;AAcO,SAAS,0BAA0B,WAAmB;AAC5D,QAAM,mBAAmB,oBAAoB;AACvC,QAAA,qBAAqB,iBAAiB,sBAAsB;AAE3D,SAAA;AAAA,IACN,iBAAiB,mBAAmB;AAAA,IACpC,6BAA6B,kBAAkB;AAAA,IAC/C;AAAA,MACC,UAAU,wBAAwB,aAAa,SAAS;AAAA,MACxD,SAAS,CAAC,CAAC;AAAA,MACX,WAAW,IAAI,KAAK;AAAA;AAAA,IAAA;AAAA,EAEtB;AACD;AAKO,SAAS,8BAA8B,WAAmB;AAChE,QAAM,mBAAmB,oBAAoB;AACvC,QAAA,qBAAqB,iBAAiB,sBAAsB;AAE3D,SAAA;AAAA,IACN,iBAAiB,mBAAmB;AAAA,IACpC,6BAA6B,kBAAkB;AAAA,IAC/C;AAAA,MACC,UAAU,wBAAwB,eAAe;AAAA,QAChD,SAAS,EAAE,IAAI,UAAU;AAAA,QACzB,aAAa,EAAE,mBAAmB,KAAK;AAAA,MAAA,CACvC;AAAA,MACD,SAAS,CAAC,CAAC;AAAA,MACX,WAAW,IAAI,KAAK;AAAA;AAAA,IAAA;AAAA,EAEtB;AACD;AAKO,SAAS,kBAAkB,WAAmB;;AAC9C,QAAA,eAAe,0BAA0B,SAAS;AAClD,QAAA,mBAAmB,8BAA8B,SAAS;AAEzD,SAAA;AAAA;AAAA,IAEN;AAAA,IACA;AAAA;AAAA,IAGA,MAAM;AAAA,MACL,SAAS,aAAa;AAAA,MACtB,cAAa,sBAAiB,SAAjB,mBAAuB;AAAA,IACrC;AAAA;AAAA,IAGA,WAAW,aAAa,aAAa,iBAAiB;AAAA;AAAA,IAGtD,OAAO,aAAa,SAAS,iBAAiB;AAAA;AAAA,IAG9C,cAAc,aAAa,aAAa,iBAAiB;AAAA;AAAA,IAGzD,YAAY,CAAC,EAAE,aAAa,QAAQ,iBAAiB;AAAA;AAAA,IAGrD,YAAY,MAAM;AACjB,mBAAa,QAAQ;AACrB,uBAAiB,QAAQ;AAAA,IAAA;AAAA,EAE3B;AACD;"}
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
4
- const breadcrumbs = "_breadcrumbs_1hm6a_1";
5
- const classes = {
6
- breadcrumbsItem,
7
- breadcrumbs
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const React = require("react");
5
+ const NavigationClientContext = React.createContext(void 0);
6
+ const NavigationClientProvider = ({ client, children }) => {
7
+ return /* @__PURE__ */ jsxRuntime.jsx(NavigationClientContext.Provider, { value: client, children });
8
8
  };
9
- exports.breadcrumbs = breadcrumbs;
10
- exports.breadcrumbsItem = breadcrumbsItem;
11
- exports.default = classes;
9
+ const useNavigationClient = () => {
10
+ const context = React.useContext(NavigationClientContext);
11
+ if (context === void 0) {
12
+ throw new Error("useNavigationClient must be used within a NavigationClientProvider");
13
+ }
14
+ return context;
15
+ };
16
+ exports.NavigationClientProvider = NavigationClientProvider;
17
+ exports.useNavigationClient = useNavigationClient;
12
18
  //# sourceMappingURL=harmony86.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony86.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony86.cjs","sources":["../src/features/navigation/providers/NavigationClientProvider.tsx"],"sourcesContent":["import { type ReactNode, createContext, useContext } from 'react'\nimport type { NavigationClient } from '../core/NavigationClient'\n\ninterface NavigationClientProviderProps {\n\tclient: NavigationClient\n\tchildren: ReactNode\n}\n\nconst NavigationClientContext = createContext<NavigationClient | undefined>(undefined)\n\nexport const NavigationClientProvider = ({ client, children }: NavigationClientProviderProps) => {\n\treturn (\n\t\t<NavigationClientContext.Provider value={client}>{children}</NavigationClientContext.Provider>\n\t)\n}\n\nexport const useNavigationClient = (): NavigationClient => {\n\tconst context = useContext(NavigationClientContext)\n\tif (context === undefined) {\n\t\tthrow new Error('useNavigationClient must be used within a NavigationClientProvider')\n\t}\n\treturn context\n}\n"],"names":["createContext","useContext"],"mappings":";;;;AAQA,MAAM,0BAA0BA,oBAA4C,MAAS;AAE9E,MAAM,2BAA2B,CAAC,EAAE,QAAQ,eAA8C;AAChG,wCACE,wBAAwB,UAAxB,EAAiC,OAAO,QAAS,UAAS;AAE7D;AAEO,MAAM,sBAAsB,MAAwB;AACpD,QAAA,UAAUC,iBAAW,uBAAuB;AAClD,MAAI,YAAY,QAAW;AACpB,UAAA,IAAI,MAAM,oEAAoE;AAAA,EAAA;AAE9E,SAAA;AACR;;;"}
@@ -1,12 +1,18 @@
1
- const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
2
- const breadcrumbs = "_breadcrumbs_1hm6a_1";
3
- const classes = {
4
- breadcrumbsItem,
5
- breadcrumbs
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { createContext, useContext } from "react";
3
+ const NavigationClientContext = createContext(void 0);
4
+ const NavigationClientProvider = ({ client, children }) => {
5
+ return /* @__PURE__ */ jsx(NavigationClientContext.Provider, { value: client, children });
6
+ };
7
+ const useNavigationClient = () => {
8
+ const context = useContext(NavigationClientContext);
9
+ if (context === void 0) {
10
+ throw new Error("useNavigationClient must be used within a NavigationClientProvider");
11
+ }
12
+ return context;
6
13
  };
7
14
  export {
8
- breadcrumbs,
9
- breadcrumbsItem,
10
- classes as default
15
+ NavigationClientProvider,
16
+ useNavigationClient
11
17
  };
12
18
  //# sourceMappingURL=harmony86.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony86.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"harmony86.mjs","sources":["../src/features/navigation/providers/NavigationClientProvider.tsx"],"sourcesContent":["import { type ReactNode, createContext, useContext } from 'react'\nimport type { NavigationClient } from '../core/NavigationClient'\n\ninterface NavigationClientProviderProps {\n\tclient: NavigationClient\n\tchildren: ReactNode\n}\n\nconst NavigationClientContext = createContext<NavigationClient | undefined>(undefined)\n\nexport const NavigationClientProvider = ({ client, children }: NavigationClientProviderProps) => {\n\treturn (\n\t\t<NavigationClientContext.Provider value={client}>{children}</NavigationClientContext.Provider>\n\t)\n}\n\nexport const useNavigationClient = (): NavigationClient => {\n\tconst context = useContext(NavigationClientContext)\n\tif (context === undefined) {\n\t\tthrow new Error('useNavigationClient must be used within a NavigationClientProvider')\n\t}\n\treturn context\n}\n"],"names":[],"mappings":";;AAQA,MAAM,0BAA0B,cAA4C,MAAS;AAE9E,MAAM,2BAA2B,CAAC,EAAE,QAAQ,eAA8C;AAChG,6BACE,wBAAwB,UAAxB,EAAiC,OAAO,QAAS,UAAS;AAE7D;AAEO,MAAM,sBAAsB,MAAwB;AACpD,QAAA,UAAU,WAAW,uBAAuB;AAClD,MAAI,YAAY,QAAW;AACpB,UAAA,IAAI,MAAM,oEAAoE;AAAA,EAAA;AAE9E,SAAA;AACR;"}
@@ -1,11 +1,6 @@
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 React = require("react");
6
- const DropdownContent = ({ items }) => /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
7
- !!index && item.some((value) => value.visible) && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
8
- item.filter(({ visible }) => visible).map(({ link, label, onClick }) => /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: link || "#", "aria-label": label, onClick, children: label }, label))
9
- ] }, item[0].label)) });
10
- exports.DropdownContent = DropdownContent;
3
+ const reactQuery = require("@tanstack/react-query");
4
+ const queryClient = new reactQuery.QueryClient({});
5
+ exports.queryClient = queryClient;
11
6
  //# sourceMappingURL=harmony87.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony87.cjs","sources":["../src/components/NavigationPanel/components/DropdownContent/DropdownContent.tsx"],"sourcesContent":["import type { DropdownItem } from '@features/navigation/types/navigation'\nimport { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { Fragment } from 'react'\n\nexport const DropdownContent = ({ items }: { items: DropdownItem[][] }) => (\n\t<>\n\t\t{items.map((item, index) => (\n\t\t\t<Fragment key={item[0].label}>\n\t\t\t\t{!!index && item.some((value) => value.visible) && <MenuDivider />}\n\t\t\t\t{item\n\t\t\t\t\t.filter(({ visible }) => visible)\n\t\t\t\t\t.map(({ link, label, onClick }) => (\n\t\t\t\t\t\t<MenuItem key={label} href={link || '#'} aria-label={label} onClick={onClick}>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t</Fragment>\n\t\t))}\n\t</>\n)\n"],"names":["jsx","Fragment","jsxs","MenuDivider","MenuItem"],"mappings":";;;;;AAIO,MAAM,kBAAkB,CAAC,EAAE,MAAA,MACjCA,2BAAAA,IAAAC,WAAAA,UAAA,EACE,UAAM,MAAA,IAAI,CAAC,MAAM,UACjBC,2BAAAA,KAACD,MAAAA,UAAA,EACC,UAAA;AAAA,EAAC,CAAA,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,MAAM,OAAO,KAAKD,+BAACG,MAAAA,aAAY,CAAA,CAAA;AAAA,EAC/D,KACC,OAAO,CAAC,EAAE,cAAc,OAAO,EAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,MAC3BH,+BAAAI,MAAAA,UAAA,EAAqB,MAAM,QAAQ,KAAK,cAAY,OAAO,SAC1D,UADa,MAAA,GAAA,KAEf,CACA;AAAA,EAAA,GARY,KAAK,CAAC,EAAE,KASvB,CACA,EACF,CAAA;;"}
1
+ {"version":3,"file":"harmony87.cjs","sources":["../src/shared/queryClient.ts"],"sourcesContent":["import { QueryClient } from '@tanstack/react-query'\n\nexport const queryClient = new QueryClient({})\n"],"names":["QueryClient"],"mappings":";;;AAEO,MAAM,cAAc,IAAIA,WAAAA,YAAY,CAAE,CAAA;;"}
@@ -1,11 +1,6 @@
1
- import { jsx, Fragment, jsxs } from "react/jsx-runtime";
2
- import { MenuDivider, MenuItem } from "@lokalise/louis";
3
- import { Fragment as Fragment$1 } from "react";
4
- const DropdownContent = ({ items }) => /* @__PURE__ */ jsx(Fragment, { children: items.map((item, index) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
5
- !!index && item.some((value) => value.visible) && /* @__PURE__ */ jsx(MenuDivider, {}),
6
- item.filter(({ visible }) => visible).map(({ link, label, onClick }) => /* @__PURE__ */ jsx(MenuItem, { href: link || "#", "aria-label": label, onClick, children: label }, label))
7
- ] }, item[0].label)) });
1
+ import { QueryClient } from "@tanstack/react-query";
2
+ const queryClient = new QueryClient({});
8
3
  export {
9
- DropdownContent
4
+ queryClient
10
5
  };
11
6
  //# sourceMappingURL=harmony87.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony87.mjs","sources":["../src/components/NavigationPanel/components/DropdownContent/DropdownContent.tsx"],"sourcesContent":["import type { DropdownItem } from '@features/navigation/types/navigation'\nimport { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { Fragment } from 'react'\n\nexport const DropdownContent = ({ items }: { items: DropdownItem[][] }) => (\n\t<>\n\t\t{items.map((item, index) => (\n\t\t\t<Fragment key={item[0].label}>\n\t\t\t\t{!!index && item.some((value) => value.visible) && <MenuDivider />}\n\t\t\t\t{item\n\t\t\t\t\t.filter(({ visible }) => visible)\n\t\t\t\t\t.map(({ link, label, onClick }) => (\n\t\t\t\t\t\t<MenuItem key={label} href={link || '#'} aria-label={label} onClick={onClick}>\n\t\t\t\t\t\t\t{label}\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t))}\n\t\t\t</Fragment>\n\t\t))}\n\t</>\n)\n"],"names":["Fragment"],"mappings":";;;AAIO,MAAM,kBAAkB,CAAC,EAAE,MAAA,MACjC,oBAAA,UAAA,EACE,UAAM,MAAA,IAAI,CAAC,MAAM,UACjB,qBAACA,YAAA,EACC,UAAA;AAAA,EAAC,CAAA,CAAC,SAAS,KAAK,KAAK,CAAC,UAAU,MAAM,OAAO,KAAK,oBAAC,aAAY,CAAA,CAAA;AAAA,EAC/D,KACC,OAAO,CAAC,EAAE,cAAc,OAAO,EAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,QAAQ,MAC3B,oBAAA,UAAA,EAAqB,MAAM,QAAQ,KAAK,cAAY,OAAO,SAC1D,UADa,MAAA,GAAA,KAEf,CACA;AAAA,EAAA,GARY,KAAK,CAAC,EAAE,KASvB,CACA,EACF,CAAA;"}
1
+ {"version":3,"file":"harmony87.mjs","sources":["../src/shared/queryClient.ts"],"sourcesContent":["import { QueryClient } from '@tanstack/react-query'\n\nexport const queryClient = new QueryClient({})\n"],"names":[],"mappings":";AAEO,MAAM,cAAc,IAAI,YAAY,CAAE,CAAA;"}