@gravity-ui/navigation 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +17 -1
  2. package/build/cjs/components/AsideHeader/AsideHeader.d.ts +2 -44
  3. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +13 -5
  4. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +3 -1
  5. package/build/cjs/components/AsideHeader/components/CollapseButton.d.ts +2 -0
  6. package/build/cjs/components/AsideHeader/components/FirstPanel.d.ts +2 -0
  7. package/build/cjs/components/AsideHeader/components/Header.d.ts +2 -0
  8. package/build/cjs/components/AsideHeader/components/Panels.d.ts +2 -0
  9. package/build/cjs/components/AsideHeader/components/index.d.ts +1 -0
  10. package/build/cjs/components/AsideHeader/types.d.ts +29 -0
  11. package/build/cjs/components/AsideHeader/utils.d.ts +1 -0
  12. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +10 -0
  13. package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -0
  14. package/build/cjs/components/CompositeBar/constants.d.ts +0 -1
  15. package/build/cjs/components/constants.d.ts +1 -1
  16. package/build/cjs/components/types.d.ts +1 -0
  17. package/build/cjs/components/utils/cn.d.ts +3 -3
  18. package/build/cjs/index.js +4515 -4492
  19. package/build/cjs/index.js.map +1 -1
  20. package/build/esm/components/AsideHeader/AsideHeader.d.ts +2 -44
  21. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +13 -5
  22. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +3 -1
  23. package/build/esm/components/AsideHeader/components/CollapseButton.d.ts +2 -0
  24. package/build/esm/components/AsideHeader/components/FirstPanel.d.ts +2 -0
  25. package/build/esm/components/AsideHeader/components/Header.d.ts +2 -0
  26. package/build/esm/components/AsideHeader/components/Panels.d.ts +2 -0
  27. package/build/esm/components/AsideHeader/components/index.d.ts +1 -0
  28. package/build/esm/components/AsideHeader/types.d.ts +29 -0
  29. package/build/esm/components/AsideHeader/utils.d.ts +1 -0
  30. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +10 -0
  31. package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -0
  32. package/build/esm/components/CompositeBar/constants.d.ts +0 -1
  33. package/build/esm/components/constants.d.ts +1 -1
  34. package/build/esm/components/types.d.ts +1 -0
  35. package/build/esm/components/utils/cn.d.ts +3 -3
  36. package/build/esm/index.js +4514 -4491
  37. package/build/esm/index.js.map +1 -1
  38. package/package.json +4 -2
package/README.md CHANGED
@@ -13,7 +13,7 @@ npm install @gravity-ui/navigation
13
13
  Ensure that peer dependencies are installed in your project
14
14
 
15
15
  ```bash
16
- npm install --dev @gravity-ui/uikit@^3.0.2 bem-cn-lite@4.0.0 react@^16.0.0
16
+ npm install --dev @gravity-ui/uikit@^3.0.2 @bem-react/classname@1.6.0 react@^16.0.0
17
17
  ```
18
18
 
19
19
  ## Components
@@ -30,3 +30,19 @@ npm install --dev @gravity-ui/uikit@^3.0.2 bem-cn-lite@4.0.0 react@^16.0.0
30
30
  ```ts
31
31
  import {AsideHeader} from '@gravity-ui/navigation';
32
32
  ```
33
+
34
+ ## CSS variables
35
+
36
+ Used for themization Navigation's components
37
+
38
+ ### AsideHeader vars
39
+
40
+ | Name | Description | Default |
41
+ | :----------------------------------------------------- | :--------------------------------------------------------------- | :--------------------------------------------------------------------- |
42
+ | `--gn-aside-header-background-color` | Сolor of decorations and selected items | `--g-color-base-warning-light` |
43
+ | `--gn-aside-header-subheader-divider-line-color` | Divider line color for withDecoration and expanded `AsideHeader` | `--g-color-base-warning-light` |
44
+ | `--gn-aside-header-collapse-button-divider-line-color` | | `--gn-aside-header-subheader-divider-line-color` |
45
+ | `--gn-aside-header-footer-item-icon-color` | | `--g-color-text-primary` |
46
+ | `--gn-aside-header-subheader-item-icon-color` | | `--g-color-text-primary` |
47
+ | `--gn-aside-header-item-icon-background-size` | Background size used when `AsideHeader` is compact | `38px` |
48
+ | `--gn-aside-header-divider-line-color` | Vertical color divider between `AsideHeader` and content | Light theme: `transparent`, Dark theme: `--g-color-line-generic-solid` |
@@ -1,48 +1,6 @@
1
1
  import React from 'react';
