@gravity-ui/navigation 0.0.4 → 0.0.6
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/CHANGELOG.md +14 -0
- package/build/cjs/index.js +64547 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/types/components/AsideHeader/AsideHeader.d.ts +50 -0
- package/build/cjs/types/components/AsideHeader/Content.d.ts +11 -0
- package/build/cjs/types/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
- package/build/cjs/types/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +3 -0
- package/build/cjs/types/components/AsideHeader/__stories__/moc.d.ts +1 -0
- package/build/cjs/types/components/CompositeBar/CompositeBar.d.ts +22 -0
- package/build/cjs/types/components/CompositeBar/Item/Item.d.ts +27 -0
- package/build/cjs/types/components/CompositeBar/__stories__/CompositeBar.stories.d.ts +7 -0
- package/build/cjs/types/components/CompositeBar/__stories__/moc.d.ts +2 -0
- package/build/cjs/types/components/CompositeBar/constants.d.ts +7 -0
- package/build/cjs/types/components/CompositeBar/utils.d.ts +4 -0
- package/build/cjs/types/components/Drawer/Drawer.d.ts +20 -0
- package/build/cjs/types/components/Drawer/__stories__/Drawer.stories.d.ts +4 -0
- package/build/cjs/types/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
- package/build/cjs/types/components/FooterItem/FooterItem.d.ts +7 -0
- package/build/cjs/types/components/FooterItem/__stories__/FooterItem.stories.d.ts +7 -0
- package/build/cjs/types/components/ItemTooltip/ItemTooltip.d.ts +7 -0
- package/build/cjs/types/components/Logo/Logo.d.ts +19 -0
- package/build/cjs/types/components/constants.d.ts +8 -0
- package/build/cjs/types/components/index.d.ts +4 -0
- package/build/cjs/types/components/types.d.ts +24 -0
- package/build/cjs/types/components/utils/cn.d.ts +5 -0
- package/build/cjs/types/index.d.ts +1 -0
- package/build/esm/index.css +5288 -0
- package/build/esm/index.js +64540 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/types/components/AsideHeader/AsideHeader.d.ts +50 -0
- package/build/esm/types/components/AsideHeader/Content.d.ts +11 -0
- package/build/esm/types/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +4 -0
- package/build/esm/types/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +3 -0
- package/build/esm/types/components/AsideHeader/__stories__/moc.d.ts +1 -0
- package/build/esm/types/components/CompositeBar/CompositeBar.d.ts +22 -0
- package/build/esm/types/components/CompositeBar/Item/Item.d.ts +27 -0
- package/build/esm/types/components/CompositeBar/__stories__/CompositeBar.stories.d.ts +7 -0
- package/build/esm/types/components/CompositeBar/__stories__/moc.d.ts +2 -0
- package/build/esm/types/components/CompositeBar/constants.d.ts +7 -0
- package/build/esm/types/components/CompositeBar/utils.d.ts +4 -0
- package/build/esm/types/components/Drawer/Drawer.d.ts +20 -0
- package/build/esm/types/components/Drawer/__stories__/Drawer.stories.d.ts +4 -0
- package/build/esm/types/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
- package/build/esm/types/components/FooterItem/FooterItem.d.ts +7 -0
- package/build/esm/types/components/FooterItem/__stories__/FooterItem.stories.d.ts +7 -0
- package/build/esm/types/components/ItemTooltip/ItemTooltip.d.ts +7 -0
- package/build/esm/types/components/Logo/Logo.d.ts +19 -0
- package/build/esm/types/components/constants.d.ts +8 -0
- package/build/esm/types/components/index.d.ts +4 -0
- package/build/esm/types/components/types.d.ts +24 -0
- package/build/esm/types/components/utils/cn.d.ts +5 -0
- package/build/esm/types/index.d.ts +1 -0
- package/package.json +7 -5
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MenuItem, AsideHeaderDict } from '../types';
|
|
3
|
+
import { DrawerItemProps } from '../Drawer/Drawer';
|
|
4
|
+
import { LogoProps as LogoComponentProps } from '../Logo/Logo';
|
|
5
|
+
import { RenderContentType } from './Content';
|
|
6
|
+
import './AsideHeader.scss';
|
|
7
|
+
declare type LogoProps = Omit<LogoComponentProps, 'compact'>;
|
|
8
|
+
interface AsideHeaderGeneralProps {
|
|
9
|
+
logo: LogoProps;
|
|
10
|
+
compact: boolean;
|
|
11
|
+
dict?: AsideHeaderDict;
|
|
12
|
+
className?: string;
|
|
13
|
+
renderContent?: RenderContentType;
|
|
14
|
+
renderFooter?: (data: {
|
|
15
|
+
size: number;
|
|
16
|
+
compact: boolean;
|
|
17
|
+
asideRef: React.RefObject<HTMLDivElement>;
|
|
18
|
+
}) => React.ReactNode;
|
|
19
|
+
onClosePanel?: () => void;
|
|
20
|
+
onChangeCompact?: (compact: boolean) => void;
|
|
21
|
+
}
|
|
22
|
+
interface AsideHeaderDefaultProps {
|
|
23
|
+
panelItems: DrawerItemProps[];
|
|
24
|
+
subheaderItems: MenuItem[];
|
|
25
|
+
menuItems: MenuItem[];
|
|
26
|
+
}
|
|
27
|
+
export interface AsideHeaderProps extends AsideHeaderGeneralProps, Partial<AsideHeaderDefaultProps> {
|
|
28
|
+
}
|
|
29
|
+
declare type AsideHeaderInnerProps = AsideHeaderGeneralProps & AsideHeaderDefaultProps;
|
|
30
|
+
interface AsideHeaderState {
|
|
31
|
+
compact: boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class AsideHeader extends React.Component<AsideHeaderInnerProps, AsideHeaderState> {
|
|
34
|
+
static defaultProps: AsideHeaderDefaultProps;
|
|
35
|
+
asideRef: React.RefObject<HTMLDivElement>;
|
|
36
|
+
constructor(props: AsideHeaderInnerProps);
|
|
37
|
+
componentDidUpdate(prevProps: AsideHeaderInnerProps): void;
|
|
38
|
+
render(): JSX.Element;
|
|
39
|
+
private renderFirstPane;
|
|
40
|
+
private renderSecondPane;
|
|
41
|
+
private renderLogo;
|
|
42
|
+
private renderHeader;
|
|
43
|
+
private renderFooter;
|
|
44
|
+
private renderPanels;
|
|
45
|
+
private renderCollapseButton;
|
|
46
|
+
private onCollapseButtonClick;
|
|
47
|
+
private onCloseDrawer;
|
|
48
|
+
private onCompositeBarClick;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type RenderContentType = (data: {
|
|
3
|
+
size: number;
|
|
4
|
+
}) => React.ReactNode;
|
|
5
|
+
interface ContentProps {
|
|
6
|
+
renderContent?: RenderContentType;
|
|
7
|
+
className?: string;
|
|
8
|
+
size: number;
|
|
9
|
+
}
|
|
10
|
+
export declare const Content: React.FC<ContentProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const text = "\nDid you attend? He sang by grove ripe -\nThe bard of love, the singer of his mourning.\nWhen fields were silent by the early morning,\nTo sad and simple sounds of a pipe\nDid you attend?\n\nDid you behold in dark of forest leaf\nThe bard of love, the singer of his sadness?\nThe trace of tears, the smile, the utter paleness,\nThe quiet look, full of eternal grief,\nDid you behold?\n\nThen did you sigh when hearing how cries\nThe bard of love, the singer of his dole?\nWhen in the woods you saw the young man, sole,\nAnd met the look of his extinguished eyes,\nThen did you sigh?\n";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AsideHeaderDict, MenuItem } from './../types';
|
|
3
|
+
import './CompositeBar.scss';
|
|
4
|
+
export interface CompositeBarProps {
|
|
5
|
+
items: MenuItem[];
|
|
6
|
+
compact: boolean;
|
|
7
|
+
enableCollapsing: boolean;
|
|
8
|
+
dict?: AsideHeaderDict;
|
|
9
|
+
onItemClick?: (item: MenuItem) => void;
|
|
10
|
+
}
|
|
11
|
+
interface CompositeBarState {
|
|
12
|
+
activeItemIndex?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class CompositeBar extends React.Component<CompositeBarProps> {
|
|
15
|
+
state: CompositeBarState;
|
|
16
|
+
private listRef;
|
|
17
|
+
render(): JSX.Element;
|
|
18
|
+
private renderAutosizeMenu;
|
|
19
|
+
private renderMenu;
|
|
20
|
+
private getMoreButtonItem;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PopupPlacement, PopupProps } from '@gravity-ui/uikit';
|
|
3
|
+
import { MenuItem } from '../../types';
|
|
4
|
+
import './Item.scss';
|
|
5
|
+
interface ItemPopup {
|
|
6
|
+
popupVisible?: boolean;
|
|
7
|
+
popupAnchor?: React.RefObject<HTMLElement>;
|
|
8
|
+
popupPlacement?: PopupPlacement;
|
|
9
|
+
popupOffset?: PopupProps['offset'];
|
|
10
|
+
renderPopupContent?: () => React.ReactNode;
|
|
11
|
+
onClosePopup?: () => void;
|
|
12
|
+
}
|
|
13
|
+
export interface ItemProps extends ItemPopup {
|
|
14
|
+
item: MenuItem;
|
|
15
|
+
enableTooltip?: boolean;
|
|
16
|
+
}
|
|
17
|
+
interface ItemInnerProps extends ItemProps {
|
|
18
|
+
compact: boolean;
|
|
19
|
+
className?: string;
|
|
20
|
+
collapseItems?: MenuItem[];
|
|
21
|
+
onMouseEnter?: () => void;
|
|
22
|
+
onMouseLeave?: () => void;
|
|
23
|
+
}
|
|
24
|
+
export declare const defaultPopupPlacement: PopupPlacement;
|
|
25
|
+
export declare const defaultPopupOffset: NonNullable<PopupProps['offset']>;
|
|
26
|
+
export declare const Item: React.FC<ItemInnerProps>;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Meta } from '@storybook/react/types-6-0';
|
|
2
|
+
import { Story } from '@storybook/react';
|
|
3
|
+
import { CompositeBarProps } from '../CompositeBar';
|
|
4
|
+
import './CompositeBarShowcase.scss';
|
|
5
|
+
declare const _default: Meta<import("@storybook/react").Args>;
|
|
6
|
+
export default _default;
|
|
7
|
+
export declare const Default: Story<CompositeBarProps>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PopupPlacement } from '@gravity-ui/uikit';
|
|
2
|
+
export declare const ICON_SIZE = 24;
|
|
3
|
+
export declare const ITEM_HEIGHT = 40;
|
|
4
|
+
export declare const ITEM_TYPE_REGULAR = "regular";
|
|
5
|
+
export declare const COLLAPSE_ITEM_ID = "collapse-item-id";
|
|
6
|
+
export declare const POPUP_PLACEMENT: PopupPlacement;
|
|
7
|
+
export declare const POPUP_ITEM_HEIGHT = 28;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './Drawer.scss';
|
|
3
|
+
export interface DrawerItemProps {
|
|
4
|
+
id: string;
|
|
5
|
+
content: React.ReactNode;
|
|
6
|
+
visible: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const DrawerItem: React.FC<DrawerItemProps>;
|
|
10
|
+
declare type DrawerChild = React.ReactElement<DrawerItemProps>;
|
|
11
|
+
export interface DrawerProps {
|
|
12
|
+
children: DrawerChild | DrawerChild[];
|
|
13
|
+
preventScrollBody?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
style?: React.CSSProperties;
|
|
16
|
+
onVeilClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
|
|
17
|
+
onEscape?: () => void;
|
|
18
|
+
}
|
|
19
|
+
export declare const Drawer: React.FC<DrawerProps>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Meta } from '@storybook/react/types-6-0';
|
|
2
|
+
import { Story } from '@storybook/react';
|
|
3
|
+
import { FooterItemProps } from '../FooterItem';
|
|
4
|
+
import './FooterItemShowcase.scss';
|
|
5
|
+
declare const _default: Meta<import("@storybook/react").Args>;
|
|
6
|
+
export default _default;
|
|
7
|
+
export declare const Default: Story<FooterItemProps>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IconProps } from '@gravity-ui/uikit';
|
|
3
|
+
import './Logo.scss';
|
|
4
|
+
export interface LogoProps {
|
|
5
|
+
text: (() => React.ReactNode) | string;
|
|
6
|
+
icon?: IconProps['data'];
|
|
7
|
+
iconSrc?: string;
|
|
8
|
+
iconClassName?: string;
|
|
9
|
+
iconSize?: number;
|
|
10
|
+
textSize?: number;
|
|
11
|
+
href?: string;
|
|
12
|
+
wrapper?: (node: React.ReactNode, compact: boolean) => React.ReactNode;
|
|
13
|
+
onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
|
|
14
|
+
}
|
|
15
|
+
interface LogoInnerProps extends LogoProps {
|
|
16
|
+
compact: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const Logo: React.FC<LogoInnerProps>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const ASIDE_HEADER_FOOTER_ICON_SIZE = 20;
|
|
2
|
+
export declare const ASIDE_HEADER_COMPACT_WIDTH = 56;
|
|
3
|
+
export declare const ASIDE_HEADER_EXPANDED_WIDTH = 236;
|
|
4
|
+
export declare const defaultDict: {
|
|
5
|
+
button_collapse: string;
|
|
6
|
+
button_expand: string;
|
|
7
|
+
button_more: string;
|
|
8
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IconProps } from '@gravity-ui/uikit';
|
|
3
|
+
export declare type MenuItemType = 'regular' | 'action';
|
|
4
|
+
export interface MenuItem {
|
|
5
|
+
id: string;
|
|
6
|
+
title: React.ReactNode;
|
|
7
|
+
tooltipText?: string;
|
|
8
|
+
icon?: IconProps['data'];
|
|
9
|
+
iconSize?: number | string;
|
|
10
|
+
link?: string;
|
|
11
|
+
current?: boolean;
|
|
12
|
+
pinned?: boolean;
|
|
13
|
+
onItemClick?: (item: MenuItem, collapsed: boolean) => void;
|
|
14
|
+
itemWrapper?: (node: React.ReactNode, item: MenuItem, collapsed: boolean, compact: boolean) => React.ReactNode;
|
|
15
|
+
rightAdornment?: React.ReactNode;
|
|
16
|
+
type?: MenuItemType;
|
|
17
|
+
afterMoreButton?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare enum Dict {
|
|
20
|
+
ExpandButton = "button_expand",
|
|
21
|
+
CollapseButton = "button_collapse",
|
|
22
|
+
MoreButton = "button_more"
|
|
23
|
+
}
|
|
24
|
+
export declare type AsideHeaderDict = Record<Dict, string>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import bemBlock from 'bem-cn-lite';
|
|
2
|
+
export declare type CnBlock = ReturnType<typeof bemBlock>;
|
|
3
|
+
export declare type CnMods = Record<string, string | boolean | undefined>;
|
|
4
|
+
export declare const NAMESPACE = "ycn-";
|
|
5
|
+
export declare function block(name: string): CnBlock;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './components';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/navigation",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "Gravity UI Navigation components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -27,16 +27,17 @@
|
|
|
27
27
|
"lint:prettier": "prettier --check '**/*.md'",
|
|
28
28
|
"lint": "run-p lint:*",
|
|
29
29
|
"build-storybook": "build-storybook",
|
|
30
|
-
"start": "TS_NODE_PROJECT=.storybook/tsconfig.json start-storybook"
|
|
30
|
+
"start": "TS_NODE_PROJECT=.storybook/tsconfig.json start-storybook",
|
|
31
|
+
"prepublishOnly": "npm run build"
|
|
31
32
|
},
|
|
32
33
|
"dependencies": {
|
|
33
34
|
"react-transition-group": "^4.4.1",
|
|
34
35
|
"tslib": "^2.4.0"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
38
|
+
"@babel/core": "^7.18.10",
|
|
37
39
|
"@commitlint/cli": "^17.0.0",
|
|
38
40
|
"@commitlint/config-conventional": "^17.0.0",
|
|
39
|
-
"@babel/core": "^7.18.10",
|
|
40
41
|
"@gravity-ui/eslint-config": "^1.0.0",
|
|
41
42
|
"@gravity-ui/prettier-config": "^1.0.0",
|
|
42
43
|
"@gravity-ui/stylelint-config": "^1.0.0",
|
|
@@ -54,6 +55,7 @@
|
|
|
54
55
|
"@storybook/preset-scss": "^1.0.3",
|
|
55
56
|
"@storybook/react": "^6.5.10",
|
|
56
57
|
"@storybook/testing-library": "0.0.13",
|
|
58
|
+
"@svgr/rollup": "^6.4.0",
|
|
57
59
|
"@types/react": "^16.14.28",
|
|
58
60
|
"@types/react-transition-group": "^4.4.1",
|
|
59
61
|
"@types/react-virtualized-auto-sizer": "^1.0.0",
|
|
@@ -76,8 +78,8 @@
|
|
|
76
78
|
"storybook-preset-inline-svg": "^1.0.1",
|
|
77
79
|
"stylelint": "^14.9.1",
|
|
78
80
|
"svg-inline-loader": "^0.8.2",
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
+
"ts-jest": "^28.0.0",
|
|
82
|
+
"typescript": "^4.5.5"
|
|
81
83
|
},
|
|
82
84
|
"peerDependencies": {
|
|
83
85
|
"@gravity-ui/uikit": "^3.0.2",
|