@servicetitan/navigation 2.0.0 → 2.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.
- package/dist/components/header-navigation/header-navigation-content.d.ts +30 -0
- package/dist/components/header-navigation/header-navigation-content.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-content.js +21 -0
- package/dist/components/header-navigation/header-navigation-content.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +1 -1
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +1 -1
- package/dist/components/header-navigation/header-navigation-extra.stories.js +6 -6
- package/dist/components/header-navigation/header-navigation-extra.stories.js.map +1 -1
- package/dist/components/header-navigation/header-navigation-links.d.ts +38 -0
- package/dist/components/header-navigation/header-navigation-links.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-links.js +38 -0
- package/dist/components/header-navigation/header-navigation-links.js.map +1 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +11 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +1 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.js +66 -0
- package/dist/components/header-navigation/header-navigation-stacked.stories.js.map +1 -0
- package/dist/components/header-navigation/header-navigation.d.ts +32 -55
- package/dist/components/header-navigation/header-navigation.d.ts.map +1 -1
- package/dist/components/header-navigation/header-navigation.js +41 -48
- package/dist/components/header-navigation/header-navigation.js.map +1 -1
- package/dist/components/header-navigation/header-navigation.module.less +172 -95
- package/dist/components/header-navigation/header-navigation.stories.d.ts.map +1 -1
- package/dist/components/header-navigation/header-navigation.stories.js +7 -7
- package/dist/components/header-navigation/header-navigation.stories.js.map +1 -1
- package/dist/components/header-navigation/index.d.ts +3 -0
- package/dist/components/header-navigation/index.d.ts.map +1 -0
- package/dist/components/header-navigation/index.js +3 -0
- package/dist/components/header-navigation/index.js.map +1 -0
- package/dist/components/logo/logo-titan-text.d.ts +21 -5
- package/dist/components/logo/logo-titan-text.d.ts.map +1 -1
- package/dist/components/logo/logo-titan-text.js +9 -3
- package/dist/components/logo/logo-titan-text.js.map +1 -1
- package/dist/components/logo/logo-titan-text.module.less +12 -9
- package/dist/components/logo/logo-titan.d.ts +2 -2
- package/dist/components/logo/logo-titan.d.ts.map +1 -1
- package/dist/components/logo/logo-titan.js +1 -1
- package/dist/components/logo/logo-titan.js.map +1 -1
- package/dist/components/logo/logo.stories.d.ts +2 -1
- package/dist/components/logo/logo.stories.d.ts.map +1 -1
- package/dist/components/logo/logo.stories.js +7 -5
- package/dist/components/logo/logo.stories.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +15 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js +51 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.d.ts +1 -0
- package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.js +3 -3
- package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.module.less +0 -2
- package/dist/components/profile-dropdown/profile-dropdown.stories.js +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.js.map +1 -1
- package/dist/components/profile-dropdown/profile-icon.d.ts +1 -1
- package/dist/components/profile-dropdown/profile-icon.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-icon.js +1 -1
- package/dist/components/profile-dropdown/profile-icon.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/with-tooltip.d.ts +3 -0
- package/dist/utils/with-tooltip.d.ts.map +1 -0
- package/dist/utils/with-tooltip.js +4 -0
- package/dist/utils/with-tooltip.js.map +1 -0
- package/package.json +2 -2
- package/src/components/header-navigation/header-navigation-content.tsx +118 -0
- package/src/components/header-navigation/header-navigation-extra.stories.tsx +12 -12
- package/src/components/header-navigation/header-navigation-links.tsx +143 -0
- package/src/components/header-navigation/header-navigation-stacked.stories.tsx +172 -0
- package/src/components/header-navigation/header-navigation.module.less +172 -95
- package/src/components/header-navigation/header-navigation.module.less.d.ts +14 -9
- package/src/components/header-navigation/header-navigation.stories.tsx +11 -17
- package/src/components/header-navigation/header-navigation.tsx +151 -266
- package/src/components/header-navigation/index.ts +2 -0
- package/src/components/logo/logo-titan-text.module.less +12 -9
- package/src/components/logo/logo-titan-text.tsx +62 -20
- package/src/components/logo/logo-titan.tsx +2 -2
- package/src/components/logo/logo.stories.tsx +13 -4
- package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +178 -0
- package/src/components/profile-dropdown/profile-dropdown.module.less +0 -2
- package/src/components/profile-dropdown/profile-dropdown.stories.tsx +1 -1
- package/src/components/profile-dropdown/profile-dropdown.tsx +5 -3
- package/src/components/profile-dropdown/profile-icon.tsx +2 -1
- package/src/index.ts +2 -1
- package/src/utils/with-tooltip.tsx +11 -0
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
import { FC, HTMLAttributeAnchorTarget, ReactNode } from 'react';
|
|
3
|
+
import { useNavLink } from '../../utils/navigation-context';
|
|
4
|
+
import { withTooltip } from '../../utils/with-tooltip';
|
|
5
|
+
import {
|
|
6
|
+
HeaderNavigationItemContent,
|
|
7
|
+
HeaderNavigationItemContentPropsStrict,
|
|
8
|
+
} from './header-navigation-content';
|
|
9
|
+
import * as Styles from './header-navigation.module.less';
|
|
10
|
+
|
|
11
|
+
export interface HeaderNavigationTriggerPropsStrict
|
|
12
|
+
extends Omit<HeaderNavigationItemContentPropsStrict, 'title' | 'size'> {
|
|
13
|
+
/** unique identifier */
|
|
14
|
+
id: string;
|
|
15
|
+
/** tooltip text */
|
|
16
|
+
tooltip?: string;
|
|
17
|
+
/** item description */
|
|
18
|
+
hint?: string;
|
|
19
|
+
/** container class name */
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
interface HeaderNavigationTriggerProps extends HeaderNavigationTriggerPropsStrict {
|
|
24
|
+
/** unstrict props */
|
|
25
|
+
[key: string]: any;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface HeaderNavigationLinkPropsStrict extends HeaderNavigationTriggerPropsStrict {
|
|
29
|
+
/** link href */
|
|
30
|
+
to: string;
|
|
31
|
+
/** isActive */
|
|
32
|
+
isActive?: boolean | ((pathname: string) => boolean);
|
|
33
|
+
/** link html target */
|
|
34
|
+
target?: HTMLAttributeAnchorTarget;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface HeaderNavigationLinkProps extends HeaderNavigationLinkPropsStrict {
|
|
38
|
+
/** unstrict props */
|
|
39
|
+
[key: string]: any;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/** Navigation extra item with link */
|
|
43
|
+
export const HeaderNavigationLink: FC<HeaderNavigationLinkProps> = ({
|
|
44
|
+
id,
|
|
45
|
+
to,
|
|
46
|
+
hint,
|
|
47
|
+
tooltip,
|
|
48
|
+
counter,
|
|
49
|
+
className,
|
|
50
|
+
iconClassName,
|
|
51
|
+
iconComponent,
|
|
52
|
+
iconName,
|
|
53
|
+
isActive,
|
|
54
|
+
target,
|
|
55
|
+
...rest
|
|
56
|
+
}) => {
|
|
57
|
+
const NavigationComponent = useNavLink();
|
|
58
|
+
|
|
59
|
+
return withTooltip(
|
|
60
|
+
<NavigationComponent
|
|
61
|
+
data-cy={`navigation-link-${id}`}
|
|
62
|
+
data-pendo={`navigation-link-${id}`}
|
|
63
|
+
{...rest}
|
|
64
|
+
key={id}
|
|
65
|
+
to={to}
|
|
66
|
+
title={hint}
|
|
67
|
+
className={classNames(Styles.navigationLink, Styles.navigationItem, className, {
|
|
68
|
+
[Styles.navigationItemActive]: isActive === true,
|
|
69
|
+
})}
|
|
70
|
+
isActive={typeof isActive === 'function' ? isActive : undefined}
|
|
71
|
+
activeClassName={Styles.navigationItemActive}
|
|
72
|
+
target={target}
|
|
73
|
+
>
|
|
74
|
+
<HeaderNavigationItemContent
|
|
75
|
+
counter={counter}
|
|
76
|
+
iconComponent={iconComponent}
|
|
77
|
+
iconClassName={iconClassName}
|
|
78
|
+
iconName={iconName}
|
|
79
|
+
/>
|
|
80
|
+
</NavigationComponent>,
|
|
81
|
+
tooltip
|
|
82
|
+
);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/** Navigation extra item with icon button */
|
|
86
|
+
export const HeaderNavigationTrigger: FC<HeaderNavigationTriggerProps> = ({
|
|
87
|
+
id,
|
|
88
|
+
className,
|
|
89
|
+
counter,
|
|
90
|
+
iconClassName,
|
|
91
|
+
iconComponent,
|
|
92
|
+
iconName,
|
|
93
|
+
hint,
|
|
94
|
+
tooltip,
|
|
95
|
+
...rest
|
|
96
|
+
}) =>
|
|
97
|
+
withTooltip(
|
|
98
|
+
<div
|
|
99
|
+
data-cy={`navigation-trigger-${id}`}
|
|
100
|
+
data-pendo={`navigation-trigger-${id}`}
|
|
101
|
+
{...rest}
|
|
102
|
+
title={hint}
|
|
103
|
+
className={classNames(
|
|
104
|
+
Styles.navigationItem,
|
|
105
|
+
Styles.navigationLink,
|
|
106
|
+
'cursor-pointer',
|
|
107
|
+
className
|
|
108
|
+
)}
|
|
109
|
+
>
|
|
110
|
+
<HeaderNavigationItemContent
|
|
111
|
+
counter={counter}
|
|
112
|
+
iconComponent={iconComponent}
|
|
113
|
+
iconClassName={iconClassName}
|
|
114
|
+
iconName={iconName}
|
|
115
|
+
/>
|
|
116
|
+
</div>,
|
|
117
|
+
tooltip
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
/** Navigation extra item with custom content */
|
|
121
|
+
export const HeaderNavigationTriggerCustom: FC<
|
|
122
|
+
Omit<
|
|
123
|
+
HeaderNavigationTriggerProps,
|
|
124
|
+
'counter' | 'iconSize' | 'iconName' | 'iconComponent' | 'iconClassName'
|
|
125
|
+
> & { children: ReactNode }
|
|
126
|
+
> = ({ children, id, className, tooltip, title, ...rest }) =>
|
|
127
|
+
withTooltip(
|
|
128
|
+
<div
|
|
129
|
+
data-cy={`navigation-custom-${id}`}
|
|
130
|
+
data-pendo={`navigation-custom-${id}`}
|
|
131
|
+
{...rest}
|
|
132
|
+
title={title}
|
|
133
|
+
className={classNames(
|
|
134
|
+
Styles.navigationItem,
|
|
135
|
+
Styles.navigationLink,
|
|
136
|
+
'cursor-pointer',
|
|
137
|
+
className
|
|
138
|
+
)}
|
|
139
|
+
>
|
|
140
|
+
{children}
|
|
141
|
+
</div>,
|
|
142
|
+
tooltip
|
|
143
|
+
);
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { Input, Stack } from '@servicetitan/design-system';
|
|
2
|
+
import { FC, Fragment } from 'react';
|
|
3
|
+
import { HeaderNavigationItemData, NavLinkComponentProps } from '../../utils/navigation';
|
|
4
|
+
import { LogoCompanyTitle } from '../logo/logo-company-title';
|
|
5
|
+
import { LogoTitan, LogoTitanTitle } from '../logo/logo-titan-text';
|
|
6
|
+
import { ProfileDropdown } from '../profile-dropdown/profile-dropdown';
|
|
7
|
+
import { HeaderNavigationLink, HeaderNavigationStacked, HeaderNavigationTrigger } from './';
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Navigation/HeaderNavigationStacked',
|
|
11
|
+
component: HeaderNavigationStacked,
|
|
12
|
+
parameters: {},
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const getItem = (
|
|
16
|
+
id: string,
|
|
17
|
+
data: Partial<HeaderNavigationItemData>
|
|
18
|
+
): HeaderNavigationItemData => ({
|
|
19
|
+
id,
|
|
20
|
+
to: '/',
|
|
21
|
+
title: id[0].toUpperCase() + id.substring(1),
|
|
22
|
+
hint: id,
|
|
23
|
+
...(data ?? {}),
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
const InventoryIcon = () => (
|
|
27
|
+
<svg width="20" xmlns="http://www.w3.org/2000/svg" viewBox="-293 385 24 24" fill="currentColor">
|
|
28
|
+
<polyline points="-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 " />
|
|
29
|
+
<path d="M-272,401.5c0,0.4-0.2,0.7-0.5,0.9l-7.9,4.4c-0.2,0.1-0.4,0.2-0.6,0.2s-0.4-0.1-0.6-0.2l-7.9-4.4c-0.3-0.2-0.5-0.5-0.5-0.9v-9c0-0.4,0.2-0.7,0.5-0.9l7.9-4.4c0.2-0.1,0.4-0.2,0.6-0.2s0.4,0.1,0.6,0.2l7.9,4.4c0.3,0.2,0.5,0.5,0.5,0.9V401.5 M-287,392.5 l6,3.4l5.9-3.3l-5.9-3.4L-287,392.5 M-274,400.9v-6.7l-6,3.4v6.7L-274,400.9z" />
|
|
30
|
+
</svg>
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
const items = {
|
|
34
|
+
calendar: getItem('calendar', { iconName: 'event' }),
|
|
35
|
+
calls: getItem('calls', { iconName: 'local_phone', isActive: true, counter: 12 }),
|
|
36
|
+
dashboard: getItem('dashboard', { iconName: 'odometer', isActive: true }),
|
|
37
|
+
dispatch: getItem('dispatch', { iconName: 'location_disabled', counter: 1 }),
|
|
38
|
+
fleet: getItem('fleet', { iconName: 'fleet-pro', title: 'Fleet Pro' }),
|
|
39
|
+
followUps: getItem('followUps', { iconName: 'flag', title: 'Follow Ups' }),
|
|
40
|
+
inventory: getItem('inventory', { iconName: 'toys' }),
|
|
41
|
+
purchasing: getItem('purchasing', { iconComponent: InventoryIcon }),
|
|
42
|
+
accounting: getItem('accounting', { iconName: 'assignment' }),
|
|
43
|
+
marketing: getItem('marketing', { iconName: 'bullhorn' }),
|
|
44
|
+
priceBook: getItem('priceBook', { iconName: 'book' }),
|
|
45
|
+
pointOfSale: getItem('pointOfSale', { iconName: 'cash-register' }),
|
|
46
|
+
projects: getItem('projects', { iconName: 'folder_special' }),
|
|
47
|
+
reports: getItem('reports', { iconName: 'poll' }),
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const NavLinkMock: FC<NavLinkComponentProps> = props => (
|
|
51
|
+
<a
|
|
52
|
+
href={props.to}
|
|
53
|
+
target={props.target}
|
|
54
|
+
onClick={e => {
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
}}
|
|
57
|
+
className={props.className}
|
|
58
|
+
>
|
|
59
|
+
{props.children}
|
|
60
|
+
</a>
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
export const defaultNavigation = () => (
|
|
64
|
+
<HeaderNavigationStacked
|
|
65
|
+
left={<LogoCompanyTitle className="m-l-1" fill="#fff" />}
|
|
66
|
+
leftClassName="d-f align-items-center"
|
|
67
|
+
items={[
|
|
68
|
+
items.dashboard,
|
|
69
|
+
items.calendar,
|
|
70
|
+
items.calls,
|
|
71
|
+
items.accounting,
|
|
72
|
+
items.dispatch,
|
|
73
|
+
items.fleet,
|
|
74
|
+
]}
|
|
75
|
+
navigationComponent={NavLinkMock}
|
|
76
|
+
/>
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
export const withLogoTextAndOverflow = () => (
|
|
80
|
+
<HeaderNavigationStacked
|
|
81
|
+
left={
|
|
82
|
+
<Stack alignItems="center">
|
|
83
|
+
<LogoTitan mantleFill="#2270EE" size={44} />
|
|
84
|
+
<LogoTitanTitle className="c-white m-l-1">Commercial</LogoTitanTitle>
|
|
85
|
+
</Stack>
|
|
86
|
+
}
|
|
87
|
+
items={[
|
|
88
|
+
items.dashboard,
|
|
89
|
+
items.calendar,
|
|
90
|
+
items.calls,
|
|
91
|
+
items.accounting,
|
|
92
|
+
items.dispatch,
|
|
93
|
+
items.purchasing,
|
|
94
|
+
items.fleet,
|
|
95
|
+
]}
|
|
96
|
+
itemsOverflow={[items.calls, items.accounting, items.purchasing, items.dispatch]}
|
|
97
|
+
navigationComponent={NavLinkMock}
|
|
98
|
+
/>
|
|
99
|
+
);
|
|
100
|
+
|
|
101
|
+
const TimeZoneOffset: FC = () => (
|
|
102
|
+
<div className="fs-2 fw-bold p-x-1">
|
|
103
|
+
<span>EST (-9 hrs)</span>
|
|
104
|
+
</div>
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
export const withAllMonolithData = () => (
|
|
108
|
+
<HeaderNavigationStacked
|
|
109
|
+
left={<LogoCompanyTitle className="m-l-1" fill="#fff" />}
|
|
110
|
+
leftClassName="d-f align-items-center"
|
|
111
|
+
items={[
|
|
112
|
+
items.dashboard,
|
|
113
|
+
items.calendar,
|
|
114
|
+
items.calls,
|
|
115
|
+
items.accounting,
|
|
116
|
+
items.dispatch,
|
|
117
|
+
|
|
118
|
+
items.fleet,
|
|
119
|
+
items.followUps,
|
|
120
|
+
items.inventory,
|
|
121
|
+
|
|
122
|
+
items.marketing,
|
|
123
|
+
items.priceBook,
|
|
124
|
+
items.pointOfSale,
|
|
125
|
+
items.reports,
|
|
126
|
+
]}
|
|
127
|
+
navigationComponent={NavLinkMock}
|
|
128
|
+
right={
|
|
129
|
+
<Fragment>
|
|
130
|
+
<TimeZoneOffset />
|
|
131
|
+
|
|
132
|
+
<HeaderNavigationTrigger id="dialpad" iconName="phone" counter={2} />
|
|
133
|
+
|
|
134
|
+
<HeaderNavigationLink
|
|
135
|
+
id="search"
|
|
136
|
+
to="https://google.com"
|
|
137
|
+
target="_blank"
|
|
138
|
+
iconName="search"
|
|
139
|
+
hint="Search: for all the questions"
|
|
140
|
+
/>
|
|
141
|
+
|
|
142
|
+
<HeaderNavigationTrigger id="titanAdvisor" iconName="rocket" />
|
|
143
|
+
|
|
144
|
+
<HeaderNavigationLink
|
|
145
|
+
id="settings"
|
|
146
|
+
to="https://google.com"
|
|
147
|
+
target="_blank"
|
|
148
|
+
iconName="settings"
|
|
149
|
+
aria-label="search"
|
|
150
|
+
hint="Settings"
|
|
151
|
+
isActive
|
|
152
|
+
/>
|
|
153
|
+
|
|
154
|
+
<ProfileDropdown>
|
|
155
|
+
<ProfileDropdown.Link id="tasks" to="https://googgle.com" counter={10}>
|
|
156
|
+
Task Management
|
|
157
|
+
</ProfileDropdown.Link>
|
|
158
|
+
<ProfileDropdown.Divider />
|
|
159
|
+
<ProfileDropdown.Link id="sign-out" to="https://googgle.com">
|
|
160
|
+
Sign Out{' '}
|
|
161
|
+
<span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
|
|
162
|
+
</ProfileDropdown.Link>
|
|
163
|
+
<ProfileDropdown.Section id="userid" className="c-neutral-100 fs-1">
|
|
164
|
+
User ID: 007
|
|
165
|
+
</ProfileDropdown.Section>
|
|
166
|
+
</ProfileDropdown>
|
|
167
|
+
</Fragment>
|
|
168
|
+
}
|
|
169
|
+
center={<Input placeholder="Search smth" size="xsmall" className="w-100" />}
|
|
170
|
+
centerClassName="d-f align-items-center"
|
|
171
|
+
/>
|
|
172
|
+
);
|
|
@@ -1,25 +1,6 @@
|
|
|
1
1
|
/* stylelint-disable no-descending-specificity */
|
|
2
2
|
@import (reference) '@servicetitan/tokens/core/tokens.less';
|
|
3
3
|
|
|
4
|
-
.link {
|
|
5
|
-
display: flex;
|
|
6
|
-
align-items: center;
|
|
7
|
-
flex-wrap: nowrap;
|
|
8
|
-
|
|
9
|
-
.icon {
|
|
10
|
-
display: inline-block;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
ins {
|
|
14
|
-
font-size: @typescale-2;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
& * {
|
|
18
|
-
text-decoration: none;
|
|
19
|
-
white-space: nowrap;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
4
|
.header {
|
|
24
5
|
height: 56px;
|
|
25
6
|
display: flex;
|
|
@@ -29,96 +10,106 @@
|
|
|
29
10
|
background-color: @color-neutral-300;
|
|
30
11
|
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);
|
|
31
12
|
|
|
32
|
-
.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
position: relative;
|
|
13
|
+
.right > * {
|
|
14
|
+
color: @color-white;
|
|
15
|
+
}
|
|
36
16
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
17
|
+
.right {
|
|
18
|
+
.navigation-icon {
|
|
19
|
+
height: 24px;
|
|
20
|
+
width: 24px;
|
|
21
|
+
font-size: 24px;
|
|
41
22
|
}
|
|
42
23
|
}
|
|
43
24
|
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
25
|
+
.center {
|
|
26
|
+
min-width: 0;
|
|
27
|
+
overflow-x: hidden;
|
|
28
|
+
overflow-y: hidden;
|
|
48
29
|
|
|
49
|
-
|
|
50
|
-
// styles specific to main nav links and overflow nav links
|
|
51
|
-
i {
|
|
30
|
+
.navigation-icon {
|
|
52
31
|
height: 20px;
|
|
53
32
|
width: 20px;
|
|
33
|
+
font-size: @typescale-4;
|
|
54
34
|
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.navigation-item-main {
|
|
38
|
+
// styles specific to main nav links
|
|
39
|
+
padding: 18px 12px;
|
|
40
|
+
}
|
|
55
41
|
|
|
56
|
-
|
|
57
|
-
|
|
42
|
+
&.calculating {
|
|
43
|
+
.center {
|
|
44
|
+
opacity: 0;
|
|
58
45
|
}
|
|
59
46
|
}
|
|
60
47
|
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
48
|
+
:global(.profile-dropdown-image) {
|
|
49
|
+
height: 32px;
|
|
50
|
+
width: 32px;
|
|
51
|
+
}
|
|
65
52
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
53
|
+
:global(.profile-dropdown-svg) {
|
|
54
|
+
height: 28px;
|
|
55
|
+
width: 28px;
|
|
56
|
+
}
|
|
69
57
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
58
|
+
.navigation-item-counter {
|
|
59
|
+
font-size: @typescale-0 !important;
|
|
60
|
+
}
|
|
73
61
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
right: 0;
|
|
62
|
+
.navigation-item-main .navigation-item-counter {
|
|
63
|
+
top: 8px;
|
|
64
|
+
right: -4px;
|
|
78
65
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
66
|
+
&.navigation-item-counter-long {
|
|
67
|
+
right: -8px;
|
|
82
68
|
}
|
|
83
69
|
}
|
|
84
70
|
|
|
85
|
-
.link-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
71
|
+
.navigation-link .navigation-item-counter {
|
|
72
|
+
top: 8px;
|
|
73
|
+
right: -4px;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
90
76
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
}
|
|
77
|
+
.overflow-popover {
|
|
78
|
+
padding: @spacing-1 @spacing-0 !important;
|
|
94
79
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
80
|
+
.navigation-overflow {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
99
85
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
86
|
+
.header-stacked {
|
|
87
|
+
display: grid;
|
|
88
|
+
grid-template-columns: repeat(3, 1fr);
|
|
89
|
+
grid-template-rows: 44px 36px;
|
|
103
90
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
91
|
+
background-color: @color-neutral-500;
|
|
92
|
+
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.25);
|
|
93
|
+
|
|
94
|
+
& > * {
|
|
95
|
+
overflow-y: hidden;
|
|
108
96
|
}
|
|
109
97
|
|
|
110
|
-
.
|
|
111
|
-
|
|
112
|
-
|
|
98
|
+
.he-top-left {
|
|
99
|
+
grid-column: span 1;
|
|
100
|
+
}
|
|
113
101
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
102
|
+
.he-top-center {
|
|
103
|
+
grid-column: span 1;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.he-top-right {
|
|
107
|
+
grid-column: span 1;
|
|
118
108
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
109
|
+
.navigation-icon {
|
|
110
|
+
height: 20px;
|
|
111
|
+
width: 20px;
|
|
112
|
+
font-size: @typescale-4;
|
|
122
113
|
}
|
|
123
114
|
|
|
124
115
|
& > * {
|
|
@@ -126,30 +117,116 @@
|
|
|
126
117
|
}
|
|
127
118
|
}
|
|
128
119
|
|
|
129
|
-
.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
120
|
+
.he-bottom {
|
|
121
|
+
grid-column: span 3;
|
|
122
|
+
border-top: 1px solid @color-neutral-200;
|
|
123
|
+
|
|
124
|
+
.navigation-icon {
|
|
125
|
+
height: 20px;
|
|
126
|
+
width: 20px;
|
|
127
|
+
font-size: @typescale-4;
|
|
128
|
+
}
|
|
133
129
|
}
|
|
134
130
|
|
|
135
131
|
&.calculating {
|
|
136
|
-
.
|
|
132
|
+
.he-bottom {
|
|
137
133
|
opacity: 0;
|
|
138
134
|
}
|
|
139
135
|
}
|
|
140
136
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
:global(.profile-dropdown-image) {
|
|
138
|
+
height: 24px;
|
|
139
|
+
width: 24px;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
:global(.profile-dropdown-svg) {
|
|
143
|
+
height: 20px;
|
|
144
|
+
width: 20px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.navigation-item-counter {
|
|
148
|
+
font-size: 8px !important;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.navigation-item-main .navigation-item-counter {
|
|
152
|
+
top: 4px;
|
|
153
|
+
right: -4px;
|
|
154
|
+
|
|
155
|
+
&.navigation-item-counter-long {
|
|
156
|
+
right: -8px;
|
|
144
157
|
}
|
|
145
158
|
}
|
|
159
|
+
|
|
160
|
+
.navigation-link .navigation-item-counter {
|
|
161
|
+
top: 12px;
|
|
162
|
+
right: 0;
|
|
163
|
+
}
|
|
146
164
|
}
|
|
147
165
|
|
|
148
|
-
.
|
|
149
|
-
|
|
166
|
+
.navigation-icon {
|
|
167
|
+
display: inline-block;
|
|
168
|
+
}
|
|
150
169
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
170
|
+
.navigation-item {
|
|
171
|
+
// styles specific to main nav links and extra nav links
|
|
172
|
+
font-family: @base-font-family;
|
|
173
|
+
color: @color-white;
|
|
174
|
+
position: relative;
|
|
175
|
+
display: flex;
|
|
176
|
+
align-items: center;
|
|
177
|
+
flex-wrap: nowrap;
|
|
178
|
+
text-wrap: nowrap;
|
|
179
|
+
|
|
180
|
+
&.navigation-item-active:not(.navigation-item-overflow) {
|
|
181
|
+
color: @color-blue-200 !important;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
&:hover:not(.navigation-item-active):not(.navigation-item-overflow) {
|
|
185
|
+
opacity: 0.7;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.navigation-item-counter {
|
|
189
|
+
color: @color-white;
|
|
190
|
+
font-weight: @font-weight-semibold;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
&:not(.navigation-item-overflow) .navigation-item-counter {
|
|
194
|
+
position: absolute;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.navigation-item-title {
|
|
198
|
+
font-family: @base-font-family;
|
|
199
|
+
font-size: @typescale-2;
|
|
200
|
+
margin-left: @spacing-half;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.navigation-item-main {
|
|
205
|
+
// styles specific to main nav links
|
|
206
|
+
padding: 6px 10px;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.navigation-item-overflow {
|
|
210
|
+
// styles specific to overflow links
|
|
211
|
+
display: inline-flex;
|
|
212
|
+
color: @color-black;
|
|
213
|
+
padding: @spacing-1 12px;
|
|
214
|
+
|
|
215
|
+
&.navigation-item-active:not(:hover) {
|
|
216
|
+
color: @color-blue-500;
|
|
154
217
|
}
|
|
218
|
+
|
|
219
|
+
&:hover {
|
|
220
|
+
background-color: @color-blue-500;
|
|
221
|
+
color: @color-white;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.navigation-item-counter {
|
|
225
|
+
margin-left: @spacing-half;
|
|
226
|
+
margin-top: -@spacing-1;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.navigation-link {
|
|
231
|
+
padding: 18px @spacing-1;
|
|
155
232
|
}
|
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
export const __esModule: true;
|
|
2
|
-
export const active: string;
|
|
3
2
|
export const calculating: string;
|
|
4
3
|
export const center: string;
|
|
5
|
-
export const
|
|
6
|
-
export const
|
|
4
|
+
export const heBottom: string;
|
|
5
|
+
export const heTopCenter: string;
|
|
6
|
+
export const heTopLeft: string;
|
|
7
|
+
export const heTopRight: string;
|
|
7
8
|
export const header: string;
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
12
|
-
export const
|
|
13
|
-
export const
|
|
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;
|
|
14
19
|
export const navigationOverflow: string;
|
|
15
20
|
export const overflowPopover: string;
|
|
16
21
|
export const right: string;
|