@lokalise/harmony 2.0.5 → 2.0.6

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 (329) hide show
  1. package/dist/harmony102.cjs +1 -1
  2. package/dist/harmony102.mjs +1 -1
  3. package/dist/harmony103.cjs +7 -7
  4. package/dist/harmony103.mjs +7 -7
  5. package/dist/harmony105.cjs +2 -2
  6. package/dist/harmony105.mjs +2 -2
  7. package/dist/harmony106.cjs +2 -165
  8. package/dist/harmony106.cjs.map +1 -1
  9. package/dist/harmony106.mjs +3 -166
  10. package/dist/harmony106.mjs.map +1 -1
  11. package/dist/harmony107.cjs +16 -42
  12. package/dist/harmony107.cjs.map +1 -1
  13. package/dist/harmony107.mjs +16 -42
  14. package/dist/harmony107.mjs.map +1 -1
  15. package/dist/harmony108.cjs +75 -13
  16. package/dist/harmony108.cjs.map +1 -1
  17. package/dist/harmony108.mjs +75 -13
  18. package/dist/harmony108.mjs.map +1 -1
  19. package/dist/harmony109.cjs +12 -11
  20. package/dist/harmony109.cjs.map +1 -1
  21. package/dist/harmony109.mjs +12 -11
  22. package/dist/harmony109.mjs.map +1 -1
  23. package/dist/harmony110.cjs +35 -22
  24. package/dist/harmony110.cjs.map +1 -1
  25. package/dist/harmony110.mjs +34 -21
  26. package/dist/harmony110.mjs.map +1 -1
  27. package/dist/harmony111.cjs +9 -3
  28. package/dist/harmony111.cjs.map +1 -1
  29. package/dist/harmony111.mjs +9 -3
  30. package/dist/harmony111.mjs.map +1 -1
  31. package/dist/harmony112.cjs +41 -12
  32. package/dist/harmony112.cjs.map +1 -1
  33. package/dist/harmony112.mjs +43 -14
  34. package/dist/harmony112.mjs.map +1 -1
  35. package/dist/harmony113.cjs +9 -76
  36. package/dist/harmony113.cjs.map +1 -1
  37. package/dist/harmony113.mjs +8 -75
  38. package/dist/harmony113.mjs.map +1 -1
  39. package/dist/harmony114.cjs +10 -10
  40. package/dist/harmony114.cjs.map +1 -1
  41. package/dist/harmony114.mjs +10 -10
  42. package/dist/harmony114.mjs.map +1 -1
  43. package/dist/harmony115.cjs +13 -35
  44. package/dist/harmony115.cjs.map +1 -1
  45. package/dist/harmony115.mjs +12 -34
  46. package/dist/harmony115.mjs.map +1 -1
  47. package/dist/harmony116.cjs +10 -8
  48. package/dist/harmony116.cjs.map +1 -1
  49. package/dist/harmony116.mjs +11 -9
  50. package/dist/harmony116.mjs.map +1 -1
  51. package/dist/harmony117.cjs +21 -47
  52. package/dist/harmony117.cjs.map +1 -1
  53. package/dist/harmony117.mjs +20 -46
  54. package/dist/harmony117.mjs.map +1 -1
  55. package/dist/harmony118.cjs +166 -9
  56. package/dist/harmony118.cjs.map +1 -1
  57. package/dist/harmony118.mjs +165 -8
  58. package/dist/harmony118.mjs.map +1 -1
  59. package/dist/harmony119.cjs +43 -11
  60. package/dist/harmony119.cjs.map +1 -1
  61. package/dist/harmony119.mjs +43 -11
  62. package/dist/harmony119.mjs.map +1 -1
  63. package/dist/harmony120.cjs +14 -12
  64. package/dist/harmony120.cjs.map +1 -1
  65. package/dist/harmony120.mjs +13 -11
  66. package/dist/harmony120.mjs.map +1 -1
  67. package/dist/harmony121.cjs +2 -2
  68. package/dist/harmony121.mjs +2 -2
  69. package/dist/harmony122.cjs +7 -87
  70. package/dist/harmony122.cjs.map +1 -1
  71. package/dist/harmony122.mjs +7 -87
  72. package/dist/harmony122.mjs.map +1 -1
  73. package/dist/harmony123.cjs +17 -30
  74. package/dist/harmony123.cjs.map +1 -1
  75. package/dist/harmony123.mjs +17 -30
  76. package/dist/harmony123.mjs.map +1 -1
  77. package/dist/harmony124.cjs +9 -6
  78. package/dist/harmony124.cjs.map +1 -1
  79. package/dist/harmony124.mjs +8 -5
  80. package/dist/harmony124.mjs.map +1 -1
  81. package/dist/harmony125.cjs +9 -6
  82. package/dist/harmony125.cjs.map +1 -1
  83. package/dist/harmony125.mjs +8 -5
  84. package/dist/harmony125.mjs.map +1 -1
  85. package/dist/harmony126.cjs +15 -20
  86. package/dist/harmony126.cjs.map +1 -1
  87. package/dist/harmony126.mjs +15 -20
  88. package/dist/harmony126.mjs.map +1 -1
  89. package/dist/harmony127.cjs +20 -7
  90. package/dist/harmony127.cjs.map +1 -1
  91. package/dist/harmony127.mjs +20 -7
  92. package/dist/harmony127.mjs.map +1 -1
  93. package/dist/harmony128.cjs +9 -17
  94. package/dist/harmony128.cjs.map +1 -1
  95. package/dist/harmony128.mjs +8 -16
  96. package/dist/harmony128.mjs.map +1 -1
  97. package/dist/harmony129.cjs +11 -7
  98. package/dist/harmony129.cjs.map +1 -1
  99. package/dist/harmony129.mjs +11 -7
  100. package/dist/harmony129.mjs.map +1 -1
  101. package/dist/harmony130.cjs +14 -7
  102. package/dist/harmony130.cjs.map +1 -1
  103. package/dist/harmony130.mjs +14 -7
  104. package/dist/harmony130.mjs.map +1 -1
  105. package/dist/harmony131.cjs +18 -14
  106. package/dist/harmony131.cjs.map +1 -1
  107. package/dist/harmony131.mjs +18 -14
  108. package/dist/harmony131.mjs.map +1 -1
  109. package/dist/harmony132.cjs +10 -9
  110. package/dist/harmony132.cjs.map +1 -1
  111. package/dist/harmony132.mjs +9 -8
  112. package/dist/harmony132.mjs.map +1 -1
  113. package/dist/harmony133.cjs +20 -6
  114. package/dist/harmony133.cjs.map +1 -1
  115. package/dist/harmony133.mjs +21 -7
  116. package/dist/harmony133.mjs.map +1 -1
  117. package/dist/harmony134.cjs +6 -9
  118. package/dist/harmony134.cjs.map +1 -1
  119. package/dist/harmony134.mjs +8 -11
  120. package/dist/harmony134.mjs.map +1 -1
  121. package/dist/harmony135.cjs +33 -14
  122. package/dist/harmony135.cjs.map +1 -1
  123. package/dist/harmony135.mjs +35 -16
  124. package/dist/harmony135.mjs.map +1 -1
  125. package/dist/harmony136.cjs +9 -7
  126. package/dist/harmony136.cjs.map +1 -1
  127. package/dist/harmony136.mjs +11 -9
  128. package/dist/harmony136.mjs.map +1 -1
  129. package/dist/harmony137.cjs +14 -18
  130. package/dist/harmony137.cjs.map +1 -1
  131. package/dist/harmony137.mjs +15 -19
  132. package/dist/harmony137.mjs.map +1 -1
  133. package/dist/harmony138.cjs +31 -7
  134. package/dist/harmony138.cjs.map +1 -1
  135. package/dist/harmony138.mjs +32 -8
  136. package/dist/harmony138.mjs.map +1 -1
  137. package/dist/harmony139.cjs +21 -38
  138. package/dist/harmony139.cjs.map +1 -1
  139. package/dist/harmony139.mjs +20 -37
  140. package/dist/harmony139.mjs.map +1 -1
  141. package/dist/harmony140.cjs +18 -9
  142. package/dist/harmony140.cjs.map +1 -1
  143. package/dist/harmony140.mjs +19 -10
  144. package/dist/harmony140.mjs.map +1 -1
  145. package/dist/harmony141.cjs +6 -22
  146. package/dist/harmony141.cjs.map +1 -1
  147. package/dist/harmony141.mjs +5 -21
  148. package/dist/harmony141.mjs.map +1 -1
  149. package/dist/harmony142.cjs +15 -36
  150. package/dist/harmony142.cjs.map +1 -1
  151. package/dist/harmony142.mjs +14 -35
  152. package/dist/harmony142.mjs.map +1 -1
  153. package/dist/harmony143.cjs +87 -21
  154. package/dist/harmony143.cjs.map +1 -1
  155. package/dist/harmony143.mjs +86 -20
  156. package/dist/harmony143.mjs.map +1 -1
  157. package/dist/harmony144.cjs +30 -21
  158. package/dist/harmony144.cjs.map +1 -1
  159. package/dist/harmony144.mjs +30 -21
  160. package/dist/harmony144.mjs.map +1 -1
  161. package/dist/harmony145.cjs +5 -6
  162. package/dist/harmony145.cjs.map +1 -1
  163. package/dist/harmony145.mjs +5 -6
  164. package/dist/harmony146.cjs +5 -15
  165. package/dist/harmony146.cjs.map +1 -1
  166. package/dist/harmony146.mjs +5 -15
  167. package/dist/harmony146.mjs.map +1 -1
  168. package/dist/harmony147.cjs +3 -10
  169. package/dist/harmony147.cjs.map +1 -1
  170. package/dist/harmony147.mjs +3 -10
  171. package/dist/harmony147.mjs.map +1 -1
  172. package/dist/harmony148.cjs +3 -96
  173. package/dist/harmony148.cjs.map +1 -1
  174. package/dist/harmony148.mjs +3 -96
  175. package/dist/harmony148.mjs.map +1 -1
  176. package/dist/harmony149.cjs +3 -13
  177. package/dist/harmony149.cjs.map +1 -1
  178. package/dist/harmony149.mjs +3 -13
  179. package/dist/harmony149.mjs.map +1 -1
  180. package/dist/harmony150.cjs +14 -14
  181. package/dist/harmony150.cjs.map +1 -1
  182. package/dist/harmony150.mjs +14 -14
  183. package/dist/harmony150.mjs.map +1 -1
  184. package/dist/harmony151.cjs +14 -36
  185. package/dist/harmony151.cjs.map +1 -1
  186. package/dist/harmony151.mjs +14 -36
  187. package/dist/harmony151.mjs.map +1 -1
  188. package/dist/harmony152.cjs +3 -28
  189. package/dist/harmony152.cjs.map +1 -1
  190. package/dist/harmony152.mjs +3 -28
  191. package/dist/harmony152.mjs.map +1 -1
  192. package/dist/harmony153.cjs +96 -3
  193. package/dist/harmony153.cjs.map +1 -1
  194. package/dist/harmony153.mjs +96 -3
  195. package/dist/harmony153.mjs.map +1 -1
  196. package/dist/harmony154.cjs +13 -3
  197. package/dist/harmony154.cjs.map +1 -1
  198. package/dist/harmony154.mjs +13 -3
  199. package/dist/harmony154.mjs.map +1 -1
  200. package/dist/harmony155.cjs +14 -3
  201. package/dist/harmony155.cjs.map +1 -1
  202. package/dist/harmony155.mjs +14 -3
  203. package/dist/harmony155.mjs.map +1 -1
  204. package/dist/harmony156.cjs +36 -14
  205. package/dist/harmony156.cjs.map +1 -1
  206. package/dist/harmony156.mjs +36 -14
  207. package/dist/harmony156.mjs.map +1 -1
  208. package/dist/harmony157.cjs +28 -14
  209. package/dist/harmony157.cjs.map +1 -1
  210. package/dist/harmony157.mjs +28 -14
  211. package/dist/harmony157.mjs.map +1 -1
  212. package/dist/harmony158.cjs +10 -4
  213. package/dist/harmony158.cjs.map +1 -1
  214. package/dist/harmony158.mjs +9 -3
  215. package/dist/harmony158.mjs.map +1 -1
  216. package/dist/harmony159.cjs +7 -14
  217. package/dist/harmony159.cjs.map +1 -1
  218. package/dist/harmony159.mjs +6 -13
  219. package/dist/harmony159.mjs.map +1 -1
  220. package/dist/harmony160.cjs +10 -16
  221. package/dist/harmony160.cjs.map +1 -1
  222. package/dist/harmony160.mjs +9 -15
  223. package/dist/harmony160.mjs.map +1 -1
  224. package/dist/harmony161.cjs +25 -17
  225. package/dist/harmony161.cjs.map +1 -1
  226. package/dist/harmony161.mjs +24 -16
  227. package/dist/harmony161.mjs.map +1 -1
  228. package/dist/harmony162.cjs +3 -6
  229. package/dist/harmony162.cjs.map +1 -1
  230. package/dist/harmony162.mjs +3 -6
  231. package/dist/harmony162.mjs.map +1 -1
  232. package/dist/harmony163.cjs +9 -3
  233. package/dist/harmony163.cjs.map +1 -1
  234. package/dist/harmony163.mjs +9 -3
  235. package/dist/harmony163.mjs.map +1 -1
  236. package/dist/harmony164.cjs +3 -6
  237. package/dist/harmony164.cjs.map +1 -1
  238. package/dist/harmony164.mjs +3 -6
  239. package/dist/harmony164.mjs.map +1 -1
  240. package/dist/harmony165.cjs +10 -24
  241. package/dist/harmony165.cjs.map +1 -1
  242. package/dist/harmony165.mjs +9 -23
  243. package/dist/harmony165.mjs.map +1 -1
  244. package/dist/harmony166.cjs +32 -6
  245. package/dist/harmony166.cjs.map +1 -1
  246. package/dist/harmony166.mjs +31 -5
  247. package/dist/harmony166.mjs.map +1 -1
  248. package/dist/harmony167.cjs +14 -13
  249. package/dist/harmony167.cjs.map +1 -1
  250. package/dist/harmony167.mjs +13 -12
  251. package/dist/harmony167.mjs.map +1 -1
  252. package/dist/harmony168.cjs +16 -7
  253. package/dist/harmony168.cjs.map +1 -1
  254. package/dist/harmony168.mjs +15 -6
  255. package/dist/harmony168.mjs.map +1 -1
  256. package/dist/harmony169.cjs +14 -14
  257. package/dist/harmony169.cjs.map +1 -1
  258. package/dist/harmony169.mjs +14 -14
  259. package/dist/harmony169.mjs.map +1 -1
  260. package/dist/harmony17.cjs +1 -1
  261. package/dist/harmony17.mjs +1 -1
  262. package/dist/harmony170.cjs +10 -20
  263. package/dist/harmony170.cjs.map +1 -1
  264. package/dist/harmony170.mjs +10 -20
  265. package/dist/harmony170.mjs.map +1 -1
  266. package/dist/harmony171.cjs +14 -10
  267. package/dist/harmony171.cjs.map +1 -1
  268. package/dist/harmony171.mjs +14 -10
  269. package/dist/harmony171.mjs.map +1 -1
  270. package/dist/harmony172.cjs +20 -10
  271. package/dist/harmony172.cjs.map +1 -1
  272. package/dist/harmony172.mjs +20 -10
  273. package/dist/harmony172.mjs.map +1 -1
  274. package/dist/harmony173.cjs +12 -32
  275. package/dist/harmony173.cjs.map +1 -1
  276. package/dist/harmony173.mjs +12 -32
  277. package/dist/harmony173.mjs.map +1 -1
  278. package/dist/harmony174.cjs +4 -12
  279. package/dist/harmony174.cjs.map +1 -1
  280. package/dist/harmony174.mjs +4 -12
  281. package/dist/harmony174.mjs.map +1 -1
  282. package/dist/harmony175.cjs +5 -31
  283. package/dist/harmony175.cjs.map +1 -1
  284. package/dist/harmony175.mjs +5 -31
  285. package/dist/harmony175.mjs.map +1 -1
  286. package/dist/harmony176.cjs +11 -13
  287. package/dist/harmony176.cjs.map +1 -1
  288. package/dist/harmony176.mjs +11 -13
  289. package/dist/harmony176.mjs.map +1 -1
  290. package/dist/harmony177.cjs +31 -5
  291. package/dist/harmony177.cjs.map +1 -1
  292. package/dist/harmony177.mjs +31 -5
  293. package/dist/harmony177.mjs.map +1 -1
  294. package/dist/harmony178.cjs +14 -4
  295. package/dist/harmony178.cjs.map +1 -1
  296. package/dist/harmony178.mjs +14 -4
  297. package/dist/harmony178.mjs.map +1 -1
  298. package/dist/harmony20.cjs +1 -1
  299. package/dist/harmony20.mjs +1 -1
  300. package/dist/harmony28.cjs +1 -1
  301. package/dist/harmony28.mjs +1 -1
  302. package/dist/harmony29.cjs +1 -1
  303. package/dist/harmony29.mjs +1 -1
  304. package/dist/harmony32.cjs +1 -1
  305. package/dist/harmony32.mjs +1 -1
  306. package/dist/harmony33.cjs +1 -1
  307. package/dist/harmony33.mjs +1 -1
  308. package/dist/harmony34.cjs +1 -1
  309. package/dist/harmony34.mjs +1 -1
  310. package/dist/harmony39.cjs +1 -1
  311. package/dist/harmony39.mjs +1 -1
  312. package/dist/harmony40.cjs +1 -1
  313. package/dist/harmony40.mjs +1 -1
  314. package/dist/harmony41.cjs +1 -1
  315. package/dist/harmony41.mjs +1 -1
  316. package/dist/harmony42.cjs +2 -2
  317. package/dist/harmony42.mjs +2 -2
  318. package/dist/harmony43.cjs +2 -2
  319. package/dist/harmony43.mjs +2 -2
  320. package/dist/harmony44.cjs +1 -1
  321. package/dist/harmony44.mjs +1 -1
  322. package/dist/harmony45.cjs.map +1 -1
  323. package/dist/harmony45.mjs.map +1 -1
  324. package/dist/harmony96.cjs +2 -2
  325. package/dist/harmony96.mjs +2 -2
  326. package/dist/harmony98.cjs +2 -2
  327. package/dist/harmony98.mjs +2 -2
  328. package/dist/types/src/features/permissions/types.d.ts +3 -1
  329. package/package.json +1 -1
