@servicetitan/navigation 11.0.0-canary.237.c90556e.0 → 11.0.0-canary.237.dd4db7e.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 (283) 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 +173 -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 +200 -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 +16 -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 +536 -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 +40 -0
  206. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -0
  207. package/dist/components/titan-layout/titan-layout.js +161 -0
  208. package/dist/components/titan-layout/titan-layout.js.map +1 -0
  209. package/dist/components/titan-layout/titan-layout.module.less +107 -0
  210. package/dist/components/titan-layout/titan-layout.stories.d.ts +22 -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 +83 -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/logo/logo-titan-text.tsx +1 -1
  263. package/src/components/profile-dropdown/profile-dropdown.module.less +2 -0
  264. package/src/components/profile-dropdown/profile-dropdown.module.less.d.ts +21 -0
  265. package/src/components/profile-dropdown/profile-dropdown.tsx +13 -6
  266. package/src/components/titan-layout/layout-header.module.less +62 -15
  267. package/src/components/titan-layout/layout-header.module.less.d.ts +16 -0
  268. package/src/components/titan-layout/layout-header.tsx +12 -5
  269. package/src/components/titan-layout/layout-logo.tsx +13 -6
  270. package/src/components/titan-layout/layout-profile.stories.tsx +10 -1
  271. package/src/components/titan-layout/layout-profile.tsx +60 -25
  272. package/src/components/titan-layout/layout-sidebar-links-internal.tsx +18 -5
  273. package/src/components/titan-layout/layout-sidebar-links.tsx +17 -5
  274. package/src/components/titan-layout/layout-sidebar.module.less +29 -21
  275. package/src/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  276. package/src/components/titan-layout/layout-sidebar.tsx +15 -9
  277. package/src/components/titan-layout/notifications-context.tsx +44 -0
  278. package/src/components/titan-layout/titan-layout.module.less +73 -19
  279. package/src/components/titan-layout/titan-layout.module.less.d.ts +16 -0
  280. package/src/components/titan-layout/titan-layout.stories.tsx +166 -19
  281. package/src/components/titan-layout/titan-layout.tsx +193 -75
  282. package/src/test/data-stories.module.less.d.ts +3 -0
  283. 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
+
@@ -3,7 +3,7 @@ import { CSSProperties, FC, ReactNode } from 'react';
3
3
  import { LogoTitanSvg } from './logo-titan';
4
4
  import * as Styles from './logo-titan-text.module.less';
5
5
 
6
- export type WrapperProps = FC<{ className: string; children: ReactNode; style?: CSSProperties }>;
6
+ export type WrapperProps = FC<{ className?: string; children: ReactNode; style?: CSSProperties }>;
7
7
 
8
8
  export interface LogoTitanProps {
9
9
  mantleFill?: string;
@@ -143,6 +143,8 @@
143
143
  position: absolute;
144
144
  top: @spacing-half;
145
145
  margin-left: @spacing-half;
146
+ min-width: 12px !important;
147
+ min-height: 12px !important;
146
148
  }
147
149
  }
148
150
 
@@ -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,29 @@
4
4
  @size-links-tiny: 24px;
5
5
 
