@servicetitan/navigation 11.0.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 (179) 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.map +1 -1
  53. package/dist/components/profile-dropdown/profile-dropdown.js +174 -33
  54. package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
  55. package/dist/components/profile-dropdown/profile-dropdown.module.less.d.ts +23 -0
  56. package/dist/components/profile-dropdown/profile-icon.js +49 -3
  57. package/dist/components/profile-dropdown/profile-icon.js.map +1 -1
  58. package/dist/components/titan-layout/index.d.ts +2 -2
  59. package/dist/components/titan-layout/index.d.ts.map +1 -1
  60. package/dist/components/titan-layout/index.js +1 -2
  61. package/dist/components/titan-layout/index.js.map +1 -1
  62. package/dist/components/titan-layout/interface-internal.js +2 -1
  63. package/dist/components/titan-layout/interface-internal.js.map +1 -1
  64. package/dist/components/titan-layout/interface.js +2 -1
  65. package/dist/components/titan-layout/interface.js.map +1 -1
  66. package/dist/components/titan-layout/layout-context.js +15 -6
  67. package/dist/components/titan-layout/layout-context.js.map +1 -1
  68. package/dist/components/titan-layout/layout-header-dark.d.ts +10 -0
  69. package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -0
  70. package/dist/components/titan-layout/layout-header-dark.js +146 -0
  71. package/dist/components/titan-layout/layout-header-dark.js.map +1 -0
  72. package/dist/components/titan-layout/layout-header-links.js +61 -15
  73. package/dist/components/titan-layout/layout-header-links.js.map +1 -1
  74. package/dist/components/titan-layout/layout-header.d.ts +2 -6
  75. package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
  76. package/dist/components/titan-layout/layout-header.js +46 -2
  77. package/dist/components/titan-layout/layout-header.js.map +1 -1
  78. package/dist/components/titan-layout/layout-header.module.less +321 -83
  79. package/dist/components/titan-layout/layout-header.module.less.d.ts +34 -0
  80. package/dist/components/titan-layout/layout-logo.d.ts +5 -3
  81. package/dist/components/titan-layout/layout-logo.d.ts.map +1 -1
  82. package/dist/components/titan-layout/layout-logo.js +45 -9
  83. package/dist/components/titan-layout/layout-logo.js.map +1 -1
  84. package/dist/components/titan-layout/layout-logo.stories.d.ts +15 -4
  85. package/dist/components/titan-layout/layout-logo.stories.d.ts.map +1 -1
  86. package/dist/components/titan-layout/layout-profile.js +75 -23
  87. package/dist/components/titan-layout/layout-profile.js.map +1 -1
  88. package/dist/components/titan-layout/layout-sidebar-links-internal.js +162 -36
  89. package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
  90. package/dist/components/titan-layout/layout-sidebar-links.js +33 -13
  91. package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
  92. package/dist/components/titan-layout/layout-sidebar.js +198 -34
  93. package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
  94. package/dist/components/titan-layout/layout-sidebar.module.less +6 -2
  95. package/dist/components/titan-layout/layout-sidebar.module.less.d.ts +49 -0
  96. package/dist/components/titan-layout/notifications-context.js +20 -10
  97. package/dist/components/titan-layout/notifications-context.js.map +1 -1
  98. package/dist/components/titan-layout/titan-layout.d.ts +7 -8
  99. package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
  100. package/dist/components/titan-layout/titan-layout.js +271 -117
  101. package/dist/components/titan-layout/titan-layout.js.map +1 -1
  102. package/dist/components/titan-layout/titan-layout.module.less +7 -2
  103. package/dist/components/titan-layout/titan-layout.module.less.d.ts +17 -0
  104. package/dist/components/titan-layout/titan-layout.stories.d.ts +6 -0
  105. package/dist/components/titan-layout/titan-layout.stories.d.ts.map +1 -1
  106. package/dist/components/titan-layout/with-tooltip.d.ts +4 -1
  107. package/dist/components/titan-layout/with-tooltip.d.ts.map +1 -1
  108. package/dist/components/titan-layout/with-tooltip.js +13 -1
  109. package/dist/components/titan-layout/with-tooltip.js.map +1 -1
  110. package/dist/index.d.ts +4 -3
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +2 -3
  113. package/dist/index.js.map +1 -1
  114. package/dist/test/data-stories.module.less.d.ts +3 -0
  115. package/dist/test/data.js +223 -90
  116. package/dist/test/data.js.map +1 -1
  117. package/dist/utils/counter-tag.js +2 -1
  118. package/dist/utils/counter-tag.js.map +1 -1
  119. package/dist/utils/navigation-context.js +12 -6
  120. package/dist/utils/navigation-context.js.map +1 -1
  121. package/dist/utils/navigation-legacy.js +2 -1
  122. package/dist/utils/navigation-legacy.js.map +1 -1
  123. package/dist/utils/navigation.js +2 -1
  124. package/dist/utils/navigation.js.map +1 -1
  125. package/dist/utils/side-nav.js +9 -6
  126. package/dist/utils/side-nav.js.map +1 -1
  127. package/dist/utils/use-breakpoint.js +11 -8
  128. package/dist/utils/use-breakpoint.js.map +1 -1
  129. package/package.json +4 -4
  130. package/src/components/left-navigation/index.ts +1 -1
  131. package/src/components/logo/logo-titan.tsx +3 -1
  132. package/src/components/profile-dropdown/profile-dropdown.tsx +8 -4
  133. package/src/components/titan-layout/index.ts +2 -2
  134. package/src/components/titan-layout/layout-header-dark.tsx +186 -0
  135. package/src/components/titan-layout/layout-header-links.tsx +1 -1
  136. package/src/components/titan-layout/layout-header.module.less +321 -83
  137. package/src/components/titan-layout/layout-header.module.less.d.ts +18 -2
  138. package/src/components/titan-layout/layout-header.tsx +13 -16
  139. package/src/components/titan-layout/layout-logo.stories.tsx +103 -15
  140. package/src/components/titan-layout/layout-logo.tsx +33 -36
  141. package/src/components/titan-layout/layout-profile.stories.tsx +1 -1
  142. package/src/components/titan-layout/layout-sidebar.module.less +6 -2
  143. package/src/components/titan-layout/layout-sidebar.tsx +1 -1
  144. package/src/components/titan-layout/titan-layout.module.less +7 -2
  145. package/src/components/titan-layout/titan-layout.module.less.d.ts +2 -1
  146. package/src/components/titan-layout/titan-layout.stories.tsx +80 -23
  147. package/src/components/titan-layout/titan-layout.tsx +96 -85
  148. package/src/components/titan-layout/with-tooltip.tsx +5 -2
  149. package/src/index.ts +4 -5
  150. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js +0 -13
  151. package/dist/components/header-navigation/header-navigation-extra-stacked.stories.js.map +0 -1
  152. package/dist/components/header-navigation/header-navigation-extra.stories.js +0 -29
  153. package/dist/components/header-navigation/header-navigation-extra.stories.js.map +0 -1
  154. package/dist/components/header-navigation/header-navigation-stacked.stories.js +0 -50
  155. package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +0 -1
  156. package/dist/components/header-navigation/header-navigation.stories.js +0 -54
  157. package/dist/components/header-navigation/header-navigation.stories.js.map +0 -1
  158. package/dist/components/layout.stories.js +0 -29
  159. package/dist/components/layout.stories.js.map +0 -1
  160. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js +0 -13
  161. package/dist/components/left-navigation/header-navigation-extra-tiny.stories.js.map +0 -1
  162. package/dist/components/left-navigation/header-navigation-tiny.stories.js +0 -30
  163. package/dist/components/left-navigation/header-navigation-tiny.stories.js.map +0 -1
  164. package/dist/components/left-navigation/side-navigation.stories.js +0 -115
  165. package/dist/components/left-navigation/side-navigation.stories.js.map +0 -1
  166. package/dist/components/logo/logo.stories.js +0 -20
  167. package/dist/components/logo/logo.stories.js.map +0 -1
  168. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +0 -13
  169. package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +0 -1
  170. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js +0 -13
  171. package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.js.map +0 -1
  172. package/dist/components/profile-dropdown/profile-dropdown.stories.js +0 -51
  173. package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +0 -1
  174. package/dist/components/titan-layout/layout-logo.stories.js +0 -17
  175. package/dist/components/titan-layout/layout-logo.stories.js.map +0 -1
  176. package/dist/components/titan-layout/layout-profile.stories.js +0 -13
  177. package/dist/components/titan-layout/layout-profile.stories.js.map +0 -1
  178. package/dist/components/titan-layout/titan-layout.stories.js +0 -83
  179. 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,58 +62,11 @@