@@ -1,29 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const useSidebar = require("./harmony114.cjs");
5
- const louis = require("@lokalise/louis");
6
- const permissions = require("./harmony115.cjs");
7
- const ProfileSettingsMenuItem_module = require("./harmony164.cjs");
8
- const ProfileSettingsMenuItem = ({ onClick }) => {
9
- const { jwt } = useSidebar.useSidebar();
10
- if (!permissions.canAccessProfileSettings(jwt)) {
4
+ const useSidebar = require("./harmony109.cjs");
5
+ const TeamMenuItem = require("./harmony135.cjs");
6
+ const TeamSwitch_module = require("./harmony162.cjs");
7
+ const TeamSwitch = ({ onSwitchTeam }) => {
8
+ var _a, _b;
9
+ const {
10
+ data: { otherTeams }
11
+ } = useSidebar.useSidebar();
12
+ if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
11
13
  return null;
12
14
  }
13
15
  return /* @__PURE__ */ jsxRuntime.jsx(
14
- louis.MenuItem,
16
+ "div",
15
17
  {
16
- "data-testid": "sidebar-profile-settings-menu-item",
17
- href: "/profile",
18
- onClick: () => {
19
- onClick == null ? void 0 : onClick();
20
- },
21
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-col ${ProfileSettingsMenuItem_module.default.container}`, children: [
22
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: "Profile Settings" }),
23
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: ProfileSettingsMenuItem_module.default.profileEmail, children: jwt == null ? void 0 : jwt.userEmail })
24
- ] })
18
+ "data-testid": "sidebar-team-switch",
19
+ className: `flex-col items-stretch ${TeamSwitch_module.default.teamsContainer}`,
20
+ children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
25
21
  }
26
22
  );
27
23
  };
28
- exports.ProfileSettingsMenuItem = ProfileSettingsMenuItem;
24
+ exports.TeamSwitch = TeamSwitch;
29
25
  //# sourceMappingURL=harmony137.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony137.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProfileSettings } from '@utils/user/permissions'\nimport styles from './ProfileSettingsMenuItem.module.css'\n\n/**\n * A menu item component for navigating to the profile settings page.\n * Checks the user's permissions using the Sidebar context and renders\n * nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProfileSettingsMenuItem onClick={() => { }} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileSettingsMenuItem = {\n\tonClick?: () => void\n}\n\nexport const ProfileSettingsMenuItem = ({ onClick }: ProfileSettingsMenuItem) => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProfileSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-profile-settings-menu-item\"\n\t\t\thref=\"/profile\"\n\t\t\tonClick={() => {\n\t\t\t\tonClick?.()\n\t\t\t}}\n\t\t>\n\t\t\t<div className={`flex-col ${styles.container}`}>\n\t\t\t\t<span>Profile Settings</span>\n\t\t\t\t<span className={styles.profileEmail}>{jwt?.userEmail}</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":["useSidebar","canAccessProfileSettings","jsx","MenuItem","styles"],"mappings":";;;;;;;AAsBO,MAAM,0BAA0B,CAAC,EAAE,cAAuC;AAC1E,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,yBAAyB,GAAG,GAAG;AAC5B,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAS,MAAM;AACJ;AAAA,MACX;AAAA,MAEA,0CAAC,OAAI,EAAA,WAAW,YAAYC,uCAAO,SAAS,IAC3C,UAAA;AAAA,QAAAF,2BAAAA,IAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,uCACrB,QAAK,EAAA,WAAWE,+BAAAA,QAAO,cAAe,qCAAK,UAAU,CAAA;AAAA,MAAA,EACvD,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
1
+ {"version":3,"file":"harmony137.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useSidebar","jsx","styles","TeamMenuItem"],"mappings":";;;;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChBA,sBAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0BC,kBAAA,QAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvBD,2BAAAA,IAAAE,aAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;;"}
@@ -1,29 +1,25 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useSidebar } from "./harmony114.mjs";
3
- import { MenuItem } from "@lokalise/louis";
4
- import { canAccessProfileSettings } from "./harmony115.mjs";
5
- import styles from "./harmony164.mjs";
6
- const ProfileSettingsMenuItem = ({ onClick }) => {
7
- const { jwt } = useSidebar();
8
- if (!canAccessProfileSettings(jwt)) {
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony109.mjs";
3
+ import { TeamMenuItem } from "./harmony135.mjs";
4
+ import styles from "./harmony162.mjs";
5
+ const TeamSwitch = ({ onSwitchTeam }) => {
6
+ var _a, _b;
7
+ const {
8
+ data: { otherTeams }
9
+ } = useSidebar();
10
+ if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
9
11
  return null;
10
12
  }
11
13
  return /* @__PURE__ */ jsx(
12
- MenuItem,
14
+ "div",
13
15
  {
14
- "data-testid": "sidebar-profile-settings-menu-item",
15
- href: "/profile",
16
- onClick: () => {
17
- onClick == null ? void 0 : onClick();
18
- },
19
- children: /* @__PURE__ */ jsxs("div", { className: `flex-col ${styles.container}`, children: [
20
- /* @__PURE__ */ jsx("span", { children: "Profile Settings" }),
21
- /* @__PURE__ */ jsx("span", { className: styles.profileEmail, children: jwt == null ? void 0 : jwt.userEmail })
22
- ] })
16
+ "data-testid": "sidebar-team-switch",
17
+ className: `flex-col items-stretch ${styles.teamsContainer}`,
18
+ children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsx(TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
23
19
  }
24
20
  );
25
21
  };
26
22
  export {
27
- ProfileSettingsMenuItem
23
+ TeamSwitch
28
24
  };
29
25
  //# sourceMappingURL=harmony137.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony137.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProfileSettingsMenuItem/ProfileSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProfileSettings } from '@utils/user/permissions'\nimport styles from './ProfileSettingsMenuItem.module.css'\n\n/**\n * A menu item component for navigating to the profile settings page.\n * Checks the user's permissions using the Sidebar context and renders\n * nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProfileSettingsMenuItem onClick={() => { }} />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\ntype ProfileSettingsMenuItem = {\n\tonClick?: () => void\n}\n\nexport const ProfileSettingsMenuItem = ({ onClick }: ProfileSettingsMenuItem) => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProfileSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-profile-settings-menu-item\"\n\t\t\thref=\"/profile\"\n\t\t\tonClick={() => {\n\t\t\t\tonClick?.()\n\t\t\t}}\n\t\t>\n\t\t\t<div className={`flex-col ${styles.container}`}>\n\t\t\t\t<span>Profile Settings</span>\n\t\t\t\t<span className={styles.profileEmail}>{jwt?.userEmail}</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAsBO,MAAM,0BAA0B,CAAC,EAAE,cAAuC;AAC1E,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,yBAAyB,GAAG,GAAG;AAC5B,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,MAAK;AAAA,MACL,SAAS,MAAM;AACJ;AAAA,MACX;AAAA,MAEA,+BAAC,OAAI,EAAA,WAAW,YAAY,OAAO,SAAS,IAC3C,UAAA;AAAA,QAAA,oBAAC,UAAK,UAAgB,mBAAA,CAAA;AAAA,4BACrB,QAAK,EAAA,WAAW,OAAO,cAAe,qCAAK,UAAU,CAAA;AAAA,MAAA,EACvD,CAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"harmony137.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChB,WAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0B,OAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvB,oBAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;"}
@@ -1,15 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const useSidebar = require("./harmony114.cjs");
4
+ const useSidebar = require("./harmony109.cjs");
5
5
  const louis = require("@lokalise/louis");
6
- const permissions = require("./harmony115.cjs");
7
- const ProviderMenuItem = () => {
8
- const { jwt } = useSidebar.useSidebar();
9
- if (!permissions.canAccessProviderDashboard(jwt)) {
6
+ const plan = require("./harmony11.cjs");
7
+ const permissions = require("./harmony110.cjs");
8
+ const UpgradeIcon = require("./harmony140.cjs");
9
+ const UpgradeMenuItem_module = require("./harmony163.cjs");
10
+ const UpgradeMenuItem = ({ href }) => {
11
+ const {
12
+ jwt,
13
+ data: { currentTeam }
14
+ } = useSidebar.useSidebar();
15
+ if (!jwt || !permissions.canUpgradePlan(jwt) || !currentTeam.result) {
10
16
  return null;
11
17
  }
12
- return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/provider", children: "Provider dashboard" });
18
+ const isOnFreePlan = plan.isFreePlan(jwt.planId);
19
+ const trialDaysLeft = currentTeam.result.trialDaysLeft;
20
+ const daysNoun = trialDaysLeft === 1 ? "day" : "days";
21
+ const ctaMessage = isOnFreePlan ? "Your team is currently on the Free plan" : `Free trial ends in ${trialDaysLeft} ${daysNoun}`;
22
+ return /* @__PURE__ */ jsxRuntime.jsxs(
23
+ louis.MenuItem,
24
+ {
25
+ "data-testid": "sidebar-upgrade-menu-item",
26
+ href,
27
+ className: `flex-col gap-1 items-start ${UpgradeMenuItem_module.default.container}`,
28
+ children: [
29
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: UpgradeMenuItem_module.default.planCta, children: ctaMessage }),
30
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: `flex-row items-center gap-1 ${UpgradeMenuItem_module.default.upgradeIconWrapper}`, children: [
31
+ /* @__PURE__ */ jsxRuntime.jsx(UpgradeIcon.UpgradeIcon, {}),
32
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: "See upgrade options" })
33
+ ] })
34
+ ]
35
+ }
36
+ );
13
37
  };
14
- exports.ProviderMenuItem = ProviderMenuItem;
38
+ exports.UpgradeMenuItem = UpgradeMenuItem;
15
39
  //# sourceMappingURL=harmony138.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony138.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProviderDashboard } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the provider dashboard.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProviderMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const ProviderMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProviderDashboard(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/provider\">Provider dashboard</MenuItem>\n}\n"],"names":["useSidebar","canAccessProviderDashboard","jsx","MenuItem"],"mappings":";;;;;;AAiBO,MAAM,mBAAmB,MAAM;AAC/B,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,2BAA2B,GAAG,GAAG;AAC9B,WAAA;AAAA,EAAA;AAGR,SAAQC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,aAAY,UAAkB,sBAAA;AACrD;;"}
1
+ {"version":3,"file":"harmony138.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { isFreePlan } from '@utils'\nimport { canUpgradePlan } from '@utils/user/permissions'\nimport { UpgradeIcon } from '../UpgradeIcon/UpgradeIcon'\nimport styles from './UpgradeMenuItem.module.css'\n\n/**\n * A menu item component that displays upgrade call-to-action information.\n * Only renders when upgrade options should be shown (determined by context).\n *\n * The component displays different messages based on the team's current plan:\n * - For free plans: \"Your team is currently on the Free plan\"\n * - For trial plans: \"Free trial ends in X days\"\n *\n * Includes an upgrade icon and \"See upgrade options\" text, styled to draw attention\n * to the upgrade opportunity.\n *\n * @example\n * ```tsx\n * <UpgradeMenuItem href=\"/pricing\" />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype UpgradeMenuItemProps = {\n\thref: string\n}\n\nexport const UpgradeMenuItem = ({ href }: UpgradeMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tif (!jwt || !canUpgradePlan(jwt) || !currentTeam.result) {\n\t\treturn null\n\t}\n\n\tconst isOnFreePlan = isFreePlan(jwt.planId)\n\n\tconst trialDaysLeft = currentTeam.result.trialDaysLeft\n\n\tconst daysNoun = trialDaysLeft === 1 ? 'day' : 'days'\n\tconst ctaMessage = isOnFreePlan\n\t\t? 'Your team is currently on the Free plan'\n\t\t: `Free trial ends in ${trialDaysLeft} ${daysNoun}`\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-upgrade-menu-item\"\n\t\t\thref={href}\n\t\t\tclassName={`flex-col gap-1 items-start ${styles.container}`}\n\t\t>\n\t\t\t<span className={styles.planCta}>{ctaMessage}</span>\n\t\t\t<div className={`flex-row items-center gap-1 ${styles.upgradeIconWrapper}`}>\n\t\t\t\t<UpgradeIcon />\n\t\t\t\t<span>See upgrade options</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":["useSidebar","canUpgradePlan","isFreePlan","jsxs","MenuItem","styles","jsx","UpgradeIcon"],"mappings":";;;;;;;;;AA8BO,MAAM,kBAAkB,CAAC,EAAE,WAAiC;AAC5D,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjBA,sBAAW;AAEX,MAAA,CAAC,OAAO,CAACC,YAAA,eAAe,GAAG,KAAK,CAAC,YAAY,QAAQ;AACjD,WAAA;AAAA,EAAA;AAGF,QAAA,eAAeC,KAAAA,WAAW,IAAI,MAAM;AAEpC,QAAA,gBAAgB,YAAY,OAAO;AAEnC,QAAA,WAAW,kBAAkB,IAAI,QAAQ;AAC/C,QAAM,aAAa,eAChB,4CACA,sBAAsB,aAAa,IAAI,QAAQ;AAGjD,SAAAC,2BAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ;AAAA,MACA,WAAW,8BAA8BC,uBAAA,QAAO,SAAS;AAAA,MAEzD,UAAA;AAAA,QAAAC,2BAAA,IAAC,QAAK,EAAA,WAAWD,uBAAO,QAAA,SAAU,UAAW,YAAA;AAAA,wCAC5C,OAAI,EAAA,WAAW,+BAA+BA,+BAAO,kBAAkB,IACvE,UAAA;AAAA,UAAAC,2BAAA,IAACC,YAAY,aAAA,EAAA;AAAA,UACbD,2BAAAA,IAAC,UAAK,UAAmB,sBAAA,CAAA;AAAA,QAAA,EAC1B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
@@ -1,15 +1,39 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useSidebar } from "./harmony114.mjs";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useSidebar } from "./harmony109.mjs";
3
3
  import { MenuItem } from "@lokalise/louis";
4
- import { canAccessProviderDashboard } from "./harmony115.mjs";
5
- const ProviderMenuItem = () => {
6
- const { jwt } = useSidebar();
7
- if (!canAccessProviderDashboard(jwt)) {
4
+ import { isFreePlan } from "./harmony11.mjs";
5
+ import { canUpgradePlan } from "./harmony110.mjs";
6
+ import { UpgradeIcon } from "./harmony140.mjs";
7
+ import styles from "./harmony163.mjs";
8
+ const UpgradeMenuItem = ({ href }) => {
9
+ const {
10
+ jwt,
11
+ data: { currentTeam }
12
+ } = useSidebar();
13
+ if (!jwt || !canUpgradePlan(jwt) || !currentTeam.result) {
8
14
  return null;
9
15
  }
10
- return /* @__PURE__ */ jsx(MenuItem, { href: "/provider", children: "Provider dashboard" });
16
+ const isOnFreePlan = isFreePlan(jwt.planId);
17
+ const trialDaysLeft = currentTeam.result.trialDaysLeft;
18
+ const daysNoun = trialDaysLeft === 1 ? "day" : "days";
19
+ const ctaMessage = isOnFreePlan ? "Your team is currently on the Free plan" : `Free trial ends in ${trialDaysLeft} ${daysNoun}`;
20
+ return /* @__PURE__ */ jsxs(
21
+ MenuItem,
22
+ {
23
+ "data-testid": "sidebar-upgrade-menu-item",
24
+ href,
25
+ className: `flex-col gap-1 items-start ${styles.container}`,
26
+ children: [
27
+ /* @__PURE__ */ jsx("span", { className: styles.planCta, children: ctaMessage }),
28
+ /* @__PURE__ */ jsxs("div", { className: `flex-row items-center gap-1 ${styles.upgradeIconWrapper}`, children: [
29
+ /* @__PURE__ */ jsx(UpgradeIcon, {}),
30
+ /* @__PURE__ */ jsx("span", { children: "See upgrade options" })
31
+ ] })
32
+ ]
33
+ }
34
+ );
11
35
  };
12
36
  export {
13
- ProviderMenuItem
37
+ UpgradeMenuItem
14
38
  };
15
39
  //# sourceMappingURL=harmony138.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony138.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/ProviderMenuItem/ProviderMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessProviderDashboard } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the provider dashboard.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <ProviderMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const ProviderMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessProviderDashboard(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/provider\">Provider dashboard</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,mBAAmB,MAAM;AAC/B,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,2BAA2B,GAAG,GAAG;AAC9B,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,aAAY,UAAkB,sBAAA;AACrD;"}
1
+ {"version":3,"file":"harmony138.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeMenuItem/UpgradeMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { isFreePlan } from '@utils'\nimport { canUpgradePlan } from '@utils/user/permissions'\nimport { UpgradeIcon } from '../UpgradeIcon/UpgradeIcon'\nimport styles from './UpgradeMenuItem.module.css'\n\n/**\n * A menu item component that displays upgrade call-to-action information.\n * Only renders when upgrade options should be shown (determined by context).\n *\n * The component displays different messages based on the team's current plan:\n * - For free plans: \"Your team is currently on the Free plan\"\n * - For trial plans: \"Free trial ends in X days\"\n *\n * Includes an upgrade icon and \"See upgrade options\" text, styled to draw attention\n * to the upgrade opportunity.\n *\n * @example\n * ```tsx\n * <UpgradeMenuItem href=\"/pricing\" />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype UpgradeMenuItemProps = {\n\thref: string\n}\n\nexport const UpgradeMenuItem = ({ href }: UpgradeMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tif (!jwt || !canUpgradePlan(jwt) || !currentTeam.result) {\n\t\treturn null\n\t}\n\n\tconst isOnFreePlan = isFreePlan(jwt.planId)\n\n\tconst trialDaysLeft = currentTeam.result.trialDaysLeft\n\n\tconst daysNoun = trialDaysLeft === 1 ? 'day' : 'days'\n\tconst ctaMessage = isOnFreePlan\n\t\t? 'Your team is currently on the Free plan'\n\t\t: `Free trial ends in ${trialDaysLeft} ${daysNoun}`\n\n\treturn (\n\t\t<MenuItem\n\t\t\tdata-testid=\"sidebar-upgrade-menu-item\"\n\t\t\thref={href}\n\t\t\tclassName={`flex-col gap-1 items-start ${styles.container}`}\n\t\t>\n\t\t\t<span className={styles.planCta}>{ctaMessage}</span>\n\t\t\t<div className={`flex-row items-center gap-1 ${styles.upgradeIconWrapper}`}>\n\t\t\t\t<UpgradeIcon />\n\t\t\t\t<span>See upgrade options</span>\n\t\t\t</div>\n\t\t</MenuItem>\n\t)\n}\n"],"names":[],"mappings":";;;;;;;AA8BO,MAAM,kBAAkB,CAAC,EAAE,WAAiC;AAC5D,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjB,WAAW;AAEX,MAAA,CAAC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC,YAAY,QAAQ;AACjD,WAAA;AAAA,EAAA;AAGF,QAAA,eAAe,WAAW,IAAI,MAAM;AAEpC,QAAA,gBAAgB,YAAY,OAAO;AAEnC,QAAA,WAAW,kBAAkB,IAAI,QAAQ;AAC/C,QAAM,aAAa,eAChB,4CACA,sBAAsB,aAAa,IAAI,QAAQ;AAGjD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ;AAAA,MACA,WAAW,8BAA8B,OAAO,SAAS;AAAA,MAEzD,UAAA;AAAA,QAAA,oBAAC,QAAK,EAAA,WAAW,OAAO,SAAU,UAAW,YAAA;AAAA,6BAC5C,OAAI,EAAA,WAAW,+BAA+B,OAAO,kBAAkB,IACvE,UAAA;AAAA,UAAA,oBAAC,aAAY,EAAA;AAAA,UACb,oBAAC,UAAK,UAAmB,sBAAA,CAAA;AAAA,QAAA,EAC1B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
@@ -1,41 +1,24 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const useSidebar = require("./harmony114.cjs");
5
- const louis = require("@lokalise/louis");
6
- const plan = require("./harmony11.cjs");
7
- const TeamMenuItem_module = require("./harmony165.cjs");
8
- const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
9
- const {
10
- jwt,
11
- data: { currentTeam }
12
- } = useSidebar.useSidebar();
13
- const contextTeam = team ?? currentTeam.result;
14
- if (!contextTeam || typeof (jwt == null ? void 0 : jwt.planId) !== "number" || !Number.isFinite(jwt.planId)) {
15
- return null;
16
- }
17
- const planId = jwt.planId;
18
- const planLabel = plan.isFreePlan(planId) ? "Free" : plan.isTrialPlan(planId) ? "Trial" : void 0;
19
- const WrapperNode = onClick ? louis.MenuItem : "div";
20
- const testId = onClick ? "sidebar-clickable-team-menu-item" : "sidebar-team-menu-item";
21
- return /* @__PURE__ */ jsxRuntime.jsxs(
22
- WrapperNode,
23
- {
24
- "data-testid": testId,
25
- className: TeamMenuItem_module.default.wrapper,
26
- ...onClick && { onClick: () => onClick(contextTeam) },
27
- children: [
28
- contextTeam.logoUrl ? /* @__PURE__ */ jsxRuntime.jsx("img", { className: TeamMenuItem_module.default.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: `${TeamMenuItem_module.default.defaultProfileImage}`, children: /* @__PURE__ */ jsxRuntime.jsx(louis.UserIcon, { size: "25px" }) }),
29
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.teamDetails, children: [
30
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: TeamMenuItem_module.default.planWrapper, children: [
31
- /* @__PURE__ */ jsxRuntime.jsx("span", { title: contextTeam.name, className: TeamMenuItem_module.default.teamName, children: contextTeam.name }),
32
- planLabel && !hidePlanLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.teamName, children: planLabel })
33
- ] }),
34
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: TeamMenuItem_module.default.membership, children: contextTeam.role })
35
- ] })
36
- ]
37
- }
38
- );
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const menuContainer = "_menuContainer_1phdw_10";
4
+ const profileButton = "_profileButton_1phdw_20";
5
+ const profileImage = "_profileImage_1phdw_33";
6
+ const profileImageHighlight = "_profileImageHighlight_1phdw_41";
7
+ const profileImageUpgradeIcon = "_profileImageUpgradeIcon_1phdw_45";
8
+ const userIconWrapper = "_userIconWrapper_1phdw_51";
9
+ const styles = {
10
+ menuContainer,
11
+ profileButton,
12
+ profileImage,
13
+ profileImageHighlight,
14
+ profileImageUpgradeIcon,
15
+ userIconWrapper
39
16
  };
