@servicetitan/navigation 12.0.3 → 13.0.0-canary.256.299dd08.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/components/counter-tag.d.ts +1 -1
  2. package/dist/components/counter-tag.d.ts.map +1 -1
  3. package/dist/components/counter-tag.js.map +1 -1
  4. package/dist/components/profile-dropdown/interface.d.ts +55 -0
  5. package/dist/components/profile-dropdown/interface.d.ts.map +1 -0
  6. package/dist/components/profile-dropdown/interface.js.map +1 -0
  7. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts +13 -0
  8. package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts.map +1 -0
  9. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +5 -1
  10. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -1
  11. package/dist/components/profile-dropdown/profile-dropdown.d.ts +9 -79
  12. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  13. package/dist/components/profile-dropdown/profile-dropdown.js +22 -22
  14. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  15. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +5 -1
  16. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -1
  17. package/dist/components/titan-layout/interface-internal.d.ts +12 -0
  18. package/dist/components/titan-layout/interface-internal.d.ts.map +1 -1
  19. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  20. package/dist/components/titan-layout/interface.d.ts +67 -14
  21. package/dist/components/titan-layout/interface.d.ts.map +1 -1
  22. package/dist/components/titan-layout/interface.js.map +1 -1
  23. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -1
  24. package/dist/components/titan-layout/layout-header-dark.js +21 -11
  25. package/dist/components/titan-layout/layout-header-dark.js.map +1 -1
  26. package/dist/components/titan-layout/layout-header-links-internal.d.ts +22 -3
  27. package/dist/components/titan-layout/layout-header-links-internal.d.ts.map +1 -1
  28. package/dist/components/titan-layout/layout-header-links-internal.js +15 -18
  29. package/dist/components/titan-layout/layout-header-links-internal.js.map +1 -1
  30. package/dist/components/titan-layout/layout-header-links.d.ts +3 -4
  31. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
  32. package/dist/components/titan-layout/layout-header-links.js +25 -5
  33. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  34. package/dist/components/titan-layout/layout-header.d.ts +2 -2
  35. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  36. package/dist/components/titan-layout/layout-header.js.map +1 -1
  37. package/dist/components/titan-layout/layout-header.module.less +31 -0
  38. package/dist/components/titan-layout/layout-header.module.less.d.ts +2 -0
  39. package/dist/components/titan-layout/layout-profile.d.ts +8 -5
  40. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
  41. package/dist/components/titan-layout/layout-profile.js +30 -28
  42. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  43. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -31
  44. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
  45. package/dist/components/titan-layout/layout-sidebar-links-internal.js +84 -83
  46. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  47. package/dist/components/titan-layout/layout-sidebar-links.d.ts +3 -3
  48. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
  49. package/dist/components/titan-layout/layout-sidebar-links.js +32 -19
  50. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  51. package/dist/components/titan-layout/layout-sidebar.d.ts +1 -1
  52. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
  53. package/dist/components/titan-layout/layout-sidebar.js +51 -28
  54. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  55. package/dist/components/titan-layout/layout-sidebar.module.less +74 -22
  56. package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
  57. package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
  58. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
  59. package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.map +1 -0
  60. package/dist/components/titan-layout/titan-layout-links.d.ts +5 -0
  61. package/dist/components/titan-layout/titan-layout-links.d.ts.map +1 -0
  62. package/dist/components/titan-layout/titan-layout-links.js +34 -0
  63. package/dist/components/titan-layout/titan-layout-links.js.map +1 -0
  64. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts +10 -0
  65. package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts.map +1 -0
  66. package/dist/components/titan-layout/titan-layout.d.ts +5 -4
  67. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  68. package/dist/components/titan-layout/titan-layout.js +17 -11
  69. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  70. package/dist/index.d.ts +1 -6
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +0 -4
  73. package/dist/index.js.map +1 -1
  74. package/dist/test/data.d.ts +26 -23
  75. package/dist/test/data.d.ts.map +1 -1
  76. package/dist/test/data.js +26 -69
  77. package/dist/test/data.js.map +1 -1
  78. package/dist/test/titan-layout.d.ts +16 -0
  79. package/dist/test/titan-layout.d.ts.map +1 -0
  80. package/dist/test/titan-layout.js +21 -0
  81. package/dist/test/titan-layout.js.map +1 -0
  82. package/dist/utils/navigation-context.d.ts +3 -22
  83. package/dist/utils/navigation-context.d.ts.map +1 -1
  84. package/dist/utils/navigation-context.js +2 -10
  85. package/dist/utils/navigation-context.js.map +1 -1
  86. package/dist/utils/navigation.d.ts +2 -7
  87. package/dist/utils/navigation.d.ts.map +1 -1
  88. package/dist/utils/navigation.js.map +1 -1
  89. package/package.json +2 -2
  90. package/src/components/counter-tag.tsx +1 -1
  91. package/src/components/profile-dropdown/interface.ts +47 -0
  92. package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +25 -0
  93. package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +15 -7
  94. package/src/components/profile-dropdown/profile-dropdown.stories.tsx +50 -43
  95. package/src/components/profile-dropdown/profile-dropdown.tsx +39 -115
  96. package/src/components/titan-layout/interface-internal.ts +13 -0
  97. package/src/components/titan-layout/interface.ts +73 -17
  98. package/src/components/titan-layout/layout-header-dark.tsx +17 -4
  99. package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
  100. package/src/components/titan-layout/layout-header-links.tsx +65 -12
  101. package/src/components/titan-layout/layout-header.module.less +31 -0
  102. package/src/components/titan-layout/layout-header.module.less.d.ts +2 -0
  103. package/src/components/titan-layout/layout-header.tsx +2 -2
  104. package/src/components/titan-layout/layout-profile.tsx +53 -34
  105. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +183 -147
  106. package/src/components/titan-layout/layout-sidebar-links.tsx +73 -26
  107. package/src/components/titan-layout/layout-sidebar.module.less +74 -22
  108. package/src/components/titan-layout/layout-sidebar.tsx +55 -31
  109. package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +131 -114
  110. package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
  111. package/src/components/titan-layout/titan-layout-links.tsx +34 -0
  112. package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
  113. package/src/components/titan-layout/titan-layout.tsx +16 -11
  114. package/src/index.ts +1 -12
  115. package/src/test/data.tsx +31 -83
  116. package/src/test/titan-layout.tsx +34 -0
  117. package/src/utils/navigation-context.tsx +9 -35
  118. package/src/utils/navigation.ts +3 -10
  119. package/dist/components/header-navigation/header-navigation-content.d.ts +0 -30
  120. package/dist/components/header-navigation/header-navigation-content.d.ts.map +0 -1
  121. package/dist/components/header-navigation/header-navigation-content.js +0 -58
  122. package/dist/components/header-navigation/header-navigation-content.js.map +0 -1
  123. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +0 -9
  124. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +0 -1
  125. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +0 -12
  126. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +0 -1
  127. package/dist/components/header-navigation/header-navigation-links.d.ts +0 -11
  128. package/dist/components/header-navigation/header-navigation-links.d.ts.map +0 -1
  129. package/dist/components/header-navigation/header-navigation-links.js +0 -62
  130. package/dist/components/header-navigation/header-navigation-links.js.map +0 -1
  131. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +0 -12
  132. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +0 -1
  133. package/dist/components/header-navigation/header-navigation-stories.module.less +0 -6
  134. package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  135. package/dist/components/header-navigation/header-navigation.d.ts +0 -59
  136. package/dist/components/header-navigation/header-navigation.d.ts.map +0 -1
  137. package/dist/components/header-navigation/header-navigation.js +0 -228
  138. package/dist/components/header-navigation/header-navigation.js.map +0 -1
  139. package/dist/components/header-navigation/header-navigation.module.less +0 -260
  140. package/dist/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  141. package/dist/components/header-navigation/header-navigation.stories.d.ts +0 -12
  142. package/dist/components/header-navigation/header-navigation.stories.d.ts.map +0 -1
  143. package/dist/components/header-navigation/index.d.ts +0 -2
  144. package/dist/components/header-navigation/index.d.ts.map +0 -1
  145. package/dist/components/header-navigation/index.js +0 -3
  146. package/dist/components/header-navigation/index.js.map +0 -1
  147. package/dist/components/header-navigation/with-tooltip.d.ts +0 -4
  148. package/dist/components/header-navigation/with-tooltip.d.ts.map +0 -1
  149. package/dist/components/header-navigation/with-tooltip.js +0 -10
  150. package/dist/components/header-navigation/with-tooltip.js.map +0 -1
  151. package/dist/components/layout.stories.d.ts +0 -13
  152. package/dist/components/layout.stories.d.ts.map +0 -1
  153. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +0 -9
  154. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +0 -1
  155. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +0 -18
  156. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +0 -1
  157. package/dist/components/left-navigation/header-navigation-tiny-links.js +0 -79
  158. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +0 -1
  159. package/dist/components/left-navigation/header-navigation-tiny.d.ts +0 -23
  160. package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +0 -1
  161. package/dist/components/left-navigation/header-navigation-tiny.js +0 -32
  162. package/dist/components/left-navigation/header-navigation-tiny.js.map +0 -1
  163. package/dist/components/left-navigation/header-navigation-tiny.module.less +0 -117
  164. package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  165. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +0 -12
  166. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +0 -1
  167. package/dist/components/left-navigation/index.d.ts +0 -5
  168. package/dist/components/left-navigation/index.d.ts.map +0 -1
  169. package/dist/components/left-navigation/index.js +0 -5
  170. package/dist/components/left-navigation/index.js.map +0 -1
  171. package/dist/components/left-navigation/interface-internal.d.ts +0 -10
  172. package/dist/components/left-navigation/interface-internal.d.ts.map +0 -1
  173. package/dist/components/left-navigation/interface-internal.js +0 -3
  174. package/dist/components/left-navigation/interface-internal.js.map +0 -1
  175. package/dist/components/left-navigation/interface.d.ts +0 -20
  176. package/dist/components/left-navigation/interface.d.ts.map +0 -1
  177. package/dist/components/left-navigation/interface.js.map +0 -1
  178. package/dist/components/left-navigation/side-navigation-context.d.ts +0 -8
  179. package/dist/components/left-navigation/side-navigation-context.d.ts.map +0 -1
  180. package/dist/components/left-navigation/side-navigation-context.js +0 -8
  181. package/dist/components/left-navigation/side-navigation-context.js.map +0 -1
  182. package/dist/components/left-navigation/side-navigation-links-internal.d.ts +0 -28
  183. package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +0 -1
  184. package/dist/components/left-navigation/side-navigation-links-internal.js +0 -89
  185. package/dist/components/left-navigation/side-navigation-links-internal.js.map +0 -1
  186. package/dist/components/left-navigation/side-navigation-links.d.ts +0 -6
  187. package/dist/components/left-navigation/side-navigation-links.d.ts.map +0 -1
  188. package/dist/components/left-navigation/side-navigation-links.js +0 -48
  189. package/dist/components/left-navigation/side-navigation-links.js.map +0 -1
  190. package/dist/components/left-navigation/side-navigation.d.ts +0 -29
  191. package/dist/components/left-navigation/side-navigation.d.ts.map +0 -1
  192. package/dist/components/left-navigation/side-navigation.js +0 -411
  193. package/dist/components/left-navigation/side-navigation.js.map +0 -1
  194. package/dist/components/left-navigation/side-navigation.module.less +0 -530
  195. package/dist/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  196. package/dist/components/left-navigation/side-navigation.stories.d.ts +0 -17
  197. package/dist/components/left-navigation/side-navigation.stories.d.ts.map +0 -1
  198. package/dist/components/left-navigation/with-tooltip.d.ts +0 -4
  199. package/dist/components/left-navigation/with-tooltip.d.ts.map +0 -1
  200. package/dist/components/left-navigation/with-tooltip.js +0 -15
  201. package/dist/components/left-navigation/with-tooltip.js.map +0 -1
  202. package/dist/components/links.d.ts +0 -5
  203. package/dist/components/links.d.ts.map +0 -1
  204. package/dist/components/links.js +0 -35
  205. package/dist/components/links.js.map +0 -1
  206. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +0 -9
  207. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +0 -1
  208. package/dist/components/titan-layout/layout-profile.stories.d.ts +0 -13
  209. package/dist/components/titan-layout/layout-profile.stories.d.ts.map +0 -1
  210. package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
  211. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
  212. package/dist/utils/navigation-legacy.d.ts +0 -88
  213. package/dist/utils/navigation-legacy.d.ts.map +0 -1
  214. package/dist/utils/navigation-legacy.js +0 -3
  215. package/dist/utils/navigation-legacy.js.map +0 -1
  216. package/src/components/header-navigation/header-navigation-content.tsx +0 -120
  217. package/src/components/header-navigation/header-navigation-extra-stacked.stories.tsx +0 -19
  218. package/src/components/header-navigation/header-navigation-extra.stories.tsx +0 -142
  219. package/src/components/header-navigation/header-navigation-links.tsx +0 -141
  220. package/src/components/header-navigation/header-navigation-stacked.stories.tsx +0 -146
  221. package/src/components/header-navigation/header-navigation-stories.module.less +0 -6
  222. package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
  223. package/src/components/header-navigation/header-navigation.module.less +0 -260
  224. package/src/components/header-navigation/header-navigation.module.less.d.ts +0 -22
  225. package/src/components/header-navigation/header-navigation.stories.tsx +0 -165
  226. package/src/components/header-navigation/header-navigation.tsx +0 -327
  227. package/src/components/header-navigation/index.ts +0 -1
  228. package/src/components/header-navigation/with-tooltip.tsx +0 -15
  229. package/src/components/layout.stories.tsx +0 -103
  230. package/src/components/left-navigation/header-navigation-extra-tiny.stories.tsx +0 -21
  231. package/src/components/left-navigation/header-navigation-tiny-links.tsx +0 -145
  232. package/src/components/left-navigation/header-navigation-tiny.module.less +0 -117
  233. package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
  234. package/src/components/left-navigation/header-navigation-tiny.stories.tsx +0 -178
  235. package/src/components/left-navigation/header-navigation-tiny.tsx +0 -65
  236. package/src/components/left-navigation/index.ts +0 -4
  237. package/src/components/left-navigation/interface-internal.ts +0 -11
  238. package/src/components/left-navigation/interface.ts +0 -26
  239. package/src/components/left-navigation/side-navigation-context.tsx +0 -13
  240. package/src/components/left-navigation/side-navigation-links-internal.tsx +0 -151
  241. package/src/components/left-navigation/side-navigation-links.tsx +0 -57
  242. package/src/components/left-navigation/side-navigation.module.less +0 -530
  243. package/src/components/left-navigation/side-navigation.module.less.d.ts +0 -48
  244. package/src/components/left-navigation/side-navigation.stories.tsx +0 -226
  245. package/src/components/left-navigation/side-navigation.tsx +0 -543
  246. package/src/components/left-navigation/with-tooltip.tsx +0 -16
  247. package/src/components/links.tsx +0 -54
  248. package/src/components/profile-dropdown/profile-dropdown-tiny.stories.tsx +0 -25
  249. package/src/components/titan-layout/layout-profile.stories.tsx +0 -46
  250. package/src/utils/navigation-legacy.ts +0 -106
  251. /package/dist/components/{left-navigation → profile-dropdown}/interface.js +0 -0
