@servicetitan/navigation 11.0.0-canary.237.c90556e.0 → 11.0.0-canary.237.f92c882.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 (280) hide show
  1. package/dist/components/badge-tag.d.ts +12 -0
  2. package/dist/components/badge-tag.d.ts.map +1 -0
  3. package/dist/components/badge-tag.js +8 -0
  4. package/dist/components/badge-tag.js.map +1 -0
  5. package/dist/components/counter-tag.d.ts +12 -0
  6. package/dist/components/counter-tag.d.ts.map +1 -0
  7. package/dist/components/counter-tag.js +8 -0
  8. package/dist/components/counter-tag.js.map +1 -0
  9. package/dist/components/header-navigation/header-navigation-content.d.ts +30 -0
  10. package/dist/components/header-navigation/header-navigation-content.d.ts.map +1 -0
  11. package/dist/components/header-navigation/header-navigation-content.js +22 -0
  12. package/dist/components/header-navigation/header-navigation-content.js.map +1 -0
  13. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +9 -0
  14. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +1 -0
  15. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +13 -0
  16. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +1 -0
  17. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +12 -0
  18. package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +1 -0
  19. package/dist/components/header-navigation/header-navigation-extra.stories.js +29 -0
  20. package/dist/components/header-navigation/header-navigation-extra.stories.js.map +1 -0
  21. package/dist/components/header-navigation/header-navigation-links.d.ts +11 -0
  22. package/dist/components/header-navigation/header-navigation-links.d.ts.map +1 -0
  23. package/dist/components/header-navigation/header-navigation-links.js +26 -0
  24. package/dist/components/header-navigation/header-navigation-links.js.map +1 -0
  25. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +12 -0
  26. package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +1 -0
  27. package/dist/components/header-navigation/header-navigation-stacked.stories.js +50 -0
  28. package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +1 -0
  29. package/dist/components/header-navigation/header-navigation-stories.module.less +6 -0
  30. package/dist/components/header-navigation/header-navigation.d.ts +59 -0
  31. package/dist/components/header-navigation/header-navigation.d.ts.map +1 -0
  32. package/dist/components/header-navigation/header-navigation.js +96 -0
  33. package/dist/components/header-navigation/header-navigation.js.map +1 -0
  34. package/dist/components/header-navigation/header-navigation.module.less +260 -0
  35. package/dist/components/header-navigation/header-navigation.stories.d.ts +12 -0
  36. package/dist/components/header-navigation/header-navigation.stories.d.ts.map +1 -0
  37. package/dist/components/header-navigation/header-navigation.stories.js +54 -0
  38. package/dist/components/header-navigation/header-navigation.stories.js.map +1 -0
  39. package/dist/components/header-navigation/index.d.ts +2 -0
  40. package/dist/components/header-navigation/index.d.ts.map +1 -0
  41. package/dist/components/header-navigation/index.js +2 -0
  42. package/dist/components/header-navigation/index.js.map +1 -0
  43. package/dist/components/header-navigation/with-tooltip.d.ts +4 -0
  44. package/dist/components/header-navigation/with-tooltip.d.ts.map +1 -0
  45. package/dist/components/header-navigation/with-tooltip.js +4 -0
  46. package/dist/components/header-navigation/with-tooltip.js.map +1 -0
  47. package/dist/components/layout.stories.d.ts +13 -0
  48. package/dist/components/layout.stories.d.ts.map +1 -0
  49. package/dist/components/layout.stories.js +29 -0
  50. package/dist/components/layout.stories.js.map +1 -0
  51. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +9 -0
  52. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +1 -0
  53. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +13 -0
  54. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +1 -0
  55. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +18 -0
  56. package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +1 -0
  57. package/dist/components/left-navigation/header-navigation-tiny-links.js +32 -0
  58. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +1 -0
  59. package/dist/components/left-navigation/header-navigation-tiny.d.ts +23 -0
  60. package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +1 -0
  61. package/dist/components/left-navigation/header-navigation-tiny.js +7 -0
  62. package/dist/components/left-navigation/header-navigation-tiny.js.map +1 -0
  63. package/dist/components/left-navigation/header-navigation-tiny.module.less +117 -0
  64. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +12 -0
  65. package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +1 -0
  66. package/dist/components/left-navigation/header-navigation-tiny.stories.js +30 -0
  67. package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +1 -0
  68. package/dist/components/left-navigation/index.d.ts +5 -0
  69. package/dist/components/left-navigation/index.d.ts.map +1 -0
  70. package/dist/components/left-navigation/index.js +5 -0
  71. package/dist/components/left-navigation/index.js.map +1 -0
  72. package/dist/components/left-navigation/interface-internal.d.ts +10 -0
  73. package/dist/components/left-navigation/interface-internal.d.ts.map +1 -0
  74. package/dist/components/left-navigation/interface-internal.js +2 -0
  75. package/dist/components/left-navigation/interface-internal.js.map +1 -0
  76. package/dist/components/left-navigation/interface.d.ts +20 -0
  77. package/dist/components/left-navigation/interface.d.ts.map +1 -0
  78. package/dist/components/left-navigation/interface.js +2 -0
  79. package/dist/components/left-navigation/interface.js.map +1 -0
  80. package/dist/components/left-navigation/side-navigation-context.d.ts +8 -0
  81. package/dist/components/left-navigation/side-navigation-context.d.ts.map +1 -0
  82. package/dist/components/left-navigation/side-navigation-context.js +7 -0
  83. package/dist/components/left-navigation/side-navigation-context.js.map +1 -0
  84. package/dist/components/left-navigation/side-navigation-links-internal.d.ts +28 -0
  85. package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +1 -0
  86. package/dist/components/left-navigation/side-navigation-links-internal.js +29 -0
  87. package/dist/components/left-navigation/side-navigation-links-internal.js.map +1 -0
  88. package/dist/components/left-navigation/side-navigation-links.d.ts +6 -0
  89. package/dist/components/left-navigation/side-navigation-links.d.ts.map +1 -0
  90. package/dist/components/left-navigation/side-navigation-links.js +27 -0
  91. package/dist/components/left-navigation/side-navigation-links.js.map +1 -0
  92. package/dist/components/left-navigation/side-navigation.d.ts +29 -0
  93. package/dist/components/left-navigation/side-navigation.d.ts.map +1 -0
  94. package/dist/components/left-navigation/side-navigation.js +182 -0
  95. package/dist/components/left-navigation/side-navigation.js.map +1 -0
  96. package/dist/components/left-navigation/side-navigation.module.less +530 -0
  97. package/dist/components/left-navigation/side-navigation.stories.d.ts +17 -0
  98. package/dist/components/left-navigation/side-navigation.stories.d.ts.map +1 -0
  99. package/dist/components/left-navigation/side-navigation.stories.js +115 -0
  100. package/dist/components/left-navigation/side-navigation.stories.js.map +1 -0
  101. package/dist/components/left-navigation/with-tooltip.d.ts +4 -0
  102. package/dist/components/left-navigation/with-tooltip.d.ts.map +1 -0
  103. package/dist/components/left-navigation/with-tooltip.js +4 -0
  104. package/dist/components/left-navigation/with-tooltip.js.map +1 -0
  105. package/dist/components/links.d.ts +5 -0
  106. package/dist/components/links.d.ts.map +1 -0
  107. package/dist/components/links.js +14 -0
  108. package/dist/components/links.js.map +1 -0
  109. package/dist/components/logo/logo-company-title.d.ts +8 -0
  110. package/dist/components/logo/logo-company-title.d.ts.map +1 -0
  111. package/dist/components/logo/logo-company-title.js +6 -0
  112. package/dist/components/logo/logo-company-title.js.map +1 -0
  113. package/dist/components/logo/logo-titan-text.d.ts +29 -0
  114. package/dist/components/logo/logo-titan-text.d.ts.map +1 -0
  115. package/dist/components/logo/logo-titan-text.js +13 -0
  116. package/dist/components/logo/logo-titan-text.js.map +1 -0
  117. package/dist/components/logo/logo-titan-text.module.less +31 -0
  118. package/dist/components/logo/logo-titan.d.ts +9 -0
  119. package/dist/components/logo/logo-titan.d.ts.map +1 -0
  120. package/dist/components/logo/logo-titan.js +13 -0
  121. package/dist/components/logo/logo-titan.js.map +1 -0
  122. package/dist/components/logo/logo.stories.d.ts +14 -0
  123. package/dist/components/logo/logo.stories.d.ts.map +1 -0
  124. package/dist/components/logo/logo.stories.js +20 -0
  125. package/dist/components/logo/logo.stories.js.map +1 -0
  126. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +9 -0
  127. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -0
  128. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +13 -0
  129. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +1 -0
  130. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +9 -0
  131. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +1 -0
  132. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +13 -0
  133. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +1 -0
  134. package/dist/components/profile-dropdown/profile-dropdown.d.ts +80 -0
  135. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -0
  136. package/dist/components/profile-dropdown/profile-dropdown.js +85 -0
  137. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -0
  138. package/dist/components/profile-dropdown/profile-dropdown.module.less +171 -0
  139. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +16 -0
  140. package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -0
  141. package/dist/components/profile-dropdown/profile-dropdown.stories.js +51 -0
  142. package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +1 -0
  143. package/dist/components/profile-dropdown/profile-icon.d.ts +3 -0
  144. package/dist/components/profile-dropdown/profile-icon.d.ts.map +1 -0
  145. package/dist/components/profile-dropdown/profile-icon.js +5 -0
  146. package/dist/components/profile-dropdown/profile-icon.js.map +1 -0
  147. package/dist/components/titan-layout/index.d.ts +6 -0
  148. package/dist/components/titan-layout/index.d.ts.map +1 -0
  149. package/dist/components/titan-layout/index.js +6 -0
  150. package/dist/components/titan-layout/index.js.map +1 -0
  151. package/dist/components/titan-layout/interface-internal.d.ts +6 -0
  152. package/dist/components/titan-layout/interface-internal.d.ts.map +1 -0
  153. package/dist/components/titan-layout/interface-internal.js +2 -0
  154. package/dist/components/titan-layout/interface-internal.js.map +1 -0
  155. package/dist/components/titan-layout/interface.d.ts +21 -0
  156. package/dist/components/titan-layout/interface.d.ts.map +1 -0
  157. package/dist/components/titan-layout/interface.js +2 -0
  158. package/dist/components/titan-layout/interface.js.map +1 -0
  159. package/dist/components/titan-layout/layout-context.d.ts +20 -0
  160. package/dist/components/titan-layout/layout-context.d.ts.map +1 -0
  161. package/dist/components/titan-layout/layout-context.js +12 -0
  162. package/dist/components/titan-layout/layout-context.js.map +1 -0
  163. package/dist/components/titan-layout/layout-header-links.d.ts +7 -0
  164. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -0
  165. package/dist/components/titan-layout/layout-header-links.js +32 -0
  166. package/dist/components/titan-layout/layout-header-links.js.map +1 -0
  167. package/dist/components/titan-layout/layout-header.d.ts +22 -0
  168. package/dist/components/titan-layout/layout-header.d.ts.map +1 -0
  169. package/dist/components/titan-layout/layout-header.js +10 -0
  170. package/dist/components/titan-layout/layout-header.js.map +1 -0
  171. package/dist/components/titan-layout/layout-header.module.less +196 -0
  172. package/dist/components/titan-layout/layout-logo.d.ts +12 -0
  173. package/dist/components/titan-layout/layout-logo.d.ts.map +1 -0
  174. package/dist/components/titan-layout/layout-logo.js +15 -0
  175. package/dist/components/titan-layout/layout-logo.js.map +1 -0
  176. package/dist/components/titan-layout/layout-logo.stories.d.ts +13 -0
  177. package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -0
  178. package/dist/components/titan-layout/layout-logo.stories.js +17 -0
  179. package/dist/components/titan-layout/layout-logo.stories.js.map +1 -0
  180. package/dist/components/titan-layout/layout-profile.d.ts +9 -0
  181. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -0
  182. package/dist/components/titan-layout/layout-profile.js +68 -0
  183. package/dist/components/titan-layout/layout-profile.js.map +1 -0
  184. package/dist/components/titan-layout/layout-profile.stories.d.ts +13 -0
  185. package/dist/components/titan-layout/layout-profile.stories.d.ts.map +1 -0
  186. package/dist/components/titan-layout/layout-profile.stories.js +13 -0
  187. package/dist/components/titan-layout/layout-profile.stories.js.map +1 -0
  188. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +46 -0
  189. package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -0
  190. package/dist/components/titan-layout/layout-sidebar-links-internal.js +61 -0
  191. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -0
  192. package/dist/components/titan-layout/layout-sidebar-links.d.ts +6 -0
  193. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -0
  194. package/dist/components/titan-layout/layout-sidebar-links.js +28 -0
  195. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -0
  196. package/dist/components/titan-layout/layout-sidebar.d.ts +19 -0
  197. package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -0
  198. package/dist/components/titan-layout/layout-sidebar.js +67 -0
  199. package/dist/components/titan-layout/layout-sidebar.js.map +1 -0
  200. package/dist/components/titan-layout/layout-sidebar.module.less +529 -0
  201. package/dist/components/titan-layout/notifications-context.d.ts +13 -0
  202. package/dist/components/titan-layout/notifications-context.d.ts.map +1 -0
  203. package/dist/components/titan-layout/notifications-context.js +23 -0
  204. package/dist/components/titan-layout/notifications-context.js.map +1 -0
  205. package/dist/components/titan-layout/titan-layout.d.ts +38 -0
  206. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -0
  207. package/dist/components/titan-layout/titan-layout.js +139 -0
  208. package/dist/components/titan-layout/titan-layout.js.map +1 -0
  209. package/dist/components/titan-layout/titan-layout.module.less +103 -0
  210. package/dist/components/titan-layout/titan-layout.stories.d.ts +21 -0
  211. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -0
  212. package/dist/components/titan-layout/titan-layout.stories.js +82 -0
  213. package/dist/components/titan-layout/titan-layout.stories.js.map +1 -0
  214. package/dist/components/titan-layout/with-tooltip.d.ts +4 -0
  215. package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -0
  216. package/dist/components/titan-layout/with-tooltip.js +4 -0
  217. package/dist/components/titan-layout/with-tooltip.js.map +1 -0
  218. package/dist/index.d.ts +13 -0
  219. package/dist/index.d.ts.map +1 -0
  220. package/dist/index.js +13 -0
  221. package/dist/index.js.map +1 -0
  222. package/dist/test/data-stories.module.less +8 -0
  223. package/dist/test/data.d.ts +35 -0
  224. package/dist/test/data.d.ts.map +1 -0
  225. package/dist/test/data.js +243 -0
  226. package/dist/test/data.js.map +1 -0
  227. package/dist/utils/counter-tag.d.ts +5 -0
  228. package/dist/utils/counter-tag.d.ts.map +1 -0
  229. package/dist/utils/counter-tag.js +2 -0
  230. package/dist/utils/counter-tag.js.map +1 -0
  231. package/dist/utils/navigation-context.d.ts +27 -0
  232. package/dist/utils/navigation-context.d.ts.map +1 -0
  233. package/dist/utils/navigation-context.js +10 -0
  234. package/dist/utils/navigation-context.js.map +1 -0
  235. package/dist/utils/navigation-legacy.d.ts +88 -0
  236. package/dist/utils/navigation-legacy.d.ts.map +1 -0
  237. package/dist/utils/navigation-legacy.js +2 -0
  238. package/dist/utils/navigation-legacy.js.map +1 -0
  239. package/dist/utils/navigation.d.ts +48 -0
  240. package/dist/utils/navigation.d.ts.map +1 -0
  241. package/dist/utils/navigation.js +2 -0
  242. package/dist/utils/navigation.js.map +1 -0
  243. package/dist/utils/side-nav.d.ts +6 -0
  244. package/dist/utils/side-nav.d.ts.map +1 -0
  245. package/dist/utils/side-nav.js +28 -0
  246. package/dist/utils/side-nav.js.map +1 -0
  247. package/dist/utils/use-breakpoint.d.ts +7 -0
  248. package/dist/utils/use-breakpoint.d.ts.map +1 -0
  249. package/dist/utils/use-breakpoint.js +13 -0
  250. package/dist/utils/use-breakpoint.js.map +1 -0
  251. package/package.json +3 -4
  252. package/src/components/badge-tag.tsx +1 -1
  253. package/src/components/header-navigation/header-navigation-stacked.stories.tsx +1 -1
  254. package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +3 -0
  255. package/src/components/header-navigation/header-navigation.module.less.d.ts +22 -0
  256. package/src/components/header-navigation/header-navigation.stories.tsx +1 -1
  257. package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +15 -0
  258. package/src/components/left-navigation/header-navigation-tiny.stories.tsx +2 -2
  259. package/src/components/left-navigation/side-navigation-links.tsx +1 -1
  260. package/src/components/left-navigation/side-navigation.module.less.d.ts +48 -0
  261. package/src/components/logo/logo-titan-text.module.less.d.ts +6 -0
  262. package/src/components/profile-dropdown/profile-dropdown.module.less.d.ts +21 -0
  263. package/src/components/profile-dropdown/profile-dropdown.tsx +13 -6
  264. package/src/components/titan-layout/layout-header.module.less +58 -15
  265. package/src/components/titan-layout/layout-header.module.less.d.ts +16 -0
  266. package/src/components/titan-layout/layout-header.tsx +12 -5
  267. package/src/components/titan-layout/layout-profile.stories.tsx +10 -1
  268. package/src/components/titan-layout/layout-profile.tsx +60 -25
  269. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +18 -5
  270. package/src/components/titan-layout/layout-sidebar-links.tsx +17 -5
  271. package/src/components/titan-layout/layout-sidebar.module.less +20 -19
  272. package/src/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  273. package/src/components/titan-layout/layout-sidebar.tsx +15 -9
  274. package/src/components/titan-layout/notifications-context.tsx +44 -0
  275. package/src/components/titan-layout/titan-layout.module.less +66 -16
  276. package/src/components/titan-layout/titan-layout.module.less.d.ts +15 -0
  277. package/src/components/titan-layout/titan-layout.stories.tsx +161 -18
  278. package/src/components/titan-layout/titan-layout.tsx +146 -58
  279. package/src/test/data-stories.module.less.d.ts +3 -0
  280. package/src/test/data.tsx +2 -3
