@servicetitan/navigation 2.2.2 → 2.3.1

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 (37) hide show
  1. package/dist/components/header-navigation/header-navigation-tiny.stories.d.ts +11 -0
  2. package/dist/components/header-navigation/header-navigation-tiny.stories.d.ts.map +1 -0
  3. package/dist/components/header-navigation/header-navigation-tiny.stories.js +22 -0
  4. package/dist/components/header-navigation/header-navigation-tiny.stories.js.map +1 -0
  5. package/dist/components/header-navigation/header-navigation.d.ts +23 -0
  6. package/dist/components/header-navigation/header-navigation.d.ts.map +1 -1
  7. package/dist/components/header-navigation/header-navigation.js +3 -0
  8. package/dist/components/header-navigation/header-navigation.js.map +1 -1
  9. package/dist/components/header-navigation/header-navigation.module.less +53 -0
  10. package/dist/components/side-navigation/index.d.ts +2 -0
  11. package/dist/components/side-navigation/index.d.ts.map +1 -0
  12. package/dist/components/side-navigation/index.js +2 -0
  13. package/dist/components/side-navigation/index.js.map +1 -0
  14. package/dist/components/side-navigation/side-navigation.d.ts +16 -0
  15. package/dist/components/side-navigation/side-navigation.d.ts.map +1 -0
  16. package/dist/components/side-navigation/side-navigation.js +18 -0
  17. package/dist/components/side-navigation/side-navigation.js.map +1 -0
  18. package/dist/components/side-navigation/side-navigation.module.less +57 -0
  19. package/dist/components/side-navigation/side-navigation.stories.d.ts +10 -0
  20. package/dist/components/side-navigation/side-navigation.stories.d.ts.map +1 -0
  21. package/dist/components/side-navigation/side-navigation.stories.js +47 -0
  22. package/dist/components/side-navigation/side-navigation.stories.js.map +1 -0
  23. package/dist/index.d.ts +1 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +1 -0
  26. package/dist/index.js.map +1 -1
  27. package/package.json +2 -2
  28. package/src/components/header-navigation/header-navigation-tiny.stories.tsx +125 -0
  29. package/src/components/header-navigation/header-navigation.module.less +53 -0
  30. package/src/components/header-navigation/header-navigation.module.less.d.ts +1 -0
  31. package/src/components/header-navigation/header-navigation.tsx +70 -0
  32. package/src/components/side-navigation/index.ts +1 -0
  33. package/src/components/side-navigation/side-navigation.module.less +57 -0
  34. package/src/components/side-navigation/side-navigation.module.less.d.ts +8 -0
  35. package/src/components/side-navigation/side-navigation.stories.tsx +88 -0
  36. package/src/components/side-navigation/side-navigation.tsx +93 -0
  37. package/src/index.ts +1 -0
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: FC<import("./header-navigation").HeaderNavigationTinyProps>;
5
+ parameters: {};
6
+ };
7
+ export default _default;
8
+ export declare const defaultNavigation: () => import("react/jsx-runtime").JSX.Element;
9
+ export declare const withLogoTextAndOverflow: () => import("react/jsx-runtime").JSX.Element;
10
+ export declare const withAllMonolithData: () => import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=header-navigation-tiny.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-navigation-tiny.stories.d.ts","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation-tiny.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAY,MAAM,OAAO,CAAC;;;;;;AAQrC,wBAIE;AAgCF,eAAO,MAAM,iBAAiB,+CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,+CAUnC,CAAC;AAQF,eAAO,MAAM,mBAAmB,+CAqD/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Input, Stack } from '@servicetitan/design-system';
3
+ import { Fragment } from 'react';
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 * as Styles from './header-navigation-stories.module.less';
8
+ import { HeaderNavigationLink, HeaderNavigationTiny, HeaderNavigationTrigger } from './';
9
+ export default {
10
+ title: 'Navigation/HeaderNavigationTiny',
11
+ component: HeaderNavigationTiny,
12
+ parameters: {},
13
+ };
14
+ const SearchIcon = () => (_jsx("svg", { width: "1em", height: "1em", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: _jsx("g", { transform: "translate(0,4)", children: _jsx("path", { d: "M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z", fill: "white" }) }) }));
15
+ const NavLinkMock = props => (_jsx("a", { href: props.to, target: props.target, onClick: e => {
16
+ e.preventDefault();
17
+ }, className: props.className, children: props.children }));
18
+ export const defaultNavigation = () => (_jsx(HeaderNavigationTiny, { left: _jsx(LogoCompanyTitle, { className: "m-l-1", fill: "#fff", size: "150" }), leftClassName: "d-f align-items-center", navigationComponent: NavLinkMock }));
19
+ export const withLogoTextAndOverflow = () => (_jsx(HeaderNavigationTiny, { left: _jsxs(Stack, { alignItems: "center", children: [_jsx(LogoTitan, { mantleFill: "#2270EE", size: 48 }), _jsx(LogoTitanTitle, { className: "c-white m-l-1", children: "Commercial" })] }), navigationComponent: NavLinkMock }));
20
+ const TimeZoneOffset = () => (_jsx("div", { className: "fs-2 ff-default p-r-2", children: _jsx("span", { children: "EST (-9 hrs)" }) }));
21
+ export const withAllMonolithData = () => (_jsx(HeaderNavigationTiny, { left: _jsx(LogoCompanyTitle, { className: "m-l-1", fill: "#fff", size: "150" }), leftClassName: "d-f align-items-center", navigationComponent: NavLinkMock, right: _jsxs(Fragment, { children: [_jsx(TimeZoneOffset, {}), _jsx(HeaderNavigationLink, { id: "search", to: "https://google.com", target: "_blank", iconComponent: SearchIcon, hint: "Search: for all the questions" }), _jsx(HeaderNavigationTrigger, { id: "dialpad", iconName: "phone", counter: 2 }), _jsx(HeaderNavigationTrigger, { id: "titanAdvisor", iconName: "rocket", iconClassName: Styles.rocketIcon }), _jsx(HeaderNavigationLink, { id: "settings", to: "https://google.com", target: "_blank", iconName: "settings", "aria-label": "search", hint: "Settings", isActive: true }), _jsxs(ProfileDropdown, { children: [_jsx(ProfileDropdown.Link, { id: "tasks", to: "https://googgle.com", counter: 10, children: "Task Management" }), _jsx(ProfileDropdown.Divider, {}), _jsxs(ProfileDropdown.Link, { id: "sign-out", to: "https://googgle.com", children: ["Sign Out", ' ', _jsx("span", { className: "c-neutral-100 m-l-half t-truncate", children: "James Bond" })] }), _jsx(ProfileDropdown.Section, { id: "userid", className: "c-neutral-100 fs-1", children: "User ID: 007" })] })] }), center: _jsx(Input, { placeholder: "Search smth", size: "xsmall", className: "w-100" }), centerClassName: "d-f align-items-center" }));
22
+ //# sourceMappingURL=header-navigation-tiny.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-navigation-tiny.stories.js","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation-tiny.stories.tsx"],"names":[],"mappings":"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"}
@@ -60,4 +60,27 @@ export interface HeaderNavigationStackedProps {
60
60
  overflow?: HeaderNavigationOverflowProps;
61
61
  }
