@lokalise/harmony 1.36.1 → 1.37.1-exp-epic2x.1

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 (365) hide show
  1. package/dist/harmony.cjs +1 -3
  2. package/dist/harmony.cjs.map +1 -1
  3. package/dist/harmony.css +110 -317
  4. package/dist/harmony.mjs +2 -4
  5. package/dist/harmony100.cjs +10 -12
  6. package/dist/harmony100.cjs.map +1 -1
  7. package/dist/harmony100.mjs +9 -11
  8. package/dist/harmony100.mjs.map +1 -1
  9. package/dist/harmony101.cjs +27 -9
  10. package/dist/harmony101.cjs.map +1 -1
  11. package/dist/harmony101.mjs +29 -11
  12. package/dist/harmony101.mjs.map +1 -1
  13. package/dist/harmony102.cjs +14 -21
  14. package/dist/harmony102.cjs.map +1 -1
  15. package/dist/harmony102.mjs +13 -20
  16. package/dist/harmony102.mjs.map +1 -1
  17. package/dist/harmony103.cjs +35 -12
  18. package/dist/harmony103.cjs.map +1 -1
  19. package/dist/harmony103.mjs +35 -12
  20. package/dist/harmony103.mjs.map +1 -1
  21. package/dist/harmony104.cjs +14 -18
  22. package/dist/harmony104.cjs.map +1 -1
  23. package/dist/harmony104.mjs +14 -18
  24. package/dist/harmony104.mjs.map +1 -1
  25. package/dist/harmony105.cjs +22 -21
  26. package/dist/harmony105.cjs.map +1 -1
  27. package/dist/harmony105.mjs +21 -20
  28. package/dist/harmony105.mjs.map +1 -1
  29. package/dist/harmony106.cjs +34 -5
  30. package/dist/harmony106.cjs.map +1 -1
  31. package/dist/harmony106.mjs +34 -5
  32. package/dist/harmony106.mjs.map +1 -1
  33. package/dist/harmony107.cjs +21 -132
  34. package/dist/harmony107.cjs.map +1 -1
  35. package/dist/harmony107.mjs +20 -131
  36. package/dist/harmony107.mjs.map +1 -1
  37. package/dist/harmony108.cjs +21 -12
  38. package/dist/harmony108.cjs.map +1 -1
  39. package/dist/harmony108.mjs +20 -11
  40. package/dist/harmony108.mjs.map +1 -1
  41. package/dist/harmony109.cjs +7 -6
  42. package/dist/harmony109.cjs.map +1 -1
  43. package/dist/harmony109.mjs +6 -5
  44. package/dist/harmony109.mjs.map +1 -1
  45. package/dist/harmony110.cjs +15 -40
  46. package/dist/harmony110.cjs.map +1 -1
  47. package/dist/harmony110.mjs +14 -39
  48. package/dist/harmony110.mjs.map +1 -1
  49. package/dist/harmony111.cjs +6 -61
  50. package/dist/harmony111.cjs.map +1 -1
  51. package/dist/harmony111.mjs +5 -60
  52. package/dist/harmony111.mjs.map +1 -1
  53. package/dist/harmony112.cjs +6 -8
  54. package/dist/harmony112.cjs.map +1 -1
  55. package/dist/harmony112.mjs +5 -7
  56. package/dist/harmony112.mjs.map +1 -1
  57. package/dist/harmony113.cjs +6 -3
  58. package/dist/harmony113.cjs.map +1 -1
  59. package/dist/harmony113.mjs +6 -3
  60. package/dist/harmony113.mjs.map +1 -1
  61. package/dist/harmony114.cjs +6 -99
  62. package/dist/harmony114.cjs.map +1 -1
  63. package/dist/harmony114.mjs +5 -81
  64. package/dist/harmony114.mjs.map +1 -1
  65. package/dist/harmony115.cjs +10 -63
  66. package/dist/harmony115.cjs.map +1 -1
  67. package/dist/harmony115.mjs +9 -62
  68. package/dist/harmony115.mjs.map +1 -1
  69. package/dist/harmony116.cjs +24 -88
  70. package/dist/harmony116.cjs.map +1 -1
  71. package/dist/harmony116.mjs +23 -87
  72. package/dist/harmony116.mjs.map +1 -1
  73. package/dist/harmony117.cjs +3 -15
  74. package/dist/harmony117.cjs.map +1 -1
  75. package/dist/harmony117.mjs +3 -15
  76. package/dist/harmony117.mjs.map +1 -1
  77. package/dist/harmony118.cjs +12 -5
  78. package/dist/harmony118.cjs.map +1 -1
  79. package/dist/harmony118.mjs +12 -5
  80. package/dist/harmony118.mjs.map +1 -1
  81. package/dist/harmony119.cjs +6 -5
  82. package/dist/harmony119.cjs.map +1 -1
  83. package/dist/harmony119.mjs +6 -5
  84. package/dist/harmony122.cjs +1 -1
  85. package/dist/harmony122.mjs +1 -1
  86. package/dist/harmony123.cjs +2 -2
  87. package/dist/harmony123.mjs +2 -2
  88. package/dist/harmony125.cjs +13 -7
  89. package/dist/harmony125.cjs.map +1 -1
  90. package/dist/harmony125.mjs +13 -7
  91. package/dist/harmony125.mjs.map +1 -1
  92. package/dist/harmony126.cjs +15 -57
  93. package/dist/harmony126.cjs.map +1 -1
  94. package/dist/harmony126.mjs +15 -57
  95. package/dist/harmony126.mjs.map +1 -1
  96. package/dist/harmony127.cjs +15 -59
  97. package/dist/harmony127.cjs.map +1 -1
  98. package/dist/harmony127.mjs +15 -59
  99. package/dist/harmony127.mjs.map +1 -1
  100. package/dist/harmony128.cjs +12 -19
  101. package/dist/harmony128.cjs.map +1 -1
  102. package/dist/harmony128.mjs +11 -18
  103. package/dist/harmony128.mjs.map +1 -1
  104. package/dist/harmony129.cjs +15 -12
  105. package/dist/harmony129.cjs.map +1 -1
  106. package/dist/harmony129.mjs +15 -12
  107. package/dist/harmony129.mjs.map +1 -1
  108. package/dist/harmony13.cjs +1 -1
  109. package/dist/harmony13.mjs +1 -1
  110. package/dist/harmony130.cjs +19 -13
  111. package/dist/harmony130.cjs.map +1 -1
  112. package/dist/harmony130.mjs +19 -13
  113. package/dist/harmony130.mjs.map +1 -1
  114. package/dist/harmony131.cjs +10 -14
  115. package/dist/harmony131.cjs.map +1 -1
  116. package/dist/harmony131.mjs +10 -14
  117. package/dist/harmony131.mjs.map +1 -1
  118. package/dist/harmony132.cjs +5 -10
  119. package/dist/harmony132.cjs.map +1 -1
  120. package/dist/harmony132.mjs +5 -10
  121. package/dist/harmony132.mjs.map +1 -1
  122. package/dist/harmony133.cjs +11 -15
  123. package/dist/harmony133.cjs.map +1 -1
  124. package/dist/harmony133.mjs +11 -15
  125. package/dist/harmony133.mjs.map +1 -1
  126. package/dist/harmony134.cjs +28 -17
  127. package/dist/harmony134.cjs.map +1 -1
  128. package/dist/harmony134.mjs +28 -17
  129. package/dist/harmony134.mjs.map +1 -1
  130. package/dist/harmony135.cjs +12 -10
  131. package/dist/harmony135.cjs.map +1 -1
  132. package/dist/harmony135.mjs +12 -10
  133. package/dist/harmony135.mjs.map +1 -1
  134. package/dist/harmony16.cjs +1 -1
  135. package/dist/harmony16.mjs +1 -1
  136. package/dist/harmony23.cjs +1 -1
  137. package/dist/harmony23.mjs +1 -1
  138. package/dist/harmony24.cjs +1 -1
  139. package/dist/harmony24.mjs +1 -1
  140. package/dist/harmony31.cjs +4 -4
  141. package/dist/harmony31.cjs.map +1 -1
  142. package/dist/harmony31.mjs +5 -5
  143. package/dist/harmony31.mjs.map +1 -1
  144. package/dist/harmony38.cjs.map +1 -1
  145. package/dist/harmony38.mjs.map +1 -1
  146. package/dist/harmony4.cjs +15 -24
  147. package/dist/harmony4.cjs.map +1 -1
  148. package/dist/harmony4.mjs +15 -24
  149. package/dist/harmony4.mjs.map +1 -1
  150. package/dist/harmony40.cjs.map +1 -1
  151. package/dist/harmony40.mjs.map +1 -1
  152. package/dist/harmony44.cjs.map +1 -1
  153. package/dist/harmony44.mjs.map +1 -1
  154. package/dist/harmony5.cjs +1 -1
  155. package/dist/harmony5.mjs +1 -1
  156. package/dist/harmony6.cjs +3 -3
  157. package/dist/harmony6.mjs +3 -3
  158. package/dist/harmony64.cjs +4 -15
  159. package/dist/harmony64.cjs.map +1 -1
  160. package/dist/harmony64.mjs +4 -15
  161. package/dist/harmony64.mjs.map +1 -1
  162. package/dist/harmony7.cjs +1 -1
  163. package/dist/harmony7.mjs +1 -1
  164. package/dist/harmony72.cjs +1 -1
  165. package/dist/harmony72.mjs +1 -1
  166. package/dist/harmony73.cjs +51 -6
  167. package/dist/harmony73.cjs.map +1 -1
  168. package/dist/harmony73.mjs +50 -5
  169. package/dist/harmony73.mjs.map +1 -1
  170. package/dist/harmony74.cjs +38 -8
  171. package/dist/harmony74.cjs.map +1 -1
  172. package/dist/harmony74.mjs +38 -8
  173. package/dist/harmony74.mjs.map +1 -1
  174. package/dist/harmony75.cjs +9 -18
  175. package/dist/harmony75.cjs.map +1 -1
  176. package/dist/harmony75.mjs +8 -17
  177. package/dist/harmony75.mjs.map +1 -1
  178. package/dist/harmony76.cjs +6 -21
  179. package/dist/harmony76.cjs.map +1 -1
  180. package/dist/harmony76.mjs +8 -23
  181. package/dist/harmony76.mjs.map +1 -1
  182. package/dist/harmony77.cjs +28 -4
  183. package/dist/harmony77.cjs.map +1 -1
  184. package/dist/harmony77.mjs +28 -4
  185. package/dist/harmony77.mjs.map +1 -1
  186. package/dist/harmony78.cjs +3 -32
  187. package/dist/harmony78.cjs.map +1 -1
  188. package/dist/harmony78.mjs +3 -32
  189. package/dist/harmony78.mjs.map +1 -1
  190. package/dist/harmony79.cjs +30 -29
  191. package/dist/harmony79.cjs.map +1 -1
  192. package/dist/harmony79.mjs +31 -30
  193. package/dist/harmony79.mjs.map +1 -1
  194. package/dist/harmony80.cjs +25 -17
  195. package/dist/harmony80.cjs.map +1 -1
  196. package/dist/harmony80.mjs +25 -17
  197. package/dist/harmony80.mjs.map +1 -1
  198. package/dist/harmony81.cjs +3 -31
  199. package/dist/harmony81.cjs.map +1 -1
  200. package/dist/harmony81.mjs +3 -31
  201. package/dist/harmony81.mjs.map +1 -1
  202. package/dist/harmony82.cjs +12 -53
  203. package/dist/harmony82.cjs.map +1 -1
  204. package/dist/harmony82.mjs +14 -55
  205. package/dist/harmony82.mjs.map +1 -1
  206. package/dist/harmony83.cjs +75 -9
  207. package/dist/harmony83.cjs.map +1 -1
  208. package/dist/harmony83.mjs +74 -8
  209. package/dist/harmony83.mjs.map +1 -1
  210. package/dist/harmony84.cjs +11 -7
  211. package/dist/harmony84.cjs.map +1 -1
  212. package/dist/harmony84.mjs +12 -8
  213. package/dist/harmony84.mjs.map +1 -1
  214. package/dist/harmony85.cjs +29 -28
  215. package/dist/harmony85.cjs.map +1 -1
  216. package/dist/harmony85.mjs +29 -28
  217. package/dist/harmony85.mjs.map +1 -1
  218. package/dist/harmony86.cjs +9 -3
  219. package/dist/harmony86.cjs.map +1 -1
  220. package/dist/harmony86.mjs +9 -3
  221. package/dist/harmony86.mjs.map +1 -1
  222. package/dist/harmony87.cjs +42 -28
  223. package/dist/harmony87.cjs.map +1 -1
  224. package/dist/harmony87.mjs +44 -30
  225. package/dist/harmony87.mjs.map +1 -1
  226. package/dist/harmony88.cjs +6 -3
  227. package/dist/harmony88.cjs.map +1 -1
  228. package/dist/harmony88.mjs +6 -3
  229. package/dist/harmony88.mjs.map +1 -1
  230. package/dist/harmony89.cjs +12 -10
  231. package/dist/harmony89.cjs.map +1 -1
  232. package/dist/harmony89.mjs +11 -9
  233. package/dist/harmony89.mjs.map +1 -1
  234. package/dist/harmony90.cjs +20 -8
  235. package/dist/harmony90.cjs.map +1 -1
  236. package/dist/harmony90.mjs +20 -8
  237. package/dist/harmony90.mjs.map +1 -1
  238. package/dist/harmony91.cjs +9 -54
  239. package/dist/harmony91.cjs.map +1 -1
  240. package/dist/harmony91.mjs +11 -56
  241. package/dist/harmony91.mjs.map +1 -1
  242. package/dist/harmony92.cjs +12 -42
  243. package/dist/harmony92.cjs.map +1 -1
  244. package/dist/harmony92.mjs +11 -41
  245. package/dist/harmony92.mjs.map +1 -1
  246. package/dist/harmony93.cjs +98 -4
  247. package/dist/harmony93.cjs.map +1 -1
  248. package/dist/harmony93.mjs +82 -5
  249. package/dist/harmony93.mjs.map +1 -1
  250. package/dist/harmony94.cjs +14 -9
  251. package/dist/harmony94.cjs.map +1 -1
  252. package/dist/harmony94.mjs +13 -8
  253. package/dist/harmony94.mjs.map +1 -1
  254. package/dist/harmony95.cjs +21 -25
  255. package/dist/harmony95.cjs.map +1 -1
  256. package/dist/harmony95.mjs +20 -24
  257. package/dist/harmony95.mjs.map +1 -1
  258. package/dist/harmony96.cjs +6 -3
  259. package/dist/harmony96.cjs.map +1 -1
  260. package/dist/harmony96.mjs +6 -3
  261. package/dist/harmony96.mjs.map +1 -1
  262. package/dist/harmony97.cjs +11 -18
  263. package/dist/harmony97.cjs.map +1 -1
  264. package/dist/harmony97.mjs +12 -19
  265. package/dist/harmony97.mjs.map +1 -1
  266. package/dist/harmony98.cjs +17 -12
  267. package/dist/harmony98.cjs.map +1 -1
  268. package/dist/harmony98.mjs +16 -11
  269. package/dist/harmony98.mjs.map +1 -1
  270. package/dist/harmony99.cjs +17 -8
  271. package/dist/harmony99.cjs.map +1 -1
  272. package/dist/harmony99.mjs +19 -10
  273. package/dist/harmony99.mjs.map +1 -1
  274. package/dist/types/src/components/Sidebar/Sidebar.d.ts +15 -49
  275. package/dist/types/src/components/Sidebar/SidebarContent/SidebarContent.d.ts +7 -0
  276. package/dist/types/src/components/Sidebar/SidebarContext.d.ts +3 -0
  277. package/dist/types/src/components/Sidebar/SidebarProvider.d.ts +3 -0
  278. package/dist/types/src/components/Sidebar/Widgets/Avatar/Avatar.d.ts +5 -0
  279. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.d.ts +13 -0
  280. package/dist/types/src/components/Sidebar/Widgets/HelpMenu/HelpMenu.test.d.ts +1 -0
  281. package/dist/types/src/components/Sidebar/Widgets/IconLink/IconLink.test.d.ts +1 -0
  282. package/dist/types/src/components/Sidebar/Widgets/Menu/Menu.d.ts +3 -2
  283. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem.d.ts +13 -0
  284. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.d.ts +17 -0
  285. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam.test.d.ts +1 -0
  286. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.d.ts +17 -0
  287. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder.test.d.ts +1 -0
  288. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle.d.ts +18 -0
  289. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.d.ts +11 -24
  290. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.stories.d.ts +3 -5
  291. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.d.ts +10 -35
  292. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.test.d.ts +1 -0
  293. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.d.ts +13 -0
  294. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.test.d.ts +1 -0
  295. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.d.ts +1 -3
  296. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.test.d.ts +1 -0
  297. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.d.ts +13 -0
  298. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.test.d.ts +1 -0
  299. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.d.ts +5 -7
  300. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.test.d.ts +1 -0
  301. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.d.ts +6 -9
  302. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.test.d.ts +1 -0
  303. package/dist/types/src/components/Sidebar/Widgets/Tasks/utils/content.d.ts +4 -0
  304. package/dist/types/src/components/Sidebar/hooks/useSidebar.d.ts +1 -0
  305. package/dist/types/src/components/Sidebar/hooks/useSidebarDataLoader.d.ts +5 -0
  306. package/dist/types/src/components/Sidebar/types.d.ts +72 -0
  307. package/dist/types/src/features/auth/core/types/jwtTokenPayload.d.ts +16 -10
  308. package/dist/types/src/features/auth/core/types/jwtTokenPayload.fixture.d.ts +15 -11
  309. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedSessionPayload.d.ts +7 -5
  310. package/dist/types/src/features/auth/frontend/hooks/useAuthenticatedUser.d.ts +1 -1
  311. package/dist/types/src/features/publicApi/hooks/useCreateProjectMutation.d.ts +1 -1
  312. package/dist/types/src/features/publicApi/hooks/useCreateScoreMutation.d.ts +2 -2
  313. package/dist/types/src/features/publicApi/hooks/useDeleteScoreMutation.d.ts +2 -2
  314. package/dist/types/src/features/publicApi/hooks/useGetProjectPermissionMetaQuery.d.ts +2 -2
  315. package/dist/types/src/features/publicApi/hooks/useGetScoreQuery.d.ts +4 -3
  316. package/dist/types/src/features/publicApi/hooks/useGetTeamUsersQuery.d.ts +1 -1
  317. package/dist/types/src/features/publicApi/hooks/useListPermissionTemplates.d.ts +1 -1
  318. package/dist/types/src/features/publicApi/hooks/useListProjectsQuery.d.ts +1 -1
  319. package/dist/types/src/features/publicApi/hooks/useListTeamUsersQuery.d.ts +1 -1
  320. package/dist/types/src/features/publicApi/hooks/useRetrieveProjectQuery.d.ts +1 -1
  321. package/dist/types/src/features/publicApi/hooks/useUpdateProjectMutation.d.ts +1 -1
  322. package/dist/types/src/features/publicApi/permissionTemplates.d.ts +4 -4
  323. package/dist/types/src/features/publicApi/projects.d.ts +18 -18
  324. package/dist/types/src/features/publicApi/score.d.ts +8 -4
  325. package/dist/types/src/features/publicApi/teamUsers.d.ts +8 -8
  326. package/dist/types/src/features/publicApi/types/permissionTemplateTypes.d.ts +6 -6
  327. package/dist/types/src/features/publicApi/types/permissionTypes.d.ts +2 -2
  328. package/dist/types/src/features/publicApi/types/projectTypes.d.ts +18 -18
  329. package/dist/types/src/features/publicApi/types/scoreTypes.d.ts +8 -33
  330. package/dist/types/src/features/publicApi/types/teamUserTypes.d.ts +10 -10
  331. package/dist/types/src/utils/user/permissions.d.ts +9 -0
  332. package/dist/types/src/utils/user/permissions.test.d.ts +1 -0
  333. package/dist/types/tests/mocks/sidebar/sidebar.d.ts +19 -0
  334. package/dist/types/tests/utils/sidebar.d.ts +4 -0
  335. package/package.json +1 -1
  336. package/dist/harmony136.cjs +0 -9
  337. package/dist/harmony136.cjs.map +0 -1
  338. package/dist/harmony136.mjs +0 -9
  339. package/dist/harmony136.mjs.map +0 -1
  340. package/dist/harmony137.cjs +0 -15
  341. package/dist/harmony137.cjs.map +0 -1
  342. package/dist/harmony137.mjs +0 -15
  343. package/dist/harmony137.mjs.map +0 -1
  344. package/dist/harmony138.cjs +0 -35
  345. package/dist/harmony138.cjs.map +0 -1
  346. package/dist/harmony138.mjs +0 -35
  347. package/dist/harmony138.mjs.map +0 -1
  348. package/dist/harmony139.cjs +0 -17
  349. package/dist/harmony139.cjs.map +0 -1
  350. package/dist/harmony139.mjs +0 -17
  351. package/dist/harmony139.mjs.map +0 -1
  352. package/dist/harmony140.cjs +0 -49
  353. package/dist/harmony140.cjs.map +0 -1
  354. package/dist/harmony140.mjs +0 -49
  355. package/dist/harmony140.mjs.map +0 -1
  356. package/dist/harmony141.cjs +0 -15
  357. package/dist/harmony141.cjs.map +0 -1
  358. package/dist/harmony141.mjs +0 -15
  359. package/dist/harmony141.mjs.map +0 -1
  360. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContent.d.ts +0 -6
  361. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuContext.d.ts +0 -3
  362. package/dist/types/src/components/Sidebar/Widgets/ProfileMenu/ProfileMenuProvider.d.ts +0 -7
  363. package/dist/types/src/components/Sidebar/utils/index.d.ts +0 -4
  364. /package/dist/types/src/components/Sidebar/Widgets/{ProfileMenu/ProfileMenu.test.d.ts → Avatar/Avatar.test.d.ts} +0 -0
  365. /package/dist/types/src/components/Sidebar/{UpgradeIcon → Widgets/ProfileMenu/UpgradeIcon}/UpgradeIcon.d.ts +0 -0