@@ -2,6 +2,18 @@
2
2
  /* stylelint-disable no-duplicate-selectors */
3
3
  @import (reference) '@servicetitan/tokens/core/tokens.less';
4
4
 
5
+ @keyframes ExtraPulseAnimation {
6
+ 0% {
7
+ opacity: 0.7;
8
+ }
9
+ 50% {
10
+ opacity: 0.5;
11
+ }
12
+ 100% {
13
+ opacity: 0;
14
+ }
15
+ }
16
+
5
17
  @size-links-tiny: 24px;
6
18
  @bg-light: @color-white;
7
19
  @bg-dark: @color-neutral-300;
@@ -352,6 +364,25 @@
352
364
  }
353
365
  }
354
366
 
367
+ .he-top-right .navigation-item-flashing {
368
+ &::before {
369
+ content: '';
370
+ position: absolute;
371
+ animation-name: ExtraPulseAnimation;
372
+ will-change: opacity;
373
+ background-color: var(--color-neutral-60, @color-neutral-60);
374
+ animation-iteration-count: infinite;
375
+ animation-duration: 500ms;
376
+ animation-direction: alternate;
377
+ border-radius: 12px;
378
+ inset: 0;
379
+ }
380
+
381
+ &.navigation-item-active::before {
382
+ background-color: var(--color-blue-200, @color-blue-200);
383
+ }
384
+ }
385
+
355
386
  // styles specific to main nav links