62
62
  export declare const HeaderNavigationStacked: FC<HeaderNavigationStackedProps>;
63
+ export interface HeaderNavigationTinyProps {
64
+ /** container class name */
65
+ className?: string;
66
+ /** extra navigation */
67
+ right?: ReactNode;
68
+ /** extra navigation container class name */
69
+ rightClassName?: string;
70
+ /** container id */
71
+ id?: string;
72
+ /** left content (usually used for logo) */
73
+ left?: ReactElement;
74
+ /** left container class name */
75
+ leftClassName?: string;
76
+ /** center content */
77
+ center?: ReactElement;
78
+ /** center container class name */
79
+ centerClassName?: string;
80
+ /** minimal width for navigation bar */
81
+ minWidth?: number;
82
+ /** navigation component used for routing */
83
+ navigationComponent?: FC<NavLinkComponentProps>;
84
+ }
85
+ export declare const HeaderNavigationTiny: FC<HeaderNavigationTinyProps>;
63
86
  //# sourceMappingURL=header-navigation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-navigation.d.ts","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAA4C,MAAM,OAAO,CAAC;AAC9F,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAYzF,MAAM,WAAW,6BAA6B;IAC1C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3C,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AA0CD,MAAM,WAAW,qBAAqB;IAClC,uBAAuB;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,qCAAqC;IACrC,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC3C,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAChD,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC5C;AAQD,eAAO,MAAM,gBAAgB,EAAE,EAAE,CAAC,qBAAqB,CAkGtD,CAAC;AAEF,MAAM,WAAW,4BAA4B;IACzC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,kCAAkC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,qCAAqC;IACrC,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC3C,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAChD,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,6BAA6B,CAAC;CAC5C;AAED,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,4BAA4B,CA+GpE,CAAC"}
1
+ {"version":3,"file":"header-navigation.d.ts","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation.tsx"],"names":[],"mappings":"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"}
@@ -93,4 +93,7 @@ export const HeaderNavigationStacked = ({ className, id, items, itemsOverflow, l
93
93
  [Styles.calculating]: minimized === MinimizedState.Calculating,
94
94
  }, className), style: { minWidth: `${minWidth}px` }, id: id, "data-cy": "header-navigation", children: [_jsx("div", { className: classNames(Styles.heTopLeft, leftClassName), "data-cy": "navigation-left", children: left }), _jsx("div", { className: classNames(Styles.heTopCenter, centerClassName), "data-cy": "navigation-center", children: center }), _jsx("div", { className: classNames('d-f flex-row justify-content-end align-items-center', Styles.heTopRight, rightClassName), "data-cy": "navigation-right", children: right }), _jsx("div", { ref: bottomRef, className: classNames(Styles.heBottom, 'd-if flex-grow-1 flex-basis-0 justify-content-center', Styles.center), "data-cy": "navigation-items", children: _jsxs("div", { ref: navigationRef, className: classNames('d-if'), children: [items === null || items === void 0 ? void 0 : items.map(item => (_createElement(HeaderNavigationItem, Object.assign({}, item, { minimized: minimized === MinimizedState.Minimized, main: true, key: item.id })))), !!(itemsOverflow === null || itemsOverflow === void 0 ? void 0 : itemsOverflow.length) && (_jsx(HeaderNavigationOverflow, { items: itemsOverflow, overflow: overflow }))] }) })] }) }));
95
95
  };
96
+ export const HeaderNavigationTiny = ({ className, id, left, leftClassName, right, rightClassName, center, centerClassName, minWidth = 800, navigationComponent = DefaultNavLinkComponent, }) => {
97
+ return (_jsx(NavLinkContext.Provider, { value: navigationComponent, children: _jsxs("div", { className: classNames(Styles.headerTiny, className), style: { minWidth: `${minWidth}px` }, id: id, "data-cy": "header-navigation", children: [_jsx("div", { className: classNames(Styles.heTopLeft, leftClassName), "data-cy": "navigation-left", children: left }), _jsx("div", { className: classNames(Styles.heTopCenter, centerClassName), "data-cy": "navigation-center", children: center }), _jsx("div", { className: classNames('d-f flex-row justify-content-end align-items-center', Styles.heTopRight, rightClassName), "data-cy": "navigation-right", children: right })] }) }));
98
+ };
96
99
  //# sourceMappingURL=header-navigation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"header-navigation.js","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"header-navigation.js","sourceRoot":"","sources":["../../../src/components/header-navigation/header-navigation.tsx"],"names":[],"mappings":"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"}