@@ -1,62 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const floatingUi_core = require("./harmony107.cjs");
5
4
  const louis = require("@lokalise/louis");
6
- const useEffectOnce = require("./harmony12.cjs");
7
5
  const clsx = require("./harmony70.cjs");
8
- const React = require("react");
9
- const Tasks_module = require("./harmony108.cjs");
10
- const TasksContext = require("./harmony109.cjs");
11
- const TasksPopover = require("./harmony110.cjs");
12
- const TasksProvider = require("./harmony111.cjs");
13
- const taskEvents = require("./harmony112.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,
6
+ const IconLink_module = require("./harmony96.cjs");
7
+ const IconLink = ({ label, to, icon: Icon }) => {
8
+ return /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsxRuntime.jsx(
9
+ louis.Link,
28
10
  {
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
- )
11
+ "aria-label": label,
12
+ className: clsx.clsx(IconLink_module.default.link, {
13
+ [IconLink_module.default.active]: window.location.pathname.startsWith(to)
14
+ }),
15
+ href: to,
16
+ children: /* @__PURE__ */ jsxRuntime.jsx(Icon, { size: "25px" })
58
17
  }
59
18
  ) });
60
- });
61
- exports.Tasks = Tasks;
19
+ };
20
+ exports.IconLink = IconLink;
62
21
  //# sourceMappingURL=harmony82.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony82.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":"harmony82.cjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":["jsx","Tooltip","Link","clsx","styles"],"mappings":";;;;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACEA,2BAAA,IAAAC,MAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAAD,2BAAA;AAAA,IAACE,MAAA;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAWC,KAAAA,KAAKC,gBAAA,QAAO,MAAM;AAAA,QAC5B,CAACA,gBAAAA,QAAO,MAAM,GAAG,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACvD;AAAA,MACD,MAAM;AAAA,MAEN,UAAAJ,2BAAAA,IAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;;"}