2
- import { MenuItem, LogoProps, SubheaderMenuItem } from '../types';
3
- import { DrawerItemProps } from '../Drawer/Drawer';
4
- import { RenderContentType } from '../Content';
2
+ import { AsideHeaderGeneralProps, AsideHeaderDefaultProps, AsideHeaderInnerProps } from './types';
5
3
  import './AsideHeader.scss';
6
- interface AsideHeaderGeneralProps {
7
- logo: LogoProps;
8
- compact: boolean;
9
- multipleTooltip?: boolean;
10
- className?: string;
11
- collapseTitle?: string;
12
- expandTitle?: string;
13
- menuMoreTitle?: string;
14
- renderContent?: RenderContentType;
15
- renderFooter?: (data: {
16
- size: number;
17
- compact: boolean;
18
- asideRef: React.RefObject<HTMLDivElement>;
19
- }) => React.ReactNode;
20
- onClosePanel?: () => void;
21
- onChangeCompact?: (compact: boolean) => void;
22
- }
23
- interface AsideHeaderDefaultProps {
24
- panelItems: DrawerItemProps[];
25
- subheaderItems: SubheaderMenuItem[];
26
- menuItems: MenuItem[];
27
- headerDecoration: boolean;
28
- }
29
4
  export interface AsideHeaderProps extends AsideHeaderGeneralProps, Partial<AsideHeaderDefaultProps> {
30
5
  }
31
- type AsideHeaderInnerProps = AsideHeaderGeneralProps & AsideHeaderDefaultProps;
32
- export declare class AsideHeader extends React.Component<AsideHeaderInnerProps> {
33
- static defaultProps: AsideHeaderDefaultProps;
34
- asideRef: React.RefObject<HTMLDivElement>;
35
- render(): React.JSX.Element;
36
- private renderFirstPane;
37
- private renderSecondPane;
38
- private renderLogo;
39
- private renderHeader;
40
- private renderFooter;
41
- private renderPanels;
42
- private renderCollapseButton;
43
- private onCollapseButtonClick;
44
- private onCloseDrawer;
45
- private onItemClick;
46
- private onLogoClick;
47
- }
48
- export {};
6
+ export declare const AsideHeader: (props: AsideHeaderInnerProps) => React.JSX.Element;
@@ -1,9 +1,17 @@
1
1
  import React from 'react';