356
387
  .header-navigation .navigation-link {
357
388
  font-family: @base-font-family;
@@ -1,6 +1,7 @@
1
1
  export const __esModule: true;
2
2
  export const burger: string;
3
3
  export const calculating: string;
4
+ export const extraPulseAnimation: string;
4
5
  export const heTopCenter: string;
5
6
  export const heTopRight: string;
6
7
  export const heTopRightText: string;
@@ -29,6 +30,7 @@ export const navigationIconActive: string;
29
30
  export const navigationItemActive: string;
30
31
  export const navigationItemCounter: string;
31
32
  export const navigationItemCounterLong: string;
33
+ export const navigationItemFlashing: string;
32
34
  export const navigationItemIconState: string;
33
35
  export const navigationItemLabel: string;
34
36
  export const navigationLink: string;
@@ -1,6 +1,6 @@
1
1
  import SvgBurgerMenu from '@servicetitan/anvil2/assets/icons/material/round/menu.svg';
2
2
  import classNames from 'classnames';
3
- import { ComponentPropsWithoutRef, FC, ReactElement, ReactNode } from 'react';
3
+ import { ComponentPropsWithoutRef, FC, MouseEvent, ReactElement, ReactNode } from 'react';
4
4
  import { LayoutPlacementContext } from './layout-context';
5
5
  import { LayoutHeaderNavigationTrigger } from './layout-header-links';
6
6
  import * as Styles from './layout-header.module.less';
@@ -22,7 +22,7 @@ export type LayoutHeaderProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'
22
22
  isMobile: boolean;
23
23
  variant: 'light' | 'dark';
24
24
  hasNotifications: boolean;
25
- onBurgerClick?: (e: MouseEvent) => void;
25
+ onBurgerClick?: (e: MouseEvent<never>) => void;
26
26
  };