@@ -162,6 +162,59 @@
162
162
  }
163
163
  }
164
164
 
165
+ .header-tiny {
166
+ display: grid;
167
+ grid-template-columns: repeat(3, 1fr);
168
+ grid-template-rows: 48px;
169
+
170
+ background-color: @color-neutral-500;
171
+
172
+ & > * {
173
+ overflow-y: hidden;
174
+ }
175
+
176
+ .he-top-left {
177
+ grid-column: span 1;
178
+ }
179
+
180
+ .he-top-center {
181
+ grid-column: span 1;
182
+ }
183
+
184
+ .he-top-right {
185
+ grid-column: span 1;
186
+
187
+ .navigation-icon {
188
+ height: 20px;
189
+ width: 20px;
190
+ font-size: @typescale-4;
191
+ }
192
+
193
+ & > * {
194
+ color: @color-white;
195
+ }
196
+ }
197
+
198
+ :global(.profile-dropdown-image) {
199
+ height: 24px;
200
+ width: 24px;
201
+ }
202
+
203
+ :global(.profile-dropdown-svg) {
204
+ height: 20px;
205
+ width: 20px;
206
+ }
207
+
208
+ .navigation-item-counter {
209
+ font-size: 8px !important;
210
+ }
211
+
212
+ .navigation-link .navigation-item-counter {
213
+ top: 12px;
214
+ right: 0;
215
+ }
216
+ }
217
+
165
218
  .navigation-icon {
166
219
  display: inline-block;
167
220
  }