40
- exports.TeamMenuItem = TeamMenuItem;
17
+ exports.default = styles;
18
+ exports.menuContainer = menuContainer;
19
+ exports.profileButton = profileButton;
20
+ exports.profileImage = profileImage;
21
+ exports.profileImageHighlight = profileImageHighlight;
22
+ exports.profileImageUpgradeIcon = profileImageUpgradeIcon;
23
+ exports.userIconWrapper = userIconWrapper;
41
24
  //# sourceMappingURL=harmony139.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony139.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst contextTeam = team ?? currentTeam.result\n\n\tif (!contextTeam || typeof jwt?.planId !== 'number' || !Number.isFinite(jwt.planId)) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\tconst testId = onClick ? 'sidebar-clickable-team-menu-item' : 'sidebar-team-menu-item'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid={testId}\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":["useSidebar","isFreePlan","isTrialPlan","MenuItem","jsxs","styles","jsx","UserIcon"],"mappings":";;;;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AAC9E,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjBA,sBAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAEpC,MAAA,CAAC,eAAe,QAAO,2BAAK,YAAW,YAAY,CAAC,OAAO,SAAS,IAAI,MAAM,GAAG;AAC7E,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,IAAI;AAEb,QAAA,YAAYC,gBAAW,MAAM,IAAI,SAASC,iBAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAUC,MAAAA,WAAW;AAEnC,QAAA,SAAS,UAAU,qCAAqC;AAG7D,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAa;AAAA,MACb,WAAWC,oBAAO,QAAA;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,yCACX,OAAI,EAAA,WAAWA,oBAAAA,QAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9EC,+BAAA,QAAA,EAAK,WAAW,GAAGD,oBAAO,QAAA,mBAAmB,IAC7C,UAACC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEAH,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,UAACD,2BAAA,KAAA,OAAA,EAAI,WAAWC,oBAAAA,QAAO,aACtB,UAAA;AAAA,YAACC,2BAAAA,IAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAWD,oBAAAA,QAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiBC,2BAAAA,IAAC,UAAK,WAAWD,4BAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,yCACC,QAAK,EAAA,WAAWA,oBAAAA,QAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;;"}