@@ -1,62 +1,21 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { shift } from "./harmony107.mjs";
3
- import { Tooltip, Popover, Button, JobIcon } from "@lokalise/louis";
4
- import { useEffectOnce } from "./harmony12.mjs";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Tooltip, Link } from "@lokalise/louis";
5
3
  import { clsx } from "./harmony70.mjs";
6
- import { useState } from "react";
7
- import styles from "./harmony108.mjs";
8
- import { useTasks } from "./harmony109.mjs";
9
- import { TasksPopover } from "./harmony110.mjs";
10
- import { withTasksContext } from "./harmony111.mjs";
11
- import { TaskEvents } from "./harmony112.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,
4
+ import styles from "./harmony96.mjs";
5
+ const IconLink = ({ label, to, icon: Icon }) => {
6
+ return /* @__PURE__ */ jsx(Tooltip, { placement: "right", tooltip: label, children: /* @__PURE__ */ jsx(
7
+ Link,
26
8
  {
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
- )
9
+ "aria-label": label,
10
+ className: clsx(styles.link, {
11
+ [styles.active]: window.location.pathname.startsWith(to)
12
+ }),
13
+ href: to,
14
+ children: /* @__PURE__ */ jsx(Icon, { size: "25px" })
56
15
  }
57
16
  ) });