@@ -0,0 +1,2 @@
1
+ export * from './side-navigation';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/side-navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './side-navigation';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/side-navigation/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { FC } from 'react';
2
+ import { HeaderNavigationItemData, NavLinkComponentProps } from '../../utils/navigation';
3
+ export interface SideNavigationProps {
4
+ /** container class name */
5
+ className?: string;
6
+ /** container id */
7
+ id?: string;
8
+ /** main navigation items */
9
+ items?: HeaderNavigationItemData[];
10
+ /** navigation component used for routing */
11
+ navigationComponent?: FC<NavLinkComponentProps>;
12
+ }
13
+ export declare const SideNavigation: FC<SideNavigationProps>;
14
+ /** Side Navigation menu item */
15
+ export declare const SideNavigationItem: FC<HeaderNavigationItemData>;
16
+ //# sourceMappingURL=side-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-navigation.d.ts","sourceRoot":"","sources":["../../../src/components/side-navigation/side-navigation.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AASzF,MAAM,WAAW,mBAAmB;IAChC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,KAAK,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACnC,4CAA4C;IAC5C,mBAAmB,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC;CACnD;AAED,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAqBlD,CAAC;AAEF,gCAAgC;AAChC,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,wBAAwB,CA6C3D,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Icon, Tooltip } from '@servicetitan/design-system';
3
+ import classNames from 'classnames';
4
+ import { DefaultNavLinkComponent, NavLinkContext, useNavLink, } from '../../utils/navigation-context';
5
+ import { CounterTag } from '../counter-tag';
6
+ import * as Styles from './side-navigation.module.less';
7
+ export const SideNavigation = ({ className, id, items, navigationComponent = DefaultNavLinkComponent, }) => {
8
+ return (_jsx(NavLinkContext.Provider, { value: navigationComponent, children: _jsx("div", { className: classNames(Styles.sideNav, className), id: id, "data-cy": "side-navigation", children: _jsx("div", { className: Styles.sideNavContent, children: items === null || items === void 0 ? void 0 : items.map(item => (_jsx(SideNavigationItem, Object.assign({}, item), item.id))) }) }) }));
9
+ };
10
+ /** Side Navigation menu item */
11
+ export const SideNavigationItem = ({ id, to, title, hint, counter, className, iconClassName, iconComponent: IconComponent, iconName, isActive, }) => {
12
+ const NavigationComponent = useNavLink();
13
+ const iconClass = classNames(Styles.navigationIcon, iconClassName);
14
+ return (_jsx(Tooltip, { el: "div", direction: "r", text: title, children: _jsxs(NavigationComponent, { "data-cy": `navigation-item-${id}`, "data-pendo": `navigation-item-${id}`, to: to, title: hint, className: classNames(Styles.navigationItem, className, {
15
+ [Styles.navigationItemActive]: isActive === true,
16
+ }), isActive: typeof isActive === 'function' ? isActive : undefined, activeClassName: Styles.navigationItemActive, children: [IconComponent ? (_jsx("i", { className: iconClass, children: _jsx(IconComponent, {}) })) : iconName ? (_jsx(Icon, { name: iconName, className: iconClass })) : (_jsx("i", { className: iconClass })), !!counter && (_jsx(CounterTag, { data: counter, className: Styles.navigationItemCounter }))] }, id) }));
17
+ };
18
+ //# sourceMappingURL=side-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-navigation.js","sourceRoot":"","sources":["../../../src/components/side-navigation/side-navigation.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,OAAO,EACH,uBAAuB,EACvB,cAAc,EACd,UAAU,GACb,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAC;AAaxD,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EACpD,SAAS,EACT,EAAE,EACF,KAAK,EACL,mBAAmB,GAAG,uBAAuB,GAChD,EAAE,EAAE;IACD,OAAO,CACH,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,mBAAmB,YAC/C,cACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAChD,EAAE,EAAE,EAAE,aACE,iBAAiB,YAEzB,cAAK,SAAS,EAAE,MAAM,CAAC,cAAc,YAChC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAChB,KAAC,kBAAkB,oBAAmB,IAAI,GAAjB,IAAI,CAAC,EAAE,CAAc,CACjD,CAAC,GACA,GACJ,GACgB,CAC7B,CAAC;AACN,CAAC,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,MAAM,kBAAkB,GAAiC,CAAC,EAC7D,EAAE,EACF,EAAE,EACF,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,aAAa,EAAE,aAAa,EAC5B,QAAQ,EACR,QAAQ,GACX,EAAE,EAAE;IACD,MAAM,mBAAmB,GAAG,UAAU,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAEnE,OAAO,CACH,KAAC,OAAO,IAAC,EAAE,EAAC,KAAK,EAAC,SAAS,EAAC,GAAG,EAAC,IAAI,EAAE,KAAK,YACvC,MAAC,mBAAmB,eACP,mBAAmB,EAAE,EAAE,gBACpB,mBAAmB,EAAE,EAAE,EAEnC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,SAAS,EAAE;gBACpD,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,QAAQ,KAAK,IAAI;aACnD,CAAC,EACF,QAAQ,EAAE,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAC/D,eAAe,EAAE,MAAM,CAAC,oBAAoB,aAE3C,aAAa,CAAC,CAAC,CAAC,CACb,YAAG,SAAS,EAAE,SAAS,YACnB,KAAC,aAAa,KAAG,GACjB,CACP,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACX,KAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAI,CACjD,CAAC,CAAC,CAAC,CACA,YAAG,SAAS,EAAE,SAAS,GAAI,CAC9B,EAEA,CAAC,CAAC,OAAO,IAAI,CACV,KAAC,UAAU,IAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,qBAAqB,GAAI,CACzE,KArBI,EAAE,CAsBW,GAChB,CACb,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,57 @@
1
+ /* stylelint-disable no-descending-specificity */
2
+ @import (reference) '@servicetitan/tokens/core/tokens.less';
3
+
4
+ .side-nav {
5
+ width: 56px;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+
10
+ background-color: #ebebeb;
11
+ border-right: 1px solid #c5c5cb;
12
+
13
+ .side-nav-content {
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ overflow-y: auto;
18
+ margin-top: @spacing-1;
19
+ margin-bottom: @spacing-1;
20
+ }
21
+ }
22
+
23
+ .navigation-item {
24
+ width: 56px;
25
+ font-family: @base-font-family;
26
+ color: #383838;
27
+ position: relative;
28
+ display: flex;
29
+ justify-content: center;
30
+ flex-wrap: nowrap;
31
+ text-wrap: nowrap;
32
+
33
+ padding-top: @spacing-1;
34
+ padding-bottom: @spacing-1;
35
+
36
+ &.navigation-item-active {
37
+ color: @color-purple-600 !important;
38
+ }
39
+
40
+ &:hover:not(.navigation-item-active) {
41
+ opacity: 0.7;
42
+ }
43
+
44
+ .navigation-item-counter {
45
+ color: @color-white;
46
+ font-weight: @font-weight-semibold;
47
+ position: absolute;
48
+ right: 2px;
49
+ top: -2px;
50
+ }
51
+ }
52
+
53
+ .navigation-icon {
54
+ height: 24px;
55
+ width: 24px;
56
+ font-size: 24px;
57
+ }
@@ -0,0 +1,10 @@
1
+ import { ComponentType, FC } from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ component: FC<import("./side-navigation").SideNavigationProps>;
5
+ decorators: ((Story: ComponentType) => import("react/jsx-runtime").JSX.Element)[];
6
+ parameters: {};
7
+ };
8
+ export default _default;
9
+ export declare const defaultSideNavigation: () => import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=side-navigation.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-navigation.stories.d.ts","sourceRoot":"","sources":["../../../src/components/side-navigation/side-navigation.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;;;;;;;AAY1C,wBAKE;AAkDF,eAAO,MAAM,qBAAqB,+CAoBjC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SideNavigation } from './';
3
+ const layout = (Story) => {
4
+ return (_jsxs("div", { className: "d-f border", style: { height: '800px' }, children: [_jsx(Story, {}), _jsx("div", { className: "flex-grow-1 flex-basis-0" })] }));
5
+ };
6
+ export default {
7
+ title: 'Navigation/SideNavigation',
8
+ component: SideNavigation,
9
+ decorators: [layout],
10
+ parameters: {},
11
+ };
12
+ const getItem = (id, data) => (Object.assign({ id, to: '/', title: id[0].toUpperCase() + id.substring(1), hint: id }, (data !== null && data !== void 0 ? data : {})));
13
+ const InventoryIcon = () => (_jsxs("svg", { width: "20", xmlns: "http://www.w3.org/2000/svg", viewBox: "-293 385 24 24", fill: "currentColor", children: [_jsx("polyline", { points: "-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 " }), _jsx("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" })] }));
14
+ const items = {
15
+ calendar: getItem('calendar', { iconName: 'event' }),
16
+ calls: getItem('calls', { iconName: 'local_phone', isActive: true, counter: 12 }),
17
+ dashboard: getItem('dashboard', { iconName: 'odometer', isActive: true }),
18
+ dispatch: getItem('dispatch', { iconName: 'location_disabled', counter: 1 }),
19
+ fleet: getItem('fleet', { iconName: 'fleet-pro', title: 'Fleet Pro' }),
20
+ followUps: getItem('followUps', { iconName: 'flag', title: 'Follow Ups' }),
21
+ inventory: getItem('inventory', { iconName: 'toys' }),
22
+ purchasing: getItem('purchasing', { iconComponent: InventoryIcon }),
23
+ accounting: getItem('accounting', { iconName: 'assignment' }),
24
+ marketing: getItem('marketing', { iconName: 'bullhorn' }),
25
+ priceBook: getItem('priceBook', { iconName: 'book' }),
26
+ pointOfSale: getItem('pointOfSale', { iconName: 'cash-register' }),
27
+ projects: getItem('projects', { iconName: 'folder_special' }),
28
+ reports: getItem('reports', { iconName: 'poll' }),
29
+ };
30
+ const NavLinkMock = props => (_jsx("a", { href: props.to, target: props.target, onClick: e => {
31
+ e.preventDefault();
32
+ }, className: props.className, children: props.children }));
33
+ export const defaultSideNavigation = () => (_jsx(SideNavigation, { navigationComponent: NavLinkMock, items: [
34
+ items.dashboard,
35
+ items.calendar,
36
+ items.calls,
37
+ items.accounting,
38
+ items.dispatch,
39
+ items.fleet,
40
+ items.followUps,
41
+ items.inventory,
42
+ items.marketing,
43
+ items.priceBook,
44
+ items.pointOfSale,
45
+ items.reports,
46
+ ] }));
47
+ //# sourceMappingURL=side-navigation.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"side-navigation.stories.js","sourceRoot":"","sources":["../../../src/components/side-navigation/side-navigation.stories.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './components/logo/logo-company-title';
4
4
  export * from './components/logo/logo-titan';
