@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 +1 @@
1
- {"version":3,"file":"harmony99.mjs","sources":["../src/features/navigation/hooks/useNextgenNavigation.ts"],"sourcesContent":["import type { Contributor, Project } from '@features/node'\nimport { useCallback, useMemo } from 'react'\nimport { useNavigationClient } from '../providers/NavigationClientProvider'\n// TODO: react-router-dom as peer dependencies works only inside next-gen apps. It shouldn't be like that.\n// Because of that we can't use THE WHOLE package in legacy apps, therefore it should be implemented in legacy apps as well(almost impossible),\n// so this dependency should be installed as direct dependency. or we should think about other options\n// import { useNavigate } from \"react-router-dom\";\nimport { navigationItems } from '../schemas/navigationSchema'\n\n// TODO: Unify navigation items for next-gen and legacy apps\n/**\n * Hook to generate navigation items for new applications\n */\nexport const useNextgenNavigation = (\n\tactiveKey: string,\n\tenabled: boolean,\n\tproject?: Project,\n\tcontributor?: Contributor,\n) => {\n\tconst navigationClient = useNavigationClient()\n\tconst nextgenUrl = navigationClient.getNextgenUrl()\n\n\tconst navigate = useCallback(\n\t\t(path: string) => {\n\t\t\t// TODO: Define navigate logic here\n\t\t\twindow.location.href = `${nextgenUrl}${path}`\n\t\t},\n\t\t[nextgenUrl],\n\t)\n\n\treturn useMemo(() => {\n\t\tif (!enabled) {\n\t\t\treturn []\n\t\t}\n\n\t\tconst projectId = project?.project_id || ''\n\n\t\t// Context for filtering and transforming navigation items\n\t\tconst context = {\n\t\t\tflags: {}, // TODO: getFeatureFlags(features),\n\t\t\tpathname: window.location.pathname,\n\t\t\tpermissions: contributor?.admin_rights || [],\n\t\t}\n\n\t\t// Filter and map items\n\t\treturn (\n\t\t\tnavigationItems\n\t\t\t\t// Filter based on conditions\n\t\t\t\t.filter((item) => (item.shouldShow ? item.shouldShow(context) : true))\n\t\t\t\t// Map to NavigationTabsItem shape\n\t\t\t\t.map((item) => {\n\t\t\t\t\tconst disabled =\n\t\t\t\t\t\ttypeof item.disabled === 'function' ? item.disabled(context) : !!item.disabled\n\n\t\t\t\t\tconst badge = typeof item.badge === 'function' ? item.badge(context) : item.badge\n\n\t\t\t\t\t// Create isActive function\n\t\t\t\t\tconst isActive = (input: string) =>\n\t\t\t\t\t\titem.isActive ? item.isActive(input) : item.key === activeKey || input === item.key\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: item.key,\n\t\t\t\t\t\tlabel: item.labelKey, // You can apply translations here if needed\n\t\t\t\t\t\ticon: item.icon,\n\t\t\t\t\t\tvisible: true,\n\t\t\t\t\t\tbadge,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t\tdropdown: item.dropdown,\n\t\t\t\t\t\tisActive,\n\t\t\t\t\t\tlink: `${nextgenUrl}${item.path({ projectId })}`,\n\t\t\t\t\t\tonClick: () => navigate(item.path({ projectId })),\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t)\n\t}, [project, activeKey, enabled, navigate, contributor, nextgenUrl])\n}\n\n// TODO: Helper to convert features to flags format\n// const getFeatureFlags = (features) => {\n// \tif (!features) return {}\n//\n// \t// Convert features to the format expected by navigation schema\n// \treturn Object.keys(features).reduce((flags, key) => {\n// \t\tflags[key] = features[key] ? 'on' : 'off'\n// \t\treturn flags\n// \t}, {})\n// }\n"],"names":[],"mappings":";;;AAaO,MAAM,uBAAuB,CACnC,WACA,SACA,SACA,gBACI;AACJ,QAAM,mBAAmB,oBAAoB;AACvC,QAAA,aAAa,iBAAiB,cAAc;AAElD,QAAM,WAAW;AAAA,IAChB,CAAC,SAAiB;AAEjB,aAAO,SAAS,OAAO,GAAG,UAAU,GAAG,IAAI;AAAA,IAC5C;AAAA,IACA,CAAC,UAAU;AAAA,EACZ;AAEA,SAAO,QAAQ,MAAM;AACpB,QAAI,CAAC,SAAS;AACb,aAAO,CAAC;AAAA,IAAA;AAGH,UAAA,aAAY,mCAAS,eAAc;AAGzC,UAAM,UAAU;AAAA,MACf,OAAO,CAAC;AAAA;AAAA,MACR,UAAU,OAAO,SAAS;AAAA,MAC1B,aAA0C,CAAA;AAAA,IAC3C;AAGA,WACC,gBAEE,OAAO,CAAC,SAAU,KAAK,aAAa,KAAK,WAAW,OAAO,IAAI,IAAK,EAEpE,IAAI,CAAC,SAAS;AACR,YAAA,WACL,OAAO,KAAK,aAAa,aAAa,KAAK,SAAS,OAAO,IAAI,CAAC,CAAC,KAAK;AAEjE,YAAA,QAAQ,OAAO,KAAK,UAAU,aAAa,KAAK,MAAM,OAAO,IAAI,KAAK;AAG5E,YAAM,WAAW,CAAC,UACjB,KAAK,WAAW,KAAK,SAAS,KAAK,IAAI,KAAK,QAAQ,aAAa,UAAU,KAAK;AAE1E,aAAA;AAAA,QACN,KAAK,KAAK;AAAA,QACV,OAAO,KAAK;AAAA;AAAA,QACZ,MAAM,KAAK;AAAA,QACX,SAAS;AAAA,QACT;AAAA,QACA;AAAA,QACA,UAAU,KAAK;AAAA,QACf;AAAA,QACA,MAAM,GAAG,UAAU,GAAG,KAAK,KAAK,EAAE,UAAW,CAAA,CAAC;AAAA,QAC9C,SAAS,MAAM,SAAS,KAAK,KAAK,EAAE,UAAA,CAAW,CAAC;AAAA,MACjD;AAAA,IAAA,CACA;AAAA,EAAA,GAED,CAAC,SAAS,WAAW,SAAS,UAAU,aAAa,UAAU,CAAC;AACpE;"}
1
+ {"version":3,"file":"harmony99.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,53 +1,19 @@
1
- import { HTMLProps, PropsWithChildren, ReactNode } from 'react';
1
+ import { HTMLProps } from 'react';
2
+ import { SidebarContentProps } from './SidebarContent/SidebarContent';
3
+ import { SidebarConfig } from './types';
2
4
  type SidebarProps = HTMLProps<HTMLElement> & {
3
- children: ReactNode;
5
+ config: SidebarConfig;
6
+ children?: SidebarContentProps['children'];
4
7
  };
5
8
  /**
6
- * Sidebar is a self-contained component using widgets
9
+ * The main Sidebar component. Wraps children with SidebarProvider and renders SidebarContent.
10
+ *
11
+ * @example
12
+ * ```
13
+ * <Sidebar config={sidebarConfig}>
14
+ * <YourAppContent />
15
+ * </Sidebar>
16
+ * ```
7
17
  */
8
- declare const Sidebar: {
9
- ({ children, ...navProps }: SidebarProps): import("react/jsx-runtime").JSX.Element;
10
- Top: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
11
- Bottom: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
12
- Avatar: ({ src, href, ariaLabel, alt, }: {
13
- src: string;
14
- href?: string;
15
- ariaLabel?: string;
16
- alt?: string;
17
- }) => import("react/jsx-runtime").JSX.Element;
18
- IconLink: ({ label, to, icon: Icon }: {
19
- to: string;
20
- label: string;
21
- icon: import('react').FC<import('@lokalise/louis').SvgIconProps>;
22
- }) => import("react/jsx-runtime").JSX.Element;
23
- Menu: ({ children, icon: Icon }: {
24
- icon: import('react').FC<import('@lokalise/louis').SvgIconProps>;
25
- } & {
26
- children?: ReactNode | undefined;
27
- }) => import("react/jsx-runtime").JSX.Element;
28
- ProfileMenu: ({ config, children }: {
29
- config: import('./Widgets/ProfileMenu/types').SidebarProfileMenuConfig;
30
- children: import('./Widgets/ProfileMenu/ProfileMenuContent').ProfileMenuContentProps["children"];
31
- }) => import("react/jsx-runtime").JSX.Element;
32
- TeamSwitch: ({ onSwitchTeam }: {
33
- onSwitchTeam: (team: import('./types').SidebarTeam) => void;
34
- }) => import("react/jsx-runtime").JSX.Element | null;
35
- TeamMenuItem: ({ team, onClick, hidePlanLabel }: {
36
- team?: import('./types').SidebarTeam;
37
- onClick?: (team: import('./types').SidebarTeam) => void;
38
- hidePlanLabel?: boolean;
39
- }) => import("react/jsx-runtime").JSX.Element | null;
40
- UpgradeMenuItem: ({ upgradeOptionHref }: {
41
- upgradeOptionHref: string;
42
- }) => import("react/jsx-runtime").JSX.Element | null;
43
- ProfileSettingsMenuItem: ({ href, onClick, userEmail, hideBottomDivider, }: {
44
- href: string;
45
- userEmail: string;
46
- onClick?: () => void;
47
- hideBottomDivider?: boolean;
48
- }) => import("react/jsx-runtime").JSX.Element | null;
49
- Tasks: (props: {
50
- config: import('./Widgets/Tasks/types').SidebarTasksConfig;
51
- }) => import("react/jsx-runtime").JSX.Element;
52
- };
53
- export { Sidebar };
18
+ export declare const Sidebar: ({ config, children, ...navProps }: SidebarProps) => import("react/jsx-runtime").JSX.Element;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ import { SidebarWidgetsConfig, SidebarContextProps } from '../types';
2
+ import { HTMLProps, ReactNode } from 'react';
3
+ export type SidebarContentProps = HTMLProps<HTMLElement> & {
4
+ widgetsConfig: SidebarWidgetsConfig;
5
+ children?: ((props: SidebarContextProps) => ReactNode) | ReactNode;
6
+ };
7
+ export declare const SidebarContent: ({ widgetsConfig, children, ...navProps }: SidebarContentProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { SidebarContextProps } from './types';
2
+ export declare const SidebarContext: import('react').Context<SidebarContextProps>;
3
+ export declare const useSidebar: () => SidebarContextProps;
@@ -0,0 +1,3 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { SidebarProviderProps } from './types';
3
+ export declare const SidebarProvider: ({ data, jwt, children, }: PropsWithChildren<SidebarProviderProps>) => import("react/jsx-runtime").JSX.Element;
@@ -11,6 +11,11 @@ type AvatarProps = {
11
11
  /**
12
12
  * Display company main avatar / logo in the top section of the Sidebar.
13
13
  * Used as the main branding element and home navigation link.
14
+ *
15
+ * @example
16
+ * ```
17
+ * <Avatar src="/logo.png" href="/" ariaLabel="Home" alt="" />
18
+ * ```
14
19
  */
15
20
  export declare const Avatar: ({ src, href, ariaLabel, alt, }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
16
21
  export {};
@@ -0,0 +1,13 @@
1
+ import { HelpMenuConfig } from '../../types';
2
+ /**
3
+ * Help menu component that provides links to tutorials, documentation, support, and more.
4
+ *
5
+ * @example
6
+ * ```
7
+ * <HelpMenu
8
+ * contactSupport={{ onClick: handleContactSupport }}
9
+ * keyboardShortcuts={{ onClick: handleShowShortcuts, label: '⌘K' }}
10
+ * />
11
+ * ```
12
+ */
13
+ export declare const HelpMenu: ({ contactSupport, keyboardShortcuts }: HelpMenuConfig) => import("react/jsx-runtime").JSX.Element;
@@ -1,8 +1,9 @@
1
1
  import { SvgIconProps } from '@lokalise/louis';
2
- import { FC, PropsWithChildren } from 'react';
2
+ import { ButtonHTMLAttributes, FC, PropsWithChildren } from 'react';
3
3
  type MenuProps = PropsWithChildren<{
4
4
  /** Icon component from @lokalise/louis to display in the menu button */
5
5
  icon: FC<SvgIconProps>;
6
+ buttonProps?: Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'type'>;
6
7
  }>;
7
8
  /**
8
9
  * A dropdown menu component that displays an icon button which reveals a menu list when clicked.
@@ -20,5 +21,5 @@ type MenuProps = PropsWithChildren<{
20
21
  * </Menu>
21
22
  * ```
22
23
  */
23
- export declare const Menu: ({ children, icon: Icon }: MenuProps) => import("react/jsx-runtime").JSX.Element;
24
+ export declare const Menu: ({ children, icon: Icon, buttonProps }: MenuProps) => import("react/jsx-runtime").JSX.Element;
24
25
  export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A menu item component for navigating to the billing section.
3
+ * Checks the user's permissions using the Sidebar context and renders
4
+ * nothing if the user does not have access.
5
+ *
6
+ * @example
7
+ * ```
8
+ * <BillingMenuItem />
9
+ * ```
10
+ *
11
+ * @note This component must be used within a Sidebar Context.
12
+ */
13
+ export declare const BillingMenuItem: () => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,17 @@
1
+ type CreateNewTeamProps = {
2
+ onCreateTeam: () => void;
3
+ };
4
+ /**
5
+ * A menu item component for creating a new team.
6
+ * Checks the user's permissions using the Sidebar context and renders
7
+ * nothing if the user does not have access.
8
+ *
9
+ * @example
10
+ * ```
11
+ * <CreateNewTeam onCreateTeam={handleCreateTeam} />
12
+ * ```
13
+ *
14
+ * @note This component must be used within a Sidebar Context.
15
+ */
16
+ export declare const CreateNewTeam: ({ onCreateTeam }: CreateNewTeamProps) => import("react/jsx-runtime").JSX.Element | null;
17
+ export {};
@@ -0,0 +1,17 @@
1
+ type CreateNewTeamPlaceholderProps = {
2
+ onClick: () => void;
3
+ };
4
+ /**
5
+ * A placeholder menu item for creating a new team.
6
+ * Checks the user's permissions using the Sidebar context and renders
7
+ * nothing if the user does not have access.
8
+ *
9
+ * @example
10
+ * ```
11
+ * <CreateNewTeamPlaceholder onClick={handleCreateTeam} />
12
+ * ```
13
+ *
14
+ * @note This component must be used within a Sidebar Context.
15
+ */
16
+ export declare const CreateNewTeamPlaceholder: ({ onClick }: CreateNewTeamPlaceholderProps) => import("react/jsx-runtime").JSX.Element | null;
17
+ export {};
@@ -0,0 +1,18 @@
1
+ type DarkModeToggleProps = {
2
+ onToggle: () => void;
3
+ isDarkMode: boolean;
4
+ };
5
+ /**
6
+ * A menu item component for toggling dark mode.
7
+ * Displays a switch and label, and calls the provided onToggle handler when clicked.
8
+ *
9
+ * @example
10
+ * ```
11
+ * <DarkModeToggle
12
+ * isDarkMode={isDarkMode}
13
+ * onToggle={handleToggleDarkMode}
14
+ * />
15
+ * ```
16
+ */
17
+ export declare const DarkModeToggle: ({ onToggle, isDarkMode }: DarkModeToggleProps) => import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -1,30 +1,17 @@
1
- import { ProfileMenuContentProps } from './ProfileMenuContent';
2
- import { SidebarProfileMenuConfig } from './types';
3
- type ProfileMenuProps = {
4
- /** Configuration object containing team and user settings */
5
- config: SidebarProfileMenuConfig;
6
- /** Render function for the menu content */
7
- children: ProfileMenuContentProps['children'];
8
- };
1
+ import { ProfileMenuConfig } from '../../types';
9
2
  /**
10
- * A contextual menu component that provides team management functionality.
11
- * It manages team switching, profile settings, billing options, and upgrade prompts.
12
- *
13
- * The component uses a render prop pattern to provide context values to its children,
14
- * allowing flexible composition of menu items based on user permissions and team status.
3
+ * The main profile menu component, displaying team and user actions.
4
+ * Renders optional menu items based on the provided config and user permissions.
15
5
  *
16
6
  * @example
17
- * ```tsx
18
- * <ProfileMenu config={profileMenuConfig}>
19
- * {({ allowTeamCreation, showBillingButton }) => (
20
- * <>
21
- * <TeamSwitch onSwitchTeam={handleTeamSwitch} />
22
- * {allowTeamCreation && <MenuItem>Create new team</MenuItem>}
23
- * {showBillingButton && <MenuItem href="/billing">Billing</MenuItem>}
24
- * </>
25
- * )}
26
- * </ProfileMenu>
27
7
  * ```
8
+ * <ProfileMenu config={...} />
9
+ * ```
10
+ *
11
+ * @note This component must be used within a Sidebar Context.
28
12
  */
29
- export declare const ProfileMenu: ({ config, children }: ProfileMenuProps) => import("react/jsx-runtime").JSX.Element;
13
+ type ProfileMenuProps = {
14
+ config: ProfileMenuConfig;
15
+ };
16
+ export declare const ProfileMenu: ({ config }: ProfileMenuProps) => import("react/jsx-runtime").JSX.Element;
30
17
  export {};
@@ -2,14 +2,12 @@ import { StoryObj } from '@storybook/react';
2
2
  import { ProfileMenu } from './ProfileMenu';
3
3
  declare const meta: {
4
4
  title: string;
5
- component: ({ config, children }: {
6
- config: import('./types').SidebarProfileMenuConfig;
7
- children: import('./ProfileMenuContent').ProfileMenuContentProps["children"];
5
+ component: ({ config }: {
6
+ config: import('../../types').ProfileMenuConfig;
8
7
  }) => import("react/jsx-runtime").JSX.Element;
9
8
  tags: string[];
10
9
  decorators: ((Story: import('@storybook/core/csf').PartialStoryFn<import('@storybook/react').ReactRenderer, {
11
- config: import('./types').SidebarProfileMenuConfig;
12
- children: import('./ProfileMenuContent').ProfileMenuContentProps["children"];
10
+ config: import('../../types').ProfileMenuConfig;
13
11
  }>) => import("react/jsx-runtime").JSX.Element)[];
14
12
  parameters: {
15
13
  layout: string;
@@ -1,42 +1,17 @@
1
- type ProfileSettingsMenuItemProps = {
2
- /** URL to the profile settings page */
3
- href: string;
4
- /** User's email address to display below "Profile Settings" */
5
- userEmail: string;
6
- /** Optional callback function for tracking or additional actions */
7
- onClick?: () => void;
8
- /** Whether to hide the divider that appears below this menu item */
9
- hideBottomDivider?: boolean;
10
- };
11
1
  /**
12
- * A menu item component that provides access to profile settings.
13
- *
14
- * Features:
15
- * - Displays "Profile Settings" with the user's email address below
16
- * - Conditionally renders based on team status
17
- * - Includes an optional divider below the item
18
- * - Will not render if:
19
- * - Team is suspended
20
- * - Team's trial period has ended
2
+ * A menu item component for navigating to the profile settings page.
3
+ * Checks the user's permissions using the Sidebar context and renders
4
+ * nothing if the user does not have access.
21
5
  *
22
6
  * @example
23
- * ```tsx
24
- * <ProfileSettingsMenuItem
25
- * href="/settings/profile"
26
- * userEmail="user@example.com"
27
- * onClick={() => trackSettingsClick()}
28
- * />
29
- *
30
- * // Without bottom divider
31
- * <ProfileSettingsMenuItem
32
- * href="/settings/profile"
33
- * userEmail="user@example.com"
34
- * hideBottomDivider
35
- * />
7
+ * ```
8
+ * <ProfileSettingsMenuItem onClick={() => { }} />
36
9
  * ```
37
10
  *
38
- * @note This component must be used within a ProfileMenu component
39
- * as it requires access to the ProfileMenu context for team status information.
11
+ * @note This component must be used within a Sidebar Context.
40
12
  */
41
- export declare const ProfileSettingsMenuItem: ({ href, onClick, userEmail, hideBottomDivider, }: ProfileSettingsMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
13
+ type ProfileSettingsMenuItem = {
14
+ onClick?: () => void;
15
+ };
16
+ export declare const ProfileSettingsMenuItem: ({ onClick }: ProfileSettingsMenuItem) => import("react/jsx-runtime").JSX.Element | null;
42
17
  export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A menu item component for navigating to the provider dashboard.
3
+ * It checks the current user's permissions using the Sidebar context
4
+ * and renders nothing if the user does not have access.
5
+ *
6
+ * @example
7
+ * ```
8
+ * <ProviderMenuItem />
9
+ * ```
10
+ *
11
+ * @note This component must be used within a Sidebar Context.
12
+ */
13
+ export declare const ProviderMenuItem: () => import("react/jsx-runtime").JSX.Element | null;
@@ -28,9 +28,7 @@ type TeamMenuItemProps = {
28
28
  * />
29
29
  * ```
30
30
  *
31
- * @note This component must be used within a ProfileMenu component
32
- * as it requires access to the ProfileMenu context for current team
33
- * and plan information.
31
+ * @note This component must be used within a Sidebar Context.
34
32
  */
35
33
  export declare const TeamMenuItem: ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
36
34
  export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A menu item component for navigating to the team settings page.
3
+ * It checks the current user's permissions using the Sidebar context
4
+ * and renders nothing if the user does not have access.
5
+ *
6
+ * @example
7
+ * ```
8
+ * <TeamSettingsMenuItem />
9
+ * ```
10
+ *
11
+ * @note This component must be used within a Sidebar Context.
12
+ */
13
+ export declare const TeamSettingsMenuItem: () => import("react/jsx-runtime").JSX.Element | null;
@@ -1,14 +1,10 @@
1
1
  import { SidebarTeam } from '../../../types';
2
- type TeamSwitchProps = {
3
- /** Callback function triggered when a user selects a different team */
4
- onSwitchTeam: (team: SidebarTeam) => void;
5
- };
6
2
  /**
7
3
  * A component that displays a list of available teams for switching.
8
4
  * It automatically excludes the current team from the list and renders
9
5
  * nothing if there are no other teams available.
10
6
  *
11
- * Uses the ProfileMenu context to access the list of other teams and
7
+ * Uses the Sidebar context to access the list of other teams and
12
8
  * renders each team as a TeamMenuItem with click functionality.
13
9
  *
14
10
  * @example
@@ -21,8 +17,10 @@ type TeamSwitchProps = {
21
17
  * />
22
18
  * ```
23
19
  *
24
- * @note This component must be used within a ProfileMenu component
25
- * as it requires access to the ProfileMenu context.
20
+ * @note This component must be used within a Sidebar Context
26
21
  */
22
+ type TeamSwitchProps = {
23
+ onSwitchTeam: (team: SidebarTeam) => void;
24
+ };
27
25
  export declare const TeamSwitch: ({ onSwitchTeam }: TeamSwitchProps) => import("react/jsx-runtime").JSX.Element | null;
28
26
  export {};
@@ -1,7 +1,3 @@
1
- type UpgradeMenuItemProps = {
2
- /** URL to the upgrade page or pricing options */
3
- upgradeOptionHref: string;
4
- };
5
1
  /**
6
2
  * A menu item component that displays upgrade call-to-action information.
7
3
  * Only renders when upgrade options should be shown (determined by context).
@@ -15,12 +11,13 @@ type UpgradeMenuItemProps = {
15
11
  *
16
12
  * @example
17
13
  * ```tsx
18
- * <UpgradeMenuItem upgradeOptionHref="/pricing" />
14
+ * <UpgradeMenuItem href="/pricing" />
19
15
  * ```
20
16
  *
21
- * @note This component must be used within a ProfileMenu component
22
- * as it requires access to the ProfileMenu context for plan information
23
- * and visibility control.
17
+ * @note This component must be used within a Sidebar Context
24
18
  */
25
- export declare const UpgradeMenuItem: ({ upgradeOptionHref }: UpgradeMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
19
+ type UpgradeMenuItemProps = {
20
+ href: string;
21
+ };
22
+ export declare const UpgradeMenuItem: ({ href }: UpgradeMenuItemProps) => import("react/jsx-runtime").JSX.Element | null;
26
23
  export {};
@@ -14,3 +14,7 @@ export declare const getTaskLanguages: (langs: SidebarTaskLanguage[]) => {
14
14
  base_words_done: number;
15
15
  }[];
16
16
  export declare const isLanguageProgressCompleted: (task: SidebarTask, language: SidebarTaskLanguage) => boolean;
17
+ export declare const splitFileName: (fileName: string) => {
18
+ name: string;
19
+ extension: string;
20
+ };
@@ -0,0 +1 @@
1
+ export declare const useSidebar: () => import('../types').SidebarContextProps;
@@ -0,0 +1,5 @@
1
+ import { SidebarDataItem } from '../types';
2
+ export declare const useSidebarDataLoader: <T, A = void>(callback: (args: A) => Promise<T | null>) => {
3
+ data: SidebarDataItem<T>;
4
+ loadData: (args: A) => Promise<T | null>;
5
+ };
@@ -1,4 +1,70 @@
1
+ import { JwtTokenPayload } from '../../features/auth/core/types/jwtTokenPayload';
1
2
  import { TypesFromMap } from '../../utils/node.ts';
3
+ import { ReactNode } from 'react';
4
+ type AvatarWidgetConfig = {
5
+ src: string;
6
+ href: string;
7
+ ariaLabel?: string;
8
+ alt?: string;
9
+ };
10
+ export type HelpMenuConfig = {
11
+ contactSupport?: {
12
+ onClick: () => void;
13
+ };
14
+ keyboardShortcuts?: {
15
+ label: ReactNode;
16
+ onClick: () => void;
17
+ };
18
+ };
19
+ export type ProfileMenuConfig = {
20
+ upgradeMenuItem: {
21
+ href: string;
22
+ };
23
+ teamSwitch?: {
24
+ onSwitchTeam: (team: SidebarTeam) => void;
25
+ };
26
+ createTeam?: {
27
+ onCreateTeam: () => void;
28
+ };
29
+ createTeamPlaceholder?: {
30
+ onClick: () => void;
31
+ };
32
+ profileSettings?: {
33
+ onClick: () => void;
34
+ };
35
+ darkModeToggle?: {
36
+ onToggle: () => void;
37
+ isDarkMode: boolean;
38
+ };
39
+ };
40
+ export type SidebarWidgetsConfig = {
41
+ avatar: AvatarWidgetConfig;
42
+ profileMenu: ProfileMenuConfig;
43
+ helpMenu?: HelpMenuConfig;
44
+ };
45
+ export type SidebarDataItem<T> = {
46
+ loading: boolean;
47
+ error: boolean;
48
+ result: T | null;
49
+ };
50
+ type SidebarData = {
51
+ userTeams: SidebarDataItem<SidebarTeam[]>;
52
+ currentTeam: SidebarDataItem<SidebarTeamExtended>;
53
+ otherTeams: SidebarDataItem<SidebarTeam[]>;
54
+ };
55
+ export type SidebarConfig = {
56
+ widgets: SidebarWidgetsConfig;
57
+ jwt: SidebarDataItem<JwtTokenPayload>;
58
+ data: Omit<SidebarData, 'otherTeams'>;
59
+ };
60
+ export type SidebarProviderProps = {
61
+ data: SidebarConfig['data'];
62
+ jwt: SidebarDataItem<JwtTokenPayload>;
63
+ };
64
+ export type SidebarContextProps = {
65
+ data: SidebarData;
66
+ jwt: SidebarDataItem<JwtTokenPayload>;
67
+ };
2
68
  export declare const SidebarTeamRoles: {
3
69
  readonly member: "member";
4
70
  readonly admin: "admin";
@@ -12,3 +78,7 @@ export type SidebarTeam = {
12
78
  role: SidebarTeamRole;
13
79
  logoUrl: string;
14
80
  };
81
+ export type SidebarTeamExtended = SidebarTeam & {
82
+ trialDaysLeft: number;
83
+ };
84
+ export {};
@@ -12,34 +12,40 @@ export declare const JWT_TOKEN_PAYLOAD_SCHEMA: z.ZodObject<{
12
12
  planName: z.ZodString;
13
13
  isProviderAlpha: z.ZodBoolean;
14
14
  isFullyAuthenticated: z.ZodBoolean;
15
+ isEndOfTrialActive: z.ZodBoolean;
16
+ isTeamSuspended: z.ZodBoolean;
15
17
  exp: z.ZodNumber;
16
18
  }, "strip", z.ZodTypeAny, {
17
- isProviderAlpha: boolean;
18
- isFullyAuthenticated: boolean;
19
- planId: number;
20
- userTeamRole: "member" | "admin" | "biller" | "owner";
21
- userEmail: string;
22
19
  userId: number;
23
20
  userUuid: string;
24
21
  teamId: number;
25
22
  teamUuid: string;
23
+ userTeamRole: "owner" | "admin" | "biller" | "member";
24
+ userEmail: string;
26
25
  userName: string;
27
26
  userCurrentTeamId: number;
27
+ planId: number;
28
28
  planName: string;
29
- exp: number;
30
- }, {
31
29
  isProviderAlpha: boolean;
32
30
  isFullyAuthenticated: boolean;
33
- planId: number;
34
- userTeamRole: "member" | "admin" | "biller" | "owner";
35
- userEmail: string;
31
+ isEndOfTrialActive: boolean;
32
+ isTeamSuspended: boolean;
33
+ exp: number;
34
+ }, {
36
35
  userId: number;
37
36
  userUuid: string;
38
37
  teamId: number;
39
38
  teamUuid: string;
39
+ userTeamRole: "owner" | "admin" | "biller" | "member";
40
+ userEmail: string;
40
41
  userName: string;
41
42
  userCurrentTeamId: number;
43
+ planId: number;
42
44
  planName: string;
45
+ isProviderAlpha: boolean;
46
+ isFullyAuthenticated: boolean;
47
+ isEndOfTrialActive: boolean;
48
+ isTeamSuspended: boolean;
43
49
  exp: number;
44
50
  }>;
45
51
  export type JwtTokenPayload = z.infer<typeof JWT_TOKEN_PAYLOAD_SCHEMA>;