58
- });
17
+ };
59
18
  export {
60
- Tasks
19
+ IconLink
61
20
  };
62
21
  //# sourceMappingURL=harmony82.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony82.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":"harmony82.mjs","sources":["../src/components/Sidebar/Widgets/IconLink/IconLink.tsx"],"sourcesContent":["import { Link, type SvgIconProps, Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport type { FC } from 'react'\nimport styles from './IconLink.module.css'\n\ntype IconLinkProps = {\n\t/** URL destination for the link */\n\tto: string\n\t/** Text to display in the tooltip when hovering over the icon */\n\tlabel: string\n\t/** Icon component from @lokalise/louis to display */\n\ticon: FC<SvgIconProps>\n}\n\n/**\n * A navigation link component that displays an icon with a tooltip.\n * When hovered, shows a tooltip with the label text.\n * The link is highlighted when the current URL matches its destination.\n *\n * @example\n * ```tsx\n * <IconLink to=\"/projects\" label=\"Projects\" icon={FolderOpenIcon} />\n * ```\n */\nexport const IconLink = ({ label, to, icon: Icon }: IconLinkProps) => {\n\treturn (\n\t\t<Tooltip placement=\"right\" tooltip={label}>\n\t\t\t<Link\n\t\t\t\taria-label={label}\n\t\t\t\tclassName={clsx(styles.link, {\n\t\t\t\t\t[styles.active]: window.location.pathname.startsWith(to),\n\t\t\t\t})}\n\t\t\t\thref={to}\n\t\t\t>\n\t\t\t\t<Icon size=\"25px\" />\n\t\t\t</Link>\n\t\t</Tooltip>\n\t)\n}\n"],"names":[],"mappings":";;;;AAwBO,MAAM,WAAW,CAAC,EAAE,OAAO,IAAI,MAAM,WAA0B;AACrE,SACE,oBAAA,SAAA,EAAQ,WAAU,SAAQ,SAAS,OACnC,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW,KAAK,OAAO,MAAM;AAAA,QAC5B,CAAC,OAAO,MAAM,GAAG,OAAO,SAAS,SAAS,WAAW,EAAE;AAAA,MAAA,CACvD;AAAA,MACD,MAAM;AAAA,MAEN,UAAA,oBAAC,MAAK,EAAA,MAAK,OAAO,CAAA;AAAA,IAAA;AAAA,EAAA,GAEpB;AAEF;"}
@@ -1,12 +1,78 @@
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 BillingMenuItem = require("./harmony97.cjs");
5
+ const CreateNewTeam = require("./harmony98.cjs");
6
+ const CreateNewTeamPlaceholder = require("./harmony99.cjs");
7
+ const DarkModeToggle = require("./harmony100.cjs");
8
+ const ProfileSettingsMenuItem = require("./harmony101.cjs");
9
+ const ProviderMenuItem = require("./harmony102.cjs");
10
+ const TeamMenuItem = require("./harmony103.cjs");
11
+ const TeamSettingsMenuItem = require("./harmony104.cjs");
12
+ const TeamSwitch = require("./harmony105.cjs");
13
+ const UpgradeMenuItem = require("./harmony106.cjs");
14
+ const useSidebar = require("./harmony84.cjs");
15
+ const louis = require("@lokalise/louis");
16
+ const permissions = require("./harmony85.cjs");
17
+ const clsx = require("./harmony70.cjs");
18
+ const ProfileMenu_module = require("./harmony107.cjs");
19
+ const UpgradeIcon = require("./harmony108.cjs");
20
+ const ProfileMenu = ({ config }) => {
21
+ const {
22
+ data: { currentTeam, jwt }
23
+ } = useSidebar.useSidebar();
24
+ const {
25
+ darkModeToggle,
26
+ teamSwitch,
27
+ createTeam,
28
+ createTeamPlaceholder,
29
+ upgradeMenuItem,
30
+ profileSettings
31
+ } = config;
32
+ return /* @__PURE__ */ jsxRuntime.jsx(
33
+ louis.Menu,
34
+ {
35
+ menuButton: () => {
36
+ var _a;
37
+ return /* @__PURE__ */ jsxRuntime.jsxs("button", { className: ProfileMenu_module.default.profileButton, "aria-label": "Profile menu", type: "button", children: [
38
+ ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsxRuntime.jsx(
39
+ "img",
40
+ {
41
+ src: currentTeam.result.logoUrl,
42
+ className: clsx.clsx(ProfileMenu_module.default.profileImage, {
43
+ [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt.result)
44
+ }),
45
+ alt: "Team Logo"
46
+ }
47
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
48
+ "div",
49
+ {
50
+ className: clsx.clsx(ProfileMenu_module.default.userIconWrapper, "flex-row", "align-center", "items-center", {
51
+ [ProfileMenu_module.default.profileImageHighlight]: permissions.canUpgradePlan(jwt.result)
52
+ }),
53
+ children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" })
54
+ }
55
+ ),
56
+ permissions.canUpgradePlan(jwt.result) && /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, { className: ProfileMenu_module.default.profileImageUpgradeIcon })
57
+ ] });
58
+ },
59
+ children: /* @__PURE__ */ jsxRuntime.jsxs(louis.MenuList, { placement: "right-end", className: ProfileMenu_module.default.menuContainer, children: [
60
+ teamSwitch && /* @__PURE__ */ jsxRuntime.jsx(TeamSwitch.TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
61
+ createTeam && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeam.CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
62
+ createTeamPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(CreateNewTeamPlaceholder.CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
63
+ /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, {}),
64
+ upgradeMenuItem && /* @__PURE__ */ jsxRuntime.jsx(UpgradeMenuItem.UpgradeMenuItem, { href: upgradeMenuItem.href }),
65
+ /* @__PURE__ */ jsxRuntime.jsx(BillingMenuItem.BillingMenuItem, {}),
66
+ /* @__PURE__ */ jsxRuntime.jsx(TeamSettingsMenuItem.TeamSettingsMenuItem, {}),
67
+ /* @__PURE__ */ jsxRuntime.jsx(ProviderMenuItem.ProviderMenuItem, {}),
68
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
69
+ profileSettings && /* @__PURE__ */ jsxRuntime.jsx(ProfileSettingsMenuItem.ProfileSettingsMenuItem, {}),
70
+ darkModeToggle && /* @__PURE__ */ jsxRuntime.jsx(DarkModeToggle.DarkModeToggle, { ...darkModeToggle }),
71
+ (profileSettings && permissions.canAccessProfileSettings(jwt.result) || darkModeToggle) && /* @__PURE__ */ jsxRuntime.jsx(louis.MenuDivider, {}),
72
+ /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/login?action=logout", children: "Logout" })
73
+ ] })
74
+ }
75
+ );
8
76
  };