2
- interface AsideHeaderContextType {
3
- compact: boolean;
2
+ import { MenuItem } from '../types';
3
+ import { AsideHeaderInnerProps } from './types';
4
+ export interface AsideHeaderInnerContextType extends AsideHeaderInnerProps {
4
5
  size: number;
6
+ onItemClick: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
5
7
  }
6
- export declare const AsideHeaderContext: React.Context<AsideHeaderContextType>;
7
- export declare const AsideHeaderContextProvider: React.Provider<AsideHeaderContextType>;
8
+ export declare const AsideHeaderInnerContext: React.Context<AsideHeaderInnerContextType | undefined>;
9
+ export declare const AsideHeaderInnerContextProvider: React.Provider<AsideHeaderInnerContextType | undefined>;
10
+ export declare const useAsideHeaderInnerContext: () => AsideHeaderInnerContextType;
11
+ export interface AsideHeaderContextType {
12
+ compact?: boolean;
13
+ size: number;
14
+ }
15
+ export declare const AsideHeaderContext: React.Context<AsideHeaderContextType | undefined>;
16
+ export declare const AsideHeaderContextProvider: React.Provider<AsideHeaderContextType | undefined>;
8
17
  export declare const useAsideHeaderContext: () => AsideHeaderContextType;
9
- export {};
@@ -1,3 +1,5 @@
1
- import { MenuItem } from 'src/components/types';
1
+ import { MenuItem } from '../../types';
2
+ import { AsideHeaderContextType } from '../AsideHeaderContext';
3
+ export declare const EMPTY_CONTEXT_VALUE: AsideHeaderContextType;
2
4
  export declare const menuItemsShowcase: MenuItem[];
3
5
  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,2 @@
1
+ import React from 'react';
2
+ export declare const CollapseButton: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const FirstPanel: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const Header: () => React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const Panels: () => React.JSX.Element | null;
@@ -0,0 +1 @@
1
+ export { FirstPanel } from './FirstPanel';
@@ -0,0 +1,29 @@
1
+ /// <reference types="react" />
2
+ import { RenderContentType } from '../Content';
3
+ import { DrawerItemProps } from '../Drawer/Drawer';
4
+ import { LogoProps, MenuItem, SubheaderMenuItem, OpenModalSubscriber } from '../types';
5
+ export interface AsideHeaderGeneralProps {
6
+ logo: LogoProps;
7
+ compact: boolean;
8
+ multipleTooltip?: boolean;
9
+ className?: string;
10
+ collapseTitle?: string;
11
+ expandTitle?: string;
12
+ menuMoreTitle?: 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
+ openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;
22
+ }
23
+ export interface AsideHeaderDefaultProps {
24
+ panelItems?: DrawerItemProps[];
25
+ subheaderItems?: SubheaderMenuItem[];
26
+ menuItems?: MenuItem[];
27
+ headerDecoration?: boolean;
28
+ }
29
+ export type AsideHeaderInnerProps = AsideHeaderGeneralProps & AsideHeaderDefaultProps;
@@ -0,0 +1 @@
1
+ export declare const b: import("@bem-react/classname").ClassNameFormatter;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import './HighlightedItem.scss';
3
+ interface ItemInnerProps {
4
+ iconRef: React.RefObject<HTMLDivElement>;
5
+ iconNode: React.ReactNode;
6
+ onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
7
+ onClickCapture?: (event: React.SyntheticEvent) => void;
8
+ }
9
+ export declare const HighlightedItem: React.FC<ItemInnerProps>;
10
+ export {};
@@ -16,6 +16,7 @@ export interface ItemProps extends ItemPopup {
16
16
  enableTooltip?: boolean;
17
17
  onItemClick?: (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
18
18
  onItemClickCapture?: (event: React.SyntheticEvent) => void;
19
+ bringForward?: boolean;
19
20
  }
20
21
  interface ItemInnerProps extends ItemProps {
21
22
  className?: string;
@@ -1,5 +1,4 @@
1
1
  import { PopupPlacement } from '@gravity-ui/uikit';
2
- export declare const ICON_SIZE = 24;
3
2
  export declare const ITEM_HEIGHT = 40;
4
3
  export declare const ITEM_TYPE_REGULAR = "regular";
5
4
  export declare const COLLAPSE_ITEM_ID = "collapse-item-id";
@@ -1,3 +1,3 @@
1
- export declare const ASIDE_HEADER_FOOTER_ICON_SIZE = 20;
1
+ export declare const ASIDE_HEADER_ICON_SIZE = 18;
2
2
  export declare const ASIDE_HEADER_COMPACT_WIDTH = 56;
3
3
  export declare const ASIDE_HEADER_EXPANDED_WIDTH = 236;
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { IconProps } from '@gravity-ui/uikit';
3
3
  import { ItemProps } from 'src/components/CompositeBar/Item/Item';
4
4
  export type MenuItemType = 'regular' | 'action' | 'divider';
5
+ export type OpenModalSubscriber = (open: boolean) => void;
5
6
  export interface MakeItemParams {
6
7
  icon?: React.ReactNode;
7
8
  title: React.ReactNode;
@@ -1,5 +1,5 @@
1
- import bemBlock from 'bem-cn-lite';
2
- export type CnBlock = ReturnType<typeof bemBlock>;
3
1
  export type CnMods = Record<string, string | boolean | undefined>;
4
2
  export declare const NAMESPACE = "gn-";
5
- export declare function block(name: string): CnBlock;
3
+ export declare const cn: import("@bem-react/classname").ClassNameInitilizer;
4
+ export declare const block: import("@bem-react/classname").ClassNameInitilizer;
5
+ export type CnBlock = ReturnType<typeof cn>;