5
5
  export * from './components/logo/logo-titan-text';
6
6
  export * from './components/counter-tag';
7
+ export * from './components/side-navigation';
7
8
  export * from './utils/navigation';
8
9
  export * from './utils/with-tooltip';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export * from './components/logo/logo-company-title';
4
4
  export * from './components/logo/logo-titan';
5
5
  export * from './components/logo/logo-titan-text';
6
6
  export * from './components/counter-tag';
7
+ export * from './components/side-navigation';
7
8
  export * from './utils/navigation';
8
9
  export * from './utils/with-tooltip';
9
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gDAAgD,CAAC;AAC/D,cAAc,sCAAsC,CAAC;AACrD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/navigation",
3
- "version": "2.2.2",
3
+ "version": "2.3.1",
4
4
  "description": "Navigation components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,5 +43,5 @@
43
43
  "less": true,
44
44
  "webpack": false
45
45
  },
46
- "gitHead": "96ce2da1d9583f1e2293f1efb0062a119950066d"
46
+ "gitHead": "6e800b5fe48b4e0aaf85de5f0dd8b5b9ee794968"
47
47
  }
@@ -0,0 +1,125 @@
1
+ import { Input, Stack } from '@servicetitan/design-system';
2
+ import { FC, Fragment } from 'react';
3
+ import { 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 * as Styles from './header-navigation-stories.module.less';
8
+ import { HeaderNavigationLink, HeaderNavigationTiny, HeaderNavigationTrigger } from './';
9
+
10
+ export default {
11
+ title: 'Navigation/HeaderNavigationTiny',
12
+ component: HeaderNavigationTiny,
13
+ parameters: {},
14
+ };
15
+
16
+ const SearchIcon = () => (
17
+ <svg
18
+ width="1em"
19
+ height="1em"
20
+ viewBox="0 0 24 24"
21
+ fill="none"
22
+ xmlns="http://www.w3.org/2000/svg"
23
+ >
24
+ <g transform="translate(0,4)">
25
+ <path
26
+ d="M0 15.7992V13.9992H12V15.7992H0ZM0 9.49922V7.69922H6V9.49922H0ZM0 3.19922V1.39922H6V3.19922H0ZM22.74 15.7992L17.94 10.9992C17.42 11.3992 16.86 11.6992 16.26 11.8992C15.66 12.0992 15.04 12.1992 14.4 12.1992C12.74 12.1992 11.325 11.6142 10.155 10.4442C8.985 9.27422 8.4 7.85922 8.4 6.19922C8.4 4.53922 8.985 3.12422 10.155 1.95422C11.325 0.784219 12.74 0.199219 14.4 0.199219C16.06 0.199219 17.475 0.784219 18.645 1.95422C19.815 3.12422 20.4 4.53922 20.4 6.19922C20.4 6.83922 20.3 7.45922 20.1 8.05922C19.9 8.65922 19.6 9.21922 19.2 9.73922L24 14.5392L22.74 15.7992ZM14.393 10.3992C15.5577 10.3992 16.55 9.99157 17.37 9.17627C18.19 8.36099 18.6 7.37099 18.6 6.20627C18.6 5.04157 18.1923 4.04922 17.377 3.22922C16.5618 2.40922 15.5718 1.99922 14.407 1.99922C13.2423 1.99922 12.25 2.40687 11.43 3.22217C10.61 4.03745 10.2 5.02745 10.2 6.19217C10.2 7.35687 10.6077 8.34922 11.423 9.16922C12.2382 9.98922 13.2282 10.3992 14.393 10.3992Z"
27
+ fill="white"
28
+ />
29
+ </g>
30
+ </svg>
31
+ );
32
+
33
+ const NavLinkMock: FC<NavLinkComponentProps> = props => (
34
+ <a
35
+ href={props.to}
36
+ target={props.target}
37
+ onClick={e => {
38
+ e.preventDefault();
39
+ }}
40
+ className={props.className}
41
+ >
42
+ {props.children}
43
+ </a>
44
+ );
45
+
46
+ export const defaultNavigation = () => (
47
+ <HeaderNavigationTiny
48
+ left={<LogoCompanyTitle className="m-l-1" fill="#fff" size="150" />}
49
+ leftClassName="d-f align-items-center"
50
+ navigationComponent={NavLinkMock}
51
+ />
52
+ );
53
+
54
+ export const withLogoTextAndOverflow = () => (
55
+ <HeaderNavigationTiny
56
+ left={
57
+ <Stack alignItems="center">
58
+ <LogoTitan mantleFill="#2270EE" size={48} />
59
+ <LogoTitanTitle className="c-white m-l-1">Commercial</LogoTitanTitle>
60
+ </Stack>
61
+ }
62
+ navigationComponent={NavLinkMock}
63
+ />
64
+ );
65
+
66
+ const TimeZoneOffset: FC = () => (
67
+ <div className="fs-2 ff-default p-r-2">
68
+ <span>EST (-9 hrs)</span>
69
+ </div>
70
+ );
71
+
72
+ export const withAllMonolithData = () => (
73
+ <HeaderNavigationTiny
74
+ left={<LogoCompanyTitle className="m-l-1" fill="#fff" size="150" />}
75
+ leftClassName="d-f align-items-center"
76
+ navigationComponent={NavLinkMock}
77
+ right={
78
+ <Fragment>
79
+ <TimeZoneOffset />
80
+
81
+ <HeaderNavigationLink
82
+ id="search"
83
+ to="https://google.com"
84
+ target="_blank"
85
+ iconComponent={SearchIcon}
86
+ hint="Search: for all the questions"
87
+ />
88
+
89
+ <HeaderNavigationTrigger id="dialpad" iconName="phone" counter={2} />
90
+
91
+ <HeaderNavigationTrigger
92
+ id="titanAdvisor"
93
+ iconName="rocket"
94
+ iconClassName={Styles.rocketIcon}
95
+ />
96
+
97
+ <HeaderNavigationLink
98
+ id="settings"
99
+ to="https://google.com"
100
+ target="_blank"
101
+ iconName="settings"
102
+ aria-label="search"
103
+ hint="Settings"
104
+ isActive
105
+ />
106
+
107
+ <ProfileDropdown>
108
+ <ProfileDropdown.Link id="tasks" to="https://googgle.com" counter={10}>
109
+ Task Management
110
+ </ProfileDropdown.Link>
111
+ <ProfileDropdown.Divider />
112
+ <ProfileDropdown.Link id="sign-out" to="https://googgle.com">
113
+ Sign Out{' '}
114
+ <span className="c-neutral-100 m-l-half t-truncate">James Bond</span>
115
+ </ProfileDropdown.Link>
116
+ <ProfileDropdown.Section id="userid" className="c-neutral-100 fs-1">
117
+ User ID: 007
118
+ </ProfileDropdown.Section>
119
+ </ProfileDropdown>
120
+ </Fragment>
121
+ }
122
+ center={<Input placeholder="Search smth" size="xsmall" className="w-100" />}
123
+ centerClassName="d-f align-items-center"
124
+ />
125
+ );
@@ -162,6 +162,59 @@
162
162
  }