9
- exports.breadcrumbs = breadcrumbs;
10
- exports.breadcrumbsItem = breadcrumbsItem;
11
- exports.default = classes;
77
+ exports.ProfileMenu = ProfileMenu;
12
78
  //# sourceMappingURL=harmony83.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony83.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"harmony83.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt.result) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t{profileSettings && <ProfileSettingsMenuItem />}\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{((profileSettings && canAccessProfileSettings(jwt.result)) || darkModeToggle) && (\n\t\t\t\t\t<MenuDivider />\n\t\t\t\t)}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":["useSidebar","jsx","Menu","jsxs","styles","clsx","canUpgradePlan","UserIcon","UpgradeIcon","MenuList","TeamSwitch","CreateNewTeam","CreateNewTeamPlaceholder","TeamMenuItem","UpgradeMenuItem","BillingMenuItem","TeamSettingsMenuItem","ProviderMenuItem","MenuDivider","ProfileSettingsMenuItem","DarkModeToggle","canAccessProfileSettings","MenuItem"],"mappings":";;;;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtBA,sBAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,YAAY,MACXC;;AAAAA,0CAAAA,KAAC,UAAO,EAAA,WAAWC,mBAAAA,QAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpBH,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAWI,KAAAA,KAAKD,mBAAA,QAAO,cAAc;AAAA,gBACpC,CAACA,2BAAO,qBAAqB,GAAGE,YAAA,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGLL,2BAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAWI,KAAK,KAAAD,mBAAA,QAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAACA,2BAAO,qBAAqB,GAAGE,YAAA,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cAED,UAAAL,2BAAAA,IAACM,MAAAA,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEAD,2BAAe,IAAI,MAAM,oCAAME,YAAAA,aAAY,EAAA,WAAWJ,2BAAO,wBAAyB,CAAA;AAAA,QAAA,GACxF;AAAA;AAAA,MAGD,0CAACK,MAAS,UAAA,EAAA,WAAU,aAAY,WAAWL,mBAAAA,QAAO,eAChD,UAAA;AAAA,QAAA,cAAeH,2BAAA,IAAAS,WAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAcT,2BAAA,IAACU,cAAc,eAAA,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACAV,2BAAA,IAACW,yBAAyB,0BAAA,EAAA,SAAS,sBAAsB,SAAS;AAAA,uCAElEC,aAAa,cAAA,EAAA;AAAA,QACb,mBAAmBZ,2BAAA,IAACa,gBAAgB,iBAAA,EAAA,MAAM,gBAAgB,MAAM;AAAA,uCAChEC,gBAAgB,iBAAA,EAAA;AAAA,uCAChBC,qBAAqB,sBAAA,EAAA;AAAA,uCACrBC,iBAAiB,kBAAA,EAAA;AAAA,uCACjBC,MAAY,aAAA,EAAA;AAAA,QAEZ,kDAAoBC,wBAAwB,yBAAA,EAAA;AAAA,QAC5C,kBAAkBlB,2BAAAA,IAACmB,eAAAA,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACpD,mBAAmBC,YAAyB,yBAAA,IAAI,MAAM,KAAM,kDAC7DH,MAAY,aAAA,EAAA;AAAA,QAGbjB,2BAAA,IAAAqB,MAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,12 +1,78 @@
