@servicetitan/navigation 11.0.0-canary.237.ff793b3.0 → 11.1.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 (189) hide show
  1. package/dist/components/badge-tag.js +7 -2
  2. package/dist/components/badge-tag.js.map +1 -1
  3. package/dist/components/counter-tag.js +10 -2
  4. package/dist/components/counter-tag.js.map +1 -1
  5. package/dist/components/header-navigation/header-navigation-content.js +44 -8
  6. package/dist/components/header-navigation/header-navigation-content.js.map +1 -1
  7. package/dist/components/header-navigation/header-navigation-links.js +49 -13
  8. package/dist/components/header-navigation/header-navigation-links.js.map +1 -1
  9. package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +3 -0
  10. package/dist/components/header-navigation/header-navigation.js +178 -46
  11. package/dist/components/header-navigation/header-navigation.js.map +1 -1
  12. package/dist/components/header-navigation/header-navigation.module.less.d.ts +22 -0
  13. package/dist/components/header-navigation/index.js +1 -0
  14. package/dist/components/header-navigation/index.js.map +1 -1
  15. package/dist/components/header-navigation/with-tooltip.js +7 -1
  16. package/dist/components/header-navigation/with-tooltip.js.map +1 -1
  17. package/dist/components/left-navigation/header-navigation-tiny-links.js +62 -15
  18. package/dist/components/left-navigation/header-navigation-tiny-links.js.map +1 -1
  19. package/dist/components/left-navigation/header-navigation-tiny.js +27 -2
  20. package/dist/components/left-navigation/header-navigation-tiny.js.map +1 -1
  21. package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +15 -0
  22. package/dist/components/left-navigation/index.d.ts +1 -1
  23. package/dist/components/left-navigation/index.d.ts.map +1 -1
  24. package/dist/components/left-navigation/index.js +1 -1
  25. package/dist/components/left-navigation/index.js.map +1 -1
  26. package/dist/components/left-navigation/interface-internal.js +2 -1
  27. package/dist/components/left-navigation/interface-internal.js.map +1 -1
  28. package/dist/components/left-navigation/interface.js +2 -1
  29. package/dist/components/left-navigation/interface.js.map +1 -1
  30. package/dist/components/left-navigation/side-navigation-context.js +4 -3
  31. package/dist/components/left-navigation/side-navigation-context.js.map +1 -1
  32. package/dist/components/left-navigation/side-navigation-links-internal.js +76 -16
  33. package/dist/components/left-navigation/side-navigation-links-internal.js.map +1 -1
  34. package/dist/components/left-navigation/side-navigation-links.js +34 -13
  35. package/dist/components/left-navigation/side-navigation-links.js.map +1 -1
  36. package/dist/components/left-navigation/side-navigation.js +314 -85
  37. package/dist/components/left-navigation/side-navigation.js.map +1 -1
  38. package/dist/components/left-navigation/side-navigation.module.less.d.ts +48 -0
  39. package/dist/components/left-navigation/with-tooltip.js +12 -1
  40. package/dist/components/left-navigation/with-tooltip.js.map +1 -1
  41. package/dist/components/links.js +28 -7
  42. package/dist/components/links.js.map +1 -1
  43. package/dist/components/logo/logo-company-title.js +19 -3
  44. package/dist/components/logo/logo-company-title.js.map +1 -1
  45. package/dist/components/logo/logo-titan-text.js +50 -6
  46. package/dist/components/logo/logo-titan-text.js.map +1 -1
  47. package/dist/components/logo/logo-titan-text.module.less.d.ts +6 -0
  48. package/dist/components/logo/logo-titan.d.ts +1 -0
  49. package/dist/components/logo/logo-titan.d.ts.map +1 -1
  50. package/dist/components/logo/logo-titan.js +53 -8
  51. package/dist/components/logo/logo-titan.js.map +1 -1
  52. package/dist/components/profile-dropdown/profile-dropdown.d.ts +2 -0
  53. package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
  54. package/dist/components/profile-dropdown/profile-dropdown.js +176 -32
  55. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  56. package/dist/components/profile-dropdown/profile-dropdown.module.less +20 -8
  57. package/dist/components/profile-dropdown/profile-dropdown.module.less.d.ts +23 -0
  58. package/dist/components/profile-dropdown/profile-icon.js +49 -3
  59. package/dist/components/profile-dropdown/profile-icon.js.map +1 -1
  60. package/dist/components/titan-layout/index.d.ts +2 -2
  61. package/dist/components/titan-layout/index.d.ts.map +1 -1
  62. package/dist/components/titan-layout/index.js +1 -2
  63. package/dist/components/titan-layout/index.js.map +1 -1
  64. package/dist/components/titan-layout/interface-internal.js +2 -1
  65. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  66. package/dist/components/titan-layout/interface.js +2 -1
  67. package/dist/components/titan-layout/interface.js.map +1 -1
  68. package/dist/components/titan-layout/layout-context.js +15 -6
  69. package/dist/components/titan-layout/layout-context.js.map +1 -1
  70. package/dist/components/titan-layout/layout-header-dark.d.ts +10 -0
  71. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -0
  72. package/dist/components/titan-layout/layout-header-dark.js +146 -0
  73. package/dist/components/titan-layout/layout-header-dark.js.map +1 -0
  74. package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
  75. package/dist/components/titan-layout/layout-header-links.js +61 -15
  76. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  77. package/dist/components/titan-layout/layout-header.d.ts +2 -6
  78. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  79. package/dist/components/titan-layout/layout-header.js +46 -2
  80. package/dist/components/titan-layout/layout-header.js.map +1 -1
  81. package/dist/components/titan-layout/layout-header.module.less +320 -90
  82. package/dist/components/titan-layout/layout-header.module.less.d.ts +34 -0
  83. package/dist/components/titan-layout/layout-logo.d.ts +5 -3
  84. package/dist/components/titan-layout/layout-logo.d.ts.map +1 -1
  85. package/dist/components/titan-layout/layout-logo.js +45 -9
  86. package/dist/components/titan-layout/layout-logo.js.map +1 -1
  87. package/dist/components/titan-layout/layout-logo.stories.d.ts +15 -4
  88. package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -1
  89. package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
  90. package/dist/components/titan-layout/layout-profile.js +87 -31
  91. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  92. package/dist/components/titan-layout/layout-sidebar-links-internal.js +162 -36
  93. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  94. package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
  95. package/dist/components/titan-layout/layout-sidebar-links.js +33 -13
  96. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  97. package/dist/components/titan-layout/layout-sidebar.js +198 -34
  98. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  99. package/dist/components/titan-layout/layout-sidebar.module.less +6 -2
  100. package/dist/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  101. package/dist/components/titan-layout/notifications-context.js +20 -10
  102. package/dist/components/titan-layout/notifications-context.js.map +1 -1
  103. package/dist/components/titan-layout/titan-layout.d.ts +7 -8
  104. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  105. package/dist/components/titan-layout/titan-layout.js +275 -121
  106. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  107. package/dist/components/titan-layout/titan-layout.module.less +9 -2
  108. package/dist/components/titan-layout/titan-layout.module.less.d.ts +17 -0
  109. package/dist/components/titan-layout/titan-layout.stories.d.ts +6 -0
  110. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -1
  111. package/dist/components/titan-layout/with-tooltip.d.ts +4 -1
  112. package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -1
  113. package/dist/components/titan-layout/with-tooltip.js +13 -1
  114. package/dist/components/titan-layout/with-tooltip.js.map +1 -1
  115. package/dist/index.d.ts +4 -3
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +2 -3
  118. package/dist/index.js.map +1 -1
  119. package/dist/test/data-stories.module.less.d.ts +3 -0
  120. package/dist/test/data.js +223 -90
  121. package/dist/test/data.js.map +1 -1
  122. package/dist/utils/counter-tag.js +2 -1
  123. package/dist/utils/counter-tag.js.map +1 -1
  124. package/dist/utils/navigation-context.js +12 -6
  125. package/dist/utils/navigation-context.js.map +1 -1
  126. package/dist/utils/navigation-legacy.js +2 -1
  127. package/dist/utils/navigation-legacy.js.map +1 -1
  128. package/dist/utils/navigation.js +2 -1
  129. package/dist/utils/navigation.js.map +1 -1
  130. package/dist/utils/side-nav.js +9 -6
  131. package/dist/utils/side-nav.js.map +1 -1
  132. package/dist/utils/use-breakpoint.js +12 -9
  133. package/dist/utils/use-breakpoint.js.map +1 -1
  134. package/package.json +4 -4
  135. package/src/components/left-navigation/index.ts +1 -1
  136. package/src/components/logo/logo-titan.tsx +3 -1
  137. package/src/components/profile-dropdown/profile-dropdown.module.less +20 -8
  138. package/src/components/profile-dropdown/profile-dropdown.module.less.d.ts +2 -0
  139. package/src/components/profile-dropdown/profile-dropdown.tsx +45 -13
  140. package/src/components/titan-layout/index.ts +2 -2
  141. package/src/components/titan-layout/layout-header-dark.tsx +186 -0
  142. package/src/components/titan-layout/layout-header-links.tsx +3 -2
  143. package/src/components/titan-layout/layout-header.module.less +320 -90
  144. package/src/components/titan-layout/layout-header.module.less.d.ts +20 -2
  145. package/src/components/titan-layout/layout-header.tsx +18 -17
  146. package/src/components/titan-layout/layout-logo.stories.tsx +103 -15
  147. package/src/components/titan-layout/layout-logo.tsx +33 -36
  148. package/src/components/titan-layout/layout-profile.stories.tsx +1 -1
  149. package/src/components/titan-layout/layout-profile.tsx +46 -17
  150. package/src/components/titan-layout/layout-sidebar-links.tsx +5 -1
  151. package/src/components/titan-layout/layout-sidebar.module.less +6 -2
  152. package/src/components/titan-layout/layout-sidebar.tsx +1 -1
  153. package/src/components/titan-layout/titan-layout.module.less +9 -2
  154. package/src/components/titan-layout/titan-layout.module.less.d.ts +2 -1
  155. package/src/components/titan-layout/titan-layout.stories.tsx +82 -20
  156. package/src/components/titan-layout/titan-layout.tsx +115 -125
  157. package/src/components/titan-layout/with-tooltip.tsx +5 -2
  158. package/src/index.ts +4 -5
  159. package/src/utils/use-breakpoint.ts +1 -1
  160. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +0 -13
  161. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +0 -1
  162. package/dist/components/header-navigation/header-navigation-extra.stories.js +0 -29
  163. package/dist/components/header-navigation/header-navigation-extra.stories.js.map +0 -1
  164. package/dist/components/header-navigation/header-navigation-stacked.stories.js +0 -50
  165. package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +0 -1
  166. package/dist/components/header-navigation/header-navigation.stories.js +0 -54
  167. package/dist/components/header-navigation/header-navigation.stories.js.map +0 -1
  168. package/dist/components/layout.stories.js +0 -29
  169. package/dist/components/layout.stories.js.map +0 -1
  170. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +0 -13
  171. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +0 -1
  172. package/dist/components/left-navigation/header-navigation-tiny.stories.js +0 -30
  173. package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +0 -1
  174. package/dist/components/left-navigation/side-navigation.stories.js +0 -115
  175. package/dist/components/left-navigation/side-navigation.stories.js.map +0 -1
  176. package/dist/components/logo/logo.stories.js +0 -20
  177. package/dist/components/logo/logo.stories.js.map +0 -1
  178. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +0 -13
  179. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +0 -1
  180. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +0 -13
  181. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +0 -1
  182. package/dist/components/profile-dropdown/profile-dropdown.stories.js +0 -51
  183. package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +0 -1
  184. package/dist/components/titan-layout/layout-logo.stories.js +0 -17
  185. package/dist/components/titan-layout/layout-logo.stories.js.map +0 -1
  186. package/dist/components/titan-layout/layout-profile.stories.js +0 -13
  187. package/dist/components/titan-layout/layout-profile.stories.js.map +0 -1
  188. package/dist/components/titan-layout/titan-layout.stories.js +0 -83
  189. package/dist/components/titan-layout/titan-layout.stories.js.map +0 -1