163
163
  }
164
164
 
165
+ .header-tiny {
166
+ display: grid;
167
+ grid-template-columns: repeat(3, 1fr);
168
+ grid-template-rows: 48px;
169
+
170
+ background-color: @color-neutral-500;
171
+
172
+ & > * {
173
+ overflow-y: hidden;
174
+ }
175
+
176
+ .he-top-left {
177
+ grid-column: span 1;
178
+ }
179
+
180
+ .he-top-center {
181
+ grid-column: span 1;
182
+ }
183
+
184
+ .he-top-right {
185
+ grid-column: span 1;
186
+
187
+ .navigation-icon {
188
+ height: 20px;
189
+ width: 20px;
190
+ font-size: @typescale-4;
191
+ }
192
+
193
+ & > * {
194
+ color: @color-white;
195
+ }
196
+ }
197
+
198
+ :global(.profile-dropdown-image) {
199
+ height: 24px;
200
+ width: 24px;
201
+ }
202
+
203
+ :global(.profile-dropdown-svg) {
204
+ height: 20px;
205
+ width: 20px;
206
+ }
207
+
208
+ .navigation-item-counter {
209
+ font-size: 8px !important;
210
+ }
211
+
212
+ .navigation-link .navigation-item-counter {
213
+ top: 12px;
214
+ right: 0;
215
+ }
216
+ }
217
+
165
218
  .navigation-icon {
166
219
  display: inline-block;
167
220
  }
@@ -7,6 +7,7 @@ export const heTopLeft: string;
7
7
  export const heTopRight: string;
8
8
  export const header: string;
9
9
  export const headerStacked: string;
10
+ export const headerTiny: string;
10
11
  export const navigationIcon: string;
11
12
  export const navigationItem: string;
12
13
  export const navigationItemActive: string;
@@ -331,3 +331,73 @@ export const HeaderNavigationStacked: FC<HeaderNavigationStackedProps> = ({
331
331
  </NavLinkContext.Provider>
332
332
  );
333
333
  };