1
- const breadcrumbsItem = "_breadcrumbsItem_1hm6a_1";
2
- const breadcrumbs = "_breadcrumbs_1hm6a_1";
3
- const classes = {
4
- breadcrumbsItem,
5
- breadcrumbs
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { BillingMenuItem } from "./harmony97.mjs";
3
+ import { CreateNewTeam } from "./harmony98.mjs";
4
+ import { CreateNewTeamPlaceholder } from "./harmony99.mjs";
5
+ import { DarkModeToggle } from "./harmony100.mjs";
6
+ import { ProfileSettingsMenuItem } from "./harmony101.mjs";
7
+ import { ProviderMenuItem } from "./harmony102.mjs";
8
+ import { TeamMenuItem } from "./harmony103.mjs";
9
+ import { TeamSettingsMenuItem } from "./harmony104.mjs";
10
+ import { TeamSwitch } from "./harmony105.mjs";
11
+ import { UpgradeMenuItem } from "./harmony106.mjs";
12
+ import { useSidebar } from "./harmony84.mjs";
13
+ import { Menu, MenuList, MenuDivider, MenuItem, UserIcon } from "@lokalise/louis";
14
+ import { canAccessProfileSettings, canUpgradePlan } from "./harmony85.mjs";
15
+ import { clsx } from "./harmony70.mjs";
16
+ import styles from "./harmony107.mjs";
17
+ import { UpgradeIcon } from "./harmony108.mjs";
18
+ const ProfileMenu = ({ config }) => {
19
+ const {
20
+ data: { currentTeam, jwt }
21
+ } = useSidebar();
22
+ const {
23
+ darkModeToggle,
24
+ teamSwitch,
25
+ createTeam,
26
+ createTeamPlaceholder,
27
+ upgradeMenuItem,
28
+ profileSettings
29
+ } = config;
30
+ return /* @__PURE__ */ jsx(
31
+ Menu,
32
+ {
33
+ menuButton: () => {
34
+ var _a;
35
+ return /* @__PURE__ */ jsxs("button", { className: styles.profileButton, "aria-label": "Profile menu", type: "button", children: [
36
+ ((_a = currentTeam.result) == null ? void 0 : _a.logoUrl) ? /* @__PURE__ */ jsx(
37
+ "img",
38
+ {
39
+ src: currentTeam.result.logoUrl,
40
+ className: clsx(styles.profileImage, {
41
+ [styles.profileImageHighlight]: canUpgradePlan(jwt.result)
42
+ }),
43
+ alt: "Team Logo"
44
+ }
45
+ ) : /* @__PURE__ */ jsx(
46
+ "div",
47
+ {
48
+ className: clsx(styles.userIconWrapper, "flex-row", "align-center", "items-center", {
49
+ [styles.profileImageHighlight]: canUpgradePlan(jwt.result)
50
+ }),
51
+ children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" })
52
+ }
53
+ ),
54
+ canUpgradePlan(jwt.result) && /* @__PURE__ */ jsx(UpgradeIcon, { className: styles.profileImageUpgradeIcon })
55
+ ] });
56
+ },
57
+ children: /* @__PURE__ */ jsxs(MenuList, { placement: "right-end", className: styles.menuContainer, children: [
58
+ teamSwitch && /* @__PURE__ */ jsx(TeamSwitch, { onSwitchTeam: teamSwitch.onSwitchTeam }),
59
+ createTeam && /* @__PURE__ */ jsx(CreateNewTeam, { onCreateTeam: createTeam.onCreateTeam }),
60
+ createTeamPlaceholder && /* @__PURE__ */ jsx(CreateNewTeamPlaceholder, { onClick: createTeamPlaceholder.onClick }),
61
+ /* @__PURE__ */ jsx(TeamMenuItem, {}),
62
+ upgradeMenuItem && /* @__PURE__ */ jsx(UpgradeMenuItem, { href: upgradeMenuItem.href }),
63
+ /* @__PURE__ */ jsx(BillingMenuItem, {}),
64
+ /* @__PURE__ */ jsx(TeamSettingsMenuItem, {}),
65
+ /* @__PURE__ */ jsx(ProviderMenuItem, {}),
66
+ /* @__PURE__ */ jsx(MenuDivider, {}),
67
+ profileSettings && /* @__PURE__ */ jsx(ProfileSettingsMenuItem, {}),
68
+ darkModeToggle && /* @__PURE__ */ jsx(DarkModeToggle, { ...darkModeToggle }),
69
+ (profileSettings && canAccessProfileSettings(jwt.result) || darkModeToggle) && /* @__PURE__ */ jsx(MenuDivider, {}),
70
+ /* @__PURE__ */ jsx(MenuItem, { href: "/login?action=logout", children: "Logout" })
71
+ ] })
72
+ }
73
+ );
6
74
  };
7
75
  export {
8
- breadcrumbs,
9
- breadcrumbsItem,
10
- classes as default
76
+ ProfileMenu
11
77
  };
12
78
  //# sourceMappingURL=harmony83.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony83.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"harmony83.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileMenu.tsx"],"sourcesContent":["import { BillingMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/BillingMenuItem/BillingMenuItem'\nimport { CreateNewTeam } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeam/CreateNewTeam'\nimport { CreateNewTeamPlaceholder } from '@components/Sidebar/Widgets/ProfileMenu/CreateNewTeamPlaceholder/CreateNewTeamPlaceholder'\nimport { DarkModeToggle } from '@components/Sidebar/Widgets/ProfileMenu/DarkModeToggle/DarkModeToggle'\nimport { ProfileSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem'\nimport { ProviderMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem'\nimport { TeamMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem'\nimport { TeamSettingsMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem'\nimport { TeamSwitch } from '@components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch'\nimport { UpgradeMenuItem } from '@components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem'\nimport { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { ProfileMenuConfig } from '@components/Sidebar/types'\nimport { Menu, MenuDivider, MenuItem, MenuList, UserIcon } from '@lokalise/louis'\nimport { canAccessProfileSettings, canUpgradePlan } from '@utils/user/permissions'\nimport clsx from 'clsx'\nimport styles from './ProfileMenu.module.css'\nimport { UpgradeIcon } from './UpgradeIcon/UpgradeIcon'\n\n/**\n * The main profile menu component, displaying team and user actions.\n * Renders optional menu items based on the provided config and user permissions.\n *\n * @example\n * ```\n * <ProfileMenu config={...} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileMenuProps = {\n\tconfig: ProfileMenuConfig\n}\n\nexport const ProfileMenu = ({ config }: ProfileMenuProps) => {\n\tconst {\n\t\tdata: { currentTeam, jwt },\n\t} = useSidebar()\n\n\tconst {\n\t\tdarkModeToggle,\n\t\tteamSwitch,\n\t\tcreateTeam,\n\t\tcreateTeamPlaceholder,\n\t\tupgradeMenuItem,\n\t\tprofileSettings,\n\t} = config\n\n\treturn (\n\t\t<Menu\n\t\t\tmenuButton={() => (\n\t\t\t\t<button className={styles.profileButton} aria-label=\"Profile menu\" type=\"button\">\n\t\t\t\t\t{currentTeam.result?.logoUrl ? (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={currentTeam.result.logoUrl}\n\t\t\t\t\t\t\tclassName={clsx(styles.profileImage, {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\talt=\"Team Logo\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={clsx(styles.userIconWrapper, 'flex-row', 'align-center', 'items-center', {\n\t\t\t\t\t\t\t\t[styles.profileImageHighlight]: canUpgradePlan(jwt.result),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t\t{canUpgradePlan(jwt.result) && <UpgradeIcon className={styles.profileImageUpgradeIcon} />}\n\t\t\t\t</button>\n\t\t\t)}\n\t\t>\n\t\t\t<MenuList placement=\"right-end\" className={styles.menuContainer}>\n\t\t\t\t{teamSwitch && <TeamSwitch onSwitchTeam={teamSwitch.onSwitchTeam} />}\n\t\t\t\t{createTeam && <CreateNewTeam onCreateTeam={createTeam.onCreateTeam} />}\n\t\t\t\t{createTeamPlaceholder && (\n\t\t\t\t\t<CreateNewTeamPlaceholder onClick={createTeamPlaceholder.onClick} />\n\t\t\t\t)}\n\t\t\t\t<TeamMenuItem />\n\t\t\t\t{upgradeMenuItem && <UpgradeMenuItem href={upgradeMenuItem.href} />}\n\t\t\t\t<BillingMenuItem />\n\t\t\t\t<TeamSettingsMenuItem />\n\t\t\t\t<ProviderMenuItem />\n\t\t\t\t<MenuDivider />\n\n\t\t\t\t{profileSettings && <ProfileSettingsMenuItem />}\n\t\t\t\t{darkModeToggle && <DarkModeToggle {...darkModeToggle} />}\n\t\t\t\t{((profileSettings && canAccessProfileSettings(jwt.result)) || darkModeToggle) && (\n\t\t\t\t\t<MenuDivider />\n\t\t\t\t)}\n\n\t\t\t\t<MenuItem href=\"/login?action=logout\">Logout</MenuItem>\n\t\t\t</MenuList>\n\t\t</Menu>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkCO,MAAM,cAAc,CAAC,EAAE,aAA+B;AACtD,QAAA;AAAA,IACL,MAAM,EAAE,aAAa,IAAI;AAAA,MACtB,WAAW;AAET,QAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACG;AAGH,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,YAAY,MACX;;AAAA,oCAAC,UAAO,EAAA,WAAW,OAAO,eAAe,cAAW,gBAAe,MAAK,UACtE,UAAA;AAAA,YAAA,iBAAY,WAAZ,mBAAoB,WACpB;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,KAAK,YAAY,OAAO;AAAA,cACxB,WAAW,KAAK,OAAO,cAAc;AAAA,gBACpC,CAAC,OAAO,qBAAqB,GAAG,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cACD,KAAI;AAAA,YAAA;AAAA,UAAA,IAGL;AAAA,YAAC;AAAA,YAAA;AAAA,cACA,WAAW,KAAK,OAAO,iBAAiB,YAAY,gBAAgB,gBAAgB;AAAA,gBACnF,CAAC,OAAO,qBAAqB,GAAG,eAAe,IAAI,MAAM;AAAA,cAAA,CACzD;AAAA,cAED,UAAA,oBAAC,UAAS,EAAA,MAAK,OAAO,CAAA;AAAA,YAAA;AAAA,UACvB;AAAA,UAEA,eAAe,IAAI,MAAM,yBAAM,aAAY,EAAA,WAAW,OAAO,wBAAyB,CAAA;AAAA,QAAA,GACxF;AAAA;AAAA,MAGD,+BAAC,UAAS,EAAA,WAAU,aAAY,WAAW,OAAO,eAChD,UAAA;AAAA,QAAA,cAAe,oBAAA,YAAA,EAAW,cAAc,WAAW,cAAc;AAAA,QACjE,cAAc,oBAAC,eAAc,EAAA,cAAc,WAAW,cAAc;AAAA,QACpE,yBACA,oBAAC,0BAAyB,EAAA,SAAS,sBAAsB,SAAS;AAAA,4BAElE,cAAa,EAAA;AAAA,QACb,mBAAmB,oBAAC,iBAAgB,EAAA,MAAM,gBAAgB,MAAM;AAAA,4BAChE,iBAAgB,EAAA;AAAA,4BAChB,sBAAqB,EAAA;AAAA,4BACrB,kBAAiB,EAAA;AAAA,4BACjB,aAAY,EAAA;AAAA,QAEZ,uCAAoB,yBAAwB,EAAA;AAAA,QAC5C,kBAAkB,oBAAC,gBAAgB,EAAA,GAAG,eAAgB,CAAA;AAAA,SACpD,mBAAmB,yBAAyB,IAAI,MAAM,KAAM,uCAC7D,aAAY,EAAA;AAAA,QAGb,oBAAA,UAAA,EAAS,MAAK,wBAAuB,UAAM,SAAA,CAAA;AAAA,MAAA,EAC7C,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,11 +1,15 @@
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");
3
+ const SidebarContext = require("./harmony81.cjs");
5
4
  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;
5
+ const useSidebar = () => {
6
+ const context = React.useContext(SidebarContext.SidebarContext);
7
+ if (!context) {
8
+ throw new Error(
9
+ "You are using useSidebar hook outside its context. Please review your code implementation"
10
+ );
11
+ }
12
+ return context;
13
+ };
14
+ exports.useSidebar = useSidebar;
11
15
  //# sourceMappingURL=harmony84.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony84.cjs","sources":["../src/components/NavigationPanel/components/DropdownContent/DropdownContent.tsx"],"sourcesContent":["import { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { Fragment } from 'react'\nimport type { DropdownItem } from '../../types/navigation'\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":"harmony84.cjs","sources":["../src/components/Sidebar/hooks/useSidebar.ts"],"sourcesContent":["import { SidebarContext } from '@components/Sidebar/SidebarContext'\nimport { useContext } from 'react'\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":["useContext","SidebarContext"],"mappings":";;;;AAGO,MAAM,aAAa,MAAM;AACzB,QAAA,UAAUA,iBAAWC,6BAAc;AAEzC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EAAA;AAGM,SAAA;AACR;;"}
@@ -1,11 +1,15 @@
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 { SidebarContext } from "./harmony81.mjs";
2
+ import { useContext } from "react";
3
+ const useSidebar = () => {
4
+ const context = useContext(SidebarContext);
5
+ if (!context) {
6
+ throw new Error(
7
+ "You are using useSidebar hook outside its context. Please review your code implementation"
8
+ );
9
+ }
10
+ return context;
11
+ };
8
12
  export {
9
- DropdownContent
13
+ useSidebar
10
14
  };
11
15
  //# sourceMappingURL=harmony84.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony84.mjs","sources":["../src/components/NavigationPanel/components/DropdownContent/DropdownContent.tsx"],"sourcesContent":["import { MenuDivider, MenuItem } from '@lokalise/louis'\nimport { Fragment } from 'react'\nimport type { DropdownItem } from '../../types/navigation'\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":"harmony84.mjs","sources":["../src/components/Sidebar/hooks/useSidebar.ts"],"sourcesContent":["import { SidebarContext } from '@components/Sidebar/SidebarContext'\nimport { useContext } from 'react'\n\nexport const useSidebar = () => {\n\tconst context = useContext(SidebarContext)\n\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'You are using useSidebar hook outside its context. Please review your code implementation',\n\t\t)\n\t}\n\n\treturn context\n}\n"],"names":[],"mappings":";;AAGO,MAAM,aAAa,MAAM;AACzB,QAAA,UAAU,WAAW,cAAc;AAEzC,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EAAA;AAGM,SAAA;AACR;"}
@@ -1,32 +1,33 @@
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 clsx = require("./harmony70.cjs");
6
- const React = require("react");
7
- const NavItemContents = require("./harmony101.cjs");
8
- const styles_module = require("./harmony102.cjs");
9
- const NavigationTabsItem = React.forwardRef(
10
- ({ label, href = "", disabled = false, badge, onClick, novel }, ref) => /* @__PURE__ */ jsxRuntime.jsx(louis.Tooltip, { tooltip: "You do not have access to this function", show: disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
11
- "div",
12
- {
13
- className: disabled ? styles_module.default.projectNavigationItemDisabled : styles_module.default.projectNavigationItem,
14
- children: onClick || disabled || !href ? /* @__PURE__ */ jsxRuntime.jsx(
15
- "button",
16
- {
17
- type: "button",
18
- ref,
19
- className: clsx.clsx(styles_module.default.withNavLinkStyle, {
20
- [styles_module.default.disabled]: disabled
21
- }),
22
- disabled,
23
- onClick,
24
- children: /* @__PURE__ */ jsxRuntime.jsx(NavItemContents.NavItemContents, { label, badge, novel })
25
- }
26
- ) : /* @__PURE__ */ jsxRuntime.jsx("a", { href, className: styles_module.default.withNavLinkStyle, children: /* @__PURE__ */ jsxRuntime.jsx(NavItemContents.NavItemContents, { label, badge, novel }) })
27
- }
28
- ) })
3
+ const plan = require("./harmony8.cjs");
4
+ const withJwtCheck = (checkFn) => (jwtPayload) => !!jwtPayload && checkFn(jwtPayload);
5
+ const canAccessReporting = withJwtCheck(
6
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole)
29
7
  );
