@servicetitan/navigation 12.0.3 → 13.0.0-canary.256.5761ed1.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/counter-tag.d.ts +1 -1
- package/dist/components/counter-tag.d.ts.map +1 -1
- package/dist/components/counter-tag.js.map +1 -1
- package/dist/components/profile-dropdown/interface.d.ts +55 -0
- package/dist/components/profile-dropdown/interface.d.ts.map +1 -0
- package/dist/components/profile-dropdown/interface.js.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts +13 -0
- package/dist/components/profile-dropdown/profile-dropdown-legacy.stories.d.ts.map +1 -0
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts +5 -1
- package/dist/components/profile-dropdown/profile-dropdown-stacked.stories.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.d.ts +9 -79
- package/dist/components/profile-dropdown/profile-dropdown.d.ts.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.js +22 -22
- package/dist/components/profile-dropdown/profile-dropdown.js.map +1 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts +5 -1
- package/dist/components/profile-dropdown/profile-dropdown.stories.d.ts.map +1 -1
- package/dist/components/titan-layout/interface-internal.d.ts +12 -0
- package/dist/components/titan-layout/interface-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/interface-internal.js.map +1 -1
- package/dist/components/titan-layout/interface.d.ts +66 -13
- package/dist/components/titan-layout/interface.d.ts.map +1 -1
- package/dist/components/titan-layout/interface.js.map +1 -1
- package/dist/components/titan-layout/layout-header-dark.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-dark.js +21 -11
- package/dist/components/titan-layout/layout-header-dark.js.map +1 -1
- package/dist/components/titan-layout/layout-header-links-internal.d.ts +22 -3
- package/dist/components/titan-layout/layout-header-links-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-links-internal.js +15 -18
- package/dist/components/titan-layout/layout-header-links-internal.js.map +1 -1
- package/dist/components/titan-layout/layout-header-links.d.ts +3 -4
- package/dist/components/titan-layout/layout-header-links.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header-links.js +25 -5
- package/dist/components/titan-layout/layout-header-links.js.map +1 -1
- package/dist/components/titan-layout/layout-header.d.ts +2 -2
- package/dist/components/titan-layout/layout-header.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-header.js.map +1 -1
- package/dist/components/titan-layout/layout-header.module.less +31 -0
- package/dist/components/titan-layout/layout-header.module.less.d.ts +2 -0
- package/dist/components/titan-layout/layout-profile.d.ts +8 -5
- package/dist/components/titan-layout/layout-profile.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-profile.js +30 -28
- package/dist/components/titan-layout/layout-profile.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts +48 -25
- package/dist/components/titan-layout/layout-sidebar-links-internal.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links-internal.js +56 -52
- package/dist/components/titan-layout/layout-sidebar-links-internal.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links.d.ts +3 -3
- package/dist/components/titan-layout/layout-sidebar-links.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar-links.js +33 -18
- package/dist/components/titan-layout/layout-sidebar-links.js.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.d.ts.map +1 -1
- package/dist/components/titan-layout/layout-sidebar.js +49 -24
- package/dist/components/titan-layout/layout-sidebar.js.map +1 -1
- package/dist/components/titan-layout/titan-layout-default.stories.d.ts +16 -0
- package/dist/components/titan-layout/titan-layout-default.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts +10 -0
- package/dist/components/titan-layout/titan-layout-legacy.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout-links.d.ts +5 -0
- package/dist/components/titan-layout/titan-layout-links.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout-links.js +34 -0
- package/dist/components/titan-layout/titan-layout-links.js.map +1 -0
- package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts +10 -0
- package/dist/components/titan-layout/titan-layout-stacked.stories.d.ts.map +1 -0
- package/dist/components/titan-layout/titan-layout.d.ts +5 -4
- package/dist/components/titan-layout/titan-layout.d.ts.map +1 -1
- package/dist/components/titan-layout/titan-layout.js +10 -8
- package/dist/components/titan-layout/titan-layout.js.map +1 -1
- package/dist/index.d.ts +1 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/test/data.d.ts +26 -23
- package/dist/test/data.d.ts.map +1 -1
- package/dist/test/data.js +26 -69
- package/dist/test/data.js.map +1 -1
- package/dist/test/titan-layout.d.ts +16 -0
- package/dist/test/titan-layout.d.ts.map +1 -0
- package/dist/test/titan-layout.js +21 -0
- package/dist/test/titan-layout.js.map +1 -0
- package/dist/utils/navigation-context.d.ts +3 -22
- package/dist/utils/navigation-context.d.ts.map +1 -1
- package/dist/utils/navigation-context.js +2 -10
- package/dist/utils/navigation-context.js.map +1 -1
- package/dist/utils/navigation.d.ts +2 -7
- package/dist/utils/navigation.d.ts.map +1 -1
- package/dist/utils/navigation.js.map +1 -1
- package/package.json +2 -2
- package/src/components/counter-tag.tsx +1 -1
- package/src/components/profile-dropdown/interface.ts +47 -0
- package/src/components/profile-dropdown/profile-dropdown-legacy.stories.tsx +25 -0
- package/src/components/profile-dropdown/profile-dropdown-stacked.stories.tsx +15 -7
- package/src/components/profile-dropdown/profile-dropdown.stories.tsx +50 -43
- package/src/components/profile-dropdown/profile-dropdown.tsx +39 -115
- package/src/components/titan-layout/interface-internal.ts +13 -0
- package/src/components/titan-layout/interface.ts +72 -16
- package/src/components/titan-layout/layout-header-dark.tsx +17 -4
- package/src/components/titan-layout/layout-header-links-internal.tsx +41 -54
- package/src/components/titan-layout/layout-header-links.tsx +65 -12
- package/src/components/titan-layout/layout-header.module.less +31 -0
- package/src/components/titan-layout/layout-header.module.less.d.ts +2 -0
- package/src/components/titan-layout/layout-header.tsx +2 -2
- package/src/components/titan-layout/layout-profile.tsx +53 -34
- package/src/components/titan-layout/layout-sidebar-links-internal.tsx +169 -116
- package/src/components/titan-layout/layout-sidebar-links.tsx +73 -24
- package/src/components/titan-layout/layout-sidebar.tsx +52 -28
- package/src/components/titan-layout/{titan-layout.stories.tsx → titan-layout-default.stories.tsx} +125 -113
- package/src/components/titan-layout/titan-layout-legacy.stories.tsx +24 -0
- package/src/components/titan-layout/titan-layout-links.tsx +34 -0
- package/src/components/titan-layout/titan-layout-stacked.stories.tsx +30 -0
- package/src/components/titan-layout/titan-layout.tsx +12 -9
- package/src/index.ts +1 -12
- package/src/test/data.tsx +31 -83
- package/src/test/titan-layout.tsx +34 -0
- package/src/utils/navigation-context.tsx +9 -35
- package/src/utils/navigation.ts +3 -10
- package/dist/components/header-navigation/header-navigation-content.d.ts +0 -30
- package/dist/components/header-navigation/header-navigation-content.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation-content.js +0 -58
- package/dist/components/header-navigation/header-navigation-content.js.map +0 -1
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts +0 -9
- package/dist/components/header-navigation/header-navigation-extra-stacked.stories.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts +0 -12
- package/dist/components/header-navigation/header-navigation-extra.stories.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation-links.d.ts +0 -11
- package/dist/components/header-navigation/header-navigation-links.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation-links.js +0 -62
- package/dist/components/header-navigation/header-navigation-links.js.map +0 -1
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts +0 -12
- package/dist/components/header-navigation/header-navigation-stacked.stories.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation-stories.module.less +0 -6
- package/dist/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
- package/dist/components/header-navigation/header-navigation.d.ts +0 -59
- package/dist/components/header-navigation/header-navigation.d.ts.map +0 -1
- package/dist/components/header-navigation/header-navigation.js +0 -228
- package/dist/components/header-navigation/header-navigation.js.map +0 -1
- package/dist/components/header-navigation/header-navigation.module.less +0 -260
- package/dist/components/header-navigation/header-navigation.module.less.d.ts +0 -22
- package/dist/components/header-navigation/header-navigation.stories.d.ts +0 -12
- package/dist/components/header-navigation/header-navigation.stories.d.ts.map +0 -1
- package/dist/components/header-navigation/index.d.ts +0 -2
- package/dist/components/header-navigation/index.d.ts.map +0 -1
- package/dist/components/header-navigation/index.js +0 -3
- package/dist/components/header-navigation/index.js.map +0 -1
- package/dist/components/header-navigation/with-tooltip.d.ts +0 -4
- package/dist/components/header-navigation/with-tooltip.d.ts.map +0 -1
- package/dist/components/header-navigation/with-tooltip.js +0 -10
- package/dist/components/header-navigation/with-tooltip.js.map +0 -1
- package/dist/components/layout.stories.d.ts +0 -13
- package/dist/components/layout.stories.d.ts.map +0 -1
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts +0 -9
- package/dist/components/left-navigation/header-navigation-extra-tiny.stories.d.ts.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny-links.d.ts +0 -18
- package/dist/components/left-navigation/header-navigation-tiny-links.d.ts.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny-links.js +0 -79
- package/dist/components/left-navigation/header-navigation-tiny-links.js.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny.d.ts +0 -23
- package/dist/components/left-navigation/header-navigation-tiny.d.ts.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny.js +0 -32
- package/dist/components/left-navigation/header-navigation-tiny.js.map +0 -1
- package/dist/components/left-navigation/header-navigation-tiny.module.less +0 -117
- package/dist/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
- package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts +0 -12
- package/dist/components/left-navigation/header-navigation-tiny.stories.d.ts.map +0 -1
- package/dist/components/left-navigation/index.d.ts +0 -5
- package/dist/components/left-navigation/index.d.ts.map +0 -1
- package/dist/components/left-navigation/index.js +0 -5
- package/dist/components/left-navigation/index.js.map +0 -1
- package/dist/components/left-navigation/interface-internal.d.ts +0 -10
- package/dist/components/left-navigation/interface-internal.d.ts.map +0 -1
- package/dist/components/left-navigation/interface-internal.js +0 -3
- package/dist/components/left-navigation/interface-internal.js.map +0 -1
- package/dist/components/left-navigation/interface.d.ts +0 -20
- package/dist/components/left-navigation/interface.d.ts.map +0 -1
- package/dist/components/left-navigation/interface.js.map +0 -1
- package/dist/components/left-navigation/side-navigation-context.d.ts +0 -8
- package/dist/components/left-navigation/side-navigation-context.d.ts.map +0 -1
- package/dist/components/left-navigation/side-navigation-context.js +0 -8
- package/dist/components/left-navigation/side-navigation-context.js.map +0 -1
- package/dist/components/left-navigation/side-navigation-links-internal.d.ts +0 -28
- package/dist/components/left-navigation/side-navigation-links-internal.d.ts.map +0 -1
- package/dist/components/left-navigation/side-navigation-links-internal.js +0 -89
- package/dist/components/left-navigation/side-navigation-links-internal.js.map +0 -1
- package/dist/components/left-navigation/side-navigation-links.d.ts +0 -6
- package/dist/components/left-navigation/side-navigation-links.d.ts.map +0 -1
- package/dist/components/left-navigation/side-navigation-links.js +0 -48
- package/dist/components/left-navigation/side-navigation-links.js.map +0 -1
- package/dist/components/left-navigation/side-navigation.d.ts +0 -29
- package/dist/components/left-navigation/side-navigation.d.ts.map +0 -1
- package/dist/components/left-navigation/side-navigation.js +0 -411
- package/dist/components/left-navigation/side-navigation.js.map +0 -1
- package/dist/components/left-navigation/side-navigation.module.less +0 -530
- package/dist/components/left-navigation/side-navigation.module.less.d.ts +0 -48
- package/dist/components/left-navigation/side-navigation.stories.d.ts +0 -17
- package/dist/components/left-navigation/side-navigation.stories.d.ts.map +0 -1
- package/dist/components/left-navigation/with-tooltip.d.ts +0 -4
- package/dist/components/left-navigation/with-tooltip.d.ts.map +0 -1
- package/dist/components/left-navigation/with-tooltip.js +0 -15
- package/dist/components/left-navigation/with-tooltip.js.map +0 -1
- package/dist/components/links.d.ts +0 -5
- package/dist/components/links.d.ts.map +0 -1
- package/dist/components/links.js +0 -35
- package/dist/components/links.js.map +0 -1
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts +0 -9
- package/dist/components/profile-dropdown/profile-dropdown-tiny.stories.d.ts.map +0 -1
- package/dist/components/titan-layout/layout-profile.stories.d.ts +0 -13
- package/dist/components/titan-layout/layout-profile.stories.d.ts.map +0 -1
- package/dist/components/titan-layout/titan-layout.stories.d.ts +0 -29
- package/dist/components/titan-layout/titan-layout.stories.d.ts.map +0 -1
- package/dist/utils/navigation-legacy.d.ts +0 -88
- package/dist/utils/navigation-legacy.d.ts.map +0 -1
- package/dist/utils/navigation-legacy.js +0 -3
- package/dist/utils/navigation-legacy.js.map +0 -1
- package/src/components/header-navigation/header-navigation-content.tsx +0 -120
- package/src/components/header-navigation/header-navigation-extra-stacked.stories.tsx +0 -19
- package/src/components/header-navigation/header-navigation-extra.stories.tsx +0 -142
- package/src/components/header-navigation/header-navigation-links.tsx +0 -141
- package/src/components/header-navigation/header-navigation-stacked.stories.tsx +0 -146
- package/src/components/header-navigation/header-navigation-stories.module.less +0 -6
- package/src/components/header-navigation/header-navigation-stories.module.less.d.ts +0 -3
- package/src/components/header-navigation/header-navigation.module.less +0 -260
- package/src/components/header-navigation/header-navigation.module.less.d.ts +0 -22
- package/src/components/header-navigation/header-navigation.stories.tsx +0 -165
- package/src/components/header-navigation/header-navigation.tsx +0 -327
- package/src/components/header-navigation/index.ts +0 -1
- package/src/components/header-navigation/with-tooltip.tsx +0 -15
- package/src/components/layout.stories.tsx +0 -103
- package/src/components/left-navigation/header-navigation-extra-tiny.stories.tsx +0 -21
- package/src/components/left-navigation/header-navigation-tiny-links.tsx +0 -145
- package/src/components/left-navigation/header-navigation-tiny.module.less +0 -117
- package/src/components/left-navigation/header-navigation-tiny.module.less.d.ts +0 -15
- package/src/components/left-navigation/header-navigation-tiny.stories.tsx +0 -178
- package/src/components/left-navigation/header-navigation-tiny.tsx +0 -65
- package/src/components/left-navigation/index.ts +0 -4
- package/src/components/left-navigation/interface-internal.ts +0 -11
- package/src/components/left-navigation/interface.ts +0 -26
- package/src/components/left-navigation/side-navigation-context.tsx +0 -13
- package/src/components/left-navigation/side-navigation-links-internal.tsx +0 -151
- package/src/components/left-navigation/side-navigation-links.tsx +0 -57
- package/src/components/left-navigation/side-navigation.module.less +0 -530
- package/src/components/left-navigation/side-navigation.module.less.d.ts +0 -48
- package/src/components/left-navigation/side-navigation.stories.tsx +0 -226
- package/src/components/left-navigation/side-navigation.tsx +0 -543
- package/src/components/left-navigation/with-tooltip.tsx +0 -16
- package/src/components/links.tsx +0 -54
- package/src/components/profile-dropdown/profile-dropdown-tiny.stories.tsx +0 -25
- package/src/components/titan-layout/layout-profile.stories.tsx +0 -46
- package/src/utils/navigation-legacy.ts +0 -106
- /package/dist/components/{left-navigation → profile-dropdown}/interface.js +0 -0
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export interface NavLinkComponentPropsStrict {
|
|
1
|
+
import { ComponentPropsWithoutRef, FC } from 'react';
|
|
2
|
+
export type NavLinkComponentProps = ComponentPropsWithoutRef<'a'> & {
|
|
4
3
|
to: string;
|
|
5
|
-
title?: string;
|
|
6
|
-
className?: string;
|
|
7
4
|
activeClassName?: string;
|
|
8
|
-
children: ReactNode;
|
|
9
5
|
isActive?: (pathname: string) => boolean;
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
export interface NavLinkComponentProps extends NavLinkComponentPropsStrict {
|
|
13
|
-
[key: string]: any;
|
|
14
|
-
}
|
|
6
|
+
};
|
|
15
7
|
export declare const DefaultNavLinkComponent: FC<NavLinkComponentProps>;
|
|
16
|
-
export interface NavigationLocationInfo {
|
|
17
|
-
pathname: string;
|
|
18
|
-
}
|
|
19
|
-
export type NavigationActiveLinkMatcher = (location: NavigationLocationInfo, link: NavigationLinkData) => boolean;
|
|
20
|
-
export interface NavigationLocationContextType {
|
|
21
|
-
location: NavigationLocationInfo;
|
|
22
|
-
isLinkActive: NavigationActiveLinkMatcher;
|
|
23
|
-
}
|
|
24
|
-
export declare const NavigationComponentContext: import("react").Context<FC<NavLinkComponentProps>>;
|
|
25
|
-
export declare const NavigationLegacyContext: import("react").Context<boolean>;
|
|
26
|
-
export declare const NavigationLocationContext: import("react").Context<NavigationLocationContextType>;
|
|
27
8
|
//# sourceMappingURL=navigation-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-context.d.ts","sourceRoot":"","sources":["../../src/utils/navigation-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"navigation-context.d.ts","sourceRoot":"","sources":["../../src/utils/navigation-context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,wBAAwB,CAAC,GAAG,CAAC,GAAG;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,EAAE,CAAC,qBAAqB,CAU7D,CAAC"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export const DefaultNavLinkComponent = ({ children, to, activeClassName, isActive, ...props })=>/*#__PURE__*/ _jsx("a", {
|
|
3
|
+
href: to,
|
|
4
4
|
...props,
|
|
5
5
|
children: children
|
|
6
6
|
});
|
|
7
|
-
export const NavigationComponentContext = /*#__PURE__*/ createContext(DefaultNavLinkComponent);
|
|
8
|
-
export const NavigationLegacyContext = /*#__PURE__*/ createContext(false);
|
|
9
|
-
export const NavigationLocationContext = /*#__PURE__*/ createContext({
|
|
10
|
-
location: {
|
|
11
|
-
pathname: ''
|
|
12
|
-
},
|
|
13
|
-
isLinkActive: ()=>false
|
|
14
|
-
});
|
|
15
7
|
|
|
16
8
|
//# sourceMappingURL=navigation-context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/navigation-context.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"sources":["../../src/utils/navigation-context.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, FC } from 'react';\n\nexport type NavLinkComponentProps = ComponentPropsWithoutRef<'a'> & {\n to: string;\n activeClassName?: string;\n isActive?: (pathname: string) => boolean;\n};\n\nexport const DefaultNavLinkComponent: FC<NavLinkComponentProps> = ({\n children,\n to,\n activeClassName,\n isActive,\n ...props\n}) => (\n <a href={to} {...props}>\n {children}\n </a>\n);\n"],"names":["DefaultNavLinkComponent","children","to","activeClassName","isActive","props","a","href"],"mappings":";AAQA,OAAO,MAAMA,0BAAqD,CAAC,EAC/DC,QAAQ,EACRC,EAAE,EACFC,eAAe,EACfC,QAAQ,EACR,GAAGC,OACN,iBACG,KAACC;QAAEC,MAAML;QAAK,GAAGG,KAAK;kBACjBJ;OAEP"}
|
|
@@ -1,17 +1,10 @@
|
|
|
1
1
|
import { IconProps } from '@servicetitan/anvil2';
|
|
2
|
-
import { FC } from 'react';
|
|
3
2
|
import { CounterTagData, CounterTagValue } from './counter-tag';
|
|
4
3
|
export interface NavigationItemData extends NavigationLinkData {
|
|
5
|
-
/** flag if the link is not shown (based on FG and/or user permissions) */
|
|
6
|
-
isHidden?: boolean;
|
|
7
|
-
/** custom className (can be used for mdi icons) */
|
|
8
|
-
iconClassName?: string;
|
|
9
4
|
/** svg icon (anvil2) of inactive item */
|
|
10
5
|
icon: IconProps['svg'] | undefined;
|
|
11
6
|
/** svg icon (anvil2) of active item */
|
|
12
7
|
iconActive: IconProps['svg'] | undefined;
|
|
13
|
-
/** icon component of item (<svg />) */
|
|
14
|
-
iconComponent?: FC;
|
|
15
8
|
/** item tag (optional). shown if it is set and true or greater than 0 */
|
|
16
9
|
counter?: CounterTagValue;
|
|
17
10
|
tag?: CounterTagData;
|
|
@@ -19,6 +12,8 @@ export interface NavigationItemData extends NavigationLinkData {
|
|
|
19
12
|
className?: string;
|
|
20
13
|
/** optional submenu of link item */
|
|
21
14
|
submenu?: NavigationSubmenuData;
|
|
15
|
+
iconClassName?: never;
|
|
16
|
+
iconComponent?: never;
|
|
22
17
|
}
|
|
23
18
|
export interface NavigationLinkData {
|
|
24
19
|
/** link id */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/utils/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC1D,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEnC,uCAAuC;IACvC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEzC,yEAAyE;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;IAErB,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oCAAoC;IACpC,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAEhC,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,aAAa,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IAC/B,cAAc;IACd,EAAE,EAAE,MAAM,CAAC;IAEX,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,+FAA+F;IAC/F,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,qBAAqB;IAClC,qBAAqB;IACrB,MAAM,EAAE,0BAA0B,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,yBAA0B,SAAQ,kBAAkB;IACjE,+EAA+E;IAC/E,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,GAAG,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACvC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../src/utils/navigation.ts"],"sourcesContent":["import { IconProps } from '@servicetitan/anvil2';\nimport { CounterTagData, CounterTagValue } from './counter-tag';\n\nexport interface NavigationItemData extends NavigationLinkData {\n /** svg icon (anvil2) of inactive item */\n icon: IconProps['svg'] | undefined;\n\n /** svg icon (anvil2) of active item */\n iconActive: IconProps['svg'] | undefined;\n\n /** item tag (optional). shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n\n /** class name of link item */\n className?: string;\n\n /** optional submenu of link item */\n submenu?: NavigationSubmenuData;\n\n iconClassName?: never;\n iconComponent?: never;\n}\n\nexport interface NavigationLinkData {\n /** link id */\n id: string;\n\n /** link href */\n to: string;\n\n /** link title */\n title: string;\n\n /** callback to return active state. By default, it compares link href with current pathname */\n isActive?: boolean | ((pathname: string) => boolean);\n}\n\nexport interface NavigationSubmenuData {\n /** submenu groups */\n groups: NavigationSubmenuGroupData[];\n}\n\nexport interface NavigationSubmenuItemData extends NavigationLinkData {\n /** item tag (optional) value. shown if it is set and true or greater than 0 */\n counter?: CounterTagValue;\n tag?: CounterTagData;\n}\n\nexport interface NavigationSubmenuGroupData {\n /** submenu group title */\n title: string;\n\n /** submenu group links */\n links: NavigationSubmenuItemData[];\n}\n"],"names":[],"mappings":"AAiDA,WAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/navigation",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "13.0.0-canary.256.5761ed1.0",
|
|
4
4
|
"description": "Navigation components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"less": true,
|
|
43
43
|
"webpack": false
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "5761ed1e46eb6357f79785dce570a744a4baff2b"
|
|
46
46
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PopoverPropsStrict } from '@servicetitan/design-system';
|
|
2
|
+
import { ComponentPropsWithoutRef, FC, ReactNode } from 'react';
|
|
3
|
+
import { CounterTagData, CounterTagValue } from '../../utils/counter-tag';
|
|
4
|
+
|
|
5
|
+
export type ProfileDropdownTriggerProps = {
|
|
6
|
+
info?: { title: string; text: string };
|
|
7
|
+
imageSrc?: string | null;
|
|
8
|
+
avatarBadge?: boolean | string;
|
|
9
|
+
badge?: { content?: number | string; className: string };
|
|
10
|
+
} & Omit<ComponentPropsWithoutRef<'div'>, 'onClick'>;
|
|
11
|
+
|
|
12
|
+
export type ProfileDropdownProps = {
|
|
13
|
+
direction?: PopoverPropsStrict['direction'];
|
|
14
|
+
trigger?: Omit<ProfileDropdownTriggerProps, 'onClick' | 'open' | 'hintArrow'>;
|
|
15
|
+
hintPopup?: {
|
|
16
|
+
className?: string;
|
|
17
|
+
content: FC<{ openProfile(): void }>;
|
|
18
|
+
width?: PopoverPropsStrict['width'];
|
|
19
|
+
onClose?: () => void;
|
|
20
|
+
};
|
|
21
|
+
portal?: boolean;
|
|
22
|
+
width?: PopoverPropsStrict['width'];
|
|
23
|
+
onClose?(): void;
|
|
24
|
+
onOpen?(): void;
|
|
25
|
+
} & ComponentPropsWithoutRef<'div'>;
|
|
26
|
+
|
|
27
|
+
export type ProfileItemContent =
|
|
28
|
+
| { children: string; text?: string }
|
|
29
|
+
| { children: ReactNode; text: string };
|
|
30
|
+
|
|
31
|
+
export type ProfileDropdownSectionProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'> & {
|
|
32
|
+
children: ReactNode;
|
|
33
|
+
id: string;
|
|
34
|
+
tooltip?: string;
|
|
35
|
+
tag?: CounterTagData;
|
|
36
|
+
counter?: CounterTagValue;
|
|
37
|
+
} & ProfileItemContent;
|
|
38
|
+
|
|
39
|
+
export type ProfileDropdownLinkProps = Omit<ComponentPropsWithoutRef<'a'>, 'children'> & {
|
|
40
|
+
id: string;
|
|
41
|
+
children: ReactNode;
|
|
42
|
+
external?: boolean;
|
|
43
|
+
tooltip?: string;
|
|
44
|
+
to: string;
|
|
45
|
+
tag?: CounterTagData;
|
|
46
|
+
counter?: CounterTagValue;
|
|
47
|
+
} & ProfileItemContent;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
|
|
2
|
+
import { TitanLayout } from '../titan-layout';
|
|
3
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
4
|
+
|
|
5
|
+
const withLayout = (Story: any) => (
|
|
6
|
+
<TitanLayout navVariant="top" profile={<Story />} navigationComponent={NavLinkMock} />
|
|
7
|
+
);
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Navigation/DesktopProfileDropdown/Legacy',
|
|
11
|
+
component: DesktopProfileDropdown,
|
|
12
|
+
parameters: {},
|
|
13
|
+
decorators: [withMemoryRouter, withAnvil, withLayout],
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
ProfileDropdownDefault,
|
|
18
|
+
ProfileDropdownWithBothBadges,
|
|
19
|
+
ProfileDropdownWithCounter,
|
|
20
|
+
ProfileDropdownWithErrorLogo,
|
|
21
|
+
ProfileDropdownWithInfo,
|
|
22
|
+
ProfileDropdownWithHintAndInfoPopup,
|
|
23
|
+
ProfileDropdownWithHintPopup,
|
|
24
|
+
ProfileDropdownWithLogo,
|
|
25
|
+
} from './profile-dropdown.stories';
|
|
@@ -1,14 +1,22 @@
|
|
|
1
|
-
import { withAnvil, withMemoryRouter } from '../../test/data';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { NavLinkMock, navItems, withAnvil, withMemoryRouter } from '../../test/data';
|
|
2
|
+
import { TitanLayout } from '../titan-layout';
|
|
3
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const withStackedLayout = (Story: any) => (
|
|
6
|
+
<TitanLayout
|
|
7
|
+
navVariant="top"
|
|
8
|
+
top={<div />}
|
|
9
|
+
profile={<Story />}
|
|
10
|
+
navigationMainItems={[navItems.accounting]}
|
|
11
|
+
navigationComponent={NavLinkMock}
|
|
12
|
+
/>
|
|
13
|
+
);
|
|
6
14
|
|
|
7
15
|
export default {
|
|
8
|
-
title: 'Navigation/
|
|
9
|
-
component:
|
|
16
|
+
title: 'Navigation/DesktopProfileDropdown/Stacked',
|
|
17
|
+
component: DesktopProfileDropdown,
|
|
10
18
|
parameters: {},
|
|
11
|
-
decorators: [withMemoryRouter, withAnvil
|
|
19
|
+
decorators: [withStackedLayout, withMemoryRouter, withAnvil],
|
|
12
20
|
};
|
|
13
21
|
|
|
14
22
|
export {
|
|
@@ -1,58 +1,65 @@
|
|
|
1
1
|
import { Button } from '@servicetitan/design-system';
|
|
2
|
-
import { withAnvil, withMemoryRouter } from '../../test/data';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { NavLinkMock, withAnvil, withMemoryRouter } from '../../test/data';
|
|
3
|
+
import { TitanLayout } from '../titan-layout';
|
|
4
|
+
import { DesktopProfileDropdown } from './profile-dropdown';
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
<
|
|
8
|
-
<Story />
|
|
9
|
-
</HeaderNavigation>
|
|
6
|
+
const withLegacyLayout = (Story: any) => (
|
|
7
|
+
<TitanLayout navigationComponent={NavLinkMock} profile={<Story />} />
|
|
10
8
|
);
|
|
11
9
|
|
|
12
10
|
export default {
|
|
13
|
-
title: 'Navigation/
|
|
14
|
-
component:
|
|
11
|
+
title: 'Navigation/DesktopProfileDropdown/Default',
|
|
12
|
+
component: DesktopProfileDropdown,
|
|
15
13
|
parameters: {},
|
|
16
|
-
decorators: [withMemoryRouter, withAnvil
|
|
14
|
+
decorators: [withLegacyLayout, withMemoryRouter, withAnvil],
|
|
17
15
|
};
|
|
18
16
|
|
|
19
17
|
export const ProfileDropdownDefault = () => (
|
|
20
|
-
<
|
|
21
|
-
<
|
|
18
|
+
<DesktopProfileDropdown>
|
|
19
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com" external>
|
|
22
20
|
first link
|
|
23
|
-
</
|
|
24
|
-
<
|
|
21
|
+
</DesktopProfileDropdown.Link>
|
|
22
|
+
<DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
|
|
25
23
|
second link
|
|
26
|
-
</
|
|
27
|
-
<
|
|
28
|
-
<
|
|
29
|
-
<
|
|
30
|
-
<
|
|
31
|
-
<
|
|
32
|
-
<
|
|
24
|
+
</DesktopProfileDropdown.Section>
|
|
25
|
+
<DesktopProfileDropdown.Divider />
|
|
26
|
+
<DesktopProfileDropdown.Section id="content">some content</DesktopProfileDropdown.Section>
|
|
27
|
+
<DesktopProfileDropdown.Divider />
|
|
28
|
+
<DesktopProfileDropdown.Divider />
|
|
29
|
+
<DesktopProfileDropdown.Divider />
|
|
30
|
+
<DesktopProfileDropdown.Link id="third" to="third">
|
|
33
31
|
third link
|
|
34
|
-
</
|
|
35
|
-
<
|
|
36
|
-
|
|
32
|
+
</DesktopProfileDropdown.Link>
|
|
33
|
+
<DesktopProfileDropdown.Divider />
|
|
34
|
+
<DesktopProfileDropdown.Section
|
|
35
|
+
id="forth"
|
|
36
|
+
onClick={() => alert('forth click')}
|
|
37
|
+
text="Sign Out user"
|
|
38
|
+
>
|
|
39
|
+
Sign Out
|
|
40
|
+
<span className="c-neutral-60 m-l-1">user</span>
|
|
41
|
+
</DesktopProfileDropdown.Section>
|
|
42
|
+
<DesktopProfileDropdown.Divider />
|
|
43
|
+
</DesktopProfileDropdown>
|
|
37
44
|
);
|
|
38
45
|
|
|
39
46
|
export const ProfileDropdownWithLogo = () => (
|
|
40
|
-
<
|
|
47
|
+
<DesktopProfileDropdown
|
|
41
48
|
trigger={{
|
|
42
49
|
imageSrc: 'https://upload.wikimedia.org/wikipedia/en/1/11/Milhouse_Van_Houten.png',
|
|
43
50
|
}}
|
|
44
51
|
>
|
|
45
|
-
<
|
|
52
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com">
|
|
46
53
|
first link
|
|
47
|
-
</
|
|
48
|
-
<
|
|
54
|
+
</DesktopProfileDropdown.Link>
|
|
55
|
+
<DesktopProfileDropdown.Section id="second" onClick={() => alert('second click')}>
|
|
49
56
|
second link
|
|
50
|
-
</
|
|
51
|
-
</
|
|
57
|
+
</DesktopProfileDropdown.Section>
|
|
58
|
+
</DesktopProfileDropdown>
|
|
52
59
|
);
|
|
53
60
|
|
|
54
61
|
export const ProfileDropdownWithErrorLogo = () => (
|
|
55
|
-
<
|
|
62
|
+
<DesktopProfileDropdown
|
|
56
63
|
trigger={{
|
|
57
64
|
imageSrc: 'https://some.incorrect.url/logo.png',
|
|
58
65
|
}}
|
|
@@ -60,7 +67,7 @@ export const ProfileDropdownWithErrorLogo = () => (
|
|
|
60
67
|
);
|
|
61
68
|
|
|
62
69
|
export const ProfileDropdownWithInfo = () => (
|
|
63
|
-
<
|
|
70
|
+
<DesktopProfileDropdown
|
|
64
71
|
trigger={{
|
|
65
72
|
info: { text: 'first', title: 'tenant user' },
|
|
66
73
|
avatarBadge: true,
|
|
@@ -69,7 +76,7 @@ export const ProfileDropdownWithInfo = () => (
|
|
|
69
76
|
);
|
|
70
77
|
|
|
71
78
|
export const ProfileDropdownWithCounter = () => (
|
|
72
|
-
<
|
|
79
|
+
<DesktopProfileDropdown
|
|
73
80
|
trigger={{
|
|
74
81
|
info: { text: 'first', title: 'tenant user' },
|
|
75
82
|
avatarBadge: true,
|
|
@@ -79,7 +86,7 @@ export const ProfileDropdownWithCounter = () => (
|
|
|
79
86
|
);
|
|
80
87
|
|
|
81
88
|
export const ProfileDropdownWithBothBadges = () => (
|
|
82
|
-
<
|
|
89
|
+
<DesktopProfileDropdown
|
|
83
90
|
trigger={{
|
|
84
91
|
avatarBadge: 'yellow-500',
|
|
85
92
|
badge: { className: 'bg-red-400' },
|
|
@@ -91,7 +98,7 @@ export const ProfileDropdownWithBothBadges = () => (
|
|
|
91
98
|
const log = (text: string) => console.log(text);
|
|
92
99
|
|
|
93
100
|
export const ProfileDropdownWithHintPopup = () => (
|
|
94
|
-
<
|
|
101
|
+
<DesktopProfileDropdown
|
|
95
102
|
trigger={{
|
|
96
103
|
avatarBadge: 'yellow-500',
|
|
97
104
|
badge: { className: 'bg-red-400' },
|
|
@@ -112,19 +119,19 @@ export const ProfileDropdownWithHintPopup = () => (
|
|
|
112
119
|
onOpen={() => log('open profile dropdown')}
|
|
113
120
|
onClose={() => log('close profile dropdown')}
|
|
114
121
|
>
|
|
115
|
-
<
|
|
122
|
+
<DesktopProfileDropdown.Link id="first" to="https://google.com" counter={12}>
|
|
116
123
|
first item
|
|
117
|
-
</
|
|
118
|
-
<
|
|
119
|
-
<
|
|
120
|
-
<
|
|
124
|
+
</DesktopProfileDropdown.Link>
|
|
125
|
+
<DesktopProfileDropdown.Divider />
|
|
126
|
+
<DesktopProfileDropdown.Section id="second">second item</DesktopProfileDropdown.Section>
|
|
127
|
+
<DesktopProfileDropdown.Link id="third" to="https://google.com" tag={{ value: 1 }}>
|
|
121
128
|
third item
|
|
122
|
-
</
|
|
123
|
-
</
|
|
129
|
+
</DesktopProfileDropdown.Link>
|
|
130
|
+
</DesktopProfileDropdown>
|
|
124
131
|
);
|
|
125
132
|
|
|
126
133
|
export const ProfileDropdownWithHintAndInfoPopup = () => (
|
|
127
|
-
<
|
|
134
|
+
<DesktopProfileDropdown
|
|
128
135
|
trigger={{
|
|
129
136
|
avatarBadge: 'yellow-500',
|
|
130
137
|
badge: { className: 'bg-red-400' },
|