27
27
 
28
28
  export const LayoutHeader: FC<LayoutHeaderProps> = ({
@@ -2,13 +2,14 @@ import SvgAccountActive from '@servicetitan/anvil2/assets/icons/st/gnav_account_
2
2
  import SvgAccountInactive from '@servicetitan/anvil2/assets/icons/st/gnav_account_inactive.svg';
3
3
 
4
4
  import { FC, MouseEvent, useEffect, useState } from 'react';
5
- import { NavLinkComponentProps, NavigationComponentContext } from '../../utils/navigation-context';
5
+ import { NavLinkComponentProps } from '../../utils/navigation-context';
6
+ import { getCounterTag } from '../../utils/side-nav';
6
7
  import {
7
- ProfileDropdown as DesktopProfileDropdown,
8
8
  ProfileDropdownLinkProps,
9
9
  ProfileDropdownProps,
10
10
  ProfileDropdownSectionProps,
11
- } from '../profile-dropdown/profile-dropdown';
11
+ } from '../profile-dropdown/interface';
12
+ import { DesktopProfileDropdown } from '../profile-dropdown/profile-dropdown';
12
13
  import { NavigationComponentProps } from './interface-internal';
13
14
  import { useTitanLayoutContext } from './layout-context';
14
15
  import {
@@ -23,7 +24,7 @@ export type {
23
24
  ProfileDropdownProps,
24
25
  ProfileDropdownSectionProps,
25
26
  ProfileDropdownLinkProps,
26
- } from '../profile-dropdown/profile-dropdown';
27
+ } from '../profile-dropdown/interface';
27
28
 
28
29
  const ExternalNavComponent: FC<NavLinkComponentProps> = ({
29
30
  children,
@@ -37,24 +38,27 @@ const ExternalNavComponent: FC<NavLinkComponentProps> = ({
37
38
  </a>
38
39
  );
39
40
 
40
- const ProfileDropdownContent: FC<ProfileDropdownProps> = props => {
41
- const { isTitanLayout, breakpoint, NavigationComponent } = useTitanLayoutContext();
41
+ function ProfileDropdownComponent(props: ProfileDropdownProps) {
42
+ const { breakpoint, NavigationComponent } = useTitanLayoutContext();
42
43
  return breakpoint.isMobile ? (
43
44
  <MobileProfileDropdown {...props} navigationComponent={NavigationComponent} />
44
- ) : isTitanLayout ? (
45
- <NavigationComponentContext.Provider value={NavigationComponent}>
46
- <DesktopProfileDropdown {...props} />
47
- </NavigationComponentContext.Provider>
48
45
  ) : (
49
46
  <DesktopProfileDropdown {...props} />
50
47
  );
51
- };
52
- ProfileDropdownContent.displayName = 'ProfileDropdown';
48
+ }
53
49
  const profileId = '--profile';
54
50
 
55
51
  const MobileProfileDropdown: FC<ProfileDropdownProps & NavigationComponentProps> = ({
52
+ direction,
53
+ trigger,
54
+ hintPopup,
55
+ portal,
56
+ width,
57
+ onClose,
58
+ onOpen,
59
+ className,
56
60
  children,
57
- ...props
61
+ ...rest
58
62
  }) => {
59
63
  const [expanded, setExpanded] = useState(false);
60
64
  const { hasNotifications, NotificationsContextProvider } = useNotificationsState();
@@ -77,7 +81,8 @@ const MobileProfileDropdown: FC<ProfileDropdownProps & NavigationComponentProps>
77
81
  icon={SvgAccountInactive}
78
82
  iconActive={SvgAccountActive}
79
83
  isActive={expanded}
80
- {...props}
84
+ className={className}
85
+ {...rest}
81
86
  submenuExpanded={expanded}
82
87
  onExpandToggle={onExpandToggle}
83
88
  onClick={onExpandToggle}
@@ -110,71 +115,85 @@ const getText = (children: any, text: any): string | undefined => {
110
115
  return undefined;
111
116
  };
112
117
 
113
- const getTag = (
114
- tag: ProfileDropdownLinkProps['tag'],
115
- counter: ProfileDropdownLinkProps['counter']
116
- ): boolean => {
117
- return !!tag?.value || !!counter;
118
- };
119
-
120
- const ProfileDropdownSection: FC<ProfileDropdownSectionProps> = props => {
118
+ function ProfileDropdownSection(props: ProfileDropdownSectionProps) {
121
119
  const { breakpoint } = useTitanLayoutContext();
122
120
  return breakpoint.isMobile ? (
123
121
  <MobileProfileDropdownSection {...props} />
124
122
  ) : (
125
123
  <DesktopProfileDropdown.Section {...props} />
126
124
  );
127
- };
125
+ }
128
126
  const MobileProfileDropdownSection: FC<ProfileDropdownSectionProps> = ({
127
+ id,
128
+ tooltip,
129
+ tag,
130
+ counter,
131
+
132
+ className,
129
133
  children,
130
134
  text,
131
- tooltip,
132
- title,
133
- ...props
135
+ ...rest
134
136
  }) => {
135
137
  const sectionText = getText(children, text);
136
138
  const { onNotificationsUpdate } = useNotificationsContext();
137
- onNotificationsUpdate(props.id, getTag(props.tag, props.counter));
139
+ const tagData = getCounterTag(counter, tag);
140
+ onNotificationsUpdate(id, !!tagData);
138
141
 
139
142
  return sectionText ? (
140
- <InternalSideNavigationGroupTrigger {...props} title={sectionText} />
143
+ <InternalSideNavigationGroupTrigger
144
+ {...rest}
145
+ id={id}
146
+ title={sectionText}
147
+ isActive={undefined}
148
+ tag={tagData}
149
+ className={className}
150
+ />
141
151
  ) : null;
142
152
  };
143
153
 
144
- const ProfileDropdownLink: FC<ProfileDropdownLinkProps> = props => {
154
+ function ProfileDropdownLink(props: ProfileDropdownLinkProps) {
145
155
  const { breakpoint, NavigationComponent } = useTitanLayoutContext();
146
156
  return breakpoint.isMobile ? (
147
157
  <MobileProfileDropdownLink {...props} navigationComponent={NavigationComponent} />
148
158
  ) : (
149
159
  <DesktopProfileDropdown.Link {...props} />
150
160
  );
151
- };
161
+ }
152
162
  const MobileProfileDropdownLink: FC<ProfileDropdownLinkProps & NavigationComponentProps> = ({
163
+ id,
153
164
  external,
154
165
  to,
155
166
  tooltip,
156
167
  text,
157
168
  children,
169
+ className,
158
170
  navigationComponent,
159
- ...props
171
+ tag,
172
+ counter,
173
+ ...rest
160
174
  }) => {
161
175
  const { onNotificationsUpdate } = useNotificationsContext();
162
176
  const linkText = getText(children, text);
163
177
  const isExternalLink = external ?? to?.startsWith('http');
164
- onNotificationsUpdate(props.id, getTag(props.tag, props.counter));
178
+ const tagData = getCounterTag(counter, tag);
179
+ onNotificationsUpdate(id, !!tagData);
165
180
 
166
181
  return linkText ? (
167
182
  <InternalSideNavigationGroupLink
168
- {...props}
183
+ {...rest}
184
+ id={id}
169
185
  to={to}
170
186
  title={linkText}
187
+ isActive={undefined}
188
+ className={className}
189
+ tag={tagData}
171
190
  parentId={profileId}
172
191
  navigationComponent={isExternalLink ? ExternalNavComponent : navigationComponent}
173
192
  />
174
193
  ) : null;
175
194
  };
176
195
 
177
- export const ProfileDropdown = Object.assign(ProfileDropdownContent, {
196
+ export const ProfileDropdown = Object.assign(ProfileDropdownComponent, {
178
197
  Divider: ProfileDropdownDivider,
179
198
  Link: ProfileDropdownLink,
180
199
  Section: ProfileDropdownSection,