334
+
335
+ export interface HeaderNavigationTinyProps {
336
+ /** container class name */
337
+ className?: string;
338
+ /** extra navigation */
339
+ right?: ReactNode;
340
+ /** extra navigation container class name */
341
+ rightClassName?: string;
342
+ /** container id */
343
+ id?: string;
344
+ /** left content (usually used for logo) */
345
+ left?: ReactElement;
346
+ /** left container class name */
347
+ leftClassName?: string;
348
+ /** center content */
349
+ center?: ReactElement;
350
+ /** center container class name */
351
+ centerClassName?: string;
352
+ /** minimal width for navigation bar */
353
+ minWidth?: number;
354
+ /** navigation component used for routing */
355
+ navigationComponent?: FC<NavLinkComponentProps>;
356
+ }
357
+
358
+ export const HeaderNavigationTiny: FC<HeaderNavigationTinyProps> = ({
359
+ className,
360
+ id,
361
+ left,
362
+ leftClassName,
363
+ right,
364
+ rightClassName,
365
+ center,
366
+ centerClassName,
367
+ minWidth = 800,
368
+ navigationComponent = DefaultNavLinkComponent,
369
+ }) => {
370
+ return (
371
+ <NavLinkContext.Provider value={navigationComponent}>
372
+ <div
373
+ className={classNames(Styles.headerTiny, className)}
374
+ style={{ minWidth: `${minWidth}px` }}
375
+ id={id}
376
+ data-cy="header-navigation"
377
+ >
378
+ <div
379
+ className={classNames(Styles.heTopLeft, leftClassName)}
380
+ data-cy="navigation-left"
381
+ >
382
+ {left}
383
+ </div>
384
+ <div
385
+ className={classNames(Styles.heTopCenter, centerClassName)}
386
+ data-cy="navigation-center"
387
+ >
388
+ {center}
389
+ </div>
390
+ <div
391
+ className={classNames(
392
+ 'd-f flex-row justify-content-end align-items-center',
393
+ Styles.heTopRight,
394
+ rightClassName
395
+ )}
396
+ data-cy="navigation-right"
397
+ >
398
+ {right}
399
+ </div>
400
+ </div>
401
+ </NavLinkContext.Provider>
402
+ );
403
+ };
@@ -0,0 +1 @@
1
+ export * from './side-navigation';
@@ -0,0 +1,57 @@
1
+ /* stylelint-disable no-descending-specificity */
2
+ @import (reference) '@servicetitan/tokens/core/tokens.less';
3
+
4
+ .side-nav {
5
+ width: 56px;
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+
10
+ background-color: #ebebeb;
11
+ border-right: 1px solid #c5c5cb;
12
+
13
+ .side-nav-content {
14
+ display: flex;
15
+ flex-direction: column;
16
+ align-items: center;
17
+ overflow-y: auto;
18
+ margin-top: @spacing-1;
19
+ margin-bottom: @spacing-1;
20
+ }
21
+ }
22
+
23
+ .navigation-item {
24
+ width: 56px;
25
+ font-family: @base-font-family;
26
+ color: #383838;
27
+ position: relative;
28
+ display: flex;
29
+ justify-content: center;
30
+ flex-wrap: nowrap;
31
+ text-wrap: nowrap;
32
+
33
+ padding-top: @spacing-1;
34
+ padding-bottom: @spacing-1;
35
+
36
+ &.navigation-item-active {
37
+ color: @color-purple-600 !important;
38
+ }
39
+
40
+ &:hover:not(.navigation-item-active) {
41
+ opacity: 0.7;
42
+ }
43
+
44
+ .navigation-item-counter {
45
+ color: @color-white;
46
+ font-weight: @font-weight-semibold;
47
+ position: absolute;
48
+ right: 2px;
49
+ top: -2px;
50
+ }
51
+ }
52
+
53
+ .navigation-icon {
54
+ height: 24px;
55
+ width: 24px;
56
+ font-size: 24px;
57
+ }
@@ -0,0 +1,8 @@
1
+ export const __esModule: true;
2
+ export const navigationIcon: string;
3
+ export const navigationItem: string;
4
+ export const navigationItemActive: string;
5
+ export const navigationItemCounter: string;
6
+ export const sideNav: string;
7
+ export const sideNavContent: string;
8
+
@@ -0,0 +1,88 @@
1
+ import { ComponentType, FC } from 'react';
2
+ import { HeaderNavigationItemData, NavLinkComponentProps } from '../../utils/navigation';
3
+ import { SideNavigation } from './';
4
+
5
+ const layout = (Story: ComponentType) => {
6
+ return (
7
+ <div className="d-f border" style={{ height: '800px' }}>
8
+ <Story />
9
+ <div className="flex-grow-1 flex-basis-0" />
10
+ </div>
11
+ );
12
+ };
13
+ export default {
14
+ title: 'Navigation/SideNavigation',
15
+ component: SideNavigation,
16
+ decorators: [layout],
17
+ parameters: {},
18
+ };
19
+
20
+ const getItem = (
21
+ id: string,
22
+ data: Partial<HeaderNavigationItemData>
23
+ ): HeaderNavigationItemData => ({
24
+ id,
25
+ to: '/',
26
+ title: id[0].toUpperCase() + id.substring(1),
27
+ hint: id,
28
+ ...(data ?? {}),
29
+ });
30
+
31
+ const InventoryIcon = () => (
32
+ <svg width="20" xmlns="http://www.w3.org/2000/svg" viewBox="-293 385 24 24" fill="currentColor">
33
+ <polyline points="-288,400.9 -282,404.3 -282,397.6 -288,394.2 -288,400.9 " />
34
+ <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" />
35
+ </svg>
36
+ );
37
+
38
+ const items = {
39
+ calendar: getItem('calendar', { iconName: 'event' }),
40
+ calls: getItem('calls', { iconName: 'local_phone', isActive: true, counter: 12 }),
41
+ dashboard: getItem('dashboard', { iconName: 'odometer', isActive: true }),
42
+ dispatch: getItem('dispatch', { iconName: 'location_disabled', counter: 1 }),
43
+ fleet: getItem('fleet', { iconName: 'fleet-pro', title: 'Fleet Pro' }),
44
+ followUps: getItem('followUps', { iconName: 'flag', title: 'Follow Ups' }),
45
+ inventory: getItem('inventory', { iconName: 'toys' }),
46
+ purchasing: getItem('purchasing', { iconComponent: InventoryIcon }),
47
+ accounting: getItem('accounting', { iconName: 'assignment' }),
48
+ marketing: getItem('marketing', { iconName: 'bullhorn' }),
49
+ priceBook: getItem('priceBook', { iconName: 'book' }),
50
+ pointOfSale: getItem('pointOfSale', { iconName: 'cash-register' }),
51
+ projects: getItem('projects', { iconName: 'folder_special' }),
52
+ reports: getItem('reports', { iconName: 'poll' }),
53
+ };
54
+
55
+ const NavLinkMock: FC<NavLinkComponentProps> = props => (
56
+ <a
57
+ href={props.to}
58
+ target={props.target}
59
+ onClick={e => {
60
+ e.preventDefault();
61
+ }}
62
+ className={props.className}
63
+ >
64
+ {props.children}
65
+ </a>
66
+ );
67
+
68
+ export const defaultSideNavigation = () => (
69
+ <SideNavigation
70
+ navigationComponent={NavLinkMock}
71
+ items={[
72
+ items.dashboard,
73
+ items.calendar,
74
+ items.calls,
75
+ items.accounting,
76
+ items.dispatch,
77
+
78
+ items.fleet,
79
+ items.followUps,
80
+ items.inventory,
81
+
82
+ items.marketing,
83
+ items.priceBook,
84
+ items.pointOfSale,
85
+ items.reports,
86
+ ]}
87
+ />
88
+ );
@@ -0,0 +1,93 @@
1
+ import { Icon, Tooltip } from '@servicetitan/design-system';
2
+ import classNames from 'classnames';
3
+ import { FC } from 'react';
4
+ import { HeaderNavigationItemData, NavLinkComponentProps } from '../../utils/navigation';
5
+ import {
6
+ DefaultNavLinkComponent,
7
+ NavLinkContext,
8
+ useNavLink,
9
+ } from '../../utils/navigation-context';
10
+ import { CounterTag } from '../counter-tag';
11
+ import * as Styles from './side-navigation.module.less';
12
+
13
+ export interface SideNavigationProps {
14
+ /** container class name */
15
+ className?: string;
16
+ /** container id */
17
+ id?: string;
18
+ /** main navigation items */
19
+ items?: HeaderNavigationItemData[];
20
+ /** navigation component used for routing */
21
+ navigationComponent?: FC<NavLinkComponentProps>;
22
+ }
23
+
24
+ export const SideNavigation: FC<SideNavigationProps> = ({
25
+ className,
26
+ id,
27
+ items,
28
+ navigationComponent = DefaultNavLinkComponent,
29
+ }) => {
30
+ return (
31
+ <NavLinkContext.Provider value={navigationComponent}>
32
+ <div
33
+ className={classNames(Styles.sideNav, className)}
34
+ id={id}
35
+ data-cy="side-navigation"
36
+ >
37
+ <div className={Styles.sideNavContent}>
38
+ {items?.map(item => (
39
+ <SideNavigationItem key={item.id} {...item} />
40
+ ))}
41
+ </div>
42
+ </div>
43
+ </NavLinkContext.Provider>
44
+ );
45
+ };
46
+
47
+ /** Side Navigation menu item */
48
+ export const SideNavigationItem: FC<HeaderNavigationItemData> = ({
49
+ id,
50
+ to,
51
+ title,
52
+ hint,
53
+ counter,
54
+ className,
55
+ iconClassName,
56
+ iconComponent: IconComponent,
57
+ iconName,
58
+ isActive,
59
+ }) => {
60
+ const NavigationComponent = useNavLink();
61
+ const iconClass = classNames(Styles.navigationIcon, iconClassName);
62
+
63
+ return (
64
+ <Tooltip el="div" direction="r" text={title}>
65
+ <NavigationComponent
66
+ data-cy={`navigation-item-${id}`}
67
+ data-pendo={`navigation-item-${id}`}
68
+ key={id}
69
+ to={to}
70
+ title={hint}
71
+ className={classNames(Styles.navigationItem, className, {
72
+ [Styles.navigationItemActive]: isActive === true,
73
+ })}
74
+ isActive={typeof isActive === 'function' ? isActive : undefined}
75
+ activeClassName={Styles.navigationItemActive}
76
+ >
77
+ {IconComponent ? (
78
+ <i className={iconClass}>
79
+ <IconComponent />
80
+ </i>
81
+ ) : iconName ? (
82
+ <Icon name={iconName} className={iconClass} />
83
+ ) : (
84
+ <i className={iconClass} />
85
+ )}
86
+
87
+ {!!counter && (
88
+ <CounterTag data={counter} className={Styles.navigationItemCounter} />
89
+ )}
90
+ </NavigationComponent>
91
+ </Tooltip>
92
+ );
93
+ };
package/src/index.ts CHANGED
@@ -4,5 +4,6 @@ export * from './components/logo/logo-company-title';
4
4
  export * from './components/logo/logo-titan';
5
5
  export * from './components/logo/logo-titan-text';
6
6
  export * from './components/counter-tag';
7
+ export * from './components/side-navigation';
7
8
  export * from './utils/navigation';
8
9
  export * from './utils/with-tooltip';