30
- NavigationTabsItem.displayName = "NavigationTabsItem";
31
- exports.NavigationTabsItem = NavigationTabsItem;
8
+ const canAccessTeamSettings = withJwtCheck(
9
+ (jwt) => ["admin", "biller", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated
10
+ );
11
+ const canCreateTeam = withJwtCheck(
12
+ (jwt) => ["admin", "owner"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isEndOfTrialActive
13
+ );
14
+ const canUpgradePlan = withJwtCheck(
15
+ (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && (plan.isFreePlan(jwt.planId) || plan.isTrialPlan(jwt.planId))
16
+ );
17
+ const canChangeBilling = withJwtCheck(
18
+ (jwt) => ["admin", "owner", "biller"].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated && !jwt.isTeamSuspended && !jwt.isEndOfTrialActive
19
+ );
20
+ const canAccessProviderDashboard = withJwtCheck(
21
+ (jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated
22
+ );
23
+ const canAccessProfileSettings = withJwtCheck(
24
+ (jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended
25
+ );
26
+ exports.canAccessProfileSettings = canAccessProfileSettings;
27
+ exports.canAccessProviderDashboard = canAccessProviderDashboard;
28
+ exports.canAccessReporting = canAccessReporting;
29
+ exports.canAccessTeamSettings = canAccessTeamSettings;
30
+ exports.canChangeBilling = canChangeBilling;
31
+ exports.canCreateTeam = canCreateTeam;
32
+ exports.canUpgradePlan = canUpgradePlan;
32
33
  //# sourceMappingURL=harmony85.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony85.cjs","sources":["../src/components/NavigationPanel/components/NavigationTabs/NavigationTabsItem/NavigationTabsItem.tsx"],"sourcesContent":["import { Tooltip } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport { forwardRef } from 'react'\nimport { NavItemContents } from './NavItemContents'\nimport classes from './styles.module.css'\n\ntype NavigationTabsItemProps = {\n\tlabel: string\n\tbadge?: number\n\tdisabled?: boolean\n\tactive?: boolean\n\tonClick?: () => void\n\thref?: string\n\tnovel?: string\n}\n\nexport const NavigationTabsItem = forwardRef<HTMLButtonElement, NavigationTabsItemProps>(\n\t({ label, href = '', disabled = false, badge, onClick, novel }, ref) => (\n\t\t<Tooltip tooltip=\"You do not have access to this function\" show={disabled}>\n\t\t\t<div\n\t\t\t\tclassName={disabled ? classes.projectNavigationItemDisabled : classes.projectNavigationItem}\n\t\t\t>\n\t\t\t\t{onClick || disabled || !href ? (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\tclassName={clsx(classes.withNavLinkStyle, {\n\t\t\t\t\t\t\t[classes.disabled]: disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tonClick={onClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t<NavItemContents label={label} badge={badge} novel={novel} />\n\t\t\t\t\t</button>\n\t\t\t\t) : (\n\t\t\t\t\t<a href={href} className={classes.withNavLinkStyle}>\n\t\t\t\t\t\t<NavItemContents label={label} badge={badge} novel={novel} />\n\t\t\t\t\t</a>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</Tooltip>\n\t),\n)\n\nNavigationTabsItem.displayName = 'NavigationTabsItem'\n"],"names":["forwardRef","jsx","Tooltip","classes","clsx","NavItemContents"],"mappings":";;;;;;;;AAgBO,MAAM,qBAAqBA,MAAA;AAAA,EACjC,CAAC,EAAE,OAAO,OAAO,IAAI,WAAW,OAAO,OAAO,SAAS,MAAA,GAAS,QAC/DC,2BAAA,IAACC,iBAAQ,SAAQ,2CAA0C,MAAM,UAChE,UAAAD,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,WAAW,WAAWE,cAAAA,QAAQ,gCAAgCA,cAAQ,QAAA;AAAA,MAErE,UAAA,WAAW,YAAY,CAAC,OACxBF,2BAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACA,MAAK;AAAA,UACL;AAAA,UACA,WAAWG,KAAAA,KAAKD,cAAA,QAAQ,kBAAkB;AAAA,YACzC,CAACA,cAAAA,QAAQ,QAAQ,GAAG;AAAA,UAAA,CACpB;AAAA,UACD;AAAA,UACA;AAAA,UAEA,UAACF,2BAAA,IAAAI,gBAAA,iBAAA,EAAgB,OAAc,OAAc,MAAc,CAAA;AAAA,QAAA;AAAA,MAAA,IAG5DJ,2BAAAA,IAAC,KAAE,EAAA,MAAY,WAAWE,cAAA,QAAQ,kBACjC,UAAAF,2BAAA,IAACI,gBAAgB,iBAAA,EAAA,OAAc,OAAc,MAAc,CAAA,EAC5D,CAAA;AAAA,IAAA;AAAA,EAAA,EAGH,CAAA;AAEF;AAEA,mBAAmB,cAAc;;"}
1
+ {"version":3,"file":"harmony85.cjs","sources":["../src/utils/user/permissions.ts"],"sourcesContent":["import type { JwtTokenPayload } from '@features/auth/core/types/jwtTokenPayload'\nimport { isFreePlan, isTrialPlan } from '@utils'\n\ntype JwtCheckFn = (jwt: JwtTokenPayload) => boolean\n\nconst withJwtCheck =\n\t(checkFn: JwtCheckFn) =>\n\t(jwtPayload: JwtTokenPayload | null | undefined): boolean =>\n\t\t!!jwtPayload && checkFn(jwtPayload)\n\nexport const canAccessStyleGuide = withJwtCheck((jwt) =>\n\t['admin', 'biller', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessReporting = withJwtCheck((jwt) =>\n\t['admin', 'owner'].includes(jwt.userTeamRole),\n)\n\nexport const canAccessTeamSettings = withJwtCheck(\n\t(jwt) => ['admin', 'biller', 'owner'].includes(jwt.userTeamRole) && jwt.isFullyAuthenticated,\n)\n\nexport const canCreateTeam = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canUpgradePlan = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t(isFreePlan(jwt.planId) || isTrialPlan(jwt.planId)),\n)\n\nexport const canChangeBilling = withJwtCheck(\n\t(jwt) =>\n\t\t['admin', 'owner', 'biller'].includes(jwt.userTeamRole) &&\n\t\tjwt.isFullyAuthenticated &&\n\t\t!jwt.isTeamSuspended &&\n\t\t!jwt.isEndOfTrialActive,\n)\n\nexport const canAccessProviderDashboard = withJwtCheck(\n\t(jwt) => jwt.isProviderAlpha && !jwt.isTeamSuspended && jwt.isFullyAuthenticated,\n)\n\nexport const canAccessProfileSettings = withJwtCheck(\n\t(jwt) => !jwt.isEndOfTrialActive && !jwt.isTeamSuspended,\n)\n"],"names":["isFreePlan","isTrialPlan"],"mappings":";;;AAKA,MAAM,eACL,CAAC,YACD,CAAC,eACA,CAAC,CAAC,cAAc,QAAQ,UAAU;AAM7B,MAAM,qBAAqB;AAAA,EAAa,CAAC,QAC/C,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY;AAC7C;AAEO,MAAM,wBAAwB;AAAA,EACpC,CAAC,QAAQ,CAAC,SAAS,UAAU,OAAO,EAAE,SAAS,IAAI,YAAY,KAAK,IAAI;AACzE;AAEO,MAAM,gBAAgB;AAAA,EAC5B,CAAC,QACA,CAAC,SAAS,OAAO,EAAE,SAAS,IAAI,YAAY,KAC5C,IAAI,wBACJ,CAAC,IAAI;AACP;AAEO,MAAM,iBAAiB;AAAA,EAC7B,CAAC,QACA,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,yBACHA,KAAAA,WAAW,IAAI,MAAM,KAAKC,KAAA,YAAY,IAAI,MAAM;AACnD;AAEO,MAAM,mBAAmB;AAAA,EAC/B,CAAC,QACA,CAAC,SAAS,SAAS,QAAQ,EAAE,SAAS,IAAI,YAAY,KACtD,IAAI,wBACJ,CAAC,IAAI,mBACL,CAAC,IAAI;AACP;AAEO,MAAM,6BAA6B;AAAA,EACzC,CAAC,QAAQ,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,IAAI;AAC7D;AAEO,MAAM,2BAA2B;AAAA,EACvC,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,IAAI;AAC1C;;;;;;;;"}