48
62
  height: 32px;
49
63
  font-size: @size-links-tiny;
50
64
  }
51
-
52
- .navigation-link {
53
- border-radius: 12px;
54
- font-size: @size-links-tiny;
55
- color: inherit;
56
-
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
- }
64
-
65
- &.navigation-item-icon-state.navigation-item-active {
66
- .navigation-icon[data-anv][data-anv]:not(.navigation-icon-active) {
67
- display: none;
68
- }
69
-
70
- .navigation-icon.navigation-icon-active[data-anv][data-anv] {
71
- display: block;
72
- }
73
- }
74
- }
75
-
76
- .navigation-icon[data-anv][data-anv] {
77
- display: inline-block;
78
- color: inherit;
79
- height: 24px;
80
- width: 24px;
81
-
82
- > svg {
83
- height: @size-links-tiny;
84
- width: @size-links-tiny;
85
- }
86
-
87
- &.navigation-icon-active {
88
- display: none;
89
- }
90
- }
91
65
  }
92
66
 
93
67
  .header-mobile {
94
- padding: @spacing-2 @spacing-0;
95
- height: var(--nav-offset-top);
96
-
97
68
  --nav-top-content-height: 40px;
98
69
 
99
- .navigation-link {
100
- padding: 10px;
101
- }
102
-
103
70
  .he-top-center {
104
71
  max-width: unset;
105
72
  flex: 1;
@@ -107,31 +74,26 @@
107
74
  margin-right: @spacing-3;
108
75
  }
109
76
 
110
- .he-top-left {
111
- margin-left: @spacing-half;
77
+ .he-top-right {
78
+ margin-right: @spacing-half;
112
79
  }
113
80
 
81
+ .he-top-center,
114
82
  .he-top-right {
115
- margin-right: @spacing-half;
83
+ margin-top: @spacing-2;
84
+ margin-bottom: @spacing-2;
85
+ }
86
+
87
+ .burger {
88
+ padding-top: @spacing-2;
89
+ padding-right: @spacing-half;
90
+ padding-bottom: @spacing-2;
91
+ padding-left: @spacing-0;
116
92
  }
117
93
  }
118
94
 
119
95
  // desktop
120
96
  .header-desktop {
121
- height: var(--nav-offset-top);
122
- .navigation-link {
123
- margin: 6px 2px;
124
- padding: 6px 6px;
125
-
126
- .navigation-item-counter {
127
- min-width: 12px !important;
128
- height: 12px !important;
129
- }
130
- }
131
-
132
- .he-top-left {
133
- padding-left: @spacing-1;
134
- }
135
97
  .he-top-center {
136
98
  flex: 1;
137
99
  margin-left: @spacing-2;
@@ -140,14 +102,54 @@
140
102
  }
141
103
  }
142
104
 
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;
119
+ }
120
+ }
121
+ .header-navigation-wrapper {
122
+ min-width: 0;
123
+ overflow-x: auto;
124
+ overflow-y: hidden;
125
+
126
+ display: flex;
127
+ justify-content: center;
128
+ align-items: center;
129
+
130
+ &.calculating {
131
+ .header-navigation {
132
+ opacity: 0;
133
+ }
134
+ }
135
+
136
+ &.minimized {
137
+ display: flex;
138
+ }
139
+
140
+ .header-navigation {
141
+ display: inline-flex;
142
+ }
143
+ }
144
+
143
145
  // desktop wide