1
+ {"version":3,"file":"harmony139.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,41 +1,24 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { useSidebar } from "./harmony114.mjs";
3
- import { MenuItem, UserIcon } from "@lokalise/louis";
4
- import { isFreePlan, isTrialPlan } from "./harmony11.mjs";
5
- import styles from "./harmony165.mjs";
6
- const TeamMenuItem = ({ team, onClick, hidePlanLabel }) => {
7
- const {
8
- jwt,
9
- data: { currentTeam }
10
- } = useSidebar();
11
- const contextTeam = team ?? currentTeam.result;
12
- if (!contextTeam || typeof (jwt == null ? void 0 : jwt.planId) !== "number" || !Number.isFinite(jwt.planId)) {
13
- return null;
14
- }
15
- const planId = jwt.planId;
16
- const planLabel = isFreePlan(planId) ? "Free" : isTrialPlan(planId) ? "Trial" : void 0;
17
- const WrapperNode = onClick ? MenuItem : "div";
18
- const testId = onClick ? "sidebar-clickable-team-menu-item" : "sidebar-team-menu-item";
19
- return /* @__PURE__ */ jsxs(
20
- WrapperNode,
21
- {
22
- "data-testid": testId,
23
- className: styles.wrapper,
24
- ...onClick && { onClick: () => onClick(contextTeam) },
25
- children: [
26
- contextTeam.logoUrl ? /* @__PURE__ */ jsx("img", { className: styles.profileImage, src: contextTeam.logoUrl, alt: "Team logo" }) : /* @__PURE__ */ jsx("span", { className: `${styles.defaultProfileImage}`, children: /* @__PURE__ */ jsx(UserIcon, { size: "25px" }) }),
27
- /* @__PURE__ */ jsxs("div", { className: styles.teamDetails, children: [
28
- /* @__PURE__ */ jsxs("div", { className: styles.planWrapper, children: [
29
- /* @__PURE__ */ jsx("span", { title: contextTeam.name, className: styles.teamName, children: contextTeam.name }),
30
- planLabel && !hidePlanLabel && /* @__PURE__ */ jsx("span", { className: styles.teamName, children: planLabel })
31
- ] }),
32
- /* @__PURE__ */ jsx("span", { className: styles.membership, children: contextTeam.role })
33
- ] })
34
- ]
35
- }
36
- );
1
+ const menuContainer = "_menuContainer_1phdw_10";
2
+ const profileButton = "_profileButton_1phdw_20";
3
+ const profileImage = "_profileImage_1phdw_33";
4
+ const profileImageHighlight = "_profileImageHighlight_1phdw_41";
5
+ const profileImageUpgradeIcon = "_profileImageUpgradeIcon_1phdw_45";
6
+ const userIconWrapper = "_userIconWrapper_1phdw_51";
7
+ const styles = {
8
+ menuContainer,
9
+ profileButton,
10
+ profileImage,
11
+ profileImageHighlight,
12
+ profileImageUpgradeIcon,
13
+ userIconWrapper
37
14
  };
38
15
  export {
39
- TeamMenuItem
16
+ styles as default,
17
+ menuContainer,
18
+ profileButton,
19
+ profileImage,
20
+ profileImageHighlight,
21
+ profileImageUpgradeIcon,
22
+ userIconWrapper
40
23
  };
41
24
  //# sourceMappingURL=harmony139.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony139.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamMenuItem/TeamMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem, UserIcon } from '@lokalise/louis'\nimport { isFreePlan, isTrialPlan } from '@utils'\nimport type { SidebarTeam } from '../../../types'\nimport styles from './TeamMenuItem.module.css'\n\ntype TeamMenuItemProps = {\n\t/** Team to display. If not provided, uses the current team from context */\n\tteam?: SidebarTeam\n\t/** Callback for when the team item is clicked. If provided, renders as a clickable MenuItem */\n\tonClick?: (team: SidebarTeam) => void\n\t/** Whether to hide the plan label (Free/Trial). Useful when displaying multiple teams */\n\thidePlanLabel?: boolean\n}\n\n/**\n * A component that displays team information in a menu item format.\n * Renders team logo (or default user icon), team name, role, and plan label.\n *\n * The component can be used in two modes:\n * 1. As a static display of the current team (when no onClick handler is provided)\n * 2. As a clickable menu item for team switching (when onClick handler is provided)\n *\n * @example\n * ```tsx\n * // Static current team display\n * <TeamMenuItem />\n *\n * // Clickable team item for switching\n * <TeamMenuItem\n * team={someTeam}\n * onClick={(team) => handleTeamSwitch(team)}\n * hidePlanLabel\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamMenuItem = ({ team, onClick, hidePlanLabel }: TeamMenuItemProps) => {\n\tconst {\n\t\tjwt,\n\t\tdata: { currentTeam },\n\t} = useSidebar()\n\n\tconst contextTeam = team ?? currentTeam.result\n\n\tif (!contextTeam || typeof jwt?.planId !== 'number' || !Number.isFinite(jwt.planId)) {\n\t\treturn null\n\t}\n\n\tconst planId = jwt.planId\n\n\tconst planLabel = isFreePlan(planId) ? 'Free' : isTrialPlan(planId) ? 'Trial' : undefined\n\n\tconst WrapperNode = onClick ? MenuItem : 'div'\n\n\tconst testId = onClick ? 'sidebar-clickable-team-menu-item' : 'sidebar-team-menu-item'\n\n\treturn (\n\t\t<WrapperNode\n\t\t\tdata-testid={testId}\n\t\t\tclassName={styles.wrapper}\n\t\t\t{...(onClick && { onClick: () => onClick(contextTeam) })}\n\t\t>\n\t\t\t{contextTeam.logoUrl ? (\n\t\t\t\t<img className={styles.profileImage} src={contextTeam.logoUrl} alt=\"Team logo\" />\n\t\t\t) : (\n\t\t\t\t<span className={`${styles.defaultProfileImage}`}>\n\t\t\t\t\t<UserIcon size=\"25px\" />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<div className={styles.teamDetails}>\n\t\t\t\t<div className={styles.planWrapper}>\n\t\t\t\t\t<span title={contextTeam.name} className={styles.teamName}>\n\t\t\t\t\t\t{contextTeam.name}\n\t\t\t\t\t</span>\n\t\t\t\t\t{planLabel && !hidePlanLabel && <span className={styles.teamName}>{planLabel}</span>}\n\t\t\t\t</div>\n\t\t\t\t<span className={styles.membership}>{contextTeam.role}</span>\n\t\t\t</div>\n\t\t</WrapperNode>\n\t)\n}\n"],"names":[],"mappings":";;;;;AAuCO,MAAM,eAAe,CAAC,EAAE,MAAM,SAAS,oBAAuC;AAC9E,QAAA;AAAA,IACL;AAAA,IACA,MAAM,EAAE,YAAY;AAAA,MACjB,WAAW;AAET,QAAA,cAAc,QAAQ,YAAY;AAEpC,MAAA,CAAC,eAAe,QAAO,2BAAK,YAAW,YAAY,CAAC,OAAO,SAAS,IAAI,MAAM,GAAG;AAC7E,WAAA;AAAA,EAAA;AAGR,QAAM,SAAS,IAAI;AAEb,QAAA,YAAY,WAAW,MAAM,IAAI,SAAS,YAAY,MAAM,IAAI,UAAU;AAE1E,QAAA,cAAc,UAAU,WAAW;AAEnC,QAAA,SAAS,UAAU,qCAAqC;AAG7D,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAa;AAAA,MACb,WAAW,OAAO;AAAA,MACjB,GAAI,WAAW,EAAE,SAAS,MAAM,QAAQ,WAAW,EAAE;AAAA,MAErD,UAAA;AAAA,QAAY,YAAA,8BACX,OAAI,EAAA,WAAW,OAAO,cAAc,KAAK,YAAY,SAAS,KAAI,YAAA,CAAY,IAE9E,oBAAA,QAAA,EAAK,WAAW,GAAG,OAAO,mBAAmB,IAC7C,UAAC,oBAAA,UAAA,EAAS,MAAK,OAAA,CAAO,EACvB,CAAA;AAAA,QAEA,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,UAAC,qBAAA,OAAA,EAAI,WAAW,OAAO,aACtB,UAAA;AAAA,YAAC,oBAAA,QAAA,EAAK,OAAO,YAAY,MAAM,WAAW,OAAO,UAC/C,sBAAY,KACd,CAAA;AAAA,YACC,aAAa,CAAC,iBAAiB,oBAAC,UAAK,WAAW,OAAO,UAAW,UAAU,UAAA,CAAA;AAAA,UAAA,GAC9E;AAAA,8BACC,QAAK,EAAA,WAAW,OAAO,YAAa,sBAAY,KAAK,CAAA;AAAA,QAAA,EACvD,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACD;AAEF;"}
1
+ {"version":3,"file":"harmony139.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -1,15 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const useSidebar = require("./harmony114.cjs");
5
4
  const louis = require("@lokalise/louis");
6
- const permissions = require("./harmony115.cjs");
7
- const TeamSettingsMenuItem = () => {
8
- const { jwt } = useSidebar.useSidebar();
9
- if (!permissions.canAccessTeamSettings(jwt)) {
10
- return null;
11
- }
12
- return /* @__PURE__ */ jsxRuntime.jsx(louis.MenuItem, { href: "/team", children: "Team settings" });
5
+ const clsx = require("./harmony92.cjs");
6
+ const UpgradeIcon_module = require("./harmony164.cjs");
7
+ const UpgradeIcon = ({ className = "" }) => {
8
+ return /* @__PURE__ */ jsxRuntime.jsx(
9
+ "div",
10
+ {
11
+ "aria-label": "Upgrade Icon",
12
+ className: clsx.clsx(
13
+ UpgradeIcon_module.default.iconContainer,
14
+ "flex-row",
15
+ "items-center",
16
+ "justify-center",
17
+ className
18
+ ),
19
+ children: /* @__PURE__ */ jsxRuntime.jsx(louis.CaretUpIcon, {})
20
+ }
21
+ );
13
22
  };
14
- exports.TeamSettingsMenuItem = TeamSettingsMenuItem;
23
+ exports.UpgradeIcon = UpgradeIcon;
15
24
  //# sourceMappingURL=harmony140.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony140.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessTeamSettings } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the team settings page.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <TeamSettingsMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamSettingsMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessTeamSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team\">Team settings</MenuItem>\n}\n"],"names":["useSidebar","canAccessTeamSettings","jsx","MenuItem"],"mappings":";;;;;;AAiBO,MAAM,uBAAuB,MAAM;AACnC,QAAA,EAAE,IAAI,IAAIA,sBAAW;AAEvB,MAAA,CAACC,YAAAA,sBAAsB,GAAG,GAAG;AACzB,WAAA;AAAA,EAAA;AAGR,SAAQC,2BAAAA,IAAAC,MAAAA,UAAA,EAAS,MAAK,SAAQ,UAAa,iBAAA;AAC5C;;"}
1
+ {"version":3,"file":"harmony140.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeIcon/UpgradeIcon.tsx"],"sourcesContent":["import { CaretUpIcon } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport styles from './UpgradeIcon.module.css'\n\ntype UpgradeIconProps = {\n\tclassName?: string\n}\n\nexport const UpgradeIcon = ({ className = '' }: UpgradeIconProps) => {\n\treturn (\n\t\t<div\n\t\t\taria-label={'Upgrade Icon'}\n\t\t\tclassName={clsx(\n\t\t\t\tstyles.iconContainer,\n\t\t\t\t'flex-row',\n\t\t\t\t'items-center',\n\t\t\t\t'justify-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<CaretUpIcon />\n\t\t</div>\n\t)\n}\n"],"names":["jsx","clsx","styles","CaretUpIcon"],"mappings":";;;;;;AAQO,MAAM,cAAc,CAAC,EAAE,YAAY,SAA2B;AAEnE,SAAAA,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAWC,KAAA;AAAA,QACVC,mBAAAA,QAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MAEA,yCAACC,MAAAA,aAAY,CAAA,CAAA;AAAA,IAAA;AAAA,EACd;AAEF;;"}
@@ -1,15 +1,24 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import { useSidebar } from "./harmony114.mjs";
3
- import { MenuItem } from "@lokalise/louis";
4
- import { canAccessTeamSettings } from "./harmony115.mjs";
5
- const TeamSettingsMenuItem = () => {
6
- const { jwt } = useSidebar();
7
- if (!canAccessTeamSettings(jwt)) {
8
- return null;
9
- }
10
- return /* @__PURE__ */ jsx(MenuItem, { href: "/team", children: "Team settings" });
2
+ import { CaretUpIcon } from "@lokalise/louis";
3
+ import { clsx } from "./harmony92.mjs";
4
+ import styles from "./harmony164.mjs";
5
+ const UpgradeIcon = ({ className = "" }) => {
6
+ return /* @__PURE__ */ jsx(
7
+ "div",
8
+ {
9
+ "aria-label": "Upgrade Icon",
10
+ className: clsx(
11
+ styles.iconContainer,
12
+ "flex-row",
13
+ "items-center",
14
+ "justify-center",
15
+ className
16
+ ),
17
+ children: /* @__PURE__ */ jsx(CaretUpIcon, {})
18
+ }
19
+ );
11
20
  };
12
21
  export {
13
- TeamSettingsMenuItem
22
+ UpgradeIcon
14
23
  };
15
24
  //# sourceMappingURL=harmony140.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony140.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSettingsMenuItem/TeamSettingsMenuItem.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport { MenuItem } from '@lokalise/louis'\nimport { canAccessTeamSettings } from '@utils/user/permissions'\n\n/**\n * A menu item component for navigating to the team settings page.\n * It checks the current user's permissions using the Sidebar context\n * and renders nothing if the user does not have access.\n *\n * @example\n * ```\n * <TeamSettingsMenuItem />\n * ```\n *\n * @note This component must be used within a Sidebar Context.\n */\n\nexport const TeamSettingsMenuItem = () => {\n\tconst { jwt } = useSidebar()\n\n\tif (!canAccessTeamSettings(jwt)) {\n\t\treturn null\n\t}\n\n\treturn <MenuItem href=\"/team\">Team settings</MenuItem>\n}\n"],"names":[],"mappings":";;;;AAiBO,MAAM,uBAAuB,MAAM;AACnC,QAAA,EAAE,IAAI,IAAI,WAAW;AAEvB,MAAA,CAAC,sBAAsB,GAAG,GAAG;AACzB,WAAA;AAAA,EAAA;AAGR,SAAQ,oBAAA,UAAA,EAAS,MAAK,SAAQ,UAAa,iBAAA;AAC5C;"}
1
+ {"version":3,"file":"harmony140.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/UpgradeIcon/UpgradeIcon.tsx"],"sourcesContent":["import { CaretUpIcon } from '@lokalise/louis'\nimport clsx from 'clsx'\nimport styles from './UpgradeIcon.module.css'\n\ntype UpgradeIconProps = {\n\tclassName?: string\n}\n\nexport const UpgradeIcon = ({ className = '' }: UpgradeIconProps) => {\n\treturn (\n\t\t<div\n\t\t\taria-label={'Upgrade Icon'}\n\t\t\tclassName={clsx(\n\t\t\t\tstyles.iconContainer,\n\t\t\t\t'flex-row',\n\t\t\t\t'items-center',\n\t\t\t\t'justify-center',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<CaretUpIcon />\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;AAQO,MAAM,cAAc,CAAC,EAAE,YAAY,SAA2B;AAEnE,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,cAAY;AAAA,MACZ,WAAW;AAAA,QACV,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,MAEA,8BAAC,aAAY,CAAA,CAAA;AAAA,IAAA;AAAA,EACd;AAEF;"}
@@ -1,25 +1,9 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
4
- const useSidebar = require("./harmony114.cjs");
5
- const TeamMenuItem = require("./harmony139.cjs");
6
- const TeamSwitch_module = require("./harmony166.cjs");
7
- const TeamSwitch = ({ onSwitchTeam }) => {
8
- var _a, _b;
9
- const {
10
- data: { otherTeams }
11
- } = useSidebar.useSidebar();
12
- if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
13
- return null;
14
- }
15
- return /* @__PURE__ */ jsxRuntime.jsx(
16
- "div",
17
- {
18
- "data-testid": "sidebar-team-switch",
19
- className: `flex-col items-stretch ${TeamSwitch_module.default.teamsContainer}`,
20
- children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsxRuntime.jsx(TeamMenuItem.TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
21
- }
22
- );
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const logoLink = "_logoLink_1baxb_1";
4
+ const styles = {
5
+ logoLink
23
6
  };
24
- exports.TeamSwitch = TeamSwitch;
7
+ exports.default = styles;
8
+ exports.logoLink = logoLink;
25
9
  //# sourceMappingURL=harmony141.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony141.cjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["useSidebar","jsx","styles","TeamMenuItem"],"mappings":";;;;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChBA,sBAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAAC,2BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0BC,kBAAA,QAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvBD,2BAAAA,IAAAE,aAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;;"}
1
+ {"version":3,"file":"harmony141.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,25 +1,9 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { useSidebar } from "./harmony114.mjs";
3
- import { TeamMenuItem } from "./harmony139.mjs";
4
- import styles from "./harmony166.mjs";
5
- const TeamSwitch = ({ onSwitchTeam }) => {
6
- var _a, _b;
7
- const {
8
- data: { otherTeams }
9
- } = useSidebar();
10
- if (((_a = otherTeams.result) == null ? void 0 : _a.length) === 0) {
11
- return null;
12
- }
13
- return /* @__PURE__ */ jsx(
14
- "div",
15
- {
16
- "data-testid": "sidebar-team-switch",
17
- className: `flex-col items-stretch ${styles.teamsContainer}`,
18
- children: (_b = otherTeams.result) == null ? void 0 : _b.map((team) => /* @__PURE__ */ jsx(TeamMenuItem, { team, onClick: onSwitchTeam, hidePlanLabel: true }, team.id))
19
- }
20
- );
1
+ const logoLink = "_logoLink_1baxb_1";
2
+ const styles = {
3
+ logoLink
21
4
  };
22
5
  export {
23
- TeamSwitch
6
+ styles as default,
7
+ logoLink
24
8
  };
25
9
  //# sourceMappingURL=harmony141.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"harmony141.mjs","sources":["../src/components/Sidebar/Widgets/ProfileMenu/TeamSwitch/TeamSwitch.tsx"],"sourcesContent":["import { useSidebar } from '@components/Sidebar/hooks/useSidebar'\nimport type { SidebarTeam } from '@components/Sidebar/types'\nimport { TeamMenuItem } from '../TeamMenuItem/TeamMenuItem'\nimport styles from './TeamSwitch.module.css'\n\n/**\n * A component that displays a list of available teams for switching.\n * It automatically excludes the current team from the list and renders\n * nothing if there are no other teams available.\n *\n * Uses the Sidebar context to access the list of other teams and\n * renders each team as a TeamMenuItem with click functionality.\n *\n * @example\n * ```tsx\n * <TeamSwitch\n * onSwitchTeam={(team) => {\n * console.log(`Switching to team: ${team.name}`);\n * // Handle team switch logic\n * }}\n * />\n * ```\n *\n * @note This component must be used within a Sidebar Context\n */\n\ntype TeamSwitchProps = {\n\tonSwitchTeam: (team: SidebarTeam) => void\n}\n\nexport const TeamSwitch = ({ onSwitchTeam }: TeamSwitchProps) => {\n\tconst {\n\t\tdata: { otherTeams },\n\t} = useSidebar()\n\n\tif (otherTeams.result?.length === 0) {\n\t\treturn null\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tdata-testid=\"sidebar-team-switch\"\n\t\t\tclassName={`flex-col items-stretch ${styles.teamsContainer}`}\n\t\t>\n\t\t\t{otherTeams.result?.map((team) => (\n\t\t\t\t<TeamMenuItem team={team} key={team.id} onClick={onSwitchTeam} hidePlanLabel />\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":[],"mappings":";;;;AA8BO,MAAM,aAAa,CAAC,EAAE,mBAAoC;;AAC1D,QAAA;AAAA,IACL,MAAM,EAAE,WAAW;AAAA,MAChB,WAAW;AAEX,QAAA,gBAAW,WAAX,mBAAmB,YAAW,GAAG;AAC7B,WAAA;AAAA,EAAA;AAIP,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACA,eAAY;AAAA,MACZ,WAAW,0BAA0B,OAAO,cAAc;AAAA,MAEzD,WAAW,gBAAA,WAAA,mBAAQ,IAAI,CAAC,SACvB,oBAAA,cAAA,EAAa,MAA0B,SAAS,cAAc,eAAa,KAA7C,GAAA,KAAK,EAAyC;AAAA,IAC7E;AAAA,EACF;AAEF;"}
1
+ {"version":3,"file":"harmony141.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}