@@ -0,0 +1,22 @@
1
+ export const __esModule: true;
2
+ export const calculating: string;
3
+ export const center: string;
4
+ export const heBottom: string;
5
+ export const heTopCenter: string;
6
+ export const heTopLeft: string;
7
+ export const heTopRight: string;
8
+ export const header: string;
9
+ export const headerStacked: string;
10
+ export const navigationIcon: string;
11
+ export const navigationItem: string;
12
+ export const navigationItemActive: string;
13
+ export const navigationItemCounter: string;
14
+ export const navigationItemCounterLong: string;
15
+ export const navigationItemMain: string;
16
+ export const navigationItemOverflow: string;
17
+ export const navigationItemTitle: string;
18
+ export const navigationLink: string;
19
+ export const navigationOverflow: string;
20
+ export const overflowPopover: string;
21
+ export const right: string;
22
+
@@ -154,7 +154,7 @@ export const WithAllMonolithData = () => (
154
154
  Task Management
155
155
  </ProfileDropdown.Link>
156
156
  <ProfileDropdown.Divider />
157
- <ProfileDropdown.Link id="sign-out" to="https://googgle.com">
157
+ <ProfileDropdown.Link id="sign-out" to="https://googgle.com" text="Sign Out">
158
158
  Sign Out <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
159
159
  </ProfileDropdown.Link>
160
160
  <ProfileDropdown.Section id="userid" className="c-neutral-100 fs-1">
@@ -0,0 +1,15 @@
1
+ export const __esModule: true;
2
+ export const heTopCenter: string;
3
+ export const heTopLeft: string;
4
+ export const heTopRight: string;
5
+ export const headerTiny: string;
6
+ export const navigationIcon: string;
7
+ export const navigationIconActive: string;
8
+ export const navigationItemActive: string;
9
+ export const navigationItemCounter: string;
10
+ export const navigationItemCounterLong: string;
11
+ export const navigationItemIconState: string;
12
+ export const navigationItemLabel: string;
13
+ export const navigationItemOverflow: string;
14
+ export const navigationLink: string;
15
+
@@ -93,7 +93,7 @@ export const WithAllMonolithData = () => (
93
93
  Task Management
94
94
  </ProfileDropdown.Link>
95
95
  <ProfileDropdown.Divider />
96
- <ProfileDropdown.Link id="sign-out" to="https://googgle.com">
96
+ <ProfileDropdown.Link id="sign-out" to="https://googgle.com" text="Sign Out">
97
97
  Sign Out{' '}
98
98
  <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
99
99
  </ProfileDropdown.Link>
@@ -162,7 +162,7 @@ export const WithAllMonolithDataCommercial = () => (
162
162
  Task Management
163
163
  </ProfileDropdown.Link>
164
164
  <ProfileDropdown.Divider />
165
- <ProfileDropdown.Link id="sign-out" to="https://googgle.com">
165
+ <ProfileDropdown.Link id="sign-out" to="https://googgle.com" text="Sign Out">
166
166
  Sign Out{' '}
167
167
  <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
168
168
  </ProfileDropdown.Link>
@@ -11,7 +11,7 @@ import {
11
11
  } from './side-navigation-links-internal';
12
12
 
13
13
  const WrappedLink: FC<{
14
- children: ReactElement;
14
+ children: ReactElement<any>;
15
15
  wrapper: NonNullable<SideNavigationLinkProps['wrapper']>;
16
16
  }> = ({ children, wrapper: WrapperComponent }) => {
17
17
  return (
@@ -0,0 +1,48 @@
1
+ export const __esModule: true;
2
+ export const divider: string;
3
+ export const navigationGroupItem: string;
4
+ export const navigationGroupWrapper: string;
5
+ export const navigationIcon: string;
6
+ export const navigationIconActive: string;
7
+ export const navigationIconInactive: string;
8
+ export const navigationItem: string;
9
+ export const navigationItemActive: string;
10
+ export const navigationItemCounter: string;
11
+ export const navigationItemCounterLong: string;
12
+ export const navigationItemGroupToggle: string;
13
+ export const navigationItemGroupToggleClick: string;
14
+ export const navigationItemGroupToggleWrapper: string;
15
+ export const navigationItemIconSwitch: string;
16
+ export const navigationItemIconWrapper: string;
17
+ export const navigationItemTextCollapsed: string;
18
+ export const navigationItemTextExpanded: string;
19
+ export const navigationItemTextSmall: string;
20
+ export const optionsIcon: string;
21
+ export const optionsIconWrapper: string;
22
+ export const optionsItem: string;
23
+ export const optionsItemContent: string;
24
+ export const optionsItemText: string;
25
+ export const sideNav: string;
26
+ export const sideNavBottom: string;
27
+ export const sideNavContent: string;
28
+ export const sideNavExpanded: string;
29
+ export const sideNavFooter: string;
30
+ export const sideNavMain: string;
31
+ export const sideNavNavigation: string;
32
+ export const sideNavSlim: string;
33
+ export const sideNavSubmenuBar: string;
34
+ export const sideNavSubmenuDrawer: string;
35
+ export const sideNavTop: string;
36
+ export const sideNavV1: string;
37
+ export const sideNavV2: string;
38
+ export const submenu: string;
39
+ export const submenuBar: string;
40
+ export const submenuGroupHeader: string;
41
+ export const submenuGroupHeaderEmpty: string;
42
+ export const submenuLink: string;
43
+ export const submenuLinkActive: string;
44
+ export const submenuLinkCounter: string;
45
+ export const submenuPopover: string;
46
+ export const submenuWrapper: string;
47
+ export const submenuWrapperCollapsed: string;
48
+
@@ -0,0 +1,6 @@
1
+ export const __esModule: true;
2
+ export const container: string;
3
+ export const logoTextDescription: string;
4
+ export const logoTextTitle: string;
5
+ export const logoWrapper: string;
6
+
@@ -0,0 +1,21 @@
1
+ export const __esModule: true;
2
+ export const avatarBadge: string;
3
+ export const badge: string;
4
+ export const badgeNoContent: string;
5
+ export const badgeWithContent: string;
6
+ export const counter: string;
7
+ export const dropdown: string;
8
+ export const dropdownContent: string;
9
+ export const dropdownContentBottomLeft: string;
10
+ export const dropdownContentWrapper: string;
11
+ export const dropdownLink: string;
12
+ export const dropdownSection: string;
13
+ export const expandIcon: string;
14
+ export const hint: string;
15
+ export const hintContent: string;
16
+ export const info: string;
17
+ export const profileImage: string;
18
+ export const triggerContainer: string;
19
+ export const triggerContainerHintArrow: string;
20
+ export const triggerContainerLegacy: string;
21
+
@@ -6,6 +6,7 @@ import SvgAccountInactive from '@servicetitan/anvil2/assets/icons/st/gnav_accoun
6
6
  import { BodyText, Popover, PopoverPropsStrict } from '@servicetitan/design-system';
7
7
  import classNames from 'classnames';
8
8
  import {
9
+ ComponentPropsWithoutRef,
9
10
  FC,
10
11
  HTMLAttributeAnchorTarget,
11
12
  MouseEvent,
@@ -147,6 +148,10 @@ const ProfileDropdownTrigger: FC<ProfileDropdownTriggerProps> = ({
147
148
  );
148
149
  };
149
150
 
151
+ export type ProfileItemContent =
152
+ | { children: string; text?: string }
153
+ | { children: ReactNode; text: string };
154
+
150
155
  export interface ProfileDropdownSectionPropsStrict {
151
156
  children: ReactNode;
152
157
  id: string;
@@ -155,14 +160,15 @@ export interface ProfileDropdownSectionPropsStrict {
155
160
  onClick?(e: MouseEvent): void;
156
161
  }
157
162
 
158
- export interface ProfileDropdownSectionProps extends ProfileDropdownSectionPropsStrict {
159
- [key: string]: any;
160
- }
163
+ export type ProfileDropdownSectionProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> &
164
+ ProfileDropdownSectionPropsStrict &
165
+ ProfileItemContent;
161
166
 
162
167
  export const ProfileDropdownSection: FC<ProfileDropdownSectionProps> = ({
163
168
  children,
164
169
  className,
165
170
  id,
171
+ text,
166
172
  tooltip,
167
173
  onClick,
168
174
  ...rest
@@ -206,9 +212,9 @@ export interface ProfileDropdownLinkPropsStrict {
206
212
  counter?: CounterTagValue;
207
213
  }
208
214
 
209
- export interface ProfileDropdownLinkProps extends ProfileDropdownLinkPropsStrict {
210
- [key: string]: any;
211
- }
215
+ export type ProfileDropdownLinkProps = Omit<ComponentPropsWithoutRef<'a'>, 'children'> &
216
+ ProfileDropdownLinkPropsStrict &
217
+ ProfileItemContent;
212
218
 
213
219
  export const ProfileDropdownLink: FC<ProfileDropdownLinkProps> = ({
214
220
  children,
@@ -218,6 +224,7 @@ export const ProfileDropdownLink: FC<ProfileDropdownLinkProps> = ({
218
224
  counter,
219
225
  tag,
220
226
  target,
227
+ text,
221
228
  to,
222
229
  tooltip,
223
230
  onClick,
@@ -4,28 +4,27 @@
4
4
  @size-links-tiny: 24px;
5
5
 
6
6
  .header {
7
- display: grid;
7
+ display: flex;
8
+ justify-content: space-between;
8
9
 
9
10
  background-color: @color-white;
10
11
  color: @color-black;
12
+ border-bottom: 1px solid @color-neutral-60;
11
13
 
12
14
  & > * {
13
15
  overflow-y: hidden;
14
16
  }
15
17
 
16
18
  .he-top-left {
17
- grid-column: span 1;
18
19
  display: flex;
19
20
  align-items: center;
20
21
  }
21
22
 
22
23
  .he-top-center {
23
- grid-column: span 1;
24
+ overflow: hidden;
24
25
  }
25
26
 
26
27
  .he-top-right {
27
- grid-column: span 1;
28
-
29
28
  & > * {
30
29
  color: @color-black;
31
30
  }
@@ -92,31 +91,65 @@
92
91
  // desktop
93
92
  @media only screen and (min-width: 768px) {
94
93
  .header {
95
- grid-template-columns: repeat(3, 1fr);
96
- grid-template-rows: 48px;
97
-
94
+ height: var(--nav-offset-top);
98
95
  .navigation-link {
99
96
  margin: 6px 2px;
100
97
  padding: 6px 6px;
101
98
  }
99
+
100
+ .he-top-left {
101
+ padding-left: @spacing-1;
102
+ }
103
+ .he-top-center {
104
+ flex: 1;
105
+ margin-left: @spacing-2;
106
+ margin-right: @spacing-2;
107
+ max-width: 400px;
108
+ }
102
109
  }
110
+ }
111
+ // desktop wide
112
+ @media only screen and (min-width: 1200px) {
113
+ .header {
114
+ display: grid;
115
+ grid-template-columns: repeat(3, 1fr);
116
+ grid-template-rows: 48px;
103
117
 
104
- .he-top-left {
105
- padding-left: @spacing-1;
118
+ .he-top-left,
119
+ .he-top-center,
120
+ .he-top-right {
121
+ grid-column: span 1;
122
+ }
123
+
124
+ .he-top-center {
125
+ max-width: unset;
126
+ }
106
127
  }
107
128
  }
108
129
 
109
130
  // mobile
110
131
  @media only screen and (max-width: 768px) {
111
132
  .header {
112
- grid-template-columns: repeat(3, 1fr);
113
- grid-template-rows: 44px;
114
-
115
- padding: @spacing-1 @spacing-half;
133
+ padding: @spacing-1 @spacing-0;
116
134
 
117
135
  .navigation-link {
118
136
  padding: 10px;
119
137
  }
138
+
139
+ .he-top-center {
140
+ max-width: unset;
141
+ flex: 1;
142
+ margin-left: @spacing-3;
143
+ margin-right: @spacing-3;
144
+ }
145
+
146
+ .he-top-left {
147
+ margin-left: @spacing-half;
148
+ }
149
+
150
+ .he-top-right {
151
+ margin-right: @spacing-half;
152
+ }
120
153
  }
121
154
  }
122
155
 
@@ -133,7 +166,8 @@
133
166
  color: @color-white;
134
167
  font-weight: @font-weight-semibold;
135
168
  font-size: 8px !important;
136
- min-width: 12px;
169
+ min-width: 16px !important;
170
+ height: 16px !important;
137
171
  position: absolute;
138
172
  top: 4px;
139
173
  right: -2px;
@@ -151,3 +185,12 @@
151
185
  right: -8px;
152
186
  }
153
187
  }
188
+
189
+ @media only screen and (min-width: 768px) {
190
+ .navigation-link {
191
+ .navigation-item-counter {
192
+ min-width: 12px !important;
193
+ height: 12px !important;
194
+ }
195
+ }
196
+ }
@@ -0,0 +1,16 @@
1
+ export const __esModule: true;
2
+ export const heTopCenter: string;
3
+ export const heTopLeft: string;
4
+ export const heTopRight: string;
5
+ export const heTopRightText: string;
6
+ export const header: string;
7
+ export const navigationIcon: string;
8
+ export const navigationIconActive: string;
9
+ export const navigationItemActive: string;
10
+ export const navigationItemCounter: string;
11
+ export const navigationItemCounterLong: string;
12
+ export const navigationItemIconState: string;
13
+ export const navigationItemLabel: string;
14
+ export const navigationItemOverflow: string;
15
+ export const navigationLink: string;
16
+
@@ -1,7 +1,7 @@
1
1
  import SvgBurgerMenu from '@servicetitan/anvil2/assets/icons/material/round/menu.svg';
2
2
  import classNames from 'classnames';
3
3
  import { ComponentPropsWithoutRef, FC, ReactElement, ReactNode } from 'react';
4
- import { LayoutPlacementContext, useTitanLayoutContext } from './layout-context';
4
+ import { LayoutPlacementContext } from './layout-context';
5
5
  import { LayoutHeaderNavigationTrigger } from './layout-header-links';
6
6
  import * as Styles from './layout-header.module.less';
7
7
  import { TitanLayoutLogoProps } from './layout-logo';
@@ -25,6 +25,8 @@ export type LayoutHeaderProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'
25
25
  logo: ReactElement<TitanLayoutLogoProps>;
26
26
  profile?: ReactElement;
27
27
 
28
+ isMobile: boolean;
29
+ hasNotifications: boolean;
28
30
  onBurgerClick?: (e: MouseEvent) => void;
29
31
  };
30
32
 
@@ -35,13 +37,13 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
35
37
  rightClassName,
36
38
  center,
37
39
  centerClassName,
40
+ isMobile,
41
+ hasNotifications,
38
42
  logo,
39
43
  profile,
40
44
  onBurgerClick,
41
45
  ...rest
42
46
  }) => {
43
- const { breakpoint } = useTitanLayoutContext();
44
-
45
47
  return (
46
48
  <LayoutPlacementContext.Provider value="top">
47
49
  <div
@@ -50,7 +52,7 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
50
52
  data-cy="header-navigation"
51
53
  >
52
54
  <div className={classNames(Styles.heTopLeft)} data-cy="navigation-left">
53
- {breakpoint.isMobile && (
55
+ {isMobile && (
54
56
  <LayoutHeaderNavigationTrigger
55
57
  id="burger"
56
58
  title=""
@@ -58,12 +60,17 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
58
60
  iconActive={SvgBurgerMenu}
59
61
  className="m-r-1"
60
62
  onClick={onBurgerClick}
63
+ tag={{ value: hasNotifications }}
61
64
  />
62
65
  )}
63
66
  {logo}
64
67
  </div>
65
68
  <div
66
- className={classNames(Styles.heTopCenter, centerClassName)}
69
+ className={classNames(
70
+ Styles.heTopCenter,
71
+ 'd-f align-items-center justify-content-center',
72
+ centerClassName
73
+ )}
67
74
  data-cy="navigation-center"
68
75
  >
69
76
  {center}
@@ -18,7 +18,7 @@ export default {
18
18
 
19
19
  export const ProfileDefault = withTitanLayout(
20
20
  <ProfileDropdown>
21
- <ProfileDropdown.Link id="first" to="https://google.com">
21
+ <ProfileDropdown.Link id="first" to="https://google.com" external>
22
22
  first link
23
23
  </ProfileDropdown.Link>
24
24
  <ProfileDropdown.Section id="second" onClick={() => alert('second click')}>
@@ -33,5 +33,14 @@ export const ProfileDefault = withTitanLayout(
33
33
  third link
34
34
  </ProfileDropdown.Link>
35
35
  <ProfileDropdown.Divider />
36
+ <ProfileDropdown.Section
37
+ id="forth"
38
+ onClick={() => alert('forth click')}
39
+ text="Sign Out user"
40
+ >
41
+ Sign Out
42
+ <span className="c-neutral-60 m-l-1">user</span>
43
+ </ProfileDropdown.Section>
44
+ <ProfileDropdown.Divider />
36
45
  </ProfileDropdown>
37
46
  );
@@ -1,8 +1,8 @@
1
1
  import SvgAccountActive from '@servicetitan/anvil2/assets/icons/st/gnav_account_active.svg';
2
2
  import SvgAccountInactive from '@servicetitan/anvil2/assets/icons/st/gnav_account_inactive.svg';
3
3
 
4
- import { FC, useState } from 'react';
5
- import { NavigationComponentContext } from '../../utils/navigation-context';
4
+ import { FC, MouseEvent, useEffect, useState } from 'react';
5
+ import { NavLinkComponentProps, NavigationComponentContext } from '../../utils/navigation-context';
6
6
  import {
7
7
  ProfileDropdown as DesktopProfileDropdown,
8
8
  ProfileDropdownLinkProps,
@@ -17,6 +17,7 @@ import {
17
17
  InternalSideNavigationGroupLink,
18
18
  InternalSideNavigationGroupTrigger,
19
19
  } from './layout-sidebar-links-internal';
20
+ import { useNotificationsContext, useNotificationsState } from './notifications-context';
20
21
 
21
22
  export type {
22
23
  ProfileDropdownProps,
@@ -24,6 +25,10 @@ export type {
24
25
  ProfileDropdownLinkProps,
25
26
  } from '../profile-dropdown/profile-dropdown';
26
27
 
28
+ const ExternalNavComponent: FC<NavLinkComponentProps> = ({ children, isActive, ...props }) => (
29
+ <a {...props}>{children}</a>
30
+ );
31
+
27
32
  const ProfileDropdownContent: FC<ProfileDropdownProps> = props => {
28
33
  const { breakpoint, NavigationComponent } = useTitanLayoutContext();
29
34
  return breakpoint.isMobile ? (
@@ -40,24 +45,37 @@ const MobileProfileDropdown: FC<ProfileDropdownProps & NavigationComponentProps>
40
45
  children,
41
46
  ...props
42
47
  }) => {
48
+ const id = '__profile';
43
49
  const [expanded, setExpanded] = useState(false);
44
- const onExpandToggle = () => setExpanded(!expanded);
50
+ const { hasNotifications, NotificationsContextProvider } = useNotificationsState();
51
+ const { onNotificationsUpdate } = useNotificationsContext();
52
+ const onExpandToggle = (e: MouseEvent<never>) => {
53
+ e.stopPropagation();
54
+ setExpanded(!expanded);
55
+ };
56
+
57
+ useEffect(() => {
58
+ onNotificationsUpdate(id, hasNotifications);
59
+ }, [hasNotifications, onNotificationsUpdate]);
60
+
45
61
  return (
46
- <InternalSideNavigationGroup
47
- id="__profile"
48
- to={undefined}
49
- title="Profile"
50
- icon={SvgAccountInactive}
51
- iconActive={SvgAccountActive}
52
- isActive={expanded}
53
- {...props}
54
- submenuExpanded={expanded}
55
- onExpandToggle={onExpandToggle}
56
- onClick={onExpandToggle}
57
- tag={undefined}
58
- >
59
- {children}
60
- </InternalSideNavigationGroup>
62
+ <NotificationsContextProvider>
63
+ <InternalSideNavigationGroup
64
+ id={id}
65
+ to={undefined}
66
+ title="Profile"
67
+ icon={SvgAccountInactive}
68
+ iconActive={SvgAccountActive}
69
+ isActive={expanded}
70
+ {...props}
71
+ submenuExpanded={expanded}
72
+ onExpandToggle={onExpandToggle}
73
+ onClick={onExpandToggle}
74
+ tag={{ value: hasNotifications }}
75
+ >
76
+ {children}
77
+ </InternalSideNavigationGroup>
78
+ </NotificationsContextProvider>
61
79
  );
62
80
  };
63
81
 
@@ -70,6 +88,18 @@ const ProfileDropdownDivider: FC = () => {
70
88
  );
71
89
  };
72
90
 
91
+ const getText = (props: any): string | undefined => {
92
+ if (typeof props.children === 'string') {
93
+ return props.children;
94
+ }
95
+
96
+ if (typeof props.text === 'string') {
97
+ return props.text;
98
+ }
99
+
100
+ return undefined;
101
+ };
102
+
73
103
  const ProfileDropdownSection: FC<ProfileDropdownSectionProps> = props => {
74
104
  const { breakpoint } = useTitanLayoutContext();
75
105
  return breakpoint.isMobile ? (
@@ -79,9 +109,9 @@ const ProfileDropdownSection: FC<ProfileDropdownSectionProps> = props => {
79
109
  );
80
110
  };
81
111
  const MobileProfileDropdownSection: FC<ProfileDropdownSectionProps> = props => {
82
- const title = typeof props.children === 'string' ? props.children : undefined;
83
- return title ? (
84
- <InternalSideNavigationGroupTrigger id={props.id} title={title} onClick={props.onClick} />
112
+ const text = getText(props);
113
+ return text ? (
114
+ <InternalSideNavigationGroupTrigger id={props.id} title={text} onClick={props.onClick} />
85
115
  ) : null;
86
116
  };
87
117
 
@@ -94,17 +124,22 @@ const ProfileDropdownLink: FC<ProfileDropdownLinkProps> = props => {
94
124
  );
95
125
  };
96
126
  const MobileProfileDropdownLink: FC<ProfileDropdownLinkProps & NavigationComponentProps> = ({
127
+ external,
97
128
  to,
98
129
  navigationComponent,
99
130
  ...props
100
131
  }) => {
101
- const title = typeof props.children === 'string' ? props.children : undefined;
102
- return title ? (
132
+ const { onNotificationsUpdate } = useNotificationsContext();
133
+ const text = getText(props);
134
+ const isExternalLink = external ?? to?.startsWith('http');
135
+ onNotificationsUpdate(props.id, !!props.tag?.value);
136
+
137
+ return text ? (
103
138
  <InternalSideNavigationGroupLink
104
139
  {...props}
105
140
  to={to}
106
- title={title}
107
- navigationComponent={navigationComponent}
141
+ title={text}
142
+ navigationComponent={isExternalLink ? ExternalNavComponent : navigationComponent}
108
143
  />
109
144
  ) : null;
110
145
  };
@@ -156,7 +156,9 @@ export const InternalSideNavigationLink: FC<InternalSideNavigationLinkProps> = (
156
156
 
157
157
  /** Side Navigation menu trigger (for internal usage) */
158
158
  export const InternalSideNavigationTrigger: FC<
159
- Omit<InternalSideNavigationLinkProps, 'to' | 'navigationComponent'> & { onClick?: () => void }
159
+ Omit<InternalSideNavigationLinkProps, 'to' | 'navigationComponent'> & {
160
+ onClick?: (e: MouseEvent<never>) => void;
161
+ }
160
162
  > = ({ className, dataPrefix, isActive, submenuExpanded, onExpandToggle, onClick, ...props }) => {
161
163
  return (
162
164
  <div
@@ -180,12 +182,22 @@ export const InternalSideNavigationTrigger: FC<
180
182
 
181
183
  export const InternalSideNavigationGroupLink: FC<
182
184
  NavigationSubmenuItemData & NavigationComponentProps
183
- > = ({ id, counter, tag, title, to, isActive, navigationComponent: NavigationComponent }) => {
185
+ > = ({
186
+ id,
187
+ counter,
188
+ tag,
189
+ title,
190
+ to,
191
+ isActive,
192
+ navigationComponent: NavigationComponent,
193
+ ...rest
194
+ }) => {
184
195
  return (
185
196
  <NavigationComponent
197
+ key={id}
186
198
  data-cy={`navigation-item-${id}`}
187
199
  data-pendo={`navigation-item-${id}`}
188
- key={id}
200
+ {...rest}
189
201
  to={to}
190
202
  className={classNames(Styles.submenuItem, Styles.submenuLink, {
191
203
  [Styles.submenuLinkActive]: isActive === true,
@@ -201,12 +213,13 @@ export const InternalSideNavigationGroupLink: FC<
201
213
 
202
214
  export const InternalSideNavigationGroupTrigger: FC<
203
215
  Omit<NavigationSubmenuItemData, 'to'> & { onClick?: (e: MouseEvent<any>) => void }
204
- > = ({ id, counter, onClick, tag, title, isActive }) => {
216
+ > = ({ id, counter, onClick, tag, title, isActive, ...rest }) => {
205
217
  return (
206
218
  <div
207
219
  data-cy={`navigation-item-${id}`}
208
220
  data-pendo={`navigation-item-${id}`}
209
221
  key={id}
222
+ {...rest}
210
223
  className={classNames(Styles.submenuItem, {
211
224
  [Styles.submenuLink]: !!onClick,
212
225
  [Styles.submenuLinkActive]: isActive === true,
@@ -231,7 +244,7 @@ export const InternalSideNavigationGroup: FC<
231
244
  onExpandToggle?: (e: MouseEvent<never>) => void;
232
245
  tag: BadgeTagProps | undefined;
233
246
  to: NavigationItemData['to'] | undefined;
234
- onClick?: () => void;
247
+ onClick?: (e: MouseEvent<never>) => void;
235
248
  }
236
249
  > = ({ children, submenuExpanded, to, onExpandToggle, onClick, ...props }) => {
237
250
  return (