144
146
  @media only screen and (min-width: 1200px) {
145
- .header-desktop {
147
+ .header-desktop:not(.header-desktop-nav) {
146
148
  display: grid;
147
149
  grid-template-columns: repeat(3, 1fr);
148
150
  grid-template-rows: 48px;
149
151
 
150
- .he-top-left,
152
+ .logo,
151
153
  .he-top-center,
152
154
  .he-top-right {
153
155
  grid-column: span 1;
@@ -157,16 +159,108 @@
157
159
  max-width: unset;
158
160
  }
159
161
  }
162
+
163
+ .header-desktop-nav {
164
+ .he-top-center {
165
+ max-width: unset;
166
+ }
167
+ }
160
168
  }
161
169
 
162
- .navigation-link {
163
- // styles specific to extra nav links
164
- color: @color-black;
165
- position: relative;
170
+ //!!!!!!!!!!!!!!! logo styles !!!!!!!!!!!!!!!//
171
+ .logo {
172
+ color: var(--nav-top-text-color);
173
+ height: 100%;
174
+
166
175
  display: flex;
167
176
  align-items: center;
168
- flex-wrap: nowrap;
169
- text-wrap: nowrap;
177
+
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;
228
+ }
229
+
230
+ .navigation-icon.navigation-icon-active[data-anv][data-anv] {
231
+ display: block;
232
+ }
233
+ }
234
+
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;
243
+ }
244
+
245
+ &.navigation-icon-active {
246
+ display: none;
247
+ }
248
+ }
249
+ }
250
+
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
+ }
170
264
 