@@ -1,25 +1,39 @@
1
1
  /* stylelint-disable no-descending-specificity */
2
+ /* stylelint-disable no-duplicate-selectors */
2
3
  @import (reference) '@servicetitan/tokens/core/tokens.less';
3
4
 
4
5
  @size-links-tiny: 24px;
6
+ @bg-light: @color-white;
7
+ @bg-dark: @color-neutral-300;
8
+
9
+ @c-light: @color-black;
10
+ @c-dark: @color-white;
5
11
 
6
12
  .header {
7
13
  --nav-top-content-height: 32px;
14
+
15
+ height: var(--nav-offset-top);
8
16
  display: flex;
9
17
  justify-content: space-between;
10
18
 
11
- background-color: @color-white;
12
- color: @color-black;
19
+ color: var(--nav-top-text-color);
13
20
  box-sizing: border-box;
14
- outline: 1px solid @color-neutral-60;
15
21
 
16
- & > * {
17
- overflow-y: hidden;
22
+ &.header-light {
23
+ background-color: @bg-light;
24
+ outline: 1px solid @color-neutral-60;
25
+
26
+ --nav-top-text-color: @c-light;
18
27
  }
19
28
 
20
- .he-top-left {
21
- display: flex;
22
- align-items: center;
29
+ &.header-dark {
30
+ background-color: @bg-dark;
31
+
32
+ --nav-top-text-color: @c-dark;
33
+ }
34
+
35
+ & > * {
36
+ overflow-y: hidden;
23
37
  }
24
38
 
25
39
  .he-top-center {
@@ -28,7 +42,7 @@
28
42
 
29
43
  .he-top-right {
30
44
  & > * {
31
- color: @color-black;
45
+ color: var(--nav-top-text-color);
32
46
  }
33
47
 
34
48
  .he-top-right-text {
@@ -48,76 +62,94 @@
48
62
  height: 32px;
49
63
  font-size: @size-links-tiny;
50
64
  }
65
+ }
51
66
 
52
- .navigation-link {
53
- border-radius: 12px;
54
- font-size: @size-links-tiny;
55
- color: inherit;
67
+ .header-mobile {
68
+ --nav-top-content-height: 40px;
56
69
 
57
- &.navigation-item-active:not(.navigation-item-overflow) {
58
- background-color: @color-blue-100 !important;
59
- color: @color-blue-500 !important;
60
- }
61
- &:hover:not(.navigation-item-active):not(.navigation-item-overflow) {
62
- background-color: rgba(0, 0, 0, 0.12) !important;
63
- }
70
+ .he-top-center {
71
+ max-width: unset;
72
+ flex: 1;
73
+ margin-left: @spacing-3;
74
+ margin-right: @spacing-3;
75
+ }
64
76
 
65
- &.navigation-item-icon-state.navigation-item-active {
66
- .navigation-icon:not(.navigation-icon-active) {
67
- display: none;
68
- }
77
+ .he-top-right {
78
+ margin-right: @spacing-half;
79
+ }
69
80
 
70
- .navigation-icon.navigation-icon-active[data-anv][data-anv] {
71
- display: block;
72
- }
73
- }
81
+ .he-top-center,
82
+ .he-top-right {
83
+ margin-top: @spacing-2;
84
+ margin-bottom: @spacing-2;
74
85
  }
75
86
 
76
- .navigation-icon[data-anv][data-anv] {
77
- display: inline-block;
78
- color: inherit;
79
- height: 24px;
80
- width: 24px;
87
+ .burger {
88
+ padding-top: @spacing-2;
89
+ padding-right: @spacing-half;
90
+ padding-bottom: @spacing-2;
91
+ padding-left: @spacing-0;
92
+ }
93
+ }
81
94
 
82
- > svg {
83
- height: @size-links-tiny;
84
- width: @size-links-tiny;
85
- }
95
+ // desktop
96
+ .header-desktop {
97
+ .he-top-center {
98
+ flex: 1;
99
+ margin-left: @spacing-2;
100
+ margin-right: @spacing-2;
101
+ max-width: 400px;
102
+ }
103
+ }
86
104
 
87
- &.navigation-icon-active {
88
- display: none;
89
- }
105
+ // desktop stacked header
106
+ .header-stacked {
107
+ display: flex;
108
+ flex-direction: column;
109
+
110
+ .header-desktop {
111
+ height: 44px;
112
+ }
113
+
114
+ .header-stacked-nav {
115
+ height: 36px;
116
+ background-color: @bg-dark;
117
+ border-top: 1px solid @color-neutral-200;
118
+ box-sizing: border-box;
90
119
  }
91
120
  }
121
+ .header-navigation-wrapper {
122
+ min-width: 0;
123
+ overflow-x: auto;
124
+ overflow-y: hidden;
92
125
 
93
- // desktop
94
- @media only screen and (min-width: 768px) {
95
- .header {
96
- height: var(--nav-offset-top);
97
- .navigation-link {
98
- margin: 6px 2px;
99
- padding: 6px 6px;
100
- }
126
+ display: flex;
127
+ justify-content: center;
128
+ align-items: center;
101
129
 
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;
130
+ &.calculating {
131
+ .header-navigation {
132
+ opacity: 0;
110
133
  }
111
134
  }
135
+
136
+ &.minimized {
137
+ display: flex;
138
+ }
139
+
140
+ .header-navigation {
141
+ display: inline-flex;
142
+ }
112
143
  }
144
+
113
145
  // desktop wide
114
146
  @media only screen and (min-width: 1200px) {
115
- .header {
147
+ .header-desktop:not(.header-desktop-nav) {
116
148
  display: grid;
117
149
  grid-template-columns: repeat(3, 1fr);
118
150
  grid-template-rows: 48px;
119
151
 
120
- .he-top-left,
152
+ .logo,
121
153
  .he-top-center,
122
154
  .he-top-right {
123
155
  grid-column: span 1;
@@ -127,45 +159,108 @@
127
159
  max-width: unset;
128
160
  }
129
161
  }
162
+
163
+ .header-desktop-nav {
164
+ .he-top-center {
165
+ max-width: unset;
166
+ }
167
+ }
130
168
  }
131
169
 
132
- // mobile
133
- @media only screen and (max-width: 768px) {
134
- .header {
135
- padding: @spacing-2 @spacing-0;
136
- height: var(--nav-offset-top);
170
+ //!!!!!!!!!!!!!!! logo styles !!!!!!!!!!!!!!!//
171
+ .logo {
172
+ color: var(--nav-top-text-color);
173
+ height: 100%;
137
174
 
138
- --nav-top-content-height: 40px;
175
+ display: flex;
176
+ align-items: center;
139
177
 
140
- .navigation-link {
141
- padding: 10px;
178
+ .logo-short-wrapper {
179
+ display: flex;
180
+ align-items: center;
181
+ height: 100%;
182
+ padding-left: 10px;
183
+ padding-right: 10px;
184
+
185
+ svg {
186
+ height: 28px;
187
+ }
188
+ }
189
+ svg {
190
+ max-height: 100%;
191
+ width: auto;
192
+ }
193
+ }
194
+
195
+ .header-desktop {
196
+ .logo-company-wrapper {
197
+ height: 41px;
198
+ padding-left: 6px;
199
+ }
200
+ .logo-postfix {
201
+ margin-left: @spacing-1;
202
+ }
203
+ .logo-title {
204
+ margin-left: @spacing-0;
205
+ }
206
+ }
207
+
208
+ .header-dark.header-logo-custom {
209
+ .logo-short-wrapper,
210
+ .burger {
211
+ background-color: @color-white;
212
+ color: @c-light;
213
+ }
214
+
215
+ .burger .navigation-link {
216
+ color: inherit !important;
217
+ }
218
+ .logo-title {
219
+ margin-left: @spacing-1;
220
+ }
221
+ }
222
+
223
+ //!!!!!!!!!!!!!!! nav links styles !!!!!!!!!!!!!!!//
224
+ .navigation-link {
225
+ &.navigation-item-icon-state.navigation-item-active {
226
+ .navigation-icon[data-anv][data-anv]:not(.navigation-icon-active) {
227
+ display: none;
142
228
  }
143
229
 
144
- .he-top-center {
145
- max-width: unset;
146
- flex: 1;
147
- margin-left: @spacing-3;
148
- margin-right: @spacing-3;
230
+ .navigation-icon.navigation-icon-active[data-anv][data-anv] {
231
+ display: block;
149
232
  }
233
+ }
150
234
 
151
- .he-top-left {
152
- margin-left: @spacing-half;
235
+ .navigation-icon[data-anv][data-anv] {
236
+ display: inline-block;
237
+ color: inherit;
238
+
239
+ & > svg {
240
+ height: 1em;
241
+ width: 1em;
242
+ font-size: 1em;
153
243
  }
154
244
 
155
- .he-top-right {
156
- margin-right: @spacing-half;
245
+ &.navigation-icon-active {
246
+ display: none;
157
247
  }
158
248
  }
159
249
  }
160
250
 
161
- .navigation-link {
162
- // styles specific to extra nav links
163
- color: @color-black;
164
- position: relative;
165
- display: flex;
166
- align-items: center;
167
- flex-wrap: nowrap;
168
- text-wrap: nowrap;
251
+ // extra nav links styles
252
+ .header {
253
+ .navigation-link {
254
+ color: var(--nav-top-text-color);
255
+ position: relative;
256
+ display: flex;
257
+ align-items: center;
258
+ flex-wrap: nowrap;
259
+ text-wrap: nowrap;
260
+
261
+ border-radius: 12px;
262
+ font-size: @size-links-tiny;
263
+ }
169
264
 
170
265
  .navigation-item-counter {
171
266
  color: @color-white;
@@ -176,6 +271,10 @@
176
271
  position: absolute;
177
272
  top: 4px;
178
273
  right: -2px;
274
+
275
+ &.navigation-item-counter-long {
276
+ right: -8px;
277
+ }
179
278
  }
180
279
 
181
280
  .navigation-item-label {
@@ -186,16 +285,147 @@
186
285
  margin-left: @spacing-half;
187
286
  }
188
287
 
189
- &.navigation-item-counter-long {
190
- right: -8px;
288
+ .navigation-icon[data-anv][data-anv] {
289
+ height: 24px;
290
+ width: 24px;
291
+ }
292
+
293
+ &.header-desktop {
294
+ .navigation-link {
295
+ margin: 6px 2px;
296
+ padding: 6px 6px;
297
+
298
+ .navigation-item-counter {
299
+ min-width: 12px !important;
300
+ height: 12px !important;
301
+ }
302
+ }
303
+ }
304
+
305
+ &.header-mobile {
306
+ .navigation-link {
307
+ padding: 10px;
308
+ }
309
+ }
310
+
311
+ &.header-light {
312
+ .navigation-link {
313
+ &.navigation-item-active {
314
+ background-color: @color-blue-100 !important;
315
+ color: @color-blue-500 !important;
316
+ }
317
+
318
+ &:hover:not(.navigation-item-active) {
319
+ background-color: rgba(0, 0, 0, 0.12) !important;
320
+ }
321
+ }
191
322
  }
192
323
  }
193
324
 
194
- @media only screen and (min-width: 768px) {
195
- .navigation-link {
196
- .navigation-item-counter {
197
- min-width: 12px !important;
198
- height: 12px !important;
325
+ .header-dark .navigation-link,
326
+ .header-navigation > .navigation-link {
327
+ &.navigation-item-active {
328
+ color: @color-blue-200 !important;
329
+ }
330
+
331
+ &:hover:not(.navigation-item-active) {
332
+ opacity: 0.7 !important;
333
+ }
334
+ }
335
+
336
+ // styles specific to main nav links
337
+ .header-navigation .navigation-link {
338
+ font-family: @base-font-family;
339
+ color: @c-dark;
340
+ position: relative;
341
+ display: flex;
342
+ align-items: center;
343
+ flex-wrap: nowrap;
344
+ text-wrap: nowrap;
345
+ padding: 7px 10px;
346
+
347
+ .navigation-item-counter {
348
+ color: @color-white;
349
+ font-weight: @font-weight-semibold;
350
+ font-size: 8px !important;
351
+ min-width: 16px !important;
352
+ height: 12px !important;
353
+ position: absolute;
354
+ top: 4px;
355
+ right: -2px;
356
+
357
+ &.navigation-item-counter-long {
358
+ right: -8px;
199
359
  }
200
360
  }
361
+ .navigation-item-label {
362
+ font-family: @base-font-family;
363
+ font-size: @typescale-2;
364
+ margin-left: @spacing-half;
365
+ }
366
+ .navigation-icon[data-anv][data-anv] {
367
+ height: 20px;
368
+ width: 20px;
369
+ font-size: @typescale-4;
370
+ }
371
+ }
372
+
373
+ .header-navigation-overflow-trigger[data-anv][data-anv] {
374
+ padding: @spacing-half !important;
375
+
376
+ > span[data-anv][data-anv] {
377
+ color: @c-dark !important;
378
+ height: 24px !important;
379
+ width: 24px !important;
380
+ font-size: 24px !important;
381
+
382
+ display: flex !important;
383
+ align-items: center !important;
384
+ justify-content: center !important;
385
+ }
386
+ }
387
+
388
+ .header-navigation-overflow .navigation-link {
389
+ display: inline-flex;
390
+ color: @color-black;
391
+ padding: @spacing-1 12px;
392
+ cursor: pointer;
393
+
394
+ font-family: @base-font-family;
395
+ font-size: @typescale-4;
396
+ position: relative;
397
+ align-items: center;
398
+ flex-wrap: nowrap;
399
+ text-wrap: nowrap;
400
+
401
+ margin-left: -0.5rem;
402
+ margin-right: -0.5rem;
403
+
404
+ &:hover {
405
+ background-color: @color-blue-500;
406
+ color: @color-white;
407
+ }
408
+
409
+ &.navigation-item-active:not(:hover) {
410
+ color: @color-blue;
411
+ }
412
+
413
+ .navigation-item-label {
414
+ font-family: @base-font-family;
415
+ font-size: @typescale-2;
416
+ margin-left: @spacing-half;
417
+ }
418
+ .navigation-item-counter {
419
+ color: @color-white;
420
+ font-weight: @font-weight-semibold;
421
+ font-size: 8px !important;
422
+
423
+ min-width: 12px !important;
424
+ height: 12px !important;
425
+ margin-left: @spacing-half;
426
+ margin-top: -@spacing-1;
427
+ }
428
+ .navigation-icon[data-anv][data-anv] {
429
+ height: 20px;
430
+ }
201
431
  }
@@ -1,9 +1,28 @@
1
1
  export const __esModule: true;
2
+ export const burger: string;
3
+ export const calculating: string;
2
4
  export const heTopCenter: string;
3
- export const heTopLeft: string;
4
5
  export const heTopRight: string;
5
6
  export const heTopRightText: string;
6
7
  export const header: string;
8
+ export const headerDark: string;
9
+ export const headerDesktop: string;
10
+ export const headerDesktopNav: string;
11
+ export const headerLight: string;
12
+ export const headerLogoCustom: string;
13
+ export const headerMobile: string;
14
+ export const headerNavigation: string;
15
+ export const headerNavigationOverflow: string;
16
+ export const headerNavigationOverflowTrigger: string;
17
+ export const headerNavigationWrapper: string;
18
+ export const headerStacked: string;
19
+ export const headerStackedNav: string;
20
+ export const logo: string;
21
+ export const logoCompanyWrapper: string;
22
+ export const logoPostfix: string;
23
+ export const logoShortWrapper: string;
24
+ export const logoTitle: string;
25
+ export const minimized: string;
7
26
  export const navigationIcon: string;
8
27
  export const navigationIconActive: string;
9
28
  export const navigationItemActive: string;
@@ -11,6 +30,5 @@ export const navigationItemCounter: string;
11
30
  export const navigationItemCounterLong: string;
12
31
  export const navigationItemIconState: string;
13
32
  export const navigationItemLabel: string;
14
- export const navigationItemOverflow: string;
15
33
  export const navigationLink: string;
16
34
 
@@ -4,13 +4,7 @@ import { ComponentPropsWithoutRef, FC, 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';
7
- import { TitanLayoutLogoProps } from './layout-logo';
8
-
9
- export interface TitanLayoutHeaderLogoProps {
10
- title?: true | string;
11
- mantleFill?: string;
12
- to?: string;
13
- }
7
+ import { LayoutLogo, TitanLayoutLogoProps, isLogoCustom } from './layout-logo';
14
8
 
15
9
  export type LayoutHeaderProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> & {
16
10
  right?: ReactNode;
@@ -22,10 +16,11 @@ export type LayoutHeaderProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'
22
16
  center?: ReactElement;
23
17
  centerClassName?: string;
24
18
 
25
- logo: ReactElement<TitanLayoutLogoProps>;
19
+ logo?: TitanLayoutLogoProps;
26
20
  profile?: ReactElement;
27
21
 
28
22
  isMobile: boolean;
23
+ variant: 'light' | 'dark';
29
24
  hasNotifications: boolean;
30
25
  onBurgerClick?: (e: MouseEvent) => void;
31
26
  };
@@ -41,30 +36,36 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
41
36
  hasNotifications,
42
37
  logo,
43
38
  profile,
39
+ variant,
44
40
  onBurgerClick,
45
41
  ...rest
46
42
  }) => {
47
43
  return (
48
44
  <LayoutPlacementContext.Provider value="top">
49
45
  <div
50
- className={classNames(Styles.header, className)}
51
- {...rest}
46
+ className={classNames(
47
+ Styles.header,
48
+ variant === 'light' ? Styles.headerLight : Styles.headerDark,
49
+ isMobile ? Styles.headerMobile : Styles.headerDesktop,
50
+ isLogoCustom(logo, isMobile) && Styles.headerLogoCustom,
51
+ className
52
+ )}
52
53
  data-cy="header-navigation"
54
+ {...rest}
53
55
  >
54
- <div className={classNames(Styles.heTopLeft)} data-cy="navigation-left">
55
- {isMobile && (
56
+ {isMobile && (
57
+ <div className={Styles.burger}>
56
58
  <LayoutHeaderNavigationTrigger
57
59
  id="burger"
58
60
  title=""
59
61
  icon={SvgBurgerMenu}
60
- iconActive={SvgBurgerMenu}
61
- className="m-r-1"
62
+ iconActive={undefined}
62
63
  onClick={onBurgerClick}
63
64
  tag={{ value: hasNotifications }}
64
65
  />
65
- )}
66
- {logo}
67
- </div>
66
+ </div>
67
+ )}
68
+ <LayoutLogo {...logo} />
68
69
  <div
69
70
  className={classNames(
70
71
  Styles.heTopCenter,