6
6
  .header {
7
- display: grid;
7
+ --nav-top-content-height: 32px;
8
+ display: flex;
9
+ justify-content: space-between;
8
10
 
9
11
  background-color: @color-white;
10
12
  color: @color-black;
13
+ box-sizing: border-box;
14
+ outline: 1px solid #dfe0e1;
11
15
 
12
16
  & > * {
13
17
  overflow-y: hidden;
14
18
  }
15
19
 
16
20
  .he-top-left {
17
- grid-column: span 1;
18
21
  display: flex;
19
22
  align-items: center;
20
23
  }
21
24
 
22
25
  .he-top-center {
23
- grid-column: span 1;
26
+ overflow: hidden;
24
27
  }
25
28
 
26
29
  .he-top-right {
27
- grid-column: span 1;
28
-
29
30
  & > * {
30
31
  color: @color-black;
31
32
  }
@@ -92,31 +93,67 @@
92
93
  // desktop
93
94
  @media only screen and (min-width: 768px) {
94
95
  .header {
95
- grid-template-columns: repeat(3, 1fr);
96
- grid-template-rows: 48px;
97
-
96
+ height: var(--nav-offset-top);
98
97
  .navigation-link {
99
98
  margin: 6px 2px;
100
99
  padding: 6px 6px;
101
100
  }
101
+
102
+ .he-top-left {
103
+ padding-left: @spacing-1;
104
+ }
105
+ .he-top-center {
106
+ flex: 1;
107
+ margin-left: @spacing-2;
108
+ margin-right: @spacing-2;
109
+ max-width: 400px;
110
+ }
102
111
  }
112
+ }
113
+ // desktop wide
114
+ @media only screen and (min-width: 1200px) {
115
+ .header {
116
+ display: grid;
117
+ grid-template-columns: repeat(3, 1fr);
118
+ grid-template-rows: 48px;
103
119
 
104
- .he-top-left {
105
- padding-left: @spacing-1;
120
+ .he-top-left,
121
+ .he-top-center,
122
+ .he-top-right {
123
+ grid-column: span 1;
124
+ }
125
+
126
+ .he-top-center {
127
+ max-width: unset;
128
+ }
106
129
  }
107
130
  }
108
131
 
109
132
  // mobile
110
133
  @media only screen and (max-width: 768px) {
111
134
  .header {
112
- grid-template-columns: repeat(3, 1fr);
113
- grid-template-rows: 44px;
114
-
115
- padding: @spacing-1 @spacing-half;
135
+ padding: @spacing-2 @spacing-0;
136
+ height: var(--nav-offset-top);
137
+ --nav-top-content-height: 40px;
116
138
 
117
139
  .navigation-link {
118
140
  padding: 10px;
119
141
  }
142
+
143
+ .he-top-center {
144
+ max-width: unset;
145
+ flex: 1;
146
+ margin-left: @spacing-3;
147
+ margin-right: @spacing-3;
148
+ }
149
+
150
+ .he-top-left {
151
+ margin-left: @spacing-half;
152
+ }
153
+
154
+ .he-top-right {
155
+ margin-right: @spacing-half;
156
+ }
120
157
  }
121
158
  }
122
159
 
@@ -133,7 +170,8 @@
133
170
  color: @color-white;
134
171
  font-weight: @font-weight-semibold;
135
172
  font-size: 8px !important;
136
- min-width: 12px;
173
+ min-width: 16px !important;
174
+ height: 16px !important;
137
175
  position: absolute;
138
176
  top: 4px;
139
177
  right: -2px;
@@ -151,3 +189,12 @@
151
189
  right: -8px;
152
190
  }
153
191
  }
192
+
193
+ @media only screen and (min-width: 768px) {
194
+ .navigation-link {
195
+ .navigation-item-counter {
196
+ min-width: 12px !important;
197
+ height: 12px !important;
198
+ }
199
+ }
200
+ }
@@ -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}
@@ -33,20 +33,27 @@ export const TitanLayoutLogo: FC<TitanLayoutLogoProps> = ({
33
33
  const Wrapper = logoWrapper;
34
34
  const logoSize = isMobile ? 44 : 56;
35
35
  const logoCompanySize = 48;
36
+ const showCompanyTitle = title === true && !isMobile;
36
37
 
37
38
  return (
38
- <div className={classNames('d-f align-items-center', className)}>
39
- {typeof title === 'string' ? (
39
+ <div
40
+ className={classNames(
41
+ 'd-f align-items-center',
42
+ { 'p-t-half': showCompanyTitle },
43
+ className
44
+ )}
45
+ >
46
+ {showCompanyTitle ? (
47
+ <Wrapper>
48
+ <LogoCompanyTitle height={logoCompanySize} />
49
+ </Wrapper>
50
+ ) : typeof title === 'string' ? (
40
51
  <Fragment>
41
52
  <LogoTitan size={logoSize} mantleFill={mantleFill} logoWrapper={Wrapper} />
42
53
  {!isMobile && (
43
54
  <LogoTitanTitle className="c-inherit m-l-1">{title}</LogoTitanTitle>
44
55
  )}
45
56
  </Fragment>
46
- ) : title === true && !isMobile ? (
47
- <Wrapper className="">
48
- <LogoCompanyTitle height={logoCompanySize} />
49
- </Wrapper>
50
57
  ) : (
51
58
  <LogoTitan size={logoSize} mantleFill={mantleFill} logoWrapper={Wrapper} />
52
59
  )}
@@ -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
  };