171
265
  .navigation-item-counter {
172
266
  color: @color-white;
@@ -177,6 +271,10 @@
177
271
  position: absolute;
178
272
  top: 4px;
179
273
  right: -2px;
274
+
275
+ &.navigation-item-counter-long {
276
+ right: -8px;
277
+ }
180
278
  }
181
279
 
182
280
  .navigation-item-label {
@@ -187,7 +285,147 @@
187
285
  margin-left: @spacing-half;
188
286
  }
189
287
 
190
- &.navigation-item-counter-long {
191
- 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
+ }
322
+ }
323
+ }
324
+
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;
359
+ }
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;
192
430
  }
193
431
  }
@@ -1,11 +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;
7
9
  export const headerDesktop: string;
10
+ export const headerDesktopNav: string;
11
+ export const headerLight: string;
12
+ export const headerLogoCustom: string;
8
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;
9
26
  export const navigationIcon: string;
10
27
  export const navigationIconActive: string;
11
28
  export const navigationItemActive: string;
@@ -13,6 +30,5 @@ export const navigationItemCounter: string;
13
30
  export const navigationItemCounterLong: string;
14
31
  export const navigationItemIconState: string;
15
32
  export const navigationItemLabel: string;
16
- export const navigationItemOverflow: string;
17
33
  export const navigationLink: string;
18
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,6 +36,7 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
41
36
  hasNotifications,
42
37
  logo,
43
38
  profile,
39
+ variant,
44
40
  onBurgerClick,
45
41
  ...rest
46
42
  }) => {
@@ -49,26 +45,27 @@ export const LayoutHeader: FC<LayoutHeaderProps> = ({
49
45
  <div
50
46
  className={classNames(
51
47
  Styles.header,
48
+ variant === 'light' ? Styles.headerLight : Styles.headerDark,
52
49
  isMobile ? Styles.headerMobile : Styles.headerDesktop,
50
+ isLogoCustom(logo, isMobile) && Styles.headerLogoCustom,
53
51
  className
54
52
  )}
55
- {...rest}
56
53
  data-cy="header-navigation"
54
+ {...rest}
57
55
  >
58
- <div className={classNames(Styles.heTopLeft)} data-cy="navigation-left">
59
- {isMobile && (
56
+ {isMobile && (
57
+ <div className={Styles.burger}>
60
58
  <LayoutHeaderNavigationTrigger
61
59
  id="burger"
62
60
  title=""
63
61
  icon={SvgBurgerMenu}
64
- iconActive={SvgBurgerMenu}
65
- className="m-r-1"
62
+ iconActive={undefined}
66
63
  onClick={onBurgerClick}
67
64
  tag={{ value: hasNotifications }}
68
65
  />
69
- )}
70
- {logo}
71
- </div>
66
+ </div>
67
+ )}
68
+ <LayoutLogo {...logo} />
72
69
  <div
73
70
  className={classNames(
74
71
  Styles.heTopCenter,